教育機関を狙うInterlockランサムウェア データ窃取から暗号化までの侵入手口

文●フォーティネットジャパン 編集●ASCII

提供: フォーティネットジャパン

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はフォーティネットジャパンが提供する「FORTINETブログ」に掲載された「Interlockランサムウェア:新たな手法、変わらない手口」を再編集したものです。

影響を受けるプラットフォーム:北米の教育機関
脅威の種類:金銭的動機のランサムウェア
影響:データの窃取と暗号化、恐喝
深刻度:モデレート

概要

 Interlockランサムウェアグループは、特に英国および米国の教育機関を中心に世界中の組織に対する侵害を続けています。FortiGuardインシデントレスポンス(IR)チームは、同グループと関係がある過去の攻撃の影響を継続的に追跡しています。昨今主流となっている他のランサムウェア攻撃とは異なり、Interlockグループの活動はRaaSモデルを使用していない点が特徴的です。むしろ、このグループはもっと小規模で専門的なオペレーター集団であり、自らのキルチェーンの大半を支えるために独自のマルウェアを開発、運用しているようです。Interlockランサムウェアグループは、減災策の進歩に対し、自身の手法やツールを徐々に適応させる能力があることを証明しました。

 本ブログでは、同グループが関与した最近の侵入事例を紹介するとともに、進行中の侵入を特定するには、組織での定期的な脅威ハンティングが重要であることを明らかにしていきます。侵入の初期段階に関する侵害指標は、昨年7月にeSentire Threat Response Unitが公開したキャンペーンの指標、ならびにMandiantによって過去に報告されたInterlockマルウェアエコシステムの一部と直接的な関係があります。我々の調査で得た情報からは、このグループがツールの改良を続ける中で、組織が注視すべき新たな指標が明らかになりました。

 当社の分析により、ツールを適応させる手段として、同グループが開発した新しいプロセス強制終了ツールが特定されました。これは、ゲーム用のアンチチートドライバーにあるゼロデイ脆弱性を悪用するものです。今回の侵入事例では、被害者のEDRおよびAVツールを無効化するためにこのツールが使用されました。

侵入タイムライン

 次のタイムラインは侵入の主な段階を示したものです。詳細は以下のセクションで解説していきます。

侵入の詳細

フェーズ1:初期アクセス:2025年3月31日

 本調査の対象となった被害者は、北米に拠点を置く教育機関でした。2025年3月31日にエンドユーザーのノートpcで実行された特徴的なpowershellアクティビティに基づき、被害者の環境への初期アクセスはmintsloaderへの感染に起因すると判断されました。感染時、被害者ユーザーはedrツールをインストールしていませんでした。関連するpowershellコマンドを図1に示します。

図1:初期侵害に関連するPowerShellコマンド(IPは無害化されています)

 このスクリプトは実行されると、URL「138[.]199.156.22:8080/」からPowerShellペイロードを取得して実行します。スクリプトに関連付けられたURL構造は、この活動が観測された時点で進行中だったTAG-124主導のMintsLoaderキャンペーンにリンクされていました。また、コマンドの構造は、別のInterlockランサムウェアの侵入でArctic Wolfが観測したPowerShellスクリプトと一致しています。Interlockランサムウェアのオペレーターは、これまでにもTAG-124というTDSインフラストラクチャを悪用し、北米の被害者を特定し攻撃していました。

 上記のコマンドの実行後、被害者のエンドポイントでzipファイル(download.zip)が作成され、ここには正規のNode.jsランタイム(node.exe)が格納されていました。このファイルは、悪意のあるJavaScriptペイロード(j1wp4vw8.log、SHA1: 63FD5E0811C0BCC7DF9FC3D712F39F829A8D6FF0)の実行に使用されました。関連するプロセスチェーンとJavaScriptのペイロードを解析した結果、CORNFLAKEの初期バージョンとしてこのペイロードを追跡しているMandiantの過去のレポート、ならびにNodeSnakeRAT.Bとして追跡しているQuorumのレポートと内容が一致しました。本ブログでは、このマルウェアファミリーをNodeSnakeRATと呼びます。このマルウェアは、活動の過程で多数のペイロードをディスクに書き込みます。FortiGuard IRチームが取得したそれらのペイロードを下の表1に示します。このインプラント(マルウェア)で実行されるすべてのペイロードが、ディスク上に痕跡を残すわけではありません。したがって、下表はオペレーターの活動全体を網羅したものではありませんが、その行動について一定の洞察を得ることはできます。

