以Docker為代表的容器技術(shù),直接運行于宿主機操作系統(tǒng)內(nèi)核,因此對于容器安全,很多人會有著這樣的疑問:EDR(Endpoint Detection and Response)等主機安全方案,能否直接解決容器安全的問題?針對疑問,綠盟君將結(jié)合容器安全的建設(shè)思路,簡要分析其與EDR之間的一些異同。
一、概述
近兩年,隨著容器技術(shù)越來越多的被大家所青睞,容器安全也逐漸得到了廣泛的關(guān)注和重視。對于容器環(huán)境,或者是容器云,其本質(zhì)是云計算的一種實現(xiàn)方式,我們可以將其稱為PaaS或者CaaS。因此,其整體的安全建設(shè)思路,是遵循云計算安全架構(gòu)的。
容器云環(huán)境的安全建設(shè),如果暫時拋開物理安全的話,可以粗略分為兩個主要方面:一方面是容器云內(nèi)部的安全建設(shè),這包括基礎(chǔ)設(shè)備的安全、東西向網(wǎng)絡(luò)的安全、管理平臺的安全、虛擬化安全以及數(shù)據(jù)安全等;另一方面就是容器云內(nèi)外之間的網(wǎng)絡(luò)通信安全,也就是通常講的南北向網(wǎng)絡(luò)安全。
圖1 容器云安全建設(shè)思路
這樣,對于容器云的安全方案,可以分別從這兩個方面進行設(shè)計:對于南北向的網(wǎng)絡(luò)安全,可以通過安全資源池引流的方式,實現(xiàn)相應(yīng)的安全檢測與防護,這也是很多安全廠商在云安全解決方案上的主要實現(xiàn)方式。對于容器云內(nèi)部的安全,可以通過特定的容器安全產(chǎn)品進行實現(xiàn)。最后將這兩部分統(tǒng)一接入云安全的集中管理系統(tǒng),進行統(tǒng)一的安全管理和運營。
二、容器安全的核心問題
早在2018年11月,綠盟科技發(fā)布《容器安全技術(shù)報告》,報告中詳細闡述了容器環(huán)境可能面臨的安全威脅以及相應(yīng)的處置方式。這里我們將容器安全的核心問題做個簡單的回顧和總結(jié)。
概括來說,容器/容器云安全,可以包括以下四個類別:
第一,就是容器環(huán)境基礎(chǔ)設(shè)施的安全性,比如主機上的安全配置是否會影響到其上面運行的容器,主機上的安全漏洞是否會影響到容器,主機上的惡意進程是否會影響到容器,容器內(nèi)的進程是否可以利用到主機上的安全漏洞等。
第二,是容器的鏡像安全,這里包括鏡像中的軟件是否存在安全漏洞,鏡像在構(gòu)建過程中是否存在安全風險,鏡像在傳輸過程中是否被惡意篡改等。
第三,是容器的運行時安全,比如運行的容器間隔離是否充分,容器間的通信是否是安全的,容器內(nèi)的惡意程序是否會影響到主機或者其它容器,容器的資源使用情況是否是安全的等。
第四,是整個容器生態(tài)的安全性,比如Docker/Kubernetes自身的安全性如何,ServiceMesh/Serverless對容器安全有什么影響,容器中安全密鑰的管理和傳統(tǒng)環(huán)境有什么不同,容器化后的數(shù)據(jù)隱私保護跟傳統(tǒng)的數(shù)據(jù)隱私保護是否一致等。
圖2 容器安全的核心問題
從上述容器安全的核心問題來看,鏡像的概念相對來說是容器所特有的,因此對于容器的鏡像安全,EDR是一定不會覆蓋的。另外就是容器的生態(tài)安全,這塊更多的是容器相關(guān)的技術(shù)棧帶來的安全機遇和挑戰(zhàn),因此典型的EDR產(chǎn)品肯定也是無能為力的。
行文至此,開篇所提出的問題“EDR等主機安全方案,能否直接解決容器安全的問題?”就已經(jīng)有了初步的答案:肯定是不可以的。
首先,來看一下,當前部分廠商專門針對容器環(huán)境所提供的安全產(chǎn)品和安全服務(wù)都能提供什么樣的安全能力,以及技術(shù)架構(gòu)是什么樣的。
三、容器安全產(chǎn)品/服務(wù)
首先以Google GCP(Google Cloud Platform)所提供的容器安全(Container Security)服務(wù)能力為例,具體分析當前容器安全產(chǎn)品/服務(wù)主要實現(xiàn)了什么樣的安全能力。
1Google Container Security
Google在其GCP上保障容器環(huán)境的安全時,主要分為了三個方面:
(1)基礎(chǔ)架構(gòu)安全。主要是指容器管理平臺能夠提供的基本安全功能,確保開發(fā)者擁有所需的工具來安全的構(gòu)建容器化服務(wù),這些功能通常內(nèi)置于Kubernetes等容器編排系統(tǒng)中。比如使用IAM來管理對項目的訪問權(quán)限、使用基于角色的訪問權(quán)限控制(RBAC)功能來管理對集群和命名空間的訪問權(quán)限、日志審計、網(wǎng)絡(luò)隔離、基礎(chǔ)設(shè)施ISO合規(guī)等。
(2)軟件供應(yīng)鏈安全。主要就是前文所提到的容器鏡像安全,包括安全的基礎(chǔ)鏡像維護、CVE漏洞掃描、鏡像準入檢測等。
(3)運行時安全。確保安全響應(yīng)團隊能夠檢測到環(huán)境中運行的容器所面臨的安全威脅,并做出響應(yīng)。這些功能通常內(nèi)置于安全運營工具中。比如Google通過集成了Stackdriver實現(xiàn)日志分析、通過集成合作伙伴Aqua Security、Capsule8、StackRox、Sysdig Secure、Twistlock等安全產(chǎn)品,實現(xiàn)異常活動的檢測、使用容器運行時沙盒g(shù)Visor更好的隔離容器。
下面以Aqua Security為例,簡要分析其所實現(xiàn)的安全能力以及技術(shù)架構(gòu)。
2Aqua Security
Aqua Security是一家2015年成立的以色列容器安全平臺廠商,在DevOps、微服務(wù)等業(yè)務(wù)平臺中,為容器化環(huán)境提供先進的安全方案。
2.1主要安全能力
(1)漏洞管理。掃描容器鏡像和無服務(wù)器功能,查找已知的漏洞、嵌入的密鑰、配置和權(quán)限問題、惡意軟件和開源許可。
(2)運行時防護。通過對鏡像的準入控制,防止不受信任的鏡像運行,并確保容器保持不變,防止對運行中的容器進行任何更改。可以基于自定義策略和機器學習的行為配置文件,實時監(jiān)視和控制容器的活動。
(3)密鑰管理。在運行時可以安全的將密鑰傳遞給容器,在傳輸和存儲時進行加密,將它們加載到內(nèi)存中,而不需要在磁盤上進行持久化存儲,在磁盤上它們只對需要它們的容器可見。
(4)容器防火墻。自動發(fā)現(xiàn)容器間網(wǎng)絡(luò)連接,并得到參考的上下文防火墻規(guī)則,通過白名單確定合法的連接,阻止或警告未經(jīng)授權(quán)的網(wǎng)絡(luò)活動??梢耘c流行的網(wǎng)絡(luò)插件(如Weave或Flannel)和服務(wù)網(wǎng)格(如Istio)無縫連接。
(5)合規(guī)和審計。PCI-DSS、HIPAA之類的法規(guī)合規(guī)性檢測,以及NIST、CIS的最佳實踐檢測。提供細粒度事件日志記錄,并且集成多種日志分析和SIEM工具,如Splunk、ArcSight等,可以集中管理審計日志。
2.2實現(xiàn)架構(gòu)
如下圖所示是Aqua Security官方提供的系統(tǒng)參考架構(gòu)圖,結(jié)合另外一款容器安全產(chǎn)品的參考架構(gòu),可以看出,整個系統(tǒng)基本都是由平臺和探針兩部分組成。
在平臺側(cè),一方面實現(xiàn)相關(guān)的安全管理控制的能力,另一方面實現(xiàn)數(shù)據(jù)相關(guān)的分析和智能化能力。
在探針側(cè),則主要通過在每個容器運行的主機上部署一個安全探針,通過這個探針進行相關(guān)的安全策略執(zhí)行以及相關(guān)數(shù)據(jù)的采集。這個分布式的探針,通常會有兩種體現(xiàn)形態(tài),一種是以特權(quán)容器的方式融合在容器環(huán)境的管理平臺中,另一種是主機安全常見的部署Agent方式。從本質(zhì)上來講,兩種形態(tài)只是部署和管理方式有所區(qū)別。
圖3 Aqua Security 架構(gòu)圖
圖4 某容器安全產(chǎn)品架構(gòu)圖
四、EDR
既然現(xiàn)有的EDR產(chǎn)品不能直接用來解決容器安全的所有問題,那么對于容器環(huán)境面臨的前述安全問題,EDR能否解決其中的一部分呢?
先看一下EDR的定義是什么?典型的EDR產(chǎn)品又能做些什么?
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工具集提供一種分析/檢索更詳細/實時/歷史的終端數(shù)據(jù)能力,進而發(fā)現(xiàn)惡意活動的痕跡,讓安全分析師關(guān)注高風險的數(shù)據(jù),并且在必要時積極的進行響應(yīng)。
Gartner的這個定義,看上去似乎有些抽象,簡單一點的解釋就是:通過收集終端上的各種數(shù)據(jù),在這些數(shù)據(jù)中分析并發(fā)現(xiàn)惡意的活動,進而采取相應(yīng)的防御手段。那么都會收集什么樣的數(shù)據(jù)?收集到了這些數(shù)據(jù)又能發(fā)現(xiàn)什么樣的惡意行為?
下面從EDR典型的設(shè)計架構(gòu)開始,進行具體的解釋。
1典型架構(gòu)
下圖展示了Gartner給出的典型EDR架構(gòu),其主要包括兩個部分:一部分是部署在待防護終端上的代理(Agent),這里的終端既可以是虛擬化的云主機,也可以是物理的服務(wù)器主機,還可以是辦公的PC機,當然甚至也可以是更輕量的IoT終端設(shè)備(跟容器的可運行環(huán)境基本是一致的);另一部分則是控制平臺,這里的控制平臺既可以通過本地的集中化方式部署實現(xiàn),也可以部署在云端,或者是采用云端和本地化混合的部署方式,不同的安全能力部署在不同的位置。
圖5 EDR系統(tǒng)典型架構(gòu)
2代理都收集什么樣的數(shù)據(jù)?
(1)終端設(shè)備的基本元數(shù)據(jù)。包括CPU、內(nèi)存、網(wǎng)卡(IP、MAC)、操作系統(tǒng)、安裝軟件、硬件數(shù)據(jù)、Device數(shù)據(jù)等。
(2)網(wǎng)絡(luò)數(shù)據(jù)。包括終端設(shè)備上的DNS和ARP表以及其它實時網(wǎng)絡(luò)數(shù)據(jù)、開放的端口以及相關(guān)的進程數(shù)據(jù)、終端的網(wǎng)絡(luò)連接數(shù)據(jù)、可訪問終端的URL數(shù)據(jù)等。
(3)運行時數(shù)據(jù)。包括終端上運行的進程/線程以及其對應(yīng)的元數(shù)據(jù)、用戶登錄注銷數(shù)據(jù)、進程間通信(IPC)數(shù)據(jù)、進程行為數(shù)據(jù)(例如數(shù)據(jù)讀寫)等。
(4)存儲數(shù)據(jù)。文件(通常只包含特定的文件或者可執(zhí)行文件)以及文件元數(shù)據(jù)(比如文件名/大小/類型、校驗和等)、文件變更信息、syslog、主引導(dǎo)記錄(MBR)信息等。
(5)其它數(shù)據(jù)。比如加載的DLL、激活的設(shè)備驅(qū)動程序、已加載的內(nèi)核模塊、CMD或者PowerShell歷史命令等數(shù)據(jù)。
3EDR能發(fā)現(xiàn)什么惡意行為?
基于上述收集到的數(shù)據(jù),EDR通??梢詰?yīng)用于以下安全場景:
(1)主機風險檢測。結(jié)合多種安全基線與規(guī)范要求,通過賬戶、網(wǎng)絡(luò)、進程、系統(tǒng)配置等多維度風險檢測,系統(tǒng)全面的發(fā)現(xiàn)不符合安全管理規(guī)范的主機。
(2)可疑行為檢測。通過實時監(jiān)控主機關(guān)鍵的風險入口,結(jié)合威脅情報以及相關(guān)安全規(guī)則,對端口掃描攻擊、暴力破解攻擊、惡意腳本攻擊、系統(tǒng)漏洞攻擊、Webshell攻擊等可疑行為進行高效快速的檢測發(fā)現(xiàn)。
(3)威脅狩獵。平臺收集的各種層面的數(shù)據(jù),可以提供關(guān)于主機健康狀況的大量信息。通過正確的篩選、挖掘,利用這些數(shù)據(jù)可以發(fā)現(xiàn)、追蹤到更多潛在的威脅行為,主動的進行威脅捕獲。
(4)阻止惡意行為。例如主機的微隔離,通過控制主機的進出站流量,實現(xiàn)對異常主機的隔離。
4對比容器安全,有哪些無法滿足?
根據(jù)前文對于容器安全核心問題的描述,以及EDR的功能概述,除了容器的鏡像安全和容器生態(tài)安全之外,在主機安全以及容器運行時安全方面,EDR確實能夠不同程度的提供相關(guān)的安全檢測和防護能力。
相同點:
(1)從功能層面,容器安全和EDR都要求實現(xiàn)其對應(yīng)主機的安全,包括資源層面、權(quán)限層面、網(wǎng)絡(luò)層面等多個方面,因此,對于容器安全來說,EDR產(chǎn)品可以100%的進行功能的復(fù)用,保障容器環(huán)境的主機安全。
(2)從技術(shù)層面,在二者的主流技術(shù)實現(xiàn)路徑上,均采用了“平臺+探針”的技術(shù)架構(gòu),可以以最小的成本開銷,實現(xiàn)安全能力的復(fù)用和整合。
不同點:
二者之間的不同點,主要來源于容器環(huán)境利用namespace和cgroup做了一層資源的隔離,因此:
(1)當前EDR所監(jiān)測的數(shù)據(jù),僅限于主機層面,對于容器內(nèi)部的行為和活動,是沒有有效的進行關(guān)聯(lián)的,比如容器內(nèi)進程行為的監(jiān)控、容器內(nèi)用戶權(quán)限的監(jiān)控等。
(2)在網(wǎng)絡(luò)安全上,當前EDR更關(guān)注于主機的進出站網(wǎng)絡(luò)流量,也就是主機物理網(wǎng)卡上的流量,而在容器環(huán)境中,還有相當大比例的網(wǎng)絡(luò)通信存在于主機內(nèi)部的容器之間,因此,這種容器間的東西向網(wǎng)絡(luò)安全防護,當前EDR也是無法實現(xiàn)的。
(3)權(quán)限管理。容器環(huán)境之上,通常運行的基于微服務(wù)架構(gòu)的業(yè)務(wù)應(yīng)用,因此有著復(fù)雜的權(quán)限管理以及訪問控制策略,雖然這些通常是由容器業(yè)務(wù)平臺進行設(shè)計和實現(xiàn),但是作為安全服務(wù),是需要有能力對其進行監(jiān)控和異常檢測的。而EDR在這方面幾乎還只停留在主機資源的權(quán)限管理上,這一點也是無法滿足需求的。
(4)對于容器內(nèi)應(yīng)用的密鑰管理、密鑰隱藏等容器業(yè)務(wù)強相關(guān)的安全需求,EDR也是無法滿足的。
五、總結(jié)
本文重點圍繞“EDR等主機安全方案,能否直接解決容器安全?”這個問題,分別從容器安全的幾個核心問題、當前容器安全產(chǎn)品和服務(wù)所提供的安全能力,以及EDR產(chǎn)品與容器安全需求的吻合度這幾個方面來進行了具體論述。
考慮到容器環(huán)境在技術(shù)實現(xiàn)上的特點,通過EDR實現(xiàn)容器安全確實有著一定的優(yōu)勢。但是考慮到容器環(huán)境又有著很多特殊性,在安全上還有很多特定的需求,因此,直接利用EDR去應(yīng)對容器安全的問題,還是遠遠不夠的。
比較好的解決辦法就是,結(jié)合各家之所長,一方面有效的利用EDR在主機安全上可以做到的全面、深入的安全檢測能力;另一方面,結(jié)合容器環(huán)境特定的需求,實現(xiàn)安全能力的有效擴展和延伸。這樣,就可以盡可能高效的實現(xiàn)容器環(huán)境的安全防護了。
(審核編輯: 智匯小新)
分享