使用 Amazon Inspector 扫描 Amazon EC2 实例 - Amazon Inspector

使用 Amazon Inspector 扫描 Amazon EC2 实例

Amazon Inspector Amazon EC2 扫描会从 EC2 实例提取元数据,然后再将这些元数据与从安全公告中收集的规则进行比较。Amazon Inspector 会扫描实例中是否存在程序包漏洞和网络可达性问题,然后生成调查发现。Amazon Inspector 每 24 小时执行一次网络可达性扫描,而程序包漏洞扫描的执行节奏各不相同,具体取决于与 EC2 实例关联的扫描方法。

程序包漏洞扫描可以使用基于代理无代理的扫描方法执行。这两种扫描方法决定了 Amazon Inspector 如何以及何时从 EC2 实例收集软件清单来进行程序包漏洞扫描。基于代理的扫描使用 SSM Agent 收集软件清单,无代理扫描使用 Amazon EBS 快照收集软件清单。

Amazon Inspector 使用您为账户激活的扫描方法。首次激活 Amazon Inspector 时,您的账户会自动注册混合扫描类型,同时使用这两种扫描方法。不过,您可以随时更改此设置。有关如何激活扫描类型的信息,请参阅激活扫描类型。本节提供了有关 Amazon EC2 扫描的信息。

基于代理的扫描

在所有符合条件的实例上,我们使用 SSM 代理持续执行基于代理的扫描。对于基于代理的扫描,Amazon Inspector 使用 SSM 关联以及通过这些关联安装的插件从实例收集软件清单。除了对操作系统程序包进行程序包漏洞扫描外,Amazon Inspector 基于代理的扫描还可以通过基于 Linux 的 Amazon EC2 实例的 Amazon Inspector 深度检查,检测基于 Linux 的实例中的应用程序编程语言包是否存在程序包漏洞。

以下过程说明了 Amazon Inspector 如何使用 SSM 收集清单和执行基于代理的扫描:

  1. Amazon Inspector 会在您的账户中创建 SSM 关联,以便从实例中收集清单。对于某些实例类型(Windows 和 Linux),这些关联会在单个实例上安装插件以收集清单。

  2. Amazon Inspector 使用 SSM 从实例中提取程序包清单。

  3. Amazon Inspector 会评估提取的清单,并针对检测到的任何漏洞生成调查发现。

符合条件的实例

如果实例满足以下条件,Amazon Inspector 将使用基于代理的方法对其进行扫描:

  • 该实例具有支持的操作系统。有关支持的操作系统列表,请参阅支持的操作系统:Amazon EC2 扫描基于代理的扫描支持列。

  • 未使用 Amazon Inspector EC2 排除标签将该实例排除在扫描范围之外。

  • 该实例由 SSM 托管。有关验证和配置该代理的说明,请参阅配置 SSM 代理

基于代理的扫描行为

使用基于代理的扫描方法时,在以下情况下,Amazon Inspector 会对 EC2 实例启动新的漏洞扫描:

  • 启动新 EC2 实例时。

  • 在现有 EC2 实例(Linux 和 Mac)上安装新软件时。

  • Amazon Inspector 在其数据库中添加新的常见脆弱性和风险 (CVE) 项目,且该 CVE 与您的 EC2 实例(Linux 和 Mac)相关时。

初始扫描完成后,Amazon Inspector 会更新 EC2 实例的上次扫描时间字段。此后,当 Amazon Inspector 评估 SSM 清单时(默认为每 30 分钟一次),或者由于影响实例的新 CVE 被添加到 Amazon Inspector 数据库而需要重新扫描该实例时,上次扫描时间字段就会更新。

您可以通过账户管理页面的“实例”选项卡或通过 ListCoverage 命令查看上次扫描 EC2 实例是否存在漏洞的时间。

配置 SSM 代理

为了让 Amazon Inspector 检测到使用基于代理的扫描方法的 Amazon EC2 实例的软件漏洞,该实例必须是 Amazon EC2 Systems Manager(SSM)中的托管实例。SSM 托管实例已安装并运行了 SSM 代理,SSM 有权管理该实例。如果您已经在使用 SSM 来管理实例,那么无需执行其他步骤,即可开始基于代理的扫描。

使用某些亚马逊机器映像 (AMI) 创建的 EC2 实例默认安装了 SSM 代理。有关更多信息,请参阅 AWS Systems Manager 用户指南中的关于 SSM 代理。但是,即使已经安装了 SSM 代理,您也可能需要手动激活 SSM 代理,并授予 SSM 管理实例的权限。

以下步骤介绍了如何使用 IAM 实例配置文件将 Amazon EC2 实例配置为托管实例。这些步骤还提供了指向 AWS Systems Manager 用户指南中更多详细信息的链接。

附加实例配置文件时,建议使用 AmazonSSMManagedInstanceCore 策略。该策略拥有 Amazon Inspector EC2 扫描所需的所有权限。

注意

您还可以使用 SSM 默认主机管理配置,自动通过 SSM 管理所有 EC2 实例,而无需使用 IAM 实例配置文件。有关更多信息,请参阅默认主机管理配置

