針對Ryuk勒索軟體的分析調查Part1
近日,安全公司CheckPoint在一份報告中,介紹了一種新型的勒索軟體——Ryuk,根據分析,該勒索軟體背後的團隊已經在短短兩週內獲得了價值超過64萬美元的比特幣。
CheckPoint指出,此次型別的攻擊比此前的勒索軟體示例更具針對性,從開發階段到加密過程,直到要求贖金,Ryuk的目標是那些有能力支付大量資金以使其網站重回正軌的企業。一旦被感染,這些公司就必須在兩週內支付勒索者提出的比特幣需求,否則受感染的檔案將被自動刪除。並且,贖金會因為勒索被忽視而每天增加。CheckPoint表示,可能會有更多的企業成為Ryuk攻擊的受害者。
針對Ryuk 勒索軟體的分析
在過去的兩週裡,Ryuk瘋狂的襲擊了全球各個組織。不過到目前為止,該攻擊針對的目標都是資金雄厚的企業,同時對每家受感染企業的數百臺PC、儲存和資料中心進行了感染。
雖然目前,Ryuk的技術含量相對較低,但它確實已經成功攻擊了三家美國大型企業和全球其他大型組織。為此,一些組織為了取回他們的檔案已經支付了鉅額贖金。雖然贖金數量也會根據因受害者而異(範圍在15 比特幣到50 比特幣之間),但累計起來,其幕後黑手已經獲得了價值超過64萬美元的比特幣。
奇怪的是,在分析過程中,CheckPoint發現Ryuk的攻擊活動及其內部的一些執行原理與HERMES勒索軟體類似,目前它通常被認為是臭名昭著的朝鮮APT組織Lazarus開發的。該組織長期對韓國、美國進行滲透攻擊,此外還對全球的金融機構進行攻擊,堪稱全球金融機構的最大威脅。該組織最早的攻擊活動可以追溯到2007年。據國外安全公司的調查顯示,Lazarus組織與2014年索尼影業遭黑客攻擊事件,2016年孟加拉國銀行資料洩露事件,2017年美國國防承包商、美國能源部門及英國、韓國等比特幣交易所被攻擊等事件有關。而2017年席捲全球的最臭名昭著的安全事件“Wannacry”勒索病毒也被懷疑是該組織所為。所以根據種種跡象,CheckPoint相信,Ryuk的幕後團隊很可能就是Lazarus。不過也有可能是其他攻擊團隊,獲得了HERMES的原始碼。總之Ryuk與HERMES是脫不了干係的。
在下面的分析中,研究人員覆盤了Ryuk參與的一些具有高度針對性的攻擊,並將它與HERMES勒索軟體進行了詳細比較。研究人員還討論了Ryuk在獲取贖金後的銷贓行為,研究人員通過追蹤資金的往來痕跡,確認了Ryuk的開發者是如何將贖金錢包進行拆分和轉移,來掩蓋他們收到的付款痕跡。
Ryuk概述
與常見的勒索軟體不同,Ryuk是通過大規模垃圾郵件活動和漏洞利用工具包進行傳播的,專門用於自定義攻擊。實際上,其自定義後的勒索方案是專門為小規模操作而構建的,因為Ryuk的攻擊目標只針對被感染目標的關鍵資產和資源。所以,Ryuk的感染和傳播過程都是由攻擊者手動執行的。
當然,這意味著攻擊者需要進行廣泛的網路對映、黑客攻擊和憑證收集,並在每次攻擊之前進行。
兩種版本的Ryuk的贖金說明
雖然在收集的樣本中沒有發現差異,但攻擊者在向受害者傳送贖金說明時,卻呈現出了兩種版本。一個是篇幅較長、措辭得體、優美的贖金說明,該版本的說明直接帶來了50比特幣(約32萬美元)的贖金。而另一個則是篇幅較短、措辭直白嚴厲的贖金說明,該版本的說明帶來了22.4萬美元的贖金,其中贖金從15-35比特幣不等。據分析,這可能意味著兩種型別的攻擊。
措辭得體、優美的贖金要求
篇幅較短、措辭直白嚴厲的贖金說明
Ryuk和HERMES的詳細比較
HERMES勒索軟體於2017年10月首次被捕獲,準確地說,是在它攻擊臺灣遠東國際銀行(FEIB)的時候被發現的。根據分析,那次攻擊就是朝鮮APT組織Lazarus發起的,在這次複雜的SWIFT攻擊中,有6000萬美元被盜,不過後來又被追回。至此之後,HERMES就被定義為專門針對網上銀行的勒索軟體了。
然而,毫無疑問,就Ryuk而言,過去兩週內發生的攻擊絕不僅僅是一場小打小鬧,而是其未來攻擊的鋪墊。事實上,由於其幕後團隊已獲取的贖金相當誘人,所以Ryuk的攻擊絕不會就此作罷。
研究人員對Ryuk和HERMES的技術特點進行了比較後,發現編寫Ryuk的人要麼擁有HERMES勒索軟體的原始碼,要麼就是Lazarus本身。
底層程式碼的比較
在檢查Ryuk的程式碼時,一個有趣的發現是它的加密邏輯類似於之前 ofollow,noindex">Malwarebytes 概述的HERMES勒索軟體。
實際上,如果研究人員比較加密單個檔案的函式,就會發現它們的結構有很多相似之處,如下面的呼叫流程圖所示。
Ryuk和Hermes中加密函式的呼叫流程圖
事實上,似乎Ryuk的開發者甚至都懶得更改加密檔案中的標記,因為用於生成、放置和驗證該標記的程式碼是用來確定檔案是否已經加密,這些標記在這兩種惡意軟體中都是相同的。
Ryuk和Hermes的標記生成
Ryuk和Hermes的標記檢查
另外,呼叫上述例程的函式在兩種情況下都執行非常類似的操作。例如,兩者都將類似的資料夾列入白名單(例如“Ahnlab”,“Microsoft”,“$Recycle.Bi”等),以避免對儲存在其中的檔案進行加密。此外,兩者都在同一路徑中編寫了一個名為“window.bat”的批處理指令碼,並使用類似的指令碼刪除shadow volume和備份檔案。同樣,在這兩種情況下,都有檔案被拖到磁碟(“PUBLIC”和“UNIQUE_ID_DO_NOT_REMOVE”),它們在名稱和用途上類似。
還應該注意的是,所有上述執行邏輯都儲存在Ryuk的32位和64位版本中,研究人員都存有各自的樣本(見附錄)。如果程式碼跨越了不同體系結構,還有如此的相似性,只能說明底層原始碼相同。
技術分析
DROPPER木 馬程式
Ryuk的DROPPER木馬程式簡單明瞭。它包含勒索軟體的32位和64位模組,在dropper的二進位制檔案中會被連續地嵌入。在執行開始時,dropper使用srand函式和GetTickCount函式(用於生成種子)生成一個5位字母的隨機檔名。
然後,根據受害者計算機上的Windows版本,將上述有效載荷檔案寫入一個目錄。如果是windowsxp或windows2000版本,載荷檔案將建立在“\Documents and Settings\Default User\”目錄中,否則將將建立在“\users\Public\” 目錄中。
如果檔案建立失敗,則dropper會嘗試使用自己的名稱將其寫入自己的目錄中,並將字母“V”作為名稱的最後一個字元,以方便區分。
檔案建立成功後,dropper會檢查程序是否在Wow64下執行,並根據檢查結果寫入合適的有效載荷(32位或64位)。
最後,在執行終止之前,dropper會呼叫ShellExecuteW來執行剛剛編寫的Ryuk勒索軟體載荷。
二進位制程序
在執行二進位制程序時,Ryuk勒索軟體先進行幾秒鐘的睡眠,然後檢查它是否以引數執行。如果以引數執行,二進位制程序就會被用作DeleteFileW刪除檔案的路徑。基於惡意軟體的dropper程式碼,此引數將是dropper本身的路徑。接下來,Ryuk將在預定義的服務和程序名稱列表上執行taskkill和和net stop命令,來終止40多個程序並停止180多個服務,而這些服務和程序主要屬於防毒軟體、資料庫、備份和文件編輯軟體。
被終止的程序和服務的部分列表
永續性攻擊和列舉程序
為了確保在重新啟動後惡意軟體能夠繼續執行,Ryuk使用了一種直接永續性攻擊技術,並使用以下命令將自身寫入Run登錄檔項:
‘reg add /C REG ADD “HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” /v “svchos” /t REG_SZ /d’
然後它將嘗試呼叫SeDebugPrivilege許可權,以便在後續操作中具有擴充套件的功能,並通過形成一系列結構來為後來的注入做準備。陣列中的每個條目都表示系統中正在執行的程序,幷包含程序的名稱、PID和表示其所有者的帳戶型別的編號(如下圖所示)。在將上述程序列表放在一起後,Ryuk將進行一次遍歷並嘗試將程式碼注入每個遍歷過的程序的地址空間,不過“explorer.exe”,“csrss.exe”,“lsaas.exe”或不是由NT授權執行的程序除外。