一款能在GitHub代码库中探测密钥的工具:Truffle Hog

工具简介

这款名叫“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主页】

下载


  1. python truffleHog.py https://github.com/dxa4481/truffleHog.git 

安装

Truffle Hog唯一的依赖组件就是GitPython,你可以通过下列命令搭建依赖环境:


  1. pip install -r requirements.txt 

作者:Alpha_h4ck

来源:51CTO

时间: 2024-10-26 13:50:01

一款能在GitHub代码库中探测密钥的工具:Truffle Hog的相关文章

Tata开发人员将银行代码泄露至公共GitHub代码库

食品安全测试企业Tellspec公司CTO兼前银行软件开发者杰森·科尔斯表示,他们在偶然之间发现由位于印度加尔各答的软件开发商Tata公司的员工在公共GitHub代码库当中上传大量涉及金融机构的源代码与内部文件.在归档文件当中,他们发现了开发笔记.原始源代码.Web银行代码开发规划内部报告以及与各外包合作伙伴间的往来通话记录. 10家金融单位受影响 这些文件所涉及的源代码与六家大型加拿大银行.两家著名美国金融机构.一家跨国银行以及一家市值达数十亿美元的金融软件厂商有关.利用这些数据,正在着手开发

python 获得github代码库列表

1.背景        项目需求,要求获得github的repo的api,以便可以提取repo的数据进行分析.研究了一天,终于解决了这个问题,虽然效率还是比较低下.     因为github的那个显示repo的api,列出了每个repo的详细信息,而且是json格式的.现在貌似还没有找到可以分析多个json格式数据的方法,所以用的是比较蠢得splite加re的方法.如果大家有更好的方法,不发留言讨论!    2.代码 import re import os def GetUrl(num): st

怎样在Github上托管开源代码库

怎样在Github上托管开源代码库 大家好,今天我们要学习一下怎样在github.com提供的仓库中托管开源软件源代码.GitHub是一个基于web的Git仓库托管服务,提供基于 git 的分布式版本控制和源代码管理(SCM)功能,并加入了自身的特点.它给开源项目和私有项目提供了一个互相协作的工作区.代码预览和代码管理功能.不像Git是一个完完全全的命令行工具,GitHub提供了一个基于web的图形化界面和桌面,也整合了手机操作.GitHub同时提供了私有库付费计划和通常用来管理开源软件项目的免

推荐五款优秀的PHP代码重构工具

在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码.软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方.本文收集了五款出色的PHP代码重构工具,以帮助你完善更加优秀的项目. 1. Rephactor Rephactor是一款命令行重构工具,这是一款自动化工具,允许开发者以一种简洁的方式在不同的代码库中修改源码. 主要功能: 保证重构的可逆性-- 一旦发现问题,代码是可逆的,可以回溯到前一个版本. 查找替换功能-- 普通查找替换,方法重命名,类重

github版本库使用详细图文教程(命令行及图形界面版)_其它综合

Git是一个分布式的版本控制系统,作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法. > Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中.目前,包括 Rubinius和Merb在内的很多知名项目都使用了Git.Git同样可以被诸如Capistrano和

微软一站式示例代码库

官方网站:http://1codechs.codeplex.com/ 这个下面有最受欢迎软件推荐下载和浏览示例代码KB以及C++, .NET 编码规范下载. 微软一站式示例代码库 中文官方博客 http://blog.csdn.net/mscodesample/article/details/7877255  

开源项目成熟度分析工具-利用github api获取代码库的信息

1.github api        github api是http形式的api,功能还是比较丰富的,博主因为项目的原因主要用到的是提取project信息这项功能,返回的数据是JSON格式. api页:https://developer.github.com/v3/ Options: (H) means HTTP/HTTPS only, (F) means FTP only --anyauth Pick "any" authentication method (H) -a, --ap

服务器-怎么在git版本库中下载某个版本的代码,而不是整个版本库。

问题描述 怎么在git版本库中下载某个版本的代码,而不是整个版本库. 例如我想下载SVN仓库中的某个版本直接svn co ...就可以了, 如果用git实现相同的用法,在本地没有版本库的情况下仅下载远程服务器上的某个版本库的代码,要使用GIT的什么命令呢? 解决方案 看看这个. 解决方案二: http://segmentfault.com/q/1010000002424900 解决方案三: 这个链接里面的方法是针对本地有版本库的情况可以直接用PULL命令来拉取,如果我的本地没有版本库,我还想只拉

link环境下制作一款《订餐软件》,如何把本电脑的库合并到服务器上的大库中?会不会冲突?

问题描述 link环境下制作一款<订餐软件>,如何把本电脑的库合并到服务器上的大库中?会不会冲突? link环境下制作一款<订餐软件>,如何把本电脑的库合并到服务器上的大库中?会不会冲突? 解决方案 每个独立的库有一个标识,产生一个流水号.这样放在一个大数据库中,因为前缀的标识不同,就不会重复啦. 解决方案二: 建议你在每个表中都增加一个本地库标识,主键为这个本地库标识以及一个物理主键,这样的话导入到服务器上的大库中就不会冲突,因为本地库标识是不同的