为 Amazon EC2 实例配置 SSM
  1. 如果操作系统供应商未安装 SSM 代理,请先安装。有关更多信息,请参阅使用 SSM 代理

  2. 使用 AWS CLI 验证 SSM 代理是否正在运行。有关更多信息,请参阅检查 SSM 代理状态并启动代理

  3. 向 SSM 授予管理实例的权限。您可以通过创建 IAM 实例配置文件并将其附加到实例来授予相应权限。我们建议使用 AmazonSSMManagedInstanceCore 策略,因为该策略具有 Amazon Inspector 扫描所需的 SSM Distributor、SSM Inventory 和 SSM State Manager 权限。有关创建具有这些权限的实例配置文件并将其附加到实例的说明,请参阅为 Systems Manager 配置实例权限

  4. (可选)激活 SSM 代理的自动更新。有关更多信息,请参阅自动更新 SSM 代理

  5. (可选)将 Systems Manager 配置为使用 Amazon Virtual Private Cloud(Amazon VPC)端点。有关更多信息,请参阅创建 Amazon VPC 端点

重要

Amazon Inspector 需要您的账户中具有 Systems Manager State Manager 关联才能收集软件应用程序清单。如果不存在相应关联,Amazon Inspector 会自动创建一个名为 InspectorInventoryCollection-do-not-delete 的关联。

Amazon Inspector 还需要资源数据同步,如果不存在相应同步,则会自动创建一个名为 InspectorResourceDataSync-do-not-delete 的同步。有关更多信息,请参阅 AWS Systems Manager 用户指南中的配置清单的资源数据同步。每个账户可在每个区域拥有一定数量的资源数据同步。有关更多信息,请参阅 SSM 端点和配额中的“最大资源数据同步数(每 AWS 账户每区域)”。

为扫描创建的 SSM 资源

Amazon Inspector 需要您的账户中有大量 SSM 资源才能运行 Amazon EC2 扫描。以下资源是在您首次激活 Amazon Inspector EC2 扫描时创建的:

注意

如果仍在为您的账户激活 Amazon Inspector Amazon EC2 扫描时删除了其中任何 SSM 资源,Amazon Inspector 将在下一个扫描间隔尝试重新创建这些资源。

InspectorInventoryCollection-do-not-delete

这是一个 Systems Manager State Manager (SSM) 关联,Amazon Inspector 使用它从您的 Amazon EC2 实例收集软件应用程序清单。如果您的账户已经有用于从 InstanceIds* 中收集清单的 SSM 关联,则 Amazon Inspector 将使用该关联而不是自己创建。

InspectorResourceDataSync-do-not-delete

这是一个资源数据同步,Amazon Inspector 使用它将收集的清单数据从 Amazon EC2 实例发送到 Amazon Inspector 拥有的 Amazon S3 存储桶。有关更多信息,请参阅 AWS Systems Manager 用户指南中的配置清单的资源数据同步

InspectorDistributor-do-not-delete

这是 Amazon Inspector 用于扫描 Windows 实例的 SSM 关联。此关联会在 Windows 实例上安装 Amazon Inspector SSM 插件。如果插件文件被无意中删除,则此关联将在下一个关联间隔重新安装它。

InvokeInspectorSsmPlugin-do-not-delete

这是 Amazon Inspector 用于扫描 Windows 实例的 SSM 关联。此关联使 Amazon Inspector 可以使用该插件启动扫描,您也可以使用它来设置扫描 Windows 实例的自定义间隔。有关更多信息,请参阅 为 Windows 实例扫描设置自定义计划

InspectorLinuxDistributor-do-not-delete

这是 Amazon Inspector 用于 Amazon EC2 Linux 深度检查的 SSM 关联。此关联会在 Linux 实例上安装 Amazon Inspector SSM 插件。

InvokeInspectorLinuxSsmPlugin-do-not-delete

这是 Amazon Inspector 用于 Amazon EC2 Linux 深度检查的 SSM 关联。此关联使 Amazon Inspector 可以使用该插件启动扫描。

注意

停用 Amazon Inspector Amazon EC2 扫描或深度检查时,将不再调用 SSM 资源 InvokeInspectorLinuxSsmPlugin-do-not-delete

无代理扫描

当您的账户处于混合扫描模式时,Amazon Inspector 会对符合条件的实例使用无代理扫描方法。混合扫描模式包括基于代理的扫描和无代理扫描,当您激活 Amazon EC2 扫描时会自动启用。

对于无代理扫描,Amazon Inspector 使用 EBS 快照从您的实例收集软件清单。无代理扫描会对实例进行扫描,看其是否存在操作系统程序包和应用程序编程语言程序包漏洞。

注意

扫描 Linux 实例是否存在应用程序编程语言包漏洞时,无代理方法会扫描所有可用路径,而基于代理的扫描仅扫描默认路径和您在基于 Linux 的 Amazon EC2 实例的 Amazon Inspector 深度检查中指定的其他路径。这可能会导致同一个实例有不同的调查发现,具体取决于它是使用基于代理的方法还是使用无代理方法进行扫描。

