淺析容器安全與EDR的異同

綠盟科技發表於2019-12-05

摘要

以Docker為代表的容器技術,直接執行於宿主機作業系統核心,因此對於容器安全,很多人會有著這樣的疑問:EDR(Endpoint Detection and Response)等主機安全方案,能否直接解決容器安全的問題?針對這樣的疑問,本文將結合容器安全的建設思路,簡要分析其與EDR之間的一些異同。

1. 概述

近兩年,隨著容器技術越來越多的被大家所青睞,容器安全也逐漸得到了廣泛的關注和重視。NeuVector、Aqua、Twistlock等初創公司,陸續的推出了其容器安全的產品和解決方案。在國內,以綠盟科技為代表的安全廠商,也不斷的在容器安全領域進行探索和嘗試。

對於容器環境,或者是容器雲,其本質是雲端計算的一種實現方式,我們可以將其稱為PaaS或者CaaS。因此,其整體的安全建設思路,是遵循雲端計算安全架構的。

淺析容器安全與EDR的異同

圖1 雲端計算安全框架

容器雲環境的安全建設,如果暫時拋開物理安全的話,可以粗略分為兩個主要方面:一方面是容器雲內部的安全建設,這包括基礎裝置的安全、東西向網路的安全、管理平臺的安全、虛擬化安全以及資料安全等;另一方面就是容器雲內外之間的網路通訊安全,也就是通常講的南北向網路安全。

淺析容器安全與EDR的異同

圖2 容器雲安全建設思路

這樣,對於容器雲的安全方案,可以分別從這兩個方面進行設計:對於南北向的網路安全,可以透過安全資源池引流的方式,實現相應的安全檢測與防護,這也是很多安全廠商在雲安全解決方案上的主要實現方式。對於容器雲內部的安全,可以透過特定的容器安全產品進行實現。最後將這兩部分統一接入雲安全的集中管理系統,進行統一的安全管理和運營。

2. 容器安全的核心問題

早在2018年11月,我們釋出了《綠盟科技容器安全技術報告》[1],報告中詳細闡述了容器環境可能面臨的安全威脅以及相應的處置方式。這裡我們將容器安全的核心問題做個簡單的回顧和總結。

概括來說,容器/容器雲安全,可以包括以下四個類別:

第一,就是容器環境基礎設施的安全性,比如主機上的安全配置是否會影響到其上面執行的容器,主機上的安全漏洞是否會影響到容器,主機上的惡意程式是否會影響到容器,容器內的程式是否可以利用到主機上的安全漏洞等。

第二,是容器的映象安全,這裡包括映象中的軟體是否存在安全漏洞,映象在構建過程中是否存在安全風險,映象在傳輸過程中是否被惡意篡改等。

第三,是容器的執行時安全,比如執行的容器間隔離是否充分,容器間的通訊是否是安全的,容器內的惡意程式是否會影響到主機或者其它容器,容器的資源使用情況是否是安全的等。

第四,是整個容器生態的安全性,比如Docker/Kubernetes自身的安全性如何,ServiceMesh/Serverless對容器安全有什麼影響,容器中安全金鑰的管理和傳統環境有什麼不同,容器化後的資料隱私保護跟傳統的資料隱私保護是否一致等。

淺析容器安全與EDR的異同

圖3 容器安全的核心問題

從上述容器安全的核心問題來看,映象的概念相對來說是容器所特有的,因此對於容器的映象安全,EDR是一定不會覆蓋的。另外就是容器的生態安全,這塊更多的是容器相關的技術棧帶來的安全機遇和挑戰,因此典型的EDR產品肯定也是無能為力的。

行文至此,開篇所提出的問題“EDR等主機安全方案,能否直接解決容器安全的問題?”就已經有了初步的答案:肯定是不可以的。

首先,來看一下,當前部分廠商專門針對容器環境所提供的安全產品和安全服務都能提供什麼樣的安全能力,以及技術架構是什麼樣的。

