针对这二个问题,本文就来探索一下目前所有已知的最好的静态代码分析工具。如果有遗漏的,请大家补充。
静态分析工具的最大好处就是在软件开发流程的早期阶段发现致命的缺陷。
我们因该尽可能的在代码实际推送到功能QA之前就修复这些缺陷。如果拖到最后的话,要花大的代价来查找和修复这些问题。
接下来,我们就逐一的了解一下目前业内正在被使用的静态代码分析工具,然后结合您的需求,看看哪些可以对症下药帮您解决问题。
其官方网站是:
一个构建和发布工具的集合。包括"precommit"模块,用于执行完整和部分/补丁CI构建,通过其他开源工具提供代码的静态分析,作为可配置报告的一部分。内置支持C、C++、Java、Perl、Python、Ruby、Shell和XML。可以通过一个插件框架进行扩展。
一个针对Ada、C、C、C++、C#和Java代码的静态代码分析工具套件,可执行各种分析,如架构检查、接口分析、MISRA检查和克隆检测等。
一个轻量级的IDE插件,可以在开发人员编写代码时实时指出常见的安全漏洞。支持Java、.NET和PHP。
4.CodeDx
软件应用漏洞关联与管理系统,整合多种静态应用安全测试(SAST)和动态应用安全测试(DAST)工具检测到的软件漏洞,以及手动代码审查的结果,并将其归纳整理和规范化。支持C、C++、C#、Java、JavaScript、JSP、PHP、Python、Rails、Ruby、Scala、VB.NET和XML/XSL。
一个适用于Java、C、C、C++和Objective-C的工具。针对空指针问题、泄漏、并发问题和Facebook移动应用的API使用问题。在github上以开放源代码的形式提供。
扫描源代码和二进制文件以识别开放源码和许可证,管理开放源码政策和审批,报告安全漏洞,并提供开放源码技术支持。
基于静态代码分析的自动代码审查工具,适用于Ruby、Python、PHP、JavaScript、CoffeeScript和Go。可以检查风格、质量、依赖性、安全性和bug。
用于Ada和Java的逻辑错误、竞赛条件和冗余代码的静态检测;自动从代码中提取前置条件。
是一个基于插件的框架,可以扫描任意文件类型,有C、C++、Java、Java、JavaScript、ASP、PHP、HTML-CSS、ColdFusion、COBOL等文件类型的插件。它集成了其他扫描器,包括FindBugs、PMD和Pixy。
如下是其官方网站对其产品的介绍:
“
”。
官方网站为:
RIPS是唯一能执行特定语言安全分析的代码分析解决方案。它能检测出最复杂的安全漏洞,这些漏洞往往深藏在源代码中,其他工具无法发现。
RIPS以其高精确度和无假阳性噪声,是分析Java和PHP应用程序的理想选择。
PVS-Studio是一个用于检测程序源代码中的BUG和安全漏洞的工具,它是用C、C++、C#和Java编写的。它可以在Windows、Linux和macOS环境中工作。
它可以集成到VisualStudio、IntelliJIDEA和其他广泛使用的IDE中。分析的结果可以导入到SonarQube中。
Kiuwan是目前市场上技术覆盖和集成度最高的SAST和SCA平台。
它能自动优先处理代码中的热点,并提供清晰的可视化功能。凭借其多矢量诊断技术,它可以从多个角度来分析,包括软件设计等多个方面进行分析,使企业能够透明地管理和提高软件质量。
Reshift是一个基于SaaS的软件平台,可以帮助软件开发团队在部署到生产之前,更快地在自己的代码中发现更多的漏洞。
CodeScene还超越了传统的工具,通过测量公司和人员的侧重点来检测软件架构中的协调瓶颈、离岗风险和知识差距。
最后,CodeScene集成到您的CI/CD管道中,作为一个额外的监管员来预测交付风险,并提供上下文感知的质量门来监督您的代码的健康状况。
VisualExpert是一款针对SQLServer、Oracle和PowerBuilder代码的独特静态代码分析工具。
VisualExpert工具箱提供了200多个功能,在进行修改时可以减少维护和避免衰退。
l代码审查
lCRUD矩阵
lE/R图与代码视图同步。
l代码性能分析
l代码探索
l影响分析
l源代码文档
l代码比较
Veracode是一款基于SaaS模式构建的静态分析工具。该工具主要从安全的角度分析代码。
该工具使用二进制代码/字节码,因此可以确保100%的测试覆盖率。如果你想编写安全代码,这个工具被证明是一个不错的选择。
Fortify是惠普公司的一款工具,它的目的是让开发人员创建无错误的安全代码。
在扫描代码的同时,它会对发现的问题进行排序,从而可以确保首先修复最关键的问题。
Parasoft是静态分析测试的最佳工具之一。与其他静态分析工具相比,Parasoft的静态分析工具略有不同,因为它能够支持各种类型的静态分析技术,如基于模式的、基于流程的、第三方分析、度量和多变量分析。
该工具的另一个好处是除了识别缺陷之外,它还提供一个防止出现缺陷的功能。
CoverityScan是一个基于云计算的开源工具。它适用于使用C、C++、Java、C#或JavaScript编写的项目。这个工具提供了一个非常详细而清晰的问题描述,有助于更快的解决问题。
如果你正在寻找一个开源工具,这是个不错的选择。
一个可以用来分析50多种语言的自动化工具,无论项目规模大小,它都能出色地工作。此外,它还为用户提供了一个仪表板,有助于衡量质量和生产力。
总的来说,它是一个很好的检测安全漏洞的工具,它的深度静态分析能力使它从众多的静态分析工具中脱颖而出。
正如它的名字一样,这个工具可以让用户通过分析、测量、可视化和维护来理解代码。这使得用户可以快速分析大量的代码。这是一个主要用于航空航天和汽车行业的工具。支持C/C++、ADA、COBOL、FORTRAN、PASCAL、Python等主流语言和其他网络语言。
CodeCompare-是一个文件和文件夹比较和合并工具。超过70,000名用户在解决合并冲突和部署源代码修改时使用CodeCompare。
CodeCompare是一个免费的比较工具,用于比较和合并不同的文件和文件夹。CodeCompare集成了所有流行的源码控制系统:TFS,SVN,Git,Mercurial,和Perforce。CodeCompare可以作为一个独立的文件比较工具和VisualStudio的扩展使用。
主要功能:
l文本比较和合并
l语义源码比较
l文件夹比较
lVisualStudio集成
l版本控制集成和其他
这是一个开源工具,可以用来分析C,C++代码。它使用clang库,是一个可重用的组件,可以被多个客户端使用。
与其他静态分析工具相比,是一款非常容易使用的工具。顾名思义,这个工具是用来分析C/C++代码的。它支持不同的代码质量指标,提供了监控趋势的功能,有一个与VisualStudio集成的插件,允许编写自定义查询,并带有非常好的诊断功能。
除了查找语义和语法错误,这个工具还可以让用户检测代码中的漏洞。这个工具很好地集成了许多常用的IDE,如Eclipse、VisualStudio和IntellijIDEA。该工具可以与代码创建并行运行,它可以逐行检查,并提供了实时处理缺陷的功能。
一个免费的C/C++静态分析工具。这个工具的好处在于它与其他几个开发工具的集成,如Eclipse、Jenkins、CLion、VisualStudio等。
HelixQAC是Perforce(原PRQA)推出的一款优秀的C和C++代码静态分析测试工具。该工具自带一个安装程序,支持Windows7、LinexRhel5和Solaris10等平台。它提供了非常清晰的诊断程序,有助于识别根本原因和快速修复缺陷。
一个用于C/C++的安全静态分析工具,允许与MicrosoftVisualStudio、Eclipse、TexasInstrumentsCodeComposer和更多的IDE集成。此外,它还具有出色的错误报告功能。
Polyspacebug-finder可以帮助查找C/C++的缺陷;
它与Eclipse集成,同时符合MISRAC、MISRAC++和JSF++等编码规则标准。
一个帮助分析C/C++、Java、C#、RPG和Python代码的工具。这个工具的另一个好处是它允许与免费的静态检查工具如cppcheck、PMD、FindBugs集成。
这个工具的基本版是免费的,但它的功能较少。根据需要,你可以根据自己的需求来判断免费版是否满足要求。
一个优秀的工具,可以用于克隆检测,支持多种语言,允许与其他静态分析工具集成,提供一个仪表板,显示发现问题的详细信息和其他质量指标。
该工具可以让分析Java代码变得简单易行,支持通过LINQ进行代码查询,提供了大量的代码指标,允许在不同的构建之间进行代码比较,并且具有很好的自定义报告功能。
是一个独立的工具,用于分析C/C++和Objective-C程序,支持Linux和MacOX平台。它可以完成静态分析工具所要做的一切工作,如查找bug、未使用的代码、冗余代码等,除此之外,它还带有一个可定制的配置,可以帮助用户根据自己的需求进行定制。
该工具主要用于安全专家进行手动代码审查,在本地系统上的效果最好,但也可以扫描远程网站。
有一个广泛的配置文件,可以配置不同的报告选项。创建备用的配置文件有助于同时执行多个项目。
用于.NET和Java/J2EE代码的静态分析工具
一个可以让安全专家从安全的角度来进行代码审查的工具。它还提供了一套可与安全工具集成的API,以提供代码审查服务。
用于测试C/C++源代码。PCLint可以在windows操作系统上工作,而FlexeLint是专为非windows操作系统设计的,可以在包括UNIX在内的支持C语言编译器的系统上运行。
IBMRational为用户提供了不同类型的工具,其中一个工具是软件分析器,它可以用来对代码进行静态分析。这个工具是在一个可扩展的框架上设计的,并与其他Rational产品很好地集成。
这个静态分析工具是一个非常灵活和易于配置的工具,几乎支持所有平台,如Windows、UNIX、Linus、MacOSX。
它是一个基于网络的开源工具,可以覆盖20多种语言,还允许使用多种插件。
如果你正在寻找一个工具来确保开发的代码符合CERT的编码规则,你可以选择Rosecheckers。
它在SourceForge中免费提供。
这个工具可以检查C/C++代码,有时会发现其他静态分析工具无法发现的问题,但不能算是一个完全成熟的独立工具,因为它无法完全测试,目前只是一个原型。
一个开源工具,针对C语言的分析,自带一个非常灵活的框架。
开源的安全分析工具,用于Java和C语言代码。
PMD是一个开源的代码分析工具,适用于C/C++、Java、JavaScript。这是一个简单的工具,可以用来查找常见的缺陷。它还可以检测java中的重复代码。
免费工具,用于查找Java代码中的BUG。它支持任何版本的Java,但需要JRE(或JDK)1.7.0或更高的版本才能运行。
用于在SDLC阶段的早期识别漏洞。同时支持移动扫描。
这是一个开源工具,主要用于查找C/C++程序中的安全漏洞。它可以下载、安装并在UNIX等系统上运行。
一个开源的C语言程序静态和安全分析工具。它的功能非常基本,经过额外的配置,也可以像其他标准工具一样执行。
HeaderFreeCyclomaticComplexityAnalyser是一个执行分析的工具,它不关心C/C++头和Java导入。使用简单,不需要安装。可用于C/C++、Java和ObjectiveC。
该工具用Perl编写,用户可以区分空行、注释行和物理行,并支持多种语言。总的来说,这是一个易用的工具,具有良好的功能,如提供多种格式的输出,可以在多个系统上运行,并附带一个简单的安装包。
一个开放源码工具,让用户在多语言和多平台上计算物理源码行数。
这是一个支持JavaScript静态分析的免费工具。
DeepScan是一个高级静态分析工具,支持JavaScript、TypeScript、React和Vue.js。
你可以使用DeepScan来查找可能的运行时错误和质量问题,而不是编码惯例。可与你的GitHub仓库集成,以获得对Web项目的质量洞察。
本文列出了目前业内经常使用的静态代码分析工具,希望对感兴趣的朋友有所裨益。
欢迎讨论。
华为开发者空间发布
让每位开发者拥有一台云主机
在此一键设置昵称,即可参与社区互动!
*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。