CIS AWS Foundations 基准控制 - AWS Security Hub
1.1 – 避免使用“根”账户1.2 – 确保为拥有控制台密码的所有 IAM 用户启用多重身份验证 (MFA) 1.3 – 确保禁用 90 天或更长时间未使用的凭证1.4 – 确保访问密钥每 90 天或更短时间轮换一次 1.5 – 确保 IAM 密码策略要求包含至少一个大写字母1.6 – 确保 IAM 密码策略要求包含至少一个小写字母1.7 – 确保 IAM 密码策略要求包含至少一个符号1.8 – 确保 IAM 密码策略要求包含至少一个数字1.9 – 确保 IAM 密码策略要求最短长度不低于 141.10 – 确保 IAM 密码策略阻止重复使用密码1.11 – 确保 IAM 密码策略使密码在 90 天或更短时间内失效1.12 – 确保不存在根账户访问密钥1.13 – 确保为“根”账户启用 MFA 1.14 – 确保为“根”账户启用硬件 MFA 1.16 – 确保 IAM 策略仅附加到组或角色1.20 - 确保已创建支持角色来管理与 AWS Support 相关的事件 1.22 – 确保未创建允许完全“*.*”管理权限的 IAM 策略 2.1 – 确保在所有区域启用 CloudTrail2.2. – 确保已启用 CloudTrail 日志文件验证 2.3 – 确保 S3 存储桶 CloudTrail 日志不可公开访问2.4 – 确保 CloudTrail 跟踪与 Amazon CloudWatch Logs 集成2.5 – 确保已启用 AWS Config2.6 – 确保在 CloudTrail S3 存储桶上启用 S3 存储桶访问日志记录 2.7 – 确保使用 CloudTrail AWS KMS 对 CMKs 日志进行静态加密2.8 – 确保为客户创建的 CMKs 启用轮换2.9 – 确保在所有 VPCs 中启用 VPC 流日志记录 3.1 – 确保存在关于未经授权的 API 调用的日志指标筛选条件和警报 3.2 – 确保存在关于无 MFA 的 AWS 管理控制台登录的日志指标筛选条件和警报 3.3 – 确保存在关于使用“根”账户的日志指标筛选条件和警报 3.4 – 确保存在关于 IAM 策略更改的日志指标筛选条件和警报 3.5 – 确保存在关于 CloudTrail 配置更改的日志指标筛选条件和警报 3.6 – 确保存在关于 AWS 管理控制台身份验证失败的日志指标筛选条件和警报 3.7 – 确保存在关于禁用或计划删除客户创建的 CMKs 的日志指标筛选条件和警报 3.8 – 确保存在关于 S3 存储桶策略更改的日志指标筛选条件和警报3.9 – 确保存在关于 AWS Config 配置更改的日志指标筛选条件和警报 3.10 – 确保存在关于安全组更改的日志指标筛选条件和警报 3.11 – 确保存在关于网络访问控制列表 (NACL) 更改的日志指标筛选条件和警报3.12 – 确保存在关于网络网关更改的日志指标筛选条件和警报 3.13 – 确保存在关于路由表更改的日志指标筛选条件和警报 3.14 – 确保存在关于 VPC 更改的日志指标筛选条件和警报 4.1 – 确保没有安全组允许从 0.0.0.0/0 到端口 22 的传入流量 4.2 – 确保没有安全组允许从 0.0.0.0/0 到端口 3389 的传入流量 4.3 – 确保每个 VPC 的默认安全组限制所有流量
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

CIS AWS Foundations 基准控制

对于 CIS AWS Foundations 标准,Security Hub 支持以下控制。对于每个控制,该信息包括所需的 AWS Config 规则和修复步骤。

1.1 – 避免使用“根”账户

严重性: 重大

AWS Config 规则: 无

根账户可以不受限制地访问 AWS 账户中的所有资源。我们强烈建议您避免使用该账户。根账户是具有最高权限的账户。尽量减少使用此账户并在进行访问管理时采用最小权限原则可降低意外更改和意外泄露高权限凭证的风险。

作为最佳实践,仅在需要执行账户和服务管理任务时才使用根凭证。将 IAM 策略直接应用到组和角色,而不是用户。有关如何设置管理员以供日常使用的教程,请参阅 IAM 中的创建您的第一个 管理员用户和组IAM 用户指南。

