Hack The Sandbox: 消えた痕跡の真相を明らかにする

This post is also available in: English

はじめに

警察庁と内閣サイバーセキュリティセンター(NISC)は2025年1月8日、攻撃者グループ「MirrorFace」による日本国内の組織を標的にした攻撃キャンペーンについて注意喚起を公開しました。この注意喚起では、「MirrorFace」が Windows サンドボックスと Visual Studio Code を悪用していたことから、それぞれの痕跡の確認方法や検知方法が示されています。

本稿では上記攻撃キャンペーンで使われた攻撃手法のひとつである Windows サンドボックスに着目し、その検証結果や証跡、監視や調査に役立つポイントについて解説します。
なお、本稿は2025年1月22日に開催された JSAC2025 において当社分析官が発表した「Hack The Sandbox: Unveiling the Truth Behind Disappearing Artifacts」に基づく内容です。

参考

Hack The Sandbox: Unveiling the Truth Behind Disappearing Artifacts

今回分析の対象とした検体「LilimRAT」は、「MirrorFace」と呼ばれる攻撃者グループによって利用されたことが観測されています。(「MirrorFace」は APT10 の下部組織として推定されています)
この LilimRAT は OSS の RATツールである Lilith RAT をカスタマイズしたもので、WDAGUtilityAccount というユーザフォルダの存在を確認する処理が実装されており、このユーザフォルダがないと起動されないようになっていました。

図1. ユーザフォルダを確認する機能が実装された LilimRAT

Windows サンドボックス内では、デフォルトユーザ名として WDAGUtilityAccount が使われることから、今回解析対象にしたLilimRAT は Windows サンドボックス内でのみ動作することを想定して開発されたと考えられます。

図2. Windows サンドボックスの WDAGUtilityAccount のユーザプロファイル

Windows サンドボックスは Windows の初期設定では無効化されています。そのため、攻撃者は標的マシンを侵害したのち、Windows サンドボックスの機能を有効化します。Windows サンドボックスの機能はホストマシンの再起動後に有効になるため、攻撃者はWindows サンドボックスの構成を定義する WSB ファイルを設置した後、ホストマシンを再起動します。
ホストマシン再起動後に、Windowsサンドボックスが有効になり、WSB ファイルの設定通りWindows サンドボックス内でマルウェア(今回の例では LilimRAT)が起動し、C2サーバーと通信を開始します

図3. Windows Sandbox を悪用する流れ

我々は、このような手法で Windows サンドボックスが悪用されている事実を受け、その仕様について理解を深めるとともに、悪用手法の解明と調査手法、対策方法を確立することを目的として、技術検証を重ねる必要があると考えました。

Windows サンドボックスとは

Windows サンドボックスはユーザが安全にファイルや任意のアプリケーションをテストできるように、ホストシステムから隔離された仮想のOS環境です。OS の中でもう一つの OS がソフトウェアとして動作していると考えていただくとイメージしやすいと思います。この機能は、Windows 10(Build 18342 以降)および Windows 11 で利用可能です。以下に、いくつかの Windows サンドボックスに関する仕様を説明します。

Windows サンドボックスの有効化

初期設定では、サンドボックスは無効化されており、使用前に GUI または CLI で有効化する必要があります。

図4. Windows サンドボックス機能の有効化

Windows サンドボックスを有効化すると、以下の通り、サンドボックス環境が利用可能となります。

図5. Windows サンドボックスを起動させた状態の画面

Windows Sandbox のデフォルトユーザ

Windows サンドボックスは、WDAGUtilityAccount というアカウント名で動作しています。このユーザは、Administrators グループに所属しています。

C:\Users\WDAGUtilityAccount>net user WDAGUtilityAccount
User name                    WDAGUtilityAccount
Full Name
Comment                      Windows Defender Application Guard
User's comment
~ Redacted ~
Local Group Memberships      *Administrators *Remote Desktop Users *Users
Global Group memberships     *None

