微軟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)的思維。