eBPF(extended Berkeley Packet Filter) 可謂Linux 社區的新寵,很多大公司都開始投身於eBPF 技術,如Goole、Facebook、Twitter 等。 eBPF 是從BPF(也稱為cBPF:classic Berkeley Packet Filter)發展而來的,BPF 是專門為過濾網絡數據包而創造的。但隨著eBPF 不斷完善和加強,現在的eBPF 已經不再限於過濾網絡數據包了。
eBPF用於在Linux OS內核中加載和運行用戶定義的程序,以觀察、更改和響應內核行為,而不會影響內核模塊的不穩定。 eBPF直接從用戶空間提供內核級可見性。可見性和穩定性的結合使得eBPF框架對安全應用程序特別有吸引力。
我們會在本文詳細介紹eBPF的工作原理,以及它對於雲工作負載保護平台(CWPP)的重要性。
eBPF架構概述eBPF程序允許我們觀察和響應內核中的應用程序負載行為,而無需修改應用程序代碼本身。這對於許多應用程序都很有用,尤其是雲工作負載保護等安全應用程序。
為了講解方便,我們對ebpf.io中的原始圖進行了修改。
架構簡述
以一個在用戶空間中運行的應用程序——CWPP代理為例,它包括一個用於Linux內核中進程級可見性的eBPF程序。 eBPF程序本身是字節碼,儘管開發人員通常使用更高級別的編程語言,其編譯器支持eBPF字節碼。該eBPF程序被加載到Linux內核中,該程序立即由eBPF驗證引擎進行驗證。然後,程序被編譯並附加到設計目標內核事件,這就是所謂的eBPF程序是“事件驅動的”的真實意思。無論何時發生此事件,程序都會附加到此事件,運行其觀察和分析任務直至完成,並將結果返回給應用程序。
在eBPF程序和用戶空間應用程序/工作負載之間傳遞信息的機制被稱為“eBPFmap”或簡稱為“map”。
eBPF安全eBPF驗證引擎和即時編譯器是eBPF框架首先確保在內核中加載和運行的eBPF程序不會破壞內核穩定的方法。這便是第一條規則:無攻擊性。
考慮eBPF的替代方案:編寫內核模塊。內核模塊引起了對操作穩定性和復雜性的關注。雖然編寫內核模塊確實允許開發人員更改內核行為,但這是一項高度專業化的技能,因此人員配備和保留便成為一個問題。更明確地說,使用內核模塊會引發兩個關鍵風險問題:1.內核模塊會使設備崩潰嗎? 2、它是否會引入安全漏洞?
除了穩定性和安全性之外,還有操作時的功耗問題:內核模塊只適用於特定的Linux內核版本和發行版。維護內核模塊會消耗寶貴的開發週期,不必要使操作管理複雜化。 eBPF框架解決了這些痛點,
在將任何eBPF程序加載到內核之前,它都要經過驗證引擎和JIT編譯器。驗證程序確保程序運行安全,不會使系統崩潰,也不會破壞數據。它驗證滿足以下幾個條件:
加載eBPF程序的進程具有執行此操作所需的權限;
eBPF程序不會使系統崩潰;
eBPF程序運行至完成,也就是說,它不會無限循環。
一旦經過驗證,JIT編譯器就會將程序從字節碼轉換為設備指令,從而優化執行速度。
現在eBPF程序已經驗證和編譯,它被附加到內核級事件,這樣當事件發生時,程序就會被觸發,直至運行完成,並將信息呈現給用戶空間應用程序。這就引出了eBPFmap,或者簡單的“map”。
eBPFmapeBPFmap是在eBPF程序和用戶空間應用程序之間傳遞信息的機制。支持雙向信息流。 map是eBPF程序和用戶空間應用程序可以讀取或寫入的數據結構。
例如,程序可能會在文件的gzip等事件上被觸發。 eBPF程序將向map中寫入有關該事件的一些信息,例如文件名、文件大小和gzip時間戳。它還可以增加給定時間段內gzip操作發生的次數。如果該數字超過某個閾值,eBPF程序可以將“惡意”判斷寫入數據結構。簡單地說,eBPF程序觀察到表明勒索軟件攻擊的行為,並將此行為標記為惡意行為。用戶空間程序(在我們的示例中是雲工作負載保護(CWPP)代理)可以讀取該map,查看惡意判斷,並採取適當的操作。基本信息處理髮生在eBPF程序中,最大限度地減少了傳遞給用戶空間應用程序的信息量,從而優化了性能。
CWPP中eBPF的優勢雲工作負載保護平台代理執行其他安全控制所沒有的操作,實時檢測並響應運行時威脅,如勒索軟件或零日威脅。這使得CWPP成為雲防禦深度戰略的重要組成部分。一個組織可以而且經常應該有其他雲安全措施,如AppSec、CSPM等。每一項都在穩健的雲安全策略中發揮作用。 CWPP代理與這些其他控件一起工作,以提供運行時保護和記錄工作負載追踪分析。
SentinelOne控制台中顯示的Linux勒索軟件攻擊
如下圖所示,對雲計算實例(VM)的勒索軟件攻擊可以在幾毫秒內鎖定雲工作負載。請注意,在這段1分鐘的視頻中,CWPP代理在勒索軟件啟動後幾分鐘(不到一秒鐘)就檢測到並阻止了勒索軟件攻擊。
嘗試從側面掃描解決方案獲取實時響應是無法實現的。側面掃描通常每天只運行一次,因為對雲計算實例的存儲捲進行快照檢查的成本非常高。此外,側面掃描架構在內核中缺乏進程級可見性。這些是SOC需要調查的法醫細節,並將事件適當標記並發送給適當的DevOps所有者。只有使用eBPF框架的行為、實時CWPP代理才能提供實時過程級可見性和穩定性的組合,使其成為首選。
工作負載追踪分析的歷史記錄不僅有助於在發生安全事件時進行調查,還可以進行主動威脅搜索。通過這種方式,攻擊者甚至可以在發動攻擊之前被阻止。
eBPF框架在CWPP計劃中的應用提供了幾個優點,包括但不限於:
運行穩定性;
系統性能;
業務靈活性;
運行穩定性;
雖然內核模塊可以提供CWPP應用程序所需的內核可見性,但在內核中運行代碼可能是危險的。錯誤的操作會破壞系統的穩定(例如內核被攻擊),或在內核中引入安全漏洞。這兩種結果都是不可接受的,特別是在涉及CWPP代理的情況下。使用內核模塊的CWPP代理可能會導致內核被攻擊,從而導致VM崩潰並阻礙你的工作負載。這些威脅會直接影響到財務績效、訂單履行、客戶忠誠度。
與內核模塊形成鮮明對比的是,eBPF框架包括諸如驗證引擎、JIT編譯器等安全控件。因此,eBPF程序不會使內核崩潰,它們也不能進入內核中的任意內存空間,這使得它們更不容易出現安全漏洞。 eBPF程序提供了所有內核級的可見性,並且沒有來自內核模塊的任何風險。基於這些原因,從運行穩定性的角度來看,eBPF是CWPP的首選。
系統性能/資源效率將信息從內核內部傳輸到用戶空間的速度緩慢,並且會帶來CPU、內存性能損耗。相反,eBPF框架使我們能夠觀察內核行為,並在將結果的子集傳輸回用戶空間之前在內核內執行分析。這為在用戶空間中運行並使用eBPF程序的CWPP代理創造了基本的性能優勢。 eBPF與具有內核模塊的CWPP代理相比,用最低的消耗提供了較高的可觀測性。
業務敏捷性開發人員應該專注於創新,而不是解決內核模塊引入的內核依賴問題。通過從用戶空間進行操作,DevOps可以更靈活地更新主機操作系統映像,而不必擔心更新與CWPP代理髮生衝突。 eBPF使這成為可能。因此,更多的DevOps可以用於創新,而不必花精力去維護。
此外,由於CWPP代理本身使用eBPF框架並避免內核模塊,因此供應商也更加註重創新。當然,客戶也從業務敏捷性中獲益。
以SentinelOne的產品為例,說說CWPP的一些出色性能
高性能獨立測試結果證明了這一點。 2021年4月,MITRE Engenuity發布了Carbanak和FIN7的MITRE ATTCK基準測試結果,這是一項專注於模擬金融威脅群體的評估。 MITRE ATTCK首次在其測試中包含Linux服務器。 SentinelOne是唯一一個在Windows設備和Linux服務器之間具有100%可見性的供應商。我們擁有最豐富的檢測(MITRE的術語是“分析檢測”),如下圖所示。
Visibility, MITRE Engenuity, Carbanak + FIN7
Analytic Detections, MITRE Engenuity, Carbanak+FIN7
如果CWPP要保護雲工作負載免受運行時攻擊並確保業務連續性,那麼它必須是實時的如果是延遲檢測,哪怕是幾秒鐘的時間,攻擊者都可以使雲工作負載停止。如果不是勒索軟件,那就是惡意軟件在你的雲足跡中悄悄傳播。從廣義上講,傳播範圍越廣,補救力度就越大。損失也就越大。正如MITRE定義的那樣,SentinelOne提供了100%的實時檢測,零延遲。這就意味著,延遲越少越好。
Delayed Detections, MITRE, Carbanak + FIN 7
同樣,2022年MITRE Engenuity ATTCK測試顯示SentinelOne具有極高的性能。 Wizard Spider+Sandworm模擬還包括Linux服務器。此時,SentinelOne再次以99%的分析覆蓋率領先於CrowdStrike、Microsoft或TrendMicro。可以在MITRE Engenuity網站上進行直接比較。
2022年MITRE信息圖
資源效率任何應用程序,無論是CWPP代理還是其他應用程序,都需要計算和內存資源才能運行,這些資源都是有成本的。對於在固定和沈沒成本基礎設施(如數據中心)內的部署,此類應用程序會佔用原本可用於主要業務工作負載的資源,雖然這不是一項增加的運營費用,但存在資源的機會成本。然而,對於雲IaaS,所使用的資源是按需計量和付費的。部署CWPP代理可能必然會增加雲計算實例的大小(例如,從t4g.medium到t4g.large),從而逐漸增加其運營費用。當然,這是一項必要的支出,但也是一項增量支出。
因此,SentinelOne的產品更關注CPU和內存利用率,就像關注性能一樣。 2022年7月,SentinelOne宣布支持AWS Graviton3,這是最新一代AWS ARM處理器,在計算、功率等方面提供了進一步的優勢。
Recommended Comments