在享受容器帶來(lái)的輕量與靈活的同時(shí),我們也必須面對(duì)一個(gè)現(xiàn)實(shí)問題:安全隱患??。
容器并不是天然安全,錯(cuò)誤配置甚至可能讓攻擊者“越獄”入侵主機(jī)!本篇將帶你從多個(gè)層面強(qiáng)化Docker的安全防護(hù),構(gòu)建真正可放心上線的容器系統(tǒng)?
一、用戶隔離與容器逃逸風(fēng)險(xiǎn)
雖然容器技術(shù)看起來(lái)像虛擬機(jī),但它本質(zhì)上還是運(yùn)行在宿主機(jī)上的進(jìn)程隔離技術(shù)。
常見風(fēng)險(xiǎn):
?默認(rèn)容器運(yùn)行在root用戶下,權(quán)限過高
?錯(cuò)誤掛載主機(jī)目錄,可能泄露主機(jī)敏感數(shù)據(jù)
?部分內(nèi)核漏洞可被利用,造成“容器逃逸”
建議做法:
使用非root用戶運(yùn)行容器
避免掛載敏感目錄(如/etc/,/var/run/docker.sock)
定期升級(jí)宿主機(jī)內(nèi)核,打補(bǔ)丁
二、最小權(quán)限原則:不給多一分權(quán)限
“只給程序完成工作所必需的最小權(quán)限”是一切系統(tǒng)安全的核心原則。
在Docker中可以通過功能控制(Capability)來(lái)精細(xì)化控制容器的能力。
??三、使用--cap-drop限制容器權(quán)限
Linux系統(tǒng)為進(jìn)程劃分了約30多種Capabilities,Docker默認(rèn)會(huì)給予容器一整套,但其實(shí)很多容器根本不需要這么多權(quán)限。
示例:運(yùn)行一個(gè)最小權(quán)限容器
dockerrun--cap-dropALL--cap-addNET_BIND_SERVICEnginx
含義:
--cap-dropALL:先移除所有默認(rèn)權(quán)限
--cap-addNET_BIND_SERVICE:只加回nginx綁定低端口所需權(quán)限
?四、使用Seccomp限制系統(tǒng)調(diào)用
Seccomp(SecureComputingMode)是一種Linux內(nèi)核安全特性,用于控制容器內(nèi)程序可以調(diào)用哪些系統(tǒng)調(diào)用(syscalls)。
啟用自定義seccomp配置:
dockerrun--security-optseccomp=/path/to/seccomp-profile.jsonnginx
Docker默認(rèn)已經(jīng)啟用了一份較為嚴(yán)格的seccomp策略,大多數(shù)應(yīng)用已足夠使用。但你可以根據(jù)業(yè)務(wù)自定義更嚴(yán)的策略
官方文檔地址:
https://docs.docker.com/engine/security/seccomp/
五、鏡像安全掃描工具推薦
即使容器配置正確,如果你拉取的鏡像本身存在漏洞,也會(huì)造成嚴(yán)重隱患。
以下是幾個(gè)主流鏡像安全掃描工具,推薦在CI/CD階段集成使用:
1.Trivy(推薦)
支持鏡像、本地文件、Git倉(cāng)庫(kù)掃描
能識(shí)別系統(tǒng)漏洞、語(yǔ)言依賴庫(kù)漏洞
開源免費(fèi),支持CLI、CI/CD、WebUI
trivyimagenginx:latest
2.Clair(CoreOS出品)
支持靜態(tài)分析鏡像層
與Harbor等私有鏡像倉(cāng)庫(kù)配合良好
3.DockerHub的自動(dòng)掃描功能(需登錄)
部分鏡像自動(dòng)啟用漏洞掃描
適合小團(tuán)隊(duì)簡(jiǎn)單監(jiān)測(cè),但靈活性較弱
六、額外的安全增強(qiáng)建議
示例:?jiǎn)?dòng)一個(gè)高度隔離的Nginx容器
dockerrun-d\--namesecure-nginx\--cap-dropALL\--cap-addNET_BIND_SERVICE\--read-only\--security-optno-new-privileges:true\nginx
你已經(jīng)做到了:
非特權(quán)運(yùn)行
限制系統(tǒng)調(diào)用
最小能力集
文件系統(tǒng)只讀
這才是真正“安全容器”的正確打開方式
總結(jié)回顧
軍刀已經(jīng)落后,二戰(zhàn)時(shí),為何日軍還要給每一個(gè)軍官配刀呢
1935 年推出的95 式軍刀則面向士官階層,完全采用機(jī)器沖壓工藝,刀柄刻有序列號(hào),護(hù)手為黃銅壓制的“旭日紋”。這種“量產(chǎn)版”軍刀生產(chǎn)成本僅為94 式的三分之一,卻在諾門罕戰(zhàn)役中表現(xiàn)出色——日軍第23 師團(tuán)的士官們發(fā)現(xiàn),95 式軍刀在零下30 度的環(huán)境中不易脆裂,劈砍蘇軍騎兵時(shí)“刀刃回彈流暢 短劍,即“軍人魂”,與禮刀、軍刀一同構(gòu)成了軍官的常規(guī)服飾裝備_。 在軍隊(duì)中,它作為一種常規(guī)佩掛之物,相較于禮刀和軍刀(兩者實(shí)為同一形制的全長(zhǎng)94公分的指揮刀,主要區(qū)別在于裝飾的繁簡(jiǎn))更為普及且廣受歡迎__。隨著時(shí)間的推移,禮軍兩刀逐漸式微,而“軍人魂”卻獨(dú)樹一幟,成為了“國(guó)軍”的一種獨(dú)特象征后面會(huì)介紹。探索世界特種兵軍刀:揭示決戰(zhàn)之道與和平之思