使用 git-secrets 扫描 Git 存储库中的敏感信息及安全问题 - AWS Prescriptive Guidance

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

使用 git-secrets 扫描 Git 存储库中的敏感信息及安全问题

由 Saurabh Singh 创作 () AWS

摘要

此模式描述了如何使用AWS实验室的开源 git-sec rets 工具扫描 Git 源代码库,并查找可能包含敏感信息(例如用户密码或AWS访问密钥)或存在任何其他安全问题的代码。

git-secrets 扫描提交、提交消息和合并,以防止密钥等敏感信息被添加至 Git 存储库。例如,如果提交、提交消息或合并历史记录中的任何提交与您配置的、禁用的正则表达式模式之一相匹配,则该提交将被拒绝。

先决条件和限制

先决条件

  • 一个活跃的AWS账户

  • 需安全扫描的 Git 存储库

  • Git 客户端(版本 2.37.1 及更高版本)已安装

架构

目标架构

  • Git

  • git-secrets

使用 git-secrets 工具扫描 Git 源存储库中是否有敏感信息。

工具

  • git-secrets是一种防止您将敏感信息提交至 Git 存储库的工具。

  • Git 是开源分布式版本控制系统。

最佳实践

  • 务必通过包含所有修订版来扫描 Git 仓库:

git secrets --scan-history

操作说明

任务描述所需技能

使用连接EC2实例SSH。

使用SSH和密钥对文件连接到亚马逊弹性计算云 (AmazonEC2) 实例。

如果您要在本地计算机上扫描存储库,则可跳过此步骤。

将军 AWS
任务描述所需技能

安装 Git。

通过以下命令安装 Git:

yum install git -y

如果使用的是本地计算机,则可安装适用于特定操作系统版本的 Git 客户端。有关更多信息,请参阅 Git 网站

将军 AWS
任务描述所需技能

克隆 Git 源存储库。

若要克隆待扫描 Git 存储库,请从主目录中选择 Git 克隆命令。

将军 AWS

克隆 git-secrets。

克隆 git-secretsGit 存储库。

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

git-secrets 放在 PATH 的某个地方,以便其在您运行 git-secrets 时被 Git 选中。

将军 AWS

安装 git-secrets。

对于 Unix 及其变体 (Linux/macOS):

您可以使用 Makefileinstall 目标(在 git-secrets 存储库中提供)安装工具。您可以使用 PREFIXMANPREFIX 变量自定义安装路径。

make install

对于 Windows:

运行git-secrets存储库中提供的 PowerShell install.ps1脚本。此脚本将安装文件复制到安装目录(默认为 %USERPROFILE%/.git-secrets),并将该目录添加至当前用户 PATH

PS > ./install.ps1

对于 Homebrew(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

相关资源