表1:侵入時、最初の感染者に対してNodeSnakeRATインプラントがドロップしたペイロード

 2025年3月31日、NodeSnakeRATを永続化するために、被害者のプロファイルを使って自動実行エントリ「ChromeUpdate」が作成されました。これはその後、新しいNodeSnakeRATペイロードを格納するために更新されました。

 最初の感染者にNodeSnakeRATインプラント(j1wp4vw8.log、SHA1 - 63FD5E0811C0BCC7DF9FC3D712F39F829A8D6FF0)が初めて実行されてから3日後の2025年4月3日、被害者の環境内で一時的に割り当てられたIPから、被害者の主要ファイルサーバーへ単発かつ短時間のRDP接続が確立されました。これには被害者の組織で使用されていないデフォルトの管理者アカウントが使用されました。2025年4月21日、攻撃者は自身のNodeSnakeRATアクセスを利用して2番目のJavaScriptインプラント(k4myle3i.dll、SHA1 - 6445E5CE51DA03934395ABB5411D3200D12ED7B3)を実行しました。これはInterlock RATの初期バージョンで、MandiantとeSentireもWINDYTWIST.SEAおよびInterlock Backdoorとしてそれぞれ追跡しています。

 入手可能な証拠によると、最初の感染から数ヵ月間、脅威アクターに目立った動きはありませんでした。2025年9月4日にインフラストラクチャが変更され(表1を参照)、続く2025年9月5日に次の重大な活動が実行されました。影響を受けたエンドポイントは個人ユーザーのノートPCで、被害者の企業ネットワークにはめったに接続していませんでした。おそらく脅威アクターは数ヵ月間、感染元から水平移動できなかったと推察され、FortiGuard IRはその理由を、感染したエンドポイントが企業環境に接続している間に攻撃の機会がなかったためと判断しました。

フェーズ2:データアクセスおよび流出:2025年9月5日~15日

 2025年9月5日、侵入の次の段階が開始されました。このとき被害者のMDRサービスは、自社環境にある別のアプリケーションサーバーで、同種のNodeSnakeRAT感染チェーンを検知しました。影響を受けたエンドポイントが内部のアプリケーションサーバーであること、MintsLoaderやその他の初期アクセスを使った痕跡がないこと、さらに、同じNodeJSとそれに続くJavaScriptファイルが使用されていることから、フェーズ2は前回の侵入から継続していると考えられます。攻撃者はすでに確立したアクセスを使用して、別のInterlock RATインプラントを.logファイル(node.log、SHA1: 2D5F88C396553669BD50183644D77AD3C71D72BB)として配信しました。このファイルには、ハードコードされた新しいインフラストラクチャが格納されていました。

Interlock RATインプラントの解析

 2番目のInterlock RATペイロードも、難読化されたJavaScriptです。ここには130個以上の定数文字列が含まれています。実行時に一意のIDを指定して文字列関数を呼び出すことで、それらの文字列が動的に取得されます。この手法は完全な静的解析を妨害し、文字列ベースの検知メカニズムの実効性を制限します。このペイロードの場合、IDで定数文字列を取得するために関数「a0n()」が使用されます。ただし、公開された他のサンプルはこの関数値が一定ではなく、ビルドごとにランダム化されている可能性が高いことを示唆しています。「const Y = a0n;」は、Yがa0n()関数への参照であることを示しています。なお、コードロジックを分かりやすくするために、このセクションのコードスニペットでは解決された文字列を表示しています。エラー! 参照先が見つかりません。下の図は、コードがどのように動的文字列を利用するかを示しています。

図2:動的文字列を使用したコードスニペット

 ペイロードは実行されると、PowerShellで「systeminfo」コマンドを実行し、被害者のデバイスからシステム情報を収集します。収集された情報には、現在のユーザーの権限(ユーザー、管理者、システムなど)、ドメイン、コンピュータ名、現在のユーザー名、Windowsのバージョンなどが含まれます。図3は収集された情報の実例です。

図3:ペイロードが最初に実行されると、基本的なシステム情報を収集するためにsysteminfoが呼び出される

 システム情報を収集したら、マルウェアはそれを平文でC2サーバーのいずれかに送信します(図4)。このペイロードは、ハードコードされたC2サーバーのIP、すなわち「157[.]250.195.229」、「216[.]219.95.234」、「64[.]190.113.235」を定義します。これらのうち2つは、動的文字列関数でIDを指定して取得されます。すべてのC2 IPを静的解析で取得できるわけではないため、この点は注目に値します。指定されたすべてのC2サーバーに対し、サーバーポートは443にハードコードされます。

図4:テスト中、ハードコードされたC2 IPに送信されたパケットと収集済みシステム情報の実例

 このC2トラフィックの最初の4バイトはマジック値(0xDF691155)です。後続のバイトには、収集された情報がJSON形式で含まれています。「iptarget」フィールドは、データの送信先であるC2サーバーを指定しています。この最初のパケットを特に取り上げたのは、これが暗号化されておらず、検知できるチャンスがあるからです。後続のパケットは、ペイロード独自の暗号化関数によって暗号化されています。各パケットは、メッセージヘッダーとメッセージデータ(コマンドデータ)の2つの部分で構成されています。メッセージヘッダーは、一定の鍵(このペイロードでは0x4D)を使ってXORで暗号化されています。平文のメッセージヘッダー(0x0Cサイズ)のレイアウトを以下に示します。

表2:メッセージヘッダーの構造とコンテンツ

 インプラントの実行中にC2サーバーとの接続が確立されると、ペイロードはタイマーに従って(約1分間隔で)ハートビートパケットを送信し、その接続を維持します。このようなパケットのコマンドタイプは0x1(VOID)です。

 インプラントは複数のコマンドタイプをサポートしており、各タイプが攻撃者の活動を支援する追加機能を提供します。このRATサンプルで使用されたすべてのコマンドを表3に示します。以下のセクションでは、SOCKS5、CONSOLE、CONSOLE_ONE_COMMANDのコマンドタイプについて解説します。

