ランサムウェア
新型ランサムウェア「Big Head」の亜種、戦略、影響を分析
本稿では、新型ランサムウェアファミリ「Big Head」に関する技術的な分析結果について解説します。特に、Big Headに属するさまざまな検体の間に見られる共通点や、特徴的な差異について、詳しく説明します。これらの発見事項は、本ランサムウェアに関する初期のレポートに対して、より詳細な情報を拡充するものとなります。
2023年5月、新たなランサムウェアファミリ「Big Head」に関する報告が上がり、それ以来、少なくとも2つの亜種に関する情報が文書公開されています。トレンドマイクロが両亜種を詳しく解析したところ、ランサムノート(脅迫状)内に記載される連絡先メールアドレスが同一であることが判明しました。この点より、両亜種は、同一のマルウェア開発者によって作成された可能性があります。さらに調査を進めた結果、本マルウェアには数多くのバージョンが存在することも判明しました。本稿では、各亜種の動作、亜種間での類似点と相違点、実際の攻撃に運用された場合の影響について、分析結果をもとに解説します。
分析結果
本章では、トレンドマイクロが発見したBig Headに相当する3つの検体について、個々の機能や動作に焦点をあてて説明します。本ランサムウェアに関する調査は現在も継続中ですが、これら3検体は、いずれもWindowsアップデートやWordインストーラを装い、マルバダイジング(不正広告)の手口で配布されていると考えられます。
第一検体
ランサムウェア「Big Head」の以下の第一検体は、.NETでコンパイルされたバイナリファイルです。
SHA256値:6d27c1b457a34ce9edfb4060d9e04eb44d021a7b03223ee72ca569c8c4215438
トレンドマイクロでは「Ransom.MSIL.EGOGEN.THEBBBC」として検知
はじめに本バイナリは、自身がすでに起動中であるかを調べるため、関数「CreateMutex」を用いて以下のミューテックス名の存在をチェックします。すでに存在している場合、処理を終了します。
8bikfjjD4JpkkAqrz
本ファイルには、インストール時の動作を指定するオプション一覧が格納されています。オプションの内容はさまざまであり、例えば、「レジストリキーを作成するか」、「ファイルの存在確認および必要に応じた上書きを行うか」、「システムファイル属性を付与するか」、「自動起動用レジストリエントリを作成するか」などが挙げられます。図4の通り、各種オプションは、対応する動作に応じた文字列によって指定されます。また、それぞれの区切り目にはパイプ文字「|」が挿入されます。
下記に、マルウェアのインストール動作に関わるオプションの記述形式を示します。
[EXEファイルの名前(文字列)] [プロセスを起動するか(真偽値)] [ファイルの存在確認を行うか(真偽値)] [システム属性を付与するか(真偽値)] [ファイルのパス(文字列)] [レジストリキーを登録するか(真偽値)] [未使用]
第一検体のリソース領域を調べたところ、拡張子「exe」を持ち、実行形式と考えられる3つのファイルが発見されました。
- AAA 標的システム上で拡散するため、自身のコピーを作成する。本ファイルはランサムウェアとしての機能を担い、拡張子「.r3d」のファイルを暗号化した上で、別の拡張子「.poop」を追加する。
- AAA Archive.exe:ファイル「teleratserver.exe」を作成する。作成したファイルはTelegram用ボットとして機能し、攻撃者が所持するチャットボットIDとの間で通信を行う。
- AAA Xarch.exe:ファイル「BXIuSsB.exe」を作成する。作成したファイルはランサムウェアとしての機能を担い、ファイルを暗号化した上で、そのファイル名をBase64エンコード形式でリネームする。さらに、正規な処理が行われていると被害者に信じ込ませるため、偽のWindowsアップデート画面を表示する。
上述の3ファイルは暗号化され、正しい復号方法が分からない限り、内容を確認できない作りとなっています。
本マルウェアは、リソース内の3ファイルを復号するアルゴリズムとして、ECB(Electronic Codebook)モードによるAES方式を使用します。AES方式では、正しく復号を行うために初期化ベクトル(IV:Initialization Vector)が必要となります。
復号用の鍵については、図3で示したハードコーディングによる以下のミューテックス名のMD5ハッシュ値として得られます。
8bikfjjD4JpkkAqrz
このMD5ハッシュ値を復号鍵としてAESアルゴリズムを適用することで、3つのバイナリファイル「1.exe」、「archive.exe」、「Xarch.exe」が正しく復号されます。特記事項として、ミューテックス名と、リソース内の暗号化されたデータは、検体に応じて異なります。
本調査では、実際にミューテックス名のMD5ハッシュ値を手動で求め、それを復号鍵として、リソース内の各バイナリファイルをAES方式で復号しました。
上記のようにリソースから復号、抽出された3つのバイナリファイルは、その親ファイルと似たような処理を実行します。結果、それぞれが、別のバイナリファイルを1つずつ追加作成します。下表に、各バイナリファイルの名前とサイズ、および追加バイナリの名前を記載します。
追加バイナリ
以降、上で挙げた各追加バイナリの動作について、それぞれ詳しく解説します。はじめに、追加バイナリ「1.exe」は、同名の親ファイルから作成されます。
1. ファイル名:1.exe
サイズ:222,224バイト
本ファイルの復号に使用されるミューテックス名:2AESRvXK5jbtN9Rvh
このファイルは、起動するとまず、WindowsのAPI「ShowWindow」を引数「SW_HIDE(0)」付きで呼び出し、自身のコンソールウィンドウを画面上から隠します。また、自動起動用のレジストリキーを設定することで、システム起動時に自身が自動実行されるようにします。さらに、ローカル端末上のフォルダ「%localappdata%」配下に、自身のコピーを「discord.exe」の名前で作成します。
ランサムウェア「Big Head」は、被害者IDをファイル「%appdata%\ID」によって管理します。当該ファイルがはじめから存在する場合は、その内容を読み取り、被害者IDとしての妥当性を検証します。存在しない場合は、40桁のランダムな文字列を生成し、これを当該のファイル「%appdata%\ID」に保存します。被害者IDは、端末がすでに感染していることを示すマーカーとして働きます。
動作解析の結果として、追加バイナリ「1.exe」は、拡張子「.r3d」のファイルを暗号化すると考えられます。その際、暗号化方式としてCBC(Cipher Block Chaining)モードのAESアルゴリズムを、暗号化鍵として「123」のSHA256ハッシュ値を使用します。さらに、暗号化済みのファイルに対して拡張子「.poop」を追加します。
追加バイナリ「1.exe」からは、シャドーコピーやバックアップの削除、リカバリの無効化などの機能が確認されました。その際に使用されるコマンドを下記に示します。
/c vssadmin delete shadows /all /quiet & wmic shadowcopy delete & bcdedit /set {default} bootstatuspolicy ignoreallfailures & bcdedit /set {default} recoveryenabled no & wbadmin delete catalog -quiet
1.exeはランサムノートをデスクトップ、サブフォルダ、および「%appdata%」の配下に作成します。また、被害端末の壁紙設定を変更します。
最後に、本ファイルはコマンドを使用してブラウザを開き、ランサムウェア開発者のTelegramアカウント用URL「hxxps[:]//t[.]me/[非公開]_69」にアクセスします。本調査において、当該URLへのリダイレクト以外に、このTelegramアカウントとの間で特殊な通信や操作が行われる様子は見られませんでした。
2. ファイル名:teleratserver.exe
サイズ:12,832,480バイト
本ファイルの復号に使用されるミューテックス名:OJ4nwj2KO3bCeJoJ1
「Teleratserver」はPythonでコンパイルされた64ビット版バイナリであり、Telegramを経由する形で攻撃者側との通信を行います。この追加バイナリは、攻撃者からコマンド「start」、「help」、「screenshot」、「message」を受信します。
3. ファイル名:BXIuSsB.exe
サイズ:54,288バイト
本ファイルの復号に使用されるミューテックス名:gdmJp5RKIvzZTepRJ
この追加バイナリは、Windowsアップデートに扮した偽のユーザインターフェースを表示し、進行状況を示すパーセンテージを100秒毎に自動で増加させます。これは、正規なソフトウェアのアップデートが行われているように被害者に見せかけ、不正な処理を隠蔽するための手口です。
本追加バイナリは、システムの言語設定を確認し、ロシア、ベラルーシ、ウクライナ、カザフスタン、キルギス、アルメニア、ジョージア、タタールの国コードに一致する場合は、処理を中止します。さらに、被害者によってマルウェアが停止または解析されないようにするため、タスクマネージャを無効化する機能も備わっています。
さらに本追加バイナリは、隠しフォルダ「%temp%\Adobe」を作成し、そこに自身のコピーを保存します。続けて、それが次回のシステム起動時に一度だけ自動実行されるように、レジストリキー「RunOnce」を登録します。
ファイルの暗号化鍵としては、32桁のランダムなデータを生成して使用します。この鍵データ自体も、ハードコーディングで定義されたRSA-2048の公開鍵を用いて暗号化します。
この後、ランサムノートを作成し、その中に、上述した暗号化済みの鍵データを埋め込みます。
なお、下記文字列を含むディレクトリについては、暗号化の対象外として扱います。
- WINDOWSまたはWindows
- RECYCLERまたはRecycler
- Program Files
- Program Files (x86)
- Recycle.BinまたはRECYCLE.BIN
- TEMPまたはTemp
- APPDATAまたはAppData
- ProgramData
- Microsoft
- Burn
本ランサムウェアは、これらのディレクトリを不正な処理の対象外とすることで、システム上のセキュリティソリューションによる検知を回避し、長期に渡って活動できる可能性を高めています。また、下記のいずれかの拡張子を持つファイルのみを、暗号化の対象とします。
".mdf"、".db"、".mdb"、".sql"、".pdb"、".dsk"、".fp3"、".fdb"、".accdb"、".dbf"、".crd"、".db3"、".dbk"、".nsf"、".gdb"、".abs"、".sdb"、".sqlitedb"、".edb"、".sdf"、".sqlite"、".dbs"、".cdb"、".bib"、".dbc"、".usr"、".dbt"、".rsd"、".myd"、".pdm"、".ndf"、".ask"、".udb"、".ns2"、".kdb"、".ddl"、".sqlite3"、".odb"、".ib"、".db2"、".rdb"、".wdb"、".tcx"、".emd"、".sbf"、".accdr"、".dta"、".rpd"、".btr"、".vdb"、".daf"、".dbv"、".fcd"、".accde"、".mrg"、".nv2"、".pan"、".dnc"、".dxl"、".tdt"、".accdc"、".eco"、".fmp"、".vpd"、".his"、".fid"
本ランサムウェアは、下記のプロセスを停止します。
"taskmgr"、"sqlagent"、"winword"、"sqlbrowser"、"sqlservr"、"sqlwriter"、"oracle"、"ocssd"、"dbsnmp"、"synctime"、"mydesktopqos"、"agntsvc.exeisqlplussvc"、"xfssvccon"、"mydesktopservice"、"ocautoupds"、"agntsvc.exeagntsvc"、"agntsvc.exeencsvc"、"firefoxconfig"、"tbirdconfig"、"ocomm"、"mysqld"、"sql"、"mysqld-nt"、"mysqld-opt"、"dbeng50"、"sqbcoreservice"
暗号化後の追加処理として、本ランサムウェアは、暗号化済みファイルの名前をBase64形式にエンコードする形でリネームします。図19に示す関数「LockFile」は、ファイルを暗号化した上で、リネームを実行します。さらに、暗号化済みであることを示すマーカーをファイル末尾に付加する処理も組み込まれています。これについて調査したところ、図20の通り、当該マーカーの存在をチェックする動作が確認されました。対象ファイルの末尾に当該マーカーが存在すれば、本ランサムウェアによって暗号化済みであると判断できます。
本ランサムウェアは、オペレーティングシステム(OS)上で現在のユーザが使用している地域、言語、ローカル設定を確認し、下記のいずれかに一致した場合にのみ、暗号化の処理を進めます。
"ar-SA"、"ar-AE"、"nl-BE"、"nl-NL"、"en-GB"、"en-US"、"en-CA"、"en-AU"、"en-NZ"、"fr-BE"、"fr-CH"、"fr-FR"、"fr-CA"、"fr-LU"、"de-AT"、"de-DE"、"de-CH"、"it-CH"、"it-IT"、"ko-KR"、"pt-PT"、"es-ES"、"sv-FI"、"sv-SE"、"bg-BG"、"ca-ES"、"cs-CZ"、"da-DK"、"el-GR"、"en-IE"、"et-EE"、"eu-ES"、"fi-FI"、"hu-HU"、"ja-JP"、"lt-LT"、"nn-NO"、"pl-PL"、"ro-RO"、"se-FI"、"se-NO"、"se-SE"、"sk-SK"、"sl-SI"、"sv-FI"、"sv-SE"、"tr-TR"
この他、システムが仮想環境で稼働しているかを判定するため、ディスク一覧情報が記録されているレジストリ「\Disk\Enum」にアクセスし、そこに文字列「VBox」、「Virtual」、「VMWare」が含まれているかをチェックします。さらに、プロセス名の一覧を取得し、そこに文字列「VBox」、「prl_(Parallels Desktop)」、「srvc.exe」、「vmtoolsd」が含まれているかを、併せてチェックします。
本ランサムウェアは、プロセス名の一覧を取得し、そこから仮想化ソフトウェアに紐づく名前を検索します。これにより、システムが仮想環境で稼働しているかどうかを判定します。判定に応じて挙動を切り替えることで、検知回避、または本処理の成功率を高めています。以上の他にも、下記コマンドによってリカバリ用バックアップを削除する機能も備わっています。
vssadmin delete shadows /all /quiet & bcdedit.exe /set {default} recoveryenabled no & bcdedit.exe /set {default} bootstatuspolicy ignoreallfailures
バックアップの削除が終わると、その削除数に関わらず、ランサムウェアは自身を削除するために関数「SelfDelete」を呼び出します。本関数は、バッチファイルを呼び出し、これによってランサムウェアの実行ファイルが削除されます。バッチファイル自体も、そのバッチファイル自身によって削除されます。
第二検体
今回確認されたランサムウェア「Big Head」の以下の第二検体は、ランサムウェアと情報窃取ツール双方の機能を備えています。
SHA256値:2a36d1be9330a77f0bc0f7fdc0e903ddd99fcee0b9c93cb69d2f0773f0afd254
トレンドマイクロでは「Ransom.MSIL.EGOGEN.THEABBC」として検知
上図の左端に位置するメインファイルは、下記のファイルを作成して実行します。
- %TEMP%\runyes.Crypter.bat
- %AppData%\Roaming\azz1.exe
- %AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Server.exe
上記のうち、「runyes.Crypter.bat」と「azz1.exe」がランサムウェアとして機能するのに対し、「Server.exe」は情報窃取を行います。
ファイル「runyes.Crypter.bat」は、自身のコピーファイルや暗号化用ファイル「Cipher.psm1」を作成した上で、下記コマンドによって暗号化を開始します。
cmd /c powershell -executionpolicy bypass -win hidden -noexit -file cry.ps1
本ランサムウェアは、AESアルゴリズムによってファイルを暗号化します。また、暗号化済みファイルの末尾に「.poop69news@[非公開]」を付加します。暗号化対象のファイル拡張子を下記に示します。
".aif"、".cda"、".mid"、".midi"、".mp3"、".mpa"、".ogg"、".wav"、".wma"、".wpl"、".7z"、".arj"、".deb"、".pkg"、".rar"、".rpm"、".tar"、".gz"、".z"、".zip"、".bin"、".dmg"、".iso"、".toas"、".vcd"、".csv"、".dat"、".db"、".dbf"、".log"、".mdb"、".sav"、".sql"、".tar"、".xml"、".email"、".eml"、".emlx"、".msg"、".oft"、".ost"、".pst"、".vcf"、".apk"、".bat"、".bin"、".cgi"、".pl"、".com"、".exe"、".gadget"、".jar"、".msi"、".py"、".wsf"、".fnt"、".fon"、".otf"、".ttf"、".ai"、".bmp"、".gif"、".ico"、".jpeg"、".jpg"、".png"、".ps"、".psd"、".svg"、".tif"、".tiff"、".asp"、".aspx"、".cer"、".cfm"、".cgi"、".pl"、".css"、".htm"、".html"、".js"、".jsp"、".part"、".php"、".py"、".rss"、".xhtml"、".key"、".odp"、".pps"、".ppt"、".pptx"、".c"、".class"、".cpp"、".cs"、".h"、".java"、".pl"、".sh"、".swift"、".vb"、".ods"、".xls"、".xlsm"、".xlsx"、".bak"、".cab"、".cfg"、".cpl"、".cur"、".dll"、".dmp"、".drv"、".icns"、".icoini"、".lnk"、".msi"、".sys"、".tmp"、".3g2"、".3gp"、".avi"、".flv"、".h264"、".m4v"、".mkv"、".mov"、".mp4"、".mpg"、".mpeg"、".rm"、".swf"、".vob"、".wmv"、".doc"、".docx"、".odt"、".pdf"、".rtf"、".tex"、".txt"、".wpd"、".ps1"、".cmd"、".vbs"、".vmxf"、".vmx"、".vmsd"、".vmdk"、".nvram"、".vbox"
「azz1.exe」もランサムウェアとしての活動に関与する実行ファイルであり、自身のコピーが自動起動されるように、以下のレジストリエントリを登録します。
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
また、被害者IDを含むファイルやランサムノートの作成も行います。
第一検体と同様、第二検体も被害端末の壁紙設定を変更します。続いて、システムのデフォルトブラウザを用いて以下のURLを開きます。
hxxps[:]//github[.]com/[非公開]_69
本稿執筆時点で、このURLは無効となっています。
Big Headに属する他の亜種においても、azz1.exeを作成するものが存在します。ただし、ファイル名は個々のバイナリに応じて異なる場合があります。一方、Server.exeは弊社が情報窃取ツール「WorldWind」として特定した実行ファイルであり、下記データを収集します。
- 利用可能な全ブラウザの閲覧履歴
- ディレクトリ一覧
- ドライバのレプリカ
- 稼働中プロセスの一覧
- プロダクトキー
- ネットワーク情報
- ファイル実行後のスクリーンショット
第三検体
以下の第三検体には、トレンドマイクロが「Neshta」として特定した感染ツールが含まれています。
SHA256値:25294727f7fa59c49ef0181c2c8929474ae38a47b350f7417513f1bacf8939ff
トレンドマイクロでは「Ransom.MSIL.EGOGEN.YXDEL」として検知
Neshtaは、実行ファイルの内部に感染して不正なコードを埋め込むウイルスです。また、前回実行された感染済みファイルのフルパス情報を「directx.sys」という名前のファイルに書き出します。通常のマルウェアがこのような情報をファイルとして書き出すことは稀であり、本マルウェアに特徴的な挙動と言えるでしょう。
ランサムウェアを被害端末に展開する過程で別のマルウェア「Neshta」を紛れ込ませる手口は、最終的なランサムウェア用ペイロード「Big Head」を包み隠す試みと見なすこともできます。これにより、ランサムウェアとしての活動が、ウイルスを始めとする他の脅威として擬態されることになります。結果、ランサムウェアの検知を優先するセキュリティソリューションを惑わし、監視を逸らす効果があると考えられます。
第三検体の特徴として、表示される壁紙やランサムノートの内容が、第一、第二検体とは異なったものとなっています。
これまでに述べた通り、ランサウェア「Big Head」には独特な手口が数多く使用されています。その一例として、ファイルの暗号化時にWindowsアップデート画面を表示することが挙げられます。これは、被害者の目を欺き、端末操作を抑止する効果があります。他にも、暗号化済みファイルをBase64エンコードでリネームする点が挙げられます。これにより、被害者側では暗号化されたファイルの元の名前や拡張子を判別できなくなり、全体的な状況を紐解いて理解することがより一層困難になるでしょう。また、今回挙げたランサムウェア「Big Head」の3検体からは、それぞれ下記の特徴が確認されました。
- 第1検体は、感染の手続き中にバックドア機能を利用する
- 第2検体は、トロイの木馬型スパイウェアまたは情報窃取ツールを展開する
- 第3検体は、ファイル感染ツールを使用する
Big Headの背後にいる攻撃者
ランサムノートの内容を踏まえると、攻撃者は被害者と連絡を取る手段としてメールとTelegramの双方を利用しています。Telegramのユーザ名を調査したところ、これに繋がるYouTubeアカウントが発見されました。
当該YouTubeアカウントは比較的新しく、その加入日は2023年4月19日であり、本稿執筆時点で計12の動画を投稿しています。実際に本アカウントのチャンネルを確認したところ、サイバー犯罪に使用されるマルウェアについて紹介されていました。さらに、各動画の固定(Pinned)コメント内には、ランサムノートにも記載されているTelegramのユーザ名が、確かに明記されていました。
状況を踏まえると、本YouTubeアカウントの所持者は、Telegram上で取引を行っている可能性があります。また、特記事項として、YouTubeのアカウント名「aplikasi premium cuma cuma」は、インドネシア語で「プレミアムアプリケーションを無料で」と解釈できます。しかし、当該言語が使用される国々とBig Headの関連については、推測の域に留まるでしょう。
発見事項
今回挙げたランサムウェア「Big Head」の3検体を結びつける要素は、ランサムノート内に同一のメールアドレスが記載されている点だけでなく、同一のビットコイン用ウォレットが記載されている点や、同一のファイルが作成される点も挙げられます。さらに、3検体の全てが同一の処理構造に従って感染を進行させる点も、特記に値します。
ランサムウェア開発者が投稿したYouTube動画のコメント欄には、「新しいTelegramアカウントを開始した」という記載が見られました。これは、古いアカウントが存在していたことを意味します。今回、当該グループのビットコイン用ウォレットを調査したところ、2022年の取引履歴が発見されました。取引の目的は断定できませんが、履歴が存在している点を踏まえると、当該グループは以前からこのような攻撃を仕掛けていた可能性があります。
実際の感染事例が発生する前にランサムウェア「Big Head」の検体が開発途上の状態で発見されたことは、セキュリティ調査チームや解析チームにとって大きな強みと言えるでしょう。さまざまな亜種に関する解析結果や報告は、コードや動作の解析、潜在的な脆弱性の特定に役立つものです。こうした情報を用いることで、将来的なリスクに備えた対策を確立し、さらには脆弱性の修正を行い、総じてシステムの安全性を高めることが可能になるでしょう。
攻撃者の熟練度に関する見立てとして、YouTube上で「感染や侵入の成功」を示す証拠なしに自身の活動を宣伝することは、非テクニカルな視点においてやや未熟なように見受けられます。テクニカルな視点においても、今回の検体には意味の分かりやすい文字列が残されている他、推測しやすい暗号化手法が使用されている、見破られやすい回避手段が用いられているなど、さまざまな「失点」が見られます。
しかし、今回のランサムウェアは多岐に渡る機能を備え、検体に応じて情報窃取ツールや感染ツールを包含するなど、多面性を有している点に注意する必要があります。こうした特性がひとたび実際の攻撃に転じられれば、防御側では各攻撃経路に応じて個別の対策が迫られることとなり、結果として相当な被害が発生する可能性があります。そのため、セキュリティ対策チームでは、本ランサムウェアの存在について十分に警戒することを推奨します。
侵入の痕跡(Indicators of Compromise、IoC)
侵入の痕跡(IoC)についてはこちらで確認してください。
参考記事:
Tailing Big Head Ransomware’s Variants, Tactics, and Impact
By: Ieriz Nicolle Gonzalez, Katherine Casona, Sarah Pearl Camiling
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)