鬼佬大哥大
  • / 15
  • 下載費用:30 金幣  

一種基于DOCKER的可信容器安全加固方法.pdf

摘要
申請專利號:

CN201510488809.8

申請日:

2015.08.11

公開號:

CN105069353A

公開日:

2015.11.18

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 21/55申請日:20150811|||公開
IPC分類號: G06F21/55(2013.01)I 主分類號: G06F21/55
申請人: 武漢大學
發明人: 王鵑; 張雨菡; 于鵬; 陳銅; 李雅蘋
地址: 430072湖北省武漢市武昌區珞珈山武漢大學
優先權:
專利代理機構: 武漢科皓知識產權代理事務所(特殊普通合伙)42222 代理人: 薛玲
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510488809.8

授權公告號:

||||||

法律狀態公告日:

2017.10.24|||2015.12.16|||2015.11.18

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明公開了一種基于Docker的可信容器安全加固方法,用于對Docker容器系統進行安全增強,實現基于Docker的可信容器,應用于基于Docker的服務器集群中;該基于Docker的可信容器包含容器程序Docker、容器可信度量模塊、進程監控模塊和網絡通信監控模塊,其中容器可信度量模塊包括可信啟動子模塊與文件度量子模塊;本發明重點關注Docker容器的可信性,利用可信計算、完整性度量技術,配合實時監控模塊對基于Docker的容器系統進行加固,保護容器及鏡像不被篡改,同時限制容器的網絡通信行為并監控容器內部進程,從而實現一個安全加強的可信容器。

權利要求書