以下过程说明了 Amazon Inspector 如何使用 EBS 快照收集清单和执行无代理扫描:

  1. Amazon Inspector 会为附加到实例的所有卷创建一个 EBS 快照。当 Amazon Inspector 使用它时,快照存储在您的账户中,会使用 InspectorScan 标签键进行标记,并使用唯一的扫描 ID 作为标签值。

  2. Amazon Inspector 使用 EBS 直接 API 从快照中检索数据,并评估它们是否存在漏洞。针对任何检测到的漏洞,都会生成调查发现。

  3. Amazon Inspector 会删除它在您的账户中创建的 EBS 快照。

符合条件的实例

如果实例满足以下条件,Amazon Inspector 将使用无代理方法对其进行扫描:

  • 该实例具有支持的操作系统。有关更多信息,请参阅支持的操作系统:Amazon EC2 扫描的“基于代理的扫描支持”列。

  • 该实例的状态为 Unmanaged EC2 instanceStale inventoryNo inventory

  • 该实例由 Amazon EBS 支持,具有以下文件系统格式之一:

    • ext3

    • ext4

    • xfs

  • 未使用 Amazon EC2 排除标签将该实例排除在扫描范围之外。

  • 连接到该实例的卷数量小于 8 个,其总大小小于或等于 1200 GB。

无代理扫描行为

当您的账户配置为混合扫描时,Amazon Inspector 会每 24 小时对符合条件的实例执行一次无代理扫描。Amazon Inspector 每小时都会检测和扫描新的符合条件的实例,其中包括没有 SSM 代理的新实例,或者状态已更改为 SSM_UNMANAGED 的现有实例。

每当 Amazon Inspector 在无代理扫描后扫描从实例提取的快照时,都会更新 Amazon EC2 实例的上次扫描时间字段。

您可以通过账户管理页面的“实例”选项卡或通过 ListCoverage 命令查看上次扫描 EC2 实例是否存在漏洞的时间。

管理扫描模式

EC2 扫描模式决定了 Amazon Inspector 在您的账户中执行 EC2 扫描时将使用哪些扫描方法。您可以在常规设置下的 EC2 扫描设置页面查看账户的扫描模式。独立账户或 Amazon Inspector 委派管理员可以更改扫描模式。当您将扫描模式设置为 Amazon Inspector 委派管理员时,系统会为您组织中的所有成员账户设置该扫描模式。Amazon Inspector 具有以下扫描模式:

基于代理的扫描 – 在此扫描模式下,Amazon Inspector 在扫描程序包漏洞时将仅使用基于代理的扫描方法。此扫描模式仅扫描您账户中的 SSM 托管实例,但其好处是可以提供持续扫描,以响应新的 CVE 或对实例的更改。基于代理的扫描还可以为符合条件的实例提供 Amazon Inspector 深度检查。这是新激活账户的默认扫描模式。

混合扫描 – 在此扫描模式下,Amazon Inspector 将结合使用基于代理和无代理的方法来扫描程序包漏洞。对于安装并配置了 SSM 代理的符合条件的 EC2 实例,Amazon Inspector 会使用基于代理的方法。对于不受 SSM 管理的符合条件的实例,Amazon Inspector 将对符合条件且由 EBS 支持的实例使用无代理方法。

更改扫描模式
  1. 使用您的凭证登录,然后打开 Amazon Inspector 控制台,网址为:https://console.aws.amazon.com/inspector/v2/home

  2. 使用页面右上角的 AWS 区域选择器,选择要更改 EC2 扫描模式的区域。

  3. 在侧面导航面板的常规设置下,选择 EC2 扫描设置

  4. 扫描模式下,选择编辑

  5. 选择一个扫描模式,然后选择保存更改

从 Amazon Inspector 扫描中排除实例

可以使用 InspectorEc2Exclusion 密钥为 Linux 和 Windows 实例添加标签,从而将其排除在 Amazon Inspector 扫描范围之外。包括标签值是可选的。有关添加标签的信息,请参阅标记 Amazon EC2 资源

当为实例添加标签以将其排除在 Amazon Inspector 扫描范围之外时,Amazon Inspector 会将该实例标记为已排除,且不会为其创建调查发现。但是,Amazon Inspector SSM 插件将继续被调用。要防止调用该插件,必须允许访问实例元数据中的标签

注意

您无需为排除的实例付费。

此外,您可以为用于加密 EBS 卷的 AWS KMS 密钥添加 InspectorEc2Exclusion 标签,将该加密卷排除在无代理扫描范围之外。有关更多信息,请参阅标记密钥

支持的操作系统

Amazon Inspector 会扫描支持的 Mac、Windows 和 Linux EC2 实例,查找操作系统程序包中的脆弱性。对于 Linux 实例,Amazon Inspector 可以使用 基于 Linux 的 Amazon EC2 实例的 Amazon Inspector 深度检查 生成应用程序编程语言包的调查发现。对于 Mac 和 Windows 实例,仅扫描操作系统程序包。

有关支持的操作系统的信息,包括无需 SSM 代理即可扫描哪些操作系统,请参阅Amazon EC2 实例的状态值