Windows10 Version 1903でWindows Sandboxが正式にリリースされました。
なお、Windows Sandboxが利用可能なのはPro以上のエディションとなっているため、Homeなどでは使えません。
Windows 10 ProでWindows Sandboxを使えるようにしてみたので、以下にその手順などを記載します。
Windows Sandboxとは
Windows SandboxについてのMicrosoft公式情報は以下から確認できます。
Windows Sandbox - Microsoft Tech Community - 301849
上記URLには簡潔に、
Windows Sandbox is a new lightweight desktop environment tailored for safely running applications in isolation.
と説明されています。要するに、「Windows Sandboxは安全にアプリケーションを分離して実行するのに適した新たな軽量デスクトップ環境」といった意味になります。
物理的に別のマシンを用意したり、新規にVMを立ち上げたりせずに、安全に分離環境でアプリを実行できるよ、と訴求しているようです。
実態はHyper-Vで動作しているVMのようなもののようですが、普通のVMとは異なりSandboxを終了する都度、Sandbox内のデータは全て破棄され、起動するたびにクリーンな状態に戻っています。等々、いろいろ特徴があるのですが詳細は上記公式の英文をご確認ください。
導入手順
これも上記公式に英語で記載されており特に難しい点は無いのですが、以下に要約して日本語で書いておきます。
前提
Sandbox内の環境
※WindowsSandboxを動かしているPCについて以降はホストと記載します。
OS等
Windows 10 Enterprise edition Version 1903が入っているようです。ホスト側はWindows 10 Pro 1903ですが、Sandobox内はEnterpriseが導入されています!
が、ライセンス認証はされていない状態となっています。
コントロールパネルから確認しても同様にWindows10 Enterpriseでライセンス認証されていない状態となっています。
なお、表示されているCPUはホストと同じものですが、メモリについてはホストに12GB搭載していますが、Sandboxには4GBが割り当てられているようです。
> systeminfo ホスト名: ********-****-* OS 名: Microsoft Windows 10 Enterprise OS バージョン: 10.0.18362 N/A ビルド 18362 OS 製造元: Microsoft Corporation OS 構成: スタンドアロン ワークステーション OS ビルドの種類: Multiprocessor Free 登録されている所有者: N/A 登録されている組織: N/A プロダクト ID: *****-*****-*****-***** 最初のインストール日付: 6/8/2019, 4:56:18 PM システム起動時間: 6/17/2019, 11:08:53 PM システム製造元: Microsoft Corporation システム モデル: Virtual Machine システムの種類: x64-based PC プロセッサ: 1 プロセッサインストール済みです。 [01]: Intel64 Family 6 Model 69 Stepping 1 GenuineIntel ~2494 Mhz BIOS バージョン: Microsoft Corporation Hyper-V UEFI Release v4.0, 1/30/2019 Windows ディレクトリ: C:\Windows システム ディレクトリ: C:\Windows\system32 起動デバイス: \Device\HarddiskVolume2 システム ロケール: ja;日本語 入力ロケール: en-us;英語 (米国) タイム ゾーン: (UTC+09:00) 大阪、札幌、東京 物理メモリの合計: 3,999 MB 利用できる物理メモリ: 2,978 MB 仮想メモリ: 最大サイズ: 5,727 MB 仮想メモリ: 利用可能: 4,643 MB 仮想メモリ: 使用中: 1,084 MB ページ ファイルの場所: C:\pagefile.sys ドメイン: WORKGROUP ログオン サーバー: \\********-****-* ホットフィックス: N/A ネットワーク カード: 1 NIC(s) インストール済みです。 [01]: Microsoft Hyper-V Network Adapter 接続名: イーサネット DHCP が有効: はい DHCP サーバー: 192.168.***.*** IP アドレス [01]: 192.168.***.*** [02]: ****::****:****:****:**** Hyper-V の要件: ハイパーバイザーが検出されました。Hyper-V に必要な機能は表示されません。
S/W
基本的にWindows標準の最小限のアプリケーションしか入っていません。なお、PowerShellも表示されていますが、実行してみても以下のように.NET Frameworkの欠如により実行できませんでした。
> powershell Version v4.0.30319 of the .NET Framework is not installed and it is required to run version 3 of Windows PowerShell.
[Windowsシステムツール]内に[コマンドプロンプト]があるので、CUIはそちらを使うことになると思います。
なお、Windows10ではスタートメニューから直接検索できますが、Sandbox内のスタートメニューでは検索できないようです。また、タスクバーの"検索するには、ここに入力します"にも入力できないようです。
また、これが意図的なものなのかは判りませんが、Sandbox内ではWindows Defenderが無効化されているようです。Windows Sandbox起動後しばらくすると通知領域に以下の通知が表示されます。
何度か試してみましたが、Sandbox内でWindows Updateを実行することもできないようです。
というわけで、Sandbox環境が最新のセキュアな状態なのか良く判りませんし、いつ断面のパッチが適用されている状態なのかも解りません。
また、Sandbox内のスタートメニューなどから起動したアプリは全てSandbox内で管理者特権を有した状態で実行されるようです。Powershellが使えれば、管理者特権を外した状態で任意のプロセスを起動できるか簡単に実験できるのですが、前述の通り使えないので…Windows標準機能だけで明示的に管理者特権を外した状態でプログラムを実行する方法ってあるんでしたっけ?というわけで、Sandbox内で管理者特権無しでプログラムを実行する方法は解りません(ちなみにSandbox内のタスクマネージャで各プロセスの管理者特権の有無を見ると、僅か数個のプロセスを除いてほとんどが無駄に管理者特権で動いているのが確認できます)。
N/W
WindowsSandboxを動かしているPC(以降はホスト側と記載)がインターネットに繋がっていれば、何も設定しなくてもSandboxもインターネットに繋がります。検証対象プログラムをインターネットからダウンロードしたりするのには便利ですが、捉え方によっては脅威になるかもしれません。ホスト側には仮想イーサーネットアダプタ(Hyper-V Virtual Ethernet Adapter)が追加されており、Sandboxからの通信はこの仮想イーサーネットアダプタ越しにインターネットとやり取りされるようになっているようです。
>ipconfig /all Windows IP 構成 ホスト名. . . . . . . . . . . . . . .: ********-****-****-****-************ プライマリ DNS サフィックス . . . . .: ノード タイプ . . . . . . . . . . . .: 混合 IP ルーティング有効 . . . . . . . . .: いいえ WINS プロキシ有効 . . . . . . . . . .: いいえ DNS サフィックス検索一覧. . . . . . .: mshome.net イーサネット アダプター イーサネット: 接続固有の DNS サフィックス . . . . .: mshome.net 説明. . . . . . . . . . . . . . . . .: Microsoft Hyper-V Network Adapter 物理アドレス. . . . . . . . . . . . .: **-**-**-**-**-** DHCP 有効 . . . . . . . . . . . . . .: はい 自動構成有効. . . . . . . . . . . . .: はい リンクローカル IPv6 アドレス. . . . .: ****::****:****:****:****%6(優先) IPv4 アドレス . . . . . . . . . . . .: 192.168.***.***(優先) サブネット マスク . . . . . . . . . .: 255.255.255.240 リース取得. . . . . . . . . . . . . .: Monday, June 17, 2019 11:09:18 PM リースの有効期限. . . . . . . . . . .: Tuesday, June 18, 2019 11:14:28 PM デフォルト ゲートウェイ . . . . . . .: 192.168.***.*** DHCP サーバー . . . . . . . . . . . .: 192.168.***.*** DHCPv6 IAID . . . . . . . . . . . . .: 113780684 DHCPv6 クライアント DUID. . . . . . .: **-**-**-**-**-**-**-**-**-**-**-**-**-** DNS サーバー. . . . . . . . . . . . .: 192.168.***.*** NetBIOS over TCP/IP . . . . . . . . .: 有効
といった感じで、ちょっとしたすぐに使えるお手軽な検証環境がMicrosoft純正機能として用意されたわけで、それ自体は歓迎できます。が、Windows Sandboxを紹介する大手メディアの記事には「怪しげなプログラムもサンドボックスなら安全に試せる」といった趣旨の記述も散見されますが、それは過大評価だと感じます。Windows Sandboxを使っても危険なパターンはありますし、特にLAN内の他のマシンに対しては危険極まりないと考えられますので、その辺について気づいた範囲で別途記載します。
以上。