Windows Defenderの設定

サンドボックス内の Windows Defender は既定で無効化されており、GUI と PowerShell コマンドのいずれからも有効化はできません。

図6. サンドボックス内の Windows Defender の GUI 設定画面

構成ファイル(.wsb)

WSB ファイルはサンドボックスの構成を定義するための XML 形式の設定ファイルで、ホストのOS内に存在しています。WSB ファイルの例は以下の通りです。

<Configuration>
 <Networking>Enable</Networking>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\Users\Public\Downloads</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads</SandboxFolder>
      <ReadOnly>false</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>explorer.exe</Command>
  </LogonCommand>
  <MemoryInMB>1024</MemoryInMB>
</Configuration>

この例では、以下を設定しています。

  • ネットワーク接続を有効化
  • ホストマシンのC:\Users\Public\DownloadsフォルダをサンドボックスのC:\Users\WDAGUtilityAccount\Downloadsフォルダと共有
  • 起動時にエクスプローラーを開く
  • サンドボックスに対する1 GB のメモリ割り当て

WSB ファイルでは、その他にも多くのカスタマイズ可能なサンドボックスの設定項目が用意されています。Windows サンドボックスが起動する際には、このファイル内の設定を参照して起動します。

構成アイテム 説明
vGPU GPU 共有を有効または無効にする
Networking サンドボックス内でのネットワークを有効または無効にする
Mapped folders 指定したホストマシン上のフォルダを、指定したサンドボックス上のフォルダと共有する
Logon command サンドボックスへのログオン後に自動的に実行される単一のコマンドを指定する
Audio input ホストのマイク入力をサンドボックスと共有する
Video input ホストのウェブカメラ入力をサンドボックスと共有する
Protected client サンドボックスを AppContainer による隔離環境内で実行することにより、新しいセキュリティ境界層を追加する
Printer redirection ホストからサンドボックスへのプリンター共有を有効または無効にする
Clipboard redirection ホストのクリップボードをサンドボックスと共有することを有効または無効にする
Memory in MB サンドボックスが使用できるメモリの量をMB単位で指定する

Virtual Hard Disk (VHDX)

Windows サンドボックスは VHDX ファイルで構成されており、差分バックアップ方式が採用されています。サンドボックスを起動すると、C:\ProgramData\Microsoft\Windows\Containersフォルダ配下に VHDX 関連フォルダが作成されます。このフォルダには親仮想ディスクと差分仮想ディスクが配置され、複数のフォルダが含まれます。サンドボックスを終了すると、差分バックアップは消失します。

図7. Containers フォルダ配下のチェーンで接続された親仮想ディスクと差分仮想ディスクの関係

Windows サンドボックスを悪用した攻撃手法

これまで解説した Windows サンドボックスの仕様を踏まえて、冒頭で紹介した攻撃者グループ MirrorFace による攻撃の全体像のうち、Windows サンドボックスが有効化された後の攻撃フローについて説明していきます。

攻撃者は侵害したホストマシンの任意のフォルダに BAT ファイルとアーカイバー、アーカイブ ファイルの3つのファイルを配置します。その後、Windows サンドボックスの有効化設定と再起動を行い、WSB ファイルを実行します。

図8. Windows サンドボックスを利用した攻撃の流れ

攻撃に使用された WSB ファイルのイメージを以下に示します。

<Configuration>
 <Networking>Enable</Networking>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\{Host-side folder}</HostFolder>
      <SandboxFolder>C:\{Sandbox-side folder}</SandboxFolder>
      <ReadOnly>false</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>C:\{Sandbox-side folder}\{random}.bat</Command>
  </LogonCommand>
  <MemoryInMB>1024</MemoryInMB>
</Configuration>

この WSB ファイルには以下の設定項目が記述されています。

  • フォルダの共有(ホストマシンのフォルダを Windows サンドボックス上のフォルダと共有)
  • ネットワーク接続の有効化
  • 起動時に BAT ファイルを実行
  • 1GB のメモリ割り当て