1.一種基于Docker的可信容器安全加固方法,用于對Docker容器系統進行安全增強,實現基于Docker的可信容器,應用于基于Docker的服務器集群中;該基于Docker的可信容器包含容器程序Docker、容器可信度量模塊、進程監控模塊和網絡通信監控模塊,其中容器可信度量模塊包括可信啟動子模塊與文件度量子模塊;其中Docker為容器程序主體,用于對各個進程監控模塊的調用以及對容器鏡像的可信度量,可信啟動子模塊用于實現鏡像的完整性度量和容器的可信啟動;文件系統監控模塊用于對各個容器的文件系統的監控;進程監控模塊用于通過設置黑白名單實現對容器內的進程的監控;網絡通信監控模塊用于對容器的網絡連接的細粒度控制,限制容器對外連接和容器間的連接;其特征在于,包括以下步驟:步驟1:容器的可信啟動,其具體實現包括以下子步驟:步驟1.1:BIOS加電啟動搜索到MBR,讀取配置信息,將控制權轉給TrustedGRUB;步驟1.2:TrustedGRUB加載系統內核,對Docker程序的可執行文件及關鍵配置文件進行完整性度量,完整性度量通過之后,將度量結果存入PCR,將控制權轉給操作系統;步驟1.3:操作系統啟動之后,啟動Docker程序;步驟1.4:Docker程序啟動之后,可信啟動子模塊啟動,隨即監控Docker關于鏡像獲取的命令;當Docker獲取到新鏡像后,度量程序開始計算鏡像的HASH基準值并加密存儲;步驟1.5:接收到用戶發出的啟動容器命令時,首先讀入存有HASH基準值的文件,用密鑰將其解密,得到40位HASH值;然后再依據步驟1.4中所述的計算鏡像HASH基準值的方法再計算一遍鏡像的HASH值;步驟1.6:將步驟1.5中新計算得到的HASH值與步驟1.4中的HASH基準值進行對比,若兩值相等則啟動容器,否則不啟動將彈框報告用戶,提示鏡像已被篡改;步驟2:容器啟動后的文件系統監控,其具體實現包括以下子步驟:步驟2.1:啟動容器之后,Docker對文件系統監控程序可執行文件進行度量,驗證完文件系統監控程序可執行文件的完整性后啟動文件系統監控程序;步驟2.2:文件系統監控程序啟動之后計算容器的文件系統的讀寫層的HASH值;步驟2.3:對容器的文件系統的讀寫層的HASH進行加密作為基準值存儲在以容器ID為文件名的文件中;步驟2.4:當經過預設的時間以后,文件系統監控模塊對文件系統的讀寫層的HASH值進行解密,然后重新計算容器的文件系統的HASH值作為實時度量值;步驟2.5:將步驟2.4中的兩個HASH值進行對比;如果兩個HASH值相等,則等待下一次度量文件系統直到刪除容器;如果兩個HASH值不相等,則說明度量值與基準值不一樣,容器文件系統的讀寫層被篡改;如果管理員是合法更新了讀寫層文件,則可輸入管理員用戶名和密碼更新基準值;如果密碼輸入錯誤則身份認證失敗,并報告管理員為非法修改,本流程結束;如果密碼輸入正確則身份認證通過,更新基準值,并回轉執行所述的步驟2.3;步驟3:容器啟動后的進程監控,其具體實現包括以下子步驟:步驟3.1:用戶輸入指定容器的管理策略,即進程白名單;白名單中為可在容器中正常運行的程序;步驟3.2:進程監控模塊讀入對應容器的進程白名單;步驟3.3:進程監控模塊開始實時監控,若發現容器內部存在白名單中未曾出現的進程,即刻攔截并提示管理員;步驟4:容器啟動后的網絡監控,其具體實現包括以下子步驟:步驟4.1:用戶輸入指定容器的通信管理策略,即IP及端口白名單;白名單中為允許容器與之通信的主機IP及端口,其中包括外界主機和本地其他容器;步驟4.2:網絡通信監控模塊讀入白名單,將白名單中的IP及端口轉換成iptables規則文件;步驟4.3:網絡通信監控模塊將步驟4.2中產生的規則文件載入iptables防火墻;步驟4.4:用戶自定義規則生效,容器只能和指定主機進行通信,若出現非授權通信行為,網絡通信監控模塊將立即阻止。2.根據權利要求1所述的基于Docker的可信容器安全加固方法,其特征在于,步驟1.2中所述的可執行文件及關鍵配置文件包括:/etc/bash_completion.d/docker;/etc/init.d/docker;/etc/default/docker;/var/lib/docker/init/dockerinit-1.6.0;/var/lib/docker/init/dockerinit-1.7.0-dev;/etc/init/docker.conf;/lib/systemd/system/docker.service;/lib/systemd/system/docker.socket;3.根據權利要求1所述的基于Docker的可信容器安全加固方法,其特征在于,步驟1.4中所述的Docker獲取鏡像的方式有三種,包括從Registry下載鏡像、將當前活動容器封裝成鏡像、從tar包讀取鏡像存于本地,這三種方式對應的Docker命令分別是pull、commit、load與save。4.根據權利要求1所述的基于Docker的可信容器安全加固方法,其特征在于,步驟1.4中所述度量程序所度量的內容包括鏡像的rootfs層、鏡像配置信息以及層間關系文件。5.根據權利要求1所述的基于Docker的可信容器安全加固方法,其特征在于,步驟1.4中所述的度量程序開始計算鏡像的HASH基準值并加密存儲,其具體實現過程是度量程序通過調用TPM提供的SHA-1引擎分別計算得到與鏡像有關的各部分HASH值,并將他們連接起來再進行一次SHA-1,計算得到最后的HASH值,將此HASH值作為基準值,對其進行加密存儲;所述的加密存儲利用的是TPM提供的RSA密鑰將hash值加密為512位密文最后將密文存入以鏡像id命名的文件中。6.根據權利要求1所述的基于Docker的可信容器安全加固方法,其特征在于,步驟2.2中所述的文件系統監控程序啟動之后計算容器的文件系統的HASH值,Docker對文件系統監控程序可執行文件進行度量,度量的內容包括容器當前可讀寫層、讀寫層對應的init層以及層間關系文件。

說明書

一種基于Docker的可信容器安全加固方法

技術領域

本發明屬于互聯網技術領域,特別是涉及一種基于Docker的可信容器安全加固方法。

背景技術

