国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Docker鏡像安全監(jiān)測(cè)模型研究與設(shè)計(jì)

2023-06-15 17:00:48蘇桐
計(jì)算機(jī)時(shí)代 2023年6期
關(guān)鍵詞:安全監(jiān)測(cè)

蘇桐

摘? 要: Docker作為如今被大量使用的新型虛擬化技術(shù),其鏡像的安全性是Docker安全中最脆弱的一個(gè)環(huán)節(jié),但尚無(wú)全面有效的措施對(duì)鏡像進(jìn)行全方位的安全監(jiān)測(cè)。本文根據(jù)Docker鏡像文件存在的主要安全問(wèn)題,研究并設(shè)計(jì)Docker鏡像安全監(jiān)測(cè)模型MDIS(monitor Docker image security),從鏡像漏洞、惡意腳本、歷史行為、敏感信息及可信度量等多個(gè)方面對(duì)鏡像安全性進(jìn)行監(jiān)測(cè)和評(píng)估,力求提升生產(chǎn)環(huán)境中Docker鏡像的安全性,提前檢測(cè)和發(fā)現(xiàn)威脅,保障系統(tǒng)安全。

關(guān)鍵詞: Docker; 安全監(jiān)測(cè); 鏡像掃描; 可信度量

中圖分類號(hào):TP309? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2023)06-25-04

Design of the Docker image security monitoring model

Su Tong

(Fuzhou University Zhicheng College, Fuzhou, Fujian 350001, China)

Abstract: As a new virtualization technology widely used today, the security of its images is one of the most vulnerable links in Docker security, but there are no comprehensive and effective measures to monitor the security of images in an all-round way. In this paper, according to the main security issues of Docker image files, we study and design the Docker image security monitoring model MDIS (monitor Docker image security), which detects and evaluates image security from multiple aspects such as image vulnerabilities, malicious scripts, historical behavior, sensitive information and trust measurement. It strives to improve the security of Docker images in the production environment, detect and discover threats in advance, and ensure system security.

Key words: Docker; security monitoring; image scanning; trust measurement

0 引言

隨著云計(jì)算的廣泛運(yùn)用,采用lxc虛擬化的Docker成為被各大企業(yè)大量應(yīng)用的技術(shù)。Docker通過(guò)與linux宿主機(jī)共用內(nèi)核的機(jī)制實(shí)現(xiàn)輕量化的操作系統(tǒng)及容器化運(yùn)行環(huán)境,具備秒級(jí)啟動(dòng)和大規(guī)??缮炜s性等特性。Docker利用Cgroups以及namespace機(jī)制實(shí)現(xiàn)容器與主機(jī)、容器與容器間的隔離,在一定程度上保障了容器運(yùn)行環(huán)境的安全性[1]。但同時(shí),作為對(duì)于運(yùn)行容器至關(guān)重要的Docker鏡像而言,由于目前各廠商鏡像倉(cāng)庫(kù)中的鏡像來(lái)源復(fù)雜、標(biāo)準(zhǔn)不一、缺乏有效的鏡像監(jiān)管,且Docker特殊的鏡像生成方式具有一定的脆弱性,導(dǎo)致了鏡像源存在安全風(fēng)險(xiǎn),問(wèn)題鏡像會(huì)給生產(chǎn)環(huán)境帶來(lái)較大的安全威脅。傳統(tǒng)edr無(wú)法解決鏡像安全問(wèn)題,現(xiàn)有的鏡像掃描工具往往存在掃描類型不足,問(wèn)題覆蓋不全面,無(wú)法系統(tǒng)性解決鏡像掃描及存儲(chǔ)等問(wèn)題,因此,本文針對(duì)現(xiàn)有狀況,提出了基于主機(jī)的Docker鏡像安全解決方案,研究并設(shè)計(jì)針對(duì)Docker鏡像安全的監(jiān)測(cè)模型MDIS(monitor Docker image security),進(jìn)一步提升鏡像使用的安全性。

