修复实例的暴露情况 EC2 - AmazonSecurity Hub
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

修复实例的暴露情况 EC2

AmazonSecurity Hub 可以生成亚马逊弹性计算云 (EC2) 实例的暴露结果。

在 Security Hub 控制台上,暴露发现中涉及的 EC2 实例及其识别信息列在发现详情的 “资源” 部分中。通过编程方式,您可以通过 Security Hub CSP GetFindingsV2M API 的操作来检索资源详细信息。

在确定暴露调查发现中涉及的资源后,如果不需要该资源,您可以将其删除。删除不必要的资源可以减少您的曝光概况和Amazon成本。如果资源至关重要,请按照这些建议的修复步骤进行操作以帮助降低风险。修复主题根据特征的类型进行划分。

单个暴露调查发现包含在多个修复主题中发现的问题。相反,您只需解决一个修复主题即可解决暴露调查发现并降低其严重性级别。您的风险修复方法取决于您的组织要求和工作负载。

注意

本主题中提供的补救指南可能需要在其他Amazon资源中进行进一步的咨询。

实例的错误配置特征 EC2

以下是 EC2 实例的错误配置特征和建议的补救步骤。

该 EC2 实例允许使用版本 1 访问 IMDS

实例元数据是有关您的 Amazon EC2 实例的数据,应用程序可以使用这些数据来配置或管理正在运行的实例。实例元数据服务(IMDS)是实例上的组件,在实例上进行编码,用于安全访问实例元数据。如果 IMDS 没有得到适当的保护,它可能会成为潜在的攻击媒介,因为它提供了对临时凭证和其他敏感配置数据的访问权限。 IMDSv2 通过面向会话的身份验证、元数据请求需要会话令牌并限制会话持续时间,从而提供更强的防范漏洞利用保护。按照标准安全原则,Amazon建议您将Amazon EC2 实例配置为使用 IMDSv2 和禁用 IMDSv1。

测试应用程序兼容性

在实施之前 IMDSv2,请测试您的实例以确保其与兼容 IMDSv2。某些应用程序或脚本可能需要 IMDSv1 核心功能,并且需要额外的配置。有关测试应用程序兼容性的工具和推荐路径的更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的转换为使用实例元数据服务版本 2

更新要使用的实例 IMDSv2

修改要使用的现有实例 IMDSv2。有关更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的为现有实例修改实例元数据选项

将更新应用于自动扩缩组中的实例

如果您的实例属于某个自动扩缩组,请使用新配置更新您的启动模板或启动配置,并执行实例刷新。

与 Amazon EC2 实例关联的 IAM 角色具有管理访问策略

管理访问策略为 Amazon EC2 实例提供了广泛的访问权限Amazon Web Services 服务和资源。这些策略通常包含实例功能不需要的权限。在 Amazon EC2 实例遭到入侵时,为其提供具有管理访问策略的 IAM 身份(而不是您的实例配置文件中附加的角色所需的最低权限集)可能会扩大攻击范围。 EC2 如果实例遭到入侵,攻击者可能会利用这些过多的权限在您的环境中横向移动、访问数据或操纵资源。根据标准安全原则,我们建议您授予最低权限,这意味着您仅授予执行任务所需的权限。

查看和识别管理策略

在 IAM 控制面板中,找到具有角色名称的角色。查看附加到 IAM 角色的权限策略。如果该策略是Amazon托管策略,请查找AdministratorAccessIAMFullAccess。否则,请在策略文档中查找带有 "Effect": "Allow", "Action": "*""Resource": "*" 的语句。

实施最低权限访问

将管理策略替换为仅授予实例运行所需的特定权限的策略。有关 IAM 角色的安全最佳实践的更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的应用最低权限许可。要识别不必要的权限,您可以使用 IAM Access Analyzer 来了解如何基于访问历史记录修改策略。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的外部和未使用的访问的调查发现。或者,您可以创建一个新的 IAM 角色,以避免影响使用现有角色的其他应用程序。在这种情况下,请创建一个新的 IAM 角色,然后将新的 IAM 角色与实例关联起来。有关如何替换实例的 IAM 角色的说明,请参阅《Amazon Elastic Compute Cloud 用户指南》中的将 IAM 角色附加到实例

安全配置注意事项

