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