1 Docker鏡像分析

鏡像文件是容器啟動(dòng)及運(yùn)行所依賴的必要文件,其中包含了容器運(yùn)行所需的文件系統(tǒng)及內(nèi)容等要素,其與Dokcer容器中的配置共同構(gòu)成了容器的運(yùn)行環(huán)境rootfs。容器的每次生成都是在靜態(tài)鏡像的基礎(chǔ)上啟動(dòng)和運(yùn)行,并在頂層加入可寫(xiě)層[2],實(shí)現(xiàn)寫(xiě)時(shí)復(fù)制。

由于Docker采用的是UnionFS聯(lián)合文件系統(tǒng),其鏡像具有分層的特性,每個(gè)鏡像層的層文件都包含了不同的信息,多個(gè)layer層共同組成鏡像文件[3]。當(dāng)宿主機(jī)上有多個(gè)鏡像文件時(shí),不同的鏡像文件可以共享相同的基礎(chǔ)鏡像層,如Centos、Nginx、MySQL等常用鏡像,當(dāng)需要修改鏡像時(shí),只需要修改上方疊加層的文件,基礎(chǔ)鏡像依然可以被繼承使用。對(duì)于容器而言,鏡像文件的安全性具有至關(guān)重要的影響。

2 鏡像安全威脅分析

2.1 鏡像CVE安全漏洞

由于目前各大公開(kāi)鏡像倉(cāng)庫(kù)存在眾多個(gè)人及廠商上傳的鏡像,類型多樣,來(lái)源復(fù)雜,缺乏統(tǒng)一有效的安全標(biāo)準(zhǔn),因此鏡像的安全性問(wèn)題成為了影響容器安全的首要問(wèn)題。不論是官方還是第三方鏡像倉(cāng)庫(kù),鏡像層中包含的基礎(chǔ)鏡像如Centos、Redis、Nginx等常用組件由于版本落后或缺少補(bǔ)丁等問(wèn)題,都可能存在CVE安全漏洞,造成安全風(fēng)險(xiǎn)[4]。一旦多個(gè)鏡像共享使用同一個(gè)有漏洞的基礎(chǔ)鏡像,安全風(fēng)險(xiǎn)將會(huì)進(jìn)一步擴(kuò)大。

安全廠商Federacy此前曾在現(xiàn)存的一百三十三個(gè)公開(kāi)鏡像倉(cāng)庫(kù)中抽選了九十一個(gè)公開(kāi)倉(cāng)庫(kù)進(jìn)行檢測(cè),根據(jù)報(bào)告顯示,其中24%的Docker鏡像包含中危及以上漏洞,高位漏洞占總漏洞比重高達(dá)11%[5]。具體鏡像漏洞率如圖1所示。

2.2 鏡像惡意程序

云原生技術(shù)的發(fā)展以及Docker容器化部署方式的普及,使得許多黑產(chǎn)從業(yè)者瞄準(zhǔn)了這一新興領(lǐng)域,通過(guò)制作并上傳包含Webshell、勒索病毒和挖礦病毒等問(wèn)題的鏡像至鏡像倉(cāng)庫(kù),對(duì)下載并運(yùn)行鏡像的單位造成安全威脅。同時(shí),如果鏡像制作者的本地開(kāi)發(fā)環(huán)境或引用的開(kāi)源代碼存在惡意腳本/病毒,也可能在打包鏡像過(guò)程中被無(wú)意帶入,使得使用者承受安全風(fēng)險(xiǎn)。

根據(jù)安全公司Kromtech發(fā)布的報(bào)告,有黑客將包含挖礦木馬的鏡像上傳至公開(kāi)鏡像倉(cāng)庫(kù),一旦用戶拉取并運(yùn)行鏡像將會(huì)在容器中生成Python反向Shell,并暴露挖掘程序,此事件造成了較大危害,其中涉及MySQL、tomcat等在內(nèi)的常用鏡像[6]。

