适用于 CodeBuild 的 Security Hub 控件 - Amazon Security Hub
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

适用于 CodeBuild 的 Security Hub 控件

这些 Security Hub 控件可评估 Amazon CodeBuild 服务和资源。

这些控件可能并未在所有的 Amazon Web Services 区域 上提供。有关更多信息,请参阅 按地区划分的控件可用性

[CodeBuild.1] CodeBuild Bitbucket 源存储库 URL 不应包含敏感凭证

相关要求:PCI DSS v3.2.1/8.2.1、NIST.800-53.r5 SA-3。

类别:保护 > 安全开发

严重性:严重

资源类型:AWS::CodeBuild::Project

Amazon Config 规则:codebuild-project-source-repo-url-check

计划类型:已触发变更

参数:

此控件可检查 Amazon CodeBuild 项目 Bitbucket 源存储库 URL 是否包含个人访问令牌或用户名和密码。如果 Bitbucket 源存储库 URL 包含个人访问令牌或用户名和密码,则此控件将失败。

注意

此控件可评估 CodeBuild 构建项目的主要源和辅助源。有关项目源的更多信息,请参阅《Amazon CodeBuild User Guide》中的 Multiple input sources and output artifacts sample

登录凭证不应以明文形式存储或传输,也不应出现在源存储库 URL 中。您应该在 CodeBuild 中访问源提供商,并将源存储库 URL 更改为仅包含 Bitbucket 存储库位置的路径,而不是使用个人访问令牌或登录凭证。使用个人访问令牌或登录凭证可能会导致意外的数据泄露和未经授权的访问。

修复

您可以更新 CodeBuild 项目以使用 OAuth。

从 CodeBuild 项目源中删除基本身份验证/(GitHub) 个人访问令牌
  1. 打开 https://console.aws.amazon.com/codebuild/ 上的 CodeBuild 控制台。

  2. 选择包含个人访问令牌或用户名和密码的构建项目。

  3. Edit(编辑) 中,选择 Source(源)

  4. 选择 Disconnect from GitHub / Bitbucket (从 GitHub/Bitbucket 断开连接)

  5. 选择 Connect using OAuth (使用 OAuth 连接),然后选择 Connect to GitHub / Bitbucket (连接到 GitHub/Bitbucket)

  6. 出现提示时,选择 authorize as appropriate (相应授权)

  7. 根据需要,重新配置存储库 URL 和其他配置设置。

  8. 选择 Update source (更新源)

有关更多信息,请参阅 Amazon CodeBuild 用户指南基于代码构建用例的示例

[CodeBuild.2] CodeBuild 项目环境变量不应包含明文凭证

相关要求:PCI DSS v3.2.1/8.2.1、NIST.800-53.r5 IA-5(7)、NIST.800-53.r5 SA-3。

类别:保护 > 安全开发

严重性:严重

资源类型:AWS::CodeBuild::Project

Amazon Config 规则:codebuild-project-envvar-awscred-check

计划类型:已触发变更

参数:

该控制检查项目是否包含环境变量 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

身份验证凭证 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 决不能以明文方式存储,因为这可能会导致意外的数据暴露和未经授权的访问。

修复

要从 CodeBuild 项目中移除环境变量,请参阅 Amazon CodeBuild 用户指南中的在 Amazon CodeBuild 中变更构建项目的设置。确保没有为环境变量选择任何内容。

您可以将具有敏感值的环境变量存储在 Amazon Systems Manager 参数存储或 Amazon Secrets Manager 中,然后从构建规范中检索它们。有关说明,请参阅 Amazon CodeBuild 用户指南“环境”部分中标有重要的方框。

[CodeBuild.3] CodeBuild S3 日志应加密

相关要求:NIST.800-53.r5 CA-9(1)、NIST.800-53.r5 CM-3(6)、NIST.800-53.r5 SC-13、NIST.800-53.r5 SC-28、NIST.800-53.r5 SC-28(1)、NIST.800-53.r5 SI-7(6)。

类别:保护 > 数据保护 > 静态数据加密

严重性:

资源类型:AWS::CodeBuild::Project

Amazon Config 规则:codebuild-project-s3-logs-encrypted

计划类型:已触发变更

参数:

此控件可检查 Amazon CodeBuild 项目的 Amazon S3 日志是否已加密。如果对 CodeBuild 项目的 S3 日志停用加密,则控制失败。