Docker作為時下最流行的輕量級虛擬化技術,正在給業界帶來一場顛覆性的技術革命,隨著Docker技術應用規模越來越大,領域越來越廣,其暴露出的安全問題也顯得日趨嚴重,諸如隔離機制不完善、特權過于集中、混亂的共享機制等,這些安全隱患已經成為阻礙著Docker發展的關鍵因素。從Docker已經被發現的各類安全問題可以看出,Docker鏡像及容器均存在被篡改的風險,同時不完全的隔離性允許容器之間的非授權通信,容器內部的惡意進程或惡意數據同樣給Docker系統甚至宿主機帶來風險。

目前,針對Docker系統的防護方案主要有以下幾種:

(1)Docker系統本身依賴Linux內核的安全性,目前主要依賴的機制有Namespace和Cgroups,分別實現容器的隔離性和資源限制,但上述兩種機制并不能做到完整的隔離,Docker系統仍然面臨被穿透的風險;

(2)Docker官方推薦使用GRSEC內核補丁以提高安全性,這是一種Linux內核安全增強補丁,該補丁從宿主機的角度提高Docker整體安全性,對容器內部的防護卻無能為力;

(3)DanielWalsh等人在2014年提出使用訪問控制系統加強Docker安全,以RedHat開發的SElinux系統為例,該系統在每個容器創建時為其打上唯一的標簽,不同容器標簽不同,容器之間以及容器和宿主機間默認無法互聯,也就是說,標簽不同的主客體之間所有操作都是被禁止的,這樣就極大地提高了Docker容器的隔離性,但這種方法仍然沒有關心Docker容器內部的安全性,Docker容器和鏡像仍然面臨被篡改的可能。

發明內容

針對上述問題,本發明提出一種基于Docker的可信容器安全加固方法。該方法利用可信計算、完整性度量技術,配合實時監控模塊對基于Docker的容器系統進行加固,從Docker配置文件、鏡像、容器三個層面保護容器完整性,同時能對容器內運行的進程及容器通信行為進行監控,如此一來便可規避大部分安全風險,極大地提高Docker容器的安全性。

本發明所采用的技術方案是:一種基于Docker的可信容器安全加固方法,用于對Docker容器系統進行安全增強,實現基于Docker的可信容器,應用于基于Docker的服務器集群中;該基于Docker的可信容器包含容器程序Docker、容器可信度量模塊、進程監控模塊和網絡通信監控模塊,其中容器可信度量模塊包括可信啟動子模塊與文件度量子模塊;其中Docker為容器程序主體,用于對各個進程監控模塊的調用以及對容器鏡像的可信度量,可信啟動子模塊用于實現鏡像的完整性度量和容器的可信啟動;文件系統監控模塊用于對各個容器的文件系統的監控;進程監控模塊用于通過設置黑白名單實現對容器內的進程的監控;網絡通信監控模塊用于對容器的網絡連接的細粒度控制,限制容器對外連接和容器間的連接;

其特征在于,包括以下步驟:

步驟1:容器的可信啟動,其具體實現包括以下子步驟:

步驟1.1:BIOS加電啟動搜索到MBR,讀取配置信息,將控制權轉給TrustedGRUB;

步驟1.2:TrustedGRUB加載系統內核,對Docker程序的可執行文件及關鍵配置文件進行完整性度量,完整性度量通過之后,將度量結果存入PCR,將控制權轉給操作系統;

步驟1.3:操作系統啟動之后,啟動Docker程序;

步驟1.4:Docker程序啟動之后,可信啟動子模塊啟動,隨即監控Docker關于鏡像獲取的命令;當Docker獲取到新鏡像后,度量程序開始計算鏡像的HASH基準值并加密存儲;

步驟1.5:接收到用戶發出的啟動容器命令時,首先讀入存有HASH基準值的文件,用密鑰將其解密,得到40位HASH值;然后再依據步驟1.4中所述的計算鏡像HASH基準值的方法再計算一遍鏡像的HASH值;

步驟1.6:將步驟1.5中新計算得到的HASH值與步驟1.4中的HASH基準值進行對比,若兩值相等則啟動容器,否則不啟動將彈框報告用戶,提示鏡像已被損壞;

步驟2:容器啟動后的文件系統監控,其具體實現包括以下子步驟:

步驟2.1:啟動容器之后,Docker對文件系統監控程序可執行文件進行度量,驗證完文件系統監控程序可執行文件的完整性后啟動文件系統監控程序;