2.3 鏡像歷史行為及敏感信息

由于鏡像通常是根據(jù)Dockerfile腳本進(jìn)行封裝或采用commit操作從現(xiàn)有容器直接創(chuàng)建鏡像,因此鏡像倉(cāng)庫(kù)中的鏡像可能包含了危險(xiǎn)的Dockefile腳本,或是帶有之前開(kāi)發(fā)者的可疑歷史操作等。用戶在拉取鏡像并運(yùn)行生成容器后,發(fā)布者的可疑歷史操作可能導(dǎo)致系統(tǒng)被執(zhí)行了不安全的命令,存在潛在安全風(fēng)險(xiǎn)。鏡像生成時(shí)的權(quán)限配置不當(dāng)、通用弱口令及原始環(huán)境敏感信息等的暴露也可能給鏡像用戶帶來(lái)配置層面上的安全威脅[7]。

2.4 鏡像篡改偽造

由于在生產(chǎn)環(huán)境中存在內(nèi)網(wǎng)橫向滲透導(dǎo)致宿主機(jī)失陷的問(wèn)題,可能造成宿主機(jī)上的鏡像文件被篡改偽造并隱匿運(yùn)行惡意腳本。同時(shí),容器與宿主機(jī)間共享內(nèi)核的機(jī)制和權(quán)限配置不當(dāng)?shù)葐?wèn)題也可能導(dǎo)致容器隔離性減弱,攻擊者可以獲取容器最高權(quán)限,實(shí)施容器逃逸,并篡改宿主機(jī)鏡像[8]。很多使用者在鏡像被拉取到本地進(jìn)行安全檢測(cè)后,在啟動(dòng)前往往不會(huì)進(jìn)行鏡像的二次可信校驗(yàn),一旦鏡像在本地存儲(chǔ)期間被中途植入惡意腳本并啟動(dòng)運(yùn)行,就將對(duì)內(nèi)網(wǎng)環(huán)境造成較大的安全危害。

3 監(jiān)測(cè)模型架構(gòu)

針對(duì)鏡像可能存在的安全問(wèn)題,監(jiān)測(cè)模型采用靜態(tài)掃描技術(shù)與可信度量技術(shù)相結(jié)合的方式,對(duì)用戶從遠(yuǎn)程拉取的鏡像進(jìn)行深層掃描和監(jiān)測(cè)。當(dāng)新鏡像到達(dá)本地后,一方面,針對(duì)新鏡像解壓并讀取分層信息,對(duì)其中的文件進(jìn)行掃描,將鏡像層文件中的軟件包與本地漏洞庫(kù)進(jìn)行比對(duì),找出其中存在的CVE安全漏洞,并采用病毒引擎與模糊哈希算法進(jìn)行惡意程序掃描。另一方面,將對(duì)鏡像的歷史操作做出分析,判斷其中存在的風(fēng)險(xiǎn)行為,以及鏡像層文件中存在的弱口令、證書(shū)密鑰等敏感信息并給出掃描報(bào)告。

同時(shí),監(jiān)測(cè)模型將采用改進(jìn)的哈希算法計(jì)算鏡像文件的哈希值并存入可信度量數(shù)據(jù)庫(kù)中,此后每次檢測(cè)到鏡像啟動(dòng)前,將對(duì)本地鏡像進(jìn)行可信度量,判斷原鏡像文件是否遭到非法篡改,并做出反饋。MDIS模型架構(gòu)如圖2所示。

4 MDIS模型主要模塊

4.1 鏡像CVE安全漏洞掃描

鏡像是由眾多Layer分層構(gòu)成的文件,當(dāng)用戶拉取鏡像到本地后,通過(guò)讀取其中的manifest文件可以獲取鏡像的Layer清單以及Layer層的digest,從而定位鏡像層文件的存儲(chǔ)地址,再通過(guò)解壓鏡像生成分層索引列表,并對(duì)Docker結(jié)構(gòu)文件進(jìn)行提取。