如果实例需要服务级别的管理权限,请考虑实施以下额外安全控制措施来降低风险:

  • 安全配置注意事项

    • 多重身份验证(MFA)– MFA 通过要求其他形式的身份验证来增加额外安全保障。即使凭证遭到泄露,这也有助于防止未经授权的访问。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的需要多重身份验证(MFA)

    • IAM 条件 – 通过设置条件元素,您可以基于源 IP 或 MFA 期限等因素限制何时以及如何使用管理权限。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的使用 IAM 策略中的条件进一步限制访问权限

    • 权限边界 – 权限边界规定了角色可以拥有的最大权限,为具有管理访问权限的角色提供防护。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的使用权限边界在账户内委派权限管理

将更新应用于自动扩缩组中的实例

对于 Amazon auto Scaling 组中的 Amazon EC2 实例,使用新的实例配置文件更新启动模板或启动配置,然后刷新实例。有关更新启动模板的信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的修改启动模板(管理启动模板版本)。有关更多信息,请参阅使用实例刷新更新自动扩缩组中的实例。有关在 Auto Scaling 群组中使用 IAM 角色的更多信息,请参阅 Amazon A EC2 uto Scaling 用户指南中的适用于在亚马逊 EC2实例上运行的应用程序的 IAM 角色。

与 Amazon EC2 实例关联的 IAM 角色具有服务管理员策略

服务访问策略为 Amazon EC2 实例提供了访问Amazon服务和资源的广泛权限。这些策略通常包含实例功能不需要的权限。为一个 IAM 身份提供对 Amazon EC2 实例的管理访问策略,而不是您的实例配置文件中附加的角色所需的最低权限集,可能会在实例遭到入侵时扩大攻击范围。根据标准安全原则,我们建议您授予最低权限,这意味着您仅授予执行任务所需的权限。

查看和识别管理策略

在 IAM 控制面板中,找到具有角色名称的角色。查看附加到 IAM 角色的权限策略。如果该策略是Amazon托管策略,请查找AdministratorAccessIAMFullAccess。否则,请在策略文档中查找带有 "Effect": "Allow", "Action": "*""Resource": "*" 的语句。

实施最低权限访问

将服务管理员策略替换为仅授予实例运行所需的特定权限的策略。有关 IAM 角色的安全最佳实践的更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的应用最低权限许可。要识别不必要的权限,您可以使用 IAM Access Analyzer 来了解如何基于访问历史记录修改策略。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的外部和未使用的访问的调查发现。或者,您可以创建一个新的 IAM 角色,以避免影响使用现有角色的其他应用程序。在这种情况下,请创建一个新的 IAM 角色,然后将新的 IAM 角色与实例关联起来。有关如何替换实例的 IAM 角色的信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的将 IAM 角色附加到实例

安全配置注意事项

如果实例需要服务级别的管理权限,请考虑实施以下额外安全控制措施来降低风险:

安全配置注意事项

如果实例需要服务级别的管理权限,请考虑实施以下额外安全控制措施来降低风险:

  • 多重身份验证(MFA)– MFA 通过要求其他形式的身份验证来增加额外安全保障。即使凭证遭到泄露,这也有助于防止未经授权的访问。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的需要多重身份验证(MFA)

  • IAM 条件 – 通过设置条件元素,您可以基于源 IP 或 MFA 期限等因素限制何时以及如何使用管理权限。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的使用 IAM 策略中的条件进一步限制访问权限

  • 权限边界 – 权限边界规定了角色可以拥有的最大权限,为具有管理访问权限的角色提供防护。有关更多信息,请参阅《Amazon Identity and Access Management 用户指南》中的使用权限边界在账户内委派权限管理

将更新应用于自动扩缩组中的实例

对于 Amazon auto Scaling 组中的 Amazon EC2 实例,使用新的实例配置文件更新启动模板或启动配置,然后刷新实例。有关更新启动模板的信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的修改启动模板(管理启动模板版本)。有关更多信息,请参阅使用实例刷新更新自动扩缩组中的实例。有关在 Auto Scaling 群组中使用 IAM 角色的更多信息,请参阅 Amazon A EC2 uto Scaling 用户指南中的适用于在亚马逊 EC2实例上运行的应用程序的 IAM 角色。

Amazon EC2 实例具有允许 SSH 或 RDP 访问的安全组或网络 ACL

SSH 和 RDP 等远程访问协议允许用户从外部位置连接和管理 Amazon EC2 实例。当安全组允许通过互联网不受限制地访问这些协议时,它们会允许您的实例访问互联网,从而增加您的 Amazon EC2 实例的攻击面。遵循标准的安全原则,Amazon建议您将远程访问限制在特定、可信的 IP 地址或范围内。

  1. 修改安全组规则

    将访问您的 Amazon EC2 实例的权限限制为特定的可信 IP 地址。将 SSH 和 RDP 访问限制为特定的受信任 IP 地址,或者使用 CIDR 表示法指定 IP 范围(例如,198.168.1.0/24)。要修改安全组规则,请参阅《Amazon Elastic Compute Cloud 用户指南》中的配置安全组规则

