DarkSide 勒索病毒變種入侵 Linux 平台:瞄準虛擬機器

本文探討針對 Linux 平台的 DarkSide 勒索病毒變種,說明它如何攻擊 VMware ESXI 伺服器的虛擬機器 (VM) 相關檔案、讀取自己的組態設定,然後終止虛擬機器、將受感染電腦的檔案加密,並且將蒐集到的系統資訊傳送至遠端伺服器。

正如我們上一篇部落格指出,DarkSide 勒索病毒正瞄準美國、法國、比利時、加拿大等地的製造、金融、關鍵基礎建設等產業。DarkSide 勒索病毒可攻擊 Windows 和 Linux 平台。此外,我們也注意到其 Linux 變種專門攻擊 ESXI 伺服器。

🔻延伸閱讀:

DarkSide 勒索病毒與美國輸油管攻擊事件

Darkside再挑釁!癱瘓美東輸油動脈後 又駭進3家企業勒贖

本篇文章探討針對 Linux 平台的 DarkSide 變種,說明該變種如何攻擊 VMware ESXI 伺服器的虛擬機器 (VM) 相關檔案、讀取自己的組態設定,然後終止虛擬機器、將受感染電腦的檔案加密,並且將蒐集到的系統資訊傳送至遠端伺服器。

下表摘要列出 Windows 和 Linux 版本 DarkSide 勒索病毒之間的一些差異:

表 1:Windows 和 Linux 平台的 DarkSide 變種比較

 Windows 變種Linux 變種
加密機制Salsa20 搭配 RSA-1024ChaCha20 搭配 RSA-4096
密碼區塊 (Cipher Block)Salsa20 使用「RtlRandomExW」來隨機產生自訂矩陣。ChaCha20 採用標準的「expand 32-byte k」常數作為初始區塊。
組態設定加密未加密
是否會終止 VM
受影響的檔案組態設定內指定的檔案、資料夾與副檔名「之外」的所有檔案。VMware ESXI 伺服器上的 VM 相關檔案,參考組態設定內指定的副檔名。
新產生的副檔名對受害電腦上的 HWID 套用多次 CRC32 演算法之後衍生而來,例如「.4731c768」。寫在組態設定內 (如「.darkside」) 或在執行時以指令列參數方式傳入。
勒索訊息檔案名稱名稱有一部分是寫在組態設定內 (「README」),然後再加上先前產生的 ID,例如:「README.4731c768.TXT」。寫在組態設定中 (如「darkside_readme.txt」) 或在執行時以指令列參數方式傳入。

Linux 變種分析

攻擊目標

正如先前指出,DarkSide 也有 Linux 平台的變種,因此可感染更多的電腦,進而對對受害網路造成更大傷害。不過此變種相當特殊,主要攻擊 VMware ESXI 伺服器上的 VM 相關檔案,如下圖所示:

Target file extensions
圖 1:Linux 變種所針對的副檔名。

組態設定

與 Windows 變種不同的是,Linux 變種的字串跟組態設定並未加密。Linux 變種在組態設定內指定了樣本的一些特性,如:加密後檔案的副檔名、C&C 網址、執行緒數量,以及被加密的檔案大小最低門檻。

請注意,下圖中的根路徑 (root path,也就是檔案加密的起點) 位於「/vmfs/volumes/」,這也是 ESXI 主機上 VM 檔案的預設位置。 


Configuration of the Linux variant
圖 2:Linux 變種的組態設定。

除了寫死的組態設定之外,勒索病毒在執行時也可以透過指令列參數來增加要感染的檔案,或變更預設的設定。圖 3 顯示惡意程式讀取指令列參數的程式碼。


Linux variant parameter parsing
圖 3:Linux 變種讀取參數的程式碼。

ESXCLI 指令

DarkSide 會執行多種 ESXCLI 指令 (例如 vSphere 指令列介面機制) 來蒐集有關受害 ESXI 主機的相關資訊,例如:執行中的 VM、儲存資訊、vSAN 資訊。

表 2 顯示 DarkSide 在受害電腦上執行的 ESXCLI 指令清單。

表 2:ESXCLI 指令

指令 說明
esxcli –formatter=csv –format-param=fields==”Device,DevfsPathstorage core device list 列出目前註冊的儲存裝置 Devfs Path。 
esxcli –formatter=csv storage filesystem list    列出目前與 ESXI 主機連接的儲存檔案系統。
esxcli –format-param=fields==”WorldID,DisplayName  vm process list 列出目前 ESXI 主機上正在執行的 VM。  
esxcli vsan debug vmdk list 列出 vSAN 中的 VMDK 狀態。
esxcli –format-param=fields==”Type,ObjectUUID,Configurationvsan debug object list 列出 vSAN 物件的 UUID。

以下圖 4 顯示 DarkSide 勒索病毒如何列出 ESXI 上正在執行的虛擬機器。


Listing running VMs
圖 4:列出執行中的 VM。

終止虛擬機器

在執行加密之前,Linux 變種的 DarkSide 勒索病毒會利用下列 ESXI 指令來關閉 ESXI 伺服器上正在執行的 VM:

esxcli vm process kill –type= force –world-id= <WorldNumber>

Terminating running VMs
圖 5:終止正在執行的 VM。



