假冒《王者榮耀》作弊程式,山寨版 WannaCry 病毒,盯上 Android 用戶

繼淘寶上出現「高仿版」的WannaCry 病毒,售價10 人民幣之後,上個月稍早,趨勢科技發現手機勒索病毒 Ransomware (勒索軟體/綁架病毒)「SLocker」出現了一個新的變種 (趨勢科技命名為:ANDROIDOS_SLOCKER.OPST),其畫面很像之前肆虐全球的WannaCry(想哭)勒索蠕蟲勒索病毒。SLocker 家族基本上是最古老的手機勒索病毒之一,會鎖定裝置畫面並加密檔案,而且還會假冒執法機關的名義恐嚇受害者,讓受害者乖乖付錢。該病毒在沉寂了多年之後,突然在今年五月重出江湖。這次的 SLocker 變種基本上是一個針對 Android 平台的檔案加密勒索病毒 。

不過,雖然這個 SLocker 變種可將手機上的檔案加密,但卻沒有肆虐多久。因為,就在該病毒的詳細手法被公開之後,不久便出現針對該病毒的解密工具,為此該病毒也隨即推出更多變種。然而在該病毒首度被發現後的五天,一名疑似其作者的駭客即被中國公安逮捕。由於該病毒散布的管道有限 (大多經由 QQ 群和 BBS 系統之類的網路論壇散播),因此受害者數量非常稀少。

圖 1:此勒索病毒相關的時間點。

 

趨勢科技最早取得的樣本是假冒成《王者榮耀》遊戲的作弊程式,叫做「王者荣耀辅助」。在安裝之後,其畫面長得很像 WannaCry 病毒,但這已經不是第一次該病毒出現仿冒者

第一個模仿 WannaCry 的手機勒索病毒

圖 2:第一個模仿 WannaCry 的手機勒索病毒。

偽裝成遊戲作弊程式、視訊播放程式

此勒索病毒為了引誘使用者安裝,它會偽裝成遊戲作弊程式、視訊播放程式等等。在一開始安裝時,它的圖示看起來很像一般的遊戲指南或作弊程式。但當程式開始執行之後,就會變更圖示和名稱,被感染的裝置桌布也會跟著被換掉。

此勒索病毒會替系統上的「com.android.tencent.zdevs.bah.MainActivity」活動註冊一個別名。然後停用原本的活動,並啟用新宣告的別名以更改其圖示。

圖 3:勒索病毒程式在執行之後,就會更換圖示和名稱。

勒索病毒如何加密檔案 ?

此勒索病毒在安裝之後,就會檢查自己是否曾在該裝置執行過。如果沒有,就會隨機產生一個數字並儲存到 SharedPreferences 應用程式資料永久儲存區。接下來,它會搜尋外接儲存裝置目錄,然後建立一個新的執行緒。

首先,該執行緒會搜尋外接儲存裝置目錄下所有符合以下條件的檔案:

  • 檔案路徑當中不含「/.」、「android」、「com.」及「miad」等字樣。
  • 以外接儲存裝置為根目錄,符合條件的檔案必須在三層目錄以內,或者路徑中有「baidunetdisk」、「download」或「dcim」等字樣 (大小寫皆可)。
  • 檔案名稱當中必須包含「.」字元,且加密後的檔案名稱不能超過 251 個位元組。
  • 檔案大小必須超過 10 KB 並小於 50 MB。

我們可以看出,勒索病毒在加密時刻意略過系統檔案,且主要針對下載的檔案和照片,並且只加密含有副檔名的檔案 (文字檔、照片、影片)。當找到符合所有條件的檔案,該執行緒就會透過 ExecutorService (一種讓 Java 執行非同步工作的方式) 來執行一個新的工作。

圖 4:執行新工作的程式碼片段。

這個新的工作會使用一個叫做「getsss」的方法,根據先前產生的隨機數字來製作加密金鑰。此方法會算出隨機數字的 MD5 數值,然後從此 MD5 數值的十六進位碼當中取出一個 16 字元字串。接著,病毒再將此字串輸入 SecretKeySpec 當中來產生最後的 AES 金鑰,然後用 AES 演算法加密檔案。

