微軟 Azure Functions 出漏洞 惡意程式可突破 Docker 容器入侵主機
安全廠商 Intezer Lab 公佈 Microsoft Azure Functions 服務一個未修補的漏洞,可能被攻擊者用來擴張權限,並從圈限住應用程式的 Docker 容器中逃逸出來。
這家公司的研究人員研究 Azure 運算基礎架構發現該漏洞後通報微軟,不過微軟認為,這漏洞對 Functions 服務的用戶並未影響安全,因為即使逃逸出容器,主機還有另一層防護,因而未加以修補。
Azure Functions 是無伺服器雲端服務,類似 Amazon AWS Lambda,提供執行事件驅動的程式碼所需的所有基礎架構和資源,使用者無需管理,又能隨需要配置或擴充運算資源。
若結合 Azure Functions 和 Docker,開發人員就能輕易在雲端或本地環境下部署 Azure Functions。
攻擊過程
由於驅動程式碼(如 HTTP 呼叫)會呼叫 Azure Functions,因此研究人員先建立一個 HTTP 驅動器以進入 Functions 容器,作為找出具有根權限行程的據點。然後他們發現一個和 Mesh 二進位檔關聯的高權限行程,這個行程有項漏洞,透過開採漏洞可讓 App 使用者(或攻擊者)執行上述 Functions 的根權限。
研究小組利用外部找到的資源,為這個 Mesh 二進位檔進行逆向工程並成功提升其在 Docker 容器的執行權限。最後,他們以此權限逃脫 Docker 容器,並在主機上執行任意程式碼。
Intezer 研究人員還在 GitHub 上公佈 Docker 主機環境的攻擊概念驗證程式 (PoC)。研究人員指出,這例子說明有時侯漏洞超出使用者掌控,攻擊者可能經由第三方軟體入侵到內部網路。這也說明有必要建立安全架構,以偵測和阻斷攻擊者生產環境下的非授權程式,微軟也推崇這種零信任 (zero trust) 的思維。