漏洞掃描模塊先根據(jù)各個(gè)Linux發(fā)行版本文件的路徑遍歷查找,探測(cè)基礎(chǔ)鏡像層的發(fā)行版本,如UbuntuPrecise系統(tǒng)版本文件路徑為/etc/lsb-release,Alpine系統(tǒng)版本文件路徑為/etc/Alpine/release,通過(guò)遍歷所有可能的系統(tǒng)版本文件路徑,查找到相應(yīng)版本文件則停止并記錄版本信息,再通過(guò)對(duì)應(yīng)版本的rootfs根文件系統(tǒng)默認(rèn)路徑查找并讀取相應(yīng)軟件包清單信息,如Centos的軟件包清單文件位于/var/lib/rpm/packages中,ubuntu及Debian的軟件包清單文件位于var/lib/dpkg/status,通過(guò)讀取對(duì)應(yīng)目錄下的文件得到相應(yīng)軟件包及版本號(hào),并將其與本地CVE漏洞庫(kù)比對(duì),得到命中的軟件包CVE安全漏洞,生成漏掃報(bào)告。

由于CVE漏洞庫(kù)是不斷更新的,漏洞掃描模塊將定期對(duì)掃描過(guò)的舊鏡像層再次掃描,以發(fā)現(xiàn)潛在的新漏洞。鑒于各單位進(jìn)行容器化部署的內(nèi)網(wǎng)環(huán)境不同,對(duì)安全漏洞的處理方式也不相同,因此允許設(shè)置漏洞白名單,對(duì)白名單中的CVE漏洞不進(jìn)行掃描,方便用戶根據(jù)需求個(gè)性化排查重點(diǎn)漏洞。鏡像CVE安全漏洞掃描流程如圖3所示。

4.2 鏡像惡意程序掃描

在漏洞掃描后,通過(guò)讀取鏡像層文件內(nèi)容,對(duì)Docker鏡像進(jìn)行進(jìn)一步的惡意程序掃描。由于攻擊者可能對(duì)惡意文件加殼,改變文件的編碼和哈希值,以逃避掃描引擎的檢測(cè),因此使用簡(jiǎn)單哈希散列算法進(jìn)行匹配無(wú)法準(zhǔn)確識(shí)別惡意文件,存在較大漏報(bào)概率。

惡意程序掃描模塊采用模糊哈希算法與病毒引擎分析兩種方式相結(jié)合來(lái)綜合評(píng)估鏡像文件的安全性,以提高識(shí)別準(zhǔn)確率。首先通過(guò)接口調(diào)用病毒引擎實(shí)現(xiàn)文件掃描,若檢測(cè)到惡意文件則向公開(kāi)病毒庫(kù)提取病毒樣本,再使用ssdeep對(duì)可疑文件進(jìn)行模糊哈希運(yùn)算并與病毒樣本文件的模糊哈希值進(jìn)行匹配,判斷是否屬于惡意文件[9]。之后會(huì)將兩種檢測(cè)方法的結(jié)果進(jìn)行比對(duì),若二者檢測(cè)結(jié)果一致判定為惡意程序,則向用戶做出提示。

4.3 鏡像歷史行為及敏感信息掃描

鏡像歷史行為及敏感信息掃描對(duì)于識(shí)別鏡像的安全性具有重要參考價(jià)值。由于多數(shù)鏡像是通過(guò)Dockerfile腳本生成的,Dockerfile中包含了大量開(kāi)發(fā)者構(gòu)建鏡像時(shí)所采用的鏡像操作指令如ADD、COPY以及啟動(dòng)容器所執(zhí)行的命令如CMD等[10],其中可能包含了可疑行為、不規(guī)范語(yǔ)句、權(quán)限配置不當(dāng)以及密碼泄露等問(wèn)題。