步驟2.2:文件系統監控程序啟動之后計算容器的文件系統的讀寫層的HASH值;

步驟2.3:對容器的文件系統的讀寫層的HASH進行加密作為基準值存儲在以容器ID為文件名的文件中;

步驟2.4:當經過預設的時間以后,文件系統監控模塊對文件系統的讀寫層的HASH值進行解密,然后重新計算容器的文件系統的HASH值作為實時度量值;

步驟2.5:將步驟2.4中的兩個HASH值進行對比;如果兩個HASH值相等,則等待下一次度量文件系統直到刪除容器;如果兩個HASH值不相等,則說明度量值與基準值不一樣,容器文件系統的讀寫層被篡改;如果管理員是合法更新了讀寫層文件,則可輸入管理員用戶名和密碼更新基準值;如果密碼輸入錯誤則身份認證失敗,并報告管理員為非法修改,本流程結束;如果密碼輸入正確則身份認證通過,更新基準值,并回轉執行所述的步驟2.3;

步驟3:容器啟動后的進程監控,其具體實現包括以下子步驟:

步驟3.1:用戶輸入指定容器的管理策略,即進程白名單;白名單中為可在容器中正常運行的程序;由于本發明是針對大規模集群服務器應用場景提出的安全加固方法,而在該應用場景下,各Docker容器分工明確,內部運行的進程類別單一,一般每個容器僅提供一種服務。因此,管理員可根據實際情況設置每個容器的進程白名單,這樣進程監控模塊就可以有針對性的對每個容器實時監控,確保容器內部運行的都是合法進程。

步驟3.2:進程監控模塊讀入對應容器的進程白名單;

步驟3.3:進程監控模塊開始實時監控,若發現容器內部存在白名單中未曾出現的進程,即刻攔截并提示管理員;

步驟4:容器啟動后的網絡監控,其具體實現包括以下子步驟:

步驟4.1:用戶輸入指定容器的通信管理策略,即IP及端口白名單;白名單中為允許容器與之通信的主機IP及端口,其中包括外界主機和本地其他容器;主要目的是限制容器非授權的通信行為。

步驟4.2:網絡通信監控模塊讀入白名單,將白名單中的IP及端口轉換成iptables規則文件;

步驟4.3:網絡通信監控模塊將步驟4.2中產生的規則文件載入iptables防火墻;

步驟4.4:用戶自定義規則生效,容器只能和指定主機進行通信,若出現非授權通信行為,網絡通信監控模塊將立即阻止。

作為優選,步驟1.2中所述的可執行文件及關鍵配置文件包括:

/etc/bash_completion.d/docker;/etc/init.d/docker;/etc/default/docker;/var/lib/docker/init/dockerinit-1.6.0;/var/lib/docker/init/dockerinit-1.7.0-dev;/etc/init/docker.conf;/lib/systemd/system/docker.service;/lib/systemd/system/docker.socket;

作為優選,步驟1.4中所述的Docker獲取鏡像的方式有三種,包括從Registry下載鏡像、將當前活動容器封裝成鏡像、從tar包讀取鏡像存于本地,這三種方式對應的Docker命令分別是pull、commit、load與save。

作為優選,步驟1.4中所述度量程序所度量的內容包括鏡像的rootfs層、鏡像配置信息以及層間關系文件。

作為優選,步驟1.4中所述的度量程序開始計算鏡像的HASH基準值并加密存儲,其具體實現過程是度量程序通過調用TPM提供的SHA-1引擎分別計算得到與鏡像有關的各部分HASH值,并將他們連接起來再進行一次SHA-1,計算得到最后的HASH值,將此HASH值作為基準值,對其進行加密存儲;所述的加密存儲利用的是TPM提供的RSA密鑰將hash值加密為512位密文最后將密文存入以鏡像id命名的文件中。

作為優選,步驟2.2中所述的文件系統監控程序啟動之后計算容器的文件系統的HASH值,Docker對文件系統監控程序可執行文件進行度量,度量的內容包括容器當前可讀寫層、讀寫層對應的init層以及層間關系文件。由于Docker采用AUFS文件系統,故只有容器層是可讀寫的,容器所依賴的各層都是只讀的,而可信啟動子模塊中的鏡像度量模塊可以確保這些只讀層的完整性,故文件系統度量模塊只需關注容器讀寫層即可。

