抑制ルール - Amazon GuardDuty

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

抑制ルール

抑制ルールは、フィルター属性と値の組み合わせで構成される基準のセットで、指定した条件に一致する新しい検出結果を自動的にアーカイブして検出結果をフィルタリングするために使用する条件のセットのことです。抑制ルールを使用して、重要ではない検出結果、誤検出の検出結果、対応を行わない脅威をフィルタリングすることにより、環境に最も影響があるセキュリティの脅威を認識しやすくなります。

抑制ルールを作成すると、その抑制ルールが適用されている限り、ルールで定義された条件に一致する新しい検出結果が自動的にアーカイブされます。既存のフィルターを使用して抑制ルールを作成したり、定義した新しいフィルターから抑制ルールを作成することもできます。検出結果タイプ全体を抑制するよう抑制ルールを設定したり、特定の検出結果タイプの特定のインスタンスのみを抑制する、よりきめ細かいフィルター条件を定義したりできます。抑制ルールはいつでも編集できます。

抑制された検出結果は AWS Security Hub、、Amazon Simple Storage Service、Amazon Detective、または Amazon に送信されないため EventBridge、Security Hub、サードパーティー SIEM、またはその他のアラートおよびチケット発行アプリケーションを介して検出 GuardDuty 結果を使用する場合、検出結果のノイズレベルが低下します。を有効にした場合GuardDuty EC2 のマルウェア保護、抑制された GuardDuty 検出結果はマルウェアスキャンを開始しません。

GuardDuty は、抑制ルールと一致しても検出結果を生成し続けますが、それらの検出結果はアーカイブされた として自動的にマークされます。アーカイブされた検出結果は 90 GuardDuty 日間 に保存され、その期間中いつでも表示できます。抑制された検出結果を GuardDuty コンソールで表示するには、検出結果テーブルからアーカイブするか、 GuardDuty API を使用して true にservice.archived等しいfindingCriteria基準で ListFindings API を使用します。

注記

マルチアカウント環境では、 GuardDuty 管理者のみが抑制ルールを作成できます。

抑制ルールの一般的ユースケースとその例

次の検出結果タイプには、抑制ルールを適用するための一般的なユースケースがあります。検出結果名を選択すると、その検出結果の詳細が表示されます。ユースケースの説明を確認して、その検出結果タイプの抑制ルールを構築するかどうかを決定します。

重要

GuardDuty では、環境で誤検出を繰り返し特定した検出結果に対してのみ、抑制ルールを事後的に構築することをお勧めします。

  • UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS - VPC のインターネットゲートウェイからではなく、オンプレミスのゲートウェイからインターネットへのトラフィックをルーティングするように VPC ネットワークが設定されている場合に、生成された検出結果を自動的にアーカイブするために抑制ルールを使用します。

    この検出結果が生成されるのは、VPC インターネットゲートウェイ (IGW) からではなく、オンプレミスのゲートウェイから排出され、インターネットトラフィックがルーティングされるように、ネットワークが構成されている場合です。AWS Outposts や VPC VPN 接続などの一般的な構成では、このようにトラフィックがルーティングされる可能性があります これが予想される動作である場合は、抑制ルールを使用して、2 つのフィルター条件で構成されるルールを作成することをお勧めします。1 つ目の条件では、[finding type] (結果タイプ) に UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS を使用します。2 番目のフィルター条件は、オンプレミスインターネットゲートウェイの IP アドレスまたは CIDR 範囲を持つ [API caller IPv4 address] (API 発信者の IPv4 アドレス) です。次の例は、API 発信者の IP アドレスに基づいてこの検出結果タイプを抑制するために使用するフィルターを示しています。

    Finding type: UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS API caller IPv4 address: 198.51.100.6
    注記

    複数の API 発信者の IP を含めるには、それぞれに新しい API 発信者 IPv4 アドレスフィルターを追加します。

  • Recon:EC2/Portscan - 脆弱性評価アプリケーションを使用する場合に、検出結果を自動的にアーカイブするために抑制ルールを使用します。

    抑制ルールは、2 つのフィルター条件で構成する必要があります。1 つ目の条件では、[Finding type] (結果タイプ) 属性に Recon:EC2/Portscan という値を使用します。2 番目のフィルター条件は、これらの脆弱性評価ツールをホストする 1 つ以上のインスタンスと一致する必要があります。これらのツールをホストするインスタンスで識別可能な条件に応じて、[Instance image ID] (インスタンスイメージ ID) 属性または [Tag] (タグ) 値の属性のいずれかを使用できます。次の例は、特定の AMI を持つインスタンスに基づいてこの検出結果タイプを抑制するために使用するフィルターを示しています。

    Finding type: Recon:EC2/Portscan Instance image ID: ami-999999999
  • UnauthorizedAccess:EC2/SSHBruteForce - 踏み台インスタンスをターゲットとする場合に、検出結果を自動的にアーカイブするために抑制ルールを使用します。

    ブルートフォース試行のターゲットが踏み台ホストの場合、これは AWS 環境に対して予想される動作を表す可能性があります。このような状況が発生した場合は、この検出結果に対する抑制ルールを設定することをお勧めします。抑制ルールは、2 つのフィルター条件で構成する必要があります。1 つ目の条件では、[Finding type] (結果タイプ) 属性に UnauthorizedAccess:EC2/SSHBruteForce という値を使用します。2 番目のフィルター条件は、要塞ホストとして機能する 1 つ以上のインスタンスと一致する必要があります。これらのツールをホストするインスタンスで識別可能な条件に応じて、[Instance image ID] (インスタンスイメージ ID) 属性または [Tag] (タグ) 値の属性のいずれかを使用できます。次の例は、特定のタグ値を持つインスタンスに基づいてこの検出結果タイプを抑制するために使用するフィルターを示しています。

    Finding type: UnauthorizedAccess:EC2/SSHBruteForce Instance tag value: devops
  • Recon:EC2/PortProbeUnprotectedPort - 意図的に公開しているインスタンスをターゲットとする場合に、検出結果を自動的にアーカイブするために抑制ルールを使用します。

    インスタンスがウェブサーバーをホストしている場合など、インスタンスが意図的に公開されている場合があります。ご使用の AWS 環境でその場合は、この検出結果の抑制ルールを設定することをお勧めします。抑制ルールは、2 つのフィルター条件で構成する必要があります。1 つ目の条件では、[Finding type] (結果タイプ) 属性に Recon:EC2/PortProbeUnprotectedPort という値を使用します。2 番目のフィルター条件は、要塞ホストとして機能する 1 つ以上のインスタンスと一致する必要があります。これらのツールをホストするインスタンスで識別可能な条件に応じて、[Instance image ID] (インスタンスイメージ ID) 属性または [Tag] (タグ) 値の属性のいずれかを使用できます。次の例は、コンソール内の特定のタグキーを持つインスタンスに基づいてこの検出結果タイプを抑制するために使用するフィルターを示しています。

    Finding type: Recon:EC2/PortProbeUnprotectedPort Instance tag key: prod

