ブラック ルビー:ランサムウェアとコインマイナーマルウェアのコンビ

コインマイナー マルウェアプログラムというニュースが飛び込んできました。インターネット上ではすでにコンピュータへの感染も報告されています。分散型ランサムウェアに 起因するものと同じ技術と悪用を使用して個々のPCや企業を犠牲にするコインマイナー マルウェアが急増しています。サイバー犯罪者のためのペイロードの選択肢として、ランサムウェアからコイン マイナーへシフトするセキュリティー専門家もいます。

興味深いことに、我々が発見したのは、Black Ruby (ブラック ルビー) と呼ばれる新しいランサムウェアで、コイン マイニングをモジュールとして追加したものです。攻撃者は、攻撃方法を最適化して、ターゲットとなる犠牲者からから利益を最大化します。あるタイプの攻撃に焦点を当てるのではなく、ランサムウェアとコイン マイナーとも増えてきているのです。

技術的な分析
ブラック ルビーは今月初めに発見されました。一番初めに上がってきたVirustotalのレポートによると、PEヘッダーのタイムスタンプに従ってコンパイルさ れた直後の日付は2018-02-04 09:50:37となっています。数日後にいくつかのマイナーな変更を加えたブラック ルビーの新しい亜種も発見されました。

 
図1:PEヘッダーのタイムスタンプ

ランサムウェアは、「Windows Defender.exe」や「WINDOWSUI.EXE」のようなファイル名を使用して、Microsoft Windows Defenderとして自身を識別します。下の画像は、ファイルのバージョン情報の詳細を示しています。

 
図2:ファイルのバージョンの詳細

マルウェアバイナリ(MD5: 81E9036AED5502446654C8E5A1770935)は、dotnet実行可能ファイルで、Babel Obfuscatorを使用して隠蔽されています。
これは、RSAとAESを使用してユーザーファイルを暗号化します。Moneroマイナーモジュールは、リソースディレクトリ内に暗号化された形式で格納され、実行時に暗号化されてデプロイされま す。

GeoIPと環境チェック
まず名前が"The Black Ruby"の相互排除オブジェクト(mutex)を作成し、アプリケーションのインスタンスが1つだけ実行されていることを確認するために名前が既に存在する場合は終了します。次のチェックでマシンの国が決まります。これは “http:// freegeoip.net/json/”に接続することで実施されます。応答にイランの国コードが含まれていると、マルウェアが停止して終了します。

 
図3:国コードを取得するスニペット

インストールと永続性
ブラック ルビーは、以下のレジストリを追加して永続性を維持します。
1.    HKEY_CURRENT_USER\SOFTWARE\Microsoft\BlackRuby‘Install’ = ‘Max’
2.    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run‘Windows Defender’ = C:\Windows\system32\BlackRuby\WindowsUI.exe’

キー1が既にマシンに存在する場合、マルウェ アは、インストールキーが存在しないか、または最初の実行中に、以前に展開したコインマイナー実行可能ファイル(次のコードスニペットに示されています) を開始します。CreatePersistence()関数は、上記のレジストリキーを生成します。Key 1が見つからない場合は「false」、そうでない場合は「true」として返されます。

 
図4:void main()関数の一部

DeployExecutables()はシステムディレクトリ( “C:\ Windows \ System32”)に "ブラック ルビー"という名前の新しいディレクトリを作成し、 "WindowsUI.exe"という名前のメイン実行ファイルをコピーし、コイン マイナー実行ファイル(リソースディレクトリから解読) "Svchost.exe"と入力します。

 
図5:実行ファイルのコピー

ブラック ルビーは、悪意のある実行ファイルを正常に展開した後、キーの生成、ユーザーファイルのシャドウコピーの削除、イベントログのクリア、ブート状態ポリシーの変更、およびユーザーのファイルの暗号化を担当するランサムウェアMain()関数を実行します。

キー生成
ブラック ルビーはAES対称暗号を使用してユーザーファイルを暗号化します。強力な暗号化のためにファイルAESキーとセッションRSAキーを使用する他のランサムウェア系統とは異なり、ブラック ルビーは同じAESキーを使用してシステム上のすべてのファイルを暗号化します。AES暗号化では、次の設定が使用されます。

•    キーサイズ                256ビット
•    ブロックサイズ            128ビット
•    モード                     CBCモード
•    パディング                PKCS7
 
ファイル暗号化AESキーは、各マシンで1回計算されたランダムパスワードと、論理ドライブのマシン名やカウントなどのその他のアーティファクトを次の形式で組み合わせて生成されます。
<random_password>-<machine_name>:<logical_drive_count> (e.g.: >x6Ru@ufT4@lxsYkgj$X)OzuIVs&MjV&pUkf7rVJ7h8X>BMZuNVrbqurR-DESKTOP_XXXXXXX:2)

このAESキーは、base64形式のバイナリでハードコードされたマスターRSAパブリックキーで暗号化されます。暗号化されたAESキーはbase64に変換され、16進表現に変換され、他の身代金と一緒にHOW-TO-DECRYPT-FILES.txtとしてランサムウェアの "ヘルプ"ファイルに書き込まれます。これらのヘルプファイルは、暗号化されたユーザーファイルを含む各ディレクトリに存在します。

 
図6:デコードされたマスターRSAパブリッ クキー

 
図7:暗号化された形式のAESキー

