FAKBEN Teamのランサムウェアはオープンソースの「Hidden Tear」のコードを使用

今月の初め、新しいランサムウェア・アズ・ア・サービス(ransomware-as-a-service(RaaS))が「FAKBEN Team」と呼ばれるグループから出てきました。この記事では、彼らが自らのウェブサイトで販売しているランサムウェアのバイナリに関する私たちの知見について述べたいと思います。私たちの分析によるとFAKBEN Teamが使っている暗号化のルーチンはオープンソースであるHidden Tearランサムウェアから取ったものと考えられます。

私たちが使用した、代表的なサンプルのMD5はc952a88edc0766adf819b30cd2683ac7となっています。このマルウェアはMicrosoft Visual C# .NETを使って開発、コンパイルされていました。

パーシステンス

このマルウェアはAutorunレジストリを作成し、システムが立ち上がるたびに実行されるようにします。カレントユーザーのレジストリのWinlogonとRunの下に、それぞれShellとMicrosoftというレジストリ値の名前でレジストリを作るのです。このレジストリはいずれもマルウェアのカレントパスを指定しています:


図 1. レジストリを追加するためのコード

また、DisableTaskMgrの値を「1」とすることで、タスクマネージャーをレジストリによって無効にします:


図 2. タスクマネージャーレジストリを無効にするためのコード

更に、タスクマネージャープロセスtaskmgrを、ある間隔で停止します:


図 3. タスクマネージャープロセスを停止するためのコード

C&Cレジストレーション

このマルウェアは、感染したマシンのシステム情報とgeoIPの位置情報を用いて、自らをそのC&Cサーバに登録します。特に、マルウェアはProductNameとCSDVersionレジストリをクエリして、オペレーティングシステムとサービスパック名を取得します:


図 4. オペレーティングシステムとサービスパックを収集するためのコード

このマルウェアはまた、MachineGuidレジストリをクエリしてマシンのGUIDを収集します:


図 5. マシンの GUID を収集するためのコード

次にこのマルウェアはウェブサイトwww.hostip.infoを利用してgeoIPの位置情報を収集します:


図 6. 感染したマシンの位置情報を収集するためのコード

上述のデータは「:」をデリミターとして連結されており、一方、システム情報はマルウェアによりBase64でエンコードされます:


図 7. 収集した情報を連結する為のコード

これは、後にC&Cのコールバックでwidパラメータとして使われます。

なお、このほかにC&Cに送られるパラメータにはbtc - アフィリエイトのビットコインアドレスがあります。このマルウェアはバイナリのオーバーレイでこれをパース(構文解析)します:


図 8. ビットコインアドレスを含むマルウェアオーバーレイ

最後に2つのパラメータが連結され、ランサムウェアのC&Cとなる感染したウェブサイトへ送られます:


図 9. C&Cパラメータの構築とウェブリクエストをおこなうためのコード

下に示すのはリクエストのスクリーンショットです:


図 10. マルウェアのウェブリクエストのスクリーンショット

ランサムウェアのルーチン

上記のフォーマットを利用してこのマルウェアは、C&Cサーバと、ある間隔で通信をおこないC&Cのレスポンスをパースして以下に示すタグを得ます:

「RECEIVED」 - マルウェアにファイルの復号化を指示します
「FIRST」 - マルウェアにファイルの暗号化を指示します

このマルウェアは、C&Cのレスポンスで暗号化や復号化に使うキーも受け取ります。


図 11. C&C レスポンスをパースするためのコード

キーはC&Cレスポンスのデリミター 「:」 の前の最初の文字です:


図 12. 暗号化キーをパースするためのコード

上で見たとおり、このマルウェアはファイルをディレクトリ単位で暗号化します。感染したフォルダは次の通りです:


図 13. ターゲットディレクトリ

該当するディレクトリで次の拡張子を持ったファイルを暗号化します:


図 14. Hidden Tear ランサムウェアから盗んだコード

実際、このコードはオープンソースのランサムウェアであるHidden Tearのコードと酷似しており小さな点で異なっているだけです。

このマルウェアは、感染したファイルのファイル名に「.locked」を連結するなどのAES暗号化ルーチンもHidden Tearから盗んでいるようにみえます。


図 15. ファイルを暗号化するためのコード


図 16. AES暗号化アルゴリズム

ランサムウェアノート

このマルウェアは、ランサムウェアノートをテキストファイルとしてもユーザーのデスクトップをロックするために使われる画像としても提示します。ランサムメッセージは、マルウェアの中にBase64フォーマットで埋め込まれています。このランサムメッセージはデコードされ、アフィリエイトのビットコインアドレスに追記されます。

その結果、得られるテキストが「READ ME FOR DECRYPT.txt」として全ての感染したディレクトリに格納されます:


図 17. ランサムウェアノート

画面にはランサムウェアのサイトのQRコードを追加した画像を表示します。QRコードは次のコードを用いて生成されます:


図 18. QR コードの生成

下図はこのようにして生成した感染者のデスクトップをブロックするためのイメージです。現在の為替レートで、おおよそ480米ドルに相当する1.505 BTCの身代金を要求しています:


図 19. ランサムウェアの画面表示

まとめ

私たちの分析によるとこのランサムウェアのコードは初歩的で、どちらかというと貧弱なものです。例えば、自ら格納した "READ ME FOR DECRYPT.txt" というランサムウェアノートも暗号化してしまう傾向がありますが、これはホワイトリストのメカニズムがないからです。更に、ファイルの暗号化に失敗した場合でもランサムウェアイメージをユーザーのデスクトップに表示してしまいます。

これらの不具合や、このランサムウェアがオープンソースのHidden Tearのコードを利用していることなどからFAKBEN Team RaaSの背後にいるサイバー犯罪者はアマチュアか「スクリプトキディ」と呼ばれている人たちだろうと思われます。つまり、これは限られた開発スキルしか持ち合わせていないサイバー犯罪者が、公開されたHidden Tearのコードを利用し始めたということです。

フォーティネットは、積極的にこのランサムウェアの検出をMSIL/Filecoder.Y!trとしておこない、IPS署名 Fakben.Cryptolocker.RaaS.Botnetを経由したC&Cとの通信をブロックします。

-= FortiGuard Lion Team =-

感染の指標:

追加レジストリ:
HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWinlogon Shell = "{malware path}"

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun Microsoft = "{malware path}"

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem DisableTaskMgr = "1"

追加ファイル:
{Desktop}READ ME FOR DECRYPT.txt
{My Music folder}READ ME FOR DECRYPT.txt
{My Pictures folder}READ ME FOR DECRYPT.txt
{Personal folder}READ ME FOR DECRYPT.txt
{Desktop}{filename}.locked
{My Music folder}{filename}.locked
{My Pictures folder}{filename}.locked
{Personal folder}{filename}.locked

Related MD5 hashes:
c952a88edc0766adf819b30cd2683ac7
bd1fb33adfb18751487daf79d902116e
484ff0a68beb7445f5d6d1e9dd112aee