前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SonarQube和Fortify的区别对比

SonarQube和Fortify的区别对比

原创
作者头像
源代码安全
修改2023-07-03 14:43:35
1.1K1
修改2023-07-03 14:43:35
举报
文章被收录于专栏:sonarqube

一直以来,有很多用户在问,SoanrQube和Fortify都是白盒的源代码扫描工具,这两个产品有什么不一样的地方呢?苏州华克斯信息科技有限公司做为SonarQube和Fortify这两个产品在中国的核心合作伙伴,希望下边的内容能解答您的疑惑。

SonarQube是一个代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测。

主要的核心价值体现在如下几个方面:

  • 检查代码是否遵循编程标准:如命名规范,编写的规范等。
  • 检查设计存在的潜在缺陷:SonarQube通过插件Findbugs等工具检测代码存在的缺陷。
  • 检测代码的重复代码量:SonarQube可以展示项目中存在大量复制粘贴的代码。
  • 检测代码中注释的程度:源码注释过多或者太少都不好,影响程序的可读可理解性。
  • 检测代码中包类之间的关系:分析类之间的关系是否合理,复杂度情况。

Fortify SCA是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。

一、对比分析

我们使用WebGoat做为测试用例,来分析一下两个产品的差异。

1、使用工具:

  • Fortify SCA
  • SonarQube

2、使用默认规则,不做规则调优。

3、扫描后直接导出报告,不做审计。

二、扫描问题总览

Fortify SCA扫描结果报告:

SonarQube扫描结果总览:

从上边可以看出:

Fortify扫描出Critical和High级别的漏洞共计757条。

SonarQube扫描出阻断和严重级别的漏洞为28条,关于软件质量问题有2K+条。

三、Fortify扫描内容分析

Fortify扫描出来的内容,基本上都是和安全相关的信息。

例如:

  • Privacy Violation
  • Cross-Site Scripting: Reflected
  • Cross-Site Scripting: Persistent
  • SQL Injection

四、SonarQube扫描内容分析

SonarQube扫描出来的内容,基本上都与代码质量相关联的。

例如:

  • Modifiers should be declared in the correct order
  • Sections of code should not be commented out
  • Constructors should not be used to instantiate "String", "BigInteger", "BigDecimal" and primitive-wrapper classes
  • String function use should be optimized for single characters
  • String literals should not be duplicated

SonarQube从七个维度来分析代码质量问题:

可靠性

安全性

可维护性

覆盖率

重复

大小

复杂度

问题

单论代码分析能力,拿SonarJava举例,对于大多数最佳实践类型的问题,比如不该使用MD5,不要用主线程sleep等,都还是查的不错。但是真正严重的安全漏洞,比如SQL注入之类的污点传播类问题,一般涉及跨文件,函数,以及涉及对虚函数、数组、容器的处理,还要识别通过框架等配置的数据处理逻辑,那就无能为力。

这也是SonarQube分析器跟Fortify工具的差距所在。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
应用安全开发
应用安全开发(Application Security Development,下文中也叫 Xcheck)为您提供优质的代码分析服务。Xcheck 凭借优秀的算法和工程实现,能在极低的误报率和漏报率前提下,以极快的速度发现代码中存在的安全漏洞。Xcheck 采用私有化部署的模式,所以产品使用的整个生命周期,源码都不会流出公司网络,杜绝源码泄露风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档