关键词采集器(企业安全中GitHub关键字扫描开源产品测试调研(一))
优采云 发布时间: 2022-01-25 03:11关键词采集器(企业安全中GitHub关键字扫描开源产品测试调研(一))
前言
GitHub泄露企业敏感信息的事件在网上多次爆发,说明GitHub关键字扫描是企业安全中至关重要的安全基础设施。我利用一些事件对不同类型的 GitHub 扫描开源产品进行了一些测试和研究。, 与你分享。
一、GitHub搜索界面
github提供了代码搜索中搜索关键字的API,并定义默认只搜索主分支代码,即master分支,只搜索小于384KB的文件。
官方例子中:+in:file+language:js+repo:jquery/jqueryq 表示为关键字;
in:file 表示在文件中搜索(文件目录中的in:path);
language 表示该语言是 JavaScript;
repo 表示在 jquery/jquery 存储库中搜索;
该 API 还提供了显示搜索结果的功能。请求时带上请求头:curl-H'Accept:application/vnd.github.v3.text-match+json'\+in:file+language:js+repo:jquery/jquery
示例:但是这个函数只显示匹配的关键字和行数,对实际应用影响不大:
二、开源工具介绍
网上有很多用于 GitHub 扫描的开源工具。我的需求是:及时报警、全面扫描、可视化展示。经过一些测试和比较,我推荐两个易于部署和易于配置的工具:
2.1 GSIL 简介
原则:
搜索范围:默认搜索前200条,最大5000条(github限制)。
流程:通过API(/search/code)搜索规则文件rules.gsil中提交的关键字,然后分析得到的json结果。默认显示前 30 个相关项目。
扫描配置:一些作者认为无用的路径会在配置文件中过滤掉,有的可以根据实际情况进行屏蔽:
结果显示:本工具无页面显示。它使用 email alerts 来匹配 关键词 的行和它的上下 3 行进行邮件发送检查(用户体验更好)。
去重扫描:该工具记录扫描过程中产生的相关代码内容和文件hash,并在~目录下创建一个隐藏文件夹.gsil。在扫描引擎中,如果之前遇到过文件的hash,则跳过:
定期扫描:通过 crontab 配置,每小时执行一次:@hourly /usr/bin/python /root/gsil/gsil.py 规则名称
2.2 鹰眼简介
扫描原理前面已经简单介绍过了。因为 Hawkeye 有图形界面,所以可以和 GSIL 结合使用。我一般将GSIL扫描的账户作为关注的焦点,配置更详细的监控策略。
三、总结
GitHub关键字扫描的其他开源工具还有很多,比如小米开发的比较轻量级的gitpprey()和X-patrol()。从安装环境的要求、配置功能的实现、部署的难易程度入手,可以找到适合自己企业环境的开源扫描工具。再加上一些二次开发,基本可以保证一些触及关键词的GitHub信息泄露能够被及时发现和删除。
感谢阅读,欢迎指导。