近实时监控Github敏感信息泄露,并发送告警通知
关注即送:4000G 架构师视频
GSIL全称 GitHub Sensitive Information Leakage
GitHub敏感信息泄露监控
近实时(15分钟内)监控GitHub敏感信息泄露,并发送告警通知。
功能:
1、根据rules.gsil规则匹配GitHub内容 2、通过邮件告警 3、设置计划任务,定期扫描
GSIL项目主页:https://github.com/FeeiCN/GSIL
安装仅在Python3下验证过
$ git clone https://github.com/FeeiCN/gsil.git
$ cd gsil/
$ pip install -r requirements.txt
gsil/config.gsil(重命名自config.gsil.example)
告警邮箱和Github配置
[mail]
host : smtp.exmail.qq.com
# SMTP端口(非SSL端口,但会使用TLS加密)
port : 25
# 多个发件人使用逗号(,)分隔
mails : gsil@feei.cn
from : GSIL
password : your_password
# 多个收件人使用逗号(,)分隔
to : feei@feei.cn
[github]
# 扫描到的漏洞仓库是否立刻Clone到本地(~/.gsil/codes/)
# 此选项用作监控其它厂商,避免因为仓库所有者发现后被删除
clone: false
# GitHub Token用来调用相关API,多个Token使用逗号(,)分隔
# https://github.com/settings/tokens
tokens : your_token
mails填写自己QQ邮箱,注意,此处password并非填写QQ邮箱密码,需要填写QQ邮箱授权码,[授权码获取流程]
先进入设置-》帐户页面找到入口,按照以下流程操作。
1、点击“开启”
2、验证密保
3、获取授权码
获取授权码后填入password中。
最后需要在“to : feei@feei.cn”下一行添加“cc :feei@feei.cn”抄送邮箱,不然后面运行会报错。
GitHub设置部分登录GitHub账号,设置tokens的页面说明文档已经给出:https://github.com/settings/tokens
点击Generate new token,出现如下页面:
填写token的描述,本人只勾选了repo下的public_repo。保存后出现如下信息:
注意保存下token,token只显示一次,后续再登录无法重新获取。填入tokens中。配置结束。
扫描规则gsil/rules.gsil
重命名自:rules.gsil.example
规则一般选用内网独立的特征,比如蘑菇街的外网是mogujie.com,蘑菇街的内网是mogujie.org,则可以将mogujie.org作为一条规则。
其它还有类似代码头部特征、外部邮箱特征等
{
# 一级分类,一般使用公司名,用作开启扫描的第一个参数(python gsil.py test)
"test": {
# 二级分类,一般使用产品线
"mogujie": {
# 公司内部域名
"\"mogujie.org\"": {
# mode/ext默认可不填
"mode": "normal-match",
"ext": "php,java,python,go,js,properties"
},
# 公司代码特征
"copyright meili inc": {},
# 内部主机域名
"yewu1.db.mogujie.host": {},
# 外部邮箱
"mail.mogujie.com": {}
},
"meilishuo": {
"meilishuo.org": {},
"meilishuo.io": {}
}
}
}
启动测试
$ python gsil.py test
测试token有效性
$ python gsil.py --verify-tokens
$ crontab -e
漏洞报告,此项任务发现漏洞后会立刻发送漏洞报告 每个小时运行一次,GitHub API接口调用频率限制可以根据token数量、规则数量来调整crontab频率实现,若觉得麻烦可简单配置多个token来实现。
crontab执行时间决定了报告的发送时效性,间隔越短报告越快但频率限制越容易触发 建议配置5个token+20条规则,每15分钟运行一次(可以配置更短,根据各自需求确定)
*/15 * * * * /usr/bin/python /var/app/gsil/gsil.py test > /tmp/gsil
统计报告,发送一天的扫描进展,包括运行次数、成功次数、失败次数、发现漏洞数、各域名状况、异常等等
每个小时运行一次
0 * * * * /usr/bin/python /var/app/gsil/gsil.py test > /tmp/gsil
每天晚上11点发送统计报告
0 23 * * * /usr/bin/python /var/app/gsil/gsil.py --report
扫描报告过一次的将不会重复报告,缓存记录在~/.gsil/目录
如果对本文的内容有疑问,请在下面的评论系统中留言,谢谢。
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知我们,我们会立即删除并表示歉意。谢谢!
更多技术干货
推荐:最新200篇:技术文章整理
如何永不迁移数据和避免热点?(揭秘篇)
分库分表?如何做到永不迁移数据和避免热点吗?
为什么 Redis 单线程却能支撑高并发?
作为面试官,我是如何甄别应聘者的包装程度
点个在看再走呗!