为了运行此检查,Security Hub 会使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.3 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。这些步骤与修复 3.3 – 确保存在关于使用“根”账户的日志指标筛选条件和警报 结果的步骤相同。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {$.userIdentity.type="Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !="AwsServiceEvent"}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-1.1-RootAccountUsage

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

1.2 – 确保为拥有控制台密码的所有 IAM 用户启用多重身份验证 (MFA)

严重性:

AWS Config 规则:mfa-enabled-for-iam-console-access

多重身份验证 (MFA) 在用户名和密码之上增加了一层额外的防护。启用 MFA 后,当用户登录 AWS 网站时,系统会提示他们输入用户名和密码以及 AWS MFA 设备的验证码。

Security Hub 建议为拥有控制台密码的所有账户启用 MFA。启用 MFA 可提高控制台访问的安全性,因为它要求身份验证委托人拥有设备来发出有时效性的密钥和具备凭证相关知识。

重要

用于该检查的 AWS Config 规则最多可能需要 4 个小时才能准确报告 MFA 的结果。在启用 CIS 安全检查后的前 4 个小时内生成的任何结果可能都不准确。修复此问题后,最多可能需要 4 个小时才能通过此检查。

Remediation

为用户配置 MFA

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Users (用户)

  3. 选择要为其配置 MFA 的用户的User name (用户名)

  4. 选择 Security credentials,然后选择 Assigned MFA device 旁边的 Manage

  5. 跟随管理 MFA 设备向导指定适合您环境的设备类型。

要了解如何将 MFA 设置委派给用户,请参阅 AWS 安全博客上的How to Delegate Management of Multi-Factor Authentication to AWS IAM Users(如何将 Multi-Factor Authentication 管理委派给 AWS IAM 用户)。

1.3 – 确保禁用 90 天或更长时间未使用的凭证

严重性:

AWS Config 规则:iam-user-unused-credentials-check

IAM 用户可以使用不同类型的凭证(例如密码或访问密钥)访问 AWS 资源。

Security Hub 建议您删除或停用 90 天或更长时间未使用的所有凭证。禁用或删除不必要的凭证可减少他人使用遭盗用账户或已弃用账户的关联凭证的风险。

此控件的 AWS Config 规则使用 GetCredentialReportGenerateCredentialReport API 操作,这些操作每四小时才更新一次。对 IAM 用户的更改最多可能需要四小时才能对此控件显示。

Remediation

要获取监控账户过期凭证所需的一些信息,请使用 IAM 控制台。例如,当您查看账户中的用户时,会显示 Access key age (访问密钥使用期限)Password age (密码使用期限)Last activity (上次活动时间)。如果上述列中的任何一个中的值大于 90 天,请停用这些用户的凭证。

您还可以使用凭证报告来监控用户账户和识别 90 天或更长时间没有活动的账户。您可以从 IAM 控制台下载 .csv 格式的凭证报告。有关凭证报告的更多信息,请参阅获取您 AWS 账户的凭证报告

确定非活动账户或未使用的凭证后,请使用以下步骤禁用它们。

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Users (用户)

  3. 选择凭证超过 90 天的用户的名称。

  4. 选择 Security credentials (安全凭证),然后为 90 天或更长时间未使用的所有登录凭证和访问密钥选择转为非活跃

1.4 – 确保访问密钥每 90 天或更短时间轮换一次

严重性:

AWS Config 托管规则:access-keys-rotated

访问密钥由访问密钥 ID 和秘密访问密钥组成,这些密钥用于对您向 AWS 发出的编程请求进行签名。AWS 用户需要自己的访问密钥以从 AWS (AWS Command Line Interface)、AWS CLI、Windows PowerShell 工具 AWS SDKs 调用 APIs 或直接使用各个 AWS 服务调用 HTTP。

Security Hub 建议您定期轮换所有访问密钥。轮换访问密钥可减少他人使用遭盗用账户或已终止账户关联的访问密钥的风险。轮换访问密钥以确保无法使用可能已丢失、遭破解或被盗用的旧密钥访问数据。

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

Remediation

确保访问密钥的使用时长不超过 90 天

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Users (用户)

  3. 对于显示 Access key age (访问密钥使用期限) 超出 90 天的每个用户,选择用户名来打开该用户的设置。

  4. 选择 Security credentials (安全凭证)

  5. 为用户创建新的密钥:

    1. 选择创建访问密钥

    2. 要保存密钥内容,请下载秘密访问密钥,或者选择 Show (显示),然后从页面中复制该密钥。

    3. 将密钥存储在安全位置以提供给用户。

    4. 选择 Close

  6. 更新使用上一个密钥的所有应用程序以使用新密钥。

  7. 对于上一个密钥,请选择 Make inactive (转为非活跃) 来使访问密钥转为非活动状态。现在,用户无法使用该密钥发出请求。

  8. 确认使用新密钥的所有应用程序都能按预期工作。

  9. 确认所有应用程序都使用新密钥后,删除以前的密钥。访问密钥一经删除,就无法恢复。

    要删除上一个密钥,请在行末尾选择 X,然后选择 Delete (删除)

1.5 – 确保 IAM 密码策略要求包含至少一个大写字母

严重性:

AWS Config 规则:iam-password-policy

密码策略在某种程度上强制实施密码复杂性要求。使用 IAM 密码策略可确保密码使用不同的字符集。

Security Hub 建议密码策略要求包含至少一个大写字母。设置密码复杂性策略可提高账户抵抗暴力登录尝试的弹性。

Remediation

修改密码策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Account settings (账户设置)

  3. 选择至少需要一个大写字母,然后选择 Apply password policy (应用密码策略)

1.6 – 确保 IAM 密码策略要求包含至少一个小写字母

严重性:

AWS Config 规则:iam-password-policy

密码策略在某种程度上强制实施密码复杂性要求。使用 IAM 密码策略以确保密码使用不同的字符集。Security Hub 建议密码策略要求包含至少一个小写字母。设置密码复杂性策略可提高账户抵抗暴力登录尝试的弹性。

Remediation

修改密码策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Account settings (账户设置)

  3. 选择 至少需要一个小写字母 (Requires at least one lowercase letter),然后选择 Apply password policy (应用密码策略)

1.7 – 确保 IAM 密码策略要求包含至少一个符号

严重性:

AWS Config 规则:iam-password-policy

密码策略在某种程度上强制实施密码复杂性要求。使用 IAM 密码策略可确保密码使用不同的字符集。

Security Hub 建议密码策略要求包含至少一个符号。设置密码复杂性策略可提高账户抵抗暴力登录尝试的弹性。

Remediation

修改密码策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Account settings (账户设置)

  3. 选择 Require at least one non-alphanumeric character (至少需要一个非字母数字字符),然后选择 Apply password policy (应用密码策略)

1.8 – 确保 IAM 密码策略要求包含至少一个数字

严重性:

AWS Config 规则:iam-password-policy

密码策略在某种程度上强制实施密码复杂性要求。使用 IAM 密码策略可确保密码使用不同的字符集。

Security Hub 建议密码策略要求包含至少一个数字。设置密码复杂性策略可提高账户抵抗暴力登录尝试的弹性。

Remediation

修改密码策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Account settings (账户设置)

  3. 选择 Requires at least one number (至少需要一个数字),然后选择 Apply password policy (应用密码策略)

1.9 – 确保 IAM 密码策略要求最短长度不低于 14

严重性:

AWS Config 规则:iam-password-policy

密码策略在某种程度上强制实施密码复杂性要求。使用 IAM 密码策略确保密码至少为给定长度。

Security Hub 建议密码策略要求最短密码长度为 14 个字符。设置密码复杂性策略可提高账户抵抗暴力登录尝试的弹性。

Remediation

修改密码策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Account settings (账户设置)

  3. 最短密码长度 (Minimum password length)字段中,输入 14,然后选择 Apply password policy (应用密码策略)

1.10 – 确保 IAM 密码策略阻止重复使用密码

严重性: Low

AWS Config 规则:iam-password-policy

该控制检查要记住的密码数是否设置为 24。如果值不是 24,则控制失败。

IAM 密码策略可以阻止同一用户重复使用给定密码。

Security Hub 建议密码策略阻止重复使用密码。阻止重复使用密码可提高账户抵抗暴力登录尝试的弹性。

Remediation

修改密码策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Account settings (账户设置)

  3. 选择 Prevent password reuse (防止密码重复使用),然后为 Number of passwords to remember (要记住的密码数) 输入 24

  4. 选择 Apply password policy (应用密码策略)

1.11 – 确保 IAM 密码策略使密码在 90 天或更短时间内失效

严重性: Low

AWS Config 规则:iam-password-policy

IAM 密码策略可以要求在给定天数后轮换密码或使密码失效。

Security Hub 建议密码策略在 90 天或更短时间后使密码过期。缩短密码生存期可提高账户抵抗暴力登录尝试的弹性。在以下情况下,要求定期更改密码也是非常有用的:

  • 密码可能会在您不知情的情况下被窃取或泄露。系统遭受攻击、软件漏洞或内部威胁都可能导致发生这种情况。

  • 某些公司和政府的 Web 过滤器或代理服务器能够拦截和记录流量(即使流量已加密)。

  • 很多用户对于许多系统(例如工作系统、电子邮件和个人系统)都使用相同的密码。

  • 遭受攻击的最终用户工作站可能存在击键记录器。

Remediation

修改密码策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Account settings (账户设置)

  3. 选择启用密码过期,然后为密码有效期(天)输入 90

  4. 选择 Apply password policy (应用密码策略)

1.12 – 确保不存在根账户访问密钥

严重性: 重大

AWS Config 规则:iam-root-access-key-check

根账户是 AWS 账户中权限最高的用户。AWS访问密钥提供对给定账户的编程访问。

Security Hub 建议删除与根账户关联的所有访问密钥。删除与根账户关联的访问密钥可限制账户遭盗用的途径。删除根访问密钥还会鼓励创建和使用最小权限的基于角色的账户。

注意

非洲(开普敦) 中不支持该控制。

Remediation

停用或删除访问密钥

  1. 使用根凭证登录您的账户。

  2. 选择页面右上角附近的账户名称,然后选择 My Security Credentials (我的安全凭证)

  3. 在弹出警告中,选择 Continue to Security Credentials (继续安全凭证)

  4. 选择 Access keys (access key ID and secret access key) (访问密钥 (访问密钥 ID 和秘密访问密钥))

  5. 对于任何现有密钥,执行以下操作之一:

    • 选择 Make Inactive (转为非活跃) 以阻止将该密钥用于验证账户。

    • 选择 Delete (删除),然后选择 Yes (是) 以永久删除密钥。您无法恢复已删除的密钥。

1.13 – 确保为“根”账户启用 MFA

严重性: 重大

AWS Config 规则:root-account-mfa-enabled

根账户是账户中权限最高的用户。MFA 在用户名和密码之上增加了一层额外的防护。启用 MFA 后,当用户登录 AWS 网站时,系统会提示他们输入用户名和密码以及 AWS MFA 设备的验证码。

当您为根账户使用虚拟 MFA 时,Security Hub 建议不要 将该设备用作个人设备。请改用与任何个人设备分开付费和保护的专用移动设备(平板电脑或手机)。这可降低因设备丢失、设备换购或拥有设备的个人离开公司而导致无法访问 MFA 的风险。

注意

以下区域不支持此控制。

  • 中国(北京)

  • 中国 (宁夏)

  • AWS GovCloud(美国东部)

  • AWS GovCloud (US-West).

Remediation

为根账户启用 MFA

  1. 使用根凭证登录您的账户。

  2. 选择页面右上角附近的账户名称,然后选择 My Security Credentials (我的安全凭证)

  3. 在弹出警告中,选择 Continue to Security Credentials (继续安全凭证)

  4. 选择 Multi-Factor Authentication (MFA) (多重身份验证 (MFA))

  5. 选择 Activate MFA (激活 MFA)

  6. 选择要用于 MFA 的设备类型,然后选择 Continue (继续)

  7. 完成配置适合您选择的设备类型的步骤。

    选择基于硬件的身份验证机制,以便在通过检查1.14 – 确保为“根”账户启用硬件 MFA 时获得最佳结果。

1.14 – 确保为“根”账户启用硬件 MFA

严重性: 重大

AWS Config 规则:root-account-hardware-mfa-enabled

根账户是账户中权限最高的用户。MFA 在用户名和密码之上增加了一层额外的防护。启用 MFA 后,当用户登录 AWS 网站时,系统会提示他们输入用户名和密码以及 AWS MFA 设备的验证码。

对于级别 2,Security Hub 建议您使用硬件 MFA 保护根账户。硬件 MFA 的攻击面小于虚拟 MFA。例如,硬件 MFA 不受虚拟 MFA 所在的移动智能手机引入的攻击面影响。

对大量账户使用硬件 MFA 可能会产生物流设备管理问题。如果发生这种情况,请考虑有选择性地对安全性最高的账户实施此第 2 级别的建议。然后,您可以将第 1 级别的建议应用于其余账户。

注意

以下区域不支持此控制。

  • 中国(北京)

  • 中国 (宁夏)

  • AWS GovCloud(美国东部)

  • AWS GovCloud (US-West).

Remediation

为根账户启用基于硬件的 MFA

  1. 使用根凭证登录您的账户。

  2. 选择页面右上角附近的账户名称,然后选择 My Security Credentials (我的安全凭证)

  3. 在弹出警告中,选择 Continue to Security Credentials (继续安全凭证)

  4. 选择 Multi-Factor Authentication (MFA) (多重身份验证 (MFA))

  5. 选择 Activate MFA (激活 MFA)

  6. 选择要用于 MFA 的基于硬件(非虚拟)的设备,然后选择 Continue (继续)

  7. 完成配置适合您选择的设备类型的步骤。

1.16 – 确保 IAM 策略仅附加到组或角色

严重性: Low

AWS Config 规则:iam-user-no-policies-check

默认情况下,IAM 用户、组和角色无权访问 AWS 资源。IAM 策略是向用户、组或角色授予权限的方式。

Security Hub 建议您将 IAM 策略直接应用到组和角色,而不是用户。随着用户数量的增长,在组或角色级别分配权限可降低访问管理的复杂性。降低访问管理的复杂性有助于减少委托人意外收到或保留过多权限的机会。

Remediation

要解决该问题,请创建一个 IAM 组,向该组分配策略,然后将用户添加到该组。策略将应用于组中的每一位用户。

创建 IAM 组

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Groups (组),然后选择 Create New Group (创建新组)

  3. 输入要创建的组的名称,然后选择 Next Step (下一步)

  4. 选择要分配给该组的每个策略,然后选择 Next Step (下一步)

    选择的策略应包括当前直接附加到用户账户的任何策略。要解决未通过检查的问题,下一步是将用户添加到组,然后向该组分配策略。分配给组的策略将应用于组中的每一位用户。

  5. 确认 Review (审核) 页面上的详细信息,然后选择 Create Group (创建组)

有关创建组的更多信息,请参阅 中的IAM创建 。IAM 用户指南

将用户添加到 IAM 组

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Groups (组)

  3. 选择组操作,然后选择 Add Users to Group (向组添加多个用户)

  4. 选择要添加到组的用户,然后选择 Add Users (添加用户)

有关将用户添加到组的更多信息,请参阅在 IAM 组中添加和删除用户

删除直接附加到用户的策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择 Users (用户)

  3. 对于要分离其策略的用户,在 User name (用户名)列中选择其名称。

  4. 对于 Attached directly (直接附加的策略) 下列出的每个策略,选择页面右侧的 X(从用户删除该策略),然后选择删除

  5. 确认用户仍可按预期使用 AWS 服务。

1.20 - 确保已创建支持角色来管理与 AWS Support 相关的事件

严重性: Low

AWS Config 规则:iam-policy-in-use

AWS 提供了可用于事件通知和响应的支持中心,以及技术支持和客户服务。

创建一个 IAM 角色以允许授权用户管理与 AWS Support 相关的事件。一旦实施最小权限来进行访问控制,IAM 角色就需要适当的 IAM 策略来允许支持中心访问,以便管理与 AWS Support 相关的事件。

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

Remediation

要纠正此问题,请创建一个角色以允许授权用户管理 AWS Support 事件。

创建要用于 AWS Support 访问的角色

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在 IAM 导航窗格中,选择 Roles (角色),然后选择 Create role (创建角色)

  3. 对于 Role type (角色类型),选择 Another AWS account (另一个 AWS 账户)

  4. 对于 Account ID (账户 ID),输入您希望向其授予对资源的访问权限的 AWS 账户的 AWS 账户 ID。

    如果将代入此角色的用户或组位于同一账户中,则输入本地账户号码。

    注意

    指定账户的管理员可向该账户中的任何 IAM 用户授予代入该角色的权限。为此,管理员需要将策略附加到用户或组来授予 sts:AssumeRole 操作的权限。在该策略中,资源必须是角色 ARN。

  5. 选择 Next: (下一步:)。权限。

  6. 搜索托管策略 AWSSupportAccess

  7. 选中 AWSSupportAccess 托管策略的复选框。

  8. 选择 Next: (下一步:)。 标签

  9. (可选)要向角色添加元数据,请以键值对的形式附加标签。

    有关在 IAM 中使用标签的更多信息,请参阅 IAM 用户指南 中的标记 IAM 用户和角色

  10. 选择 Next: (下一步:)。 审核

  11. 对于 Role name (角色名称),为您的角色输入一个名称。

    角色名称在您的 AWS 账户内必须是唯一的。它们不区分大小写。

  12. (可选)对于 Role description (角色描述),输入新角色的描述。

  13. 检查该角色,然后选择Create role (创建角色)

1.22 – 确保未创建允许完全“*.*”管理权限的 IAM 策略

严重性: 重大

AWS Config 规则:iam-policy-no-statements-with-admin-access

IAM 策略定义授予用户、组或角色的一组权限。建议遵循标准安全建议来授予最小权限,即仅授予执行任务所需的权限。首先,确定用户需要执行的任务,然后,拟定仅限用户执行这些任务的策略,而不是允许完全管理权限。

应先尽量授予一组具有最小许可的许可,然后根据需要授予额外许可,而不应先授予过于宽松的许可,而后再试图收紧。提供完全管理权限而不是限制用户执行任务所需的最小权限集会将资源暴露给可能有害的操作。

您应删除语句中包含 "Effect": "Allow"with "Action": "*" over "Resource": "*" 的 IAM 策略。

Remediation

修改 IAM 策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 选择策略

  3. 选择要删除的策略旁边的单选按钮。

  4. Policy actions (策略操作) 下拉菜单中,选择 Detach (分离)

  5. Detach policy (分离策略) 页面上,选择要从其分离策略的每个用户旁边的单选按钮,然后选择 Detach policy (分离策略)

确认分离策略后,用户仍可按预期访问 AWS 服务和资源。

2.1 – 确保在所有区域启用 CloudTrail

严重性: 重大

AWS Config 规则:multi-region-cloudtrail-enabled

CloudTrail 是一种可记录账户的 AWS API 调用并向您发送日志文件的服务。记录的信息包括 API 调用者的身份、API 调用的时间、API 调用者的源 IP 地址、请求参数以及 AWS 服务返回的响应元素。CloudTrail 为账户提供 AWS API 调用的历史记录,包括通过 AWS 管理控制台、AWS SDKs、命令行工具和更高级别的 AWS 服务(如 AWS CloudFormation)进行的 API 调用。

由 CloudTrail 生成的 AWS API 调用历史记录可用于安全分析、资源变更跟踪以及合规性审计。此外:

  • 确保存在多区域跟踪可确保检测到在其他未使用区域中发生的意外活动

  • 确保存在多区域跟踪可确保默认情况下为跟踪启用全局服务日志记录,以捕获在 AWS 全局服务上生成的事件的记录

  • 对于多区域跟踪,确保为所有类型的读取/写入配置管理事件可确保记录对 AWS 账户中的所有资源执行的管理操作

Remediation

在 CloudTrail 中创建新的跟踪

  1. 登录 AWS 管理控制台并通过以下网址打开 CloudTrail 控制台:https://console.amazonaws.cn/cloudtrail/

  2. 如果以前未使用过 CloudTrail,请选择 Get Started Now (立即开始使用)

  3. 选择 Trails (跟踪),然后选择 Create trail (创建跟踪)

  4. 输入跟踪的名称。

  5. 对于 Apply trail to all regions (对所有区域应用跟踪),选择 Yes (是)

  6. Storage location (存储位置) 下,执行下列操作之一:

    • 要为 CloudTrail 日志创建新的 S3 存储桶,请选择 Create a new S3 bucket (创建新的 S3 存储桶) 旁边的 Yes (是),然后输入存储桶的名称。

    • 选择 Create a new S3 bucket (创建新的 S3 存储桶) 旁边的 No (否),然后选择要使用的存储桶。

  7. 选择 Additional settings (其他设置),对于 Enable log file validation (启用日志文件验证),选择 Yes (是) 以通过 2.2. – 确保已启用 CloudTrail 日志文件验证

  8. 选择创建

更新 CloudTrail 中的现有跟踪

  1. 登录 AWS 管理控制台并通过以下网址打开 CloudTrail 控制台:https://console.amazonaws.cn/cloudtrail/

  2. 选择 Trails (跟踪)

  3. Name (名称) 列中选择跟踪的名称。

  4. 选择 Trail settings (跟踪设置) 的铅笔图标。

  5. 对于 Apply trail to all regions (对所有区域应用跟踪),选择 Yes (是),然后选择 Save (保存)

  6. 选择 Management events (管理事件) 的铅笔图标。

  7. Read/Write events (读写事件) 选择 All (全部),然后选择 Save (保存)

  8. 选择 Storage location (存储位置) 的铅笔图标。

  9. Enable log file validation (启用日志文件验证) 选择 Yes (是) 以通过检查 2.2,然后选择 Save (保存)

2.2. – 确保已启用 CloudTrail 日志文件验证

严重性: Low

AWS Config 规则:cloud-trail-log-file-validation-enabled

CloudTrail 日志文件验证会创建一个数字签名摘要文件,其中包含 CloudTrail 写入 S3 的每个日志的哈希值。在 CloudTrail 传送日志后,您可以使用这些摘要文件来确定日志文件是已更改、已删除还是未更改。

Security Hub 建议您对所有跟踪启用文件验证。启用日志文件验证可为 CloudTrail 日志提供额外的完整性检查。

Remediation

启用 CloudTrail 日志文件验证

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

  3. Name (名称) 列中选择要编辑的跟踪的名称。

  4. 选择 Storage location (存储位置) 的铅笔图标。

  5. 对于 Enable log file validation (启用日志文件验证),选择 Yes (是),然后选择 Save (保存)

2.3 – 确保 S3 存储桶 CloudTrail 日志不可公开访问

严重性: 重大

AWS Config 规则: s3-bucket-public-read-prohibited,s3-bucket-public-write-prohibited

CloudTrail 记录您账户中进行的所有 API 调用。这些日志文件存储在 S3 存储桶中。Security Hub 建议将 S3 存储桶策略或访问控制列表 (ACL) 应用于 CloudTrail 记录的 S3 存储桶以防止对 CloudTrail 日志的公有访问。允许公有访问 CloudTrail 日志内容可能有助于攻击者发现受影响账户的使用或配置中的弱点。

要运行该检查,Security Hub 首先使用自定义逻辑查找存储 CloudTrail 日志的 S3 存储桶。然后,它使用 AWS Config 托管规则检查是否可公开访问存储桶。

如果您将日志聚合到单个集中式 S3 存储桶中,则 Security Hub 仅针对集中式 S3 存储桶所在的账户和区域运行检查。对于其他账户和区域,控制状态为无数据

如果存储桶可公开访问,则检查将生成失败结果。

Remediation

删除 Amazon S3 存储桶的公有访问权限

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 选择存储 CloudTrail 的存储桶的名称。

  3. 选择 Permissions (权限),然后选择 Public access settings (公有访问权限) 设置。

  4. 选择 Edit (编辑),选择所有四个选项,然后选择 Save (保存)

  5. 如果出现提示,输入 confirm,然后选择 Confirm (确认)

2.4 – 确保 CloudTrail 跟踪与 Amazon CloudWatch Logs 集成

严重性: Low

AWS Config 规则:cloud-trail-cloud-watch-logs-enabled

CloudTrail 是一种 Web 服务,用于记录在给定账户中进行的 AWS API 调用。记录的信息包括 API 调用者的身份、API 调用的时间、API 调用者的源 IP 地址、请求参数以及 AWS 服务返回的响应元素。

CloudTrail 使用 Amazon S3 存储和传送日志文件,因此,将永久存储日志文件。除了在指定的 Amazon S3 存储桶中捕获 CloudTrail 日志以进行长期分析以外,您还可以通过配置 CloudTrail 将日志发送到 CloudWatch Logs 来执行实时分析。

对于您账户中的在所有区域启用的跟踪,CloudTrail 将所有这些区域的日志文件发送到 CloudWatch Logs 日志组。

Security Hub 建议您将 CloudTrail 日志发送到 CloudWatch Logs。

注意

此建议的目的是确保捕获、监控账户活动并适时发出警报。CloudWatch Logs 是使用 AWS 服务实现此目的的原生方式,但不阻碍使用备用解决方案。

将 CloudTrail 日志发送到 CloudWatch Logs 有利于记录基于用户、API、资源和 IP 地址的实时和历史活动。它提供了为异常或敏感账户活动建立警报和通知的机会。

Remediation

确保 CloudTrail 跟踪与 CloudWatch Logs 集成

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

  3. CloudWatch Logs Log group (CloudWatch 日志组) 列中选择一个没有值的跟踪。

  4. 向下滚动到 CloudWatch Logs (CloudWatch 日志) 部分,然后选择 Configure (配置)

  5. New or existing log group (新的或现有日志组) 字段中,执行下列操作之一:

    • 要使用默认日志组,请保持名称不变。

    • 要使用现有日志组,请输入要使用的日志组的名称。

    • 要创建新日志组,请输入要创建的日志组的名称。

  6. 选择 Continue (继续)

  7. 执行下列操作之一:

    • 要使用默认 IAM 角色,请转到下一步。

    • 要指定要使用的角色,请选择 View Details (查看详细信息)

      1. 对于 IAM role (IAM 角色),执行下列操作之一:

        • 选择 CloudTrail_CloudWatchLogs_role,然后在 Policy Name (策略名称) 下拉列表中选择要使用的策略。

        • 选择 Create a new IAM Role (创建新的 IAM 角色),然后为要创建的角色输入一个名称。

          创建角色并分配授予必要权限的策略。

  8. 选择 Allow (允许)

有关更多信息,请参阅 中的CloudWatch Logs使用控制台配置 监控。AWS CloudTrail User Guide

2.5 – 确保已启用 AWS Config

严重性:

AWS Config 规则: 无

AWS Config 是一种 Web 服务,可对您账户中支持的 AWS 资源执行配置管理,并为您提供日志文件。记录的信息包括配置项(AWS 资源)、配置项之间的关系(AWS 资源)以及资源之间的任何配置更改。

Security Hub 建议您在所有区域中启用 AWS Config。AWS Config 捕获的 AWS 配置项历史记录可用于安全分析、资源更改跟踪和合规性审计。

注意

CIS 2.5 要求在您使用 Security Hub 的所有区域中启用 AWS Config。

由于 Security Hub 是一项区域性服务,因此,针对此控制执行的检查仅检查账户的当前区域。它不会检查所有区域。

您还必须记录全局资源,以便能在每个区域中检查针对全局资源的安全检查。如果您仅在一个区域中记录全局资源,则可以在所有区域(记录全局资源的区域除外)中禁用此控件。

为了运行此检查,Security Hub 会执行自定义逻辑以执行 CIS AWS Foundations 基准版本 1.2 中为其规定的审计步骤。Security Hub 还要求在每个区域中记录全局资源,因为 Security Hub 是一个区域新服务,并按区域执行其安全检查。

Remediation

配置 AWS Config 设置

  1. 通过以下网址打开 AWS Config 控制台:https://console.amazonaws.cn/config/

  2. 选择要在其中配置 AWS Config 的区域。

  3. 如果以前未使用过 AWS Config,请选择 Get Started (开始使用)

  4. 在 Settings (设置) 页面上,执行以下操作:

    • Resource types to record (要记录的资源类型) 下,选择 Record all resources supported in this region (记录此区域支持的所有资源)Include global resources (e.g., AWS IAM resources) (包括全局资源(例如 AWS IAM 资源)

    • Amazon S3 bucket (Amazon S3 存储桶) 下,指定要使用的存储桶或创建存储桶(可选择包含前缀)。

    • Amazon SNS topic (Amazon SNS 主题) 下,从您的账户中选择一个 Amazon SNS 主题或创建一个。有关 Amazon SNS 的更多信息,请参阅Amazon Simple Notification Service 入门指南

    • AWS Config role (AWS Config 角色) 下,选择 Create AWS Config service-linked role (创建 AWS Config 服务相关角色),或选择 Choose a role from your account (从您的账户中选择一个角色),然后选择要使用的角色。

  5. 选择 Next (下一步)

  6. AWS Config 规则页面上,选择 Skip (跳过)

  7. 选择 Confirm (确认)

有关从 AWS Config 使用 AWS Command Line Interface 的更多信息,请参阅 中的AWS Config启用 AWS Config Developer Guide

您还可以使用 AWS CloudFormation 模板自动执行这一过程。有关更多信息,请参阅 AWS CloudFormation 中的 StackSets 示例模板。AWS CloudFormation 用户指南

2.6 – 确保在 CloudTrail S3 存储桶上启用 S3 存储桶访问日志记录

严重性: Low

AWS Config 规则:s3-bucket-logging-enabled

Amazon S3 存储桶访问日志记录会生成一个日志,其中包含对您的 S3 存储桶发出的每个请求的访问记录。访问日志记录包含与请求有关的详细信息,如请求类型、处理过的请求中指定的资源和请求的处理时间和日期。

Security Hub 建议您在 CloudTrail S3 存储桶上启用存储桶访问日志记录。

通过在目标 S3 存储桶上启用 S3 存储桶日志记录,您可以捕获可能影响目标存储桶中对象的所有事件。将日志配置为存放在单独的存储桶中可实现对日志信息的访问,这在安全和事故响应工作流程中非常有用。

要运行该检查,Security Hub 先使用自定义逻辑查找存储 CloudTrail 日志的存储桶,然后使用 AWS Config 托管规则检查是否启用了日志记录。

如果您将日志聚合到单个集中式 S3 存储桶中,则 Security Hub 仅针对集中式 S3 存储桶所在的账户和区域运行检查。对于其他账户和区域,控制状态为无数据

如果存储桶可公开访问,则检查将生成失败结果。

Remediation

启用 S​​3 存储桶访问日志记录

  1. 通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 选择用于 CloudTrail 的存储桶。

  3. 选择属性

  4. 选择 Server access logging (服务器访问日志记录),然后选择启用日志记录

  5. Target bucket (目标存储桶) 列表中选择一个存储桶(并可选择输入前缀)。

  6. 选择 Save (保存)

2.7 – 确保使用 CloudTrail AWS KMS 对 CMKs 日志进行静态加密

严重性:

AWS Config 规则:cloud-trail-encryption-enabled

CloudTrail 是一种 Web 服务,用于记录账户的 AWS API 调用,并根据 IAM 策略向用户和资源提供这些日志。AWS Key Management Service (AWS KMS) 是一种托管服务,可帮助创建和控制用于加密账户数据的加密密钥,并使用硬件安全模块 (HSM) 确保加密密钥的安全。

您可以配置 CloudTrail 日志以利用服务器端加密 (SSE) 和 AWS KMS 客户创建的主密钥 (CMK) 来进一步保护 CloudTrail 日志。

Security Hub 建议您将 CloudTrail 配置为使用 SSE-KMS。

配置 CloudTrail 使用 SSE-KMS 可为日志数据提供额外的保密控制,因为给定用户必须拥有对应日志存储桶的 S3 读取权限,并且必须通过 CMK 策略获得解密权限。

Remediation

为 CloudTrail 日志启用加密

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  2. 选择 Trails (跟踪)

  3. 选择要更新的跟踪。

  4. Storage location (存储位置) 下,选择铅笔图标以编辑设置。

  5. 对于 Encrypt log files with SSE-KMS (使用 SSE-KMS 加密日志文件),选择 Yes (是)

  6. 对于 Create a new KMS key (创建新的 KMS 密钥),执行以下操作之一:

    • 要创建密钥,请选择 Yes (是),然后在 KMS key (KMS 密钥) 字段中输入密钥的别名。密钥在与存储桶相同的区域中创建。

    • 要使用现有密钥,请选择 No (否),然后从 KMS key (KMS 密钥) 列表中选择密钥。

    注意

    AWS KMS 密钥和 S3 存储桶必须位于同一区域。

  7. 选择 Save (保存)

您可能需要修改 CloudTrail 的策略才能成功与 CMK 进行交互。有关更多信息,请参阅 中的CloudTrail使用 AWS KMS 托管密钥 (SSE-KMS) 加密 – 日志文件AWS CloudTrail User Guide

2.8 – 确保为客户创建的 CMKs 启用轮换

严重性:

AWS Config 规则:cmk-backing-key-rotation-enabled

AWS KMS 使客户能够轮换备用密钥。备用密钥是存储在 AWS KMS 中的密钥材料,与 CMK 的密钥 ID 相关联。备用密钥被用于执行加密操作,例如加密和解密。目前,自动密钥轮换会保留所有之前的备用密钥,以便解密已加密数据的操作可以不被察觉地进行。

Security Hub 建议您启用 CMK 密钥轮换。轮换加密密钥有助于减少遭盗用密钥的潜在影响,因为使用可能已泄露的先前密钥无法访问使用新密钥加密的数据。

Remediation

启用 CMK 轮换

  1. https://console.amazonaws.cn/kms 打开 AWS KMS 控制台。

  2. 要更改 AWS 区域,请使用页面右上角的区域选择器。

  3. 选择 Customer managed keys (客户托管密钥)

  4. Alias (别名) 列中选择要更新的密钥的别名。

  5. 选择 Key rotation (密钥轮换)

  6. 选择 Automatically rotate this CMK every year (每年自动轮换此 CMK),然后选择 Save (保存)

2.9 – 确保在所有 VPCs 中启用 VPC 流日志记录

严重性:

AWS Config 规则:vpc-flow-logs-enabled

利用 VPC 流日志这项功能,您可以捕获有关传入和传出您的 VPC 中网络接口的 IP 流量的信息。创建流日志后,您可以在 CloudWatch Logs 中查看和检索其数据。

Security Hub 建议您为 VPCs 拒绝的数据包启用流日志记录。 流日志提供对穿过 VPC 的网络流量的可见性,并可在安全工作流中检测异常流量或见解。

Remediation

启用 VPC 流日志记录

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 选择 Your VPCs (您的环境)

  3. 选择要更新的 VPC。

  4. 选择页面底部的 Flow Logs (流日志) 选项卡。

  5. 选择 Create flow log (创建流日志)

  6. 对于 Filter (筛选条件),选择 Reject (拒绝)

  7. 对于 Destination log group (目标日志组),选择要使用的日志组。

  8. 对于 IAM 角色,选择要使用的 IAM 角色。

  9. 选择创建

3.1 – 确保存在关于未经授权的 API 调用的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。

Security Hub 建议您创建指标筛选条件并发出未经授权的 API 调用警报。监控未经授权的 API 调用有助于发现应用程序错误,并可能减少检测恶意活动所花费的时间。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.1 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.errorCode="*UnauthorizedOperation") || ($.errorCode="AccessDenied*")}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.1-UnauthorizedAPICalls

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.2 – 确保存在关于无 MFA 的 AWS 管理控制台登录的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。