3. 容器安全產品/服務

首先以Google GCP(Google Cloud Platform)[2]上所提供的容器安全(Container Security)服務能力為例,具體分析當前容器安全產品/服務主要實現了什麼樣的安全能力。

3.1    Google Container Security

Google在其GCP上保障容器環境的安全時,主要分為了三個方面:

(1)基礎架構安全。主要是指容器管理平臺能夠提供的基本安全功能,確保開發者擁有所需的工具來安全的構建容器化服務,這些功能通常內建於Kubernetes等容器編排系統中。比如使用IAM來管理對專案的訪問許可權、使用基於角色的訪問許可權控制(RBAC)功能來管理對叢集和名稱空間的訪問許可權、日誌審計、網路隔離、基礎設施ISO合規等。

(2)軟體供應鏈安全。主要就是前文所提到的容器映象安全,包括安全的基礎映象維護、CVE漏洞掃描、映象准入檢測等。

(3)執行時安全。確保安全響應團隊能夠檢測到環境中執行的容器所面臨的安全威脅,並做出響應。這些功能通常內建於安全運營工具中。比如Google透過整合了Stackdriver實現日誌分析、透過整合合作夥伴Aqua Security、Capsule8、StackRox、Sysdig Secure、Twistlock等安全產品,實現異常活動的檢測、使用容器執行時沙盒gVisor更好的隔離容器。

下面以其執行時安全的合作伙伴Aqua Security為例,簡要分析其所實現的安全能力以及技術架構。

3.2    Aqua Security

Aqua Security[3]是一家2015年成立的以色列容器安全平臺廠商,在DevOps、微服務等業務平臺中,為容器化環境提供先進的安全方案。

3.2.1     主要安全能力

(1)漏洞管理。掃描容器映象和無伺服器功能,查詢已知的漏洞、嵌入的金鑰、配置和許可權問題、惡意軟體和開源許可。

(2)執行時防護。透過對映象的准入控制,防止不受信任的映象執行,並確保容器保持不變,防止對執行中的容器進行任何更改。可以基於自定義策略和機器學習的行為配置檔案,實時監視和控制容器的活動。

(3)金鑰管理。在執行時可以安全的將金鑰傳遞給容器,在傳輸和儲存時進行加密,將它們載入到記憶體中,而不需要在磁碟上進行持久化儲存,在磁碟上它們只對需要它們的容器可見。

(4)容器防火牆。自動發現容器間網路連線,並得到參考的上下文防火牆規則,透過白名單確定合法的連線,阻止或警告未經授權的網路活動。可以與流行的網路外掛(如Weave或Flannel)和服務網格(如Istio)無縫連線。

(5)合規和審計。PCI-DSS、HIPAA之類的法規合規性檢測,以及NIST、CIS的最佳實踐檢測。提供細粒度事件日誌記錄,並且整合多種日誌分析和SIEM工具,如Splunk、ArcSight等,可以集中管理審計日誌。

3.2.2     實現架構

如下圖所示是Aqua Security官方提供的系統參考架構圖,結合另外一款容器安全產品的參考架構(圖5),可以看出,整個系統基本都是由平臺和探針兩部分組成。

在平臺側,一方面實現相關的安全管理控制的能力,另一方面實現資料相關的分析和智慧化能力。

在探針側,則主要透過在每個容器執行的主機上部署一個安全探針,透過這個探針進行相關的安全策略執行以及相關資料的採集(暫不討論Serverless)。據筆者瞭解,這個分散式的探針,通常會有兩種體現形態,一種是以特權容器的方式融合在容器環境的管理平臺中,另一種是主機安全常見的部署Agent方式。從本質上來講,兩種形態只是部署和管理方式有所區別。

淺析容器安全與EDR的異同

圖4 Aqua Security 架構圖


淺析容器安全與EDR的異同

圖5 某容器安全產品架構圖

4. EDR

既然現有的EDR產品不能直接用來解決容器安全的所有問題,那麼對於容器環境面臨的前述安全問題,EDR能否解決其中的一部分呢?

