國家保密局網(wǎng)站>>保密科技

私有云容器安全防護(hù)研究

2023年06月07日    來源:國家保密科技測評(píng)中心【字體: 打印

【摘 要】 隨著企業(yè)數(shù)字化轉(zhuǎn)型和新基建的推進(jìn),云原生的應(yīng)用越來越廣泛,其安全問題也逐步受到關(guān)注。本文主要從云原生的核心組件之一容器展開分析,論述了私有云容器的技術(shù)和功能特點(diǎn),并從鏡像、容器、主機(jī)、網(wǎng)絡(luò)、服務(wù)網(wǎng)格和運(yùn)維管理等方面進(jìn)行安全風(fēng)險(xiǎn)分析,提出了私有云容器安全防護(hù)框架,為企業(yè)私有云容器安全防護(hù)提供參考。

【關(guān)鍵詞】 私有云 容器安全 風(fēng)險(xiǎn)分析 主機(jī)安全 網(wǎng)絡(luò)安全

1 引言

在企業(yè)的數(shù)字化轉(zhuǎn)型過程中,一些企業(yè)對信息化提出應(yīng)用敏捷開發(fā)、快速迭代、持續(xù)更新、高彈性、易擴(kuò)展和高安全等要求。為實(shí)現(xiàn)上述要求,云原生成為企業(yè)數(shù)字化轉(zhuǎn)型的首選工具,作為云原生核心組件之一的容器技術(shù)得到廣泛應(yīng)用。但在企業(yè)基于容器技術(shù)部署業(yè)務(wù)應(yīng)用時(shí),不同程度地存在安全隱患,且隨著私有云的推廣與應(yīng)用,相應(yīng)的安全風(fēng)險(xiǎn)日益凸顯。

2 私有云容器技術(shù)分類

2.1 容器

容器技術(shù)是指在操作系統(tǒng)層實(shí)現(xiàn)了對計(jì)算機(jī)系統(tǒng)資源的虛擬化,在操作系統(tǒng)中,通過對CPU、內(nèi)存和文件系統(tǒng)等資源的隔離、劃分和控制,實(shí)現(xiàn)進(jìn)程之間資源的透明使用。與虛擬機(jī)相比,容器啟動(dòng)速度更快,且?guī)缀醪淮嬖谛阅軗p耗。與云計(jì)算的結(jié)合,彈性的云資源和靈活的云應(yīng)用,使得容器技術(shù)在云計(jì)算領(lǐng)域脫穎而出。

2.2 容器編排調(diào)度

容器編排調(diào)度技術(shù)包括容器調(diào)度和集群資源管理。容器調(diào)度是指調(diào)度特定的容器到主機(jī)上運(yùn)行;集群資源管理是指幫助用戶以集群的方式在主機(jī)上啟動(dòng)容器,實(shí)現(xiàn)相應(yīng)的網(wǎng)絡(luò)互聯(lián),同時(shí)提供可擴(kuò)展、容錯(cuò)、負(fù)載和高可用等保障。單個(gè)應(yīng)用服務(wù)部署也需要大量容器的共同參與,大規(guī)模的容器管理、故障排查和溯源等進(jìn)一步催生了容器統(tǒng)籌管理的必要性。

2.3 服務(wù)網(wǎng)格

服務(wù)網(wǎng)格(Service Mesh)技術(shù)是專門處理服務(wù)間通信的技術(shù),它可將服務(wù)間的復(fù)雜通信分層并下沉到基礎(chǔ)設(shè)施層,從而在云原生應(yīng)用組成的復(fù)雜服務(wù)拓?fù)渲锌煽康貍鬟f請求。服務(wù)網(wǎng)格通常是一組隨著應(yīng)用代碼部署的輕量級(jí)網(wǎng)絡(luò)代理,應(yīng)用感知不到它的存在。使用服務(wù)網(wǎng)格,開發(fā)者不需要改動(dòng)現(xiàn)有的服務(wù)代碼,不用關(guān)心應(yīng)用的服務(wù)管理,只需要專注于業(yè)務(wù)邏輯的開發(fā),因此能夠賦予開發(fā)者更多的創(chuàng)造性。

2.4 敏捷開發(fā)

