Sensitive Data Scanner

概要

クレジットカード番号、銀行コード、API キーなどの機密データは、アプリケーションログ、APM スパン、RUM イベントで意図せずに公開されることが多く、組織が財務リスクやプライバシーリスクにさらされる可能性があります。

機密データスキャナーは、ストリームベースのパターンマッチングサービスで、機密データの特定、タグ付け、オプションで秘匿化やハッシュ化に使用されます。セキュリティおよびコンプライアンスチームは、機密データスキャナーを新たな防御策として導入し、機密データの漏洩防止とコンプライアンス違反リスクの抑制に役立てることができます。

機密データスキャナーを使用するためには、まずスキャングループを設定してスキャン対象のデータを定義し、次にスキャンルールを設定してデータ内でマッチングさせる機密情報を決定します。

このドキュメントでは、以下について説明します。

  • Sensitive Data Scanner の表示と設定に必要な権限。
  • 機密データのスキャンのセットアップ。
  • すぐに使えるダッシュボードを使用。

: PCI 準拠の Datadog 組織のセットアップに関する情報については、PCI DSS 準拠を参照してください。

12 個のアクティブなスキャングループのうち 6 個が表示されている機密データスキャナーページ

機密データスキャナーの設定

機密データをマスキングできる場所は 2 つあります。

クラウド:

  • Sensitive Data Scanner in the Cloud では、Datadog バックエンドにログを送信します。この方法では、ログがマスキングされる前にプレミスを離れます。組織ごとに複数のスキャングループを持つことができ、カスタムスキャンルールを作成できます。タグで機密データをマスキングすることも可能です。

環境:

Join the Beta!

Sensitive Data Scanner using the Agent は非公開ベータ版です。アクセスをリクエストするには、このフォームに記入してください。

Request Access
  • Sensitive Data Scanner using the Agent では、ログを Datadog バックエンドに送信する前に Datadog がログをマスキングし、マスキングされていないログはプレミス外に出る必要がなくなります。この方法では、組織ごとに 1 つのスキャングループに制限され、定義済みのライブラリルールしか使用できません。

  • 環境内の機密データを下流の宛先に送信する前にマスキングする別の方法としては、Observability Pipelines を使用することがあります。

前提条件

デフォルトでは、Datadog 管理者ロールを持つユーザーは、スキャンルールを表示および設定するためのアクセス権を持っています。他のユーザーにアクセスを許可するには、Compliancedata_scanner_read または data_scanner_write の権限をカスタムロールに付与します。ロールと権限のセットアップ方法の詳細については、[アクセス制御][3]を参照してください。

データスキャナーの読み取り権限と書き込み権限が表示されているコンプライアンス権限セクション
  1. 適切な権限を付与します。デフォルトでは、Datadog 管理者ロールを持つユーザーは、スキャンルールを表示および設定するためのアクセス権を持っています。他のユーザーにアクセスを許可するには、Compliancedata_scanner_read または data_scanner_write の権限をカスタムロールに付与します。ロールと権限のセットアップ方法の詳細については、アクセス制御を参照してください。

    データスキャナーの読み取り権限と書き込み権限が表示されているコンプライアンス権限セクション
  2. リモート構成を有効にする手順に従ってください。

  3. Datadog Agent v7.54 以降をインストールします。

スキャングループの追加

スキャングループは、スキャンするデータを決定します。これは、ログ、APM、RUM、およびイベントのスキャンを有効にするためのクエリフィルターとトグルのセットで構成されています。クエリフィルターの詳細については、ログ検索構文のドキュメントを参照してください。

Terraform に関しては、Datadog 機密データスキャナーグループのリソースを参照してください。