Reporting on VM killing status
圖 6:回報 VM 終止狀態。

加密檔案

Linux 變種 DarkSide 勒索病毒會使用  ChaCha20 串流加密法搭配 RSA-4096 來將受害電腦上的目標檔案加密。

它會搜尋前述組態設定 (或指令列參數) 中指定的根路徑底下的所有檔案,如圖 7 所示。

Linux variant looping across files/directories
圖 7:Linux 變種會搜尋根路徑下的所有檔案/目錄。


在加密之前,勒索病毒會先檢查檔案的大小,確定檔案大小超過組態設定或指令列參數指定的最低門檻。

Linux variant performing a file size check
圖 8:Linux 變種會檢查檔案的大小。

接著,惡意程式會開啟每個目標檔案,讀取組態設定或指令列參數指定的檔案,將內容加密,然後寫回檔案, 如下圖所示:

File encryption
圖 9:檔案加密。


有別於 Windows 變種會呼叫「RtlRandomExW」函式數次來產生自訂的 Salsa20 矩陣,Linux 變種會使用 Chacha20 加密法的「expand 32-byte k」標準常數來加密檔案,如下圖所示:

Using "expand 32-byte k” as a constant in the Chacha20 cipher
圖 10:使用 Chacha20 加密法的「expand 32-byte k」常數。


加密之後,惡意程式會在被加密的檔案加入一個標頭跟一段密碼 (cipher),如圖 11 所示。

Adding code to header
圖 11:在標頭加入一串代碼。



Hex view of the encrypted file
圖 12:加密後的檔案內容 (16 進位檢視)。

勒索病毒的輸出畫面會顯示加密的結果、加密後的檔案名稱、檔案大小檢查之後略過的檔案、加密的時間等等。 


Ransomware output console
圖 13:勒索病毒輸出畫面。

勒索訊息與新產生的副檔名

Linux 變種的 DarkSide 會在受害電腦上留下一份勒索訊息,被加密的檔案也會換成新的副檔名。

有別於 Windows 變種的是,Linux 變種的勒索訊息檔案名稱與加密後的新副檔名,都可以在惡意程式組態設定檔案中指定,或透過指令列參數傳送,而後面也不會再加上一個 ID。

例如我們所分析的樣本,其新的副檔名為「.darkside」,勒索訊息檔案的名稱是「darkside_readme.txt」。

Encrypted folder with ransom note
圖 14:加密後資料夾內的勒索訊息。


C&C 信標訊息

DarkSide 勒索病毒會將受害電腦的系統資訊透過 C&C 信標訊息傳送到組態設定內指定的遠端伺服器。該訊息所蒐集的系統資訊包括:主機名稱、網域、磁碟資訊等等,如圖 15 所示。

System information collection

圖 15:蒐集系統資訊。

蒐集到系統資訊之後,勒索病毒會再附上受害電腦的 UID,格式如下:

System information format
圖 16:系統資訊格式。


接著它會將這些資訊加密編碼之後,發送到組態設定中指定的網址。此外,DarkSide 還會在其網路請求內容當中運用一個 8 個字元的隨機參數來讓 C&C 流令更不容易被受害網路上的 IPS/IDS 裝置所偵測。其網路請求的內容格式如下:

<Random 8-character variable> = <Encrypted collected information> & <Random 8-character variable> = <hardcoded UID>

以下圖 17 顯示惡意程式將蒐集到的系統資訊發送給遠端伺服器的 HTTP POST 請求。

C2 beaconing HTTP traffic
圖 17:C&C 信標 HTTP 流量。


結論

DarkSide 勒索病毒家族的攻擊目標涵蓋了 Windows 和 Linux 雙平台。雖然 Linux 和 Windows 平台的變種之間有些相似之處,但功能上卻不盡相同,例如:加密機制、針對的檔案、勒索訊息檔案名稱、加密後檔案的副檔名,以及 C&C 網址等等。

Linux 變種會使用  ChaCha20  串流加密法搭配 RSA-4096 來將受害電腦上的檔案加密。其主要目標是 VMWare ESXI 伺服器上的 VM 相關檔案,例如 VMDK 檔案。此外,還可以透過指令列參數來指定更多要加密的檔案類型。不僅如此,DarkSide 勒索病毒還會執行 ESXCLI 指令來取得受害電腦的 vSAN 和儲存相關資訊。而且它會先列出受害 ESXI 主機上所有執行中的 VM,將它們終止之後才開始執行加密動作。最後,它會在加密後的目錄內留下一份勒索訊息。

入侵指標資料

C&C 伺服器:

  • catsdegree[.]com
  • securebestapp20[.]com
  • temisleyes[.]com
SHA256趨勢科技偵測名稱
984ce69083f2865ce90b48569291982e786980aeef83345953276adfcbbeece8Ransom.Linux.DARKSIDE.THDBGBA
9cc3c217e3790f3247a0c0d3d18d6917701571a8526159e942d0fffb848acffb
c93e6237abf041bc2530ccb510dd016ef1cc6847d43bf023351dce2a96fdc33b
da3bb9669fb983ad8d2ffc01aab9d56198bd9cedf2cc4387f19f4604a070a9b5

原文出處:DarkSide on Linux:Virtual Machines Targeted 作者:Mina Naiim