天天看點

以 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/?

繼續閱讀