スキャングループをセットアップするには、以下の手順を実行します。

  1. Sensitive Data Scanner 構成ページに移動します。
  2. Add scanning group をクリックします。または、ページ右上にある Add ドロップダウンメニューをクリックし、Add Scanning Group を選択します。
  3. スキャンしたいデータのクエリーフィルターを入力します。フィルタリングされたスパンをプレビューするには、一番上の APM Spans をクリックします。フィルタリングされたログを表示するには、Logs をクリックします。
  4. グループの名前と説明を入力します。
  5. トグルボタンをクリックし、希望する製品 (例: ログ、APM スパン、RUM イベント、Datadog イベント) で機密データスキャナーを有効にします。
  6. Create をクリックします。
: Sensitive Data Scanner using the Agent は、1 つの組織につき 1 つのスキャングループのみをサポートします。

スキャングループは、スキャンするログを決定します。ホストタグに基づいて適格な Agent に一致させるクエリフィルターで構成されます。

スキャングループをセットアップするには、以下の手順を実行します。

  1. Sensitive Data Scanner using the Agent の構成ページに移動します。
  2. Add scanning group をクリックします。または、ページ右上にある Add ドロップダウンメニューをクリックし、Add Scanning Group を選択します。
  3. スキャンするデータのクエリフィルターを入力します。Agent の一致にはホストレベルのタグのみを使用できます。最下部には、タグに一致する Agent の総数を含む、一致して対象となる Agent の数が表示されます。
  4. グループの名前と説明を入力します。
  5. Save をクリックします。

デフォルトでは、新しく作成されたスキャングループは無効になっています。スキャングループを有効にするには、右側の対応するトグルをクリックします。

スキャンルールの追加

スキャンルールは、スキャングループで定義されたデータ内のどの機密情報をマッチングさせるかを決定します。Datadog のスキャンルールライブラリから事前定義されたスキャンルールを追加するか、正規表現パターンを使って独自のルールを作成することができます。データは、処理の中で取り込みが行われる際にスキャンされます。ログの場合、これはインデックス化やその他のルーティング関連の決定の前にスキャンが行われることを意味します。

Terraform に関しては、Datadog Sensitive Data Scanner ルールのリソースを参照してください。

スキャンルールを追加するには、以下の手順を実行します。

  1. Sensitive Data Scanner 構成ページに移動します。
  2. スキャンルールを追加する対象のスキャングループをクリックします。
  3. Add Scanning Rule をクリックします。または、ページ右上にある Add ドロップダウンメニューをクリックし、Add Scanning Rule を選択します。
  4. ライブラリルールを追加するか、カスタムスキャンルールを作成するかを選択します。

スキャンルールライブラリには、メールアドレスやクレジットカード番号、API キー、認証トークンなどの一般的なパターンを検出するための、あらかじめ定義されたルールが含まれています。

  1. Add library rules to the scanning group (スキャングループにライブラリルールを追加する) セクションで、使用したいライブラリルールを選択します。
  2. Define rule target and action (ルールの対象とアクションを定義する) セクションでは、スキャンする対象が Entire Event (イベント全体) か Specific Attributes (特定の属性) かを選択します。
    • イベント全体をスキャンする場合、オプションで特定の属性をスキャン対象から除外できます。
    • 特定の属性をスキャンする場合は、スキャンする属性を指定します。
  3. For Create keyword dictionary, add keywords to refine detection accuracy when matching regex conditions. For example, if you are scanning for a sixteen-digit Visa credit card number, you can add keywords like visa, credit, and card. You can also require that these keywords must be within a specified number of characters of a match. By default, keywords must be within 30 characters before a matched value.
  4. For Define actions on match, select the action you want to take for the matched information. Note: Redaction, partial redaction, and hashing are all irreversible actions.
    • Redact: Replaces all matching values with the text you specify in the Replacement text field.
    • Partially Redact: Replaces a specified portion of all matched data. In the Redact section, specify the number of characters you want to redact and which part of the matched data to redact.
    • Hash: Replaces all matched data with a unique identifier. The UTF-8 bytes of the match is hashed with the 64-bit fingerprint of FarmHash.
  5. Optionally, add tags you want to associate with events where the values match the specified regex pattern. Datadog recommends using sensitive_data and sensitive_data_category tags. These tags can then be used in searches, dashboards, and monitors. See Control access to logs with sensitive data for information on how to use tags to determine who can access logs containing sensitive information.
  6. For Set priority level, select the priority level for the rule based on your business needs.
  7. In the Name and describe the scanning rule section, enter a name for the rule. Optionally, add a description.
  8. Add Rules をクリックします。