Runtime Monitoring の検出結果の推奨抑制ルール

  • PrivilegeEscalation:Runtime/DockerSocketAccessed はコンテナ内のプロセスが Docker ソケットと通信するときに生成されます。環境内に、正当な理由で Docker ソケットにアクセスする必要があるコンテナが存在する可能性があります。このようなコンテナからアクセスすると、PrivilegeEscalation:Runtime/DockerSocketAccessed 検出結果が生成されます。ご使用の AWS 環境でこれが当てはまる場合は、この検出結果タイプの抑制ルールを設定することをお勧めします。1 つ目の条件では、値が PrivilegeEscalation:Runtime/DockerSocketAccessed に等しい [検出結果タイプ] フィールドを使用する必要があります。2 番目のフィルター条件は、生成された検出結果のプロセスの executablePath と同じ値を持つ [実行可能ファイルのパス] フィールドです。別の方法として、2 番目のフィルター条件では、生成された検出結果のプロセスの executableSha256 と同じ値を持つ [実行可能ファイル SHA-256] フィールドを使用できます。

  • Kubernetes クラスターは、独自の DNS サーバーを coredns などのポッドとして実行します。したがって、ポッドからの DNS ルックアップごとに、 は 2 つの DNS イベント GuardDuty をキャプチャします。1 つはポッドから、もう 1 つはサーバーポッドから取得します。これにより、以下の DNS 検出結果に重複が生じる可能性があります。

    重複した検出結果には、DNS サーバーポッドに対応するポッド、コンテナ、プロセスの詳細が含まれます。これらのフィールドを使用して、重複検出結果を抑制する抑制ルールをセットアップできます。最初のフィルター条件では、このセクションで前述した検出結果リストの DNS 検出結果タイプと同じ値の [検出結果タイプ] フィールドを使用する必要があります。2 つ目のフィルター条件は、お使いの DNS サーバー executablePath と同じ値の [実行可能ファイルのパス] か、生成された検出結果の DNS サーバー executableSHA256 と同じ値の [実行可能ファイル SHA-256] のいずれかです。オプションの 3 番目のフィルター条件として、生成された検出結果に含まれる DNS サーバーポッドのコンテナイメージと同じ値の [Kubernetes コンテナイメージ] フィールドを使用できます。

抑制ルールを作成する

任意のアクセス方法を選択して、 GuardDuty 検出結果タイプの抑制ルールを作成します。

Console

GuardDuty コンソールを使用して、抑制ルールを視覚化、作成、管理できます。抑制ルールはフィルターと同じ方法で生成され、既存の保存済みフィルターを抑制ルールとして使用できます。フィルター作成の詳細については、「検出結果のフィルタリング」を参照してください。

