云上在野容器攻防戰:“殺”不掉的挖礦木馬
數字化浪潮蓬勃興起,企業面臨的安全挑戰亦日益嚴峻。
騰訊安全近期將復盤2022年典型的攻擊事件,幫助企業深入了解攻擊手法和應對措施,完善自身安全防御體系。
本篇是第二期,講述了國內某高端制造廠商遭遇云上在野容器攻擊,和騰訊安全并肩作戰,擊退挖礦黑產組織的故事。

9月14日,午后。
陽光透過棕黃色的椴樹葉,一縷縷撒在湖面上,泛出了碎金子的光。湖面倒映著一座木質結構的小房子,清清淡淡,融洽地安放在童話般的湖光山色中。
木屋里,X團伙的暗黑計劃正在展開。

X團伙是近兩年極其高調的挖礦家族,坐標D國,他們控制著規模龐大的僵尸網絡,有著先進且快速更新的攻擊工具庫,是目前針對Linux服務器進行挖礦的主要攻擊組織之一。此時,X團伙的十幾位成員正圍坐在一張長桌前,眉飛色舞地探討著新研發的挖礦木馬變種,他們想在圣誕節前快速“收割”一批門羅幣,舒服地度過即將到來的漫長且寒冷的冬季。
下午 6點,X團伙完成了攻擊鏈路的推演,整個過程近乎完美。隨即,一位成員在電腦上按下了enter鍵,掃描器便像洪水般涌入互聯網,迅速蔓延至世界各個角落。
一場針對云數據中心的獵殺行動,拉開了序幕。
嫌疑人X的現身
X團伙2019年就出現在大眾視野,這個組織的專業水平頗高,攻擊策略和工具千變萬化,攻擊威力很大。特別是近幾年云原生技術蓬勃興起,容器技術和集群編排工具被廣泛應用,網絡安全邊界進一步模糊,X團伙的攻擊活動就更加猖狂了。
此次的挖礦木馬變種便是通過掃描 Docker Remote API未授權訪問漏洞進行傳播,并且入侵動作更加隱蔽。Docker Remote API是一個 用于遠程調用 Docker的 API,可以讓容器的調用更加靈活、簡單。若 管理員對其配置不當則會導致未授權訪問漏洞,攻擊者不僅可以植入病毒,甚至可進一步利用 Docker自身特性,借助容器逃逸,最終控制整個集群。
第二天清晨 7點,X團伙的成員TOM醒來,他吸了吸鼻子,空氣中涼意濃濃,冬天即將到來,行動需要加快。他迅速起身,開始為自己做一杯手磨咖啡。這時, 他瞥了眼電腦屏幕,不出所料,他們 放出的掃描器掃出了大量的漏洞。
7點30分,TOM端著磨好的咖啡坐到電腦前,開始瀏覽這些待宰的羔羊。一個距離他8000多公里的IP吸引了他的注意,他快速敲了幾行代碼,獲取了這個IP所在公司的信息——一家知名的中國高端制造廠商S公司。
TOM嘴角微微上揚,他發現S公司的一個Docker Remote API并沒有配置鑒權,也就是說誰都可以調用,并且這個集群是開放公網的。 就像羊圈在不起眼之處開了個口子,他可以隨意出入。
通過這個 Remote API漏洞,TOM迅速遠程啟動了傳播病毒的容器鏡像 alpineos/docker api ,這個鏡像非常小,很難被發覺。接著,這個惡意鏡像快速下載了一個挖礦腳本,開始與礦池通訊,并利用容器的算力進行挖礦。
從入侵到挖礦,整個過程非常絲滑,TOM看了眼手表,不到三分鐘。

S公司有上萬臺云主機,對挖礦組織來說是不可多得的肥羊。如果能逃逸到主機拿下最高權限,就可以利用更大的算力進行挖礦。不僅如此,他還可以以主機為跳板,在內網進行橫向擴散,獵取S公司的核心機密數據。
想到這里, TOM拿起杯子喝了一大口咖啡,打起精神開始下一步的進攻。
殺不掉的挖礦木馬
“我×,我們被挖礦了!”
“什么?我看看!"
S公司的安全運維工程師Eric看著電腦屏幕上的CPU監測窗口,陡增的折線赫然在眼前。 其他幾個工程師聞聲而來,難以相信眼前這一幕,因為他們之前并沒有發現惡意外連和疑似挖礦的進程。

