近期,在由Freebuf主辦的CIS2022大會上,字節跳動服務器安全效果負責人鹿恩哲做了《字節跳動云負載防護最佳實踐》的主題分享,在分享中,鹿恩哲從字節跳動內部實踐出發,分享字節跳動是如何面對復雜業務環境和部署環境進行全負載安全防護,并如何通過數據優化、告警歸并和關聯溯源等方式解決海量負載下的安全運營壓力。

云負載防護面臨的威脅
在字節跳動,有大量不同需求的業務部署在物理機、虛擬機、容器、Serverless等不同負載平臺上。經研究發現,不同的負載存在特異化的安全威脅。針對物理機和虛擬機的以傳統的反入侵、合規、風險感知為主;在容器部分的負載中,引入的鏡像安全,集群層面反入侵也層出不窮;到了Serverless層,應用內的高權限API調用難以從主機/容器層進行區分,而較短的生命周期也帶來事后溯源與排查的困難。
恩哲提到,安全所能支配的資源往往是有限的,企業不可能為了不同負載用不同的團隊進行任務分化,而且入侵往往具有關聯性,需要將多種不同的workload結合在一起處理和分析,所以面對上述不同方式的威脅,火山引擎結合字節跳動內部實踐經驗,研發了一體化的云負載防護平臺CWPP。
據介紹,火山引擎CWPP源自字節跳動內部的主機安全解決方案Elkeid。Elkeid在字節跳動內部解決了千萬級容器的反入侵與溯源需求,其采集能力模塊已經對外開源(https://github.com/bytedance/Elkeid)。
CWPP從設計之初便遵循為物理機、虛擬機、容器和無服務器工作負載提供一致的保護和可見性的原則,將主機安全、容器安全、RASP、阻斷與響應能力、追溯能力,通過插件的方式整合在了一個agent上,同時字節內部跨地域跨云的部署需求,也催生了CWPP對多云和混合云下的支持能力。

火山引擎CWPP設計思路
如圖所示,火山引擎CWPP將多種負載的保護能力集成在了一套原生架構上,并開發了專用的高速策略引擎和海量機器下的服務發現能力,這種整合降低了整體運維的壓力。
CWPP 數據收集
不同負載,均需要采集各種來源和需求的數據,CWPP對主機/虛擬機/容器的采集均落在內核層。通過對比用戶態的方案,內核層采集帶來的好處不只是更豐富的數據采集能力,更低的性能開銷,還對容器有天然支持。
同時,在應用層還是會遇到類似SSRF/RCE/SQL注入等針對應用層的入侵,因此我們開發了火山引擎Elkeid RASP。Elkeid RASP是火山引擎云安全團隊自研的一種應用安全防御技術,通過對應用運行時植入探針,來采集運行時的關鍵信息,并分析運行時行為產生及時告警。
通過下圖可以看到左邊是Elkeid RASP在端上數據采集時的生態位,針對應用層本身進行防護。從右邊可以看到,Elkeid RASP是端上agent的一個插件,它會負責對選定的服務進行動態注入RASP probe,支持跨容器的服務監控和管理。而RASP probe則在運行時提供Hook信息上報,熱補丁,阻斷訪問等操作。火山引擎 Elkeid RASP 同時支持在多種語言環境下的使用,基本可滿足大部分公司內的后臺服務。

在云原生時代,容器本身的利用是一方面,Kubenetes集群本身的利用是另一個新增的暴露面。Elkeid RASP因此利用Kubenetes原生的audit log數據,通過日志采集層接入策略引擎,來編寫和分析出安全事件或者威脅風險,進而提供給安全工程師研判分析。
CWPP 告警和策略
在收集數據之后,撰寫對應的策略并對識別出的告警信息進行及時運營是下一步的重點:
1. 首先是告警本身的上下文追加,也就是行為序列檢測。如下圖,三個信息本身都是不具備顯著風險,但組合在一起,形成基于背景的行為序列,這個行為序列本身就具備一定風險,則需要告警。

2. 針對長期駐留的二進制,CWPP構建了云查殺能力。通過可疑二進制扔到云端,利用多引擎進行靜態檢測,并在動態沙箱內真實執行樣本以觀察分析行為,用更豐富的規則和數據來判斷樣本是否為惡意樣本。目前,云查殺在字節內部已經抓獲多起來自內外隱蔽入口的惡意二進制。
3. 火山引擎 CWPP 通過自研存儲層實現對原始數據存儲的低成本存儲和高效查詢,該方案可以支持PB級原始數據的秒級查詢,當產生安全告警后,CWPP 溯源引擎會嘗試通過將告警與原始數據關聯查詢,以達到還原現場的能力。
CWPP 告警案例
在今年的一起 Java RCE Alert 告警引起的應急中,攻擊者從邊緣機器進來,發現任意文件讀取和ssrf漏洞可利用后,進行了盲打,找到了一個jenkins集群下馬。在迅速的CWPP告警和阻斷后,依然不斷更新方法和目標,進行了多次對抗和攻擊嘗試。在CWPP提供了精準的告警信息后,運營人員根據自動關聯事件排查其它告警,迅速定損止損,并使用CWPP平臺快速下發RASP防護,將捕獲的運行時告警實時上報,通過CWPP強大的告警溯源能力和處置能力有效解決以上問題。

據了解,作為物理機、虛擬機、容器和無服務器工作負載提供一致的保護和可見性的安全產品,火山引擎CWPP 未來會持續結合整體網絡環境,以及字節跳動內部實踐、技術創新,為企業用戶提供更為全面的主機安全解決方案。