

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

# Security Hub CSPM 控件适用于 CodeBuild
<a name="codebuild-controls"></a>

这些 Security Hub CSPM 控件用于评估 AWS CodeBuild 服务和资源。

这些控件可能并非全部可用 AWS 区域。有关更多信息，请参阅 [按地区划分的控件可用性](securityhub-regions.md#securityhub-regions-control-support)。

## [CodeBuild.1] CodeBuild Bitbucket 源存储库 URLs 不应包含敏感凭证
<a name="codebuild-1"></a>

**相关要求：** NIST.800-53.r5 SA-3，PCI DSS v3.2.1/8.2.1，PCI DSS v4.0.1/8.3.2

**类别：**保护 > 安全开发

**严重性：**严重

**资源类型：**`AWS::CodeBuild::Project`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/codebuild-project-source-repo-url-check.html](https://docs.aws.amazon.com/config/latest/developerguide/codebuild-project-source-repo-url-check.html)

**计划类型：**已触发变更

**参数：**无

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

**注意**  
此控件会评估 CodeBuild 构建项目的主要来源和次要来源。有关项目源的更多信息，请参阅《AWS CodeBuild User Guide》**中的 [Multiple input sources and output artifacts sample](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-multi-in-out.html)。

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

### 修复
<a name="codebuild-1-remediation"></a>

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

**从 CodeBuild 项目源中移除基本身份验证/(GitHub) 个人访问令牌**

1. 打开 CodeBuild 控制台，网址为[https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/)。

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

1. 从 **Edit（编辑）** 中，选择 **Source（源）**。

1. **从 GitHub /Bitbucket 中选择断开连接**。

1. 选择 “**使用连接**” OAuth，然后选择 “**连接到 GitHub /Bitbucke** t”。

1. 出现提示时，选择**相应授权**。

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

1. 选择**更新源**。

有关更多信息，请参阅《*AWS CodeBuild 用户指南》*中[基于CodeBuild 用例的示例](https://docs.aws.amazon.com/codebuild/latest/userguide/use-case-based-samples.html)。

## [CodeBuild.2] CodeBuild 项目环境变量不应包含明文凭证
<a name="codebuild-2"></a>

**相关要求：** NIST.800-53.r5 IA-5(7)、PCI DSS v3.2.1/8.2.1 NIST.800-53.r5 SA-3、PCI DSS v4.0.1/8.3.2

**类别：**保护 > 安全开发

**严重性：**严重

**资源类型：**`AWS::CodeBuild::Project`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/codebuild-project-envvar-awscred-check.html](https://docs.aws.amazon.com/config/latest/developerguide/codebuild-project-envvar-awscred-check.html)

**计划类型：**已触发变更

**参数：**无

该控制检查项目是否包含环境变量 `AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY`。

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

### 修复
<a name="codebuild-2-remediation"></a>

要从 CodeBuild 项目中移除环境变量，请参阅*AWS CodeBuild 用户指南 AWS CodeBuild*[中的更改构建项目的设置](https://docs.aws.amazon.com/codebuild/latest/userguide/change-project.html)。确保没有为**环境变量**选择任何内容。

您可以将带有敏感值的环境变量存储在 P AWS Systems Manager arameter Store 中 AWS Secrets Manager ，也可以从构建规范中检索它们。有关说明，请参阅 *AWS CodeBuild 用户指南*中[“环境”部分](https://docs.aws.amazon.com/codebuild/latest/userguide/change-project-console.html#change-project-console-environment)中标有**重要**的方框。

## [CodeBuild.3] 应 CodeBuild 对 S3 日志进行加密
<a name="codebuild-3"></a>

**相关要求：** NIST.800-53.r5 CA-9(1)、 NIST.800-53.r5 CM-3(6), NIST.800-53.r5 SC-1 3、8、 NIST.800-53.r5 SC-2 8 (1)、nist.800-53.r5 SI- NIST.800-53.r5 SC-2 7 (6)、PCI DSS v4.0.1/10.3.2

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

**严重性：**低

**资源类型：**`AWS::CodeBuild::Project`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/codebuild-project-s3-logs-encrypted.html](https://docs.aws.amazon.com/config/latest/developerguide/codebuild-project-s3-logs-encrypted.html)

**计划类型：**已触发变更

**参数：**无

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

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

### 修复
<a name="codebuild-3-remediation"></a>

要更改 CodeBuild 项目 S3 日志的加密设置，请参阅*AWS CodeBuild 用户指南 AWS CodeBuild*[中的更改构建项目的设置](https://docs.aws.amazon.com/codebuild/latest/userguide/change-project.html)。

## [CodeBuild.4] CodeBuild 项目环境应该有一个日志持续时间 AWS Config
<a name="codebuild-4"></a>

**相关要求：** NIST.800-53.r5 AC-2(12)、(4)、(26)、 NIST.800-53.r5 AC-2 (9)、(9)、 NIST.800-53.r5 AC-4 (9)、 NIST.800-53.r5 AC-6 nist.800-53.r5 SI-3 NIST.800-53.r5 SC-7 (8) 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 SI-4、nist.800-53.r5 SI-4 (20)、nist.800-53.r5 SI-7 (8)

**类别：**识别 > 日志记录

**严重性：**中

**资源类型：**`AWS::CodeBuild::Project`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/codebuild-project-logging-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/codebuild-project-logging-enabled.html)

**计划类型：**已触发变更

**参数：**无

此控件检查 CodeBuild 项目环境是否至少有一个日志选项，要么是 S3 日志选项，要么是启用了 CloudWatch 日志。如果 CodeBuild 项目环境没有启用至少一个日志选项，则此控件将失败。

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

### 修复
<a name="codebuild-4-remediation"></a>

有关如何配置 CodeBuild 项目日志设置的更多信息，请参阅《 CodeBuild 用户指南》中的[创建构建项目（控制台）](https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-console.html#create-project-console-logs)。

## [CodeBuild.5] CodeBuild 项目环境不应启用特权模式
<a name="codebuild-5"></a>

**重要**  
Security Hub CSPM 于 2024 年 4 月取消了该控制权。有关更多信息，请参阅 [Security Hub CSPM 控件的更改日志](controls-change-log.md)。

**相关要求：** 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`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/codebuild-project-environment-privileged-check.html](https://docs.aws.amazon.com/config/latest/developerguide/codebuild-project-environment-privileged-check.html)

**计划类型：**已触发变更

**参数：**无

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

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

### 修复
<a name="codebuild-5-remediation"></a>

要配置 CodeBuild 项目环境设置，请参阅*《CodeBuild 用户指南》*中的[创建构建项目（控制台）](https://docs.aws.amazon.com/codebuild/latest/userguide/create-project-console.html#create-project-console-environment)。在**环境**部分中，不要选择**特权**设置。

## [CodeBuild.7] 应对 CodeBuild 报告组导出进行静态加密
<a name="codebuild-7"></a>

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

**严重性：**中

**资源类型：**`AWS::CodeBuild::ReportGroup`

**AWS Config 规则：**[https://docs.aws.amazon.com/config/latest/developerguide/codebuild-report-group-encrypted-at-rest.html](https://docs.aws.amazon.com/config/latest/developerguide/codebuild-report-group-encrypted-at-rest.html)

**计划类型：**已触发变更

**参数：**无

此控件检查导出到亚马逊简单存储服务 (Amazon S3) Storage Service 存储桶 AWS CodeBuild 的报告组的测试结果是否经过静态加密。如果未对报告组进行静态加密，则此控件将失败。

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

### 修复
<a name="codebuild-7-remediation"></a>

要加密导出到 S3 的报告组，请参阅《AWS CodeBuild User Guide》**中的 [Update a report group](https://docs.aws.amazon.com/codebuild/latest/userguide/report-group-export-settings.html)。