WSB ファイルの実行により、Windows サンドボックスの起動と同時に BAT ファイルの実行が行われ、BAT ファイル内に記載されていたスクリプトがサンドボックス内で実行されます。BAT ファイルにはアーカイブファイルの抽出および、抽出したマルウェアを実行するスクリプトが記載されており、成功すると攻撃者は侵害されたホストのサンドボックス環境を C2 サーバー経由で操作することが可能となります。攻撃者が利用した BAT ファイルの一例を以下に示します。例ではアーカイバーとして 7-Zip を利用していますが、これは攻撃者の利用したアーカイバーの一つにすぎず、他のツールの利用も確認されています。

@echo off
C:\{Sandbox-side folder}\7z.exe x C:\{Sandbox-side folder}\{Archive file} -oC:\{Unarchived folder}\ -p{Password} –y
schtasks /create /tn {taskname} /tr "C:\{Unarchived folder}\{Malware}" /sc hourly /st 08:30 /ru system /f
schtasks /run /tn {taskname}

Windows サンドボックスを実行するとウィンドウが表示されますが、タスクスケジューラー経由で他のユーザ(例:SYSTEM 権限)で実行された場合、Windows サンドボックスは非表示の状態で実行されるため、サンドボックスの起動に気づくことが非常に困難になります。 また、サンドボックス内で実行されたマルウェアは、Tor ネットワークを経由して C2 サーバーと通信します。Tor ネットワークを使う理由は、通信内容の暗号化と C2 サーバーの秘匿が目的と推定されます。

Windows サンドボックス内のマルウェアは、WSB ファイルで設定された通り、ホストマシンのファイルを読み取ることが可能です。ただし、別の OS からファイルを読み取っているため、ホストマシン上で動作している操作ログ取得ツールに動作は記録されませんし、様々な攻撃ツールも Windows Defender が動作していないことから検知されることはありません。攻撃者は様々なセキュリティー製品がない環境で活動することができます。

新機能が招く新たな脅威

Windows サンドボックスの機能や Windows サンドボックスを悪用した攻撃に関する調査を進める中で、重要な機能の更新を確認しました。Microsoft 社の公式ドキュメントでは、プレビューとして新機能について言及があるだけで、アップデートされた機能に関する詳細が公式に開示されていませんが、本記事の作成時点では既に同機能を含むバージョンが配布されていることを確認しました。

引用

Windows Sandbox Client Preview] New! This update adds the Windows Sandbox Client Preview. It includes:

  • Runtime clipboard redirection
  • Audio and video input control
  • The sharing of folders with the host at runtime

To access these, select the ellipses (…) at the upper right on the app. This preview also includes a version of command-line support. (The commands might change over time). To learn more, use the wsb.exe–help command. You can find new updates for this app in the Microsoft Store. This might not be available to all users because it will roll out gradually.

October 24, 2024—KB5044384 (OS Build 26100.2161) Preview

Windows 11 のアップデート後のサンドボックスでの変更点は以下の通りです。

  • wsb.exe コマンドの追加、コマンドラインによるサンドボックスの実行
  • サンドボックスのバックグラウンド実行
  • 一部の設定のGUIによる変更

図9. Windows 11 のアップデート後のサンドボックスのGUIの設定画面

以下の実行例の通り、wsb.exe はサンドボックスの起動や、実行中のインスタンスの列挙、サンドボックスへの接続ができます。

> wsb.exe start
Windows Sandbox environment started successfully:
Id:  7f1397ca-3b46-416a-827a-a4a5b76e880e
> wsb.exe list
7f1397ca-3b46-416a-827a-a4a5b76e880e
> wsb.exe connect --id 7f1397ca-3b46-416a-827a-a4a5b76e880e

wsb.exe のコマンドオプションは以下の通りです。

