GuardDuty での検出結果のフィルタリング - Amazon GuardDuty

GuardDuty での検出結果のフィルタリング

検出結果フィルターを使用すると、指定した条件に一致する検出結果を表示し、一致しない検出結果を除外できます。Amazon GuardDuty コンソールを使用して検出結果フィルターを簡単に作成することも、JSON を使用して CreateFilter API を使用してフィルターを作成することもできます。コンソールでフィルターを作成する方法については、次のセクションを参照してください。これらのフィルターを使用して受信した検出結果を自動的にアーカイブするには、「GuardDuty の抑制ルール」を参照してください。

フィルターを作成するときは、以下のリストを考慮してください。

  • GuardDuty は、フィルター条件のワイルドカードをサポートしていません

  • 特定のフィルターのための基準として、最少 1 から最大 50 までの属性を指定できます。

  • アカウント ID などの属性値でフィルタリングする際に 等号演算子または 不等号演算子の条件を使用する最合、最大で 50 個の値を指定できます。

  • 各フィルター基準の属性は AND 演算子として評価されます。同じ属性の複数の値は AND/OR として評価されます。

  • AWS リージョン 内の AWS アカウント ごとに作成できる保存済みフィルターの最大数の詳細については、GuardDuty クォータ を参照してください。

以下のセクションでは、GuardDuty コンソール、API コマンド、CLI コマンドを用いたフィルターの作成と保存手順について説明します。好みのアクセス方法を選択して続行します。

GuardDuty コンソールでのフィルターの作成と保存

検出結果フィルターは、GuardDuty コンソールを通して 作成およびテストすることができます。抑制ルールやその後のフィルターオペレーションで使用するためにコンソールを通して作成したフィルターは、保存できます。フィルターは、少なくとも 1 つのフィルター基準で構成されます。その基準は少なくとも 1 つの値と組み合わさった 1 つのフィルター属性で構成されています。

フィルター条件を作成および保存するには (コンソール)
  1. AWS マネジメントコンソール にサインインし、https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。

  2. 左のナビゲーションペインで [検出結果] を選択します。

  3. [検出結果] ページで、[保存されたルール] メニューの横にある [フィルター検出結果] バーを選択します。これにより、プロパティフィルターの展開されたリストが表示されます。

    プロパティフィルターを選択して、GuardDuty コンソールで検出結果をフィルタリングします。
  4. フィルターの展開されたリストから、検出結果テーブルをフィルタリングする属性を選択します。

    例えば、影響を受ける可能性のあるリソースが S3Bucket である検出結果を表示するには、[リソースタイプ] を選択します。

  5. 演算子 では、検出結果をフィルタリングして目的の検出結果を得るのに役立つものを選択します。前のステップの例を続行するには、[リソースタイプ =] を選択します。これにより、GuardDuty のリソースタイプのリストが表示されます。

    等号演算子または不等号演算子を選択して、GuardDuty コンソールで検出結果をフィルタリングします。

    ユースケースで特定の検出結果を除外する必要がある場合は、不等号または != 演算子を選択できます。

  6. 選択したプロパティフィルターの値を指定します。必要に応じて、[適用] を選択します。前のステップの例を続行するには、[S3Bucket] を選択します。

    これにより、適用されたフィルターに一致する検出結果が表示されます。

  7. 複数のフィルター条件を追加するには、3 から 6 の手順を繰り返します。

    属性の詳細なリストについては、「GuardDuty のプロパティフィルター」を参照してください。

  8. (オプション) 指定された属性と値をフィルターとして保存します

    このフィルターの組み合わせを将来再度適用するには、指定された属性とその値をフィルターセットとして保存できます。

    1. 1 つ以上のプロパティフィルターでフィルター条件を作成したら、[フィルターをクリア] メニューで [矢印] を選択します。

      GuardDuty コンソールにフィルターセットを保存して、検出結果を再度フィルタリングできるようにします。
    2. フィルターセット [名前] を入力します。名前は 3~64 文字にする必要があります。有効な文字は、a-z、A~Z、0~9、ピリオド ( )、ハイフン (-)、アンダースコア (_) です。

    3. 説明はオプションです。説明を入力する場合、最大 512 文字まで使用できます。

    4. [作成] を選択します。

