2021 OWASP Top 10 A06易受攻擊和已淘汰的組件

2022/11/10


A06 易受攻擊和已淘汰的組件介紹

我們通常會 focus 在第三方程式的套件,有以下幾種的情況

- 不知道所有組件的版本

包含了使用者端和伺服器端的部份,如果不清楚目前使用的套件版本的時候,因為沒有辦法做判辨一定會無法知道狀況,這樣的情況下便無法分辨出你目前使用的第三方套件的問題。

- 如果你的軟體使用容易遭到攻擊,不支援或已經淘汰的情況的時候

包含了作業系統、網頁、應用程式的伺服器、DBMS、應用程式、API 跟所有的組件、執行環境和 libraries。針對這種情況,通常我們都會去訂定一個軟體不支援或是已淘汰的清單在後續的追蹤,確認這些東西都應該要被升級,或是再去汰換另外一個系統的情況。

- 沒有定期執行弱點掃描與訂閱相關的資安通報

沒有定期在做一些弱點鑑別的動作,便沒有辦法去了解你目前環境的情況。

- 沒有基於風險的方式去定期修補去升級平台或、框架和相依性套件

可能會讓你整個軟體的框架會暴露在有風險的情況。

- 開發人員沒有去測試更新、升級或修補之後的情況的相容性

造成一些資安上的議題,沒有去保護程式組件的設定檔案,基本上可能都會包含一些程式相關的 token、secret 跟一些機敏資料。


A06 易受攻擊和已淘汰的組件如何做修補跟預防

1.刪除沒有使用的套件、不必要的功能、相關的檔案及文件。與 Security Misconfiguration 是類似的。

2.持續盤點你的客戶端跟伺服器端。相關的第三方套件可以透過版控工具OWASP Dependency Check 去監控目前你使用的第三方套件的情況,可以被控制的、被監控的,確認這些細節後就可以去遵循目前第三方套件官方所釋出的修補更新,都可以一併做升級。

3.透過官方的管道取得第三方套件。選擇相對應可以使用的更新包,去降低更新包可能被加入惡意程式的可能性。例如,node.js 的 npm 的情況,因為先前有很多駭客會去針對第三方套件去注入有問題的程式碼,而大部分開發者使用才發現自己的程式有些問題,這些狀況都是應該要被避免的。

4.監控沒有維護或是舊版本的這些程式庫和套件。如果沒有辦法做修補的時候,會使用所謂的 Virtual Patch 去做監控、檢測或防禦的模式。

之前提到被淘汰的程式,也許企業沒有成本可以去升級這些套件,還是要有相對應的控制措施做資安的完備,每一個企業都應該在應用程式或是專案開發,在生命週期去訂定一個監控

更新和更改設定的計畫讓產品的生命週期可以做一個確認。


A06 易受攻擊和已淘汰的組件情境的範例

情境一:通常程式的套與程式本身是用相同的權限去做運作的,所以任何的第三方套件的漏洞都會導致一些很嚴重的影響。舉例如下

- Struts 2 的遠端代碼執行的漏洞

框架的這個漏洞會影響到程式本身的執行,也就是使用的框架本身如果還有漏洞的時候,是沒有辦法做控制的。

- 物聯網的問題

 Iot 的設備通常是很難被修補的,可能需要做一些 Firmware 的更新,而這些設備有可能在網路節點的狀況是佔據一個很重要的角色。


總結

有一些工具是可以幫助攻擊者去找到沒有修復的系統的。例如,Shodan 的搜尋引擎

通常是給資安研究者使用的,但是駭客也會去使用工具去掃描全世界的 IP,確認全世界的 IP 是不是有部份的伺服器有存在已知的弱點。


其他訊息