?
This document uses PHP Chinese website manual Release
此頁面列出了Docker緩解的安全漏洞,這樣在Docker容器中運(yùn)行的進(jìn)程就不會受到錯誤的攻擊--甚至在修復(fù)之前也是如此。這假設(shè)容器在不添加額外功能的情況下運(yùn)行,或者不以--privileged
...
下面的列表甚至還沒有遠(yuǎn)程完成。相反,它是我們實(shí)際上注意到的幾個(gè)bug的樣本,這些bug吸引了安全審查和公開披露的漏洞。很有可能,沒有報(bào)告的bug數(shù)量遠(yuǎn)遠(yuǎn)超過了那些有報(bào)告的錯誤。幸運(yùn)的是,由于Docker的方法默認(rèn)情況下通過設(shè)備、seccomp和下降功能進(jìn)行安全保護(hù),因此它可能會像對已知錯誤一樣減輕未知的錯誤。
bug減輕:
CVE-2013至1956年,1957年,1958年,1959年,1979年,CVE-2014-4014,5206,5207,7970,7975,CVE-2015至2925年,8543,CVE-2016-3134,3135,等:引進(jìn)非特權(quán)用戶命名空間導(dǎo)致非特權(quán)用戶可用的攻擊面大幅度增加,因?yàn)檫@些用戶可以合法訪問以前只有根系統(tǒng)的調(diào)用,如mount()
。所有這些CVE都是由于引入用戶命名空間而導(dǎo)致的安全漏洞的示例。Docker可以使用用戶命名空間來設(shè)置容器,但是不允許容器內(nèi)的進(jìn)程通過默認(rèn)的seccomp配置文件創(chuàng)建它自己的嵌套命名空間,這使得這些漏洞無法被利用。
CVE-2014-0181,CVE-2015-3339:這些是需要存在setuid二進(jìn)制文件的錯誤。Docker通過NO_NEW_PRIVS
進(jìn)程標(biāo)志和其他機(jī)制禁用容器內(nèi)的setuid二進(jìn)制文件。
CVE-2014-4699*一個(gè)竊聽器ptrace()
可能允許權(quán)限提升。碼頭工人ptrace()
在容器內(nèi)使用儀器,Seccomp和通過下降CAP_PTRACE
.三倍的保護(hù)層%21
CVE-2014-9529:一系列手工制作keyctl()
調(diào)用可能導(dǎo)致內(nèi)核DoS/內(nèi)存損壞。碼頭工人keyctl()
容器內(nèi)部使用Seccomp。
CVE-2015-3214,4036:這些都是常見的虛擬化驅(qū)動程序中存在錯誤,可能允許來賓操作系統(tǒng)用戶在主機(jī)操作系統(tǒng)上執(zhí)行代碼。利用它們需要訪問guest虛擬機(jī)中的虛擬設(shè)備。運(yùn)行時(shí),Docker隱藏了對這些設(shè)備的直接訪問--privileged
。有趣的是,這些似乎是容器比虛擬機(jī)“更安全”的情況,違背了虛擬機(jī)比容器“更安全”的普遍看法。
CVE-2016-0728:使用巧盡心思構(gòu)建的免費(fèi)后使用。keyctl()
呼叫可能導(dǎo)致權(quán)限升級。碼頭工人keyctl()
在容器中使用默認(rèn)的Seccomp配置文件。
CVE-2016-2383eBPF中的一個(gè)bug--這是一種特殊的內(nèi)核內(nèi)DSL,用于表示諸如seccomp過濾器之類的東西--允許任意讀取內(nèi)核內(nèi)存。大bpf()
具有諷刺意味的是,系統(tǒng)調(diào)用在Docker容器中使用%28%29 seccomp被阻塞。
CVE-2016-3134,4997,4998:在setsockopt的同一個(gè)錯誤IPT_SO_SET_REPLACE
,ARPT_SO_SET_REPLACE
和ARPT_SO_SET_REPLACE
導(dǎo)致內(nèi)存損壞/本地權(quán)限提升。這些參數(shù)被阻塞CAP_NET_ADMIN
,默認(rèn)情況下Docker不允許這樣做。
錯誤沒有得到緩解:
CVE-2015-3290,5157:在內(nèi)核的非屏蔽中斷處理允許權(quán)限提升缺陷??梢栽贒ocker容器中被利用,因?yàn)?code>modify_ldt()系統(tǒng)調(diào)用當(dāng)前未被seccomp阻止。
CVE-2016-5195:在Linux內(nèi)核的內(nèi)存子系統(tǒng)處理專用只讀內(nèi)存映射的寫時(shí)復(fù)制(COW)破壞方式中發(fā)現(xiàn)競爭情況,這種方式允許非特權(quán)本地用戶獲得對只讀內(nèi)存的寫入訪問權(quán)限,只有記憶。也稱為“臟COW”。部分緩解措施:在某些操作系統(tǒng)上,此漏洞通過seccomp過濾ptrace
和/proc/self/mem
只讀操作的組合進(jìn)行緩解。