SAP開源Java SCA工具,提供靜態代碼安全性測試功能

SAP發佈了Vulnerability Assessment Tool的源代碼,這是一個軟件組合分析(SCA)工具,已經在內部測試了兩年,對600多個項目進行了20,000次掃描。

Vulnerability Assessment Tool側重於檢測脆弱的組件,如OWASP-Top 10 2017 A9所述的那些。這個工具會掃描軟件包中的直接依賴項和間接依賴項,然後將每個依賴項與已知源(如國家漏洞數據庫或CVE列表)進行比較,確定每個軟件包是否存在已知的漏洞。在開發過程中,這些知識可以告訴開發人員何時應該升級某些組件。在運營期間,當發現新的漏洞時,可以使用這些信息來定位需要採取行動的應用程序。

2017年,Equifax未能對Apache Struts及時打上CVE-2017-9805補丁導致數據泄露,自從這次事件之後,SCA就成了軟件行業的關鍵一環。這次數據泄露事件總共丟失了1.43億條記錄,預計總損失超過6億美元。Apache軟件基金會先前發佈了“Apache Struts有關Equifax數據泄露的聲明”,其中就提到了一些Vulnerability Assessment Tool需要解決的問題,例如:

瞭解軟件產品中使用了哪些支持框架和庫,以及它們的版本,並跟蹤影響這些產品和版本的安全公告。

建立一個流程,以便在需要更新支持框架或庫時可以快速推出軟件產品的安全補丁。最好是以小時或幾天爲單位,而不是幾周或幾個月。我們所知道的大多數漏洞都是由於沒有更新軟件組件造成的,而這些組件在數月甚至數年內都是已知的易受攻擊源。

SAP的新工具不僅僅是列出文件,它還會執行一定級別的靜態代碼安全性測試(SAST),以評估每個組件的使用情況。這是爲了在可能存在脆弱但不在使用中的組件的情況下最小化誤報。例如,一個工具將JRE本身標記爲容易受到applet漏洞攻擊,比如CVE-2016-0636,但JRE主要用於服務器端,applet從未被使用。

很多組織都會執行靜態代碼分析,作爲在發佈前檢測代碼級別漏洞的安全措施。具體來說,PCI安全軟件標準的8.4.b章節和NIST 800-53的SA-4章節提到了代碼審查,以及其他分析代碼的檢測機制,比如二進制分析。另一個選項是通過集成應用程序安全性測試(IAST)持續監控應用程序行爲。

項目文檔解釋了安全測試靜態分析領域的幾個限制。具體來說,它提到了對非靜態信息(如Java 9的多JAR)缺少支持。這個Java特性提供具有相同名稱空間的多個類文件,JRE會在運行時選擇適當的類和行爲。在靜態上下文中,如果沒有運行時,有關此決策的信息將會丟失,因此分析程序必須選擇所有路徑,或者默認選擇主類位置。SAP的工具選擇了後者,併爲Java提供了一個類似於IAST的動態工具,以彌補靜態安全分析的不足,並檢測哪些文件被使用過。

SAP Vulnerability Assessment Tool發佈在GitHub上,由Henrik Plate、Serena E. Pontona、Antonio Sabetta、Cedric Dangremont和Alessandro Pezze負責維護。

查看英文原文SAP Open Sources Java SCA Tool

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章