勒索病毒
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-1024 | ChaCha20 搭配 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 相關檔案,如下圖所示:
組態設定
與 Windows 變種不同的是,Linux 變種的字串跟組態設定並未加密。Linux 變種在組態設定內指定了樣本的一些特性,如:加密後檔案的副檔名、C&C 網址、執行緒數量,以及被加密的檔案大小最低門檻。
請注意,下圖中的根路徑 (root path,也就是檔案加密的起點) 位於「/vmfs/volumes/」,這也是 ESXI 主機上 VM 檔案的預設位置。
除了寫死的組態設定之外,勒索病毒在執行時也可以透過指令列參數來增加要感染的檔案,或變更預設的設定。圖 3 顯示惡意程式讀取指令列參數的程式碼。
ESXCLI 指令
DarkSide 會執行多種 ESXCLI 指令 (例如 vSphere 指令列介面機制) 來蒐集有關受害 ESXI 主機的相關資訊,例如:執行中的 VM、儲存資訊、vSAN 資訊。
表 2 顯示 DarkSide 在受害電腦上執行的 ESXCLI 指令清單。
表 2:ESXCLI 指令 | |
指令 | 說明 |
esxcli –formatter=csv –format-param=fields==”Device,DevfsPath” storage 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,Configuration” vsan debug object list | 列出 vSAN 物件的 UUID。 |
以下圖 4 顯示 DarkSide 勒索病毒如何列出 ESXI 上正在執行的虛擬機器。
終止虛擬機器
在執行加密之前,Linux 變種的 DarkSide 勒索病毒會利用下列 ESXI 指令來關閉 ESXI 伺服器上正在執行的 VM:
esxcli vm process kill –type= force –world-id= <WorldNumber>
加密檔案
Linux 變種 DarkSide 勒索病毒會使用 ChaCha20 串流加密法搭配 RSA-4096 來將受害電腦上的目標檔案加密。它會搜尋前述組態設定 (或指令列參數) 中指定的根路徑底下的所有檔案,如圖 7 所示。
在加密之前,勒索病毒會先檢查檔案的大小,確定檔案大小超過組態設定或指令列參數指定的最低門檻。
接著,惡意程式會開啟每個目標檔案,讀取組態設定或指令列參數指定的檔案,將內容加密,然後寫回檔案, 如下圖所示:
有別於 Windows 變種會呼叫「RtlRandomExW」函式數次來產生自訂的 Salsa20 矩陣,Linux 變種會使用 Chacha20 加密法的「expand 32-byte k」標準常數來加密檔案,如下圖所示:
加密之後,惡意程式會在被加密的檔案加入一個標頭跟一段密碼 (cipher),如圖 11 所示。
勒索病毒的輸出畫面會顯示加密的結果、加密後的檔案名稱、檔案大小檢查之後略過的檔案、加密的時間等等。
勒索訊息與新產生的副檔名
Linux 變種的 DarkSide 會在受害電腦上留下一份勒索訊息,被加密的檔案也會換成新的副檔名。有別於 Windows 變種的是,Linux 變種的勒索訊息檔案名稱與加密後的新副檔名,都可以在惡意程式組態設定檔案中指定,或透過指令列參數傳送,而後面也不會再加上一個 ID。
例如我們所分析的樣本,其新的副檔名為「.darkside」,勒索訊息檔案的名稱是「darkside_readme.txt」。
C&C 信標訊息
DarkSide 勒索病毒會將受害電腦的系統資訊透過 C&C 信標訊息傳送到組態設定內指定的遠端伺服器。該訊息所蒐集的系統資訊包括:主機名稱、網域、磁碟資訊等等,如圖 15 所示。
蒐集到系統資訊之後,勒索病毒會再附上受害電腦的 UID,格式如下:
接著它會將這些資訊加密編碼之後,發送到組態設定中指定的網址。此外,DarkSide 還會在其網路請求內容當中運用一個 8 個字元的隨機參數來讓 C&C 流令更不容易被受害網路上的 IPS/IDS 裝置所偵測。其網路請求的內容格式如下:
<Random 8-character variable> = <Encrypted collected information> & <Random 8-character variable> = <hardcoded UID>
以下圖 17 顯示惡意程式將蒐集到的系統資訊發送給遠端伺服器的 HTTP POST 請求。
結論
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 | 趨勢科技偵測名稱 |
984ce69083f2865ce90b48569291982e786980aeef83345953276adfcbbeece8 | Ransom.Linux.DARKSIDE.THDBGBA |
9cc3c217e3790f3247a0c0d3d18d6917701571a8526159e942d0fffb848acffb | |
c93e6237abf041bc2530ccb510dd016ef1cc6847d43bf023351dce2a96fdc33b | |
da3bb9669fb983ad8d2ffc01aab9d56198bd9cedf2cc4387f19f4604a070a9b5 |