在 Backup 的恶意软件防护中监控扫描状态和结果 - Amazon GuardDuty
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Backup 的恶意软件防护中监控扫描状态和结果

启动恶意软件扫描后, GuardDuty 提供了几种机制,您可以通过这些机制监控扫描的状态和结果。下表提供了一些与恶意软件扫描相关的值。

类别 可能的 值

扫描状态

RUNNINGCOMPLETEDCOMPLETED_WITH_ISSUESFAILEDSKIPPED

扫描类别

FULL_SCANINCREMENTAL_SCAN

扫描类型

GUARDDUTY_INITIATEDON_DEMANDBACKUP_INITIATED

扫描结果状态

NO_THREATS_FOUNDTHREATS_FOUND

*请注意,如果扫描未完成,则可能不会显示扫描结果状态。THREATS_FOUND 的扫描结果状态表示 GuardDuty 检测到恶意软件的存在。

对于 S3 恢复点,COMPLETED_WITH_ISSUES 表示某些文件要么被跳过,要么失败。对于 AMI,COMPLETED_WITH_ISSUES 表示至少有 1 个快照无法扫描。有关跳过的原因列表,请参阅下文。

由于各种原因,也可能跳过扫描。下表说明了可能跳过扫描的原因:

扫描已跳过原因 Reason

ACCESS_DENIED

客户角色没有服务执行扫描所需的权限

RESOURCE_NOT_FOUND

正在尝试扫描的资源不存在于账户中或在扫描过程中被删除

已超出快照大小限制

快照大小大于当前支持的容量 GuardDuty

增量_没有_差异

增量扫描请求中指定的资源没有区别

资源不可用

资源未处于预期状态。如果扫描是增量扫描,则基本恢复点不处于 “可用” 或 “已完成” 状态

不相关的资源

对于增量扫描-基础资源和当前资源不是来自同一个谱系

未扫描基本资源

对于增量扫描-之前未扫描过基础资源或未找到已完成的扫描

BASE_CREATED_ATER_TARGET

对于增量扫描-基础资源的创建日期晚于当前资源的创建日期

不支持增量版

请求的资源类型不支持增量扫描

UNSUPPORTED_AMI

公共 AMI、只有临时存储空间的 AMI 和 AMI 未处于可用状态都不符合扫描条件

不支持的快照

冷存储快照不符合扫描条件

UNSUPPORTED_COMPOSITE_RP

复合资源类型不支持扫描

不支持的_产品_代码_类型

请求的资源包含不支持扫描的亚马逊 Marketplace 产品代码

AMI_SNAPSHOT_LIMIT_已超过

AMI 不支持扫描超过 40 个快照

未找到 EBS_VOLUMES_FOLUMES

未找到所请求资源的 Ebs 区块设备映射

不相关的资源

对于增量扫描-基础资源的 arn 与预期资源的 arn 不同

所有文件_已跳过_或_失败

扫描中的所有文件要么被跳过,要么失败

扫描结果的保留期为 90 天。选择您的首选访问方式来跟踪恶意软件扫描的状态。

使用控制台监控扫描

  1. 打开 GuardDuty 控制台,网址为https://console.aws.amazon.com/guardduty/。

  2. 在导航窗格中,选择恶意软件扫描

  3. 您可以通过筛选条件搜索栏中提供的以下属性筛选恶意软件扫描。

    • 扫描 ID-与恶意软件扫描相关的唯一标识符。

    • 帐户 ID-启动恶意软件扫描的帐户。

    • 资源 ARN — 与扫描关联的亚马逊资源关联的亚马逊资源名称 (ARN)。

    • 资源类型-与扫描关联的资源类型,例如 EC2 实例、EBS 快照 | EC2 AMI、EBS 恢复点、EC2 恢复点或 S3 恢复点。

    • 状态-扫描的扫描状态,例如 “正在运行”、“已跳过”、“已完成”、“已完成,但存在问题” 或 “失败”。

    • 扫描类型-表示这是按需扫描、启动的恶意软件扫描还是备份 GuardDuty启动的恶意软件扫描。

使用 API/CLI 监控扫描

  • 您可以调用 ListMalwareScans 来按RESOURCE_ARN、、、、SCAN_IDACCOUNT_IDSCAN_TYPE GUARDDUTY_FINDING_IDSCAN_STATUSRESOURCE_TYPE、和筛选恶意软件扫描SCAN_START_TIME。您还可以通过提供扫描 ID 作为输入 GetMalwareScan 来调用以检索更详细的扫描元数据。 GuardDuty 启动时,GUARDDUTY_FINDING_ID筛选条件可用。SCAN_TYPE

  • 您可以在下面的命令filter-criteria中更改示例,并且可以根据一个逐个CriterionKey进行筛选。的选项CriterionKeyResource_ARN、、SCAN_IDACCOUNT_IDSCAN_TYPEGUARDDUTY_FINDING_IDSCAN_STATUSRESOURCE_TYPE、和SCAN_START_TIME。您可以更改max-results(最多 50)和sort-criteria。该AttributeName字段是必填字段sort-criteria,必须设置为scanStartTime。在以下示例中,中的值red是占位符。将其替换为适合您账户的值。如果您使用与下面CriterionKey相同的内容 ListMalwareScans,请确保将示例EqualsValue替换为resource-type要筛选依据的示例。

    aws guardduty list-malware-scans --max-results 25 --sort-criteria '{"AttributeName": "scanStartTime", "OrderBy": "DESC"}' --filter-criteria '{"FilterCriterion":[{"CriterionKey":"RESOURCE_TYPE", "FilterCondition":{"EqualsValue":"EBS_SNAPSHOT"}}] }'
    aws guardduty get-malware-scan --scan-id abc123
  • 上述命令的响应 ListMalwareScans 将返回最多 25 次扫描,其中包含有关受影响资源的一些详细信息。上述命令的响应 GetMalwareScan 将返回一次扫描,其中包含有关扫描的详细元数据。