Security Hub 建议您创建不受 MFA 保护的指标筛选条件和警报控制台登录。监控单因素控制台登录可提高不受 MFA 保护的账户的可见性。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.2 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventName="ConsoleLogin") && ($.additionalEventData.MFAUsed !="Yes")}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.2-ConsoleSigninWithoutMFA

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.3 – 确保存在关于使用“根”账户的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。

Security Hub 建议您为根用户登录尝试创建指标筛选条件和警报。监控根账户登录可提供对使用完全权限账户的可见性和减少使用该账户的机会。

为了运行此检查,Security Hub 会使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.3 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志),然后选择 Log groups (日志组)

  3. 选择 CloudTrail 在其中记录日志组的日志组。

  4. 在日志组详细信息页面上,选择 Metric filters (指标筛选条件)

  5. 选择 Create metric filter (创建指标筛选条件)

  6. 复制以下模式,然后将其粘贴到 Filter pattern (筛选条件模式) 中。

    {$.userIdentity.type="Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !="AwsServiceEvent"}
  7. 选择 Next (下一步)

  8. 输入新筛选器的名称。例如:RootAccountUsage

  9. 确认 Metric namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  10. Metric name (指标名称) 中,输入指标的名称。

  11. Metric value (指标值) 中,输入 1,然后选择 Next (下一步)

  12. 选择 Create metric filter (创建指标筛选条件)

  13. 接下来,设置通知。选择您刚刚创建的指标筛选条件,然后选择 Create alarm (创建警报)

  14. 输入警报的阈值(例如,1),然后选择 Next (下一步)

  15. Select an SNS topic (选择 SNS 主题) 下,对于 Send notification to (发送通知到),选择一个电子邮件列表,然后选择 Next (下一步)

  16. 输入警报的 Name (名称)Description (描述),例如 RootAccountUsageAlarm,然后选择 Next (下一步)

  17. 选择 Create Alarm

3.4 – 确保存在关于 IAM 策略更改的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。

Security Hub 建议您为对 IAM 策略的更改创建指标筛选条件和警报。监控此类更改有助于确保身份验证和授权控制保持不变。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.4 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventName=DeleteGroupPolicy) || ($.eventName=DeleteRolePolicy) || ($.eventName=DeleteUserPolicy) || ($.eventName=PutGroupPolicy) || ($.eventName=PutRolePolicy) || ($.eventName=PutUserPolicy) || ($.eventName=CreatePolicy) || ($.eventName=DeletePolicy) || ($.eventName=CreatePolicyVersion) || ($.eventName=DeletePolicyVersion) || ($.eventName=AttachRolePolicy) || ($.eventName=DetachRolePolicy) || ($.eventName=AttachUserPolicy) || ($.eventName=DetachUserPolicy) || ($.eventName=AttachGroupPolicy) || ($.eventName=DetachGroupPolicy)}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.4-IAMPolicyChanges

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.5 – 确保存在关于 CloudTrail 配置更改的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。

