GitMonitor:一款针对GitHub的敏感信息扫描系统
作者:admin | 时间:2020-7-6 23:21:40 | 分类:黑客工具 隐藏侧边栏展开侧边栏
GitMonitor
GitMonitor是一款针对GitHub的扫描系统,在它的帮助下,研究人员可以轻松扫描出目标GitHub库中存在的敏感信息。
该工具基于规则实现其功能,GitMonitor使用了两套不同的规则集来寻找目标信息。搜索规则将会搜索目标代码库,并寻找跟组织或内部项目相关的信息,而敏感过滤规则将会判断目标代码库是否存在敏感信息。最后,工具还将通过Slack向用户发送扫描报告。你还可以将GitMonitor配合Cronjob一起使用,来监控目标兄台那个并追踪相关的泄露在GitHub中的敏感信息,最后通过Slack接收扫描结果。
功能介绍
1、基于规则(搜索规则)搜索目标代码库,你也可以编写自定义规则来搜索跟自己组织或企业相关的代码库,匹配规则的代码库将会直接被克隆至本地。
2、使用正则表达式(敏感过滤规则)将搜索已克隆至本地的代码库中的敏感信息,并进行分类。
3、通过Slack发送扫描报告。
4、规则和正则表达式单独定义。
5、用户可以轻松自定义规则和正则表达式。
工具运行机制
工具要求
Python3
Python3-pip
目前该工具已在Ubuntu 18.04系统上测试。
工具安装
首先,使用下列命令将项目源码克隆至本地:
git clone https://github.com/Talkaboutcybersecurity/GitMonitor.git
安装依赖组件:
Python3 -m pip install -r requirements.txt
确保你的设备上已经安装了Pyyaml v5x
或更高版本。
接下来,在配置文件config.ini
中填写所需的信息:
[git]
user = <username_git>
pass = <password_git>
url_code = https://api.github.com/search/code?q={}+in:file&sort=indexed&order=desc
url_repos = https://api.github.com/search/repositories?q={}+size:>0+is:public&sort=indexed&order=desc
url_commit = https://api.github.com/search/commits?q={}+is:public&sort=indexed&order=desc
rpp = 50
[slack]
webhooks = <full_link_webhooks>
[path]
rule = <path to rule folder>
source = <path to folder to clone repository>
log = <filename of log>
[msg]
start = ====================**********====================
*Start scanning at {}*
_Clone completed successfully:_
end = ====================**********====================
*Scanning Done at {}*
_Detected possible repository:_
all = ====================**********====================
编写自定义搜索规则,并将规则放入规则字典中:
id: Project_X_Matching
key: X
language:
- java
#filename:
# - LICENSE
#extension:
# - py
# - md
ignore:
# language:
# - php
filename:
- LICENSE
extension:
- html
- txt
接下来,在敏感过滤规则文件libs/regex.py
中定义正则表达式,并运行下列命令:
Python3 gitmonitor.py
你还可以使用Cronjob来自动化运行GitMonitor(计划任务)。
项目地址
GitMonitor:【GitHub传送门】