僅3%的開源軟件漏洞真的可攻擊
軟件供應鏈安全風險高企的時代,漏洞管理工作量不斷攀升,但6月25日發布的一項研究表明,攻擊者可以實際利用的漏洞僅占供應鏈相關漏洞總數的大約3%。數據顯示,如果應用安全(appsec)專業人員和開發人員能夠專注修復和緩解真正可攻擊的漏洞,他們就可以大大減輕其團隊所承受的工作壓力。
ShiftLeft最近發布的《2022年應用安全進展報告》表明,只要專注“可攻擊”漏洞,應用安全和開發團隊就能夠更有效地篩選漏洞。報告中的數據顯示,開發人員檢查具有嚴重漏洞的在用軟件包時,一旦考慮到可攻擊性,就會發現庫升級工單誤報減少了97%。
如果真是這樣,那對很多人來說,真是可喜可賀的解脫了。漏洞管理本就已經夠難了,再加上第三方漏洞引入的復雜性,尤其是這些漏洞動輒波及大量軟件的巨大影響,想要應付如此沉重的工作量,只能訴諸于進行有效的優先級劃分了。在給定時間內,安全人員和開發人員就是只能處理這么多應用里的這么點漏洞。他們需要確保自己通過補償控制措施修復或緩解的漏洞是真正重要的那些。
就安全漏洞而言,“可攻擊性”到底意味著什么?
ShiftLeft首席執行官Manish Gupta表示,想要確定什么是可攻擊的,不能只關注是否存在具有已知漏洞的開源依賴項,還得檢查這些依賴項的實際使用方式。
“很多工具都可以輕松找出并報告這些漏洞。但這些漏洞報告里存在大量噪音。”Gupta稱,“例如,這些工具不考慮應用程序是怎么使用依賴項的;甚至不考慮應用程序是否使用了依賴項。”
分析可攻擊性還涉及評估其他因素,例如應用程序是否加載了包含CVE的包、是否使用了這些包,這些包是否位于攻擊者控制的路徑下、是否可以通過數據流訪問。基本上,這意味著對開源漏洞采取簡化的威脅建模方法,好大幅減少“消防演練”。
首席信息安全官(CISO)早已習慣這種演練。像Log4Shell或Spring4Shell這樣的重大供應鏈漏洞,每次在業內傳開,然后登上媒體頭條,CISO手下的團隊就得夜以繼日地找出這些漏洞對自身應用程序組合有何影響,然后花費更長時間去應用修復和緩解措施,從而最大程度地減小風險敞口。
現在,新出爐的報告指出,96%的Log4J依賴項都是不可攻擊的。
軟件依賴項引人關注
現代開發棧中,無論是直接依賴還是通過第三方的依賴,對開源軟件依賴的仰仗都在不斷加深。
“只要使用了大量依賴項,主流應用程序往往每個月都會新增幾個CVE。考慮到企業所用應用程序的數量,可以想見,緊跟所有升級真是一點都不容易。”
雖然更新一個軟件包可能還算簡單,但圍繞這一個更改的相關開發工作往往就累死人了。通常,單個軟件庫升級會引出一系列新增測試工作,不僅僅是出于安全目的,也為了保證功能和質量,而且,升級還可能需要重構代碼。
“重視產品質量的企業不會在未經全面測試之前就發售產品。此外,軟件庫升級也并不總是安全可靠;不能保證新版本開源庫完全向后兼容。因此,團隊有時候還需要在升級庫之前修改其應用程序的運行機制。”
可攻擊性確定是否可行?
在OWASP創始人兼應用安全長期倡導者Mark Curphey看來,早已有人開始尋求這樣的優先級排序模型了。但是,他表示,在當今應用程序環境下,選擇分析維度以確定有風險或可攻擊依賴項,可能比ShiftLeft所提出的要復雜得多。
“可以說,開源軟件庫中絕大多數脆弱方法根本無法訪問,因此無法利用,但我們現在所處的環境里,開源庫就像各種精品小店,為開發人員提供各種趁手的好東西。”Curphey向安全媒體透露道,“作為一個行業,通過Log4J事件,我們最近認識到,即使漏洞類似于幾乎沒人真正在用的JNDI接口,利用途徑也仍然存在,所以我們都必須直面這個漏洞。”
目前,Curphey正在為自己的應用安全初創公司Crash Override進行聆聽之旅,了解各位CSO當下最大的應用安全問題,而幾乎所有受訪CSO都認為,漏洞優先級排序是他們的首要問題。Curphey覺得,或許這就是應用安全需要解決的下一個大問題。
“因此,報告的基本前提完全站得住腳。不過,我們也從訪談中了解到,這個問題非常難以回答,而且比回答‘我是否在用特定的代碼’更加復雜。”Curphey表示,“這都是些業務關鍵性一類的事情,要說清楚系統有多少用戶、流過多少資金、公共配置文件如何、處理哪類數據、物理位置在哪兒、適用哪些法律等等。同時還是技術上的事情,比如是如何連接其他系統的,設置了哪些控制、監測和警報措施等等。”
Sonatype產品創新副總裁Stephen Magill表示,使用“可攻擊性”或“可達性”作為優先級篩選條件還存在另一個問題:了解底層技術數據,從而確定攻擊者的可達范圍。
“如果底層漏洞數據完善,可攻擊性和‘可達性’或許是確定漏洞優先級的有用方法。但將可攻擊性或可達性作為一種補償手段去堵不良漏洞數據的缺,那就沒什么幫助了。”Magill說道,“我們太常看到的行業做法是:使用不準確的依賴識別方法,結合有關脆弱依賴版本的噪聲數據,然后采用基于可達性的優先級排序來篩選這長長的漏洞列表,最后得到可管理的結果。”
換句話說,可攻擊性優先級排序的效果取決于饋送的漏洞數據質量,因此,安全團隊需要真正深入了解漏洞數據的來源。
“漏洞數據是只從公開信息源獲取的,還是專職安全團隊深入研究的結果?另外,調查下依賴項都是怎么追蹤的。”Magill表示,“這些依賴項只是清單文件中聲明的,還是說所用工具支持對二進制組件、歸檔、JAR等的分析?這些問題可以幫助你確定排序結果的質量。正如他們所說的,‘垃圾進,垃圾出’。”
最后,Magill表示,安全主管需謹記,除了開源項目中偶然發現的那種常見漏洞,還有很多威脅存在于軟件供應鏈中。
“我們的軟件供應鏈所面臨的最大威脅,是針對開源軟件的惡意攻擊。這是我們應該關注的一個大問題,而且這個問題與可攻擊性毫無關聯。”
《2022年應用安全進展報告》地址:
https://go.shiftleft.io/appsec-shift-left-progress-report-2022