Security Hub 建议您为 CloudTrail 配置设置更改创建指标筛选条件和警报。监控此类更改有助于确保账户中活动的持续可见性。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.5 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventName=CreateTrail) || ($.eventName=UpdateTrail) || ($.eventName=DeleteTrail) || ($.eventName=StartLogging) || ($.eventName=StopLogging)}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.5-CloudTrailChanges

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.6 – 确保存在关于 AWS 管理控制台身份验证失败的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。

Security Hub 建议您为失败的控制台身份验证尝试创建指标筛选条件和警报。监控失败的控制台登录可能会缩短检测暴力破解凭证尝试的准备时间,这可能会提供可供您在其他事件相关性分析中使用的指标,例如源 IP。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.6 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventName=ConsoleLogin) && ($.errorMessage="Failed authentication")}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.6-ConsoleAuthenticationFailure

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.7 – 确保存在关于禁用或计划删除客户创建的 CMKs 的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。

Security Hub 建议您为将状态更改为禁用或计划删除的客户创建的 CMKs 创建指标筛选条件和警报。您无法再访问使用已禁用或已删除的密钥加密的数据。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.7 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventSource=kms.amazonaws.com) && (($.eventName=DisableKey) || ($.eventName=ScheduleKeyDeletion))}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.7-DisableOrDeleteCMK

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.8 – 确保存在关于 S3 存储桶策略更改的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。