正規表現パターンを使用してカスタムスキャンルールを作成し、機密データをスキャンできます。

  1. Define match conditions (一致条件を定義する) セクションの Define regex フィールドで、イベントのマッチングに使用する正規表現パターンを指定します。Regex tester フィールドにサンプルデータを入力して、正規表現パターンの有効性を検証します。 機密データスキャナーは Perl 互換正規表現 (PCRE) をサポートしていますが、以下のパターンはサポートされていません。
    • 後方参照、およびサブマッチ文字列のキャプチャ (ルックアラウンド)
    • 任意のゼロ幅マッチ
    • サブルーチン参照および再帰的パターン
    • 条件付きパターン
    • バックトラック制御動詞
    • \C “シングルバイト” ディレクティブ (UTF-8 の文字列を分割)
    • \R 改行コードのマッチ
    • \K マッチの開始位置のリセットディレクティブ
    • コールアウトおよび埋め込みコード
    • アトミックグループおよび絶対最大量指定子
  2. For Create keyword dictionary, add keywords to refine detection accuracy when matching regex conditions. For example, if you are scanning for a sixteen-digit Visa credit card number, you can add keywords like visa, credit, and card. You can also require that these keywords must be within a specified number of characters of a match. By default, keywords must be within 30 characters before a matched value.
  3. For Define actions on match, select the action you want to take for the matched information. Note: Redaction, partial redaction, and hashing are all irreversible actions.
    • Redact: Replaces all matching values with the text you specify in the Replacement text field.
    • Partially Redact: Replaces a specified portion of all matched data. In the Redact section, specify the number of characters you want to redact and which part of the matched data to redact.
    • Hash: Replaces all matched data with a unique identifier. The UTF-8 bytes of the match is hashed with the 64-bit fingerprint of FarmHash.
  4. Optionally, add tags you want to associate with events where the values match the specified regex pattern. Datadog recommends using sensitive_data and sensitive_data_category tags. These tags can then be used in searches, dashboards, and monitors. See Control access to logs with sensitive data for information on how to use tags to determine who can access logs containing sensitive information.
  5. For Set priority level, select the priority level for the rule based on your business needs.
  6. In the Name and describe the scanning rule section, enter a name for the rule. Optionally, add a description.
  7. Add Rule をクリックします。

:

  • 追加または更新するルールは、ルールが定義された後に Datadog に送られるデータにのみ影響します。
  • 機密データスキャナーは、Datadog Agent で直接定義するルールには影響しません。
  • ルールが追加されたら、スキャングループのトグルが有効になっていることを確認してスキャンを開始します。

機密データの問題をトリアージするための Summary ページの使い方について、詳しくは機密データの問題を調査するを参照してください。

スキャンルールは、スキャングループによって定義されたデータ内のどの機密情報を対象にするかを決定します。Datadog Agent は、ログが Datadog プラットフォームに送信される前に、ログ収集中にローカル環境でデータをスキャンします。

: Sensitive Data Scanner using the Agent は、Datadog のスキャンルールライブラリから定義済みのスキャンルールのみをサポートします。スキャンルールの総数は 20 個に制限されています。

