Windows サンドボックス構成

Windows サンドボックスでは、サンドボックスのカスタマイズ パラメーターの最小セットを提供する単純な構成ファイルがサポートされています。 この機能は、ビルド 18342 またはWindows 11 Windows 10使用できます。 Windows サンドボックス構成ファイルはXML形式で、ファイル拡張子を介してサンドボックスに.wsb関連付けられます。

構成ファイルを使用すると、ユーザーはWindows サンドボックスの次の側面を制御できます。

  • vGPU (仮想化 GPU): 仮想化された GPU を有効または無効にします。 vGPU が無効になっている場合、サンドボックスでは Windows Advanced Rasterization Platform (WARP) が使用されます。
  • ネットワーク: サンドボックス内のネットワーク アクセスを有効または無効にします。
  • マップされたフォルダー: 読み取り または 書き込み アクセス許可を持つホストからフォルダーを共有します。 ホスト ディレクトリを公開すると、悪意のあるソフトウェアがシステムに影響を与えたり、データを盗んだりする可能性があります。
  • Logon コマンド: Windows サンドボックスの起動時に実行されるコマンド。
  • オーディオ入力: ホストのマイク入力をサンドボックスに共有します。
  • ビデオ入力: ホストの Web カメラ入力をサンドボックスに共有します。
  • 保護されたクライアント: RDP セッションのセキュリティ設定をサンドボックスに配置します。
  • プリンター リダイレクト: ホストからサンドボックスにプリンターを共有します。
  • クリップボード リダイレクト: ホスト クリップボードをサンドボックスと共有して、テキストとファイルを前後に貼り付けることができます。
  • メモリ (MB): サンドボックスに割り当てるメモリの量 (メガバイト単位)。

構成ファイルの作成

構成ファイルを作成するには:

  1. プレーン テキスト エディターまたはソース コード エディター (メモ帳、Visual Studio Code など) を開く

  2. 次の行を挿入します。

    <Configuration>
    </Configuration>
    
  3. 2 行の間に適切な構成テキストを追加します。 詳細については、正しい構文と以下の例を参照してください。

  4. 目的の名前でファイルを保存しますが、ファイル名拡張子が .wsbであることを確認します。 メモ帳では、ファイル名と拡張子を二重引用符 (例: "My config file.wsb") で囲む必要があります。

構成ファイルの使用

構成ファイルを使用するには、それをダブルクリックして、その設定に従ってWindows サンドボックスを開始します。 次に示すように、コマンド ラインを使用して呼び出すこともできます。

C:\Temp> MyConfigFile.wsb 

キーワード、値、および制限

vGPU

GPU 共有を有効または無効にします。

<vGPU>value</vGPU>

サポートされている値:

  • 有効: サンドボックスで vGPU のサポートを有効にします。
  • 無効: サンドボックスでの vGPU のサポートを無効にします。 この値が設定されている場合、サンドボックスはソフトウェア レンダリングを使用します。これは仮想化された GPU よりも遅くなる可能性があります。
  • 既定 この値は、vGPU サポートの既定値です。 現時点では、この既定値は vGPU が無効になっていることを示します。

仮想化された GPU を有効にすると、サンドボックスの攻撃面が増加する可能性があります。

ネットワーク

サンドボックス内のネットワークを有効または無効にします。 ネットワーク アクセスを無効にして、サンドボックスによって公開される攻撃対象領域を減らすことができます。

<Networking>value</Networking>

サポートされている値:

  • 有効: サンドボックス内のネットワークを有効にします。
  • 無効: サンドボックス内のネットワークを無効にします。
  • 既定値: この値は、ネットワーク サポートの既定値です。 この値は、ホストに仮想スイッチを作成してネットワークを有効にし、仮想 NIC を介してサンドボックスを接続します。

ネットワークを有効にすると、信頼されていないアプリケーションが内部ネットワークに公開される可能性があります。

マップされたフォルダー

フォルダーの配列。それぞれが、指定したパスのサンドボックスに共有されるホスト コンピューター上の場所を表します。 現時点では、相対パスはサポートされていません。 パスが指定されていない場合、フォルダーはコンテナー ユーザーのデスクトップにマップされます。