Security Hub 建议您为 S3 存储桶策略更改创建指标筛选条件和警报。监控此类更改可能会缩短检测和纠正敏感 S3 存储桶的宽松策略的时间。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.8 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventSource=s3.amazonaws.com) && (($.eventName=PutBucketAcl) || ($.eventName=PutBucketPolicy) || ($.eventName=PutBucketCors) || ($.eventName=PutBucketLifecycle) || ($.eventName=PutBucketReplication) || ($.eventName=DeleteBucketPolicy) || ($.eventName=DeleteBucketCors) || ($.eventName=DeleteBucketLifecycle) || ($.eventName=DeleteBucketReplication))}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.8-S3BucketPolicyChanges

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.9 – 确保存在关于 AWS Config 配置更改的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。

Security Hub 建议您为 AWS Config 配置设置更改创建指标筛选条件和警报。监控此类更改有助于确保账户中配置项的持续可见性。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.9 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventSource=config.amazonaws.com) && (($.eventName=StopConfigurationRecorder) || ($.eventName=DeleteDeliveryChannel) || ($.eventName=PutDeliveryChannel) || ($.eventName=PutConfigurationRecorder))}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.9-AWSConfigChanges

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.10 – 确保存在关于安全组更改的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。安全组是有状态的数据包筛选器,可用于控制 VPC 的传入和传出流量。