敏捷開發(fā)是一種能應(yīng)對快速變化的軟件開發(fā)模式,它采用“迭代開發(fā)”將軟件項(xiàng)目需求分成多個(gè)進(jìn)行迭代,且每個(gè)迭代成果在完成開發(fā)、測試、反饋等環(huán)節(jié)后都可進(jìn)行交付,能夠使資源得到最大化利用,反饋更加及時(shí),交付效率顯著提高。開發(fā)運(yùn)維一體化(DevOps)基于敏捷開發(fā)將運(yùn)維納入產(chǎn)品開發(fā)過程,促進(jìn)了開發(fā)、運(yùn)維、測試之間的高效協(xié)同,集開發(fā)、運(yùn)維、測試于一體,實(shí)現(xiàn)軟件持續(xù)交付、快速修復(fù)和解決業(yè)務(wù)應(yīng)用問題。

3 私有云容器安全風(fēng)險(xiǎn)分析

3.1 鏡像安全風(fēng)險(xiǎn)

容器鏡像高度依賴開放的開源代碼,而開源代碼本身存在著錯(cuò)綜復(fù)雜的依賴調(diào)用關(guān)系。開源代碼開發(fā)者可隨意使用、修改、發(fā)布開源軟件包,使得潛在的安全漏洞或惡意鏡像在技術(shù)社區(qū)中傳遞,在容器鏡像中埋下了較大安全隱患。這些鏡像帶來的威脅不僅會(huì)影響容器安全,還可能層層傳遞、反向滲透到底層宿主機(jī)、網(wǎng)絡(luò)基礎(chǔ)設(shè)施,威脅整個(gè)私有云平臺(tái)的安全運(yùn)行。鏡像帶來的風(fēng)險(xiǎn)主要包括以下5種:

(1)開源鏡像可能存在漏洞、病毒或惡意程序等安全風(fēng)險(xiǎn);

(2)鏡像中存在的明文密鑰在應(yīng)用服務(wù)部署時(shí)泄露;

(3)從鏡像倉庫中獲取鏡像的路徑被劫持或惡意修改;

(4)鏡像中存在的安全外殼協(xié)議(Secure Shell Protocol,SSH)服務(wù)增加了內(nèi)部服務(wù)暴露和攻擊的風(fēng)險(xiǎn);

(5)鏡像倉庫被攻擊或泄露,導(dǎo)致鏡像攜帶惡意程序或無法使用。

3.2 容器安全風(fēng)險(xiǎn)

容器是一種共享了宿主機(jī)操作系統(tǒng)內(nèi)核,但未實(shí)現(xiàn)物理層隔離的虛擬化技術(shù)。在運(yùn)行軟件存在漏洞或者宿主機(jī)遭到攻擊的情況下,可能會(huì)出現(xiàn)容器逃逸和資源隔離失效,導(dǎo)致容器所承載應(yīng)用服務(wù)異常。在日常使用過程中,管理員或用戶錯(cuò)誤配置了容器的環(huán)境參數(shù)、運(yùn)行參數(shù),直接將宿主機(jī)的某些敏感卷掛載到容器中或直接使用互聯(lián)網(wǎng)相關(guān)源代碼,從而給攻擊者留有可乘之機(jī),使攻擊者可通過這些錯(cuò)誤的容器參數(shù)、利用敏感卷和源代碼漏洞獲取宿主機(jī)資源的控制權(quán),進(jìn)而訪問宿主機(jī)中的所有文件,任意進(jìn)入其所承載的容器中,致使宿主機(jī)本身及其所承載的容器存在安全隱患。

3.3 主機(jī)安全風(fēng)險(xiǎn)

主機(jī)上的安全配置、安全漏洞和惡意進(jìn)程會(huì)直接影響容器的安全,攻擊者利用容器共享宿主機(jī)內(nèi)核的原理,通過容器漏洞提升權(quán)限,獲得宿主機(jī)根用戶(root)權(quán)限。在容器無根用戶權(quán)限限制的情況下,攻擊者以容器為跳板,可直接控制容器宿主機(jī)及部署的所有服務(wù)。同時(shí)由于容器位于宿主機(jī)內(nèi)部,容器間的網(wǎng)絡(luò)流量不經(jīng)過邊界安全防護(hù)設(shè)備,因此難以檢測容器間的惡意流量。一旦內(nèi)部惡意容器發(fā)起分布式拒絕服務(wù)(DDoS)攻擊,將迅速消耗并占滿主機(jī)和集群資源,造成業(yè)務(wù)應(yīng)用中斷,嚴(yán)重時(shí)私有云集群將面臨癱瘓的風(fēng)險(xiǎn)。