GuardDuty API と CLI を使用したフィルターセットの作成と保存

API または CLI コマンドを使用して、検出結果フィルターを作成してテストできます。フィルターは、少なくとも 1 つのフィルター基準で構成されます。その基準は少なくとも 1 つの値と組み合わさった 1 つのフィルター属性で構成されています。フィルターを保存して、後で 抑制ルール を作成したり他のフィルターオペレーションを実行したりできます。

API/CLI を使用して検出結果フィルターを作成するには
  • フィルターを作成する AWS アカウント のリージョンディテクター ID を使用して CreateFilter API を実行します。

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

  • または、create-filter CLI を使用してフィルターを作成して保存することもできます。GuardDuty のプロパティフィルター から 1 つ以上のフィルター条件を使用できます。

    赤で示されているプレースホルダー値を置き換えて、以下の例を使用します。

    例 1: 特定の検出結果タイプに一致するすべての検出結果を表示する新しいフィルターを作成する

    次の例では、特定のイメージから作成されたインスタンスのすべての PortScan 検出結果に一致するフィルターを作成します。プレースホルダー値は赤で示されます。これらの値をアカウントに適した値に置き換えます。例えば 12abc34d567e8fa901bc2d34EXAMPLE を自分のリージョン detector-id に置き換えます。

    aws guardduty create-filter \ --detector-id 12abc34d567e8fa901bc2d34EXAMPLE \ --name FilterExampleName \ --finding-criteria '{"Criterion": {"type": {"Equals": ["Recon:EC2/Portscan"]}, "resource.instanceDetails.imageId": {"Equals":["ami-0a7a207083example"]}} }'
    例 2: 重要度レベルに一致するすべての検出結果を表示する新しいフィルターを作成する

    次の例では、HIGH 重要度レベルに関連付けられたすべての検出結果に一致するフィルターを作成します。プレースホルダー値は赤で示されます。これらの値をアカウントに適した値に置き換えます。例えば 12abc34d567e8fa901bc2d34EXAMPLE を自分のリージョン detector-id に置き換えます。

    aws guardduty create-filter \ --detector-id 12abc34d567e8fa901bc2d34EXAMPLE \ --name FilterExampleName \ --finding-criteria '{"Criterion": {"severity": {"Equals": ["7", "8"]}} }'
  • API/CLI の場合、検出結果の重要度レベル は数字で表されます。深刻度レベルに基づいて結果をフィルタリングするには、以下の値を使用してください。

    • LOW 重要度レベルには、{ "severity": { "Equals": ["1", "2", "3"] } } を使用します

    • MEDIUM 重要度レベルには、{ "severity": { "Equals": ["4", "5", "6"] } } を使用します

    • HIGH 重要度レベルには、{ "severity": { "Equals": ["7", "8"] } } を使用します

    • CRITICAL 重要度レベルには、{ "severity": { "Equals": ["9", "10"] } } を使用します

    • 複数の重要度レベルの検出結果については、次の例のようなプレースホルダー値を使用します。{ "severity": { "Equals": ["7", "8", "9", "10"] } }

      この例では、HIGH または CRITICAL の重要度レベルを持つ検出結果を示します。

      注記

      重要度レベルに関連付けられた数値のすべてではなく、1 つの数値のみを持つ例を指定した場合、API と CLI ではフィルタリングされた結果が表示されることがあります。この保存されたフィルターセットを GuardDuty コンソールで使用すると、期待どおりに動作しません。これは、GuardDuty コンソールがフィルター値を CRITICALHIGHMEDIUM、および LOW と見なすためです。例えば、{ "severity": { "Equals": ["9"] } } を含む CLI コマンドで作成されたフィルターは、API/CLI で適切な出力を表示することが期待されます。ただし、GuardDuty コンソールで使用した場合、この保存されたフィルターには重要度レベルが部分的に含まれ、期待通りの出力は表示されません。このため、API と CLI では各重要度レベルに関連付けられたすべての値を指定する必要があります。