表3:侵入で確認されたInterlock RATサンプルのコマンド一覧

SOCKS5プロキシ

 SOCKS5プロキシのコマンドタイプは0x00、スレッドIDは0xffff、鍵はランダムに生成されます。以下は、平文で書かれた完全なSOCKS5コマンド(メッセージヘッダー+メッセージ本文)の一例です。

 上記のサンプルコマンドを受け取ると、インプラントはオペレーターが指定したIPおよびポートとのネットワーク接続を確立し、SOCKS5プロキシサービスを提供します(上記の表のIPとポートはサンプル値です)。当社の制御下にある環境でキャプチャしたSOCKS5のコマンドを図5に示します。

図5:キャプチャしたSOCKS5のコマンドパケット

CONSOLE

 CONSOLEのコマンドタイプは0x03です。このコマンドを使用して、C2サーバーと被害者デバイスとの間にリモートインタラクティブシェルが確立されます。コマンドパケットはメッセージヘッダーのみを必要とし、メッセージ本文のデータはすべて無視されます。このパケットの例を以下に示します。

 リモートシェルが確立されると、攻撃者はインタラクティブシェルを介して任意のWindowsコマンドを直接実行できます。

CONSOLE_ONE_COMMAND

 このコマンドを使用すると、攻撃者はWindowsコマンドを実行し、その結果を受け取ることができます。以下は「dir c:\」コマンドを実行するための平文パケットの例です。

図6:「dir C:\\」コマンドのパケットと、それに対する応答パケット(どちらも暗号化されています)

 この侵入では、Interlock RATのいくつかのインスタンスが複数のホストで展開されました。特定されたサンプルの詳細を表4に示します。脅威ハンティングに役立つC2 IPアドレスも付記しています。

表4:特定されたサンプルから抽出したInterlock RATのC2 IP

 Interlock RATインプラントの後半段階では、スケジュール済みタスクが永続化に使用されました。侵入で使用されたスケジュール済みタスクの名前は「\Microsoft\Windows\Defrag\ScheduledDefrags」、「\Microsoft\Windows\Chkdsk\TempDefrag」、「\TimeSyncDrive」、「\TimeSyncroDriver」、「\TimeSync’, and ‘\TimeSyncro」です。

 攻撃者は再びInterlock RATインプラントを使用して、システムの探索と列挙を開始しました。これには、被害者のドメインコントローラにある「Microsoft」というアクセス可能な共有に配置されたPowerShellスクリプト(1.ps1)が使われました。このスクリプトには、さまざまな形式の静的難読化が施されています。スニペットを図7に示します。

図7:被害者の環境でシステム探索および列挙に使用された難読化PowerShellスクリプト(1.ps1)

ScreenConnectのインストール

 2025年9月13日、攻撃者はツールを変更し、ScreenConnectのインストールを開始しました。インストールにはMSIファイル(support.msi)が使用されました。実行後に確認されたシグネチャのコマンド構造に基づくと、このファイルはAdvanced Installerで作成されたようです(図8)。

図8:特殊なPowerShellコマンド構造。Advanced Installerで作成されたMSIインストーラの使用を示唆している。

 この手法は複数のユーザーワークステーションで使用され、少なくとも2025年10月9日までは有効に機能していました。インストールの詳細情報から、ScreenConnectサービスがC2ドメイン「user[.]kangaroosim[.]com」と通信するよう設定されていたことが判明しました。このドメインは、感染時にIPアドレス「91[.]92.241.179」に解決されます。FortiGuard脅威インテリジェンスは、これが既知のC2ドメインであり、ScreenConnectの使用と関係していることを示しています(図9)。

図9:侵入に関与したScreenConnect C2ドメインに関する情報(FortiGuard脅威インテリジェンス)

 FortiGuard IRはTTPが変更された理由として、その後のデータ流出にはGUIの方が攻撃者にとって都合がよいと思われること、侵入を着実に進める上で被害者のEDRツールが妨げになることなどを挙げています。ScreenConnectなどのリモートデスクトップツールの変則的な使用は、高い確率で検知でき、ランサムウェア関連の脅威の軽減を目指す防御者は重点的に調査すべきです。

 攻撃者はこのツールのアクセス機能を活用し、netsh.exeとインタラクティブなPowerShellウィンドウを介して被害者のファイアウォールにRDPの許可ルールを追加しました。攻撃者はその後もScreenConnectのアクセスを使用し、9月14日から15日にかけて、侵害されたエンドポイントと被害者のファイルサーバーで重要なファイルを頻繁に探索していたことが確認されました。

 9月15日には、侵害されたユーザーワークステーションとScreenConnect経由で通信し、RDPを使って被害者のプライマリファイルサーバーとのセッションを確立しました。セッションの実行中に、攻撃者はAZcopy実行ファイル(win64.exe、SHA1: BE39DBADFC9CFC494F1B7BF3A04E49C336E0FA0D)のコピーを作成しました。AZcopyはオープンソースのコマンドラインユーティリティで、Azureストレージバケットへのファイルアップロードをサポートしています。攻撃者はこれを利用して、被害者のファイルサーバーから250GBを超えるデータを流出させました。データの流出にAZcopyを利用する点は、Cisco Talosが2024年11月に公開したInterlockランサムウェアの活動と一致しており、TTPの共通性が強く表れています。今回の侵入で観測され大量流出はこのイベントだけでした。