本發明的有益效果為:

(1)構造可信鏈,確保容器可信啟動;

本發明引入TrustedGRUB可信引導工具,并對Docker自身可執行文件、關鍵配置文件、Docker容器的鏡像進行完整性度量,從而構造一條完整的從BIOS、Grub、OS內核、DockerDaemon,再到最后容器啟動的信任鏈,確保Docker容器的可信啟動,防止容器本身及其運行的環境被篡改。

(2)對容器文件系統進行度量,確保容器運行時文件系統的完整性;

基于“可信”的核心理念,本發明不僅對Docker可執行程序、鏡像進行了完整性度量,確保了容器的可信啟動,還對容器運行時的文件系統進行了實時的監控,以確保容器運行時的可信和安全。容器啟動時會創建容器文件系統的哈希基準值,每隔特定時間會進行檢查核對。當文件系統改變時,提醒管理員輸入密碼更新基準值。

(3)設置白名單監控容器內部進程,確保容器進程安全;

通過HOOK主機的相關系統調用函數來實現容器內進程實時監控的功能。當容器內的某個進程創建運行前,判斷該容器內的這個進程是否為被預設的進程,然后再進行相應的操作。并且可以通過預先設置白名單到達對不同容器內對不同可信進程的實時保護。如果是為可信進程,則操作如常,如果是可疑進程,則在創建運行前就攔截。通過容器內進程實時監控這個模塊的保護,可以保證多容器運行多進程的安全。

(4)實現細粒度的網絡訪問控制,確保容器網絡安全;

通過運用IPtable技術,設置容器通信規則,改進了Docker本身只能開啟或關閉網絡功能和容器間通信功能,可對容器與外部的通信進行監控,實現了細粒度的網絡訪問控制。

附圖說明

圖1:是本發明實施例的基于Docker的可信容器系統架構示意圖。

圖2:是本發明實施例的可信啟動子模塊示意圖。

圖3:是本發明實施例的容器文件系統監控模塊示意圖。

圖4:是本發明實施例的容器進程監控模塊示意圖。

圖5:是本發明實施例的容器網絡監控示意圖。

具體實施方式

為了便于本領域普通技術人員理解和實施本發明,下面結合附圖及實施例對本發明作進一步的詳細描述,應當理解,此處所描述的實施示例僅用于說明和解釋本發明,并不用于限定本發明。

本發明提供的一種基于Docker的可信容器安全加固方法,用于對Docker容器系統進行安全增強,實現基于Docker的可信容器,應用于基于Docker的服務器集群中。

請見圖1,本實施例的基于Docker的可信容器包含容器程序Docker、容器可信度量模塊、進程監控模塊和網絡通信監控模塊,其中容器可信度量模塊包括可信啟動子模塊與文件度量子模塊;其中Docker為容器程序主體,用于對各個進程監控模塊的調用以及對容器鏡像的可信度量,可信啟動子模塊用于實現鏡像的完整性度量和容器的可信啟動;文件系統監控模塊用于對各個容器的文件系統的監控;進程監控模塊用于通過設置黑白名單實現對容器內的進程的監控;網絡通信監控模塊用于對容器的網絡連接的細粒度控制,限制容器對外連接和容器間的連接。

可信啟動子模塊是非常重要的一個模塊。在確保容器能否安全啟動非常關鍵。當Docker獲取新鏡像后,會自動對鏡像進行HASH值計算。同時在容器啟動前對鏡像進行完整性度量確保容器啟動時的安全。

文件度量子模塊是另一個關鍵的一個模塊。它確保了容器在運行過程中的文件系統的安全性。由于Docker采用分層結構組織其文件系統,而只有最上面一層是可讀寫的,所以本發明認為確保容器文件系統的完整性主要是確保該讀寫層的完整性。至于其所依賴的只讀層則交由可信啟動子模塊中的鏡像度量模塊進行度量。

在實例中本發明基于TPM芯片和可信計算技術實現了對容器HASH基準值的計算和加密存儲。