Security Hub 建议您为安全组的更改创建指标筛选条件和警报。监控此类更改有助于确保不会意外公开 资源和服务。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.10 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅Amazon SNS 中的 Amazon Simple Notification Service 开发人员指南 入门

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventName=AuthorizeSecurityGroupIngress) || ($.eventName=AuthorizeSecurityGroupEgress) || ($.eventName=RevokeSecurityGroupIngress) || ($.eventName=RevokeSecurityGroupEgress) || ($.eventName=CreateSecurityGroup) || ($.eventName=DeleteSecurityGroup)}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.10-SecurityGroupChanges

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.11 – 确保存在关于网络访问控制列表 (NACL) 更改的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。NACLs 用作无状态数据包筛选器,用于控制 VPC 中子网的传入和传出流量。

Security Hub 建议您为 NACLs 更改创建指标筛选条件和警报。 监控此类更改有助于确保不会意外公开 AWS 资源和服务。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.11 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventName=CreateNetworkAcl) || ($.eventName=CreateNetworkAclEntry) || ($.eventName=DeleteNetworkAcl) || ($.eventName=DeleteNetworkAclEntry) || ($.eventName=ReplaceNetworkAclEntry) || ($.eventName=ReplaceNetworkAclAssociation)}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.11-NetworkACLChanges

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.12 – 确保存在关于网络网关更改的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。需要网络网关才能向位于 VPC 以外的目标发送流量或从其接收流量。