Amazon EC2 实例有一个开放的安全组

安全组充当您的 Amazon EC2 实例的虚拟防火墙,用于控制入站和出站流量。开放式安全组允许从任何 IP 地址进行不受限制的访问,这可能会使实例面临未经授权的访问。根据标准安全原则,Amazon建议将安全组的访问权限限制为特定 IP 地址和端口。

查看安全组规则并评测当前配置

评估哪些端口已开放且可从广泛的范围 IP 地址(例如 (0.0.0.0/0 or ::/0))访问。有关查看安全组详细信息的说明,请参阅 .NET 移植助手 API 参考DescribeSecurityGroups中的。

修改安全组规则

修改您的安全组规则,将访问限制于特定的受信任 IP 地址或范围。更新安全组规则时,请考虑通过为每个所需的源 IP 地址范围创建规则或限制对特定端口的访问来区分不同网段的访问要求。要修改安全组规则,请参阅 Amazon EC2 用户指南中的配置安全组规则

实例的可达性特征 EC2

以下是 EC2 实例的可访问性特征和建议的补救步骤。

可以通过互联网访问该 EC2 实例

具有可通过互联网网关(包括应用程序负载均衡器或经典负载均衡器后面的实例)、VPC 对等连接或 VPN 虚拟网关从 Internet 访问端口的 Amazon EC2 实例可能会将您的实例暴露在互联网上。根据标准安全原则,我们建议通过将入站流量限制在仅必要的来源和端口来实施最低权限网络访问控制。

修改或移除安全组规则

在 “资源” 选项卡中,打开 Amazon EC2 安全组的资源。检查实例运行是否需要访问互联网。修改或移除允许无限制访问(0.0.0.0/0::/0)的入站安全组规则。根据特定 IP 范围或安全组实施更严格的规则。如果需要有限的公开访问,请将访问限制于实例运行所需的特定端口和协议。有关管理安全组规则的说明,请参阅 Amazon EC2 用户指南中的配置安全组规则

更新网络 ACLs

查看和修改与实例子网关联的网络访问控制列表 (ACLs)。验证 ACL 设置是否与安全组更改一致,并且不会无意中允许公开访问。有关修改网络的说明 ACLs,请参阅 Amazon VPC 用户指南 ACLs中的使用网络

替代访问方法

请考虑以下替代访问方法选项:

  • 使用 NAT 网关进行出站互联网连接 – 对于私有子网中需要访问互联网的实例(例如下载更新),请考虑使用 NAT 网关而不是分配公共 IP 地址。NAT 网关允许私有子网中的实例启动与互联网的出站连接,同时阻止来自互联网的入站连接。

  • 使用 Systems Manager 会话管理器 — 会话管理器提供对您的 Amazon EC2 实例的安全外壳访问权限,无需入站端口、管理 SSH 密钥或维护堡垒主机。

  • 使用 WAF 和 ELB 或 Application Load Balancer — 对于运行 Web 应用程序的实例,可以考虑将 LB 与 Amazon Web 应用程序防火墙 (WAF) 结合使用。 LBs 可以配置为允许您的实例在私有子网中运行,而 LB 在公有子网中运行并处理互联网流量。向负载均衡器添加 WAF 可提供额外保护来抵御 Web 漏洞和机器人。

可以在亚马逊 VPC 内访问亚马逊 EC2 实例

Amazon Virtual Private Cloud(亚马逊 VPC)允许您在定义的虚拟网络中启动Amazon资源。如果某个实例遭到入侵,允许实例之间无限制访问的 Amazon VPC 网络配置可能会扩大攻击范围。遵循安全最佳实践,Amazon建议在子网和安全组级别实施网络分段和最低权限访问控制。

查看 Amazon VPC 网络连接模式

在风险调查结果中,识别 ARN 中的安全组 ID。确定哪些实例需要相互通信以及使用哪些端口。您可以使用 Amazon VPC 流日志来分析 Amazon VPC 中的现有流量模式,以帮助确定正在使用的端口。

修改安全组规则