フェーズ3:ランサムウェアの準備と展開:2025年9月16日~10月12日

 被害者のネットワークから大半のデータが流出した時期と、脅威アクターが被害者のエンドポイントでランサムウェアの展開を開始した時期には大きな隔たりがあります。また、AZcopyによる大量流出の後、さらなるデータ流出は観測されていない点も注目に値します。FortiGuardはこの段階で、ランサムウェアのオペレーターは、データの奪取だけでは被害者が身代金を支払う動機として不十分であると判断し、その目的を達成するため暗号化に回帰したと推察しました。

 他の大半のランサムウェアオペレーターは、初めから二重恐喝の手法を使うのが一般的であり、このようなアプローチは極めて特殊です。この侵入には、2種類のランサムウェアペイロードが使用されました。一つはWindowsエンドポイントを標的とし、JavaScriptファイル(jar.jar、SHA1 - AD77FBDBB2FCBDB440428EED3E76D106E1119FCF)として実装されます。もう一つは被害者のNutanixハイパーバイザーを標的とし、ELFバイナリ(スクリプトのSHA1 - F5C6BD4E9686AFB0C4E7C1C1733FEBB4065D514F)として実装されます。

 ランサムウェアの展開が開始されたのは2025年10月10日で、攻撃者は既存の管理者アカウントを使用して、SSH経由で被害者のNutanixシステムに水平移動しました。そして、アクセスを利用して論理ディスクを特定し、ELFバイナリ(スクリプトのSHA1 - F5C6BD4E9686AFB0C4E7C1C1733FEBB4065D514F)を送信しました。これは、InterlockランサムウェアのLinux実装であると考えられます。このバイナリは「setsid」コマンドを使用して実行され、特定された各ドライブが図10のコマンドを使って暗号化されました。

図10:Interlockオペレーターのコマンド履歴。Interlockランサムウェア(スクリプト)を使って被害者のNutanixサーバーでドライブを暗号化し、その暗号化を検証している。

 攻撃者はこの後、被害者のPrism Centralサーバーにログインし、論理ディスクが暗号化されてファイル拡張子「.!nt3rlock」が付けられていること、そして、適切なランサムノート(身代金の宣告)が配信されたことを確認しました。関連するランサムノートのスクリーンショットを図11に示します。

図11:接続されたすべての論理ディスクを暗号化した後、暗号化されたNutanixサーバーに配信されたランサムノート

 この最初の暗号化に続いて、RDPとインタラクティブPowerShellを介して被害者のWindows環境に対する広範囲な列挙が実行されました。攻撃者はインタラクティブPowerShellセッションで複数のLOLbinを使用して(図12)、認証情報の収集と検証、ランサムウェアの標的となる主要サーバーとの接続確認、防御用ソフトウェア(FortiClientとFortiEDR)のアンインストール / 無効化を行いました。

図12:ランサムウェアの準備段階でRDPアクセスを介して実行されたコマンド

 最後の3つのコマンドには注意が必要です。最後から3番目の「appwiz」はプログラムへのショートカットで、Windowsコントロールパネルのコンポーネントとして機能し、被害者のエンドポイントでプログラムをインストールおよびアンインストールするために使用できます。後続のコマンドのコンテキストから、FortiGuard IRは攻撃者がこの機能を使ってセキュリティソフトウェアの特定を試みたと推測しました。攻撃者は続いて、以下のPowerShellコマンドの実行を試みました。

図13:EDRバイパスツール「Hotta Killer」の実行に使用されたPowerShellコマンド(読みやすさを考慮してフォーマットは変更されています)

 上記の一連のコマンドは、最終的にrundll32.exeによるプロキシ実行を介してDLLファイル「polers.dll」を実行し、1秒間のスリープループに入る前にプロセスのインスタンスが少なくとも5つ実行されていることを確認しました。これらのコマンドは有効なウォッチドッグとして機能し、プロセスが常時動作していることを確認しました。このプロセスでは以下のコマンドライン引数が生成されています。

C:\windows\system32\rundll32.exe .\polers.dll start Forti*

 このコマンドの最初の試行は失敗しました。オペレーターがDLLにアクセスするための正しいディレクトリを指定しなかったからです。そのため、cdコマンドとduplicateコマンドが実行されました。このDLL(polers.dll、SHA1: 3B9B2D5934F9ED1E3A000A760A6FA90422E8A555)を解析したところ、BYOVD(Bring-Your-Own-Vulnerable-Driver)型の新しいプロセスキラー(強制終了)ツールであることが分かりました。

