提升你的 AWS Security Hub 安全评分的四种最佳方法
关键要点
在这篇文章中,我们将探讨如何提高 AWS Security Hub 的安全评分。本文重点介绍了四种提升安全评分的方法,包括: 修复失败的控制措施 抑制与失败控制相关的发现 禁用不相关的控制 自定义参数值以微调控制
以下内容将深入分析常见失败控制的识别及相应的修复策略,帮助你降低失败控制的数量,从而提升账户的安全评分。
AWS Security Hub 是一项云安全态势管理CSPM服务,它会对你的 Amazon Web Services (AWS) 账户和区域进行安全最佳实践检查,聚合警报,并支持自动修复。Security Hub 旨在简化和优化来自各种 AWS 服务和第三方工具的安全相关数据的管理,帮助你全面了解组织的安全状态,从而更有效地优先处理和响应安全警报。
Security Hub 会根据已通过和未通过的控制措施为你的环境分配一个安全评分。控制措施是为信息系统或组织制定的保护措施,旨在保护系统的机密性、完整性和可用性,并满足一系列定义的安全要求。你可以利用安全评分作为基线来评估账户。该评分以百分比形式显示,并四舍五入到最接近的整数。
在本博客中,我们将回顾你可以用来提升安全评分的四种机制,审查 Security Hub 中最常失败的五个控制,并提供修复建议。这将帮助你减少失败控制的数量,从而提升账户的安全评分。
什么是安全评分?
安全评分反映了已通过控制与已启用控制的比例。评分以四舍五入的百分比形式显示,衡量你的 AWS 账户与安全最佳实践和合规标准的对齐程度。安全评分是动态的,会随 AWS 环境的变化而变化。当你解决和修复与控制措施相关的发现时,安全评分会提升。此外,环境变化或新的 Security Hub 发现的引入也会影响评分。
每项检查都是对单个资源规则的即时评估,结果为合规状态:通过、失败、警告或不可用。当所有底层检查的合规状态为通过时,或者已失败检查的工作流状态为抑制时,控制被视为通过。你可以通过 Security Hub 控制台摘要页面查看安全评分,以便快速了解安全态势。仪表板提供了视觉表示和有关特定发现的详细信息,以了解它们是如何影响评分的。有关评分如何计算的更多信息,请参见 确定安全评分。
如何提升安全评分?
你可以通过以下四种方式提高你的安全评分:

