SAST,即静态应用程序安全测试,通过静态代码分析工具对源代码进行自动化检测,从而快速发现源代码中的安全缺陷。
本文是一个静态源代码分析工具清单,收集了一些免费开源的项目,可从检测效率、支持的编程语言、第三方工具集成等几因素来综合考虑如何选择SAST工具。
1. RIPS
一款不错的静态源代码分析工具,主要用来挖掘PHP程序的漏洞。
项目地址:RIPS - free PHP security scanner using static code analysis
2. SonarQube
一款企业级源代码静态分析工具,支持Java、PHP、C#、Python、Go等27种编程语言,而且能够集成在IDE、Jenkins、Git等服务。
项目地址:Code Quality and Code Security | SonarQube
3. CodeQL
一个免费开源的语义代码分析引擎和查询工具,以一种非常新颖的方式组织代码与元数据,可以通过像SQL查询一样检索代码,并发现其中的安全问题。
git项目地址:https://github.com/github/codeql-cli-binaries
4. Find Security Bugs
一个用于 Java Web 应用程序安全审计的 SpotBugs 插件。
项目地址:Find Security Bugs
5. VCG(VisualCodeGrepper)
一种适用于 C++、C#、VB、PHP、Java、PL/SQL 和 COBOL 的自动化代码安全审查工具。
项目地址:VisualCodeGrepper V2.2.0 download | SourceForge.net
6. FindBugs
一款静态分析工具,检查程序潜在bug,在bug报告中快速定位到问题的代码上。
项目地址:FindBugs™ - Find Bugs in Java Programs
7. Cobra
一款源代码安全审计工具,支持检测多种开发语言源代码中的大部分显著的安全问题和漏洞。
项目地址:FindBugs™ - Find Bugs in Java Programs
8. Hades
一个静态代码脆弱性检测系统,支持java源码的审计
项目地址:https://github.com/zsdlove/Hades
9. Bandit
一个专门用于查找Python代码中常见安全问题的工具。
github项目地址:https://github.com/PyCQA/bandit
10. Brakeman
一个免费的漏洞扫描器,专门为 Ruby on Rails 应用程序设计。它静态分析 Rails 应用程序代码,以在开发的任何阶段查找安全问题。
项目地址:Brakeman
11. DeepSource
可以自动发现并修复代码中的问题,如反模式、bug风险、性能问题等。它支持与多个版本控制系统集成,并提供详细的错误报告和修复建议。
12. PMD
基于规则的静态代码分析工具,支持多种语言,用于检测潜在问题如未使用的变量、重复代码等。
13. Fortify SCA(Source Code Analysis)
Fortify Software公司是一家总部位于美国硅谷,致力于提供应用软件安全开发工具和管理方案的厂商。Fortify为应用软件开发组织、安全审计人员和应用 安全管理人员提供工具并确立最佳的应用软件安全实践和策略,帮助他们在软件开发生命周期中花最少的时间和成本去识别和修复软件源代码中的安全隐患。 Fortify SCA是Fortify360产品套装中的一部分,它使用fortify公司特有的X-Tier Dataflow™ analysis技术去检测软件安全问题。
优点:目前全球最大静态源代码检测厂商、支持语言最多
缺点:价格昂贵、使用不方便
14. Checkmarx CxSuite
Checkmarx 是以色列的一家高科技软件公司。它的产品CheckmarxCxSuite专门设计为识别、跟踪和修复软件源代码上的技术和逻辑方面的安全风险。首创了以查询语言定位代码安全问题,其采用独特的词汇分析技术和CxQL专利查询技术来扫描和分析源代码中的安全漏洞和弱点。
优点:利用CxQL 查询语言自定义规则
缺点:输出报告不够美观、语言支持种类不全面
15. Armorize CodeSecure
阿码科技成立于2006年,总部设立于美国加州圣克拉拉市,研发中心位于台湾的南港软件工业园区。阿码科技提供全方位网络安全解决方案,捍卫企业免于受到黑客利用 Web 应用程序的漏洞所发动的攻击。阿码科技 CodeSecure可有效地协助企业与开发人员在软件开发过程及项目上线后找出 Web 应用程序风险,并清楚交代风险的来龙去脉 (如何进入程序,如何造成问题) 。CodeSecure内建语法剖析功能无需依赖编译环境,任何人员均可利用 Web操作与集成开发环境双接口,找出存在信息安全问题的源代码,并提供修补建议进行调整。CodeSecure依托于自行开发的主机进行远程源代码检 测,在保证速度稳定的同时方便用户进行Web远程操作。
优点:Web结合硬件,速度快、独具特色的深度分析
缺点:支持语言种类较少、价格不菲