Bluesky勒索軟件深度技術分析

01.背景介紹
勒索軟件作為一種流行的木馬,近年來已成為最為常見的安全威脅之一。與其他威脅不同,勒索軟件先向受害者表明自己的身份,再通過加密的方式使用戶數據資產或計算資源無法正常使用,而恢復數據資產的方法通常只能是支付高昂的費用。
BlueSky作為近期發現的一種勒索軟件變種,在今年3月份首次出現,在6月末開始爆發。它的一些勒索軟件樣本以“MarketShere.exe”和“SecurityUpdate.exe”的形式在線分發,在入侵目標之后,BlueSky會加密受感染機器上的文件,然后添加“.bluesky”文件擴展名。同時它還會生成兩個文件,分別是:
#DECRYPT FILES BLUESKY#.txt
#DECRYPT FILES BLUESKY#.html
要求受害者訪問BlueSky TOR的網站,并按照提供的說明進行操作。
02.病毒分析
BlueSky的執行流程如下:動態加載 API、混淆字符串、采用反調試技術、進行權限提升、生成受害者 ID、對文件進行加密、生成贖金通知書。

1. 動態加載 API
所有的API都通過動態加載的方式獲取,首先通過遍歷
PEB_LDR_DATA中的InLoadOrderModuleList鏈表
枚舉其中包含的模塊。
其中用到了許多反分析技術,包括字符串加密和反調試機制,使其能夠混淆Windows API 函數名稱并使用間接調用來解析API。此外,BlueSky使用DJB散列函數對API名稱進行計算,并將它們與代碼中的模糊哈希值進行比較,以便正確導入所需的模塊。

2. 混淆字符串
所有的字符串都進行了混淆,使用時通過動態解密的方式獲取字符串。


3. 反調試技術
除了以上提到的字符串加密、API 混淆等反調試機制外
程序還調用NtSetInformationThread并使用ThreadHideFromDebugger API隱藏線程,線程對調試器隱藏后,它將繼續運行,但調試器不會收到與該線程相關的事件。該線程可以執行反調試檢查,例如代碼校驗、調試標志驗證等。但是,如果隱藏線程中有斷點,或者對調試器隱藏了主線程,那么進程就會崩潰,調試器就會卡住。

用 nop 填充函數調用地址處來過反調試。

4. 權限提升
COM提升名稱(COM Elevation Moniker)技術允許運行在用戶賬戶控制(UAC)下的應用程序使用提升權限的方法來激活 COM 類,以此來提升 COM 接口權限。該方法的目標接口是 ICMLuaUtil,該接口存在于 CMSTPLUA 組件中,使用 OleViewDotNet 工具查看系統中的 COM 接口屬性信息,找到 CMSTPLUA 組件:

BlueSky 使用了這種方法來繞過UAC。

此外,BlueSky 還會調用 RtlAdjustPrivilege 來獲取每個文件和進程的權限。

5. 生成受害者 ID
BlueSky 通過計算機卷信息、機器GUID、數字產品ID和安裝日期值的MD5哈希,來生成唯一的用戶ID:
A11F9CA342F6AF8414D5516688381DD5
并且使用該ID來生成互斥鎖:
Global\A11F9CA342F6AF8414D5516688381DD5


解密字符串:
“x25519_public”
“RECOVERYBLOB”
“completed”
用來生成注冊表項,保存BlueSky的加密操作數據。

BlueSky 將與加密相關的信息存儲在注冊表項:
HKCU\Software\A11F9CA342F6AF8414D5516688381DD5
用來恢復信息RECOVERYBLOB
使用ChaCha20+Curve25519+RC4算法進行計算
通過ChaCha20+Curve25519算法對RECOVERYBLOB進行加密。



6. 文件加密過程
與其他勒索軟件通常包含文件擴展名列表以識別符合條件的加密文件不同,BlueSky會創建一個在文件加密過程中排除文件的擴展名列表,具體的清單如下:
擴展名:ldf、scr、icl、386、cmd、ani、adv、theme、msi、rtp、diagcfg、msstyles、bin、hlp、shs、drv、wpx、bat、rom、msc、 lnk、cab、spl、ps1、msu、ics、key、msp、com、sys、diagpkg、nls、diagcab、ico、lock、ocx、mpa、cur、cpl、mod、hta、exe、ini、icns、prf、dll、bluesky、nomedia、idx
目錄:$recycle.bin、$windows.~bt、$windows.~ws、boot、windows、windows.old、system volume information、perflogs、programdata、program files、program files (x86)、all users, appdata, tor browser
文件名:#decrypt files bluesky #.txt、#decrypt files bluesky #.html、ntuser.dat、iconcache.db、ntuser.dat.log、bootsect.bak、autorun.inf、bootmgr、ntldr、thumbs.db
如下圖所示,BlueSky 使用多線程隊列進行加密。啟動的其中一個負責文件加密,另一個負責枚舉本地文件系統上的文件,并將掛載的網絡共享添加到隊列中。這種多線程架構與 Conti (Ransomware) v3 的代碼相似,特別是網絡搜索模塊是 Conti v3 的精確復制品。但是文件加密例程存在某些差異。例如,Conti v3 使用基于 RSA 和 AES 的文件加密,而BlueSky 使用基于 Curve25519 和 ChaCha20 的文件加密。

BlueSky 的文件加密與 Babuk Ransomware 類似——都使用Curve25519(非對稱加密) 為主機生成公鑰,并與攻擊者的公鑰生成共享密鑰。生成橢圓曲線密鑰對后,BlueSky 計算出共享密鑰的哈希值,并使用它為 ChaCha20 算法生成文件加密密鑰。最后,它讀取文件緩沖區,使用 ChaCha20(對稱加密) 對其進行加密并替換原始文件的內容,如下圖所示。


7. 贖金通知書
加密完成之后會生成贖金通知的文檔和網頁,其中恢復 ID 就是保存在注冊表項 RECOVERYBLOB 中的值。



03.防范建議
用戶針對勒索軟件的防護需做到以下幾點:
1、規范上網行為,不下載安裝未知的軟件,不點開來歷不明的文檔、圖片、音頻視頻等;
2、定期更換域控、數據庫、服務器上的管理員密碼;
3、定期更新病毒庫,定時組織內網進行全盤掃描;
4、定期更新補丁,修復漏洞;
5、定期檢查防火墻及安全軟件的防護日志,及時發現異常并解決;
6、定期離線備份或異地備份重要數據;
7、修改數據庫默認端口,防止被掃描器爆破。
8、進行嚴格的隔離,有關系統、服務盡量不開放到互聯網上,內網中的系統也要通過防火墻、VLAN或網閘等進行隔離。