选择Fortify静态代码分析工具作为您的下一个SAST工具是正确的吗?

创提信息
2023/01/12

分享到

嵌入式系统有很多,但真正能支持嵌入式软件开发人员的静态代码分析工具却很少。OpenText最近对Micro Focus(包括Fortify静态代码分析工具)的收购,重新引发了一个问题,即哪种静态代码分析工具最适合您的嵌入式软件项目。


通过比较Fortify和Klocwork,我们的专家找到了答案。本文将包含如下内容:
 
     • 什么是Fortify静态代码分析工具?
 
     • 在评估Fortify和Klocwork时需要考虑什么?
 
     • 为什么考虑替换Fortify静态代码分析工具?
 
     • 为什么您应该考虑Klocwork?


什么是Fortify静态代码分析工具?
 
Klocwork技术推出几年后的2003年,Fortify成立了,这是一套识别特定编码规则和指南的违规行为的代码分析工具。从2010年被惠普收购到2016年与Micro Focus合并,Fortify一直专注于企业安全和广泛的语言支持方面的功能。
 
Fortify的新东家OpenText却有着不同的视角,专注于企业信息管理。对Micro Focus的收购标志着OpenText想要拓展到一个全新的领域:应用程序开发与测试,专注于当今API驱动的世界。在DevOps.com最近的一篇文章中,OpenText首席执行官Mark J. Barrenechea告诉分析师:
 
“最终目标是使企业能够使用一组部署在私有云上的以应用程序编程接口(API)为中心的产品来加速其数字业务转型计划。”
 
不难判断这种新的企业并购意味着:更有力地推动企业开发人员进行静态应用程序安全测试(SAST)。
 
虽然嵌入式软件开发人员通常也是在企业环境中工作,但嵌入式软件开发和企业应用开发的技术迥异。这就是为什么在比较Fortify静态代码分析工具和Klocwork时,您要知道什么是需要考虑的关键因素。


在评估Fortify和Klocwork时需要考虑什么?


语言功能和体验
 
Fortify的“对开发人员友好的语言覆盖率”功能意味着其支持超过29种语言,从ASP.NET到Visual Basic。Klocwork支持7种语言,包括最流行的嵌入式软件语言,如C、C++、C#和Java。
 
虽然广度对于有多个团队和大型应用程序框架的企业环境是有利的,但嵌入式开发人员需要基于资源受限系统的独特需求所构建的专门支持。例如,web开发人员可能不关心他们的应用程序如何使用内存,但嵌入式开发人员肯定关心。


研发投入和发布节奏
 
Klocwork每个季度发布更新,确保您能够访问最新的特性、性能更新和缺陷修复。Fortify一年只发布两次,有时更少。对于您的团队来说,这种节奏是否合适取决于您的使用模式以及对静态分析和SAST工具的使用程度。
 
Perforce继续在Klocwork上加大投入,包括研究活动、技术开发、产品维护,以及为嵌入式用户提供相关、有效的SAST功能所需的内部经验。目前还不清楚OpenText将把Fortify带到哪里,但我们在下面提出了一些指导性的问题。


嵌入式行业经验
 
从一开始,Klocwork就被设计为针对资源受限系统(2001年时,指的是电信软件)的特定需求执行大规模源代码分析,从那以后就从未偏离。通过让嵌入式开发人员构建适用于嵌入式开发的静态分析和SAST工具,并得到嵌入式行业的QA团队、产品经理以及合规专家的支持,您将获得丰富的经验和应用程序相关的特性,堪称完美。
 
例如,最近在Klocwork中增加了嵌套流(Nested Streams),就是嵌入式软件团队需要管理同一个代码库中多个变体和分支的直接结果。通过简化配置、问题管理、缺陷跟踪和报告,Klocwork能够更好地支持在一个发布周期内具有多个目标设备的项目。
 
Fortify静态代码分析对企业团队而言是一个有益工具,也是原生云开发的一项重要辅助手段。虽然这些功能在许多嵌入式系统中都发挥着作用,但Fortify显然是为不同的市场打造的。


标准合规性
 
要求标准合规性的嵌入式软件团队比以往任何时候都多,这就要求工具能够符合不断更新的指南、规则和期望。Fortify提供对OWASP和一些MISRA版本等流行标准的支持。
 
然而,Klocwork特有的合规性分类法旨在支持在汽车、航空航天和国防、医疗器械、金融系统等领域工作的嵌入式C、C++、C#和Java开发人员的功能安全和网络安全需求。


客户意见
 
“Klocwork提供了可靠的静态代码分析结果,帮助我们避免了潜在的错误。无论是直接在开发工具中,还是通过我们的持续集成服务器,设置和使用都很容易。”——网络工程师
 
从汽车到医疗器械领域,Klocwork用户都是最好的倡导者。以下是一些案例研究和视频,阐释了为什么构建适用于嵌入式软件的静态分析和SAST很重要:
 
    • Elektrobit: From False Positives to Trust: A Story of Static Code Analysis Adoption
 
    • Johns Hopkins: How Johns Hopkins Enhanced Software Reliability and Developer Productivity With Klocwork
 
    • How Klocwork Supports Safety-Critical Development
 
    • Achieving AUTOSAR C++14 Compliant Code with Klocwork
 
构建一个世界级的静态代码分析工具不仅仅是一个想法,我们还每月举办静态分析同步(Static Analysis Sync)活动,为嵌入式软件社区提供培训,与他们同步最新动态并提供支持服务。每个活动都是与我们的静态分析专家在现场公开地进行小组讨论的机会。其中包括收集开发人员对项目、关注事项和不断变化的需求的反馈,以及产品路线图讨论,让客户知晓在我们即将发布的Klocwork季度版本中可以期待什么。


为什么考虑替换Fortify静态代码分析工具?
 
除了技术细节和嵌入式行业知识之外,Fortify的收购还带来了一个非常现实的问题,即静态分析和测试预算应该投在哪里。无论您是要续订某个工具,还是在研究购买哪个工具,您都要提出以下几个关键问题:
 
    1. 未来2 - 5年的产品路线图是什么样的?
 
    2. 公司在工具的研发上投入了多少资金?
 
    3. 产品的发布节奏、维护条款和支持协议将发生什么变化?
 
    4. 收购会影响客户支持团队吗?
 
    5. 产品线是会保留,还是会被整合,又或是会被砍掉?
 
对最终用户来说,收购可能是一条棘手的路径,所以理解变更并认识到其对项目的影响总归是好的。


为什么您应该考虑Klocwork?
 
对于强制要求合规性和安全性的行业,选择能够提供全面覆盖而不中断开发过程的静态代码分析工具是一个对业务至关重要的决策。
 
在这里,我们将概述为什么Klocwork是一流的静态分析和SAST工具:
 
    • 在CI/CD管道中无缝运行。
 
    • 即使在大型代码库上,也能提供闪电般的分析速度。
 
    • 提供深入和广泛的覆盖度。
 
    • 误报率低,并提供修复指南。
 
    • 独立认证,并提供深度的专业知识。
 
总结:就使用便捷性、灵活性和可扩展性而言,Klocwork无疑是一个明智的选择。如果您想更深入地比较Fortify静态代码分析工具和Klocwork,请在这里与我们的产品专家联系。
 
若想亲自体验Klocwork这款工具,立刻注册申请免费试用吧。