圖 5:「getsss」方法的程式碼。

檔案在遭到加密之後會多了一個副檔名,此名稱包含一個 QQ 碼和前述用來產生金鑰的隨機數字。

圖 6:檔案遭到加密之後的副檔名。

此勒索病毒提供了三種支付贖金的方式,但在我們分析到的樣本中,三種方式最後都會出現同樣的 QR code 畫面,並透過中國境內熱門的 QQ 服務支付。假使受害者在三天內沒有付錢,贖金會自動加高。若過了一週還沒付錢,勒索病毒會威脅要刪除所有檔案。

圖 7:勒索病毒的付款選項。

這麼做可以解密

勒索病毒表示受害者支付贖金之後就會收到解密金鑰。但經過趨勢科技分析,我們發現當受害者輸入金鑰並按下「Decrypt」(解密) 按鈕之後,勒索病毒會將輸入的金鑰與程式中 MainActivity.m 變數內的數值做比對。但經過詳細的追蹤,MainActivity.m 內的數值其實就是前述隨機數字再加 520。

圖 8:根據程式碼可知該數值就是前述的隨機數字加 520。

以我們手上的樣本為例,其隨機數字是「10049252」。所以解密金鑰就是「10049772」(10049252 + 520)。我們將此數值輸入金鑰欄位,然後按「Decrypt」按鈕,就可以解開檔案。

圖 9:手機勒索病毒檔案解密畫面。

已出現多個新的變種
從該病毒最早曝光的版本至今,已經有越來越多變種出現。雖然某些變種修改了解密金鑰的產生方式,但使用者只要找出新的公式,依然能夠自行解開檔案:

圖 10:雖然原始變種使用的是「隨機數字+520」的公式,但其他變種的公式也相去不遠。

某些變種會自我包裝以躲避靜態檔案分析技巧的偵測:

解決方案與建議

相較於之前我們見過的勒索病毒,此勒索病毒相對單純許多。因此對資安研究人員來說,要透過反向工程找出解密方法並非難事。但在第一個變種出現之後,很快就又冒出許多其他變種,所以,顯然駭客仍在不斷推陳出新。即使已經逮到嫌犯,也許很快就會再出現進階的變種。

以下提供一些防範勒索病毒的秘訣,來協助您保障行動裝置資料的安全:

  • 僅從合法正派的應用程式商店 (如 Google Play) 下載及安裝應用程式。
  • 對於應用程式所要求開放的權限要特別謹慎,尤其是允許應用程式讀寫外接儲存裝置時。
  • 定期備份資料,備份到另一個安全的裝置或雲端皆可。
  • 安裝一套具備完整防護的資安軟體。例如,趨勢科技行動安全防護即可防範來自應用程式商店的威脅,防止這類程式安裝到裝置上,以免危害裝置。此外,還有趨勢科技PC-cillin雲端版可為多種裝置提供深層防護,並且主動防範勒索病毒威脅。

入侵指標 (IoC)

 

SHA256:200d8f98c326fc65f3a11dc5ff1951051c12991cc0996273eeb9b71b27bc294d

 應用程式套件:com.android.tencent.zdevs.bah
應用程式名稱:王者荣耀辅助

SHA256:ffd539d462847bebcdff658a83f74ca7f039946bbc6c6247be2fc62dc0e4060

 應用程式套件:com.android.tencent.zdevs.bah
應用程式名稱:千变语音

SHA256:36f40d5a11d886a2280c57859cd5f22de2d78c87dcdb52ea601089745eeee494

 應用程式套件:com.android.tencent.zdevs.bah
應用程式名稱:王者荣耀前瞻版

SHA256:c347e09b1489c5b8061828526f4ce778fda8ef7fb835255914eb3c9268a265bf

 應用程式套件:com.android.tencent.zdevs.bah

應用程式名稱:千变语音秀

SHA256:cb0a18bcc8a2c9a966d3f585771db8b2e627a7b4427a889191a93b3a1b261ba3

應用程式套件: com.android.tencent.zdevs.bah

應用程式名稱:主流影视大全

 

 

原文出處:SLocker Mobile Ransomware Starts Mimicking WannaCry 作者:Ford Qin