3.4 網(wǎng)絡(luò)安全風(fēng)險(xiǎn)

網(wǎng)絡(luò)實(shí)現(xiàn)了容器與容器之間、容器與外部之間的通信,以及應(yīng)用之間的交互,但在容器的網(wǎng)絡(luò)環(huán)境中,其網(wǎng)絡(luò)控制風(fēng)險(xiǎn)較傳統(tǒng)網(wǎng)絡(luò)更為復(fù)雜、嚴(yán)峻。例如,容器Kubernetes(K8s)自身雖設(shè)立了命名空間來進(jìn)行資源分配和管理,但每個(gè)命名空間內(nèi)地址是混亂的,且網(wǎng)絡(luò)完全互通,難以實(shí)現(xiàn)精細(xì)化控制。若容器之間的網(wǎng)絡(luò)未進(jìn)行有效隔離和控制,一旦攻擊者控制某臺(tái)主機(jī)或容器,則可以此為跳板發(fā)起內(nèi)部攻擊,即“東西向攻擊”。當(dāng)內(nèi)部攻擊行為成功繞過南北訪問控制規(guī)則后,將會(huì)對整個(gè)網(wǎng)絡(luò)進(jìn)行更深入地攻擊和破壞。

3.5 服務(wù)網(wǎng)格安全風(fēng)險(xiǎn)

容器平臺(tái)中,多個(gè)微服務(wù)構(gòu)成了一個(gè)應(yīng)用服務(wù),這些微服務(wù)之間的通信由服務(wù)網(wǎng)格代理,實(shí)現(xiàn)微服務(wù)之間的消息傳遞。在消息傳遞的過程中若未采用加密保護(hù)的通信技術(shù)防護(hù),攻擊者可能通過一個(gè)服務(wù)控制權(quán)限,開展劫持、竊聽、偽造等破壞活動(dòng),造成數(shù)據(jù)泄露或服務(wù)異常。當(dāng)服務(wù)間存在認(rèn)證權(quán)限配置漏洞時(shí),攻擊者可基于某個(gè)服務(wù)開展越權(quán)攻擊并控制其他服務(wù),進(jìn)而攻擊整個(gè)集群中的應(yīng)用服務(wù)。

3.6 運(yùn)維管理安全風(fēng)險(xiǎn)

隨著私有云的建設(shè)與使用,各企業(yè)若仍采用傳統(tǒng)的模式開展相關(guān)業(yè)務(wù)的運(yùn)維管理,則面臨著組織機(jī)構(gòu)不健全、平臺(tái)管理有漏洞、系統(tǒng)防護(hù)有死角等管理風(fēng)險(xiǎn)。因私有云平臺(tái)的建設(shè)往往是一次性搭建完主體,后續(xù)不斷擴(kuò)容資源,從而滿足業(yè)務(wù)所需和確保平臺(tái)的魯棒性,但由于缺少創(chuàng)新的運(yùn)維/運(yùn)營管理模式,私有云并不會(huì)產(chǎn)生持續(xù)向上的經(jīng)濟(jì)效益。隨著使用時(shí)間增長,云平臺(tái)會(huì)逐步出現(xiàn)設(shè)備老化、技術(shù)淘汰等問題,其適用性降低,會(huì)導(dǎo)致企業(yè)潛在效益降低。此時(shí),企業(yè)將面臨重復(fù)投資建設(shè)的風(fēng)險(xiǎn),即由傳統(tǒng)單體重復(fù)建設(shè)演變成云重復(fù)建設(shè)。

4 私有云容器安全防護(hù)

為使私有云在企業(yè)中更好地安全穩(wěn)定運(yùn)行,為企業(yè)轉(zhuǎn)型發(fā)展奠定基礎(chǔ),針對以上風(fēng)險(xiǎn),本文從鏡像、容器、主機(jī)、網(wǎng)絡(luò)、服務(wù)網(wǎng)格和運(yùn)維管理等方面分別采取相應(yīng)的安全防護(hù)措施,形成私有云容器安全防護(hù)架構(gòu),如圖1所示。

