0
| 本文作者: 貝爽 | 2020-06-14 17:15 |
Azure Kubernetes又被盜了!
6月10日,微軟Azure安全中心(ASC)正式發(fā)出警告,黑客正在對Kubernetes集群中的機(jī)器學(xué)習(xí)工具包Kubeflow安裝加密貨幣曠工,試圖利用CPU資源挖掘Monero虛擬貨幣XMRIG。這項(xiàng)惡意“開采”行動于4月份開始,已對數(shù)十個Kubernetes集群造成污染。ASC調(diào)查發(fā)現(xiàn),黑客攻擊Kubeflow是因?yàn)橛脩舾牧四J(rèn)設(shè)置。

4月初,ASK在監(jiān)視和防御AKS上運(yùn)行的數(shù)千個Kubernete集群時,發(fā)現(xiàn)許多不同集群在公共資源庫中部署了可疑映像。經(jīng)監(jiān)測分析發(fā)現(xiàn),這些可疑映像正在運(yùn)行著XMRIG采礦機(jī)。

從映像所運(yùn)行的各個集群來看,它們中的大多數(shù)都運(yùn)行著Kubeflow。這一事實(shí)表明,此次惡意攻擊的訪問媒介正是機(jī)器學(xué)習(xí)框架Kubeflow。
Kubernetes是一款開源的容器編排引擎,它支持自動化部署、大規(guī)模可伸縮、應(yīng)用容器化管理。在生產(chǎn)環(huán)境中部署一個應(yīng)用程序時,通常要部署該應(yīng)用的多個實(shí)例以便對應(yīng)用請求進(jìn)行負(fù)載均衡。在Kubernetes中可以創(chuàng)建多個容器,每個容器里面運(yùn)行一個應(yīng)用實(shí)例,然后通過內(nèi)置的負(fù)載均衡策略,實(shí)現(xiàn)對這一組應(yīng)用實(shí)例的管理、發(fā)現(xiàn)和訪問。Kubeflow就是其中一個用于機(jī)器學(xué)習(xí)任務(wù)的運(yùn)行實(shí)例。
隨著Kubernetes功能越來越強(qiáng)大,其攻擊案例也日漸增多。不過針對Kubeflow的攻擊卻是第一次。ASC安全研究軟件工程師Yossi Weizman補(bǔ)充說:“由于用于ML任務(wù)的節(jié)點(diǎn)往往相對強(qiáng)大,有時甚至包括GPU,因此對于加密礦工來說,它們是有吸引力的目標(biāo)”。
另外,Kubeflow是一個容器化服務(wù),各種任務(wù)作為容器運(yùn)行在集群中。 因此,如果攻擊者以某種方式可以訪問Kubeflow,則他們可以通過多種方式在集群中運(yùn)行其惡意映像。不過在默認(rèn)配置下,外部對Kubeflow攻擊很難成功。
Kubeflow功能可通過連接到儀表板的API服務(wù)器使用,用戶可利用該儀表板來管理其任務(wù)。 而儀表板只能通過位于群集邊緣的Istio入口網(wǎng)關(guān)使用。 這對于Kubeflow來說是一個非常安全的防護(hù)墻。
但是,部分用戶為了便于訪問會更改這項(xiàng)默認(rèn)設(shè)置,將Istio服務(wù)修改為Load-Balancer。這樣可以免于通過網(wǎng)關(guān)而直接訪問儀表板,但也相當(dāng)于將儀表板直接暴露到了互聯(lián)網(wǎng)上,任何人都可以直接訪問,并對Kubeflow功能進(jìn)行更改。
Kubeflow功能面板
另外,如果攻擊者可以訪問儀表板,那么他們也可以通過多種方法在集群中部署新容器。以下是兩種常見的方式:
訪問Kubeflow的用戶可以創(chuàng)建Jupyter筆記本服務(wù)器,同時為筆記本服務(wù)器選擇映像,包括自定義的映像。該映像并不要求一定是合法的,因此攻擊者可以使用此功能運(yùn)行自己的映像。

從Jupyter筆記本中部署惡意容器:攻擊者可以使用新的或現(xiàn)有的筆記本來運(yùn)行其Python代碼。該代碼從筆記本服務(wù)器運(yùn)行,筆記本服務(wù)器本身就是一個帶有已安裝服務(wù)帳戶的容器。該服務(wù)帳戶(默認(rèn)配置)具有在其名稱空間中部署容器的權(quán)限。因此,攻擊者可以使用它在群集中部署新容器。

ASC研究員Yossi Weizman表示:本次事件中,黑客使用暴露的Kubeflow儀表獲得了對Kubernetes集群的初始訪問權(quán)限。集群中的執(zhí)行和持久性由集群中部署的容器執(zhí)行。 攻擊者設(shè)法使用已安裝的服務(wù)帳戶橫向移動并部署了容器。 最后,攻擊者通過運(yùn)行加密貨幣礦工對集群產(chǎn)生了影響。
如果用戶想要調(diào)查他們的集群找那個是否有被攻擊的Kubeflow實(shí)例,Weizman提供了以下步驟:
確認(rèn)惡意容器未部署在群集中,可按以下命令可以檢查:
kubectl get pods –all-namespaces -o jsonpath=”{.items[*].spec.containers[*].image}” | grep -i ddsfdfsaadfs
如果將Kubeflow部署在群集中,需要確保其儀表板未暴露于Internet:通過以下命令檢查Istio入口服務(wù)的類型,可以確保它不是具有公共IP的負(fù)載平衡器:
kubectl get service istio-ingressgateway -n istio-system
對于此次因更改默認(rèn)配置引來的黑客攻擊,有用戶吐槽說,“云服務(wù)器的安全性需要專業(yè)人員的定期維護(hù)和管理,所以我不會在自己的工作中使用云服務(wù)器”。

其實(shí),對于云服務(wù)器的安全性問題一直備受爭議。除了Kubernetes外,Docker應(yīng)用容器引擎也經(jīng)常成為黑客攻擊的目標(biāo)。去年10月,大約有2000多臺不安全的Docker引擎主機(jī)被一個名為Graboid的蠕蟲挖礦劫持。除此之外,使用Kinsing惡意軟件開采比特幣的行動也正在迅速傳播。
本次挖礦事件雖然只是感染了數(shù)十個集群,但是也引起了用戶的廣泛關(guān)注。對于容器化技術(shù)頻繁遭到加密劫持的事件,有用戶批評說,“比特幣本應(yīng)該改變或至少重新定義傳統(tǒng)的數(shù)字貨幣流程,但最終變成了某種盜賊的行會票據(jù),真是浪費(fèi)!
同時,有網(wǎng)友樂觀的表示,挖礦劫持的犯罪行為終會消失。
那么,對于功能強(qiáng)大與安全隱患并存的云計(jì)算服務(wù)平臺,你還會使用嗎?
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
引用來源:
https://www.infosecurity-magazine.com/news/kubernetes-hit-kubeflow/
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。