Hotta Killerマルウェアコードの解析

 Hotta Killer(polers.dll)が実行されると、別のペイロードDLLファイルが抽出されてメモリにドロップされ、polers.dllの既存のコードは上書きされます。この動的な読み込み手法は、Interlockオペレーターがこの侵入で使用したマルウェアサンプルで共通しており、前述したように、静的解析を妨害する手法として有効です。以下の解析は、動的に抽出されたペイロードDLL(これを「Hotta Killer」と呼んでいます)のみに基づいています。

 動的な読み込みの後、マルウェアはメモリからカレントディレクトリ(当社のテストでは「E:\」)にカーネルドライバーをドロップします。ドライバーのファイル名は「UpdateCheckerX64.sys」、SHA1は7556AE58C215B8245A43F764F0676C7A8F0FDD1Aです。このドライバーは署名付きのx64ネイティブシステムドライバーであり、「GameDriverx64.sys」というアンチチートドライバーを改名したもので、CVE-2025-61155の脆弱性があります。

 システムドライバーのインストールと起動は、Windows固有のAPI、すなわち OpenSCManagerW(), CreateServiceW(), OpenServiceW() and StartServiceW()を呼び出して実行されます。

CreateServiceW()関数を呼び出す主なパラメータは次の通りです。

 dwServiceTypeは1(SERVICE_KERNEL_DRIVER)に設定されており、これがカーネルドライバーであることを示しています。したがって、このドライバーはシステムサービスではなくシステムレジストリに表示されます。図14は、「UpdateCheckerX64_1763677393」というサービス名で新たにインストールされたドライバーを示しています。

図14:システムレジストリにインストールされたカーネルドライバー

 サービスドライバーのインストール後、ペイロードDLLはCommandLineToArgvW() APIを呼び出し、コマンドライン入力として与えられた引数「Forti*」を取得します。これはその後、「Forti*.exe」という形式に変換されます。次に、Windows固有のAPIである CreateToolhelp32Snapshot(), Process32NextW() and Process32FirstW()を使用して、現在実行中のプロセスの中から、名前のパターンが「Forti*.exe」と一致するものを検索します。

 検索パターンと一致するプロセスのPIDを取得したら、作成済みのシンボリックリンク「\\.\HtAntiCheatDriver」を介して、読み込んだサービスドライバーにそのPIDを渡します。続いてDeviceIoControl()APIを呼び出し、取得したPIDをinBufferパラメータに設定することで、このPIDに対応するプロセスの強制終了を試みます。図15は、以上のプロセスの重要なポイントを示したC言語の疑似コードです。

図15:標的のPIDをドライバーに送信するメカニズムを表した疑似コード

 サービスドライバーが起動すると、そのDriverEntry()関数が呼び出され、「デバイス」とシンボリックリンクが作成されます。そのために、DeviceNameを「\\Device\\HtAntiCheatDriver」に設定してIoCreateDevice()が呼び出され、SymbolicLinkNameを「\\??\\HtAntiCheatDriver」に設定してIoCreateSymbolicLink()が呼び出されます。シンボリックリンクが確立されると、ペイロードDLLはそのリンクを介してドライバーと通信できます。その後、ドライバーはIRP_MJ_DEVICE_CONTROLメジャー関数にコールバック関数を設定します。これにより、データの受信時にドライバーが自動的に呼び出されるようになります。コールバック関数はIoControlCodeを読みとり、そのコードが0x222040かどうかを確認します(図16)。次に、フラグが0xFA123456であることを確認します。両方のチェックに成功した場合は、入力バッファからPIDを読みとり、ネイティブAPIのZwTerminateProcess()を呼び出してプロセスを終了します。

図16:シンボリックリンク「\\??\\HtAntiCheatDriver」にアタッチされたバッファに、取得したPIDを送信。PIDで指定された「Forti*.exe」プロセスを強制終了するため、ZwTerminateProcess()が呼び出される。

 Hotta Killerは、「新たなEDRバイパスツール」と見ることもできますが、より正確には「高度化したプロセスキラー」ツールであり、今回のケースでは、フォーティネットのセキュリティソフトウェアを標的とするInterlockランサムウェアのオペレーターが、防御を回避するためにこのツールを使用しました。この侵入では、ネストループを使ってHotta Killerの利用が試みられましたが、インストールされているフォーティネットソフトウェアの動作には影響しませんでした。

 ビデオゲームのアンチチートソフトウェアに関係するドライバーは、以前から上記と同じ目的でランサムウェアのオペレーターに悪用されていました。組織は、BYOVD(Bring Your Own Vulnerable Driver)などの新しいツールに対応した脅威インテリジェンスを早急に自社のセキュリティ対策に取り入れることを検討すべきです。そうすることで、これらのツールの影響を最小限に抑え、検知機能を高めることができます。

 この後、攻撃者はランサムウェアを使って被害者のエンドポイントで暗号化を開始しました。ランサムウェアの最初の展開は、攻撃者のScreenConnectとPowerShell ISEを使用したRDPセッションを介して双方向で実行されました。FortiGuard IRは、この最初の展開はデプロイメントコマンドの検証を目的にしていたと推察しています。これらのコマンドは、その後PowerShellスクリプトに組み込まれ、より広範囲にランサムウェアが展開されます。

