网络安全学习笔记工具篇——GSIL GITHUB敏感信息泄露检测工具

恢弘志士之气,不宜妄自菲薄。这篇文章主要讲述网络安全学习笔记工具篇——GSIL GITHUB敏感信息泄露检测工具相关的知识,希望能为你提供帮助。
一、说明
本文说明了GITHUB上的敏感信息泄露工具GSIL的使用方法。通过该工具可以对GITHUB上自己关心的敏感信息进行检测分析,主要是公司的敏感开发代码、测试代码等,同时也可以发现一些泄露到GITHUB的账号密码等信息。GSIL通过提前设置的关键字分析,当检测到敏感的关键字后,将发现的敏感信息通过邮件发送到指定的接收邮箱中。
本工具来自GITHUB,具体也可以参考GITHUB上的说明,地址如下:https://github.com/FeeiCN/GSIL#gsilgithub-sensitive-information-leakage。
二、整体流程
1、安装python3
2、下载安装GSIL工具
3、准备敏感信息关键字列表
4、获取GITHUB上的TOKEN
5、获取邮件发送者的密钥
6、修改GSIL 配置文件gsil
7、修改GSIL 规则库 gsil
8、运行GSIL工具

三、各步骤详解
(一)、安装Python3

(二)、下载安装GSIL工具
参考链接:https://github.com/FeeiCN/GSIL#gsilgithub-sensitive-information-leakage
$ git clone https://github.com/FeeiCN/gsil.git
$ cd gsil/
$ pip install -r requirements.txt
如果是windows安装,可以直接打包下载,然后pip install -r requirements.txt进行安装。
(三)、准备敏感信息关键字列表
关键字列表的准确与否直接关系到扫描结果的准确与否,因此在扫描前要仔细准备关键字,可以考虑如下的方式获取关键字:
1、公司域名;
2、公司的英文名字、中文拼音名字、汉字;
3、公司的各业务的英文名字、中文拼音名字、汉字;
4、找公司的代码管理员或者研发沟通了解其代码的特征,如注释、作者、特定的标识等。
备注:中文可能为乱码。
举例:假设公司名字“叶子”,经过分析有如下的关键字列表:
www.yezi.com,yezi,leaf,author:yezi,叶子
(四)、GITHUB上获取TOKEN
1、登陆GITHUB,右上角点击“settings”,如下:

网络安全学习笔记工具篇——GSIL GITHUB敏感信息泄露检测工具

文章图片

2、左边栏点击“Developer settings”开发者设置,再选择“Personal access tokens”,右上角点击“Generate token”生成token,将生成的token复制保存备用。

(五)、获取邮件发送者的密钥
当GSIL检测到敏感信息时,将会通过邮件把包含敏感信息的链接及其关键字的上下文发送到相关人员的邮箱中,以备后续分析。发送邮件可以是任何类型的邮箱,我用的是网易126邮箱,在登陆进邮箱后,找到设置页面,可以设置SMTP及获取密钥,将获取到的密钥记录下来备用。
(六)、修改GSIL 配置文件gsil
GSIL的配置文件为config.gsil,由两部分构成,第一部分是邮箱相关,第二部分是GITHUB TOKEN相关,按照下图修改前面步骤中获取到的信息即可。
网络安全学习笔记工具篇——GSIL GITHUB敏感信息泄露检测工具

文章图片

(七)、修改GSIL 规则库 gsil
GSIL规则文件为rules.gsil,其构成规则及说明如下:
{
"ScanName": {
"instance1": {
"keyword1": {
"mode": "normal-match",
"ext": "php,java,python,go,js,properties,yml,md,js,py"
},
"keyword2": {
"mode": "normal-match",
"ext": "php,java,python,go,js,properties,yml,md,js,py"
}
}
}
}
说明:
ScanName:该名字为脚本执行时所引用的规则的名字。
Instance1:用于区分不同的扫描规则组,我在这里叫做一个实例,可以是按照产品分类、按照业务部门去分类,方便后面的统计,可以包含多个实例。
keyword1:前面所定义的敏感关键字段。
Mode:可选,包括:
normal-match,显示命中关键字及附近的行数;
only-match,仅显示命中的关键字;
full-match,显示整个文件,不推荐;
默认为 normal-match。
Ext:要扫描的文件后续,默认为所有,可选,如java,php,python。
本案例中的规则配置如下:
{
"YeziScan": {
"Yezi": {
"www.yezi.com": {
"mode": "normal-match",
"ext": "php,java,python,go,js,properties,yml,md,js,py"
},
"yezi": {
"mode": "normal-match",
"ext": "php,java,python,go,js,properties,yml,md,js,py"
},
"leaf": {
"mode": "normal-match",
"ext": "php,java,python,go,js,properties,yml,md,js,py"
},
"author:yezi": {
"mode": "normal-match",
"ext": "php,java,python,go,js,properties,yml,md,js,py"
},
"叶子": {
"mode": "normal-match",
"ext": "php,java,python,go,js,properties,yml,md,js,py"
}
}
}
}
(八)、运行程序
1、验证GITHUB TOKEN,命令:python gsil.py --verify-tokens,如下图所示:
网络安全学习笔记工具篇——GSIL GITHUB敏感信息泄露检测工具

文章图片

2、执行扫描命令:
python gsil.py YeziScan
网络安全学习笔记工具篇——GSIL GITHUB敏感信息泄露检测工具

文章图片

3、查看结果:
网络安全学习笔记工具篇——GSIL GITHUB敏感信息泄露检测工具

文章图片

四、总结
【网络安全学习笔记工具篇——GSIL GITHUB敏感信息泄露检测工具】本文简单介绍了GSIL工具的使用,其中敏感关键字的丰富准确程度直接决定了扫描结果的准确程度。前面通过一个完整的流程说明了如何执行扫描,也可以制作成为定时任务,在固定的周期执行扫描,这样可以实现自动化的监控。唯一还有一点问题的是当关键字为汉字时,可能由于编码的原因,可以看到扫描过程中显示乱码,这里没有做深入的研究调试。

    推荐阅读