ファイル暗号化
ブラック ルビー ランサムウェアは、固定、リムーバブル、およびネットワークドライブ上のすべてのファイルを列挙し、バイナリでハードコードされた拡張子のリストに含ま れ、ファイルサイズが512 MB未満のタイプのみを暗号化します。また、255バイトを超える名前のファイルもスキップします。ファイルの拡張子が "bkf "の場合、ファイルは削除されます。


図8 :ドライブ列挙ルーチン

ブラック ルビーは、AES暗号化ルーチンに渡す前に、メモリ配列内の全ファイルを読み取り、最後に元のファイル名を追加します。暗号化の後、元のファイルコンテンツは暗号化されたコンテンツで上書きされ、ファイルは次の形式のランダムなファイル名で同じディレクトリに移動されます。
Encrypted_ <random_string> .BlackRuby (e.g. Encrypted_VdGcVZ7RUKFUYvYk6gZCVTNLkNsUin5SuvmfovndF.BlackRuby)

残念ながら、ファイルの属性や暗号化プロセスを変更しているときに例外が発生した場合、そのファイルはマシンから削除されます。
 

図9:ファイル属性の変更、暗号化および移動操作
 

図10 :暗号化後のファイル構造

ブラック ルビーはこれらのフォルダの下にあるファイルは暗号化しません:

"Windows", "Microsoft.NET",
"Program Files", "Internet Explorer",
"ProgramData", "McAfee",
"PerfLogs", "Avira",
"$Recycle.Bin", "spytech software",
"Microsoft", "sysconfig",
"Microsoft Help", "Avast",
"Microsoft App", "Dr.Web",
"Certification Kit", "Symantec",
"Windows Defender", "Symantec_Client_Security",
"ESET", "system volume information",
"COMODO", "AVG",
"Windows NT", "Microsoft Shared",
"Windows Kits", "Common Files",
"Windows Mail", "Outlook Express",
"Windows Media Player", "Movie Maker",
"Windows Multimedia Platform", "Chrome",
"Windows Phone Kits", "Mozilla Firefox",
"Windows Phone", "Opera",
 "Silverlight Kits", "YandexBrowser",
 "Temp", "ntldr",
"Windows Photo Viewer", "Wsus",
"Windows Protable Devices", "!!AntiCrypto!!",
"Windows Slidebar", "Public",
"WindowsPowerShell", "BlackRuby"
"NVIDIA Corporation",  

表1:除外されたフォルダ

 
図11:拡張のリスト

シャドウコピーとカバリングトラックの削除
ブラック ルビーは、Windowsボリュームシャドウコピーサービスによって作成された自動バックアップを削除し、マシンからイベントログを削除するために、次のコマンドを順番に実行します。

 
図12 :実行されたコマンドのリスト

また、その名前に"sql" を含むプロセスを終了します。この完全なルーチンは、ファイルの暗号化処理の前に実行されます。

ランソムノート
暗号化されたユーザーファイルを含むすべての ディレクトリに、HOW-TO-DECRYPT-FILES.txtという身代金メモが作成されます。


図13:Ransom Noteパート1

 

図14:Ransomノートパート2

復号化
このランサムウェアにはまだ無料の解読ツールはありません。ファイルを元に戻す唯一の方法は、身代金メモに記載されている指示に従い、攻撃者にビットコインで650ドル相当の金額を支払うことです。 しかし、攻撃者に支払うことは勧められません。
攻撃者は5MB未満の2つのファイルの無料解読を提供します。この解読は、身代金メモに記載されている識別キーと共に電子メールアドレスに送信できます。
 

図15:身代金メモの復号化命令

コインマイナー
最後に、ブラック ルビーはExecuteMiner()を呼び出して、以前に注入したMoneroマイナー(Svchost.exe)を起動します。Moneroのマイ ナー実行ファイルは、GitHub上で公開されているXMRig CPUマイナーであることが判明しました。

 
図16:Svchost.exeファイルの バージョンの詳細
 

図17:Monero minerを実行する機能

場所:
URL = "de01.supportxmr.com"
 port = "3333"
 UserName = "43DmqxU4LzuTrmA8GLZ7S5J6w32bwCavX9bhvCiSEwwebfn4TCYRAxmPtWTZq9iQ1F6XYsktJEYBYDkhKu4KXw6rCCspxCJ"
 
これは、プールマイニングにStratumマイニングプロトコルを使用します。ユーザー名は攻撃者のウォレットアドレス、システムのユーザー名はワーカーまたはマイニングID、マシン名はパスワードです。
 

図18 :Monero財布の情報

結論
ブラック ルビーは事実上の国際標準を暗号化に使用しています。ユーザーが適切なバックアップを取らない限り、暗号化されたファイルを回復する方法はありません。
Acronis True Image 2018 および Acronis Active Protection を有効にしたその他の製品は、ブラック ルビーやその他のランサムウェアによる貴重なデータの暗号化や、攻撃者の資金調達の防止、暗号化されたファイルの復元を確実にします。