JavaScriptランサムウェア(jar.jar)のコード解析

 この被害者に大きな影響を与えたのは、悪意のあるJavaScriptファイル(jar.jar、SHA1 - AD77FBDBB2FCBDB440428EED3E76D106E1119FCF)でした。このファイルは、被害者の環境でWindowsエンドポイント上のファイルを暗号化するために使用されました。注目すべき点は、攻撃者が侵入全体を通して同じ名前の複数のファイルを使用していること、そして、その命名規則が過去のInterlockランサムウェアの活動と関連性があることです。実装されたJavaScriptランサムウェアは、被害者のマシンで可能な限り早急にファイルを暗号化するために、マルチスレッドを使用しています。コードには、コマンド&コントロール(C2)サーバーとの通信は含まれていません。このマルウェアは、ハードコードされたRSA公開鍵を使用して自律的に動作します。つまり、暗号化を開始するためにサーバーとの通信は必要ないということです。

 スクリプトの最初の関数「reme」は、難読化されたPowerShellコマンドが終了時に.jarファイルを削除するよう設定します。

図17:実行時のJavaScriptファイルの自己削除をサポートする「reme」関数

 この関数は、プログラムの終了時にShutdownHookが実行されるよう設定します。さらに、PowerShellコマンド「powershell.exe -Command sleep 5 ; rm '<path_to_jar>」をデコードし、再構成します。コマンドは5秒間待機した後、解析を妨害するためマルウェアファイルを強制的に削除します。

 スクリプトの2番目の関数「lp」は、被害者のエンドポイントファイルシステム内で再帰的にファイルを検索する一方、フィルターを使って重要なシステムディレクトリと拡張子を除外します。

図18:ランサムウェアスクリプト内の「lp」関数

 「filter」変数への参照を使用して、除外対象のディレクトリとファイルタイプが選別されます。

 この関数には、フィルター条件を満たしたファイルとディレクトリのみを返すdir.listFiles(filter) も組み込まれています。フィルター(「filter」)自体は、EX_Dセットに含まれていないディレクトリと、拡張子がEX_EXTセットと一致しないファイルのみを返すよう定義されています。これにより、システムの安定性を維持しつつ、実効性のある標的リストが作成されます。これらのbase64でエンコードされたセット内の対応する値を表5に示します。

表5:InterlockランサムウェアのJavaScriptファイルでデコードされた除外対象のディレクトリとファイル拡張子

 3番目の関数は、ファイル固有のAES鍵をマスターRSA公開鍵で暗号化することで、提供されたファイルに対して2段階のハイブリッド暗号化プロセスを適用します。

図19:JavaScriptランサムウェアファイル内のメイン変数「run」

図20:「PrivLogger」関数。ハードコードされた公開鍵を使用してAES暗号化ツールをインスタンス化するために使用される。

 Log.run()メソッドは、このマルウェアの主要なメソッドです。まず、対称鍵Logger(AES)を生成し、次に非対称鍵 privLogger を使ってその鍵を暗号化し、それを付加した後、ファイルを暗号化します。privLogger のコードは、RSAがハードコード鍵を用いた暗号化専用モードで使用されていることを裏付けています。

 ここでの暗号化に使用されるLogクラスには、断続的(部分的)な暗号化ロジックが含まれており、最初にファイルの1ブロックを暗号化し、次に1ブロックをスキップします。これにより、大容量ファイルでの処理を高速化しています。

図21:「cryptBlocksByAES」関数のスニペット。入力として与えられたファイルハンドル「hendle」で参照されるファイルを暗号化する。

 whileループでこのパターンを確認できます。暗号化されたブロックを書き込み(hedle.write)、その直後にファイルポインタを前方にジャンプさせる(hedle.seek)ことで、元のファイルの大部分が未加工のままアクセス不能になります。スキップする分量(tsk)も増加するため、非常に大きなファイルでは処理速度がさらに向上します。

ランサムウェアの初期展開

 ランサムウェアの最初の展開は、攻撃者のGUIアクセスを通じて、主要なファイルサーバーとコアアプリケーションサーバーで実行されました。この初期展開では、攻撃者がまずランサムウェアの実行ファイルと正当なjavaw.exeアプリケーションのコピーを、ユーザーのAppDataローミングディレクトリ内にある、正規のアプリケーション(「FortiClient」、「VMware」、「Welcome」など)を偽装したディレクトリにドロップしたことが確認されました。

 ランサムウェアの初期展開とテストに続いて、攻撃者は「move.dll」と呼ばれるカスタムインフォスティーラーを使用しました。

カスタムインフォスティーラーの解析:「move.dll」

 この侵入で確認されたその他のInterlockマルウェアと同様に、move.dllは実行されると、メモリ内のmove.dllのコードを別のDLLで上書きします。以下の解析は、動的に抽出されたペイロードDLL(これをカスタムインフォスティーラーと呼んでいます)に関するものです。

 このマルウェアは、エンドポイントに接続されたネットワークから機密情報をリモートで収集することを目的にしています。以下のパラメータ「-h」は、リモートデバイスのホスト / IPを渡すために使用されます。

rundll32.exe move.dll start -k key.der -h <hostname/IP of target endpoint>

 機密データは、表6に示した複数の有名なWebブラウザから収集されます。

