震惊中外的XcodeGhost事件告诉我们,信息安全要从源头抓起,而源头往往就是指软件开发环节的安全性。(参考阅读:如何避免十大最严重的软甲安全设计缺陷)
但是从数以万行计的软件代码中查找漏洞并不是一件容易的事,索性市场上目前已经涌现了不少代码安全审查工具,这些工具不但能标记和统计代码中的安全隐患,同时也有助于形成安全优先的开发流程和文化。
以下IT经理网推荐五款代码安全审核工具,涵盖开源产品和收费商业产品,以及云端和企业内部部署两种交付方式。
一、Codiscope Jacks
Codiscope公司的Jacks是一个静态代码分析工具,也就是在软件未执行时进行代码分析,因此非常适合作为软件代码安全审核第一阶段的工具使用,对于那些在GitHub上托管代码的开发者来说,Codiscope Jacks(目前仍然是beta版本)可以作为云端安全服务使用,从Github导入代码进行扫描。Jacks目前能够扫描JavaScript程序,能够发现代码中的安全隐患并给出最佳实践建议。Codiscope计划在未来版本中支持Java等其他语言。
二、Flawfinder
Flawfinder是一个C/C++代码的开源安全审查工具,采用内建语法缺陷数据库,能够标记类似缓冲溢出、格式字符串、竞争条件、随机数获取方面的问题。Flawfinder是一个非常简单的工具,采用的算法也不复杂,可以看做是一个基于词典的源代码静态分析器。
Flawfinder的开发者David Wheeler表示:很多软件开发者都在不断重复犯相同的错误,开发人员应当在软件部署前就用Flawfinder审查代码。
三、IBM Security AppScan
IBM公司的Security AppScan主要定位于提升web和移动该应用的安全性,可以部署在企业内部,同时支持静态和(黑箱)动态分析。AppScan还支持交互分析,通过代理测试应用在服务器端的响应,例如观察应用是否存在SQL注入漏洞。此外AppScan还支持专门针对移动应用的安全分析。
四、Parasoft Development Testing Platform
Parasoft推出的开发测试平台(DTP)可以在IDE中提供代码静态分析,也可以作为持续集成系统的一部分使用。在持续集成中,DTP可以通过邮件、web报告或者在IDE中直接报告的方式向开发团队提供反馈。DTP为C/C++、.Net和Java分别提供了超过1500条规则,所有规则都有扩展文档,内容包括相关安全问题列表、常见缺陷列表(CWE)、参数等等。
Parasoft还提供一个工具RuleWizard,用于创建用户定制化的规则。
五、Rogue Wave Klockwork
Rogue Wave Klocwork属于企业内部部署的静态代码分析工具,可以与持续集成系统如Jenkins配合使用,分析增量代码改变。
Rogue Wave Klocwork可以帮助开发者在软件开发周期中尽可能早地发现质量和安全方面的代码缺陷。
本文转自d1net(转载)