<MappedFolders>
  <MappedFolder> 
    <HostFolder>absolute path to the host folder</HostFolder> 
    <SandboxFolder>absolute path to the sandbox folder</SandboxFolder> 
    <ReadOnly>value</ReadOnly> 
  </MappedFolder>
  <MappedFolder>  
    ...
  </MappedFolder>
</MappedFolders>

HostFolder: サンドボックスに共有するホスト コンピューター上のフォルダーを指定します。 フォルダーはホスト上に既に存在している必要があります。または、コンテナーの起動に失敗します。

SandboxFolder: フォルダーをマップするサンドボックス内の宛先を指定します。 フォルダーが存在しない場合は、作成されます。 サンドボックス フォルダーが指定されていない場合、フォルダーはコンテナー デスクトップにマップされます。

ReadOnly: true の場合、コンテナー内から共有フォルダーへの読み取り専用アクセスが適用されます。 サポートされる値: true/false。 既定値は false です

ホストからマップされたファイルとフォルダーは、サンドボックス内のアプリによって侵害されたり、ホストに影響を与えたりする可能性があります。

Logon コマンド

サンドボックスのログオン後に自動的に呼び出される 1 つのコマンドを指定します。 サンドボックス内のアプリは、コンテナー ユーザー アカウントで実行されます。 コンテナー ユーザー アカウントは管理者アカウントである必要があります。

<LogonCommand>
  <Command>command to be invoked</Command>
</LogonCommand>

コマンド: サインイン後に実行されるコンテナー内の実行可能ファイルまたはスクリプトへのパス。

非常に単純なコマンド (実行可能ファイルやスクリプトの起動など) は機能しますが、複数の手順を含むより複雑なシナリオをスクリプト ファイルに配置する必要があります。 このスクリプト ファイルは、共有フォルダーを介してコンテナーにマップされた後、 LogonCommand ディレクティブを使用して実行できます。

オーディオ入力

サンドボックスへのオーディオ入力を有効または無効にします。

<AudioInput>value</AudioInput>

サポートされている値:

  • 有効: サンドボックス内のオーディオ入力を有効にします。 この値が設定されている場合、サンドボックスはユーザーからオーディオ入力を受信できます。 マイクを使用するアプリケーションでは、この機能が必要な場合があります。
  • 無効: サンドボックス内のオーディオ入力を無効にします。 この値が設定されている場合、サンドボックスはユーザーからのオーディオ入力を受信できません。 マイクを使用するアプリケーションは、この設定で正しく機能しない場合があります。
  • 既定値: この値は、オーディオ入力のサポートの既定値です。 現在、この既定値は、オーディオ入力が有効になっていることを示します。

ホスト オーディオ入力をコンテナーに公開すると、セキュリティへの影響が生じる可能性があります。

ビデオ入力

サンドボックスへのビデオ入力を有効または無効にします。

<VideoInput>value</VideoInput>

サポートされている値:

  • 有効: サンドボックスでビデオ入力を有効にします。
  • 無効: サンドボックス内のビデオ入力を無効にします。 ビデオ入力を使用するアプリケーションがサンドボックスで正しく機能しない場合があります。
  • 既定値: この値は、ビデオ入力サポートの既定値です。 現在、この既定値は、ビデオ入力が無効になっていることを示します。 ビデオ入力を使用するアプリケーションがサンドボックスで正しく機能しない場合があります。

ホスト ビデオ入力をコンテナーに公開すると、セキュリティへの影響が生じる可能性があります。

保護されたクライアント

サンドボックス リモート デスクトップ クライアントにより多くのセキュリティ設定を適用し、攻撃対象領域を減らします。

<ProtectedClient>value</ProtectedClient>

サポートされている値:

  • 有効: 保護されたクライアント モードで Windows サンドボックスを実行します。 この値が設定されている場合、サンドボックスは追加のセキュリティ軽減策を有効にして実行されます。
  • 無効: セキュリティの軽減策を追加せずに、標準モードでサンドボックスを実行します。
  • 既定値: この値は、保護されたクライアント モードの既定値です。 現在、この既定値は、サンドボックスが保護されたクライアント モードで実行されていないことを示します。