表6:カスタムインフォスティーラーが標的とするブラウザ

 図22に示すマルウェアは、「Login Data」というChromeの認証情報ファイルをローカルファイル「zGi0UUlYs0」にコピーする準備をしています。これらのプロファイルファイルがリモートからローカルへ一つずつコピーされ、処理されます。マルウェアは、「\\<IP of target endpoint>\C$\Users」内のサブフォルダを列挙することで、リモートを取得します。そして、リモートデバイスから標的のプロファイルデータファイルをコピーし、%TEMP%ディレクトリ内のファイルに保存します。このファイルは、ランダムな名前を付けてローカルで作成されたものです。これらのプロファイルファイルはSQLite形式で保存され、機密度の高いブラウザデータが格納されます。

図22:収集したファイルをリモートの標的システムからコピーするカスタムインフォスティーラーのコード

 コピーが完了すると、複数のSQLite関連のAPIと以下のSQLコマンドを使用して各ファイルが処理され、機密データが抽出されます。

図23:SQLコマンドCommands

 これらのクエリで取得されるデータは、保存された認証情報、ブラウザの履歴、Cookie、ブックマークなどで、取得したアーティファクトや標的エンドポイントで入手可能な保存データによって異なります。マルウェアは、リモートエンドポイントからこれらのデータを収集すると、それをローカルのCSVファイルに保存します。ファイル名の形式は「..csv」です。

 生成されたCSV内で、収集済みデータはWebブラウザ名とデータタイプで分類されます。図25はテストマシンで収集されたFirefoxのデータで、「cr」は認証情報、「co」はCookie、「hi」はブラウザ履歴、「bo」は保存済みブックマークを示しています。

図25:カスタムインフォスティーラーの標的となったFirefoxブラウザのサンプルデータから収集された機密データの表示

ランサムウェアの大規模展開

 FortiGuard IRは、攻撃者がこのマルウェアを実行して認証情報を検証した後、それを使って残りのWindowsドメインでランサムウェアを大規模に展開するつもりであったと考えています。侵害されたユーザーワークステーションがScreenConnectにアクセスすることで、バッチスクリプト「W_0.bat」が実行され、それを通じてランサムウェアが大規模に展開されました。このバッチスクリプトには、ハードコードされた一連のPsExecコマンドが格納されており、侵害されたドメイン管理者の有効な認証情報を使用して、別バージョンの1.ps1 PowerShellスクリプトを実行しました。同スクリプトは、被害者のプライマリドメインコントローラにある共有「out」でホストされていました。コマンドの一例を図26に示します。

図26:被害者の環境でランサムウェアを展開するために使用されたW_0.batスクリプト内のPsExecコマンド

 このPowerShellスクリプトは、別バージョンのランサムウェアjavaファイル(update.jar)を実行しました。これも被害者のプライマリドメインコントローラにある共有「out」でホストされていました。

 大規模なランサムウェアの展開後、攻撃者は約5,000件の新規ドメインユーザーアカウントを作成するスクリプトを展開しました。アカウント名は被害者の命名規則に従っていますが、ランダムに割り当てられていました。これらのアカウントが作成されると、攻撃者はさまざまなPowerShellコマンドを使用して、アカウントが正常に作成されたことを確認していました。攻撃者が目的達成のための活動をすでに完了していたことを考えると、この操作の目的は判然としません。

結論

 今回の侵入は、Interlockランサムウェアグループのオペレーターが継続的にツールを改良することで機能を向上させ、新たな脆弱性につけ込み、TPPを切り替えて防御側の制御を妨害していることを明確に示しています。多様なTPPを自由に選択できるにもかかわらず、オープンソースの脅威レポートですでに公開済みのインフラストラクチャが引き続き使用されていることから、以下の対策が重要であることは明白です。

・脅威ハンティングによって、ビジネスインパクトが現実化する前に侵入を特定する。
・進行中の侵害を特定するため、組織の脅威プロファイルに関するインテリジェンスと既存のツールを統合する。

 本事例において、被害者の環境には4ヵ月以上前に公表された既知の侵害指標が含まれていました。これらを活用していれば、最初の侵害を検知し、ビジネスへの影響が生じる前に攻撃者のアクセスを阻止できた可能性があります。組織は脅威について大量の報告を受け、それらに対処しなければなりませんが、現在の脅威情勢において、特に金銭目的の脅威グループが存在する状況では、脅威インテリジェンスを取捨選択し、組織にとって重大な脅威とその侵害指標を判別する脅威中心のアプローチが不可欠です。

推奨事項

 今回の侵入フローと、一般的なRansomware-as-a-Service(RaaS)のアフィリエイトが関与した侵入にはいくつかの顕著な違いがありますが、侵入の防止や検知に向けた現実的な推奨事項は、これまで通りベストプラクティスに沿ったものになっています。以下に示す3つの推奨事項は、実施するにあたって多大なリソースの投入は必要なく、ランサムウェアの脅威が拡大する中で非常に高いROIを実現します。

