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