Security Hub 建议您为网络网关更改创建指标筛选条件和警报。监控此类更改有助于确保所有传入和传出流量都通过受控路径穿过 VPC 边界。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.12 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventName=CreateCustomerGateway) || ($.eventName=DeleteCustomerGateway) || ($.eventName=AttachInternetGateway) || ($.eventName=CreateInternetGateway) || ($.eventName=DeleteInternetGateway) || ($.eventName=DetachInternetGateway)}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.12-NetworkGatewayChanges

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.13 – 确保存在关于路由表更改的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。路由表在子网和网络网关之间路由网络流量。

Security Hub 建议您为路由表更改创建指标筛选条件和警报。监控此类更改有助于确保所有 VPC 流量都流经预期路径。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.13 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventName=CreateRoute) || ($.eventName=CreateRouteTable) || ($.eventName=ReplaceRoute) || ($.eventName=ReplaceRouteTableAssociation) || ($.eventName=DeleteRouteTable) || ($.eventName=DeleteRoute) || ($.eventName=DisassociateRouteTable)}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.13-RouteTableChanges

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

3.14 – 确保存在关于 VPC 更改的日志指标筛选条件和警报

严重性:

AWS Config 规则: 无

您可以通过将 CloudTrail 日志定向到 CloudWatch Logs 并建立相应的指标筛选条件和警报来实时监控 API 调用。您可以在一个账户中拥有多个 VPC,并且可以在两个VPCs之间创建对等连接,从而使网络流量能够在VPCs之间路由。

