以 Log4j 為例,如何評估和劃分安全風險

作者 | Owen Garrett

譯者 | 明知山

策劃 | 丁曉昀

開源軟體支撐著絕大多數面向網際網路的應用程式。這類專案的可用性、可獲取性和質量提升了企業的創新能力,並幫助它們取得成功。它們是很好的公共產品,應該受到讚美和保護。

開源的普遍存在意味著任何已經被發現的漏洞都會產生深遠的影響。攻擊者看到了巨大的機會,大量的企業和使用者必須快速做出響應,在他們開發的應用程式以及使用的第三方應用程式和元件中識別易受攻擊的軟體例項。

事實上,軟體漏洞是很常見的。那麼,安全專業人員如何評估漏洞可能帶來的風險,並將組織的精力集中在修復那些最重要的漏洞上呢?

1

建立全面的可見性——你無法保護你看不到的東西

安全團隊負責整個應用程式的完整性,包括所有不是由企業開發人員開發的開源元件和第三方依賴項。人們已經做了很多工作來改進軟體開發過程的安全性,並透過“左移”計劃和 SBOM(Software Bill of Materials,軟體物料清單) 來跟蹤依賴項,讓部署到生產環境中的程式碼具有高度的安全性。但是,每當有新漏洞被髮布時,該如何快速識別已經部署到生產環境中的程式碼在哪些地方將會出現這些漏洞?安全程式的第一步通常是全面獲取整個 CI/CD 管道範圍內的應用程式程式碼安全性的可見性,一直從構建階段到部署階段,並跨越所有的應用程式和基礎設施,包括執行的容器、Kubernetes、雲供應商、虛擬機器和 / 或裸機。消除你的盲點,以便儘早檢測到並降低攻擊的破壞性。

2

關注最重要的東西:可利用性與脆弱性

在獲得全面的可見性之後,組織經常會看到大型的基礎設施中存在數以萬計的漏洞。然而,理論上的漏洞列表幾乎沒有什麼實際用途。在企業可以花時間修復的所有漏洞中,最重要的是要找出哪些漏洞對應用程式的安全性影響最大,因此必須首先修復它們。

為了找出這些漏洞,關鍵在於要了解脆弱性(Vulnerability,在已部署的軟體中可被攻擊者利用從而產生特定結果的弱點)與可利用性(Exploitability,可被攻擊者用於獲取利益的攻擊路徑)之間的區別。

需要高級別和本地訪問許可權的漏洞通常較少受到關注,因為對於遠端攻擊者來說要獲得攻擊路徑比較困難 (除非攻擊者已經獲得訪問本地主機的高階許可權,他們才有機會獲得進一步的控制權)。值得關注的是可能由以下因素觸發的漏洞,例如,不會被防火牆裝置過濾的遠端網路流量,以及直接從不可信的網路源接收流量的主機。

3

評估和劃分潛在的漏洞利用

在根據漏洞的可利用性對其進行劃分並以此來確定修復優先順序時,你需要考慮以下的部分或全部標準:

漏洞的嚴重程度:CVSS(Common Vulnerability Scoring System,通用漏洞評分系統) 分數為漏洞的嚴重程度提供了一個基線,可用於對漏洞進行比較。然而,CVSS 分數並沒有考慮實際的應用程式和基礎設施的上下文,所以離獲得準確的資訊存在一定的差距。

攻擊向量——網路與本地系統訪問:網路訪問漏洞通常是攻擊的第一步,而本地系統訪問漏洞要在攻擊者進入應用程式後才能發揮作用。這意味著你需要立即封掉任何會導致服務受攻擊的網路攻擊路徑,同時找到服務節點上潛在的攻擊行為,並採取糾正措施。

貼近攻擊表面:是否存在一種攻擊路徑,攻擊者可以透過該路徑到達並利用該漏洞?在考慮攻擊路徑時,需要考慮攻擊者可能會繞過防火牆、負載平衡器、代理和其他跳轉點,並解決其中的任何一個攻擊點,同時讓開發人員更新、測試和重新部署易受攻擊的應用程式。

網路連線的存在:儘管所有可以從外部觸及的漏洞都值得關注,但帶有通用網路連線的應用程式的漏洞是最值得關注的。攻擊者通常會使用偵察 (Recon) 技術發現這些漏洞。

