

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# CodeBuild 的 Security Hub CSPM 控制項
<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 《 使用者指南*》中的[多個輸入來源和輸出成品範例](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. 前往 [https://console.aws.amazon.com/codebuild/](https://console.aws.amazon.com/codebuild/) 開啟 CodeBuild 主控台。

1. 選擇包含個人存取字符或使用者名稱及密碼的建置專案。

1. 從 **Edit (編輯)** 中，選擇 **Source (來源)**。

1. 選擇 **Disconnect from GitHub / Bitbucket (從 GitHub / Bitbucket 中斷連線)**。

1. 選擇 **Connect using OAuth (使用 OAuth 連線)**，然後選擇 **Connect to GitHub / Bitbucket (連線至 GitHub / Bitbucket)**。

1. 出現提示時，選擇 **authorize as appropriate (適當授權)**。

1. 視需要重新設定您的儲存庫 URL 和其他組態設定。

1. 選擇 **Update source (更新來源)**。

如需詳細資訊，請參閱*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)、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-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)。確保未為**環境變數**選取任何項目。

您可以將具有敏感值的環境變數存放在 AWS Systems Manager 參數存放區或 中， 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-13、NIST.800-53.r5 SC-28、NIST.800-53.r5 SC-28(1)、NIST.800-53.r5 SI-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專案環境應具有記錄 URL
<a name="codebuild-4"></a>

**相關需求：**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.8000-5.r5)、AU-6NIST.5 AU-9 CA-7 NIST.800-53.r5 SC-7 SI-3 SI-4 SI-7

**類別：**識別 > 記錄日誌

**嚴重性：**中

**資源類型：** `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 容器不允許存取任何裝置。「Privileged」(特殊權限) 模式會授予建置專案之 Docker 容器對所有裝置的存取權。`privilegedMode` 使用 值設定 `true` 可讓 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 Simple Storage Service (Amazon S3) 儲存貯體的報告 AWS CodeBuild 群組測試結果是否靜態加密。如果報告群組匯出未靜態加密，則控制項會失敗。

靜態資料是指存放在持久性、非揮發性儲存體中任何持續時間的資料。加密靜態資料可協助您保護其機密性，進而降低未經授權的使用者可存取資料的風險。

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

若要加密匯出至 S3 的報告群組，請參閱*AWS CodeBuild 《 使用者指南*》中的[更新報告群組](https://docs.aws.amazon.com/codebuild/latest/userguide/report-group-export-settings.html)。