云网牛站
所在位置:首页 > Linux软件 > 安装及使用Gitleaks:审计git存储库的秘密

安装及使用Gitleaks:审计git存储库的秘密

2019-02-14 09:16:31作者:叶云稿源:云网牛站

你是否将未加密的密码、机密和任何其它不需要的数据类型存储在你的git源代码存储库中?Gitleaks为你提供了一种方法来扫描你的git存储库,以查找这些不需要的数据,这些数据应该是私有的,扫描可以自动化,以完全适合CI/CD工作流程,以便在密码识别更深入到代码库之前进行识别。

安装及使用Gitleaks:审计git存储库的秘密

 

Gitleaks特色

Gitleaks的一些很酷的功能包括:

支持私有存储库扫描以及需要基于密钥的身份验证的存储库。

支持Gitlab批量组织和存储库所有者(用户)存储库扫描,并提取请求扫描以在常见CI工作流中使用。

可以输出JSON和CSV格式的扫描结果以及其他报告工具和框架中的消费格式。

用于特定于环境的自定义的外部化配置,包括正则表达式规则。

可自定义的存储库名称,文件类型,提交ID,分支机构和正则表达式白名单,以减少误报。

通过使用src-d的go-git框架实现高性能。

 

下载链接

gitleaks下载地址

 

安装Gitleaks的方法

Gitleaks是用Go编写的(参考:在RHEL 8系统中安装Go的方法),二进制文件可用于许多流行的平台和操作系统类型。

1、下载Gitleaks

对于Linux用户:

wget https://github.com/zricethezav/gitleaks/releases/download/v$VER/gitleaks-linux-amd64

对于macOS用户:

wget https://github.com/zricethezav/gitleaks/releases/download/v$VER/gitleaks-darwin-amd64

如果你是Windows用户,请下载并安装gitleaks-windows-amd64.exe程序包。

2、安装Gitleaks

下载文件后,将其放在/usr/local/bin目录中:

mv gitleaks-linux-amd64 gitleaks

chmod +x gitleaks

sudo mv gitleaks /usr/local/bin/

对于macOS:

mv gitleaks-darwin-amd64 /usr/local/bin/gitleaks

确认可以调用gitleaks命令:

$ gitleaks --version

1.24.0

 

使用Gitleaks审计Git存储库

Gitleaks有许多你基本不需要的可调参数,默认模式应该针对单个仓库而不进行任何调整:

$ gitleaks --repo=https://github.com/jmutai/dotfiles

INFO[2019-02-13T15:55:43+03:00] cloning https://github.com/jmutai/dotfiles

Enumerating objects: 42, done.

Counting objects: 100% (42/42), done.

Compressing objects: 100% (34/34), done.

Total 2255 (delta 10), reused 26 (delta 8), pack-reused 2213

INFO[2019-02-13T15:55:57+03:00] 0 leaks detected. 159 commits inspected in 13 seconds 389 milliseconds

要在gitleaks处理存储库时查看审计输出,请使用-v或--verbose标志打开详细模式:

$ gitleaks --repo=https://github.com/gitleakstest/gronit -v

INFO[2019-02-13T16:06:08+03:00] cloning https://github.com/gitleakstest/gronit 

Enumerating objects: 135, done.

Total 135 (delta 0), reused 0 (delta 0), pack-reused 135

{

"line": "const AWS_KEY = \"AKIALALEMEL33243OLIAE\"",

"commit": "eaeffdc65b4c73ccb67e75d96bd8743be2c85973",

"offender": "AKIALALEMEL33243OLIA",

"reason": "AWS",

"commitMsg": "remove fake key",

"author": "Zachary Rice \u003czricethezav@users.noreply.github.com\u003e",

"file": "main.go",

"repo": "gronit",

"date": "2018-02-04T19:43:28-06:00"

}

{

"line": "const AWS_KEY = \"AKIALALEMEL33243OLIAE\"",

"commit": "cb5599aeed261b2c038aa4729e2d53ca050a4988",

"offender": "AKIALALEMEL33243OLIA",

"reason": "AWS",

"commitMsg": "fake key",

"author": "Zachary Rice \u003czricethezav@users.noreply.github.com\u003e",

"file": "main.go",

"repo": "gronit",

"date": "2018-02-04T19:10:58-06:00"

}

WARN[2019-02-13T16:06:11+03:00] 2 leaks detected. 33 commits inspected in 2 seconds 598 milliseconds

要启用线程,请使用--threads选项:

CPU=$(cat /proc/cpuinfo | grep -ic ^processor)

gitleaks --repo=https://github.com/jmutai/dotfiles --threads=$CPU

此选项指定生成的最大线程数。

 

在Redact模式下运行Gitleaks

--redact将帮助显示包含秘密的行而不记录内容:

$ gitleaks --repo=https://github.com/gitleakstest/gronit --redact

 INFO[2019-02-13T16:10:16+03:00] cloning https://github.com/gitleakstest/gronit 

 Enumerating objects: 135, done.

 Total 135 (delta 0), reused 0 (delta 0), pack-reused 135

 WARN[2019-02-13T16:10:20+03:00] 2 leaks detected. 33 commits inspected in 3 seconds 786 milliseconds

 

将Gitleaks审计结果保存到文件中

你还可以对一堆存储库运行审计,并为文件中的每个存储库保存报表,为此,请使用--report选项:

$ gitleaks --repo=https://github.com/jmutai/dotfiles --report=gitleaks_results.csv

INFO[2019-02-13T16:13:57+03:00] cloning https://github.com/jmutai/dotfiles   

Enumerating objects: 42, done.

Counting objects: 100% (42/42), done.

Compressing objects: 100% (34/34), done.

Total 2255 (delta 10), reused 26 (delta 8), pack-reused 2213

INFO[2019-02-13T16:14:15+03:00] 0 leaks detected. 159 commits inspected in 17 seconds 685 milliseconds

注:报告必须以.csv或.json结尾。

 

相关主题

在CentOS 7系统中安装Git 2.20.1的方法

精选文章
热门文章