在 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 控制台创建和测试调查发现筛选条件。您可以保存通过控制台创建的筛选条件,以便在抑制规则或在将来的筛选操作中使用。筛选条件由至少一个筛选标准组成,包含一个与至少一个值配对的筛选条件属性。
创建和保存筛选条件(控制台)
登录 Amazon Web Services 管理控制台,打开 GuardDuty 控制台:https://console.aws.amazon.com/guardduty/
。 -
在左侧导航窗格中,选择发现。
-
在调查发现页面上,选择已保存规则菜单旁边的筛选调查发现栏。这将显示展开的属性筛选条件列表。
-
从展开的筛选条件列表中,选择希望据以筛选调查发现表的属性。
例如,要查看可能受影响资源为 S3Bucket 的调查发现,请选择资源类型。
-
对于运算符,请选择一个有助于筛选调查发现以获得所需结果的运算符。要继续执行上一步中的示例,可以选择资源类型 =。这将显示 GuardDuty 中的资源类型列表。
如果使用案例需要排除特定调查发现,则可以选择不等于或 != 运算符。
-
为所选属性筛选条件指定值。如果需要,选择应用。要继续执行上一步中的示例,可以选择 S3Bucket。
这将显示与应用的筛选条件匹配的调查发现。
-
要添加多个筛选条件,请重复步骤 3 – 6。
有关完整的属性列表,请参阅GuardDuty 中的属性筛选条件。
-
(可选)将指定的属性和值保存为筛选条件
为了将来能再次应用此筛选条件组合,您可以将指定的属性及其值另存为筛选条件集。
-
使用一个或多个属性筛选条件创建筛选条件后,请在清除筛选条件菜单中选择箭头。
-
输入筛选条件集的名称。名称必须具有 3 到 64 个字符。有效字符包括 a-z、A-Z、0-9、句点 (.)、连字符 (-) 和下划线 (_)。
-
描述是为可选项。如果输入描述,最多可包含 512 个字符。
-
选择创建。
-
使用 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-id12abc34d567e8fa901bc2d34EXAMPLE\ --nameFilterExampleName\ --finding-criteria '{"Criterion": {"type": {"Equals": ["}, "Recon:EC2/Portscan"]resource.instanceDetails.imageId": {"Equals":["ami-0a7a207083example"]}} }' - 示例 2:创建新筛选条件,以查看与严重性级别匹配的所有调查发现
-
以下示例创建了一个筛选条件,其与所有与
HIGH严重性级别相关联的调查发现匹配。占位符值以红色显示。将这些值替换为适用于账户的值。例如,将12abc34d567e8fa901bc2d34EXAMPLE替换为区域检测器 ID。aws guardduty create-filter \ --detector-id12abc34d567e8fa901bc2d34EXAMPLE\ --nameFilterExampleName\ --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严重性级别的调查发现。注意
如果您指定的示例仅包含一个数值,而不包含与严重性级别相关联的所有数值,API 和 CLI 可能会显示筛选后的调查发现。但是,如果在 GuardDuty 控制台中使用此已保存的筛选条件集,它将无法按预期运行。这是因为 GuardDuty 控制台将筛选条件值视为
CRITICAL、HIGH、MEDIUM和LOW。例如,使用包含{ "severity": { "Equals": ["9"] } }的 CLI 命令创建的筛选条件,预计会在 API/CLI 中显示相应的输出。但是,此已保存的筛选条件在 GuardDuty 控制台中使用时仅包含部分严重性级别,因此不会显示预期输出。这使得 API 和 CLI 必须指定与每个严重性级别相关联的所有数值。
-
GuardDuty 中的属性筛选条件
使用 API 操作创建筛选条件或对结果进行排序时,必须在 JSON 中指定筛选条件。这些筛选条件与调查发现的详细信息 JSON 相关。下表列出了筛选条件属性的控制台显示名称,以及其等效的 JSON 字段名称。
控制台字段名称 |
JSON 字段名称 |
|---|---|
账户 ID |
accountId |
调查发现 ID |
id |
区域 |
区域 |
严重性 |
severity 您可以根据调查发现类型的严重性级别筛选调查发现类型。有关严重性值的更多信息,请参阅 GuardDuty 调查发现的严重性级别。如果将 |
结果类型 |
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 |