蔣文豪
摘 要 Docker脆弱性主要體現(xiàn)在文件系統(tǒng)隔離、進程及通信隔離、設備管理及宿主機資源限制、網(wǎng)絡隔離和鏡像傳輸這四個方面。本文對Docker容器的鏡像進行其脆弱性分析,為后續(xù)Docker安全的研究提供一定價值的參考。
關鍵詞 Docker 鏡像 脆弱性 安全
1 Docker概述
Docker 是基于客戶端服務器模式設計的,其主要組成可分為 Docker Client、 Docker Daemon、Docker Regeister三部分。
2 Docker容器的鏡像脆弱性分析
開發(fā)者在構建Docker鏡像時可能由于疏忽大意將包括數(shù)據(jù)庫認證密碼在內(nèi)的敏感信息添加到鏡像中,為生產(chǎn)環(huán)境中部署的應用埋下了相應的安全隱患,因此需要對Docker容器進行鏡像脆弱性分析。
3 Docker容器的鏡像安全加固
針對Docker容器存在的鏡像安全性問題,采用避免使用特權用戶等有效措施,對Docker容器進行鏡像安全加固。
3.1避免使用特權用戶
若在Dockerfile中不使用USER進行指定用戶的情況下,將會默認按root的權限進行啟動應用程序,為了安全考慮,除非必須使用root權限,絕不使用root權限。
3.2不安裝不必要的軟件
安裝不必要的軟件將擴大攻擊面,帶來巨大的安全隱患。舉個例子,在容器中使用SSH服務將會增加安全管理的復雜性,而容器的SSH服務所提供的shell也能夠被替代,因此應避免使用SSH服務。
3.3鎖定系統(tǒng)中的重要文件
容器中有許多重要的文件,為避免被入侵時這些重要的文件被修改,所以我們應當鎖定相應的文件,以保證不會因重要文件被修改而帶來更大的安全隱患。
3.4配置文件的訪問權限
在實際使用過程中,為滿足業(yè)務需求,需要對受信任的用戶開放相應的權限,Docker鏡像中不正確的權限設置將直接威脅到Docker鏡像的安全,因此需要及時發(fā)現(xiàn)并對這些文件配置合理的訪問權限。
3.5 umask權限掩碼設置
在Docker中umask是一個用于確定權限掩碼的命令,該掩碼決定了為新創(chuàng)建的文件賦予的訪問權限。在容器的運行過程中,不可避免的會產(chǎn)生新的文件,為這些新產(chǎn)生的文件配置合理的訪問權限以保證Docker容器的安全。
3.6配置SELinux安全加固
SELinux提供了強制訪問控制系統(tǒng),SELinux為目前可用的Linux安全模塊中功能全面而且是測試最充分的安全模塊。
3.7驗證鏡像內(nèi)容
默認情況下內(nèi)容信任機制是被禁用的,為了保證鏡像內(nèi)容的可信,需要開啟Docker的內(nèi)容信任機制。
3.8 dockerfile中不儲存涉密信息
若在dockerfile中儲存密碼、令牌、密鑰和用戶機密信息等,出于安全考慮,不應在dockerfile中儲存涉密的信息。
3.9刪除鏡像中setuid和setgid權限
setuid和setgid可用于提升權限,雖然這些權限對有些軟件包來說是必須的,但應考慮為鏡像中不需要的軟件包刪除這些權限以提高Docker鏡像的安全性。
3.10 Dockerfile中使用COPY指令
COPY指令只是將文件從本體主機復制到容器文件系統(tǒng)內(nèi),ADD指令可能會從遠程URL下載文件并執(zhí)行諸如解包等操作。因此,應盡量避免使用ADD指令而選用COPY指令。
3.11容器重啟策略配置
若不設置容器重啟的策略,重啟服務則會不斷的嘗試重啟容器,極端情況可能會造成主機宕機。
3.12驗證Docker客戶端的身份有效性
Docker Registry是Docker官方提供構建私有鏡像倉庫的開源工具,但在使用過程中需要保證Docker Registry自身的安全性,需使用相應的安全證書驗證、配置密碼或雙向SSL機制等來驗證與倉庫進行交互的Docker客戶端的身份有效性。
4結論
本文中對 Docker面臨的鏡像安全威脅進行了梳理,指出了一些可供參考的安全解決方案,可通過Docker容器與傳統(tǒng)虛擬技術優(yōu)勢互補達到發(fā)揮Docker優(yōu)勢的效果。
參考文獻
[1] 魯濤,陳杰,史軍.Docker安全性研究[J].計算機技術與發(fā)展,2018,28(06):121-126.
[2] 楊文林,譚曦,郭俊廷.Docker脆弱性分析與安全增強[J].信息安全與技術,2016,7,74(04):23-25+57.
[3] 郭甲戌,胡曉勤.基于Docker的虛擬化技術研究[J].網(wǎng)絡安全技術與應用,2017(10).
[4] Kerner,Sean M.Red Hat Summit Highlights Docker, RHEL 7.2 Roadmap and More[J].eWeek,2015.
[5] Aljoscha Prtner&Martin Hoffmann&Sebastian Zug.SwarmRob:A Docker-Based Toolkit for Reproducibility and Sharing of Experimental Artifacts in Robotics Research[C].2018 IEEE International Conference on Systems, Man, and Cybernetics (SMC). IEEE,2018.