1.標準的なビジネスニーズを満たすために必要でなければ、既知のリモートアクセスソフトウェアの実行を明示的にブロックする:リモートアクセスソフトウェアが必要な場合は、除外対象を調整して正当な使用を許可します。あらゆる種類のブロックと同様に、検知ルールを策定してリモートアクセスソフトウェアの使用を識別し、それを優先的に監視します。この機能は適合するEDR1ソリューションを通じて実装できます。必須かつ基本的なEDR機能として検討してください。適合するNGFW2でも実装可能です。

 侵入への影響:攻撃者に低機能で識別されやすいアクセスを使って活動させることで、侵入を遅らせ、攻撃効果を緩和し、攻撃者やツールの振る舞いに対する検知率を高めると共に、防御側が効果的に対処するための時間的猶予を確保することができます。

2.ワークステーション間のSMBおよびRDP接続をブロックする:ワークステーション間でSMBまたはRDPを使用する必要性は極めて限られており、ビジネスまたは管理プロセスでこれらの機能を必要とする組織は、それに代わるソリューションを現代的管理のベストプラクティスに沿って開発すべきです。これらの接続をブロックするには、Windowsファイアウォールを使用して、インバウンドのSMPおよびRDP接続をエンドポイントで遮断します。ただし、ドメインコントローラ、SMBファイルサーバー、中核的ビジネスに必要なホスト用SMB共有は除きます。さらに、ワークステーション間のSMBおよびRDP接続に対し、高優先度のアラートを設定します。この機能に関連する誤検知の発生は非常に限定的です。

 侵入への影響:ランサムウェアの大規模展開や水平移動でよく使われる経路をブロックすることで、侵害の発生を遅らせるほか、影響の範囲を最小限に抑え、検知機能を向上させ、防御側が効果的に対処するための時間的猶予を確保できます。

3.アウトバウンドのPowerShellネットワーク接続をブロックする:企業ネットワーク内の標準的なユーザーが、PowerShellを使ったWebリクエストを実行する必要性は非常に限られています。ただし、この手法は本キャンペーンを開始した初期ローダーの一機能として使用されており、それ以外のClickFix3やFileFix4による感染でも多く見られます。PowerShellおよびPowerShell_ISEに関連するすべてのアウトバウンド接続をブロックし、その動作に対して高優先度のアラートを実装すると、一般的な初期アクセスの手法の影響を効果的に軽減できます。前述の推奨事項と同じく、この対策はWindowsファイアウォールを使用して、基本的な技術力で簡単に実施できます。

 侵入への影響:攻撃者は、基本的なPowerShellダウンロードクレードルを使用できず、ネットワーク内で最初の足場を築けなくなります。これにより、組織を標的にした現行キャンペーンの初期アクセスや通知を防止でき、防御側はその他の潜在的な被害者を特定できます。

MITRE ATT&CKマッピング&観測結果

TA0001:初期アクセス

TA0002:実行

TA0003: 永続化

TA0005:防御の回避

TA0006:認証情報へのアクセス

TA0007: 探索

TA0008: 水平移動

TA0009:収集

TA0010:流出

TA0040:影響

FortiGuardのソリューション

 Interlockランサムウェアのスクリプトとバイナリは、以下のAVシグネチャによって検知されます。

Java/Interlock.A1EF!tr

JS/Interlock.D870!tr

W32/Kryptik.HXUY!tr.ransom

Linux/Filecoder_InterLock.A!tr

W64/GenKryptik.HCFC!tr

W64/GenKryptik.HHER!tr

W32/Kryptik.HXUY!tr.ransom

W64/Filecoder_Rhysida.D!tr (Note that the reference to Rhysida is due to indicator crossover in earlier Interlock samples.)(Rhysidaは過去のInterlockサンプルと指標が重複しているため記載されています)

 FortiEDRの振る舞い検知は、この攻撃の前半で使用されたポストエクスプロイトのTTP、例えば水平移動、認証情報へのアクセス、スケジュール済みタスクによる永続化、ランサムウェアの初期展開、権限昇格などの影響を効果的に軽減しました。

FortiGuardインシデントレスポンスチームとの連携

 FortiGuardセキュリティアドバイザリサービスは、特定のベンダーに依存しない広範なコンサルティングサービスを提供しており、組織の現在のセキュリティ態勢を評価するほか、インシデント対策の策定を支援し、インシデント発生時にはその対応をサポートします。

 サイバーセキュリティインシデントが発生し支援を必要としている場合は、こちらまでご連絡ください。当社チームが速やかに無料調査を実施し、サポートいたします。

IOC(Indicators of Compromise:侵害指標)

 本ブログの公開に先立ち、FortiGuardは継続中のオペレーションの一環として、関係する司法当局に本侵入のIOCと詳細情報を報告しました。

 この侵入に関連するIOCは以下の通りです。また、これらの情報は、自動ツールへの取り込みにもご利用いただけます。

ホストベースの指標

ネットワークベースの指標

1 https://docs.fortinet.com/document/fortiedr/7.2.0/administration-guide/815103
2 https://community.fortinet.com/t5/FortiGate/Troubleshooting-Tip-Blocking-All-Remote-Access-software/ta-p/360335
3 https://www.microsoft.com/en-us/security/blog/2025/08/21/think-before-you-clickfix-analyzing-the-clickfix-social-engineering-technique/
4 https://www.acronis.com/en/tru/posts/filefix-in-the-wild-new-filefix-campaign-goes-beyond-poc-and-leverages-steganography/

■関連サイト