修改您的安全组规则,将访问限制于特定的受信任 IP 地址或范围。例如,与其允许来自整个 VPC CIDR 范围(例如 10.0.0.0/16)的所有流量,不如将访问限制于特定安全组或 IP 范围。更新安全组规则时,请考虑通过为每个所需的源 IP 地址范围创建规则或限制对特定端口的访问来区分不同网段的访问要求。要修改安全组规则,请参阅 Amazon EC2 用户指南中的配置安全组规则

考虑根据安全要求或功能将您的 Amazon VPC 资源组织到子网中。例如,将 Web 服务器和数据库服务器放入不同的子网中。有关更多信息,请参阅《Amazon Virtual Private Cloud 用户指南》中的 VPC 的子网

配置网络 ACLs 以实现子网级保护

网络访问控制列表 (NACLs) 在子网级别提供了额外的安全层。与安全组不同, NACLs 它们是无状态的,需要明确定义入站和出站规则。有关更多信息,请参阅《Amazon Virtual Private Cloud 用户指南》中的使用网络访问控制列表控制子网流量

其他注意事项

限制对 Amazon VPC 的访问时,请考虑以下事项

  • T@@ ransit Gateway 或 Amazon VPC 对等互连具有限制性路由 — 如果您的架构使用多个 VPCs 需要通信的架构,请考虑使用 T Amazon ransit Gateway 和 Amazon VPC 对等互连来提供亚马逊之间的连接, VPCs 同时允许您控制哪些子网可以相互通信。有关更多信息,请参阅 Amazon VPC Transit Gateways 入门VPC 对等连接

  • 服务终端节点和私有链接 — Amazon VPC 终端节点可用于将流量保持在Amazon网络内以便与Amazon资源通信,而不是通过互联网进行通信。这样可减少访问同一服务的实例之间直接连接的需求。有关 VPC 端点的信息,请参阅《Amazon Virtual Private Cloud 用户指南》中的 What are Amazon VPC endpoints?。要连接到其他 Amazon 上托管的服务 VPCs,请考虑使用Amazon PrivateLink。

EC2 实例的漏洞特征

以下是 EC2 实例的漏洞特征和建议的补救步骤。

EC2 实例存在可通过网络利用的软件漏洞,很有可能被利用

安装在 EC2 实例上的软件包可能会暴露在常见漏洞和漏洞中(CVEs)。 CVEs 危急会给您的Amazon环境带来严重的安全风险。未经授权的主体可以利用这些未修补的漏洞来破坏数据的保密性、完整性或可用性,或访问其他系统。利用可能性较高的严重漏洞代表直接的安全威胁,因为漏洞利用代码可能已经公开并被攻击者或自动扫描工具积极使用。我们建议您修补这些漏洞以保护您的实例。

更新受影响的实例

查看特征的漏洞选项卡中的参考部分。供应商文档可能包括具体的修复指导。请按照以下一般准则进行适当的修复:

使用 Systems Manager 补丁管理器来应用操作系统和应用程序的补丁。补丁管理器可帮助您在大量实例上自动选择和部署操作系统和软件补丁。如果没有配置补丁管理器,请手动更新每个受影响实例上的操作系统。

按照供应商推荐的步骤,将受影响的应用程序更新到最新的安全版本。要管理多个实例中的应用程序更新,请考虑使用 Systems Manager 状态管理器使软件保持一致状态。如果没有更新可用,请考虑在补丁发布或采取其他缓解措施(例如,限制对应用程序的网络访问或禁用易受攻击的功能)之前移除或禁用易受攻击的应用程序。

遵循 Amazon Inspector 调查发现中提供的具体修复建议。这可能涉及更改安全组规则、修改实例配置或调整应用程序设置。

检查实例是否是自动扩缩组的一部分。AMI 替换补丁是通过更新配置为在 Auto Scaling 组中部署新 Ama EC2 zon 实例的 AMI ID 在不可变基础设施上完成的。如果您使用的是 custom/golden AMI,请使用新 AMI 创建实例,然后自定义该实例并创建新的金色 AMI。有关更多信息,请参阅 AMI 更新修补(使用为 Auto Scaling 组打补 AMIs 丁)。

未来注意事项

为防止未来再次发生,请考虑实施漏洞管理计划。可以将 Amazon Inspector 配置为 CVEs 自动扫描您的实例。Amazon Inspector 还可以与 Security Hub 集成以实现自动修复。请考虑使用 Systems Manager Maintenance Windows 实施定期修补计划,以尽量减少对实例的中断。

Amazon EC2 实例存在软件漏洞

