软件测试实验室建设软件测试体系、申请cnas/cma资质时,调研并选择合适的软件测试工具是非常重要的资源准备工作。我们都知道,在性能测试方面,采购性能测试工具LoadRunner是必不可少的,几乎没有其他选择。但在安全测试方面,可选择的工具就不那么单一了,如何选择一款适合自己的代码安全测试工具?不同的工具间有什么区别,在之前的文章中我们为大家介绍过Gartner魔力象限中居于领导者象限的几款工具,本文我们着重针对SoanrQube和Fortify这两款安全测试工具的不同为大家展开介绍。
SoanrQube和Fortify都是在白盒测试领域常见的工具,都可以通过对软件的源代码进行审查,给出问题与修复建议。两者不同的是SonarQube是一个代码质量分析平台,它审查的主要是代码的质量问题:
检查代码是否遵循编程标准:如命名规范,编写的规范等。
检查设计存在的潜在缺陷:SonarQube通过插件Findbugs等工具检测代码存在的缺陷。
检测代码的重复代码量:SonarQube可以展示项目中存在大量复制粘贴的代码。
检测代码中注释的程度:源码注释过多或者太少都不好,影响程序的可读可理解性。
检测代码中包类之间的关系:分析类之间的关系是否合理,复杂度情况。
而Fortify SCA对代码的审查更侧重于代码的安全,一款静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。
在扫描的过程中,Fortify给出的结果更偏向于Critical和High级别的漏洞,SonarQube则更倾向于软件质量问题,如代码的可靠性、安全性、可维护性、覆盖率、重复、大小、复杂度等问题
单论代码分析能力,拿SonarJava举例,对于大多数最佳实践类型的问题,比如不该使用MD5,不要用主线程sleep等,都还是查的不错。但是真正严重的安全漏洞,比如SQL注入之类的污点传播类问题,一般涉及跨文件,函数,以及涉及对虚函数、数组、容器的处理,还要识别通过框架等配置的数据处理逻辑,那就比Fortify差太多了。这也是SonarQube分析器跟Fortify工具的差距所在。
以上就是我们为大家解析的SoanrQube和Fortify的不同,希望可以在工具选型时帮助到你,如需cnas/cma软件测试体系建设、软件测试工具详细对比参数等内容,欢迎私信我交流。
(谢绝转载,更多内容可查看我的专栏)