注意:不審なファイル検証用にSandbox環境を構築していますが、確実に安全とは言い切れませんので不審なファイルを検証する場合は自己責任でお願い致します。
Windows10から導入されたWindows Sandboxを導入しインストールソフトウェアの動作確認等が行えるようにしていきます。
Windows Sandboxは「アプリケーションを安全に分離して実行する軽量なデスクトップ環境」だそうです。(Windows サンドボックス より)
PC(ホスト側)と分離した環境でソフトウェアを動作させ、問題のあるソフトウェアであってもホスト側に影響が出ないようにするといった使い方があります。
また、作成したソフトウェアをクリーンな環境で実行させてみるといった使い方もあるかもしれません。
目次
Windows サンドボックスによると以下のような条件となります。
Windows11用に購入したNUCのCPUはインテル® Core™ i3-1115G4 プロセッサーとなります。
CPUの仕様をIntelのサイトで確認するとコア数が2、スレッド数が4なので、ギリギリでした。
Windows10の場合
[設定] -> [アプリ] -> [アプリと機能] -> [オプション機能] -> [Windows のその他の機能]
Windows11の場合
[設定] -> [アプリ] -> [オプション機能] -> [Windows のその他の機能]
[Windows のその他の機能]をクリックすると[Windows の機能の有効化または無効化]ダイアログが立ち上がります。
この中にある[Windows サンドボックス]にチェックをつけて[OK]を押す。
スタートメニューからプログラムを探してクリックすると実行できます。
スタートメニューを開き、アルファベットの[W]のところに[Windows Sandbox]が追加されていますので、これを実行します。
Windows Sandboxが起動します。
デフォルトでは必要最小限のソフトウェアのみ入っています。
Edgeブラウザも入っておりますのでWeb閲覧は可能です。
スタートメニューを開き、右上の[すべてのアプリ]をクリックします。
すべてのアプリを開くとアルファベットの[W]のところに[Windows Sandbox]が追加されていますので、これを実行します。
Windows11が立ち上がります。こちらもシンプルです。
ハードが対応していれば、インストールと実行は容易です。
実際に使っていくには、使用用途毎に構成ファイルを作成し、起動するSandboxの構成を変更必要があります。
例えば、毎回同じ環境でアプリのテストをする場合は、起動時に必要なソフトウェアをインストールさせてSandboxを起動するといったケースがあるようです。
私の場合は怪しいインストーラーや実行ファイルの確認が主な用途になりますので、Sandbox外への影響が極力ない構成で実行する必要があります。
Windows サンドボックス構成を参考に構成を検討します。
Windows サンドボックス構成の記事は記載が丁寧で、攻撃リスクがある部分については注意書きが書かれています。
例えばvGPUの項目を確認すると「仮想化 GPU を有効にすると、サンドボックスの攻撃表面が増加する可能性があります。」といった記載があります。
こういった記載に気を付けつつ必要最小限の構成を検討する必要がありますが、ファイル受け渡し用の機能以外は基本的にほとんどの機能がDisableになります。
方法としては「ネットワーク経由」、「クリップボード経由」、「フォルダ共有」が考えられます。
[ネットワーク]をEnableにする必要がありますが、[ネットワーク]の注意書きには「ネットワークを有効にすると、信頼されていないアプリケーションが内部ネットワークに公開される可能性があります。」とあります。
内部ネットワークにアクセスできると危険性が高いので、これはDisableにする必要があります。
有効ですと、内部ネットワークにある別のPCやNASにアクセス出来ますので、横移動するマルウェアだと危険です。
[保護されたクライアント]をDisableにする必要があります。デフォルトではホストOSは保護されているため、セキュリティレベルを低下させてクリップボード経由で移動させる必要があります。
保護をDisableにし、[クリップボードのリダイレクト]をEnableにすることで、クリップボード経由でファイルの移動が可能となります。
[マップされたフォルダー]を設定する必要があります。フォルダは共有しますが、ReadOnlyはtrueにします。
これでSandbox内からホストOS上にある共有フォルダに書き込みや削除は出来ません。
画像は共有フォルダ内のファイルを削除しようとしてエラーが出た画面です。
環境の要件を満たす条件で一番良さそうなのは「フォルダ共有」のパターンでしたが、クリップボード経由のパターンも構成ファイルを作成したので、2パターンを記載します。
機能は一通りDisable。[保護されたクライアント]をDisableにし、[クリップボードのリダイレクト]をEnableにしています。
クリップボード許可.wsb
<Configuration>
<vGPU>Disable</vGPU>
<Networking>Disable</Networking>
<AudioInput>Disable></AudioInput>
<VideoInput>Disable</VideoInput>
<ProtectedClient>Disable</ProtectedClient>
<PrinterRedirection>Disable</PrinterRedirection>
<ClipboardRedirection>Enable</ClipboardRedirection>
</Configuration>
機能は一通りDisable。[保護されたクライアント]はEnableにしておき、MappedFolderを定義しています。
この定義ではダウンロードフォルダをマッピングさせています。
フォルダ共有.wsb
<Configuration>
<vGPU>Disable</vGPU>
<Networking>Disable</Networking>
<AudioInput>Disable></AudioInput>
<VideoInput>Disable</VideoInput>
<ProtectedClient>Enable</ProtectedClient>
<PrinterRedirection>Disable</PrinterRedirection>
<ClipboardRedirection>Disable</ClipboardRedirection>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\Users\[username]\Downloads</HostFolder>
<SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
</Configuration>
Windows10、Windows11両方で環境構築をしましたが、いずれも問題なく利用できました。
OneDriveに構成ファイルを入れているので、検証したいWindowsバージョンの方で構成ファイルをダブルクリックすれば良いので便利です。
メインはフォルダ共有の構成ファイルを利用することになると思います。