4.1 鏡像安全防護(hù)

為提升私有云整體安全防護(hù)能力,私有云安全防護(hù)整體“向左遷移”,從容器鏡像構(gòu)建開始,首先是用戶盡可能不直接使用開源鏡像,若需使用則應(yīng)建立相對獨(dú)立的區(qū)域,使用前進(jìn)行病毒、惡意代碼查殺和漏洞檢測等;其次在對鏡像打包時(shí),應(yīng)關(guān)閉多余服務(wù),實(shí)時(shí)更新安全漏洞庫,對身份認(rèn)證和密鑰等敏感信息進(jìn)行保護(hù),查殺病毒和惡意代碼等;最后在鏡像使用時(shí),應(yīng)建立私有鏡像倉庫并啟用驗(yàn)證源服務(wù),根據(jù)不同用途建立鏡像臺(tái)賬,明確具體訪問范圍,再次確認(rèn)權(quán)限,禁止非授權(quán)訪問。

4.2 容器安全防護(hù)

對于容器的安全防護(hù),可從南北(云外)方向和東西(云內(nèi))方向2個(gè)方面進(jìn)行設(shè)計(jì):對于南北方向的安全防護(hù),主要是云外的用戶訪問云上的服務(wù)防護(hù),可通過構(gòu)建相應(yīng)的安全資源池引流方式進(jìn)行檢測與防護(hù);對于東西向的安全防護(hù),主要是容器間的安全防護(hù),可采用以下3種方式。

4.2.1 容器安全監(jiān)測

(1)入侵檢測。采用進(jìn)程黑/白名單機(jī)制和惡意程序檢測,阻止異常進(jìn)程,防止提權(quán)攻擊、違規(guī)操作等安全風(fēng)險(xiǎn)。

(2)容器端口檢測。關(guān)閉不需要的服務(wù)端口,安裝惡意程序檢測工具,定期升級(jí)和更新惡意程序庫。

(3)異常行為監(jiān)測。通過設(shè)置相應(yīng)規(guī)則(如關(guān)閉seccomp系統(tǒng)隔離機(jī)制、掛載宿主機(jī)/etc目錄到容器內(nèi)、核心文件完整性監(jiān)控等)實(shí)現(xiàn)容器、主機(jī)、應(yīng)用程序的異常監(jiān)測。

(4)流量可視化。構(gòu)建容器應(yīng)用和服務(wù)之間的網(wǎng)絡(luò)流量可視化能力,自動(dòng)發(fā)現(xiàn)網(wǎng)絡(luò)層、傳輸層和應(yīng)用層中容器集群服務(wù)依賴關(guān)系圖。

4.2.2 容器安全隔離

(1)權(quán)限控制。對容器啟動(dòng)及運(yùn)行時(shí)的權(quán)限進(jìn)行限制,采用基于角色的權(quán)限訪問控制,控制每個(gè)用戶的資源權(quán)限。

(2)容器實(shí)行隔離保護(hù)。設(shè)置容器間的網(wǎng)絡(luò)訪問控制,實(shí)現(xiàn)用于集群內(nèi)部容器間的防火墻功能。

(3)應(yīng)用、數(shù)據(jù)和服務(wù)隔離保護(hù)。構(gòu)建面向集群、命名空間、節(jié)點(diǎn)、容器管理組(Pod)和容器等不同層面的資源隔離模型,配置用戶資源調(diào)度控制及運(yùn)行時(shí)的安全策略。

4.2.3 容器安全配置

(1)安全配置。對容器內(nèi)重要數(shù)據(jù)進(jìn)行保密性、完整性和可用性保護(hù)。對容器中關(guān)鍵文件及應(yīng)用需設(shè)置相應(yīng)保護(hù)策略,如禁止根用戶權(quán)限運(yùn)行、限制使用特權(quán)用戶運(yùn)行、配置強(qiáng)制訪問控制策略、限制遠(yuǎn)程訪問范圍和容器磁盤配合限制等。

(2)安全審計(jì)。構(gòu)建容器安全審計(jì)模塊,記錄容器的操作、訪問和阻斷行為,形成相關(guān)日志數(shù)據(jù),該日志數(shù)據(jù)應(yīng)采用獨(dú)立存儲(chǔ)空間,不能篡改且應(yīng)滿足一定的存儲(chǔ)周期。