安装在 Amazon EC2 实例上的软件包可能会面临常见漏洞和风险 (CVEs)。非临界 CVEs 表示安全漏洞,与严重漏洞相比,其严重性或可利用性较低。 CVEs虽然这些漏洞不会造成直接风险,但攻击者仍可以利用这些未修补的漏洞来破坏数据的保密性、完整性或可用性,或访问其他系统。按照安全最佳实践,Amazon建议修补这些漏洞以保护您的实例免受攻击。

更新受影响的实例

使用 Amazon Systems Manager 补丁管理器为操作系统应用补丁。补丁管理器可帮助您在大量实例上自动选择和部署操作系统和软件补丁。如果没有配置补丁管理器,请手动更新每个受影响实例上的操作系统。

按照供应商推荐的步骤,将受影响的应用程序更新到最新的安全版本。要跨多个实例管理应用程序更新,请考虑使用 S Amazon ystems Manager 状态管理器使您的软件保持一致状态。如果没有更新可用,请考虑在补丁发布或采取其他缓解措施(例如,限制对应用程序的网络访问或禁用易受攻击的功能)之前移除或禁用易受攻击的应用程序。

遵循 Amazon Inspector 调查发现中提供的具体修复建议。这可能涉及更改安全组规则、修改实例配置或调整应用程序设置。

检查实例是否是自动扩缩组的一部分。AMI 替换补丁是通过更新配置为在 Auto Scaling 组中部署新 Ama EC2 zon 实例的 AMI ID 在不可变基础设施上完成的。如果您使用的是 custom/golden AMI,请使用新 AMI 创建实例,然后自定义该实例并创建新的金色 AMI。有关更多信息,请参阅 AMI 更新修补(使用为 Auto Scaling 组打补 AMIs 丁)。

未来注意事项

为防止未来再次发生,请考虑实施漏洞管理计划。可以将 Amazon Inspector 配置为 CVEs 自动扫描您的实例。Amazon Inspector 还可以与 Security Hub 集成以实现自动修复。请考虑使用 Systems Manager Maintenance Windows 实施定期修补计划,以尽量减少对实例的中断。

该 EC2 实例有 End-Of-Life操作系统

该 EC2 实例运行的 end-of-life操作系统不再由原始开发者支持或维护。这会使实例面临安全漏洞和潜在攻击。当操作系统上线时 end-of-life,供应商通常会停止发布新的安全公告。现有的安全公告也可以从供应商 Feed 中删除。因此,Amazon Inspector可能会停止生成已知的调查结果 CVEs,从而在安全覆盖方面造成进一步的漏洞。

请参阅《亚马逊检查员用户指南》中的已停产操作系统,了解有关亚马逊检查员可以检测到的已使用寿命终止的操作系统的信息。

更新到支持的操作系统版本

我们建议更新到支持的操作系统版本。在风险调查结果中,打开资源以访问受影响的资源。在更新实例上的操作系统版本之前,请查看 Amazon Inspector 用户指南支持的操作系统中的可用版本,了解当前支持的操作系统版本列表。

该 EC2 实例包含恶意软件包

恶意软件包是包含有害代码的软件组件,旨在危害系统和数据的机密性、完整性和可用性。恶意软件包会对您的实例构成严重威胁,因为攻击者可以在不利用漏洞的情况下自动执行恶意代码。按照安全最佳实践,Amazon建议移除恶意软件包以保护您的实例免受潜在攻击。

移除恶意软件包

在特征的 “漏洞” 选项卡的 “参考” 部分中查看恶意软件包的详细信息,以了解威胁。使用相应的软件包管理器删除已识别的恶意软件包。有关示例,请参阅《亚马逊 Linux 2023 用户指南》中的 Pack age 管理工具。删除恶意软件包后,可以考虑执行扫描,确保所有可能由恶意代码安装的软件包都已删除。有关更多信息,请参阅 GuardDuty中的启动按需恶意软件扫描

该 EC2 实例有恶意文件

恶意文件包含有害代码,旨在危害系统和数据的机密性、完整性和可用性。恶意文件会对您的实例构成严重威胁,因为攻击者可以在不利用漏洞的情况下自动执行恶意代码。遵循安全最佳实践,Amazon建议删除恶意文件以保护您的实例免受潜在攻击。

移除恶意文件

要识别包含恶意文件的特定亚马逊 Elastic Block Store (Amazon EBS) 卷,请查看该特征发现详情的 “资源” 部分。识别出带有恶意文件的卷后,请移除已识别的恶意文件。删除恶意文件后,请考虑执行扫描,以确保可能由恶意文件安装的所有文件都已删除。有关更多信息,请参阅 GuardDuty中的启动按需恶意软件扫描