スキャンルールを追加するには、以下の手順を実行します。

  1. Sensitive Data Scanner using the Agent の構成ページに移動します。
  2. Add Scanning Rule をクリックします。または、ページ右上にある Add ドロップダウンメニューをクリックし、Add Scanning Rule を選択します。
  3. Add library rules to the scanning group セクションで、使用するライブラリルールを選択します。既存のライブラリルールを検索するには、Filter library rules 入力を使用します。ルール名の横には、各ルールの定義済みタグのリストがあります。
  4. Define rule target and action セクションで、一致した機密情報に対して実行するアクションを選択します。: マスキング、部分的なマスキング、およびハッシュ化はすべて不可逆アクションです。
    • Redact: 一致するすべての値を Replacement text フィールドで指定したテキストに置換します。
    • Partially Redact: 一致するすべてのデータの指定した部分を置換します。Redact セクションでは、編集する文字数と、一致するデータのどの部分を編集するかを指定します。
    • Hash: 一致するすべてのデータを一意の識別子に置換します。マッチの UTF-8 バイトは FarmHash の 64 ビットフィンガープリントでハッシュされます。
  5. オプションとして、指定された正規表現パターンに一致する値を含むイベントに関連付ける追加タグを追加します。Datadog は、デフォルトで sensitive_data および sensitive_data_category のタグを追加します。これらのタグは、検索、ダッシュボード、およびモニターで使用できます。タグを利用して機密情報を含むログへのアクセス権を決定する方法については、機密データを含むログへのアクセス制御を参照してください。
  6. Save をクリックします。

:

  • 追加または更新するルールは、ルールが定義された後に Datadog に送られるデータにのみ影響します。
  • ルールが追加されたら、スキャングループのトグルが有効になっていることを確認してスキャンを開始します。

除外されるネームスペース

Datadog プラットフォームが機能上必要とする予約キーワードがあります。これらの単語がスキャンされるログ内にある場合、一致した単語の後の 30 文字は無視され、マスキングされません。例えば、ログの date という単語の後に来るのは通常イベントのタイムスタンプです。もしタイムスタンプが誤ってマスキングされると、ログの処理に問題が生じ、後でクエリを実行することができなくなります。そのため、除外されるネームスペースの動作は、製品機能にとって重要な情報が意図せずにマスキングされるのを防ぐためのものです。

除外されるネームスペースは以下のとおりです。

  • host
  • hostname
  • syslog.hostname
  • service
  • status
  • env
  • dd.trace_id
  • trace_id
  • trace id
  • dd.span_id
  • span_id
  • span id
  • @timestamp
  • timestamp
  • _timestamp
  • Timestamp
  • date
  • published_date
  • syslog.timestamp
  • error.fingerprint
  • x-datadog-parent-id

スキャンルールの編集

  1. Sensitive Data Scanner 構成ページに移動します。

  2. 編集するスキャンルールにカーソルを合わせ、Edit (鉛筆) アイコンをクリックします。

    Define match conditions セクションには、カスタムルールに記述した正規表現、または選択したライブラリスキャンルールの説明が、一致した機密情報の例と共に表示されます。

  3. ルールがデータに一致することを確認するには、Add sample data セクションにサンプルを提供します。ルールがサンプルデータに一致すると、入力フィールドの横に緑色の Match ラベルが表示されます。

  4. Create keyword dictionary では、検出精度を向上させるためのキーワードを追加できます。例えば、16 桁の Visa クレジットカード番号をスキャンする場合、visacreditcard のようなキーワードを追加できます。

  5. キーワードが一致する前に出現しなければならない文字数を選択します。デフォルトでは、キーワードは一致する前の 30 文字以内に出現する必要があります。

  6. オプションとして、Define rule target and action で、ルールに一致する値を含むイベントに関連付けるタグを編集します。Datadog では、検索、ダッシュボード、およびモニターで使用できる sensitive_data および sensitive_data_category のタグの使用を推奨しています。タグを利用して機密データを含むログへのアクセス権を決定する方法については、機密データを含むログへのアクセス制御を参照してください。

  7. Set priority level では、ビジネスニーズに基づいて値を選択します。

  8. Update をクリックします。

  1. Sensitive Data Scanner using the Agent の構成ページに移動します。

  2. 編集するスキャンルールにカーソルを合わせ、Edit (鉛筆) アイコンをクリックします。

    Define match conditions セクションには、選択したライブラリスキャンルールの説明が、一致した機密情報の例と共に表示されます。

  3. Create keyword dictionary では、検出精度を向上させるためのキーワードを追加できます。例えば、16 桁の Visa クレジットカード番号をスキャンする場合、visacreditcard のようなキーワードを追加できます。

  4. キーワードが一致する前に出現しなければならない文字数を選択します。デフォルトでは、キーワードは一致する前の 30 文字以内に出現する必要があります。

  5. Save をクリックします。