Commands, alias Options Description
StartSandbox, start --id
-c, --config
Windows サンドボックスのインスタンスを開始
ListRunningSandboxes, list - 実行中のすべての Windows サンドボックス環境の ID を一覧表示
Execute, Exec --id (REQUIRED)
-c, --command (REQUIRED)
-d, --working-directory <working-directory>
-r, --run-as <ExistingLogin|System> (REQUIRED)
実行中の Windows サンドボックス環境でコマンドを実行
ShareFolder, share --id (REQUIRED)
-f, --host-path <host-path> (REQUIRED)
-s, --sandbox-path <sandbox-path>
-w, --allow-write
ホストからWindows サンドボックスセッションにフォルダを共有
StopSandbox, stop - 実行中の Windows サンドボックスを終了
ConnectToSandbox --id Windows サンドボックス環境のリモートセッションを開始
GetIpAddress, ip --id (REQUIRED) Windows サンドボックス環境のIPアドレスを取得

以下は wsb.exe start コマンドの具体的な実行結果です。

> wsb.exe start -c "<Configuration> <Networking>Enable</Networking><MappedFolders><MappedFolder><HostFolder>C:\Users\Public\Downloads</HostFolder><SandboxFolder>C:\Users\WDAGUtilityAccount\Desktop</SandboxFolder><ReadOnly>false</ReadOnly></MappedFolder></MappedFolders><LogonCommand><Command>C:\Users\WDAGUtilityAccount\Desktop\a.bat</Command></LogonCommand><MemoryInMB>1024</MemoryInMB></Configuration>"
Windows Sandbox environment started successfully:
Id: c2d290db-5986-4c06-bd7b-05f35f091fa4

上記の機能更新により、サンドボックスを利用した攻撃を見つけることが困難になる可能性が考えられます。主な要因として以下の3点があげられます。

  1. バックグラウンドでのサンドボックス起動
    従来の Windows 10 及び初期の Windows 11 のサンドボックスは GUI アプリケーションとして常にフォアグラウンドで実行されていました。しかし、今回の更新で追加されたwsb.exe startコマンドにより、バックグラウンドでの実行が可能になりました。この結果、サンドボックスはユーザに気づかれることなく起動され、wsb.exe connectコマンドが実行されるまでウィンドウが表示されません。

  2. wsb ファイルを不要とするサンドボックス起動
    新たに追加された wsb.exe コマンドの引数を利用することで、従来必要だった wsb ファイルを使わずにサンドボックスの環境設定が可能となりました。この変更により、インシデント調査時に重要な手がかりであった wsb ファイルが利用されず、痕跡残らないリスクが生じます。

  3. サンドボックス内のデータ保持が容易に
    以前はサンドボックスのウィンドウを閉じるとプロセスが終了し、サンドボックス内のデータも消去されまていました。しかし、機能更新後はウィンドウを閉じてもサンドボックスは終了せず、データが保持されます。データを消去するには明示的に wsb.exe stop コマンドでサンドボックスを停止するか、ホストマシンのシャットダウンなどでサンドボックスのプロセスを終了させる必要があります。これにより、攻撃者がサンドボックスを長期間操作できる可能性が高まります。

これらを踏まえ、機能更新が行われた際には、攻撃者にとって利便性を高める恐れはないか慎重に調査し、適切な対応策を講じることがセキュリティリサーチャーに求められます。

Windows サンドボックスの監視と調査手法

Windows サンドボックスの機能や攻撃手法について解説しましたが、検証を通じて明らかになったサンドボックスを悪用する攻撃手法に有効な防御策を説明します。

監視

ホストマシンとネットワークの監視

ホストマシンにおいては以下の観点での監視が侵害の検知に有用です。

  • クライアント端末の操作ログ、特徴的なプロセスおよびメモリの監視
  • WSB ファイルに関連するアクティビティの監視
  • 特徴的なイベントログの監視