進程監控模塊是確保容器運行時的安全性的另一重要模塊。當容器啟動時,將觸發該模塊,根據用戶自定義的管理策略開始監控容器內部運行的進程,一旦發現非法進程,將立即發出警告。

實施例中,本發明基于HOOK技術和內核模塊加載技術實現了對Proc文件系統下白名單文件進行改寫,容器內進程監控模塊根據白名單進行操作,從而對容器內部可疑進程的限制和可信進程的信賴。

網絡通信監控模塊主要負責限制容器的非授權通信行為,以提高容器在網絡方面的安全性。當容器啟動時,將觸發該模塊,根據用戶自定義的管理策略開始監控容器的網絡通信行為,只允許容器與可信主機進行通信,一旦出現非授權通信行為將立即阻止。

實施例中,本發明將用戶自定義的策略轉換成iptables規則,并將規則文件載入生效,實現對容器網絡通信的監控和限制。

本發明提供的一種基于Docker的可信容器安全加固方法,包括以下步驟:

步驟1:容器的可信啟動;請見圖2,其具體實現包括以下子步驟:

步驟1.1:BIOS加電啟動搜索到MBR,讀取配置信息,將控制權轉給TrustedGRUB;

步驟1.2:TrustedGRUB加載系統內核,對Docker程序的可執行文件及關鍵配置文件進行完整性度量,完整性度量通過之后,將度量結果存入PCR,將控制權轉給操作系統;

可執行文件及關鍵配置文件包括:

/etc/bash_completion.d/docker/etc/init.d/docker/etc/default/docker/var/lib/docker/init/dockerinit-1.6.0/var/lib/docker/init/dockerinit-1.7.0-dev/etc/init/docker.conf/lib/systemd/system/docker.service/lib/systemd/system/docker.socket

步驟1.3:操作系統啟動之后,啟動Docker程序;

步驟1.4:Docker程序啟動之后,可信啟動子模塊啟動,隨即監控Docker關于鏡像獲取的命令;當Docker獲取到新鏡像后,度量程序開始計算鏡像的HASH基準值并加密存儲;

Docker獲取鏡像的方式有三種,包括從Registry下載鏡像、將當前活動容器封裝成鏡像、從tar包讀取鏡像存于本地,這三種方式對應的Docker命令分別是pull、commit、load與save。

當Docker獲取到新鏡像后,度量程序開始計算鏡像的HASH基準值并加密存儲;所度量的內容包括鏡像的rootfs層、鏡像配置信息以及層間關系文件。度量程序通過調用TPM提供的SHA-1引擎分別計算得到與鏡像有關的各部分hash值并將他們連接起來再進行一次SHA-1計算得到最后的hash值,將此HASH值作為基準值,對其進行加密存儲,這里利用的是TPM提供的RSA密鑰將hash值加密為512位密文最后將密文存入以鏡像id命名的文件中。

步驟1.5:接收到用戶發出的啟動容器命令時,首先讀入存有HASH基準值的文件,用密鑰將其解密,得到40位HASH值;然后再依據步驟1.4中所述的計算鏡像HASH基準值的方法再計算一遍鏡像的HASH值;

步驟1.6:將步驟1.5中新計算得到的HASH值與步驟1.4中的HASH基準值進行對比,若兩值相等則啟動容器,否則不啟動將彈框報告用戶,提示鏡像已被損壞;

當鏡像被刪除時,同時也刪除存有該鏡像hash基準值的文件。

通過以上操作就可以確保容器啟動時是從一個安全的可信的沒有被篡改的鏡像中啟動的。

步驟2:容器啟動后的文件系統監控;請見圖3,其具體實現包括以下子步驟:

步驟2.1:啟動容器之后,Docker對文件系統監控程序可執行文件進行度量,驗證完文件系統監控程序可執行文件的完整性后啟動文件系統監控程序;

度量的內容包括容器當前可讀寫層、讀寫層對應的init層以及層間關系文件。由于Docker采用AUFS文件系統,故只有容器層是可讀寫的,容器所依賴的各層都是只讀的,而可信啟動子模塊中的鏡像度量模塊可以確保這些只讀層的完整性,故文件系統度量模塊只需關注容器讀寫層即可。