4.3 主機(jī)安全防護(hù)

(1)硬件分類部署;谄髽I(yè)安全防護(hù)等級(jí)要求,選取相應(yīng)硬件設(shè)備作為宿主機(jī),同時(shí)結(jié)合宿主機(jī)所承載的應(yīng)用類型、密級(jí)、用途等特性劃分獨(dú)立的區(qū)域,各區(qū)域間按照網(wǎng)絡(luò)防護(hù)要求進(jìn)行安全防護(hù)。

(2)可信軟件安全啟動(dòng)。建立主機(jī)的可信根,對主機(jī)操作系統(tǒng)、容器相關(guān)組件進(jìn)行完整性度量,防止其被非法篡改,確保啟動(dòng)過程處于可信狀態(tài)。度量通過,則允許服務(wù)器系統(tǒng)正常引導(dǎo)、啟動(dòng)、容器系統(tǒng)正常加載;如果關(guān)鍵組件被篡改,則對啟動(dòng)過程進(jìn)行阻止。

(3)可信軟件授權(quán)部署。用于承載和部署私有云的軟件應(yīng)通過相應(yīng)的安全檢測和授權(quán)方可安裝,如對主機(jī)系統(tǒng)軟件漏洞、病毒、訪問權(quán)限等進(jìn)行檢測。

(4)系統(tǒng)安全加固與配置。在一朵云中盡可能統(tǒng)一主機(jī)操作系統(tǒng),統(tǒng)一檢測與管控,包括系統(tǒng)基礎(chǔ)服務(wù)的安全配置(雙因素認(rèn)證機(jī)制等)、系統(tǒng)核心安全能力(安全日志采集、入侵防御代理等)的部署等。系統(tǒng)應(yīng)遵循最小化安裝,不得安裝額外的服務(wù)和軟件,減小攻擊面;刪除無關(guān)賬戶、鎖定重要文件的權(quán)限設(shè)置、配置遠(yuǎn)程訪問地址范圍和交互登錄超時(shí)時(shí)間;關(guān)閉數(shù)據(jù)包轉(zhuǎn)發(fā)功能、禁止控制報(bào)文協(xié)議(Internet Control Message Protocol,ICMP)重定向。

(5)主機(jī)環(huán)境安全防護(hù)。應(yīng)在主機(jī)所處的網(wǎng)絡(luò)環(huán)境部署漏洞掃描,定時(shí)檢測系統(tǒng)及軟件漏洞、安全配置基線,及時(shí)更新系統(tǒng)補(bǔ)丁;部署入侵檢測設(shè)備,對異地登錄、惡意程序、賬戶破解、關(guān)鍵文件變更異常行為進(jìn)行檢測并及時(shí)阻止;開啟主機(jī)數(shù)據(jù)庫防火墻功能,及時(shí)對敏感數(shù)據(jù)發(fā)現(xiàn)與脫敏,加強(qiáng)數(shù)據(jù)庫安全防護(hù)與監(jiān)控審計(jì)功能,加強(qiáng)主機(jī)文件系統(tǒng)和系統(tǒng)調(diào)用的安全審計(jì)。

4.4 網(wǎng)絡(luò)安全防護(hù)

(1)網(wǎng)絡(luò)安全組件。對每個(gè)命名空間分配一臺(tái)軟交換機(jī),同步分配容器內(nèi)、外地址段,實(shí)現(xiàn)業(yè)務(wù)容器的微分段。根據(jù)業(yè)務(wù)屬性定義的標(biāo)簽,通過安全組件來實(shí)現(xiàn)訪問控制策略,形成精細(xì)化的流量控制以及流量可視化,還可幫助管理員迅速定位網(wǎng)絡(luò)訪問的故障點(diǎn),實(shí)現(xiàn)快速排障。

(2)網(wǎng)絡(luò)訪問控制。在容器和主機(jī)之間、容器與容器之間、容器與用戶之間均按最小化原則,設(shè)定網(wǎng)絡(luò)訪問控制策略,同時(shí)這類訪問控制策略通常是動(dòng)態(tài)變化的,那么對每次的變動(dòng)都需要相應(yīng)的審批、授權(quán),以及操作記錄審計(jì)。