GuardDuty のプロパティフィルター

API オペレーションを使用してフィルターを作成したり、検出結果を並べ替える場合は、JSON 中でフィルター基準を特定する必要があります。これらのフィルター基準は、検出結果の詳細 JSON と相関します。次の表にフィルター属性のコンソール表示名と、それに対応する JSON フィールド名のリストを表示します。

コンソールフィールド名

JSON フィールド名

アカウント ID

accountId

検出結果 ID

id

リージョン

region

緊急度

severity

検出結果タイプの重要度レベルに基づいて検出結果タイプをフィルタリングできます。重要度の値についての詳細は、「GuardDuty の検出結果の重要度」を参照してください。API、AWS CLI、CloudFormation で severity を使用する場合は数値が割り当てられます。詳細については、「Amazon GuardDuty API リファレンス」の「findingCriteria」を参照してください。

検出結果タイプ

type

更新時刻

updatedAt

アクセスキー ID

resource.accessKeyDetails.accessKeyId

プリンシパル ID

resource.accessKeyDetails.principalId

ユーザーネーム

resource.accessKeyDetails.userName

ユーザータイプ

resource.accessKeyDetails.userType

IAM インスタンスプロファイル ID

resource.instanceDetails.iamInstanceProfile.id

インスタンス ID

resource.instanceDetails.instanceId

インスタンスイメージ ID

resource.instanceDetails.imageId

インスタンスのタグキー。

resource.instanceDetails.tags.key

インスタンスのタグ値。

resource.instanceDetails.tags.value

IPv6 アドレス

resource.instanceDetails.networkInterfaces.ipv6Addresses

プライベート IPv4 アドレス

resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

パブリック DNS 名

resource.instanceDetails.networkInterfaces.publicDnsName

パブリック IP

resource.instanceDetails.networkInterfaces.publicIp

セキュリティグループ ID

resource.instanceDetails.networkInterfaces.securityGroups.groupId

セキュリティグループ名

resource.instanceDetails.networkInterfaces.securityGroups.groupName

サブネット ID

resource.instanceDetails.networkInterfaces.subnetId

VPC ID

resource.instanceDetails.networkInterfaces.vpcId

Outpost ARN

resource.instanceDetails.outpostARN

リソースタイプ

resource.resourceType

バケット許可

resource.s3BucketDetails.publicAccess.effectivePermission

バケット名 

resource.s3BucketDetails.name

バケットタグキー

resource.s3BucketDetails.tags.key

バケットタグ値

resource.s3BucketDetails.tags.value

バケットタイプ

resource.s3BucketDetails.type

アクションタイプ

service.action.actionType

呼び出された API

service.action.awsApiCallAction.api

API 発信者のタイプ

service.action.awsApiCallAction.callerType

API エラーコード

service.action.awsApiCallAction.errorCode

API 発信者の都市

service.action.awsApiCallAction.remoteIpDetails.city.cityName

API 発信者の国

service.action.awsApiCallAction.remoteIpDetails.country.countryName

API 発信者の IPv4 アドレス

service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

API 発信者の IPv6 アドレス

service.action.awsApiCallAction.remoteIpDetails.ipAddressV6

API 発信者の ASN ID

service.action.awsApiCallAction.remoteIpDetails.organization.asn

API 発信者の ASN 名

service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

API 発信者のサービス名

service.action.awsApiCallAction.serviceName

DNS リクエストドメイン

service.action.dnsRequestAction.domain

DNS リクエストドメインサフィックス

service.action.dnsRequestAction.domainWithSuffix

ブロック済みのネットワーク接続

service.action.networkConnectionAction.blocked

ネットワーク接続の方向

service.action.networkConnectionAction.connectionDirection

ネットワーク接続のローカルポート

service.action.networkConnectionAction.localPortDetails.port

ネットワーク接続プロトコル

service.action.networkConnectionAction.protocol

ネットワーク接続の都市

service.action.networkConnectionAction.remoteIpDetails.city.cityName

ネットワーク接続の国

service.action.networkConnectionAction.remoteIpDetails.country.countryName

ネットワーク接続のリモート IPv4 アドレス