先看一下EDR的定義是什麼?典型的EDR產品又能做些什麼?

Gartner對於EDR給出瞭如下的定義:

EDR tools provide an ability to analyze and search detailed, current and historic endpoint data for traces of malicious activity and bring the high-risk data to an analyst's attention with additional capabilities to actively respond to those activities if necessary.

EDR工具集提供一種分析/檢索更詳細/實時/歷史的終端資料能力,進而發現惡意活動的痕跡,讓安全分析師關注高風險的資料,並且在必要時積極的進行響應。

Gartner的這個定義,看上去似乎有些抽象,簡單一點的解釋就是:透過收集終端上的各種資料,在這些資料中分析並發現惡意的活動,進而採取相應的防禦手段。那麼都會收集什麼樣的資料?收集到了這些資料又能發現什麼樣的惡意行為?

下面從EDR典型的設計架構開始,進行具體的解釋。

4.1    典型架構

下圖展示了Gartner給出的典型EDR架構,其主要包括兩個部分:一部分是部署在待防護終端上的代理(Agent),這裡的終端既可以是虛擬化的雲主機,也可以是物理的伺服器主機,還可以是辦公的PC機,當然甚至也可以是更輕量的IoT終端裝置(跟容器的可執行環境基本是一致的);另一部分則是控制平臺,這裡的控制平臺既可以透過本地的集中化方式部署實現,也可以部署在雲端,或者是採用雲端和本地化混合的部署方式,不同的安全能力部署在不同的位置。

淺析容器安全與EDR的異同

圖6 EDR系統典型架構

4.2    代理都收集什麼樣的資料?

(1)   終端裝置的基本後設資料。包括CPU、記憶體、網路卡(IP、MAC)、作業系統、安裝軟體、硬體資料、Device資料等。

(2)   網路資料。包括終端裝置上的DNS和ARP表以及其它實時網路資料、開放的埠以及相關的程式資料、終端的網路連線資料、可訪問終端的URL資料等。

(3)   執行時資料。包括終端上執行的程式/執行緒以及其對應的後設資料、使用者登入登出資料、程式間通訊(IPC)資料、程式行為資料(例如資料讀寫)等。

(4)   儲存資料。檔案(通常只包含特定的檔案或者可執行檔案)以及檔案後設資料(比如檔名/大小/型別、校驗和等)、檔案變更資訊、syslog、主開機記錄(MBR)資訊等。

(5)   其它資料。比如載入的DLL、啟用的裝置驅動程式、已載入的核心模組、CMD或者PowerShell歷史命令等資料。

4.3    EDR能發現什麼惡意行為?

基於上述收集到的資料,EDR通常可以應用於以下安全場景:

(1)主機風險檢測。結合多種安全基線與規範要求,透過賬戶、網路、程式、系統配置等多維度風險檢測,系統全面的發現不符合安全管理規範的主機。

(2)可疑行為檢測。透過實時監控主機關鍵的風險入口,結合威脅情報以及相關安全規則,對埠掃描攻擊、暴力破解攻擊、惡意指令碼攻擊、系統漏洞攻擊、Webshell攻擊等可疑行為進行高效快速的檢測發現。

(3)威脅狩獵。平臺收集的各種層面的資料,可以提供關於主機健康狀況的大量資訊。透過正確的篩選、挖掘,利用這些資料可以發現、追蹤到更多潛在的威脅行為,主動的進行威脅捕獲。

(4)阻止惡意行為。例如主機的微隔離,透過控制主機的進出站流量,實現對異常主機的隔離。

4.4    小結:對比容器安全,有哪些是無法滿足的?

根據前文對於容器安全核心問題的描述,以及EDR的功能概述,除了容器的映象安全和容器生態安全之外,在主機安全以及容器執行時安全方面,EDR確實能夠不同程度的提供相關的安全檢測和防護能力。

相同點:

