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

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

Amazon CodeBuild 控件

这些控制措施与 CodeBuild 资源有关。

这些控件可能并非全部可用 Amazon Web Services 区域。有关更多信息,请参阅 按地区划分的控件可用性

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

重要

2024 年 1 月 10 日,此控件的标题更改为之前的标题。有关更多信息,请参阅 Security Hub 控件的更改日志

相关要求: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 用户指南》中的多个输入源和输出构件示例

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

修复

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

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

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

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

  4. 从 GitHub /Bitbucket 中选择断开连接

  5. 选择 “使用 OAuth 连接”,然后选择 “连接到 GitHub/Bitbucket”。

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

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

  8. 选择 Update source (更新源)

有关更多信息,请参阅《Amazon CodeBuild 用户指南》基于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“更改构建项目的设置”。确保没有为环境变量选择任何内容。

您可以将带有敏感值的环境变量存储在 P Amazon Systems Manager arameter Store 中 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)。

类别:保护 > 数据保护 > 加密 data-at-rest

严重性:

资源类型: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 年 3 月取消此控件。有关更多信息,请参阅 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 用户指南》中的创建构建项目(控制台)。在环境部分中,不要选择特权设置。