GandCrab v4.x的活動表
在過去的兩個月裡,FortiGuard Labs一直在監控GandCrab因其靈巧的開發方法而引發的更新。其中一些更新包括重大更改,而有些則很微小。在此期間,研究人員見證了勒索軟體作者和韓國安全公司Ahnlab之間就其7月中旬釋出的免疫工具進行了一系列針鋒相對的爭鬥。在某些時候,威脅攻擊者甚至釋出了針對Ahnlab反病毒應用程式的拒絕服務攻擊的POC。
本報告簡述了GandCrab自2018年7月釋出4.0版以來的發展。關於同一主題的最新研究部落格請 參閱 。
一、GandCrab v4.x 時間軸
下圖顯示了過去兩個月GandCrab開發過程中產生的各種版本和事件。一般來說,它可視化了GandCrab的開發速度,包括作者在短短几天內釋出多個惡意軟體更新版本。幸運的是,在檔案中明確包含該資訊,此惡意軟體對其構建版本一直是透明的。這使得在每個版本中對映更改變得更加容易。
圖1.GandCrab v4.0-v4.4時間表
圖2 .GandCrab的主函式包含純文字的內部版本
二、GandCrab變身
圖3 .GandCrab v4.0贖金票據
就在7月初v4.0釋出前幾個月,GandCrab的快速發展速度開始平緩下來。與之前的版本相比,新版本完全轉型。最值得注意的變化是將其檔案加密演算法從RSA切換到更快的Salsa20演算法,同時擁有了加密網路共享的能力。為了能夠加密未連線到網際網路的裝置,它還完成了命令與控制(C2)伺服器通聯。它還添加了一個有趣的行為,在使用者的COMMONAPPDATA目錄中檢查名為<8hex-chars> .lock的檔案。這個特別的檔案在此惡意軟體的後續迭代中發揮了重要作用。我們之前在這篇 文章 中討論了相關細節。
在v4.1中,添加了一個網路通訊,將從受害者收集的加密資料傳送到一長串URL,儘管沒有明確的目的。這也是新SMB擴充套件器功能猜測開始流傳之時。我們在 這裡 可以找到有關這些改進的詳細報告。
在v4.1.1中僅觀察到微小的變化,主要用於程式碼優化。
三、針鋒相對
在發現v4.1.1兩天後,Ahnlab 釋出 了一種免疫工具,可以在加密任何檔案之前停止執行此惡意軟體。該工具通過手動建立在加密之前由惡意軟體檢查的.lock檔案來達成目的。安全研究人員對此有不同的反應,這主要是因為公開發布這種缺點會引起威脅行動者關注,然後他們可以簡單的進行一些修改來解決這個問題。
事實確實如此,僅僅四天後GandCrab v4.1.2釋出,其修改旨在繞過該工具。此版本通過將Salsa20演算法合併到流程中來更改生成.lock檔名的過程,從而使Ahnlabs的免疫工具無效。作為曝料的安全研究人員和公司的一部分,在此版本的開發過程中Fortinet和Ahnlab一直是他們的目標。作為反駁,Ahnlab 釋出 了第二個版本以解決這一修改。
圖4.在GandCrab v4.1.2中生成.lock檔案的步驟
在v4.1.3中沒有觀察到變化。
當發現v4.1.2的更新變體時,版本變得有些混亂,正如預期的那樣,它是對Ahnlabs新免疫工具更新的報復。這一次,他們不是檢查.lock檔案是否存在,而是切換到檢查惡意軟體的互斥鎖是否存在,從而再次繞過該工具。
生成互斥鎖名稱的過程與舊的v4.1.2版本使用的過程相同 – 僅基於指向Ahnlab的新模擬字串。該字串包含一個俄語文字影象的連結,大致翻譯為“我已將你新增到我的gay列表中。我暫時使用了一支鉛筆,“暗示列入名單是暫時的”。
圖5. GandCrab v4.2字串列表以及俄語圖片的連結
在撰寫本文時,我們尚未在免疫工具中看到任何的更新,說實話,我們並不期待它們。為了應對這一新變化,除了在使用者系統中手動建立互斥鎖之外,疫苗還需要系統持久化,這意味著它必須始終在後臺執行,並且還必須註冊以在系統開機時執行。在我們看來,為臨時補救做這麼長的事情既極端又不切實際,特別是考慮到威脅行為者監控工具開發的程度以及他們釋出新版本以繞過補救措施的速度。
作為惡意軟體開發人員靈巧開發過程速度的一個例子,在確定4.1.2繞過的同一天,發現v4.2包含一些基本的沙盒逃避技術。但是,這種沙盒檢測功能是短暫的,因為在v4.2.1中沒有再觀察到。
有趣的是,儘管免疫工具沒有更新,但開發人員通過釋出可能導致Ahnlab V3 LiteTSFltDrv.sys服務驅動程式拒絕服務(DOS)攻擊的概念驗證(POC)原始碼的連結繼續攻擊。 觸發後,此攻擊會在導致藍屏宕機(BSOD)。實際的POC也被整合為惡意軟體中的新功能。我們在Ahnlab V3 Lite 3.3.46.1上使用TSFltDrv.sys檔案版本9.6.0.5確認了此事。
此惡意軟體利用的潛在漏洞是由於缺少使用者模式輸入引數清理,可以由非特權使用者傳送到易受攻擊的模組。簡而言之,POC通過向服務驅動程式傳送不存在的記憶體地址來工作。當驅動程式嘗試訪問它時,會導致錯誤。此外,我們發現此核心模組當前還沒有在其裝置物件介面上設定適當的安全屬性。這開闢了另一個潛在的攻擊面,可能被利用來進行特權提升,這證實了GandCrab作者提出的問題。
幸運的是,Ahnlab宣佈此漏洞已在V3 Lite 3.3.46.2中得到修復,這是撰寫本文時的最新版本。這只是為什麼確保始終執行最新版本的應用程式始終至關重要的另一個示例。
圖6 .GandCrab v4.2.1字串列表以及DOS POC的連結
隨著v4.3的釋出,GandCrab作者繼續他們的一系列更新,其中包括一個額外的反彙編技巧,使分析複雜化。雖然這不是高階技術或新技術,但它確實增加了分析惡意軟體的步驟。破解此技術的一個選項是修改惡意軟體二進位制檔案並忽略(NOP-ing)新增的不必要程式碼以顯示“真實”程式碼。這種技術有點粗糙,但在此情形下,不失為一個很好的快速解決方案。
圖7.忽略不必要的程式碼繞過反反彙編
GandCrab的最新版本v4.4,是威脅行為者的意外舉動。它不是惡意軟體的升級版本,而是自己的疫苗。4.4版本基本上是v4.3的變體,它已被大致修補以執行一個函式,該函式建立惡意軟體在加密之前檢查的互斥鎖,然後無限期的睡眠在後臺執行。除了VirusTotal之外,我們無法找到通過其他來源分發的變體,這可能是有意義的。它的唯一目的似乎是繼續嘲笑以前的免疫工具。當然,實際上使用該工具作為疫苗是不可能的。我們已經看到這個開發團隊可以快速輕鬆的釋出修改以減輕這些對策。
四、總結
正如我們在之前有關kill-switch報告中強烈建議的那樣,免疫工具不應被視為永久性解決方案,特別是對於像GandCrab這樣積極開發的惡意軟體。相反,最好的響應是使系統保持最新的漏洞補丁,並且應該就每個人的優先順序實施隔離備份作為防禦所有勒索軟體攻擊的最後一道防線。
FortiGuard Labs將繼續監控此惡意軟體的開發。
IOCs
6c1ed5eb1267d95d8a0dc8e1975923ebefd809c2027427b4ead867fb72703f82 (4.0) – W32/GandCrypt.CHU!tr
37e660ada1ea7c65de2499f5093416b3db59dfb360fc99c74820c355bf19ec52 (4.1) – W32/Gandcrab.IV!t
8bd9ca75496baa5fcc5a39995e7c8f8c84a73dc56122d67fbf2bc9ea1c53c2e1 (4.1.1) – W32/GandCrab.D!tr.ransom
ce093ffa19f020a2b73719f653b5e0423df28ef1d59035d55e99154a85c5c668 (4.1.2) – W32/GandCrab.D!tr.ransom
768d3ffd942d8aea0f5def0c113d1a4e86bf9f78732b49c42222fa94bae3cf71 (4.1.3) – W32/GandCrab.D!tr.ransom
a1a60f808ef6804231cad1d78f87b90561f31e897c068db9dfae349beef13a61 (new 4.1.2) – W32/GenKryptik.CFUK!tr
3b0096d6798b1887cffa1288583e93f70e656270119087ceb2f832b69b89260a (4.2) – W32/GandCrab.D!tr.ransom
4b6db1a59ce31c78b9958342e6315a2d40e9b078747def487b9606e312cad630 (4.3) – W32/Filecoder_GandCrab.D!tr
be32aec1e61303c28ec294939260d4daa2e20f003c3f5c190c9b29153b0bf712 (4.4) – W32/Filecoder_GandCrab.D!tr