工具简介
这款名叫“Truffle Hog”的免费开源工具可以帮助开发人员检测自己在GitHub上发布的项目代码是否意外泄漏了密钥。
Truffle Hog是一款采用Python开发的工具,它可以检索GitHub代码库的所有代码提交记录以及分支,并搜索出可以表示密钥(例如AWS密钥)的高熵字符串。
运行机制
该工具的开发者Dylan Ayrey解释称:
“Truffle Hog会检索代码库中每一个分支完整的代码提交记录,而且也会检查每一次提交的git diff信息,然后对每一个长度超过20个字符的base64字符集和十六进制字符集的香农熵(Shannon entropy)进行估值。如果TruffleHog检测到了一个长度大于20个字符的高熵字符串,它便会将其打印输出至屏幕。”
一些Reddit用户目前已经在社区开始讨论Truffle Hog了,因为在此之前有攻击者曾利用工具在GitHub中搜索用户意外泄漏的AWS密钥,并将这些密钥用于恶意的AWS实例之中。由于这种类型的恶意活动会给亚马逊公司带来巨额的经济损失,因此亚马逊也将那些在公共代码库中意外泄漏了密钥的AWS账号暂时禁用了。
Dylan Ayrey是谁?
其实,有些用户可能早就熟知Ayrey了。Ayrey在去年曾专门制作了一个演示demo来警告用户“Pastejacking攻击”危险性。这种基于JavaScript的攻击可以修改用户剪切板中的内容,然后诱使用户在其他地方粘贴这些内容。此时的用户并不知道他们所粘贴的是恶意代码,而这些恶意代码则有可能在计算机中的任何地方得到执行。
Truffle Hog项目在GitHub上已经拥有超过700多位粉丝了,而这也使得该项目成了Ayrey继Pastejack攻击demo之后第二火爆的开源项目了。
开发人员不应该粗心大意
开发人员在将自己的项目代码提交至GitHub之前,一定要再三检查代码中可能存在的敏感信息,而这一点安全研究专家也已经多次警告过社区的开发人员了。在2013年1月份,GitHub也推出了一款新的内部搜索功能,开发人员可以利用这个功能来搜索代码库中的密码、加密密钥、以及其他的敏感数据。该服务一经推出,广大用户就立刻在GitHub中扫描到了大量意外泄漏的密钥。
工具下载与安装 – 【GitHub主页】
下载
- python truffleHog.py https://github.com/dxa4481/truffleHog.git
安装
Truffle Hog唯一的依赖组件就是GitPython,你可以通过下列命令搭建依赖环境:
- pip install -r requirements.txt