コンソールを使用して抑制ルールを作成するには
  1. https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。

  2. [Findings] (検出結果) ページで、[Suppress findings] (検出結果の抑制) をクリックして、抑制ルールパネルを開きます。

  3. フィルター基準メニューを開くには、[Add filter criteria] (フィルター基準を追加) に filter criteria を入力します。リストから基準を選択できます。選択した基準の有効な値を入力します。

    注記

    有効な値を判断するには、検出結果テーブルを表示して、抑制する結果を選択します。検出結果パネルで詳細を確認します。

    複数のフィルター基準を追加して、抑制したい検出結果のみがテーブルに表示されるようにすることができます。

  4. 抑制ルールの [Name] (名前) と [Description] (説明) を入力します。有効な文字は、英数字、ピリオド (.)、ダッシュ (-)、アンダースコア (_)、空白スペースです。

  5. [保存] を選択します。

また、既存の保存済みフィルターから抑制ルールを作成できます。フィルター作成の詳細については、「検出結果のフィルタリング」を参照してください。

保存済みフィルターから抑制ルールを作成するには、次の手順を実行します。
  1. https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。

  2. [Findings] (検出結果) ページで、[Suppress findings] (検出結果の抑制) をクリックして、抑制ルールパネルを開きます。

  3. [Saved rules] (保存済みのルール) ドロップダウンの一覧から、保存したフィルターを選択します。

  4. 新しいフィルター基準を追加することもできます。フィルター基準を追加する必要がない場合は、この手順をスキップします。

    フィルター基準メニューを開くには、[Add filter criteria] (フィルター基準を追加) に filter criteria を入力します。リストから基準を選択できます。選択した基準の有効な値を入力します。

    注記

    有効な値を判断するには、検出結果テーブルを表示して、抑制する結果を選択します。検出結果パネルで詳細を確認します。

  5. 抑制ルールの [Name] (名前) と [Description] (説明) を入力します。有効な文字は、英数字、ピリオド (.)、ダッシュ (-)、アンダースコア (_)、空白スペースです。

  6. [保存] を選択します。

API/CLI
API を使用して抑制ルールを作成するには
  1. 抑制ルールは、CreateFilter API を使用して作成できます。これを行うには、次に示す例の形式に従って JSON ファイルでフィルター条件を指定します。次の例では、test.example.com ドメインへの DNS リクエストが行われた未アーカイブの重要度の低い検出結果を抑制します。重要度が中の検出結果の場合、入力リストは ["4", "5", "7"] になります。重要度が高の検出結果の場合、入力リストは ["6", "7", "8"] になります。リスト内の任意の 1 つの値に基づいてフィルターすることもできます。

    { "Criterion": { "service.archived": { "Eq": [ "false" ] }, "service.action.dnsRequestAction.domain": { "Eq": [ "test.example.com" ] }, "severity": { "Eq": [ "1", "2", "3" ] } } }

    JSON のフィールド名とそれに相当するコンソールのフィールド名の一覧については、「フィルターの属性」を参照してください。

    フィルター基準をテストするには、ListFindings API で同じ JSON 基準を使用し、正しい検出結果が選択されていることを確認します。を使用してフィルター条件をテストするには、独自の detectorId と .json ファイルを使用して例 AWS CLI に従います。

    アカウントと現在のリージョンdetectorIdの を検索するには、https://console.aws.amazon.com/guardduty/ コンソールの設定ページを参照するか、 ListDetectors API を実行します。

    aws guardduty list-findings --detector-id 12abc34d567e8fa901bc2d34e56789f0 --finding-criteria file://criteria.json
  2. 抑制ルールとして使用するフィルターを CreateFilter API を使用してアップロードするか、 AWS CLI で次の例に従って独自のディテクター ID、抑制ルール名、.json ファイルを使用してアップロードします。

    アカウントと現在のリージョンdetectorIdの を検索するには、https://console.aws.amazon.com/guardduty/ コンソールの設定ページを参照するか、 ListDetectors API を実行します。

    aws guardduty create-filter --action ARCHIVE --detector-id 12abc34d567e8fa901bc2d34e56789f0 --name yourfiltername --finding-criteria file://criteria.json

ListFilter API を使用して、プログラムでフィルターのリストを表示できます。GetFilter API にフィルター名を指定すると、個々のフィルターの詳細を表示できます。UpdateFilter API を使用してフィルターを更新するか、DeleteFilter API を使用してフィルターを削除します。

抑制ルールを削除する

任意のアクセス方法を選択して、 GuardDuty 検出結果タイプの抑制ルールを削除します。

Console
  1. https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。

  2. [Findings] (検出結果) ページで、[Suppress findings] (検出結果の抑制) をクリックして、抑制ルールパネルを開きます。

  3. [Saved rules] (保存済みのルール) ドロップダウンの一覧から、保存したフィルターを選択します。

  4. [ルールを削除] を選択します。

API/CLI

DeleteFilter API を実行します。特定のリージョンのフィルター名と関連付けられたディテクター ID を指定します。

または、赤色の でフォーマットされた値を置き換えることで、次の AWS CLI 例を使用することもできます。

aws guardduty delete-filter --region us-east-1 --detector-id 12abc34d567e8fa901bc2d34e56789f0 --filter-name filterName

アカウントと現在のリージョンdetectorIdの を検索するには、https://console.aws.amazon.com/guardduty/ コンソールの設定ページを参照するか、 ListDetectors API を実行します。