这个工具可以清除软件代码项目中的硬编码密钥

本文讲的是这个工具可以清除软件代码项目中的硬编码密钥,Truffle Hog可以在源代码存储库内找到20个字符或以上的访问令牌和密钥

安全研究人员开发了一种新工具,这一工具可以自动检测软件项目中已被硬编码的敏感访问密钥。

这种名为Truffle Hog( https://github.com/dxa4481/truffleHog )的工具由美国研究员迪伦·艾雷用Python语言开发。它可以通过扫描源代码库里包含20以上字符的高熵值的字符串来搜寻硬编码的访问密钥。高香农熵,即我们通常所说的信息熵,得名于美国数学家克劳德·E·香农,它包含一定程度的随机性,这使它适合用于类似“访问令牌”等需要加密的信息。

软件项目各类服务里的硬编码访问令牌是公认的安全风险,黑客不需费太多力气便可获取。而且这种情况很常见。

2014年,一名研究者发现GitHub的可公开访问代码中遗留有近万的亚马逊的网络服务和弹性计算云的访问密钥。亚马逊自此开始搜寻并清除GitHub中此类密钥。

2015年,Detectify的研究人员在GitHub项目中发现了1500个开发人员硬编码产生的Slack令牌,其中很多令牌泄露了团队在Slack上的内部共享的聊天历史、文件、私人信息等敏感数据。

2015年,位于德国达姆施塔特的工业大学和弗劳恩霍夫信息安全研究所主持了一项研究,研究发现了存储在Android和iOS应用程序里的超过1000个后端即服务(BaaS)框架的访问凭证。通过这些凭证可以获得1850万条记录,其中包括存储在Facebook Parse、CloudMine或亚马逊网络服务等BaaS提供商的5600万数据项。

艾雷描述Truffle Hog时说,该工具将深入挖掘一个项目的提交历史和分支。它会评估为每一个使用base64编码和16进制所表示的大于20字符的字符串的香农熵。

该工具可在GitHub上下载,运行时需要加载GitPython库。公司和独立开发者可以赶在黑客之前,用它来检查自己的软件项目。

时间: 2024-08-01 19:20:47

这个工具可以清除软件代码项目中的硬编码密钥的相关文章

phpthink中字符串截取代码-支持中文和其它编码

 代码如下 复制代码 /** +---------------------------------------------------------- * 字符串截取,支持中文和其它编码 +---------------------------------------------------------- * @param string $str 需要转换的字符串 * @param string $start 开始位置 * @param string $length 截取长度 * @param s

软件开发实践中的入队列和出队列操作的C代码示例

概述 最近有在校的学生朋友在问我,数据结构中的队列在实际的软件开发项目中有什么样的用处. 大家都知道,队列的特点是先入先出,即数据是按照入队列的顺序出队列的.在实际的软件开发项目中,当一个中间模块需要接收和发送大量的消息时,队列就可以大展身手了.我们可以将接收到的数据存储在一个全局队列中,然后在另外的程序流程中将数据从同一个全局队列中取出来,经过一定的处理之后将消息发送到另外的模块.这样做可以降低程序的性能瓶颈. 本文用实际的C代码示例了简单的数据入队列和出队列的方法,大家可据此了解队列的实际用

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

工具简介 这款名叫"Truffle Hog"的免费开源工具可以帮助开发人员检测自己在GitHub上发布的项目代码是否意外泄漏了密钥. Truffle Hog是一款采用Python开发的工具,它可以检索GitHub代码库的所有代码提交记录以及分支,并搜索出可以表示密钥(例如AWS密钥)的高熵字符串. 运行机制 该工具的开发者Dylan Ayrey解释称: "Truffle Hog会检索代码库中每一个分支完整的代码提交记录,而且也会检查每一次提交的git diff信息,然后对每一

JSP(JSTL)中如何使用常量防止硬编码?

js|编码 一般来说,程序中写入硬编码是一个很不好的习惯,比如:this.state="01";通常的做法是写一个类(接口)来存放常量public interface SystemConstant{  String STATE_WTJ = "01";} 然后在程序中这样写就可以了this.state=SystemConstant.STATE_WTJ; 在Java程序中这样就可以避免硬编码了.可是JSP中呢?当然,如果JSP中允许使用Scriplet的话当然也可以直接

源代码管理: 项目中某些文件或文件夹的名称与当前系统 ANSI 代码页不兼容。

问题描述 提示错误:源代码管理:项目中某些文件或文件夹的名称与当前系统ANSI代码页不兼容.在重命名这些文件或文件夹或者在将"区域和语言设置"更改为与当前系统ANSI代码页兼容的代码页之前,无法管理这些文件或文件夹.有人遇到过这种情况吗? 解决方案 解决方案二:哪个版本管理工具?解决方案三:帮帮忙啊谢谢了解决方案四:VSS2005的解决方案五:如何解决啊解决方案六:ANSI格式没有问题,UTF-16.UTF-8有问题,不能正确识别,存储的文件会错乱.微软承认麻烦很大,详细的说明MSDN

Vsuial Studio 2010 软件 页面的代码视图中无控件列表

问题描述 系统是WIN764位安装VsuialStudio2010软件后,一直用的很正常.但过了一段时间后,出现问题了,问题如下:主要是开放网站,语言是C#.我在编写*.ASPX页面时代码一般都没有放在单独的CS文件中.刚开始一切都很正常.在×.aspx页面的左上方有控件的下拉列表,右上方也有控件的事件下拉列表.但不知什么时候发现左上方有控件的下拉列表和右上方控件的事件下拉列表都没有了,在编写控件的事件代码时不能自动添加,要手动输入才行.于是重装VS2010,还是不行.重装系统后再装VS2010

一地鸡毛——软件项目中的人际困局

一地鸡毛--软件项目中的人际困局作者结合切身经历,展示了他之前所在团队软件项目延期的种种原因,而其中印象最深刻的是各种人事纷扰乃至于勾心斗角. 六年前,毕业未久的我在一家外企工作,我所在团队开发的软件项目在交付到集成测试组时因种种原因延期一周.这本身根本不是什么大事情,但其间各种人事纷扰乃至于勾心斗角却着实令我印象深刻. 公司 我的老东家是一家大型跨国电信设备开发商,曾具有辉煌的历史.我还记得在公司110周岁的生日庆典上,一位高管致辞说:"110年,这不是奇迹,是成绩",令人不胜欷歔.

用于统计项目中代码总行数的Python脚本分享

  这篇文章主要介绍了用于统计项目中代码总行数的Python脚本分享,本文直接给出实现代码,需要的朋友可以参考下 最近需要统计一下项目中代码的总行数,写了一个Python小程序,不得不说Python是多么的简洁,如果用Java写至少是现在代码的2倍. [code] import os path="/Users/rony/workspace/ecommerce/ecommerce/hot-deploy/" global totalcount totalcount =0 def cfile

编写高质量代码改善java程序的151个建议——[110-117]异常及Web项目中异常处理

何为异常处理? 异常处理,英文名为exceptional handling, 是代替日渐衰落的error code方法的新法,提供error code 所未能具体的优势.异常处理分离了接收和处理错误代码.这个功能理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解. java语言中,异常处理可以确保程序的健壮性,提高系统的可用率.但是java api 提供的异常都是比较低级的,所以有了'提倡异常封装'