(3)網(wǎng)絡(luò)攻擊檢測與防御。在私有云平臺(tái)的安全資源池中部署相應(yīng)的流量清洗、流量牽引、網(wǎng)頁應(yīng)用防火墻等檢測和防御攻擊的工具。

4.5 服務(wù)網(wǎng)格安全防護(hù)

(1)服務(wù)網(wǎng)格自身安全防護(hù)。服務(wù)網(wǎng)格控制面通過發(fā)現(xiàn)服務(wù)(xDS)協(xié)議對數(shù)據(jù)面進(jìn)行配置(路由轉(zhuǎn)發(fā)、負(fù)載均衡、服務(wù)治理等)下發(fā),以控制數(shù)據(jù)面的行為,通過禁用多余服務(wù)端口和配置環(huán)境變量來關(guān)閉服務(wù)網(wǎng)格中的一些默認(rèn)服務(wù)(debug服務(wù)等),從而提升東西流量中的安全防護(hù)。

(2)服務(wù)網(wǎng)格的可觀測性。企業(yè)用戶和管理員可通過服務(wù)網(wǎng)格,實(shí)現(xiàn)業(yè)務(wù)服務(wù)從應(yīng)用微服務(wù)到基礎(chǔ)設(shè)施的全鏈條可視化監(jiān)控和故障診斷能力,從而提供統(tǒng)一監(jiān)控?cái)?shù)據(jù),保障業(yè)務(wù)服務(wù)安全運(yùn)行。

4.6 私有云安全運(yùn)營管理體系

隨著企業(yè)紛紛上云,特別是私有云的部署,在運(yùn)營模式由傳統(tǒng)的以資源為主逐步轉(zhuǎn)變?yōu)樵茣r(shí)代以應(yīng)用服務(wù)為主的背景下,若不構(gòu)建基于云模式的運(yùn)營管理體系,將面臨更多的安全風(fēng)險(xiǎn)。

(1)重構(gòu)運(yùn)營團(tuán)隊(duì)。云計(jì)算的使用改變了傳統(tǒng)基礎(chǔ)設(shè)施的架構(gòu),過去的維護(hù)是以硬件設(shè)備或系統(tǒng)為邊界,在邊界進(jìn)行嚴(yán)格的控制。企業(yè)上云后,存在跨地區(qū)分布式部署,應(yīng)用服務(wù)也分布在不同數(shù)據(jù)中心,沒有固定的邊界,因此需協(xié)同多數(shù)據(jù)中心人員共同管理維護(hù)。

(2)提升人員技能。云技術(shù)作為新一代信息基礎(chǔ)技術(shù),需加強(qiáng)相關(guān)運(yùn)營人員的專業(yè)技能提升,改變傳統(tǒng)運(yùn)維觀念。

(3)明確計(jì)費(fèi)方式。為更好地利用云資源,使云資源發(fā)揮最大價(jià)值,且能可持續(xù)發(fā)展,企業(yè)需明確使用云服務(wù)的計(jì)費(fèi)方式(并非真正收取費(fèi)用),通過該方式實(shí)時(shí)掌握云服務(wù)的使用狀態(tài)和資源飽和度,從而為管理者決策提供數(shù)據(jù)支撐。

(4)編制管理制度。一個(gè)好的運(yùn)營模式,還需從云服務(wù)的需求、計(jì)劃、構(gòu)建、測試、部署、文檔、維護(hù)和運(yùn)營管理等方面構(gòu)建一個(gè)健全的管理制度進(jìn)行約束和監(jiān)管,使相關(guān)的安全策略嚴(yán)格執(zhí)行,保障所有操作有據(jù)可依。

5 結(jié)語

隨著企業(yè)數(shù)字化轉(zhuǎn)型與云原生的廣泛應(yīng)用,容器安全威脅所帶來的危害也急劇增加。本文論述了私有云容器的技術(shù)和功能特點(diǎn),并從鏡像、容器、主機(jī)、網(wǎng)絡(luò)、服務(wù)網(wǎng)格和運(yùn)維管理等方面開展了相關(guān)安全風(fēng)險(xiǎn)分析和研究,并針對性地提出了私有云容器安全防護(hù)框架,為企業(yè)私有云容器安全防護(hù)提供參考。

(原載于《保密科學(xué)技術(shù)》雜志2022年8月刊)