Security Hub 建议您为 VPCs 更改创建指标筛选条件和警报。 监控此类更改有助于确保身份验证和授权控制保持不变。

为了运行此检查,Security Hub 使用自定义逻辑来执行 CIS AWS Foundations 基准测试 v1.2 中为控制 3.14 规定的确切审计步骤。如果不使用 CIS 规定的确切度量筛选条件,则此控制将会失败。不能向指标筛选条件中添加附加其他字段或搜索词。

重要

Security Hub 仅支持对同一区域中的以下资源执行 CIS AWS Foundations 检查:这些资源由启用 Security Hub 的相同账户拥有。

例如,如果您在 美国东部(弗吉尼亚北部)地区 中启用 Security Hub,但在 美国西部(加利福利亚北部)区域 中创建 CloudWatch 警报或 SNS 主题,则 美国东部(弗吉尼亚北部)地区 中运行的 Security Hub 将无法在 美国西部(加利福利亚北部)区域 中找到 CloudWatch 警报或 SNS 主题。

出现这种情况时,该检查将返回一条指示找不到资源的警告。仅当成功找到资源且资源不符合控件的 CIS 要求时,才生成“失败”查找。

Remediation

解决该问题的步骤包括设置 Amazon SNS 主题、指标筛选条件和指标筛选条件警报。

创建一个 Amazon SNS 主题

  1. 通过以下网址打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v3/home

  2. 创建接收所有 CIS 警报的 Amazon SNS 主题。

    为该主题创建至少一个订阅者。有关更多信息,请参阅 中的 Amazon SNS 入门Amazon Simple Notification Service 开发人员指南

  3. 设置适用于所有区域的活动 CloudTrail。为此,请按照2.1 – 确保在所有区域启用 CloudTrail中的修复步骤进行操作。

    记下关联的日志组名称。

创建指标筛选条件和警报

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 选择 Logs (日志)

  3. 找到您在上一过程中记下的日志组,然后在 Metric Filters (指标筛选器) 列中选择该值。

  4. 选择 Add Metric Filter (添加指标筛选器)

  5. 复制以下模式,然后将其粘贴到 Filter Pattern (筛选条件模式) 字段中。

    {($.eventName=CreateVpc) || ($.eventName=DeleteVpc) || ($.eventName=ModifyVpcAttribute) || ($.eventName=AcceptVpcPeeringConnection) || ($.eventName=CreateVpcPeeringConnection) || ($.eventName=DeleteVpcPeeringConnection) || ($.eventName=RejectVpcPeeringConnection) || ($.eventName=AttachClassicLinkVpc) || ($.eventName=DetachClassicLinkVpc) || ($.eventName=DisableVpcClassicLink) || ($.eventName=EnableVpcClassicLink)}
  6. 选择 Assign Metric (分配指标)

  7. (可选)将筛选条件名称更新为您选择的名称。

  8. 确认 Metric Namespace (指标命名空间) 的值为 LogMetrics

    这可确保将所有 CIS 基准指标分组到一起。

  9. Metric Name (指标名称)字段中输入名称,然后选择 Create Filter (创建筛选器)

    创建筛选器后,将显示其详细信息。

  10. 选择 Create Alarm

  11. Alarm details (警报详细信息) 下,输入警报的 Name (名称)Description (描述),例如 CIS-3.14-VPCChanges

  12. Actions (操作) 下,对于 Send notification to (发送通知到),选择 Enter list (输入列表),然后输入您在上一过程中创建的主题的名称。

  13. 选择 Create Alarm

4.1 – 确保没有安全组允许从 0.0.0.0/0 到端口 22 的传入流量

严重性:

AWS Config 规则:restricted-ssh

安全组为 AWS 资源提供传入和传出网络流量的有状态筛选。

Security Hub 建议不要让任何安全组允许对端口 22 进行不受限制的入口访问。删除与 SSH 等远程控制台服务的自由连接可减少服务器暴露的风险。

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

Remediation

对与 VPC 关联的每个安全组执行以下步骤。

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在左侧窗格中,选择安全组

  3. 选择一个安全组。

  4. 在页面底部,选择 Inbound Rules (入站规则) 选项卡。

  5. 选择 Edit rules (编辑规则)

  6. 确定允许通过端口 22 进行访问的规则,然后选择 X 将其删除。

  7. 选择 Save rules (保存规则)

4.2 – 确保没有安全组允许从 0.0.0.0/0 到端口 3389 的传入流量

严重性:

AWS Config 规则:restricted-common-ports

安全组为 AWS 资源提供传入和传出网络流量的有状态筛选。

Security Hub 建议不要让任何安全组允许对端口 3389 进行不受限制的入口访问。删除与 RDP 等远程控制台服务的自由连接可减少服务器暴露的风险。

注意

非洲(开普敦) 或 欧洲(米兰) 中不支持该控制。

Remediation

对与 VPC 关联的每个安全组执行以下步骤。

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在左侧窗格中,选择安全组

  3. 选择一个安全组。

  4. 在页面底部,选择 Inbound Rules (入站规则) 选项卡。

  5. 选择 Edit rules (编辑规则)

  6. 确定允许通过端口 3389 进行访问的规则,然后选择 X 将其删除。

  7. 选择 Save rules (保存规则)

4.3 – 确保每个 VPC 的默认安全组限制所有流量

严重性:

AWS Config 规则:vpc-default-security-group-closed

VPC 会生成默认安全组,它的初始设置将拒绝所有入站数据流、允许所有出站数据流、以及允许在分配到您的安全组的实例间的所有数据流。如果您在启动实例时未指定安全组,实例将自动关联到默认安全组。安全组为 AWS 资源提供传入和传出网络流量的有状态筛选。

Security Hub 建议默认安全组限制所有流量。

更新要确保合规的每个区域中默认 VPC 的默认安全组。任何新的 VPCs 自动包含您需要修复的默认安全组,以遵守此建议。

注意

在实施该建议时,您可以使用为 2.9 – 确保在所有 VPCs 中启用 VPC 流日志记录 启用的 VPC 流日志记录以确定系统正常工作所需的最小权限端口访问,因为它可以记录在当前安全组中发生的所有数据包接受和拒绝。

将所有 VPC 默认安全组配置为限制所有流量可鼓励开发最小权限的安全组,以及谨慎地将 AWS 资源放置到安全组中,从而降低公开这些资源的可能性。

Remediation

更新默认安全组以限制所有访问

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 查看默认安全组详细信息以了解分配给它们的资源。

  3. 为资源创建一组最小权限安全组。

  4. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  5. 在 Amazon EC2 控制台上,将使用默认安全组的资源的安全组更改为您创建的最小权限安全组。

  6. 对于每个默认安全组,请选择 Inbound (入站) 选项卡并删除所有入站规则。

  7. 对于每个默认安全组,请选择 Outbound (出站) 选项卡并删除所有出站规则。

有关更多信息,请参阅 https://docs.amazonaws.cn/vpc/latest/userguide/VPC_SecurityGroups.html#WorkingWithSecurityGroups 中的Amazon VPC 用户指南使用安全组