また、サンドボックスはホストマシンのネットワークアダプタを使用します。そのため、サンドボックス内のマルウェアが C2 サーバーなどへ通信を行う場合はホストマシンの IP アドレスが送信元 IP アドレスとなるため、通常通りの端末通信の監視が可能です。ただし、Tor が使われている場合は、Tor ネットワークの利用を検知する仕組みが必要になります。

Windows サンドボックスの起動の監視

以下は Windows サンドボックスに関連するプロセスです。この表に挙げたプロセス実行をホストマシンで監視することで、Windows サンドボックスの起動を検知できます。

プロセス名 パス 概要
WindowsSandbox.exe C:\Windows\System32\WindowsSandbox.exe WSB ファイルの実行時と通常の起動時
WindowsSandboxClient.exe C:\Windows\system32\WindowsSandboxClient.exe 同上
cmproxyd.exe C:\Windows\system32\cmproxyd.exe 同上
WindowsSandboxServer.exe C:\Program Files\WindowsApps\MicrosoftWindows.WindowsSandbox_0.3.1.0_x64__cw5n1h2txyewy WSB ファイルの実行時、通常の実行時、および wsb.exe を使用したコマンド実行時。
(Windows 11 ビルドプレビューの0.3.1.0バージョンのみ)
WindowsSandboxRemoteSession.exe C:\Program Files\WindowsApps\MicrosoftWindows.WindowsSandbox_0.3.1.0_x64__cw5n1h2txyewy 同上
wsb.exe C:\Users{USERNAME}\AppData\Local\Microsoft\WindowsApps\wsb.exe 同上
ホストマシンのメモリ上に展開されるサンドボックス内のプロセスの検証

Windows サンドボックスのプロセスはどこで実行されるのでしょうか。サンドボックス内で Mimikatz を実行したところ、以下の図の通り、ホストマシンの vmmemWindowsSandbox プロセス上で Mimikatz の文字列を確認できました。また、ダンプした vmmemWindowsSandbox プロセスを Yara でスキャンした結果、同様に Mimikatz の文字列を検知しました。
このことから、サンドボックスのプロセスは vmmemWindowsSandbox プロセス内で処理され、メモリスキャンなどを行うことでホストマシンの vmmemWindowsSandbox プロセスからサンドボックス内で実行されているマルウェアやツールの検出が可能であることが分かります。

図10. サンドボックス内で実行したMimikatzをホストマシンのvmmemWindowsSandboxプロセスで参照

なお、サンドボックスのメモリが展開されるプロセス名は Windows のバージョンで異なることも判明しました。その違いは以下の表の通りです。

プロセス名 OS
vmmem Windows 10
vmmemWindowsSandbox Windows 11

調査手法

ホストマシンの調査

Windows サンドボックスの内部動作に関する痕跡は上述の vmmemWindowsSandbox / vmmem プロセスを除き、ホストマシンにはほとんど記録されません。 しかし、サンドボックスの有効化や起動に関連する痕跡がホストマシンに残る場合があります。そのため、以下のアーティファクトからサンドボックスの起動に関連する兆候を調査できます。

分類 説明
$MFT WSB ファイルの作成、マウントソースフォルダとファイルの作成、VHDX ファイルの作成が記録される
$UsnJrnl 同上
Prefetch WSB ファイルおよび VHDX ファイルの読み込みが記録されることがある
Registry アプリケーションの関連付けが設定される
• HKLM\SOFTWARE\Classes\Applications\WindowsSandbox.exe
• HKLM\SOFTWARE\Classes\Windows.Sandbox\shell\open\command
• HKLM\SOFTWARE\Microsoft\Windows Sandbox\Capabilities\FileAssociations

ホストマシンに様々なイベントログが記録されます。それらのログと記録されるイベントログ名は以下の表の通りです。

図11. イベントログとイベント ID の表

Windows サンドボックスの調査