この設定により、ユーザーがサンドボックスにファイルをコピーまたは貼り付ける機能が制限される場合があります。

プリンターのリダイレクト

ホストからサンドボックスへのプリンター共有を有効または無効にします。

<PrinterRedirection>value</PrinterRedirection>

サポートされている値:

  • 有効: ホスト プリンターをサンドボックスに共有できるようにします。
  • 無効: サンドボックス内のプリンター リダイレクトを無効にします。 この値が設定されている場合、サンドボックスはホストからプリンターを表示できません。
  • 既定値: この値は、プリンター リダイレクトのサポートの既定値です。 現在、この既定値は、プリンターのリダイレクトが無効になっていることを示します。

クリップボードのリダイレクト

サンドボックスとのホスト クリップボードの共有を有効または無効にします。

<ClipboardRedirection>value</ClipboardRedirection>

サポートされている値:

  • 有効: サンドボックスとのホスト クリップボードの共有を有効にします。
  • 無効: サンドボックスでクリップボードのリダイレクトを無効にします。 この値が設定されている場合、サンドボックスのコピー/貼り付けとサンドボックス外へのコピー/貼り付けは制限されます。
  • 既定値: この値は、クリップボード リダイレクトの既定値です。 現在、ホストとサンドボックスの間のコピー/貼り付けは 、[既定値] で許可されています。

メモリ (MB 単位)

サンドボックスで使用できるメモリの量をメガバイト (MB) 単位で指定します。

<MemoryInMB>value</MemoryInMB>

指定されたメモリ値がサンドボックスを起動するのに不十分な場合は、必要な最小量に自動的に増加します。

例 1

次の構成ファイルを使用して、ダウンロードしたファイルをサンドボックス内で簡単にテストできます。 このテストを実現するために、ネットワークと vGPU は無効になり、サンドボックスは共有ダウンロード フォルダーへの読み取り専用アクセスが許可されます。 便宜上、ログオン コマンドは、サンドボックスの起動時にサンドボックス内のダウンロード フォルダーを開きます。

Downloads.wsb

<Configuration>
  <VGpu>Disable</VGpu>
  <Networking>Disable</Networking>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\Users\Public\Downloads</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads</SandboxFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>explorer.exe C:\users\WDAGUtilityAccount\Downloads</Command>
  </LogonCommand>
</Configuration>

例 2

次の構成ファイルは、Visual Studio Code をサンドボックスにインストールします。これには、少し複雑な LogonCommand セットアップが必要です。

2 つのフォルダーがサンドボックスにマップされます。最初の (SandboxScripts) には VSCodeInstall.cmd が含まれており、Visual Studio Code をインストールして実行します。 2 番目のフォルダー (CodingProjects) には、開発者が Visual Studio Code を使用して変更するプロジェクト ファイルが含まれていると想定されています。

Visual Studio Code インストーラー スクリプトが既にサンドボックスにマップされている場合、LogonCommand はそれを参照できます。

VSCodeInstall.cmd

vscode をフォルダーに downloads ダウンロードし、フォルダーから downloads 実行する

REM Download Visual Studio Code
curl -L "https://update.code.visualstudio.com/latest/win32-x64-user/stable" --output C:\users\WDAGUtilityAccount\Downloads\vscode.exe

REM Install and run Visual Studio Code
C:\users\WDAGUtilityAccount\Downloads\vscode.exe /verysilent /suppressmsgboxes

VSCode.wsb

<Configuration>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\SandboxScripts</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads\sandbox</SandboxFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
    <MappedFolder>
      <HostFolder>C:\CodingProjects</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Documents\Projects</SandboxFolder>
      <ReadOnly>false</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>C:\Users\WDAGUtilityAccount\Downloads\sandbox\VSCodeInstall.cmd</Command>
  </LogonCommand>
</Configuration>