研究人員們警告稱,Docker容器很可能成為惡意軟件感染的完美掩飾環(huán)境。
在本屆于拉斯維加斯召開(kāi)的2017美國(guó)黑帽大會(huì)上,Aqu Security公司研究人員Michael Cherny與Sagie Dulce指出,Docker API可被用于實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行與安全機(jī)制回避等目的。
作為開(kāi)發(fā)人員群體當(dāng)中人氣極高的代碼測(cè)試方案,Docker能夠建立起一套完整的IT堆棧(包含操作系統(tǒng)、固件以及應(yīng)用程序),用以在容器這一封閉環(huán)境當(dāng)中進(jìn)行代碼運(yùn)行。盡管其結(jié)構(gòu)本身非常適合實(shí)現(xiàn)代碼測(cè)試,但容器技術(shù)亦可能被攻擊者用于在企業(yè)環(huán)境內(nèi)進(jìn)行惡意軟件感染。
研究人員們解釋稱,攻擊者不僅能夠在企業(yè)網(wǎng)絡(luò)之內(nèi)運(yùn)行惡意軟件代碼,同時(shí)亦可在過(guò)程當(dāng)中配合較高執(zhí)行權(quán)限。
在攻擊當(dāng)中,惡意一方往往會(huì)誘導(dǎo)受害者打開(kāi)受控網(wǎng)頁(yè),而后使用REST API調(diào)用執(zhí)行Docker Build命令,借以建立起能夠執(zhí)行任意代碼的容器環(huán)境。通過(guò)一種名為“主機(jī)重綁定”的技術(shù),攻擊者能夠繞過(guò)同源政策保護(hù)機(jī)制并獲得底層Moby Linux虛擬機(jī)當(dāng)中的root訪問(wèn)能力。
如此一來(lái),攻擊者將能夠竊取開(kāi)發(fā)者登錄憑證、在開(kāi)發(fā)者設(shè)備上運(yùn)行惡意軟件或者將惡意軟件注入至容器鏡像之內(nèi),進(jìn)而在該容器的每一次啟動(dòng)當(dāng)中實(shí)現(xiàn)感染傳播。
作者們解釋稱,“在攻擊完成之后,攻擊者將獲取到受害者網(wǎng)絡(luò)的完全訪問(wèn)能力,并在其中駐留持久代碼。由于這部分代碼運(yùn)行在Moby Linux虛擬機(jī)當(dāng)中,因此很難被檢測(cè)發(fā)現(xiàn)。”
門(mén)扉大開(kāi)
更令人憂心的是,容器與開(kāi)發(fā)者帳戶往往擁有高級(jí)系統(tǒng)訪問(wèn)權(quán)限。當(dāng)在本地開(kāi)發(fā)者的PC設(shè)備上運(yùn)行Docker時(shí),其極易受到跨站點(diǎn)偽造攻擊等入侵手段的影響,意味著攻擊者將能夠利用TCP請(qǐng)求處理等安全缺陷實(shí)現(xiàn)惡意目的。
研究人員們指出,“事實(shí)上,每一位安裝有Docker for Windows的開(kāi)發(fā)者都會(huì)在基本地設(shè)備上直接運(yùn)行Docker。這主要是因?yàn)?,即使Docker守護(hù)程序與容器運(yùn)行在虛擬機(jī)環(huán)境之下,Docker客戶端仍然能夠同主機(jī)守護(hù)程序進(jìn)行通信。”
Aqua Security公司表示其已經(jīng)將其中一種攻擊向量——即存在安全缺陷的TCP組件——上報(bào)至Docker方面,對(duì)方則發(fā)布了更新對(duì)其進(jìn)行修復(fù)。
然而,Cherny與Dulce表示Docker當(dāng)中還存在著其它一些可資利用的漏洞,這不僅可被用于感染容器,同時(shí)亦會(huì)影響到系統(tǒng)上運(yùn)行的其它虛擬機(jī)乃至主機(jī)設(shè)備。
“大家必須對(duì)鏡像進(jìn)行掃描以消除可被利用的惡意軟件或者安全漏洞。另外,運(yùn)行時(shí)保護(hù)機(jī)制能夠幫助您的容器擁有與預(yù)期相符的運(yùn)作效果,且不致執(zhí)行任何惡意行為。”