建议对静态数据进行加密,以在数据周围添加一层访问管理。对静态日志进行加密可以降低未经 Amazon 身份验证的用户访问存储在磁盘上的数据的风险。它添加了另一组访问控制来限制未经授权的用户访问数据的能力。

修复

要更改 CodeBuild 项目 S3 日志的加密设置,请参阅 Amazon CodeBuild 用户指南Amazon CodeBuild 中的更改构建项目的设置

[CodeBuild.4] CodeBuild 项目环境应该有日志 Amazon Config 配置

相关要求:NIST.800-53.r5 AC-2(12)、NIST.800-53.r5 AC-2(4)、NIST.800-53.r5 AC-4(26)、NIST.800-53.r5 AC-6(9)、NIST.800-53.r5 AU-10、NIST.800-53.r5 AU-12、NIST.800-53.r5 AU-2、NIST.800-53.r5 AU-3、NIST.800-53.r5 AU-6(3)、NIST.800-53.r5 AU-6(4)、NIST.800-53.r5 AU-9(7)、NIST.800-53.r5 CA-7、NIST.800-53.r5 SC-7(9)、NIST.800-53.r5 SI-3(8)、NIST.800-53.r5 SI-4、NIST.800-53.r5 SI-4(20)、NIST.800-53.r5 SI-7(8)。

类别:识别 > 日志记录

严重性:

资源类型:AWS::CodeBuild::Project

Amazon Config 规则:codebuild-project-logging-enabled

计划类型:已触发变更

参数:

此控件检查 CodeBuild 项目环境是否至少有一个日志选项,即启用 S3 或 CloudWatch 日志。如果 CodeBuild 项目环境未启用至少一个日志选项,则此控制失败。

从安全角度来看,日志记录是一项重要功能,可以在发生任何安全事件时为将来的取证工作提供支持。将 CodeBuild 项目中的异常与威胁检测关联起来,可以增强人们对这些威胁检测准确性的信心。

修复

有关如何配置 CodeBuild 项目日志设置的更多信息,请参阅 CodeBuild 用户指南中的创建构建项目(控制台)

[CodeBuild.5] CodeBuild 项目环境不应启用特权模式

重要

Security Hub 已于 2024 年 4 月停用了此控件。有关更多信息,请参阅 Security Hub 控件的更改日志

相关要求:NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6、NIST.800-53.r5 AC-6(10)、NIST.800-53.r5 AC-6(2)

类别:保护 > 安全访问管理

严重性:

资源类型:AWS::CodeBuild::Project

Amazon Config 规则:codebuild-project-environment-privileged-check

计划类型:已触发变更

参数:

此控件检查 Amazon CodeBuild 项目环境是启用还是禁用了特权模式。如果 CodeBuild 项目环境启用了特权模式,则控制失败。

默认情况下,Docker 容器不允许访问任何设备。特权模式将授予构建项目的 Docker 容器访问所有设备的权限。使用 true 值进行设置 privilegedMode 允许 Docker 进程守护程序在 Docker 容器内运行。Docker 进程守护程序侦听 Docker API 请求并管理 Docker 对象,例如映像、容器、网络和卷。仅当构建项目用于构建 Docker 映像时,才应将此参数设置为 true。否则,应禁用此设置以防止意外访问 Docker API 以及容器的底层硬件。privilegedMode 设置为 false 有助于保护关键资源免遭篡改和删除。

修复

要配置 CodeBuild 项目环境设置,请参阅 CodeBuild 用户指南中的创建构建项目(控制台)。在环境部分中,不要选择特权设置。

[CodeBuild.7] 应对 CodeBuild 报告组导出进行静态加密

类别:保护 > 数据保护 > 静态数据加密

严重性:

资源类型:AWS::CodeBuild::ReportGroup

Amazon Config 规则:codebuild-report-group-encrypted-at-rest

计划类型:已触发变更

参数:

此控件可检查是否对导出到 Amazon Simple Storage Service(Amazon S3)存储桶的 Amazon CodeBuild 报告组测试结果进行了静态加密。如果未对报告组进行静态加密,则此控件将失败。

静态数据是指存储在持久、非易失性存储介质中的数据,无论存储时长如何。对静态数据进行加密可帮助您保护数据的机密性,降低未经授权的用户访问这些数据的风险。

修复

要加密导出到 S3 的报告组,请参阅《Amazon CodeBuild User Guide》中的 Update a report group