這裡的關鍵是將執行時上下文新增到漏洞資料中,這樣就能夠識別最容易被利用的漏洞,並確定首先要修補哪些漏洞,因為它們對應用程式的安全性構成了最大的危險。

考慮使用開源的 ThreatMapper 等工具來幫助你識別最容易被利用的漏洞。隨著條件發生變化,你需要持續不斷地執行這樣的工具,將安全工作放在在最需要的地方。

4

限制偵察活動

攻擊者通常會根據事先準備好的劇本,使用在 MITRE ATT&CK 中記錄的戰術和技術展開攻擊活動。這些戰術遵循的是網路殺傷鏈等模型,從偵察活動開始,然後再進行初步的攻擊。最初的攻擊通常旨在獲得有限的本地控制權,然後攻擊者就有了大量的選擇來探索、升級特權、安裝持久控制系統和偵察鄰近的系統,以便橫向傳播並找到更大的戰利品。

要限制偵察活動的有效性,首先要確定攻擊者可能採取的攻擊路徑。為了實現雙保險,確保每一條攻擊路徑都有過濾技術保護:

透過 WAF 捕獲並丟棄已知的偵察流量;

使用基於協議和源的過濾技術來限制能夠訪問這些路徑的客戶端;

使用額外的應用程式級過濾:

確保事務經過身份驗證;

對於 API 流量,確保事務來自可信的客戶端。

ThreatMapper 可以視覺化最容易被利用的漏洞的攻擊路徑,這樣你就可以確定如何將它們關閉。

5

收集“攻擊指標”和“損害指標”

儘管已經盡了最大的努力來保護攻擊表面並限制了可見性,但仍然可能由於各種原因發生攻擊——零日攻擊、蓄意破壞供應鏈、對影子 IT 和其他非託管資產缺乏可見性,等等。透過 NVD 釋出的 CVE 大約是每天 50 個,因此在產品中發現新漏洞的可能性非常大。

因此,另一條關鍵的防線是監控內部網路、主機和工作負載的攻擊指標 (IoA) 和損害指標 (IoC)。

IoA 可以包括來自不尋常來源的探測、偵察流量,或者可能表明存在 C2C(容器到容器) 網路、遠端遙測或洩漏企圖的網路流量。IoC 表明主機出現了問題,攻擊者已經進入,包括異常的程序行為、檔案系統訪問或檔案系統修改。

建議構建“紅色團隊”功能,讓它定期掃描應用程式,找出攻擊訊號及其對組織的影響。尋找一些可以幫助你自動化和管理大量 IoA 和 IoC 事件的工具,包括最小化誤報、儲存事件以供後續的分析,最重要的是將事件關聯起來,以便了解攻擊特徵以及這些攻擊對應用程式的滲透情況。有了這些知識,你就可以部署有針對性的對策,阻止來自內部或外部的偵察或攻擊流量,並隔離受損的工作負載。

6

結論

Log4j 告訴我們,漏洞是不可避免的,但這不應該成為阻止組織使用開原始碼作為創新和實現其他有價值的目標的障礙。在指導組織開展安全工作時,安全主管們可以獲取跨所有基礎設施的應用程式流量的全面可見性,結合漏洞可利用性評估和優先順序排序的策略,在尋找攻擊痕跡時持續保持警惕,降低與 Log4j 和下一個重大漏洞相關的風險。

作者簡介

Owen Garrett 是 Deepfence 公司的產品和社群主管,為 Deepfence 的安全技術制定開源戰略。他以他在 Riverbed、NGINX 和 F5 等公司 20 年的軟體工程和產品領導經驗為基礎,在 Deepfence 指導公司的路線圖,為雲原生應用建立一個開源的“安全和可觀察性”平臺。在加入 Deepfence 之前,Owen 領導 NGINX 的產品開發,讓 NGINX 發展成為部署最為廣泛的開源專案之一,保護了超過 5 億個網站,成為無數生態系統專案的核心。Owen 在網路技術方面擁有多項專利,經常在技術會議上發表演講,是行業活動的思想領袖。

https://www。infoq。com/articles/assessing-security-risks/?

TAG: 漏洞攻擊攻擊者應用程式路徑