歷史行為及敏感信息掃描模塊在掃描時(shí)將采用docker image history命令調(diào)取生成鏡像的Dockerfile歷史操作,并傳輸至分析層,分析層采用hadolint 指令調(diào)用hadolint,并依據(jù)預(yù)定義規(guī)則集采用AST抽象語(yǔ)法樹(shù)解析Dockerfile文件,掃描RUN、COPY、CMD、ENTRYPOINT等常用執(zhí)行語(yǔ)句,以及RUN指令中的shell腳本,并輸出不規(guī)范語(yǔ)句和不安全指令等潛在風(fēng)險(xiǎn)行為及其風(fēng)險(xiǎn)等級(jí)。考慮到不同內(nèi)網(wǎng)環(huán)境的安全規(guī)范也不相同,使用者也可以根據(jù)需求配置yaml文件來(lái)忽略某條規(guī)則或降低其風(fēng)險(xiǎn)等級(jí)。

同時(shí),掃描模塊通過(guò)讀取layer層文件及Docker日志等內(nèi)容,采用正則表達(dá)式對(duì)關(guān)鍵字符串進(jìn)行匹配,包括password、secret、key、token、access等,以及證書(shū)格式文件包括后綴名為pfx、pem、key、jks等文件,分析是否存在敏感信息泄露問(wèn)題。具體實(shí)現(xiàn)過(guò)程中可以進(jìn)一步細(xì)化關(guān)鍵詞,形成規(guī)則庫(kù),如關(guān)鍵詞key可再細(xì)分為alicloud_access_key、amazon_secret_access_key、aos_key、api_key、cattle_access_key、cache_s3_secret_key等,以便于提供詳細(xì)報(bào)告。

4.4 鏡像可信度量

鏡像存儲(chǔ)過(guò)程中的篡改監(jiān)測(cè)是生產(chǎn)環(huán)境中很容易被忽視的一點(diǎn),可信度量能夠降低由于宿主機(jī)失陷而導(dǎo)致鏡像被篡改運(yùn)行的風(fēng)險(xiǎn)。以overlay2存儲(chǔ)驅(qū)動(dòng)為例,Docker鏡像的layer層元數(shù)據(jù)和layer層文件分別保存在docker/image/overlay2/layerdb和docker/overlay2/{cache-id}/diff中,當(dāng)用戶使用Pull、build等命令拉取或封裝鏡像后,將觸發(fā)可信度量動(dòng)作??尚哦攘磕K將對(duì)鏡像的layer層元數(shù)據(jù)以及l(fā)ayer層文件分別進(jìn)行一次SHA-384運(yùn)算,得到兩組度量值。此后對(duì)兩組度量值進(jìn)行拼接,再進(jìn)行一次SHA-384運(yùn)算,得到最終的可信度量值,存入數(shù)據(jù)庫(kù)。當(dāng)鏡像啟動(dòng)前,可信度量模塊會(huì)運(yùn)用相同算法對(duì)存儲(chǔ)在本地的鏡像文件進(jìn)行兩輪哈希散列值計(jì)算,讀取數(shù)據(jù)庫(kù)中的度量值與本地鏡像哈希散列值進(jìn)行校驗(yàn),若二者一致,則判斷鏡像完整,若二者不一致,將提示使用者鏡像被非法篡改??尚哦攘苛鞒倘鐖D4所示。

5 結(jié)束語(yǔ)

隨著容器化部署方式的廣泛普及,Docker鏡像也面臨著較大的安全挑戰(zhàn)。本文根據(jù)鏡像的分層機(jī)制和主要風(fēng)險(xiǎn),從鏡像的漏洞、惡意程序、歷史行為、敏感信息及存儲(chǔ)的可信度量等多個(gè)方面設(shè)計(jì)MDIS監(jiān)測(cè)模型,全方位地對(duì)鏡像進(jìn)行深層掃描及監(jiān)測(cè),兼顧原始鏡像安全和鏡像本地存儲(chǔ)安全環(huán)節(jié),提升鏡像安全監(jiān)測(cè)的全面性。隨著對(duì)Docker安全問(wèn)題研究的深入,安全監(jiān)測(cè)模型在容器進(jìn)程可信監(jiān)測(cè)、容器逃逸監(jiān)測(cè)等方面仍有很大的優(yōu)化和拓展空間。