步驟2.2:文件系統監控程序啟動之后計算容器的文件系統的讀寫層的HASH值;

步驟2.3:對容器的文件系統的讀寫層的HASH進行加密作為基準值存儲在以容器ID為文件名的文件中;

步驟2.4:當經過預設的時間以后,文件系統監控模塊對文件系統的讀寫層的HASH值進行解密,然后重新計算容器的文件系統的HASH值作為實時度量值;

步驟2.5:將步驟2.4中的兩個HASH值進行對比;如果兩個HASH值相等,則等待下一次度量文件系統直到刪除容器;如果兩個HASH值不相等,則說明度量值與基準值不一樣,容器文件系統的讀寫層被篡改;如果管理員是合法更新了讀寫層文件,則可輸入管理員用戶名和密碼更新基準值;如果密碼輸入錯誤則身份認證失敗,并報告管理員為非法修改,本流程結束;如果密碼輸入正確則身份認證通過,更新基準值,并回轉執行所述的步驟2.3;

如果銷毀容器,則該容器的文件監控模塊自行退出,并刪除掉該容器的文件系統的hash基準值文件。

步驟3:容器啟動后的進程監控;請見圖4,其具體實現包括以下子步驟:

步驟3.1:用戶輸入指定容器的管理策略,即進程白名單;白名單中為可在容器中正常運行的程序;由于本發明是針對大規模集群服務器應用場景提出的安全加固方法,而在該應用場景下,各Docker容器分工明確,內部運行的進程類別單一,一般每個容器僅提供一種服務。因此,管理員可根據實際情況設置每個容器的進程白名單,這樣進程監控模塊就可以有針對性的對每個容器實時監控,確保容器內部運行的都是合法進程。

步驟3.2:進程監控模塊讀入對應容器的進程白名單;

步驟3.3:進程監控模塊開始實時監控,若發現容器內部存在白名單中未曾出現的進程,即刻攔截并提示管理員;

步驟4:容器啟動后的網絡監控,請見圖5,其具體實現包括以下子步驟:

步驟4.1:用戶輸入指定容器的通信管理策略,即IP及端口白名單;白名單中為允許容器與之通信的主機IP及端口,其中包括外界主機和本地其他容器;主要目的是限制容器非授權的通信行為。

步驟4.2:網絡通信監控模塊讀入白名單,將白名單中的IP及端口轉換成iptables規則文件;

步驟4.3:網絡通信監控模塊將步驟4.2中產生的規則文件載入iptables防火墻;

步驟4.4:用戶自定義規則生效,容器只能和指定主機進行通信,若出現非授權通信行為,網絡通信監控模塊將立即阻止。

本發明將可信計算的思想及相關技術應用于Docker安全,構造了從底層操作系統到Docker程序再到鏡像最后到容器內應用的信任鏈,實現了對容器的完整性度量,防止對于容器的非法篡改。

本發明通過自定義的安全策略,對容器內運行的進程和容器的通信行為進行監控,防止容器內程序入侵容器和容器間的非授權通信。當出現惡意進程或容器進行非授權通信時,系統將感知到異常并發出警告。

本發明與Daniel等人的工作不同,本發明重點關注Docker容器的可信性,利用可信計算、完整性度量技術,配合實時監控模塊對基于Docker的容器系統進行加固,保護容器及鏡像不被篡改,同時限制容器的網絡通信行為并監控容器內部進程,從而實現一個安全加強的可信容器。

應當理解的是,本說明書未詳細闡述的部分均屬于現有技術。

應當理解的是,上述針對較佳實施例的描述較為詳細,并不能因此而認為是對本發明專利保護范圍的限制,本領域的普通技術人員在本發明的啟示下,在不脫離本發明權利要求所保護的范圍情況下,還可以做出替換或變形,均落入本發明的保護范圍之內,本發明的請求保護范圍應以所附權利要求為準。

關 鍵 詞:
一種 基于 DOCKER 可信 容器 安全 加固 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:一種基于DOCKER的可信容器安全加固方法.pdf
鏈接地址:http://www.wwszu.club/p-6385975.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大