機密データを含むログへのアクセス制御

機密データを含むログにアクセスできるユーザーを制御するには、機密データスキャナーによって追加されたタグを使用して、ロールベースのアクセス制御 (RBAC) の付いたクエリを作成します。保持期間後にデータが期限切れになるまで、特定の個人またはチームにアクセスを限定できます。詳しくは、ログ用に RBAC を設定する方法を参照してください。

タグ内の機密データの秘匿化

タグに含まれる機密データを秘匿化するには、タグを属性にリマップしてから、その属性を秘匿化する必要があります。リマッピング中にタグが保存されないように、リマッパープロセッサーで Preserve source attribute のチェックを外してください。

タグを属性にリマップするには:

  1. ログパイプラインに移動します。
  2. Add Processor をクリックします。
  3. プロセッサーの種類のドロップダウンメニューで Remapper を選択します。
  4. プロセッサーに名前を付けます。
  5. Tag key(s) を選択します。
  6. タグキーを入力します。
  7. タグキーをリマップする属性の名前を入力します。
  8. Preserve source attribute を無効にします。
  9. Create をクリックします。

属性を秘匿化するには:

  1. スキャングループに移動します。
  2. Add Scanning Rule をクリックします。
  3. 使用したいライブラリルールにチェックを入れます。
  4. Scan entire event or portion of it (イベント全体またはその一部をスキャンする)で Specific Attributes を選択します。
  5. 予め作成しておいた属性の名前を入力し、スキャンの対象に指定します。
  6. マッチングした場合のアクションを選択します。
  7. オプションで、タグを追加します。
  8. Add Rules をクリックします。

この関数は Sensitive Data Scanner using the Agent では使用できません。

データセキュリティ

Data Security は非公開ベータ版です。非公開ベータ版に登録するには、こちらからサインアップしてください。

Sensitive Data ScannerCloud Security Management を有効にしている場合、Data Security を使用して機密データを特定し、AWS S3 バケットと RDS インスタンスに影響するセキュリティ問題を修正できます。

Data Security は、クラウド環境にエージェントレススキャナーをデプロイすることで、機密データをスキャンします。これらのスキャンインスタンスは、Remote Configuration を介してすべての S3 バケットと RDS インスタンスのリストを取得し、すべてのデータストア内の CSV や JSON などのテキストファイルとテーブルを時間経過とともにスキャンするように設定されています。Data Security は、Sensitive Data Scanner が提供するルールを活用して一致するものを見つけます。一致するものが見つかると、その場所がスキャンインスタンスから Datadog に送信されます。データストアとそのファイルは、お客様の環境でのみ読み取られ、機密データが Datadog に返送されることはありません。

機密データとの一致を表示すると同時に、Data Security は、機密データストアに影響を与える Cloud Security Management によって検出されたセキュリティ問題も表示します。問題をクリックすると、Cloud Security Management 内でトリアージと修復を続けることができます。

すぐに使えるダッシュボード

Sensitive Data Scanner を有効にすると、すぐに使えるダッシュボードが自動的にアカウントにインストールされ、機密データの診断結果の要約を見ることができます。このダッシュボードにアクセスするには、Dashboards > Dashboards List に移動し、 “Sensitive Data Scanner Overview” を検索します。

Sensitive Data Scanner Overview ダッシュボード

Sensitive Data Scanner を無効にする

Sensitive Data Scanner を完全にオフにするには、各スキャングループのトグルを off に設定して無効化します。

その他の参考資料

PREVIEWING: evan.li/clarify-agentless