hackerone公开了一个五万美元的报告,今天想谈谈这个报告。
链接: https://hackerone.com/reports/1087489

其实这个报告很简单,就是一个Shopify的员工开发了一个应用,但是不小心把.env 文件发布了。但是这个.env文件中有shopify Github仓库的token,这就拿到了github仓库的权限。
这里为什么没有发现这个github token呢,其实主要是因为这个员工开发的是Electron应用,发布到了公网,而且还有人去分析这个Electron应用并在文件系统中找到这个.env文件夹。
这个漏洞发生的几率是非常小的,第一是员工用了工作电脑,还发布了一个应用,而且这个应用还打包了本地的.env文件夹,最后还得安全人员去分析这个应用。
但是我们可以从这个例子中尝试一下怎么去扫描github token等这种验证信息。
目前,github 通过密码扫描服务,会去提醒公共仓库的用户这个安全点。链接:https://docs.github.com/cn/code-security/secret-security/about-secret-scanning
扫描器列表
- Gittyleaks 看着不行
- scanning feature github官方扫描
- Git Secrets AWS发布的,用来阻止提交AWS密钥
- Repo Supervisor 找到错误的配置和密码
- Truffle Hog 这个工具使用正则表达式进行搜索,包括了分支和提交历史。(推荐使用)
- Git Hound go写的检查工具
- Gitrob go写的,已经停止维护
- Watchtower Radar API AI驱动的检测,发现是个商业项目,可以研究一下
- Repo security scanner 是一个命令行工具
- GitGuardian 也是一个商业产品
- Shhgit 这个很牛b
- yar
- GitGot
- git-wild-hunt
国内的github 扫描器
- GSIL
- Hawkeye
- 码小六 推荐使用 https://github.com/4×99/code6
扫描器的问题
传统的扫描器其实就是去用关键字去匹配,而且还是使用的Github自己的查询结果,这种关键字查询的问题和官方的服务是重复的,收货不会多。
这和账号本身出发是冲突的,我们要找的这种类型的泄露,其实是和账户人的公司,职位有关系。
优化方向
- 关键字问题
其实是需要自己来定制规则,很多漏洞都需要很敏感,而且需要深度扫描,还需要和别人抢时间,确实很难。
dotfile 文件 例子:https://www.freebuf.com/articles/web/201871.html
2.扫描的范围
包括下面的例子,提交的记录也是需要扫描

3.从人出发和从项目出发
从人出发, 可以全网扫描,把github的账户按照公司归类并从账户的其他项目中寻找公司信息
从项目出发,可以通过一个项目,去得到所有的提交者的所有repo,并针对性的寻找信息
监控来讲,其账户的最新的star记录也是有用的,我们已经知道了账号属于的公司,就可以判断这个人,这个公司的技术栈,也知道最近在关注什么样的技术,其实可以干的事情是非常多的。
4.AI的角色
其实这里还是用很多NLP的东西,还有一些分类算法,聚类算法,还是看数据的多少,全网爬github应该不难,重点是需要关注的点是什么,当然用账号信息做数据挖掘也是可以的。
参考资源:
1.Building a GitHub Secrets Scanner https://developer.okta.com/blog/2021/02/01/building-a-github-secrets-scanner
2. 自己动手打造Github代码泄露监控工具 https://www.freebuf.com/articles/web/173479.html
3. 自己动手打造Github代码泄露监控工具之改进篇 https://www.freebuf.com/sectool/188102.html
4.如何利用GitHub搜索敏感信息 https://www.freebuf.com/articles/network/192643.html