Docker再曝安全漏洞,這次是PWD的問題

weixin_34253539發表於2019-01-15

近日,網路安全公司CyberArk的研究人員發現了一種破解流行Play-with-Docker(PWD)站點的方法,可繞過容器隔離邊界限制,直接獲取使用者檔案。不過,該錯誤配置目前已被修復。

近年來,容器已成為應用程式部署越來越流行的方法,為執行和管理本地和雲工作負載提供了一種靈活的工作方式。近日,安全公司Cyber Ark稱發現Play-with-Docker存在安全風險,攻擊者可輕鬆訪問主機系統資源。隨後,研究人員向Play-with-Docker維護人員披露了此問題,目前該錯誤已得到解決。

PWD主要提供線上資源,讓開發人員可以輕鬆瞭解和使用流行的Docker容器應用程式技術。容器和應用程式在作業系統中是互相隔離的,常規狀態是使用者無法繞過容器隔離限制檢視底層主機作業系統。

但是,該安全公司表示可以利用Linux容器的固有弱點繞開隔離限制,與在每個例項中載入核心的虛擬機器不同,容器共享相同的核心程式碼,這是Linux容器和Docker得以快速和敏捷的原因,但這也是其致命弱點。

如何找到該漏洞?

研究團隊通過使用debugfs,這是一個預裝作業系統的Linux工具,用於探測底層主機的檔案系統,輕鬆檢視主機硬碟資訊,並可從主機檔案系統獲取檔案以準備攻擊。

研究人員表示,除此之外,只需讀取容器上的檔案,例如內部proc/、dev/和sys/,同樣可以指向核心,通過檢視容器中指向底層Linux核心的檔案,研究人員可以繪製容器的邊界並測試其許可權。比如,使用者可從容器讀取有關底層主機CPU資訊,載入VM型別,底層作業系統是否針對Specter和Meltdown的某些變體進行修補,Bios版本等,還可通過檢查容器使用者的Linux功能來設定容器邊界,看到容器使用者被允許載入的Linux核心模組等。

都是容器許可權的鍋?

該問題與使用所謂的特權容器有關,Docker使用特權標誌來建立特權容器,但根據調查,PWD使用特權容器,但沒有正確保護它們。特權容器比非特權容器具有更多操作和訪問許可權控制。Docker容器技術提供了許多幫助保護容器的機制,其中一種方法是使用所謂的使用者名稱空間。通過使用者名稱空間,研發人員可在Docker上執行各應用程式和程式,具有更多可見性和控制許可權。

在許多情況下,應用程式需要比使用者名稱空間容器具備更多特權。保護容器隔離的一種方法是使用虛擬機器VM管理程式進行額外的虛擬化抽象,VM可以在虛擬作業系統與底層作業系統之間建立更嚴格的隔離邊界。

如果PWD將每個容器放在單獨的VM中,那麼這次攻擊就不會發生。研究表明,虛擬機器和Linux容器之間的區別與漏洞直接有關。Linux容器更加靈活,每個例項使用相同的核心程式碼,這就是造成漏洞的主要原因。

企業也可以通過多種方式選擇在VM中執行容器。 例如,AWS於2018年11月宣佈Firecracker技術,作為隔離容器的虛擬機器管理器(VMM)方法。 另一個選擇是Kata Containers,這是由OpenStack基金會維護的專案。此外,容器也可在傳統虛擬化技術中執行,比如VMware。

目前,PWD方面通過阻止容器中的核心模組載入,避免了此次漏洞風險。但是,團隊也在尋找更有用高效的輔助工具,最大限度降低和控制風險。

參考連結:https://www.eweek.com/security/researchers-reveal-play-with-docker-security-vulnerability

相關文章