service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

ネットワーク接続のリモート IPv6 アドレス

service.action.networkConnectionAction.remoteIpDetails.ipAddressV6

ネットワーク接続のリモート IP ASN ID

service.action.networkConnectionAction.remoteIpDetails.organization.asn

ネットワーク接続のリモート IP ASN 名

service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

ネットワーク接続のリモートポート

service.action.networkConnectionAction.remotePortDetails.port

関連するリモートアカウント

service.action.awsApiCallAction.remoteAccountDetails.affiliated

Kubernetes API 発信者の IPv4 アドレス

service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV4

Kubernetes API 発信者の IPv6 アドレス

service.action.kubernetesApiCallAction.remoteIpDetails.ipAddressV6

Kubernetes 名前空間

service.action.kubernetesApiCallAction.namespace

Kubernetes API 発信者の ASN ID

service.action.kubernetesApiCallAction.remoteIpDetails.organization.asn

Kubernetes API 呼び出しリクエスト URI

service.action.kubernetesApiCallAction.requestUri

Kubernetes API ステータスコード

service.action.kubernetesApiCallAction.statusCode

ネットワーク接続のローカル IPv4 アドレス

service.action.networkConnectionAction.localIpDetails.ipAddressV4

ネットワーク接続のローカル IPv6 アドレス

service.action.networkConnectionAction.localIpDetails.ipAddressV6

プロトコル

service.action.networkConnectionAction.protocol

API 呼び出しのサービス名

service.action.awsApiCallAction.serviceName

API 発信者アカウント ID

service.action.awsApiCallAction.remoteAccountDetails.accountId

脅威リスト名

service.additionalInfo.threatListName

リソースロール

service.resourceRole

EKS クラスター名

resource.eksClusterDetails.name

Kubernetes ワークロード名

resource.kubernetesDetails.kubernetesWorkloadDetails.name

Kubernetes ワークロード名前空間

resource.kubernetesDetails.kubernetesWorkloadDetails.namespace

Kubernetes ユーザー名

resource.kubernetesDetails.kubernetesUserDetails.username

Kubernetes コンテナイメージ

resource.kubernetesDetails.kubernetesWorkloadDetails.containers.image

Kubernetes コンテナイメージのプレフィックス

resource.kubernetesDetails.kubernetesWorkloadDetails.containers.imagePrefix

スキャン ID

service.ebsVolumeScanDetails.scanId

EBS ボリュームスキャンの脅威名

service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.name

S3 オブジェクトスキャンの脅威名

service.malwareScanDetails.threats.name

脅威の重要度

service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.severity

SHA ファイル

service.ebsVolumeScanDetails.scanDetections.threatDetectedByName.threatNames.filePaths.hash

ECS クラスター名

resource.ecsClusterDetails.name

ECS コンテナイメージ

resource.ecsClusterDetails.taskDetails.containers.image

ECS タスク定義 ARN

resource.ecsClusterDetails.taskDetails.definitionArn

スタンドアロンコンテナのイメージ

resource.containerDetails.image

データベースインスタンス ID

resource.rdsDbInstanceDetails.dbInstanceIdentifier

データベースクラスター ID

resource.rdsDbInstanceDetails.dbClusterIdentifier

データベースエンジン

resource.rdsDbInstanceDetails.engine

データベースユーザー

resource.rdsDbUserDetails.user

データベースインスタンスのタグキー

resource.rdsDbInstanceDetails.tags.key

データベースインスタンスのタグ値

resource.rdsDbInstanceDetails.tags.value

実行可能ファイル SHA-256

service.runtimeDetails.process.executableSha256

プロセス名

service.runtimeDetails.process.name

実行可能ファイルのパス

service.runtimeDetails.process.executablePath

Lambda 関数の名前

resource.lambdaDetails.functionName

Lambda 関数の ARN

resource.lambdaDetails.functionArn

Lambda 関数タグキー

resource.lambdaDetails.tags.key

Lambda 関数タグ値

resource.lambdaDetails.tags.value

DNS リクエストドメイン

service.action.dnsRequestAction.domainWithSuffix