亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于深度學(xué)習(xí)的Docker風(fēng)險預(yù)測方法研究

        2021-05-28 09:16:48邵思思堯海昌楊衛(wèi)東劉尚東季一木
        關(guān)鍵詞:鏡像特征提取容器

        邵思思,李 奎,堯海昌,楊衛(wèi)東,尤 帥,劉 強,2,3,4,劉尚東,2,3,4,季一木,2,3,4

        (1.南京郵電大學(xué)計算機學(xué)院,江蘇 南京 210023 2.南京郵電大學(xué)江蘇省無線傳感網(wǎng)高技術(shù)研究重點實驗室,江蘇 南京 210023 3.南京郵電大學(xué)高性能計算與大數(shù)據(jù)處理研究所,江蘇 南京 210023 4.南京郵電大學(xué)高性能計算與智能處理工程研究中心,江蘇 南京 210023)

        近幾年,云計算作為一種新型的計算形式快速地發(fā)展起來,它是以虛擬化機制為核心,以Internet為載體,以規(guī)模的計算、存儲和數(shù)據(jù)資源組成的信息資源池為支撐,按照用戶需求動態(tài)地提供虛擬化、可伸縮的信息服務(wù)[1]。 在早期計算領(lǐng)域中[2],虛擬機(VM)是云計算環(huán)境中的常用資源。對于云服務(wù)提供商,虛擬機有助于提高硬件資源的利用率。對于云客戶,它支持提供彈性資源并提供一系列服務(wù)集合。 但隨著Docker技術(shù)[3-4]的發(fā)展,傳統(tǒng)部署帶來的問題越來越嚴(yán)重,因為多個應(yīng)用對運行環(huán)境的要求不同,導(dǎo)致應(yīng)用部署產(chǎn)生了很多麻煩[5-7]。 由傳統(tǒng)虛擬機集群為基礎(chǔ)的云計算集群逐漸轉(zhuǎn)變?yōu)橐訢ocker物理節(jié)點為集群的方式。Docker是一種輕量級、可移植、自包含的軟件打包技術(shù),使應(yīng)用程序可以幾乎在任何地方以相同的方式運行[8]。Docker采用客戶端/服務(wù)器(C/S)的架構(gòu)模式,客戶端向服務(wù)器發(fā)送請求,服務(wù)器負(fù)責(zé)構(gòu)建、運行和分發(fā)容器。

        隨著Docker應(yīng)用的規(guī)模越來越大,領(lǐng)域越來越廣泛,人們越來越關(guān)注容器安全方面的問題[9-12]。這不僅僅是一個技術(shù)性問題,更是一種意識性問題。Docker目前已經(jīng)在安全方面做了一定的工作,包括Docker daemon在以TCP形式提供服務(wù)的同時使用傳輸層安全協(xié)議;在構(gòu)建和使用鏡像時驗證鏡像的簽名證書;通過cgroups及namespaces對容器進行資源限制隔離;提供自定義容器能力(capability)的接口等。如果合理地應(yīng)用上述方法,可以有效提高Docker容器的安全性。國內(nèi)已經(jīng)有很多關(guān)于容器安全方面的工作,但主要還是分布在如何從底層提升Docker安全性而忽略了 Docker鏡像這一環(huán)節(jié)[13]。惡意用戶可以嘗試在Dockerfile文件中添加惡意命令,如反彈shell或引入存在漏洞的應(yīng)用等造成Dockerfile攻擊。文獻(xiàn)[14]系統(tǒng)分析了 Docker Hub上的30萬個鏡像,發(fā)現(xiàn)平均每個鏡像有180個漏洞,大多數(shù)鏡像不會修復(fù)這些漏洞并且父鏡像會向子鏡像傳播這些漏洞。文獻(xiàn)[15]分析了全球133個公開Docker倉庫中最大的91個倉庫,用Clair掃描倉庫中的鏡像,其中存在明顯漏洞的占24%,高風(fēng)險等級的漏洞占11%。Clair是目前最流行的鏡像掃描工具,主要模塊分為Detector、Fetcher、Notifier和Webhook,Clair首先對鏡像進行掃描,然后再將這些特征匹配CVE漏洞庫,若發(fā)現(xiàn)漏洞則進行提示及修補。但是Clair只能對Docker鏡像進行檢測,無法檢測Dockerfile文件,從源頭控制風(fēng)險也無法提前檢測可能存在的安全風(fēng)險。

        因此,針對如何有效提高Docker鏡像的安全,從源頭控制風(fēng)險,提前檢測Docker鏡像可能存在的漏洞,從而進一步提高Docker容器的安全問題,本文提出了一種基于深度學(xué)習(xí)的Docker風(fēng)險預(yù)測框架和算法,本文主要有以下兩方面貢獻(xiàn):

        (1)提出了一種基于深度學(xué)習(xí)的Docker特征提取風(fēng)險預(yù)測框架。該框架從鏡像的源頭對Docker進行風(fēng)險控制??梢詼?zhǔn)確預(yù)測Dockerfile的風(fēng)險性,減少Docker鏡像的漏洞。

        (2)提出了一種基于深度學(xué)習(xí)的Docker風(fēng)險預(yù)測(DRPA)算法,該算法利用深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)對訓(xùn)練數(shù)據(jù)集中的Dockerfile文件進行語義和結(jié)構(gòu)特征的提取以及概率預(yù)測,將待檢測的Dockerfile文件輸入到訓(xùn)練好的網(wǎng)絡(luò)模型中進行預(yù)測,判斷其是否具備風(fēng)險,并返回其風(fēng)險概率。結(jié)合容器集群放置方法,從而進一步保證了容器的安全。

        1 相關(guān)工作

        目前Docker安全的保證主要依賴于3種Linux內(nèi)核安全機制:namespace負(fù)責(zé)構(gòu)建資源隔離環(huán)境,確保Docker容器有更嚴(yán)格的安全性機制;cgroups主要確保每個容器可以獲得公平的系統(tǒng)資源;capability用于增強容器控件內(nèi)的權(quán)限,從而隔離容器內(nèi)外之間的根權(quán)限。加強Linux容器安全性的最有效方法是在內(nèi)核級強制執(zhí)行強制訪問控制(MAC),以防止在主機和容器端進行不必要的操作,使用的工具包括 AppArmor[16]或 SELinux[17]。文獻(xiàn)[18]針對Docker平臺上的Dos攻擊,提出了一種安全策略和實驗方法,加強訪問控制、身份驗證和授權(quán)解決以應(yīng)對Dos攻擊。文獻(xiàn)[19]提出了一種為不同的容器化進程引入特定SELinux類型且對用戶透明的方式,在主機中安裝DockerPolicyModules(DPM)模塊,避免Docker鏡像在主機系統(tǒng)中安裝SELinux模塊時出現(xiàn)威脅,從而提高Docker的安全性。文獻(xiàn)[20]提出了一種通過執(zhí)行訪問策略來保護Docker容器的整個生命周期的用戶友好機制,該機制為每個容器自動創(chuàng)建AppArmor配置文件,在Docker的安全默認(rèn)值之上增加了一個額外的安全層;此外,給定應(yīng)用程序工作負(fù)載,通過生成動態(tài)安全配置文件來增強Docker容器安全性。文獻(xiàn)[21]認(rèn)為內(nèi)核漏洞是操作系統(tǒng)安全面臨的最大威脅之一,因此提出了一種基于名稱空間狀態(tài)檢測的防御方法,該方法能夠檢測異常過程并防止逃逸行為,確保容器在運行期間受到保護和監(jiān)視。以上研究工作都是集中于如何從底層提升Docker安全性,在一定方面有效地提高了Docker容器的安全性,但這些研究工作都忽略了Docker鏡像在Docker安全中的重要性。為了保證鏡像安全,Docker Hub在最近發(fā)布的Docker數(shù)據(jù)中心中提出了一個簽名機制,他們構(gòu)建了一個基于更新框架(TUF)和Docker內(nèi)容信任(DCT)的簽名基礎(chǔ)結(jié)構(gòu),允許管理員設(shè)置簽名策略,防止使用不受信任的內(nèi)容。文獻(xiàn)[13]針對Docker存在的容器及鏡像被篡改問題,構(gòu)造了一條利用可信計算相關(guān)技術(shù)的信任鏈,設(shè)計了一種分層式數(shù)據(jù)安全防護系統(tǒng),以提高對Docker鏡像的全方面安全防護。雖然這些方法在一定程度上有效地提高了Docker鏡像運行的安全性,但卻沒有對Docker鏡像本身進行安全加固,也無法提前檢測Docker鏡像可能存在的安全風(fēng)險。

        目前已經(jīng)有很多機器學(xué)習(xí)算法被用于文本特征提取,利用深度學(xué)習(xí)對文本進行特征提取也得到越來越多的應(yīng)用,常用于自然語言處理的問題。文獻(xiàn)[22-23]分別提出了一種基于深度信任網(wǎng)絡(luò)(DBN)進行軟件缺陷預(yù)測的方法和一種通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)進行軟件缺陷預(yù)測的框架,通過對程序源碼提取特征與傳統(tǒng)方式相結(jié)合的方式來預(yù)測程序是否存在錯誤,大大降低了軟件缺陷中的錯誤率。因而利用深度學(xué)習(xí)算法從Dockerfile文件中提取特征并預(yù)測概率成為可能。

        綜上所述,已有的Docker安全加固方法雖然在一定程度上保證了Docker容器的安全可靠運行,但卻無法從源頭控制風(fēng)險,降低Docker鏡像的漏洞,從而進一步確保Docker容器的安全。

        2 DRPA框架設(shè)計

        基于深度學(xué)習(xí)的Docker風(fēng)險預(yù)測框架如圖1所示。

        圖1 基于深度學(xué)習(xí)的Docker風(fēng)險預(yù)測框架

        該框架主要包括4個模塊:數(shù)據(jù)預(yù)處理模塊、文件檢測模塊、鏡像放置模塊和容器集群模塊。數(shù)據(jù)預(yù)處理模塊根據(jù)訓(xùn)練集對Dockerfile文件進行語義和結(jié)構(gòu)的特征提取并預(yù)測其風(fēng)險概率;文件檢測模塊利用訓(xùn)練好的網(wǎng)絡(luò)模型對待檢測的Dockerfile文件進行預(yù)測是否具有風(fēng)險并評估風(fēng)險等級,然后由用戶決定是否放置到容器集群中;容器集群模塊根據(jù)文件檢測模塊的結(jié)果決定放置方式,對Docker鏡像進行放置。

        基于深度學(xué)習(xí)的Docker風(fēng)險預(yù)測框架各模塊的具體步驟如下:(1)數(shù)據(jù)預(yù)處理模塊。首先對Dockerfile文件進行解析,生成抽象語義樹,并從中生成Token向量,進一步對向量標(biāo)準(zhǔn)化,將結(jié)果輸入深度學(xué)習(xí)網(wǎng)絡(luò)中,從而得到Dockerfile文件的語義特征和結(jié)構(gòu)特征,并得到Dockerfile文件風(fēng)險特征概率。(2)文件檢測模塊。當(dāng)待檢測的Dockerfile文件進入后,首先通過步驟(1)訓(xùn)練好的網(wǎng)絡(luò)模型,提取到Dockerfile文件語義和結(jié)構(gòu)特征,然后通過模型進行預(yù)測其是否具備風(fēng)險,并返回其風(fēng)險概率。(3)如果該Dockerfile文件被標(biāo)記為具有風(fēng)險,則進行提示并決定是否放置,如果不放置則進行風(fēng)險處理,否則使用風(fēng)險控制放置算法將由Dockerfile文件生成的鏡像放置到集群中,如果Dockerfile文件被標(biāo)記為無風(fēng)險,則通過容器集群進行負(fù)載均衡放置。(4)容器集群。容器集群負(fù)責(zé)鏡像的接收和處理,決定使用基于風(fēng)險控制的放置算法或者負(fù)載均衡對鏡像進行放置,容器集群為容器安全檢測的處理對象。

        3 基于深度學(xué)習(xí)的Docker風(fēng)險預(yù)測(DRPA)算法

        本節(jié)主要分為風(fēng)險預(yù)測算法的模型構(gòu)建和Dockerfile文件的風(fēng)險預(yù)測兩個部分,其中風(fēng)險預(yù)測的模型訓(xùn)練是利用CNN?FPN深度學(xué)習(xí)模型提取Dockerfile文件的語義和結(jié)構(gòu)特征并進行風(fēng)險概率預(yù)測;Dockerfile文件的風(fēng)險預(yù)測是利用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型對Dockerfile文件進行分類預(yù)測,然后結(jié)合容器集群放置方法將Docker鏡像放置到集群中。

        3.1 基于CNN?FPN網(wǎng)絡(luò)的Dockerfile風(fēng)險預(yù)測算法模型構(gòu)建

        抽象語法樹(AST)是一種以樹的形式充分體現(xiàn)代碼語法和語義結(jié)構(gòu)的抽象表示[22]。樹上的每個節(jié)點都是代碼中的一種結(jié)構(gòu)。在Dockerfile文件中,局部的微小差別就可能導(dǎo)致巨大差異,甚至存在巨大漏洞。深度學(xué)習(xí)架構(gòu)可以有效地捕獲復(fù)雜性高的非線性特征。利用深度神經(jīng)網(wǎng)絡(luò)可以從Dockerfile文件的AST中提取Token向量并從中學(xué)習(xí)語義和結(jié)構(gòu)特征。卷積神經(jīng)網(wǎng)絡(luò)(CNN)可以更好地捕獲局部的差異,因此 CNN能夠更好地檢測局部模式[23]。CNN已經(jīng)被充分地證明適應(yīng)于圖像分類、自然語言處理等領(lǐng)域,近些年常被用于文本的分類,對于英語文本數(shù)據(jù)的分類有很好的效果,在大部分的數(shù)據(jù)集上的分類準(zhǔn)確性都超過了傳統(tǒng)的SVM等模型。CNN的稀疏連通性和共享權(quán)重兩個關(guān)鍵特征可以幫助更好地從Dockerfile文件中獲取到其語義和結(jié)構(gòu)特征。但通常情況下CNN網(wǎng)絡(luò)結(jié)構(gòu)中對應(yīng)的stride一般比較大,會忽略待檢測文件中小物體的檢測,導(dǎo)致小物體檢測性能急劇下降。因此引入特征金字塔網(wǎng)絡(luò)(FPN),解決檢測中的多尺度問題,通過對CNN網(wǎng)絡(luò)進行簡單的網(wǎng)絡(luò)連接改變,在不增加原有模型計算量的情況下,通過對高層網(wǎng)絡(luò)特征進行上采樣和低層網(wǎng)絡(luò)特征進行自頂向下的連接及每一層都進行預(yù)測的方法,提升小物體的檢測性能。由此可見,F(xiàn)PN可以在CNN網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上進一步獲取更加準(zhǔn)確的Dockerfile文件語義和結(jié)構(gòu)特征,從而提升檢測的準(zhǔn)確率。

        基于CNN?FPN網(wǎng)絡(luò)的Dockerfile文件風(fēng)險預(yù)測算法首先需要將Dockerfile文件解析為AST,然后選擇AST上關(guān)鍵節(jié)點形成Token向量,由于CNN?FPN的輸入形式是整數(shù)向量,進一步對Token向量進行統(tǒng)一標(biāo)準(zhǔn)化,將其轉(zhuǎn)化為整數(shù)向量,最后將整數(shù)向量輸入到CNN?FPN中。CNN?FPN會根據(jù)輸入的向量自動生成Dockerfile文件的語義和結(jié)構(gòu)特征?;贑NN?FPN網(wǎng)絡(luò)的Dockerfile文件風(fēng)險預(yù)測工作流程如圖2所示。

        圖2 基于CNN?FPN網(wǎng)絡(luò)的Dockerfile文件風(fēng)險預(yù)測工作流程

        解析Dockerfile文件:為了CNN?FPN網(wǎng)絡(luò)結(jié)構(gòu)能夠有效地捕獲復(fù)雜性高的非線性特征,首先對Dockerfile文件中的信息進行篩選,以區(qū)別重要的語義和結(jié)構(gòu)信息。為了將每個Dockerfile文件表示為向量,只有AST上的節(jié)點才是構(gòu)建Dockerfile文件表示的合適粒度,既保留了語法信息又保留了結(jié)構(gòu)信息。選擇 Dockerfile文件中重要指令集包括FROM、RUN、CMD、apt?get等和控制流節(jié)點如 if、for等作為Token向量。排除不屬于以上類別的AST節(jié)點,因為添加它們可能會減弱其他節(jié)點的重要性。通過上述操作,將每個Dockerfile文件轉(zhuǎn)換為Token向量。如圖3所示,是一個簡單的Dockerfile文件。其 Token向量為{[FROM][MAINTAINER][RUN][echo][RUN][apt?get][RUN][echo][CMD]}。

        圖3 Dockerfile文件

        Token向量標(biāo)準(zhǔn)化:由于CNN需要數(shù)值向量形式作為輸入,并且輸入向量長度必須相同。所以提取的Token向量無法直接作為CNN的輸入。為了解決此問題,首先在Token向量和整數(shù)之間進行映射,對Token向量進行標(biāo)準(zhǔn)化,將Token向量編碼為整數(shù)向量。每個Token向量對應(yīng)唯一的整數(shù)標(biāo)識符,即不同的指令或控制流節(jié)點對應(yīng)不同的整數(shù)標(biāo)識符,整數(shù)標(biāo)識符從1開始至Token向量類型的總數(shù)結(jié)束。由于不同的Dockerfile文件內(nèi)容不同,所以提取到的Token向量長度不同,向量進一步標(biāo)準(zhǔn)化后得到的整數(shù)向量長度不同,因此在每個整數(shù)向量后添加0作為補充,使它們的長度與最長向量一致。圖3的Dockerfile文件對應(yīng)的整數(shù)向量為{[1][2][3][4][3][5][3][4][6]}。 通過此方法得到的整數(shù)向量可以輸入CNN模型并且保持了原有Token向量順序不變,保留了原本的結(jié)構(gòu)信息。

        建立 CNN?FPN網(wǎng)絡(luò)模型:要區(qū)分安全的Dockerfile文件和存在安全漏洞的Dockerfile文件的語義和結(jié)構(gòu)特征,首先需要訓(xùn)練數(shù)據(jù)來構(gòu)建CNN?FPN模型輸出其特征,即訓(xùn)練CNN?FPN中的權(quán)重和偏差。CNN?FPN訓(xùn)練分為“自底向上”過程和“自上而下”過程,其中“自底向上”過程是指神經(jīng)網(wǎng)絡(luò)普通的正向傳播,特征圖經(jīng)過卷積核和最大池化操作不斷縮小;“自上而下”過程是對高層網(wǎng)絡(luò)的特征圖進行上采樣操作,然后將上采樣得到的特征橫向連接上一層空間大小相同的特征圖并進行預(yù)測,這樣一方面加強了高層特征,另一方面每一層的預(yù)測都融合了不同分辨率,可以完成不同大小分辨率的檢測,保證每一層都有合適的強語義和結(jié)構(gòu)特征。

        網(wǎng)絡(luò)模型使用Inception Net網(wǎng)絡(luò)結(jié)構(gòu),一層可能會有多個尺寸的卷積核,在同一個位置但在不同通道的卷積核輸出結(jié)果相關(guān)性極高。在同一個空間位置,不同通道的特征結(jié)合起來。而不同尺寸的卷積核可以保證特征的多樣性。使用Word2vec詞嵌入作為第一層,它將整數(shù)轉(zhuǎn)換為固定大小的實值向量。簡單索引不會攜帶太多有關(guān)從AST中提取的Token向量的上下文信息。詞嵌入根據(jù)每個Token向量的上下文進行訓(xùn)練,每個Token都要學(xué)習(xí)一個特征向量,并且出現(xiàn)在相似上下文中的令牌往往由相似的向量表示,這些向量表示在特征空間中的距離很近。CNN?FPN特征提取過程如圖4所示。

        圖4 CNN?FPN網(wǎng)絡(luò)風(fēng)險預(yù)測過程

        假設(shè)CNN?FPN網(wǎng)絡(luò)輸入的是矩陣A,經(jīng)過F1個卷積核(i=1,2,…,F(xiàn)1)的卷積生成F1個特征圖,其中 conv2(A,B′,valid′)被稱作窄卷積,為該層的激活函數(shù)。

        接著,進入最大池層進行池化操作,由于池化又稱下采樣,所以用S=βdown(C)+b表示。

        然后,對特征圖進行上采樣操作,此處使用最鄰近元法,將距離待求點最近的臨像素灰度賦予待求點。將上采樣得到的特征圖與上一層空間大小相同的特征圖進行橫向連接。

        重復(fù)上述操作,直到進入全連接層,將最后得到的順序展開成向量,有序連接成一個長向量,作為全連接層的輸入。

        為了讓神經(jīng)網(wǎng)絡(luò)具有非線性的擬合能力,在每一層的輸出后面都添加一個激活函數(shù),其中輸出層使用Sigmoid激活函數(shù),見式(5),其余層使用ReLU激活函數(shù),見式(6)。使用反向傳播與梯度下降優(yōu)化調(diào)整CNN?FPN網(wǎng)絡(luò)中的參數(shù)。通過Keras快速地構(gòu)建神經(jīng)網(wǎng)絡(luò)。得到CNN?FPN網(wǎng)絡(luò)后,將測試數(shù)據(jù)向量化后的整數(shù)向量輸入到CNN?FPN網(wǎng)絡(luò)中,然后CNN?FPN的輸出層獲得測試文件的存在安全風(fēng)險概率。

        3.2 基于Dockerfile文件的風(fēng)險預(yù)測

        預(yù)測主要分為兩部分:待檢測Dockerfile文件輸入到訓(xùn)練好的網(wǎng)絡(luò)模型中預(yù)測的風(fēng)險概率;根據(jù)風(fēng)險概率將Dockerfile文件通過不同的方式放置到集群中。具體來說,首先將測試數(shù)據(jù)集中的Dockerfile文件輸入到訓(xùn)練好的CNN?FPN網(wǎng)絡(luò)模型中進行風(fēng)險預(yù)測并返回風(fēng)險概率,如果該Dockerfile文件不存在風(fēng)險或風(fēng)險概率極低,生成Docker鏡像后可以通過負(fù)載均衡放置到集群中,如果該Dockerfile文件風(fēng)險概率較高,會進行風(fēng)險提示。如果用戶決定不放置,則進行風(fēng)險處理,否則通過一定的風(fēng)險控制放置算法改進Docker集群分配策略,從而使具有風(fēng)險的容器難以與安全容器共同定位,提高容器集群整體的安全性。

        Dockerfile文件風(fēng)險預(yù)測:首先通過上述的特征提取方法對待檢測的Dockerfile文件進行處理,將其解析為AST樹,提取其Token向量并進行向量標(biāo)準(zhǔn)化;然后將處理后的向量輸入到構(gòu)建好的CNN?FPN網(wǎng)絡(luò),CNN?FPN網(wǎng)絡(luò)經(jīng)過內(nèi)部計算會返回用戶該Dockerfile文件是否存在風(fēng)險及其概率,并提示用戶進行風(fēng)險處理。

        風(fēng)險控制放置:當(dāng)待檢測的Dockerfile文件通過CNN?FPN網(wǎng)絡(luò),判斷其是否具備風(fēng)險并輸出其風(fēng)險概率后,如果Dockertfile文件不存在風(fēng)險或風(fēng)險較小,集群會通過負(fù)載均衡將容器放入。如果Dockerfile文件風(fēng)險較大,會進行風(fēng)險提示,并且如果決定對鏡像進行放置,則會通過一定風(fēng)險控制放置(PSSF)算法放入到集群中,該風(fēng)險控制放置算法[24-25]定量描述了集群安全性、工作負(fù)載、能耗之間的關(guān)系,如式(7)所示,不僅大大降低了存在風(fēng)險的容器與其他安全容器共存的可能性,而且可以滿足工作負(fù)載平衡和能耗方面的限制。

        其中,S表示安全性,W′表示工作負(fù)載,P表示能耗。在K個主機H={h1,h2,…,hK}的云計算系統(tǒng)中,M個用戶U={u1,u2,…,uM},啟動N個容器D={d1,d2,…,dN}。如果將每個用戶的容器分配到特定的主機上,XD×H×U-{xd,h,u|xd,h,u-1,if Dockerdof useruis allocated to hosth}。N?和K?為預(yù)先確定的閾值。

        4 實驗

        4.1 實驗環(huán)境

        1臺基于x86平臺的物理服務(wù)器,配置參數(shù)為Intel Core i7 CPU 3.7 GHz、32 GB內(nèi)存以及千兆網(wǎng)卡;在該物理服務(wù)器上采用VMware Workstation Pro進行虛擬化,共虛擬出3臺主機,具體配置和功能如表1所示。

        表1 虛擬機配置和功能

        為了保證數(shù)據(jù)的客觀性,本實驗用爬蟲從GitHub上采集了3 183個Dockerfile文件,經(jīng)過初步排重,共計有效Dockerfile文件2 706個,包含不同類型和版本的Dockerfile文件。本實驗采用手動標(biāo)注數(shù)據(jù)的方式,將數(shù)據(jù)集分為存在風(fēng)險和不存在風(fēng)險兩類,其中存在風(fēng)險的Dockerfile文件有902個,不存在風(fēng)險的Dockerfile文件有1 804個。在此基礎(chǔ)上,隨機抽取80%的數(shù)據(jù)作為訓(xùn)練集,剩余的20%作為測試集。

        4.2 評估指標(biāo)

        為了評價預(yù)測的準(zhǔn)確率,使用了在分類問題中采用的重要評價指標(biāo):精準(zhǔn)率(Precision,P)、召回率(Recall,R)、F 值(F?measure,F(xiàn))。 首先定義有關(guān)精準(zhǔn)率、召回率和F值的相關(guān)參數(shù)。Nr→r代表將存在風(fēng)險的Dockerfile文件正確預(yù)測為存在風(fēng)險的數(shù)量;Nr→s代表將存在風(fēng)險的Dockerfile文件錯誤預(yù)測為安全的數(shù)量;Ns→r代表將安全的Dockerfile文件錯誤預(yù)測為存在風(fēng)險的數(shù)量。

        精準(zhǔn)率:正確分類為存在風(fēng)險的Dockerfile文件數(shù)量與分類為存在風(fēng)險的Dockerfile文件數(shù)量的比。

        召回率:正確分類為存在風(fēng)險的Dockerfile文件數(shù)量與真正存在風(fēng)險的Dockerfile文件數(shù)量的比。

        F值:F值是精確率和召回率的調(diào)和平均值。

        4.3 實驗分析

        主要從兩個方面來驗證實驗,一方面驗證本文中所使用算法的可行性和有效性。另一方面通過在不同的特征提取方法下比較本文所使用的算法與傳統(tǒng)機器學(xué)習(xí)算法的優(yōu)劣情況,通過精確率、召回率和F值的變化來驗證本文使用算法的優(yōu)越性。

        4.3.1 DRPA算法可行性和有效性實驗

        本實驗的目的是驗證DRPA算法中對Dockerfile文件風(fēng)險預(yù)測的可行性和有效性。實驗結(jié)果分別如圖5、圖6所示。通過計算量FLOPs和參數(shù)量params來衡量本文給出方法的時間效率和空間復(fù)雜度。一般情況下,更深的網(wǎng)絡(luò)有更大的計算量,并且數(shù)據(jù)越多,計算時間越長。Inception Net相比于其他的一些網(wǎng)絡(luò)結(jié)構(gòu)來說,在同樣參數(shù)量的情況下更有效率。不同組之間的特征不進行交叉計算,減少了計算量。通常卷積層的參數(shù)數(shù)目為:KW?Kh?Ci?CO,其中,KW和Kh分別為卷積核的長寬,Ci和CO分別為輸入和輸出通道數(shù);全連接層的參數(shù)數(shù)目為Ci?CO。根據(jù)本文中使用的CNN?FPN網(wǎng)絡(luò)結(jié)構(gòu),對參數(shù)量進行計算結(jié)果為:1 653.7×103。對比相同深度的普通結(jié)構(gòu)的參數(shù)量減少30%左右。在Inception Net網(wǎng)絡(luò)中卷積層的計算量為((KW?Kh)?Ci)?((Ow?Oh)?CO),其中Ow和Oh分別為輸出的長和寬。根據(jù)對本文中使用的CNN?FPN網(wǎng)絡(luò)結(jié)構(gòu),對計算量進行計算結(jié)果為:827×106。最后,針對本文所提出的DRPA算法進行多次測量并取平均,預(yù)測時間為0.174 s。

        根據(jù)Dockerfile文件的大小,本算法中使用L2損失函數(shù),其對較大誤差的懲罰力度更大,對較小誤差更為容忍。圖5描述了隨著DRPA算法迭代次數(shù)的增加,損失函數(shù)呈下降趨勢,最后降至0.8左右;從圖6中可以看出,隨著迭代次數(shù)的不斷增加,DRPA算法的準(zhǔn)確度呈上升趨勢,達(dá)到0.82左右??梢钥闯?,隨著DRPA算法不斷地訓(xùn)練,模型在不斷地優(yōu)化,輸出結(jié)果與真實結(jié)果之間的差異越小,預(yù)測準(zhǔn)確率也越高。

        圖5 DRPA算法的損失函數(shù)圖

        圖6 DRPA算法的預(yù)測準(zhǔn)確度圖

        4.3.2 不同特征提取方法下不同算法的對比實驗

        將本文所使用的算法與傳統(tǒng)機器學(xué)習(xí)算法支持向量機(SVM)和傳統(tǒng)CNN網(wǎng)絡(luò)進行比較。并在不同的特征提取方法下對比精準(zhǔn)率、召回率和F值的變化,其中本文所使用算法的特征提取工具為Word2vec,即方案 A為對比的基準(zhǔn)算法,如表 2所示。

        表2 不同特征提取方法下不同算法的對比

        在特征提取方法方面,通過比較方案A、方案D或方案B、方案E或方案C、方案F可以看出,無論使用何種分類器,Word2vec方法都要優(yōu)于TF?IDF方法。在分類器方面,通過前3組的數(shù)據(jù)或后3組的數(shù)據(jù)可知在特征提取方法相同的情況下,本文所使用的 CNN+FPN算法要優(yōu)于傳統(tǒng)的CNN算法和SVM算法。

        5 結(jié)束語

        文中提供了提高Dokcer安全性的新視角。提出了一種基于深度學(xué)習(xí)的Docker特征提取風(fēng)險預(yù)測框架,針對Dockerfile文件的安全性這一問題,從源頭進一步控制風(fēng)險,減少了Docker鏡像的漏洞,保證了容器和容器集群的安全。同時,本文提出一種基于深度學(xué)習(xí)的Docker風(fēng)險特征提?。―RPA)算法,該算法利用CNN?FPN網(wǎng)絡(luò)提取Dockerfile文件的語義和結(jié)構(gòu)特征,并判斷其是否存在風(fēng)險及風(fēng)險概率,得到風(fēng)險概率后根據(jù)用戶需求進行下一步工作。通過實驗可以看出,該算法針對Dockerfile文件是否存在風(fēng)險的預(yù)測正確率達(dá)82%。但是還有一些工作可以在后續(xù)繼續(xù)展開,具體如下:

        (1)本文使用的數(shù)據(jù)集將Dockerfile文件分為存在風(fēng)險和不存在風(fēng)險兩種標(biāo)記,在后續(xù)工作中,可以繼續(xù)細(xì)分存在風(fēng)險的Dockerfile文件的類型,標(biāo)記為多分類。

        (2)目前使用的數(shù)據(jù)集為手工標(biāo)記,還存在雜亂等問題,在后續(xù)工作中,對數(shù)據(jù)集進行進一步地清洗。

        (3)在本文提出的框架上進一步完善,將預(yù)測式和響應(yīng)式相結(jié)合。

        猜你喜歡
        鏡像特征提取容器
        Different Containers不同的容器
        鏡像
        難以置信的事情
        基于Daubechies(dbN)的飛行器音頻特征提取
        電子制作(2018年19期)2018-11-14 02:37:08
        鏡像
        小康(2018年23期)2018-08-23 06:18:52
        Bagging RCSP腦電特征提取算法
        取米
        鏡像
        小康(2015年4期)2015-03-31 14:57:40
        鏡像
        小康(2015年6期)2015-03-26 14:44:27
        基于MED和循環(huán)域解調(diào)的多故障特征提取
        免费看黄在线永久观看| 特黄a级毛片免费视频| 欧美日韩在线观看免费| 久天啪天天久久99久孕妇| 国产福利不卡视频在线| 无码人妻精品一区二区三区东京热| 国产成人午夜精华液| 91视频爱爱| 久久免费看视频少妇高潮| 国产成人综合久久久久久| 亚洲一区二区三区无码国产 | 国产精品爆乳在线播放| 亚洲av一区二区三区网站| 99久久精品在线视频| 少妇太爽了在线观看免费视频| 午夜性刺激免费视频| 人妻熟女妇av北条麻记三级| 美腿丝袜在线一区二区| 国产精品一区二区无线| 小12箩利洗澡无码视频网站| 日本激情一区二区三区| 日本a级片免费网站观看| 亚洲av成人无码网站大全| 亚洲欧美性另类春色| 国产二区中文字幕在线观看| 亚洲va韩国va欧美va| 激情欧美日韩一区二区| 人人妻人人澡av| 91九色最新国产在线观看| 久久99精品国产麻豆不卡| 日韩成人精品在线| 日本在线一区二区在线| 狠狠色丁香婷婷综合潮喷| 亚洲欧美日韩综合久久久| 无码精品一区二区三区免费16| 精品一级一片内射播放| 欧美黑人群一交| 欧美成人www免费全部网站| 午夜国产精品一区二区三区| 18国产精品白浆在线观看免费 | 天天鲁在视频在线观看|