关于GitBleed
GitBleed是一款针对Git库镜像的安全检测工具,该工具包含了多个Shell脚本,可以帮助广大研究人员下载克隆的Git库和Git库镜像,然后从中提取各种数据,并分析两者之间的不同之处。
功能介绍
工具提供的脚本能够克隆指定Git库的副本,即常规克隆(git clone)或使用“--mirror”选项来使用Git库镜像。接下来,该工具将会对两者进行分析,并尝试寻找只有镜像模式中才存在的代码库部分。最后,工具还会尝试提取出的数据中是否存在敏感信息或密码凭证等等。任务执行完成之后,工具将会输出分析结果。
请注意,工具脚本的运行过程中将会创建三份代码库副本,并且会消耗掉一定的磁盘空间。
测试代码库
下面给出的是两个可供广大研究人员测试使用的代码库样例:
gb_testrepo_delete:通过删除的commit隐藏敏感信息
gb_testrepo_reset:通过“git reset”隐藏敏感信息
工具要求
在使用该工具之前,我们首先要确保本地设备上安装并配置好Git、Python3、GitLeaks和git-filter-repo。我们可以在macOS上使用下列命令完成这些工具组件的安装:
brew install git python3 gitleaks git-filter-repo
工具安装
广大研究人员可以使用下列命令将该项目源码克隆至本地,并运行样例项目:
git clone https://github.com/nightwatchcybersecurity/gitbleed_tools.git cd gitbleed_tools ./gitbleed.sh https://github.com/nightwatchcybersecurity/gitbleed_tools.git example
工具还提供了一些帮助脚本,我们可以通过下列方式用它们来扫描GitHub和GitLab代码库:
./gitbleed_gh.sh nightwatchcybersecurity/gitbleed_tools ./gitbleed_gl.sh nwcs/junit_ui_bug
上述命令将会创建一个包含下列三个子目录的样例文件夹:
clone:包含克隆的代码库;
delta:包含代码库镜像,并去除了“clone”中所有的commit;
mirror:包含使用“--mirror”选项执行后得到的代码库镜像;
同时,工具还会创建下列三个文件:
clone_hashes.done.txt:已克隆代码库的哈希列表;
gitleaks.json:正在运行的GitLeaks返回的结果;
gitlog.txt:“delta”目录中所有的commit,整合进了这个单独的文件;
许可证协议
本项目的开发与发布遵循Apache-2.0开源许可证协议。
项目地址
GitBleed:【GtiHub传送门】
参考资料
https://wwws.nightwatchcybersecurity.com/2022/02/11/gitbleed/
https://github.com/nightwatchcybersecurity/gb_testrepo_delete
https://github.com/nightwatchcybersecurity/gb_testrepo_reset