隨著越來越多開發人員在企業及雲端服務內部署容器,關鍵資料一不小心就可能因為資安控管不良而暴露在外,成為歹徒覬覦的目標。目前已發現有駭客精心製作了專門用來跳脫特權容器的惡意程式,若跳脫成功就能取得主機電腦的所有系統管理權限,危害很大。
微服務架構的簡易性與彈性,已使得越來越多企業機構開始採用微服務。事實上,根據一份2019年調查指出,89%的技術領導人認為,微服務是企業在不斷演變的數位世界維持競爭力的必要關鍵。隨著越來越多開發人員在企業及雲端服務內部署容器,一些關鍵資料一不小心就可能因為資安控管不良而暴露在外,成為歹徒覬覦的目標。目前持續發現各種針對微服務組態設定錯誤的攻擊,例如在暴露在外的Redis執行個體當中發現虛擬加密貨幣挖礦惡意程式,以及歹徒經由Docker Hub社群提供容器映像來散布惡意容器。
曾經在某起攻擊當中發現,虛擬加密貨幣挖礦程式會搜尋受害的Linux系統上是否有其他現有的挖礦程式並將它們清除,藉此獨占所有系統運算資源。從這起攻擊就能看出歹徒對於Docker和Redis的熟悉度,他們專門蒐尋這些平台所暴露的應用程式開發介面(API)。
不過,接下來要探討的是一個截然不同的案例,駭客精心製作了一個專門用來跳脫特權容器(Privileged Container)的惡意程式,跳脫成功之後就能取得主機電腦的所有系統管理(Root)權限。有一點很重要且須注意的是,Docker在預設情況下並不會自動配置特權容器,而絕大多數的Docker使用者所用的都不是特權容器,這也證明使用特權容器卻不知如何正確加以保護是不智之舉。
技術層面分析
2019年7月,Google Security Team研究員Felix Wilhelm在Twitter上發文公布一種概念驗證(PoC)攻擊展示如何利用cgroups release_agent功能就能輕而易舉跳脫一個Docker特權容器,或Kubernetes Pod。 同樣地,趨勢科技團隊最近也遇到一種可跳脫該團隊架設之誘捕環境容器的攻擊手法,如圖1所示。
根據趨勢科技的分析顯示,駭客的來源IP位於英國和法國,其在一台Docker主機上部署並執行一個惡意容器,利用一個名為「calm.sh」的指令列腳本來入侵,這個腳本接著再植入另一個名為「cmd」的指令列腳本。calm.sh會呼叫一個偽裝成nginx的應用程式,但它其實是一個ELF格式的虛擬加密貨幣挖礦程式。駭客只是利用「nginx」這個名字來讓人以為它是HTTP伺服器,藉此避人耳目。
趨勢科技團隊的誘捕環境最近被一些網路掃描工具找到,目前這類掃描工具在一些針對容器的攻擊中非常盛行。這個名為「zgrab」的掃描程式會尋找暴露在外的容器API,駭客透過以下連線在系統上部署惡意容器(圖2)。
駭客使用API的「create」指令從容器登錄拉取(Pull)一個名為「gin」的容器映像。部署時,更指定「Privileged」這個參數,以便容器跳脫(Container Escapes)技巧發揮作用,如圖3所示。
就算沒跳脫成功,駭客也會趁機在受害的伺服器上執行一個虛擬加密貨幣挖礦程式,如圖4所示,這類程式不需特權容器就能執行。
這個挖礦程式是一個ELF格式的檔案,檔名為「nginx」,它同時也會暗藏在某個惡意容器映像當中,如圖5所示。挖礦程式會偽裝成正常的系統服務,在背後偷偷耗光容器的所有資源來挖礦。
漏洞掃描是否足以確保容器映像安全
確保容器映像安全無虞的一個重要步驟,就是掃描容器是否含有漏洞。然而,容器安全卻不能單靠漏洞掃描,資安團隊還是要定期掃描容器映像內是否含有惡意程式或惡意檔案。
上述案例中的「nginx」檔案早已是趨勢科技威脅情報與產品都能夠掌握的惡意程式,所以防護引擎能迅速偵測。一般人常以為Linux作業系統應該不會出現這類威脅和風險,但由於許多企業機構都開始移轉到雲端,並在一些關鍵營運作業當中採用Linux系統,所以駭客已經將目光轉向Linux系統。
結語
駭客已開始鎖定熱門的DevOps技術,並試圖尋找新的方法來攻擊容器和雲端環境。我們之前分析的案例絕大多數都不會做任何安全檢查,然而駭客似乎正在嘗試任何可能的辦法來驗證哪條路行得通、哪些行不通。現在,駭客的技巧已經逐漸純熟,他們現在會嘗試透過一些安全掃描來找出容器實作上的漏洞,看看能不能跳脫容器到主機層次,或者植入挖礦程式以利用受害主機的資源為自己賺錢。
<本文作者:趨勢科技全球技術支援及研發中心/本文出自趨勢科技資安部落格,是由趨勢科技資安威脅研究員、研發人員及資安專家全年無休協力合作,發掘消費者及商業經營所面臨層出不窮的資安威脅,進行研究分析、分享觀點並提出建議。>