使用监控扫描 EventBridge

Amazon EventBridge 是一项无服务器事件总线服务,可以轻松地将您的应用程序与来自各种来源的数据连接起来。 EventBridge 提供来自您自己的应用程序、 Software-as-a-Service (SaaS) 应用程序和 Amazon 服务的实时数据流,并将这些数据路由到 Lambda 等目标。这使您能够监控服务中发生的事件,并构建事件驱动的架构。有关更多信息,请参阅 Amazon EventBridge 用户指南

GuardDuty 确定扫描状态后,将 EventBridge 通知发布到默认事件总线。您可以在账户中设置 EventBridge 规则,将事件发送到与 Amazon 集成的其他服务 EventBridge。将适用标准 EventBridge 定价。有关更多信息,请参阅 Amazon EventBridge 定价

下面显示的许多值都是示例的占位符,并且会因扫描而异。

恶意软件扫描结果事件

Backup 的潜在详细信息类型值:

  • “GuardDuty 恶意软件防护 EBS 快照扫描结果”

  • “GuardDuty 恶意软件防护 EC2 AMI 扫描结果”

  • “GuardDuty 恶意软件防护 S3 恢复点扫描结果”

  • “GuardDuty 恶意软件防护 EBS 恢复点扫描结果”

  • “GuardDuty 恶意软件防护 EC2 恢复点扫描结果”

事件模式示例:

{ "detail-type": ["GuardDuty Malware Protection EC2 AMI Scan Result"], "source": ["aws.guardduty"] }

未发现威胁的 EC2 AMI 扫描通知架构示例:

{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "detail-type": "GuardDuty Malware Protection EC2 AMI Scan Result", "source": "aws.guardduty", "account": "1111222233334444", "time": "2025-11-01T00:00:00Z", "region": "us-east-1", "resources": ["arn:aws:ec2:us-east-1:1111222233334444:image/ami-1234567890abcdef0"], "detail": { "schemaVersion": "1.0", "scanStatus": "COMPLETED", "resourceType": "EC2_AMI", "scanId": "d41d8cd98f00b204e9800998ecf8427e", "scanStatusReason": null, "scanType": "ON_DEMAND", "triggerType": "GUARDDUTY", "scanCategory": "FULL_SCAN", "scanStartTime": 1234567890123, "scanCompleteTime": 2345678901234, "scanResultDetails": { "scanResultStatus": "NO_THREATS_FOUND", "uniqueThreatCount": null } } }

发现威胁的 EC2 AMI 扫描的示例通知架构:

{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "detail-type": "GuardDuty Malware Protection EC2 AMI Scan Result", "source": "aws.guardduty", "account": "1111222233334444", "time": "2025-11-01T00:00:00Z", "region": "us-east-1", "resources": ["arn:aws:ec2:us-east-1:1111222233334444:image/ami-1234567890abcdef0"], "detail": { "schemaVersion": "1.0", "scanStatus": "COMPLETED", "resourceType": "EC2_AMI", "scanId": "d41d8cd98f00b204e9800998ecf8427e", "scanStatusReason": null, "scanType": "ON_DEMAND", "triggerType": "GUARDDUTY", "scanCategory": "FULL_SCAN", "scanStartTime": 1234567890123, "scanCompleteTime": 2345678901234, "scanResultDetails": { "scanResultStatus": "THREATS_FOUND", "uniqueThreatCount": 1, "threats": { "name": "EICAR-Test-File (not a virus)", "source": "AMAZON", "count": 2, "itemDetails": [{ "resourceArn": "arn:aws:ec2:us-east-1:1111222233334444:snapshot/snap-abcdef01234567890", "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "itemPath": "/eicar.txt", "additionalInfo": { "versionId": null, "deviceName": "/dev/sdf" } }] } } } }

已跳过 EC2 AMI 扫描的通知架构示例:

{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333", "detail-type": "GuardDuty Malware Protection EC2 AMI Scan Result", "source": "aws.guardduty", "account": "1111222233334444", "time": "2025-11-01T00:00:00Z", "region": "us-east-1", "resources": ["arn:aws:ec2:us-east-1:1111222233334444:image/ami-1234567890abcdef0"], "detail": { "schemaVersion": "1.0", "scanStatus": "SKIPPED", "resourceType": "EC2_AMI", "scanId": "d41d8cd98f00b204e9800998ecf8427e", "scanStatusReason": "UNSUPPORTED_AMI", "scanType": "ON_DEMAND", "triggerType": "GUARDDUTY", "scanCategory": "FULL_SCAN", "scanStartTime": 1234567890123, "scanCompleteTime": 2345678901234, "scanResultDetails": { "uniqueThreatCount": null, "threats": null } } }