使用 git 機密掃描 Git 存儲庫中的敏感信息和安全問題 - AWS 方案指引

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

使用 git 機密掃描 Git 存儲庫中的敏感信息和安全問題

創建者:索拉巴·辛格 (AWS)

環境:生產

技術:安全性、身分識別、合規

工作負載:開源

Summary

此模式說明如何使用 AWS Labs 的開放原始碼 git-secrets 工具掃描 Git 來源儲存庫,並尋找可能包含敏感資訊的程式碼,例如使用者密碼或 AWS 存取金鑰,或有任何其他安全問題。

git-secrets掃描提交,提交消息和合併,以防止敏感信息(例如機密)被添加到您的 Git 存儲庫中。例如,如果提交、提交訊息或合併歷史記錄中的任何提交符合您設定的禁止規則運算式模式之一,則該提交將被拒絕。

先決條件和限制

先決條件

  • 有效的 AWS 帳戶

  • 需要安全性掃描的 Git 儲存庫

  • 已安裝 Git 用戶端 (版本 2.37.1 及更新版本)

架構

目標架構

  • Git

  • git-secrets

工具

  • git-secrets 是一種工具,可以防止您將敏感信息提交到 Git 存儲庫中。

  • Git 是一個開源的分佈式版本控制系統。

最佳實務

  • 始終通過包含所有修訂版來掃描 Git 存儲庫:

git secrets --scan-history

史诗

任務描述所需技能

使用安全殼層 Connect 至 EC2 執行個體。

使用 SSH 和 key pair 檔案 Connect 到亞馬遜彈性運算雲端 (Amazon EC2) 執行個體。

如果您正在掃描本機電腦上的存放庫,則可以略過此步驟。

一般 AWS
任務描述所需技能

安裝 Git。

使用以下命令安裝 Git:

yum install git -y

如果您使用的是本機電腦,您可以為特定作業系統版本安裝 Git 用戶端。如需詳細資訊,請參閱 Git 網站

一般 AWS
任務描述所需技能

克隆 Git 源代碼存儲庫。

若要複製您要掃描的 Git 儲存庫,請從您的主目錄中選擇 Git 複製指令。

一般 AWS

克隆 git 的秘密。

克隆 git-secrets Git 存儲庫。

git clone https://github.com/awslabs/git-secrets.git

放置在你的git-secrets某個地方,PATH 以便 Git 在運行時拿起它git-secrets

一般 AWS

安裝 git 秘密。

對於 Unix 和變體(Linux /macOS):

您可以使用 Makefile (在git-secrets存放庫中提供) 的install目標來安裝工具。您可以使用PREFIXMANPREFIX變數來自訂安裝路徑。

make install

用於 Windows:

執行git-secrets儲存庫中提供的 PowerShell install.ps1指令碼。此指令碼會將安裝檔案複製到安裝目錄 (%USERPROFILE%/.git-secrets依預設),並將目錄新增至目前的使用者PATH

PS > ./install.ps1

對於自製軟件(macOS 用戶):

執行:

brew install git-secrets

如需詳細資訊,請參閱相關資源一節。

一般 AWS
任務描述所需技能

轉到源存儲庫。

切換到您要掃描的 Git 儲存庫的目錄:

cd my-git-repository
一般 AWS

註冊 AWS 規則集 (Git 掛接)。

要配置git-secrets為在每次提交時掃描 Git 存儲庫,請運行以下命令:

git secrets --register-aws
一般 AWS

掃描存放庫。

執行下列命令以開始掃描存放庫:

git secrets -–scan
一般 AWS

檢閱輸出檔案。

如果該工具在 Git 存儲庫中發現漏洞,則會生成一個輸出文件。例如:

example.sh:4:AWS_SECRET_ACCESS_KEY = ********* [ERROR] Matched one or more prohibited patterns Possible mitigations: - Mark false positives as allowed using: git config --add secrets.allowed ... - Mark false positives as allowed by adding regular expressions to .gitallowed at repository's root directory - List your configured patterns: git config --get-all secrets.patterns - List your configured allowed patterns: git config --get-all secrets.allowed - List your configured allowed patterns in .gitallowed at repository's root directory - Use --no-verify if this is a one-time false positive
一般 AWS

相關資源