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

        ?

        Docker脆弱性分析與安全增強(qiáng)

        2016-05-14 11:05:19楊文林譚曦郭俊廷王碩
        網(wǎng)絡(luò)空間安全 2016年4期
        關(guān)鍵詞:計(jì)算機(jī)應(yīng)用虛擬化

        楊文林 譚曦 郭俊廷 王碩

        【 摘 要 】 容器虛擬化技術(shù)并沒有虛擬任何硬件,它使用宿主機(jī)的系統(tǒng)內(nèi)核,通過Namespace技術(shù)來隔離不同的容器隔離應(yīng)用程序來實(shí)現(xiàn)虛擬化。因此它是工作在操作系統(tǒng)級的虛擬化技術(shù)。然而共享內(nèi)核的方式也帶來了許多安全問題。因此我們著手分析Docker主要部件Docker容器、Docker配置和Docker共享內(nèi)核的技術(shù)原理,并且嘗試尋找其脆弱點(diǎn),從而針對存在的威脅提出解決方案,使得Docker的安全性足以適應(yīng)生產(chǎn)環(huán)境。

        【 關(guān)鍵詞 】 計(jì)算機(jī)應(yīng)用;Docker安全;脆弱性分析;虛擬化

        【 中圖分類號 】 TP309 【 文獻(xiàn)標(biāo)識碼 】 A

        【 Abstract 】 Linux Container technology does not virtualize any hardware, it just uses the hosts system kernel with namespace technology to isolate different containers and applications to achieve virtualization. Therefore, it is a virtualization technology that works on the operating system level. However, the way of sharing the kernel also brings many security problems. So in this paper, we had focused on analyze the major components of Docker: Docker Engine, Docker Repositories and the technology principles of Docker sharing kernel, and tried to find its vulnerability. Moreover, we had strengthened the most fragile places, so that we can finally propose solutions to resolve the risks of the existence now.

        【 Keywords 】 computer application; docker security; vulnerability analysis; virtualization

        1 引言

        虛擬化技術(shù)是一種區(qū)別于傳統(tǒng)的資源管理技術(shù),它將計(jì)算機(jī)的計(jì)算能力、網(wǎng)絡(luò)、存儲等各類物理資源抽象化,打破了各物理結(jié)構(gòu)間原本不可切割的障礙,使得用戶可以按照需求更加經(jīng)濟(jì)、合理地去分配使用這些資源。虛擬化技術(shù)能夠?qū)崿F(xiàn)在一個平臺上獨(dú)立地運(yùn)行多個既可以互不干擾而又可以協(xié)同工作的運(yùn)算單元。Docker容器將用戶程序、運(yùn)行時(shí)庫、系統(tǒng)工具、系統(tǒng)庫等所有你會在服務(wù)器上需要的東西打包到一個完備的文件系統(tǒng)中。虛擬機(jī)通過模擬計(jì)算機(jī)硬件,每個虛擬機(jī)使用相互獨(dú)立的硬件模擬器,都像擁有獨(dú)立的硬件平臺一樣。對于虛擬機(jī)而言,每一個虛擬機(jī)都包含應(yīng)用程序、運(yùn)行庫和相互獨(dú)立的操作系統(tǒng)。

        容器技術(shù)的虛擬化則是依托于Linux內(nèi)核的LXC技術(shù),輔以Namespace技術(shù)隔離不同的容器。容器內(nèi)僅包含應(yīng)用程序和必要的運(yùn)行庫,容器內(nèi)運(yùn)行的系統(tǒng)內(nèi)核則使用與宿主機(jī)共享的系統(tǒng)內(nèi)核。然而Docker共享系統(tǒng)內(nèi)核的模式較虛擬機(jī)這種獨(dú)立內(nèi)核的模式自然安全性會降低很多,因?yàn)镈ocker暴露了更多的攻擊面。不過只要在Docker內(nèi)運(yùn)行并提供合理的服務(wù),同時(shí)再做好一些防護(hù)和監(jiān)控措施,Docker仍然是一個非常實(shí)用的虛擬化工具。

        2 Docker組件安全分析

        Docker組件主要包含Docker引擎,Docker容器和Docker倉庫三個部分。Docker引擎是Docker運(yùn)行時(shí)的服務(wù)提供者,為整個Docker提供支持。其中包含了Docker使用的各種安全技術(shù),比如Namespace、ControlGroup等。Docker容器是用戶需要運(yùn)行提供生產(chǎn)力的服務(wù)包,這里面運(yùn)行著許多自定義的應(yīng)用程序。Docker倉庫是用戶集中存放管理鏡像的地方,當(dāng)用戶需要時(shí)Docker將會從這里下載指定容器或鏡像。因此我們將攻擊面概括為Docker引擎、系統(tǒng)內(nèi)核以及Docker倉庫三個部分。本文將深入討論各部分內(nèi)部以及之間的脆弱性。

        2.1 Docker引擎脆弱性分析

        2.1.1文件系統(tǒng)隔離

        Docker 總體上使用Mount 命名空間來隔離文件系統(tǒng)。在寫入數(shù)據(jù)時(shí)Docker使用了一種叫做“寫時(shí)復(fù)制”的方式來保證容器內(nèi)的寫入操作。對于一個正在運(yùn)行的容器,其文件系統(tǒng)都是從一個根目錄開始的虛擬文件系統(tǒng),在容器內(nèi)部看起來像是一個真實(shí)的文件系統(tǒng),然而在宿主機(jī)內(nèi)則默認(rèn)位于“//docker/containers/ /rootfs”。Mount 命名空間通過隔離文件系統(tǒng)掛載點(diǎn)對文件系統(tǒng)的隔離提供支持,不同的命名空間中的文件結(jié)構(gòu)互不影響。但由于容器內(nèi)root用戶幾乎等價(jià)于宿主機(jī)root用戶,所以如果容器在創(chuàng)建時(shí)“rw mount”了宿主機(jī)的某個文件系統(tǒng)且容器內(nèi)有root權(quán)限,那么在容器內(nèi)執(zhí)行“chmod a+s [program file]”操作則會導(dǎo)致所有運(yùn)行這個程序的用戶都將獲得root權(quán)限,由此宿主機(jī)內(nèi)用戶得以提升特權(quán),而且對于不同的容器,并不是所有文件都是完全獨(dú)立的,比如/proc/fs,/proc/meminfo,/proc/debug,可能造成宿主機(jī)的這些敏感信息的泄露。

        2.1.2進(jìn)程隔離和通信隔離

        Docker對于進(jìn)程隔離使用的是PID 命名空間(PID namespace)技術(shù),它對需要隔離的進(jìn)程的PID重新標(biāo)號,由此來隔離不同容器及容器和Host。每個PID 命名空間都有獨(dú)有的計(jì)數(shù)程序。系統(tǒng)內(nèi)核為所有的PID 命名空間維護(hù)了一個樹,最頂層的是根命名空間(Root Namespace),是系統(tǒng)初始時(shí)創(chuàng)建的。運(yùn)行于父節(jié)點(diǎn)的進(jìn)程能夠讀取子節(jié)點(diǎn)的信息,反之則不可以。注意如果容器內(nèi)PID為1的進(jìn)程被終止,也就是容器內(nèi)所有節(jié)點(diǎn)的根節(jié)點(diǎn)進(jìn)程被終止,則該容器將完全停止。這可能存在DoS漏洞(Deny of Service,拒絕服務(wù))的隱患。容器中進(jìn)程間通信的方式為相同PID 命名空間的進(jìn)程間進(jìn)行通信,因此需要一個唯一標(biāo)識符進(jìn)行區(qū)別。IPC 命名空間包含系統(tǒng)IPC標(biāo)識符和實(shí)現(xiàn)POSIX信息隊(duì)列的文件系統(tǒng)。

        2.1.3設(shè)備隔離與宿主機(jī)資源限制

        Docker中使用UTS 命名空間來進(jìn)行容器內(nèi)的主機(jī)名和域名的隔離,這樣每個容器都可以被網(wǎng)絡(luò)上的其他節(jié)點(diǎn)看作是一個獨(dú)立的節(jié)點(diǎn)。Docker作為虛擬化服務(wù)提供軟件,我們必須重視拒絕服務(wù)漏洞。Docker使用Cgroups技術(shù)來限制資源的使用,然而默認(rèn)狀況下是不開啟的,由此可能導(dǎo)致DoS的攻擊面有磁盤空間、I/O帶寬、CPU計(jì)算資源、內(nèi)存空間,網(wǎng)絡(luò)帶寬甚至設(shè)備資源占用等的耗盡。由于容器內(nèi)的資源是用戶可以獲取到的,如果允許用戶自定義的代碼的話,不做好適當(dāng)?shù)南拗疲瑢⒑苡锌赡芤l(fā)宿主機(jī)拒絕服務(wù)。這些限制在IaaS、PaaS、SaaS等的應(yīng)用時(shí)需要十分注意。

        2.1.4網(wǎng)絡(luò)隔離與鏡像傳輸

        Network 命名空間為Docker提供網(wǎng)絡(luò)資源隔離,包括網(wǎng)絡(luò)設(shè)備、TCP/IP 協(xié)議棧、IP路由表等。Docker默認(rèn)使用橋接方式,這種方式為每一個容器指定一個Network命名空間并分配IP地址,然后將其接入到虛擬網(wǎng)橋上。雖然這種方式能夠很好的運(yùn)行,但它只是單純地轉(zhuǎn)發(fā)所有流量而沒有任何過濾,因此這可能會存在MAC Flooding風(fēng)險(xiǎn)。由于Docker目前并沒有對拉回的鏡像做正確的校驗(yàn),使得在鏡像傳輸?shù)倪^程中可能被替換一些數(shù)據(jù),即存在中間人攻擊的可能性。

        2.2 系統(tǒng)內(nèi)核安全

        Docker依賴于系統(tǒng)共享內(nèi)核,因此系統(tǒng)內(nèi)核的安全同時(shí)影響著Host和Container的安全。我們必須考慮系統(tǒng)內(nèi)核的脆弱性可能會導(dǎo)致的嚴(yán)重后果。好在這種致命漏洞發(fā)現(xiàn)難度很大,利用起來也是很困難。容器內(nèi)的用戶所擁有的權(quán)限是由權(quán)能表決定的,不合理的權(quán)能分配會為攻擊者提供更多的攻擊途徑。

        2.3 Docker倉庫安全

        許多公司在生產(chǎn)環(huán)境中通常使用自建的Docker倉庫來存放和管理Docker容器,那么如果Docker倉庫如果可以被攻陷或者修改數(shù)據(jù),那么從這里部署出去的所有容器都將成為攻擊著的傀儡。所以需要確保鏡像存放在可信倉庫內(nèi)。

        3 Docker安全增強(qiáng)

        3.1 容器間安全增強(qiáng)

        Docker間安全主要來研究如何全面地增強(qiáng)不同Docker之間的獨(dú)立性與抗影響性,因此本文又將范圍繼續(xù)細(xì)分到幾個方面。

        3.1.1 網(wǎng)絡(luò)訪問限制

        對于網(wǎng)絡(luò)面臨的威脅,主要是網(wǎng)絡(luò)流量的過濾以及限制威脅。得益于Linux系統(tǒng)中Iptables的強(qiáng)大和便捷,我們可以使用Iptables來進(jìn)行各種網(wǎng)絡(luò)限制,包括網(wǎng)絡(luò)隔離以及網(wǎng)絡(luò)區(qū)域劃分等。當(dāng)然,我們也可以使用更加開放的SDN類軟件,比如OpenVSwitch,用它來替代Docker的默認(rèn)網(wǎng)絡(luò),從而更加便捷地管理容器網(wǎng)絡(luò)。

        3.1.2 使用SSL 加密傳輸

        由于Docker目前并沒有對Pull的Images做正確性校驗(yàn),使得當(dāng)某宿主機(jī)在拉回鏡像的時(shí)候可能被替換掉一些數(shù)據(jù),從而存在中間人攻擊的可能性。對于解決方案,自然可以通過自行修改Docker的源碼的方式來添加相應(yīng)校驗(yàn)代碼,也可以直接利用SSL協(xié)議能夠防中間人攻擊的特性,使用SSL協(xié)議傳輸替代驗(yàn)證。

        3.2 容器與宿主機(jī)間安全增強(qiáng)

        容器與宿主機(jī)間安全增強(qiáng)我們主要討論如何防止容器內(nèi)部影響到宿主機(jī),即當(dāng)容器內(nèi)部被攻陷的時(shí)候,如何防止攻擊者進(jìn)入到宿主機(jī)內(nèi),本文又將范圍細(xì)分到幾個方面。

        3.2.1 控制容器內(nèi)Linux權(quán)能表且使用SELinux等Linux安全模塊

        因?yàn)镾UID 和SGID的存在以及Docker沒有使用user namespace技術(shù)隔離root用戶,意味著root用戶在容器內(nèi)外是沒有區(qū)別的,從而可能存在容器內(nèi)提升宿主機(jī)權(quán)限的風(fēng)險(xiǎn)。這時(shí)候通過“--cap-drop SETUID/SETGID ”參數(shù)就可以禁止容器內(nèi)的用戶使用此權(quán)限。同理,我們應(yīng)該遵循最小特權(quán)原則,將容器內(nèi)擁有的權(quán)限最小化,從而盡可能避免給攻擊者很多權(quán)限。

        安全增強(qiáng)模(Security-Enhanced Linux, SELinux) 是一個能夠在內(nèi)核中提供強(qiáng)訪問控制(MAC)策略的內(nèi)核模塊。Docker默認(rèn)是不開啟SELinux功能的,如果需要使用它,可以通過執(zhí)行“ setenforce enforcing”命令來開啟它,并且在啟動Docker Daemon的時(shí)候使用" --selinux-enabled "參數(shù)。當(dāng)成功開啟此功能之后,就可以通過“ --security-opt="YOUR PLOLICY"”來加載用戶自定義的規(guī)則??v觀服務(wù)器安全配置問題,SELinux這種強(qiáng)大的工具被證明能夠有效地增強(qiáng)服務(wù)器的安全性,因而也能極大地增強(qiáng)Docker容器和宿主機(jī)的安全。

        3.2.2避免影響系統(tǒng)設(shè)備且對資源分配進(jìn)行限制

        由于Docker對于部分文件系統(tǒng),例如/dev/*等沒有完全隔離, 如果容器內(nèi)需要某些特殊權(quán)限的話,則應(yīng)盡可能只分配最小的權(quán)限??梢酝ㄟ^使用類似“--device=/dev/snd:/dev/snd:r ”的命令來給予最小的read權(quán)限(或替換成其他你所需要的權(quán)限),這樣容器將無法獲得對此設(shè)備的其他操作權(quán)限,從而最大化保證安全。

        為了防止因資源耗盡導(dǎo)致拒絕服務(wù)的發(fā)生,合理的資源限制是非常有效地解決方案。通過Docker的Cgroups功能,用戶可以輕易地部署限制策略。例如,若需要限制每個容器所占最大CPU資源可以使用“--cpuset=0,1 - c 2”參數(shù);內(nèi)存限制使用“-m 128m”參數(shù);對于磁盤I/O的限制,Docker目前沒有限制手段,不過我們?nèi)匀豢梢栽谒拗鳈C(jī)內(nèi)使用Cgroups來限制。

        3.2.3禁用root權(quán)限且記錄日志

        永遠(yuǎn)不要運(yùn)行安全性未知的用戶程序,尤其是使用root權(quán)限運(yùn)行。因?yàn)槿萜鲀?nèi)外root用戶是幾乎等價(jià)的。如果需要使用的話,則應(yīng)該使用經(jīng)過限制部分權(quán)能的“類root”用戶。雖然收集并歸檔日志文件并不能直接增強(qiáng)Docker的安全性,但對于管理人員去審核并發(fā)現(xiàn)未知漏洞或者對已知的入侵行為進(jìn)行溯源能夠有非常大的幫助。

        4 結(jié)束語

        綜上所述,Docker是個非常有前景的虛擬化工具,它能夠快速地創(chuàng)建各種容器來為用戶提供各種服務(wù)。然而由于其原理的不安全性和開發(fā)人員的未知性,導(dǎo)致它輕便的同時(shí)也變得異常脆弱。為了使Docker的安全性足以保障在生產(chǎn)環(huán)境中使用,首先使用最新版本的Docker,因?yàn)橥ǔW钚掳姹镜腄ocker存在的漏洞越少而且越安全,其次永遠(yuǎn)不要運(yùn)行安全性未知的容器,尤其是使用root權(quán)限運(yùn)行,最后建立一套“預(yù)防漏洞-監(jiān)控異常-控制異?!比灰惑w的防御體系,來最大限度防止漏洞的利用,監(jiān)控報(bào)警危險(xiǎn)行為并控制入侵行為的影響范圍。

        參考文獻(xiàn)

        [1] Docker, Inc. What is Docker [EB/OL]. http://www.docker.com/whatisdocker,2015-1-29.

        [2] Docker, Inc. Understand what are the major Docker components [EB/OL].https://docs.docker.com/introduction/understanding-docker,2015-3-21.

        [3] 孫健波.Docker背后的內(nèi)核知識[EB/OL]. http://infoq.com/cn/articles/docker-kernel-knowle-dge-namespace-resource-isolation, 2015-3-2.

        [4] Merkel D. Docker: lightweight linux containers for consistent development and deployment [J]. Linux Journal,2014,2014(239): 2.

        [5] Wikipedia. MAC-Flooding [EB/OL]. https://en.wikipedia.org/wiki/MAC-Flooding.

        [6] Wikipedia. Responsible disclosure [EB/OL]. https://en.wikipedia.org/wiki/Responsible_disclo-sure,2015-9-9.

        [7] Lantz B, Heller B, McKeown N. A network in a laptop: rapid prototyping for software-defined networks[C]//Proceedings of the 9th ACM SIGCOMM Workshop on Hot Topics in Networks. ACM,2010: 19.

        [8] Docker, Inc. Protect Dockersocket [EB/OL]. https://docs.docker.com/articles/https,2015-4-7.

        [9] Wikipedia. Security-Enhanced Linux [EB/OL]. https://en.wikipedia.org/wiki/Security-Enhanced_Linux,2015-8-9.

        [10] Victor Vieux. Announcing Docker 1.2.0[EB/OL]. http://blog.docker.com/2014/08/announcing-docker-1-2-0/,2014-8-12.

        作者簡介:

        楊文林(1993-),男,吉林大學(xué),本科在讀生;主要研究方向和關(guān)注領(lǐng)域:網(wǎng)絡(luò)與信息安全。

        譚曦(1994-),女,吉林大學(xué),本科在讀生;主要研究方向和關(guān)注領(lǐng)域:網(wǎng)絡(luò)與信息安全。

        郭俊廷(1993-),男,吉林大學(xué),本科在讀生;主要研究方向和關(guān)注領(lǐng)域:網(wǎng)絡(luò)計(jì)算。

        王碩(1993-),男,吉林大學(xué),本科在讀生;主要研究方向和關(guān)注領(lǐng)域:信息技術(shù)。

        猜你喜歡
        計(jì)算機(jī)應(yīng)用虛擬化
        對基于Docker的虛擬化技術(shù)的幾點(diǎn)探討
        電子制作(2018年14期)2018-08-21 01:38:20
        虛擬化技術(shù)在CTC/TDCS系統(tǒng)中的應(yīng)用研究
        虛擬化技術(shù)在計(jì)算機(jī)技術(shù)創(chuàng)造中的應(yīng)用
        電子測試(2017年11期)2017-12-15 08:57:56
        淺析虛擬化技術(shù)的安全保障
        電子制作(2017年7期)2017-06-05 09:36:13
        網(wǎng)絡(luò)信息安全技術(shù)管理背景下計(jì)算機(jī)應(yīng)用研討
        高職計(jì)算機(jī)應(yīng)用教學(xué)改革研究與實(shí)踐
        詮釋CFC精髓的大數(shù)據(jù)時(shí)代醫(yī)學(xué)案例
        關(guān)于應(yīng)用計(jì)算機(jī)輔助藝術(shù)設(shè)計(jì)有關(guān)問題研究
        計(jì)算機(jī)應(yīng)用的發(fā)展現(xiàn)狀和發(fā)展趨勢探討
        中職計(jì)算機(jī)應(yīng)用課程教學(xué)改革與反思
        科技視界(2016年21期)2016-10-17 18:57:24
        国产精品国产三级国产av品爱| 无码精品人妻一区二区三区98| 一级黄色一区二区三区视频| 伊人久久大香线蕉av色婷婷色| 3d动漫精品啪啪一区二区免费| 日韩av高清无码| 精品免费久久久久国产一区| 日本淫片一区二区三区| 亚洲精品中文幕一区二区| 乱人伦视频中文字幕| 岛国熟女一区二区三区| 少妇精品偷拍高潮少妇在线观看| 伊人久久大香线蕉午夜av| 久久婷婷成人综合色| 亚洲国产精品午夜电影| 精品国产一区二区三区av新片| 久久精品国产亚洲av热九| 亚洲国产天堂久久综合网| 99精品久久精品一区二区| 精品免费在线| 日韩av免费在线不卡一区| 东北女人一级内射黄片| 天美传媒一区二区| 1717国产精品久久| 亚洲成AV人国产毛片| 91精品啪在线观九色| 爆乳熟妇一区二区三区霸乳| 亚洲欧美欧美一区二区三区| 亚洲国产精品成人一区| av网站免费线看精品| 性一交一乱一伦a片| 黄色大片一区二区中文字幕| 亚洲一区二区三区av资源| 国产69精品久久久久久久| 91网站在线看| 国产三级在线看完整版| 久久精品女人av一区二区| 水蜜桃精品一二三| 国产情侣一区在线| 日韩精品极视频在线观看免费| 风韵丰满熟妇啪啪区老老熟妇|