在 GuardDuty 中筛选调查发现 - Amazon GuardDuty
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 GuardDuty 中筛选调查发现

调查发现筛选条件允许您查看匹配指定条件的调查发现,筛选出任何不匹配的调查发现。您可以使用 Amazon GuardDuty 控制台轻松创建调查发现筛选条件,也可以使用 JSON 通过 CreateFilter API 创建筛选条件。查看以下部分,了解如何在控制台中创建筛选条件。要使用这些筛选条件自动存档传入的调查发现,请参阅 GuardDuty 中的抑制规则

创建筛选条件时,请考虑以下事项:

  • GuardDuty 不支持筛选条件使用通配符。

  • 您可以指定最少 1 个属性,最多 50 个属性作为特定筛选条件。

  • 当您使用等于不等于运算符来筛选账户 ID 等属性值时,最多可以指定 50 个值。

  • 每个筛选条件属性都作为 AND 运算符进行计算。同一属性的多个值计算为 AND/OR

  • 有关可在每个 Amazon Web Services 区域的 Amazon Web Services 账户中创建的已保存筛选条件最大数量的信息,请参阅 GuardDuty 配额

以下各节说明了如何使用 GuardDuty 控制台、API 和 CLI 命令创建和保存筛选条件。选择首选访问方法以继续操作。

在 GuardDuty 控制台中创建和保存筛选条件集

可通过 GuardDuty 控制台创建和测试调查发现筛选条件。您可以保存通过控制台创建的筛选条件,以便在抑制规则或在将来的筛选操作中使用。筛选条件由至少一个筛选标准组成,包含一个与至少一个值配对的筛选条件属性。

创建和保存筛选条件(控制台)
  1. 登录 Amazon Web Services 管理控制台,打开 GuardDuty 控制台:https://console.aws.amazon.com/guardduty/

  2. 在左侧导航窗格中,选择发现

  3. 调查发现页面上,选择已保存规则菜单旁边的筛选调查发现栏。这将显示展开的属性筛选条件列表。

    在 GuardDuty 控制台中选择“属性筛选条件”以筛选调查发现。
  4. 从展开的筛选条件列表中,选择希望据以筛选调查发现表的属性。

    例如,要查看可能受影响资源为 S3Bucket 的调查发现,请选择资源类型。

  5. 对于运算符,请选择一个有助于筛选调查发现以获得所需结果的运算符。要继续执行上一步中的示例,可以选择资源类型 =。这将显示 GuardDuty 中的资源类型列表。

    在 GuardDuty 控制台中选择“等于”或“不等于”运算符以筛选调查发现。

    如果使用案例需要排除特定调查发现,则可以选择不等于!= 运算符。

  6. 为所选属性筛选条件指定值。如果需要,选择应用。要继续执行上一步中的示例,可以选择 S3Bucket

    这将显示与应用的筛选条件匹配的调查发现。

  7. 要添加多个筛选条件,请重复步骤 3 – 6。

    有关完整的属性列表,请参阅GuardDuty 中的属性筛选条件

  8. (可选)将指定的属性和值保存为筛选条件

    为了将来能再次应用此筛选条件组合,您可以将指定的属性及其值另存为筛选条件集。

    1. 使用一个或多个属性筛选条件创建筛选条件后,请在清除筛选条件菜单中选择箭头

      在 GuardDuty 控制台中保存筛选条件集,以便能够再次筛选调查发现。
    2. 输入筛选条件集的名称。名称必须具有 3 到 64 个字符。有效字符包括 a-z、A-Z、0-9、句点 (.)、连字符 (-) 和下划线 (_)。

    3. 描述是为可选项。如果输入描述,最多可包含 512 个字符。

    4. 选择创建

使用 GuardDuty API 和 CLI 创建和保存筛选条件集

您可以使用 API 或 CLI 命令创建和测试调查发现筛选条件。筛选条件由至少一个筛选标准组成,包含一个与至少一个值配对的筛选条件属性。您可以保存筛选条件以创建 抑制规则或稍后执行其他筛选操作。

使用 API/CLI 创建调查发现筛选条件
  • 使用要在其中创建筛选条件的 Amazon Web Services 账户的区域检测器 ID 运行 CreateFilter API。

    要查找您账户和当前区域的 detectorId,请查看 https://console.aws.amazon.com/guardduty/ 控制台中的设置页面,或者运行 ListDetectors API。

  • 或者,您可以使用 create-filter 来创建和保存筛选条件。您可以使用 GuardDuty 中的属性筛选条件中的一个或多个筛选条件。

    使用以下示例,替换以红色显示的占位符值。

    示例 1:创建新筛选条件,以查看与特定调查发现类型匹配的所有调查发现

    以下示例创建了一个筛选条件,其与从特定映像中创建的实例的所有 PortScan 调查发现匹配。占位符值以红色显示。将这些值替换为适用于账户的值。例如,将 12abc34d567e8fa901bc2d34EXAMPLE 替换为区域检测器 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 替换为区域检测器 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"] } }

      此示例将显示具有 HIGHCRITICAL 严重性级别的调查发现。

      注意

      如果您指定的示例仅包含一个数值,而不包含与严重性级别相关联的所有数值,API 和 CLI 可能会显示筛选后的调查发现。但是,如果在 GuardDuty 控制台中使用此已保存的筛选条件集,它将无法按预期运行。这是因为 GuardDuty 控制台将筛选条件值视为 CRITICALHIGHMEDIUMLOW。例如,使用包含 { "severity": { "Equals": ["9"] } } 的 CLI 命令创建的筛选条件,预计会在 API/CLI 中显示相应的输出。但是,此已保存的筛选条件在 GuardDuty 控制台中使用时仅包含部分严重性级别,因此不会显示预期输出。这使得 API 和 CLI 必须指定与每个严重性级别相关联的所有数值。

GuardDuty 中的属性筛选条件

使用 API 操作创建筛选条件或对结果进行排序时,必须在 JSON 中指定筛选条件。这些筛选条件与调查发现的详细信息 JSON 相关。下表列出了筛选条件属性的控制台显示名称,以及其等效的 JSON 字段名称。

控制台字段名称

JSON 字段名称

账户 ID

accountId

调查发现 ID

id

区域

区域

严重性

severity

您可以根据调查发现类型的严重性级别筛选调查发现类型。有关严重性值的更多信息,请参阅 GuardDuty 调查发现的严重性级别。如果将 severity 与 API、Amazon CLI 或 Amazon CloudFormation 一起使用,则会分配一个数值。有关更多信息,请参阅《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

Bucket tag key

resource.s3BucketDetails.tags.key

Bucket tag value

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