創提部落格
希望我們能與您分享和探討成長中的點點滴滴
選擇Fortify靜態程式碼分析工具作為您的下一個SAST工具是正確的嗎?
分享到
嵌入式系統有很多,但真正能支援嵌入式軟體發展人員的靜態程式碼分析工具卻很少。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這款工具,立刻註冊申請免費試用吧。