修复失败的控制措施: 在负责失败检查的资源配置为合规设置并重新检查后,Security Hub 会将这些检查的合规状态标记为通过,工作流状态为解决。这将增加已通过的控制数量,从而提高评分。
抑制与失败控制相关的发现: 在计算控制状态时,Security Hub 会忽略存档状态的发现以及工作流状态为抑制的发现,这会影响安全评分。因此,如果你对某个控制抑制所有失败发现,则该控制状态将变为通过。
如果你确定 Security Hub 针对某个资源的发现是一个接受的风险,可以手动 设置工作流状态 为抑制,可以通过 Security Hub 控制台或使用 BatchUpdateFindings API 来进行。抑制不会阻止新发现的生成,但用户可以设置 自动化规则 来抑制所有在满足过滤条件下的新或更新发现。
禁用不相关的控制: Security Hub 为管理员提供了灵活性,允许他们自定义和配置安全控制。这包括禁用特定控制或调整Settings 以帮助与组织的安全政策保持一致。当控制被禁用时,将不再执行安全检查,也不再生成其他发现。现有发现将设置为存档,并且该控制将被排除在安全评分计算之外。使用 Security Hub 中央配置 来集中管理 Security Hub 控制和标准,并从一个地方查看你在组织中的 Security Hub 配置。用户还可以将这些设置部署到 组织单元 (OUs)。
使用 Security Hub 中的中心配置来定制安全控制,以帮助与你组织的特定要求保持一致。你可以微调安全控制,专注于相关问题,从而提高安全评分的准确性和相关性。在 AWS Security Hub 中推出新的中央配置功能 提供了中央配置的概述和优点。
当你希望微调来自特定资源的控制发现时,应使用抑制,而只有在控制不再与 AWS 环境相关时才应禁用控制。
自定义参数值以微调控制: 一些 Security Hub 控制使用影响控制评估的参数。通常,这些控制会依据 Security Hub 定义的默认参数值进行评估。然而,对于这些控制的一部分,用户可以 自定义参数值。当你为控制自定义参数值时,Security Hub 开始根据你指定的值进行评估。如果控制底层的资源满足该自定义值,Security Hub 将生成通过的发现。接下来的部分将介绍这些机制以解决最常失败的控制。
识别 Security Hub 中最常失败的控制
你可以通过 AWS 管理控制台识别账户中最常失败的控制:
登录到委托管理账户,打开 Security Hub 控制台。在导航窗格中选择 控制机制。在这里,你会看到按失败控制的严重性排序的控制状态,并在此页面的失败检查列中看到与失败控制相关的失败检查的数量。每个资源都进行一次检查。如果某列显示 85 分之 124,则意味着在 124 个资源中有 85 个未通过该控制的检查。你可以按降序对该列进行排序,以识别最多资源的失败控制,如图 2 所示。
解决最常失败的控制
在这一部分,我们将针对 AWS 客户中具有高度失败率的安全 Hub 控制措施的 关键 和 高 严重性提供修复策略。我们将回顾其中五个控制措施并为每个提供推荐最佳实践、资源类型的默认设置、保护措施及补偿控制。
AutoScaling3:自动扩展组启动配置
AWS 中的自动扩展组是一种服务,可根据用户定义的策略自动调整 EC2 实例的数量,以确保可用的实例数量满足应用需求的变化。启动配置是定义由自动扩展组启动的 EC2 实例配置的蓝图。AutoScaling3 控制检查 EC2 自动扩展组使用 启动配置 启动的实例是否启用了版本 2 的实例元数据服务IMDSv2。如果启动配置中未包含 IMDS 版本,或者同时包含 IMDSv1 和 IMDSv2,则控制失败。AutoScaling3 对应于最佳实践 SEC06BP02 减少攻击面,这属于良好架构框架。
IMDS 是在 Amazon EC2 上提供关于 EC2 实例的元数据的服务,例如实例 ID、公共 IP 地址、AWS 身份与访问管理IAM角色信息及在启动期间的用户数据如脚本。IMDS 还提供附加到 EC2 实例的 IAM 角色的凭证,攻击者可利用这些凭证进行权限提升。现有的实例元数据服务IMDSv1是完全安全的,AWS 将继续支持它。如果你的组织策略涉及使用 IMDSv1,则可以考虑禁用 AutoScaling3 和 EC28 Security Hub 控制。EC28 是一个类似的控制,但检查每个 EC2 实例的 IMDS 配置,而不是启动配置。
IMDSv2 增加了针对四大类脆弱性的保护,这些脆弱性可能被用来访问 IMDS,包括配置错误或开放的网站应用程序防火墙、配置错误或开启的反向代理、未修补的服务器端请求伪造SSRF脆弱性以及不当配置的层 3 防火墙和网络地址转换。IMDSv2 通过要求在请求实例元数据时采用 PUT 请求使用会话令牌,并使用 TTL 默认为 1,确保令牌无法超出 EC2 实例进行传输,从而实现此目的。有关 IMDSv2 提供的保护的更多信息,请参见 为开放防火墙、反向代理和 SSRF 脆弱性增加深度防御。
飞鱼网络梯子每个不合规的 Amazon EC2 启动配置都会产生一个失败检查发现。自动扩展组在任何时候只与一个启动配置相关联。创建后无法修改启动配置。要更改自动扩展组的启动配置,可以使用现有的启动配置作为新启动配置的基础,确保 IMDSv2 被启用,然后删除旧的启动配置。在删除不合规的启动配置后,Security Hub 将自动更新发现状态为存档。推荐使用 Amazon EC2 启动模板,因为从 2022 年 12 月 31 日起,无法为新发布的 EC2 实例创建启动配置。更多信息请参见 将自动扩展组迁移至启动模板。
亚马逊已采取一系列措施使 IMDSv2 成为默认。例如,Amazon Linux 2023 默认使用 IMDSv2 启动。你还可以在账户级别设置 默认实例元数据版本 为每个区域的 IMDSv2。当实例启动时,实例元数据版本会自动设置为账户级别值。如果你使用账户级别设置以要求在启动配置之外使用 IMDSv2,则可以考虑使用中心 Security Hub 配置禁用这些账户的 AutoScaling3。有关示例政策请参见 示例 Security Hub 中央配置策略 部分。
EC218:安全组配置
AWS 安全组充当 EC2 实例的虚拟状态防火墙,以控制进出流量,需遵循最小权限访问原则。在良好架构框架的安全支柱中,建议不使用过于宽松或不受限制0000/0的安全组,因为这会使资源易于遭受滥用。EC218 控制检查安全组是否允许不受限制的 TCP 流量进入,除了允许的 80 和 443 端口外,此外还检查是否允许在某个端口上进行不受限制的 UDP 流量。例如,如果安全组有一条允许流量不受限制地进入 22 端口的规则,则此检查将失败。此控制允许 自定义控制参数,可用于编辑允许不受限制流量的授权端口列表。如果你期望你的组织中没有任何安全组可以在任何端口上有不受限制的访问,则可以编辑控制参数,从而删除所有端口的授权。如果希望通过多个账户和区域更新参数,可以使用中心配置策略,如示例 Security Hub 中央配置政策。如果希望通过检查通过的端口的列表来传递检查,则可以在退出列中将授权端口添加到列表中。
EC218 检查账户中安全组的规则,无论这些安全组是否在使用中。你可以使用 AWS 防火墙管理器 识别并删除在组织中未使用的安全组,使用 使用情况审计安全组政策。删除未使用的安全组并将其失败检查的发现状态更改为存档,将会将其排除在安全评分计算之外。删除未使用资源的操作还与良好架构框架可持续性支柱中的 SUS02BP03 保持一致。你可以通过防火墙管理器创建一个使用情况审计安全组策略,具体步骤如下:
配置防火墙管理器:登录到防火墙管理器管理员账户,打开防火墙管理器控制台。在导航窗格中,选择 安全策略。选择 创建政策。在 选择政策类型和区域 对于 区域,选择政策适用的 AWS 区域。对于 政策类型,选择 安全组。对于 安全组政策类型,选择 审计和清理未使用和冗余的安全组。选择 下一步。在 描述政策 输入 政策名称 和 描述。对于 政策规则,选择 此政策范围内的安全组必须由至少一个资源使用。你可以选择指定安全组在可用期间未被使用的分钟数,直到被视为不合规,最多可以使用 525600 分钟365 天。你可以使用此设置给自己一些时间将新的安全组与资源关联。对于 政策动作,建议从 识别不符合政策规则的资源,但不自动修复 开始。这使你可以在应用新政策之前评估新政策的影响。当你满意这些更改时,可以编辑政策并选择 自动修复任何不合规资源 来更改政策动作。选择 下一步。在 定义政策范围 对于 AWS 账户此政策适用的对象,根据需要选择三个选项之一。 对于 资源类型,选择 安全组。对于 资源,你可以使用标签缩小政策的范围,包含或排除指定标签的资源。你可以选择包含或排除,但不能同时使用。选择 下一步。审查政策设置以确保符合你的要求,然后选择 创建政策。防火墙管理器的服务是区域性的,因此这些政策必须在你有服务的每个区域中创建。
你还可以使用防火墙管理器策略为安全组设置保护措施,以修复允许不受限制访问的新或更新安全组。你可以通过防火墙管理器控制台创建相关的安全组审计政策:
创建防火墙管理器安全组政策:登录到防火墙管理器管理员账户。打开防火墙管理器控制台。在导航窗格中选择 安全策略。选择 创建政策。在 选择政策类型和区域 对于 区域,选择适用的区域。对于 政策类型,选择 安全组。对于 安全组政策类型,选择 审计和实施安全组规则。选择 下一步。在 描述政策 输入 政策名称 和 描述。对于 政策规则选项,选择 配置受管理的审计政策规则。配置以下选项:对于 需要审计的安全组规则,从下拉菜单中选择 入站规则。选择 审计过于宽松的安全组规则。选择 规则允许所有流量。对于 政策动作,我们建议从选择 识别不符合政策规则的资源,但不自动修复 开始。这使你可以在应用新政策之前评估新政策的影响。当你满意这些更改后,编辑
发表评论