參考文獻(xiàn)(References):

[1] 李俊灝.Docker安全性分析及安全防護(hù)[J].科技視界,2019

(20):240-241,201

[2] 丁攀,張小梅,郭新海,等.云原生中的容器技術(shù)及其安全配置

規(guī)范[J].信息通信技術(shù),2021,15(4):59-64

[3] 邢德奇,傅康平,李華夏.“云-邊”協(xié)同場(chǎng)景的Docker鏡像倉(cāng)

庫(kù)設(shè)計(jì)[J].電子技術(shù)與軟件工程,2022(3):1-4

[4] 邵思思,李奎,堯海昌,等.一種基于深度學(xué)習(xí)的Docker風(fēng)險(xiǎn)

預(yù)測(cè)方法研究[J].南京郵電大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,41(2):104-112

[5] James Sulinski. Docker image vulnerability research[J].

Federacy Research,2017,3(13):1-3

[6] 呂彬,徐國(guó)坤.Docker容器安全性分析與增強(qiáng)方案研究[J].

保密科學(xué)技術(shù),2021(1):15-22

[7] 王杰,巨漢基,杜躍,等.基于Docker容器行為分析的安全

隔離系統(tǒng)[J].浙江電力,2022,41(5):96-102

[8] 邊曼琳,王利明.云環(huán)境下Docker容器隔離脆弱性分析與

研究[J].信息網(wǎng)絡(luò)安全,2020,20(7):85-95

[9] 吳悠漾,孟祥兆,田穎.基于模糊哈希的惡意代碼檢測(cè)[J].

信息系統(tǒng)工程,2017(1):62

[10] 歐陽(yáng)桂秀.Dockerfile文件構(gòu)建云計(jì)算鏡像的研究[J].信息

記錄材料,2020,21(12):226-228

猜你喜歡
安全監(jiān)測(cè)
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)安全檢測(cè)與管理程序的設(shè)計(jì)實(shí)現(xiàn)研究
配電站運(yùn)行安全監(jiān)測(cè)系統(tǒng)研究
大壩安全監(jiān)測(cè)中傳感器的發(fā)展與應(yīng)用
大型多媒體網(wǎng)絡(luò)通信中的安全監(jiān)測(cè)平臺(tái)設(shè)計(jì)
光纖光柵傳感器在施工中的應(yīng)用
基于以太網(wǎng)的船用柴油機(jī)安全監(jiān)測(cè)系統(tǒng)研制
東方教育(2016年15期)2017-01-16 12:02:25
化工安全事故與企業(yè)內(nèi)部構(gòu)成的聯(lián)系的統(tǒng)計(jì)探究
淺談工程安全評(píng)價(jià)中引入安全監(jiān)測(cè)的現(xiàn)實(shí)意義
科技視界(2016年6期)2016-07-12 08:30:49
GPR在重慶禮讓隧道中的應(yīng)用
科技視界(2016年13期)2016-06-13 17:46:59
基于WSN的天然氣管道運(yùn)行狀態(tài)安全監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
明溪县| 牟定县| 兰考县| 观塘区| 福鼎市| 廉江市| 南漳县| 安达市| 公主岭市| 文化| 晋江市| 呼和浩特市| 卓资县| 雅江县| 湘西| 木里| 屏边| 威信县| 玉屏| 和政县| 陵川县| 安义县| 克山县| 安新县| 玉田县| 张家川| 沅陵县| 峡江县| 昌图县| 马龙县| 安丘市| 库尔勒市| 湖北省| 青岛市| 比如县| 三明市| 莫力| 德安县| 沾化县| 深圳市| 宁夏|