(1)從功能層面,容器安全和EDR都要求實現其對應主機的安全,包括資源層面、許可權層面、網路層面等多個方面,因此,對於容器安全來說,EDR產品可以100%的進行功能的複用,保障容器環境的主機安全。

(2)從技術層面,在二者的主流技術實現路徑上,均採用了“平臺+探針”的技術架構,可以以最小的成本開銷,實現安全能力的複用和整合。

不同點:

二者之間的不同點,主要來源於容器環境利用namespace和cgroup做了一層資源的隔離,因此:

(1)當前EDR所監測的資料,僅限於主機層面,對於容器內部的行為和活動,是沒有覆蓋到的,比如容器內程式行為的監控、容器內使用者許可權的監控等。(具體可參考《解析容器程式管理》一文)

(2)在網路安全上,當前EDR更關注於主機的進出站網路流量,也就是主機物理網路卡上的流量,而在容器環境中,還有相當大比例的網路通訊存在於主機內部的容器之間,因此,這種容器間的東西向網路安全防護,當前EDR也是無法實現的。

(3)許可權管理。容器環境之上,通常執行的基於微服務架構的業務應用,因此有著複雜的許可權管理以及訪問控制策略,雖然這些通常是由容器業務平臺進行設計和實現,但是作為安全服務,是需要有能力對其進行監控和異常檢測的。而EDR在這方面幾乎還只停留在主機資源的許可權管理上,這一點也是無法滿足需求的。

(4)對於容器內應用的金鑰管理、金鑰隱藏等容器業務強相關的安全需求,EDR也是無法滿足的。

5. 總結

本文重點圍繞“EDR等主機安全方案,能否直接解決容器安全?”這個問題,分別從容器安全的幾個核心問題、當前容器安全產品和服務所提供的安全能力,以及EDR產品與容器安全需求的吻合度這幾個方面來進行了具體論述。

考慮到容器環境在技術實現上的特點,透過EDR實現容器安全確實有著一定的優勢。但是考慮到容器環境又有著很多特殊性,在安全上還有很多特定的需求,因此,直接利用EDR去應對容器安全的問題,還是遠遠不夠的。

比較好的解決辦法就是,結合各家之所長,一方面有效的利用EDR在主機安全上可以做到的全面、深入的安全檢測能力;另一方面,結合容器環境特定的需求,實現安全能力的有效擴充套件和延伸。這樣,就可以儘可能高效的實現容器環境的安全防護了。

參考文獻

[1] 2018綠盟科技容器安全技術報告,http://www.nsfocus.com.cn/content/details_62_2852.html

[2] Google Container Security,https://cloud.google.com/containers/security/

[3] Aqua Security,https://www.aquasec.com/


關於星雲實驗室

星雲實驗室專注於雲端計算安全、解決方案研究與虛擬化網路安全問題研究。基於IaaS環境的安全防護,利用SDN/NFV等新技術和新理念,提出了軟體定義安全的雲安全防護體系。承擔並完成多個國家、省、市以及行業重點單位創新研究課題,已成功孵化落地綠盟科技雲安全解決方案

關於我們

綠盟科技研究通訊由綠盟科技創新中心負責運營,綠盟科技創新中心是綠盟科技的前沿技術研究部門。包括雲安全實驗室、安全大資料分析實驗室和物聯網安全實驗室。團隊成員由來自清華、北大、哈工大、中科院、北郵等多所重點院校的博士和碩士組成。

綠盟科技創新中心作為“中關村科技園區海淀園博士後工作站分站”的重要培養單位之一,與清華大學進行博士後聯合培養,科研成果已涵蓋各類國家課題專案、國家專利、國家標準、高水平學術論文、出版專業書籍等。

我們持續探索資訊保安領域的前沿學術方向,從實踐出發,結合公司資源和先進技術,實現概念級的原型系統,進而交付產品線孵化產品並創造巨大的經濟價值。

淺析容器安全與EDR的異同

長按上方二維碼,即可關注我

相關文章