震驚中外的XcodeGhost事件告訴我們,信息安全要從源頭抓起,而源頭往往就是指軟件開發環節的安全性。(參考閱讀:如何避免十大最嚴重的軟甲安全設計缺陷)
但是從數以萬行計的軟件代碼中查找漏洞并不是一件容易的事,索性市場上目前已經涌現了不少代碼安全審查工具,這些工具不但能標記和統計代碼中的安全隱患,同時也有助于形成安全優先的開發流程和文化。
以下IT經理網推薦五款代碼安全審核工具,涵蓋開源產品和收費商業產品,以及云端和企業內部部署兩種交付方式。
一、Codiscope Jacks
Codiscope公司的Jacks是一個靜態代碼分析工具,也就是在軟件未執行時進行代碼分析,因此非常適合作為軟件代碼安全審核第一階段的工具使用,對于那些在GitHub上托管代碼的開發者來說,Codiscope Jacks(目前仍然是beta版本)可以作為云端安全服務使用,從Github導入代碼進行掃描。Jacks目前能夠掃描JavaScript程序,能夠發現代碼中的安全隱患并給出最佳實踐建議。Codiscope計劃在未來版本中支持Java等其他語言。
二、Flawfinder
Flawfinder是一個C/C++代碼的開源安全審查工具,采用內建語法缺陷數據庫,能夠標記類似緩沖溢出、格式字符串、競爭條件、隨機數獲取方面的問題。Flawfinder是一個非常簡單的工具,采用的算法也不復雜,可以看做是一個基于詞典的源代碼靜態分析器。
Flawfinder的開發者David Wheeler表示:很多軟件開發者都在不斷重復犯相同的錯誤,開發人員應當在軟件部署前就用Flawfinder審查代碼。
三、IBM Security AppScan
IBM公司的Security AppScan主要定位于提升web和移動該應用的安全性,可以部署在企業內部,同時支持靜態和(黑箱)動態分析。AppScan還支持交互分析,通過代理測試應用在服務器端的響應,例如觀察應用是否存在SQL注入漏洞。此外AppScan還支持專門針對移動應用的安全分析。
四、Parasoft Development Testing Platform
Parasoft推出的開發測試平臺(DTP)可以在IDE中提供代碼靜態分析,也可以作為持續集成系統的一部分使用。在持續集成中,DTP可以通過郵件、web報告或者在IDE中直接報告的方式向開發團隊提供反饋。DTP為C/C++、.Net和Java分別提供了超過1500條規則,所有規則都有擴展文檔,內容包括相關安全問題列表、常見缺陷列表(CWE)、參數等等。
Parasoft還提供一個工具RuleWizard,用于創建用戶定制化的規則。
五、Rogue Wave Klockwork
Rogue Wave Klocwork屬于企業內部部署的靜態代碼分析工具,可以與持續集成系統如Jenkins配合使用,分析增量代碼改變。
Rogue Wave Klocwork可以幫助開發者在軟件開發周期中盡可能早地發現質量和安全方面的代碼缺陷。
英文原文:Infoworld