發表日期 5/10/2022, 8:35:23 AM
作者 | 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/?