實際上,入侵者 TOM在植入挖礦病毒后,通過新工具隱藏了挖礦進程,并且將痕跡清理干凈了。S公司發現的時候,TOM已經通過特權模式+SSH的逃逸方法,逃逸到宿主機上,并且將挖礦病毒擴散到了容器節點上。
“趕緊斷網,殺毒!”Eric迅速把主機斷網,然后用殺毒軟件將挖礦木馬清除。但是,Eric不敢確定其他節點上是否也被植入了挖礦木馬,他的神經緊繃著。
S公司是國內知名的高端制造企業,也是行業內最早進行數字化轉型的企業之一,在前幾年就開始探索云原生技術和業務容器化。雖然國內的容器起步較晚,但是在國際上,容器概念已經登上了尖端計算技術的最前沿。
通常情況下,運行一臺云主機運行最少要 1G內存,但是對于容器而言,只需要幾M-幾十M就能跑起來。所以,容器憑借其靈活易用、適配性強和資源利用率高等優勢,受到越來越多公司的青睞。而S公司,也從去年開始逐步將生產網容器化。
不過,對于很多企業來說,容器是一把雙刃劍。一臺主機可以拉起成千上萬個容器,也意味著邊界和暴露面被無限放大。因此,容器在近幾年也成為了攻擊者的天堂。
第三天, TOM發現植入S公司的挖礦進程少了許多。挖礦木馬被發現其實是TOM意料之中的事,畢竟S公司是頭部的高端制造企業,安全建設應該是不錯的。不過,S公司的殺毒行為治標不治本,只要 Docker Remote API未授權訪問漏洞沒補上,他們就能夠繼續拉起挖礦腳本進行挖礦。
TOM伸了個懶腰,開始了更加猛烈的進攻。
很快, S公司的安全運維團隊就發現CPU被快速占用。“他又來了!”Eric揉了揉眼睛,緊忙開啟了主機安全的防御,并對相應的節點進行查殺,CPU占用逐漸下去了。
這時, Eric腦海里浮現了此前特斯拉的Kubernetes集群被入侵挖礦的事件,他們的共同點就是集群的Dashboard 處于未授權即可訪問狀態,且暴露在互聯網上。
“我們可能跟特斯拉犯了一樣的錯誤。”
一通電話,迅速馳援
9月16日,晚上7點,深南大道華燈初上。
正在食堂吃晚飯的騰訊容器安全專家 ruchang接到了同事的緊急來電。

“S公司的節點失陷了,被挖礦了。他們公司連續查殺了好幾次,挖礦木馬怎么都殺不掉,需要我們的幫助!”
ruchang掛了電話后,迅速吃完盤中的飯菜。“難道是他們?” ruchang邊進電梯邊思索著。
回到工位上, ruchang迅速通過S公司給的運維權限進行問題排查。
首先,他用騰訊容器安全TCSS產品對失陷節點上運行的容器鏡像進行了漏洞掃描。“木馬源源不斷,肯定是出了漏洞。” 就像不斷被偷的羊圈,殺掉偷羊的狼是不夠的,得找出羊圈隱秘之處的窟窿。
幾分鐘后,騰訊容器安全 TCSS產品掃描完畢,電腦屏幕顯示某個節點上存在的Docker Remote API未授權訪問漏洞。
“問題不大,是有一個Docker Remote API未授權訪問漏洞,你們按照官方的認證措施更改一下配置就好了,改成需要鑒權且加密。”ruchang在企業微信群里跟S公司的運維人員說到。“還好發現得早,攻擊者沒有入侵到集群 。 ”
找出漏洞之后, ruchang繼續排查,他想找出背后的真兇。他迅速瀏覽著安全日志和告警信息,嘗試回溯整個攻擊鏈路,包括通過哪個服務端口拉進來的鏡像,攻擊者入侵后進行了哪些橫移,以及這個挖礦木馬背后的組織是哪個。
“果然是他們!”原來,在9月14日X團伙的新挖礦樣本剛發出,騰訊云鼎實驗室的哨兵系統就在第一時間捕獲,并進行了詳細的分析。 這個攻擊案件的各種細節和哨兵系統捕獲的樣本一一吻合。
S公司其實犯了80%的公司都會犯的問題——配置錯誤。 由于容器技術在國內起步較晚,很多公司也都是摸著石頭過河。 S公司在測試容器業務時,也沒有意識到要對相關的配置安全進行掃描以及合規整改。并且在沒有部署容器安全的情況下,就開啟了試運行。
對此,騰訊安全也為云上客戶推出了容器安全TCSS產品,保障容器從鏡像生成、存儲到運行時的全生命周期安全。在構建和部署階段,騰訊云容器安全可提供鏡像、容器、集群的配置掃描和漏洞掃描能力,避免出現類似S公司因配置錯誤導致的漏洞事件。在容器運行時,騰訊云容器安全也能夠自適應識別黑客攻擊,實時監控和防護容器運行時安全。
晚上 8點10分,S公司在企業微信群里反饋漏洞已修復,并且采購了全量的騰訊云容器安全產品。
TOM也很快發現漏洞被封堵住了,他冷笑了一下,"Kind of interesting(有點意思)." 隨即TOM關掉了S公司的挖礦頁面,轉向了其他的攻擊目標。
X團隊的暗黑計劃不會停止,我們與黑產的暗戰也不會結束。