Windows サンドボックスは VHDX ファイルで構成されています。そのため、親仮想ディスクおよび差分仮想ディスクのチェーンを維持したまま、VHDX ファイルをホストマシンから取得した場合、VHDX ファイルをマウントすることでサンドボックス内のデータの調査が可能となります。サンドボックスのプロセスが発見された場合、VHDX ファイルに関連するすべてのフォルダを揮発性データとして保全する必要があります。

図12. マウントされた VHDX ファイルとアサインされたドライブ

実際にサンドボックスの VHDX ファイルをマウントし、フォレンジック調査に役立つアーティファクトについて検証しました。その結果、一部のアーティファクトは無効化されているかログが記録されないものがありましたが、フォレンジック調査に非常に役立つものも多数残っていることがわかりました。

分類 利用可能か 説明
$MFT Yes ホストからの共有フォルダへの操作は記録されていない
$UsnJrnl Yes 同上
Prefetch No 記録なし
Registry Yes Amcache の更新は確認できなかった
Browser History Yes デフォルトでインストールされたEdge のアクセス履歴は記録された
ユーザによってインストールされたブラウザの履歴も記録された
SRUM No 記録なし
Evtx Yes デフォルトのログストレージサイズは 20,480KB
いくつかの有用なイベント(タスクスケジュールなど)は記録されない
成功したログオン(イベント ID 4624)、失敗したログオン(イベント ID 4625)、明示的な認証情報によるログオン(イベント ID 4648)、およびサービスのインストール(イベント ID 7045)などのログオンは記録される

管理策

Windows サンドボックスは既定で無効化されているため、無効化の状態を維持し続けることが望ましいです。しかし、有効化された場合に備え、有効化に関するイベントの監視や検知を推奨します。

管理者権限をユーザに付与しない

Windows サンドボックスの有効化には管理者権限が必要です。そのため、業務上不要な場合はユーザに管理者権限を付与しないことで、ユーザによるサンドボックスの有効化を未然に防ぐことができます。

また、意図せずサンドボックスが有効化された場合は、前述のサンドボックスに関連するイベントログを監視することで有効化に気づくことが可能です。

AppLocker ポリシーの適用

AppLocker はユーザが承認されていないアプリを実行禁止にする、Windows OS が備えたセキュリティ機能です。 既にサンドボックスを有効化していたり、ユーザが有効化できる場合でも AppLocker でサンドボックスの起動を制御可能です。

参考

AppLocker

Windows サンドボックスを承認していないアプリと定義したポリシーをホストマシンに配布することで、サンドボックスの実行をブロックできます。 また、AppLocker がサンドボックスをブロックした際にイベントログに実行結果が記録されます。

図13. AppLocker の関連イベントログ

最後に

本記事では、2024年に MirrorFace による悪用が確認された Windows サンドボックスについて、技術検証の結果をもとにサンドボックスの機能や悪用手法、調査手法や防御策について解説しました。
ホストマシンのウイルス対策製品やEDRではサンドボックス内の脅威を検出しない可能性があるため、リスクを最小化するためには、監視の強化、徹底的な調査、効果的な管理などのプロアクティブな対策が必要です。
攻撃者は往々にして我々の予想の範疇を超え、盲点や隙を巧みに突いてくるため、予想外の事態を予測可能にする努力を続け、脅威に対抗していくことが重要です。

謝辞

本リサーチにおいては下記組織にご協力をいただきました。

  • 警察庁
  • 独立行政法人情報処理推進機構 (IPA) サイバーレスキュー隊 J-CRAT
  • ESET, spol. s.r.o.

参考

Appendix

参考文献

検証環境

Host OS version Windows Sandbox version wsb version
Microsoft Windows 10 Enterprise 10.0.19045 Microsoft Windows 10 Enterprise 10.0.19041 N/A
Microsoft Windows 10 Enterprise 10.0.19045 Microsoft Windows 10 Enterprise 10.0.19045 N/A
Microsoft Windows 11 Pro 10.0.26100 Microsoft Windows 11 Enterprise 10.0.26100 0.3.1.0