开发安全必备的三个“刚需”开源工具
从事安全(包括IT、隐私、合规等)工作的人士都知道,市场上花钱能买到的安全工具已经极大丰富。但是,并非所有公司都有大把预算全力投入商业工具,而且一些企业的安全团队自身也没有达到每年需要花费数十万元购买一套安全工具的成熟度。
撇开成本不谈,目前市场上涌现的一些开源工具确实已经具备了与“专业”工具抗衡的实力。以下我们整理网络安全专家们重点推荐的三款开发安全开源工具。
延伸阅读:
- 十大开源安全测试工具
- 八大开源恶意软件分析工具
- 十大最热门的开源IAM项目
- 安全团队不可错过的六云安全开源工具
- 三季度最新开源黑客工具清单
- 如何用开源软件搭建一个完整的SIEM方案
一、Trufflehog(松露猪)
几乎所有安全人士职业生涯的某个阶段都曾遇到过糟心的代码存储安全问题。大公司“屡教不改”的最严重的错误之一就是将敏感数据存储在git存储库中。很多开发人员在git平台总是都有一种安全幻觉,认为代码放在私有仓库中很安全,或者认为自己在提交时已经删除了所有敏感信息。
但现实往往很残酷。
在代码库中存储任何类型的凭据(或任何敏感信息)都是一个糟糕而危险的想法。在提交前清除密钥是远远不够的。要知道,Git、Bitbucket之类的代码存储解决方案都有一个共同的核心任务:代码版本控制。因此,您提交的错误(或敏感信息)会一直存在代码库中,直到你发现并采取措施。
那么,如何高效查找隐藏在代码库中的所有这些秘密呢?Truffehog就是一个相当棒的选择。该工具可以快速深入了解你的代码提交历史,并彻底清除工程团队在代码中隐藏的所有“有趣”的秘密。
Trufflehog支持Github、Gitlab、S3存储桶、Syslog,甚至包括你的普通文件系统,是防范凭证泄露的不可或缺的刚需工具。Uber事件已经给我们所有人敲响了警钟——尽早消除代码库中那些硬编码的秘密。
二、semgrep
Semgrep其实成名已久,多年来一直是开发管道安全的中流砥柱。
借助Semgrep,你可以轻松将静态代码分析集成到你的CI/CD管道中。Semgrep还可以作为运行器无缝集成到Gitlab中。你还可以将Semgrep用作命令行工具或将其整合到Make文件中。而这种灵活性,只是Semgrep强大功能的冰山一角。
Semgrep的另一个优点是支持定制。Semgrep允许你编写自己的规则,以获得最大的自动化效率。你还可以编写规则来更改已弃用的链接、启动其他任务或任何其他听起来很酷的事情。与此列表中的其他工具一样,Semgrep还提供了一个完全托管的解决方案,其中包含更多功能。
三、OpenSCA
OpenSCA这个产品有点老生常谈。其主要功能就是帮你查找依赖项中的安全漏洞。如果你听说过Snyk,不妨把OpenSCA看作是免费版的Snyk。
对于任何使用第三方代码库的工程项目(对于很多软件项目来说,第三方软件依赖度可能高达99%以上)来说,OpenSCA极具价值,属于刚需工具。
与依赖相关的漏洞是当今大多数开发团队面临的重大安全问题。无论你使用何种开发语言,这都是一个非常紧迫而现实的问题,很多时候甚至会击垮一个产品或者团队。Veracode的开发语言代码库漏洞统计向我们直观地展示了这种风险:
存在漏洞的代码库占比&代码库平均漏洞数量 数据来源:Veracode
主流开发语言的漏洞来源:依赖项传递(蓝色)、直接(红色) 数据来源:Veracode
从上图可以看出,除了Python以外,其他主流开发语言的大多数漏洞都是通过代码依赖关系传递的,因此依赖项漏洞扫描非常重要。
Github API(额外推荐)
虽然使用Github API有一点技术门槛,可能需要你绞劲脑汁敲出几行代码,但这完全是值得的(如果不擅长编程,也可以考虑Postman作为替代)。Github API可以用来检查FOSS许可证(你的法律团队会感谢你),并监控异常提交行为(一天中的提交时间、用户、提交量等)。