アプリケーションの分離
Win32 アプリの分離
Win32 アプリの分離は、Windows クライアントの既定の分離標準として設計されたセキュリティ機能です。 これは AppContainer に基づいて構築されており、Windows プラットフォームがアプリケーションやサードパーティのライブラリで脆弱性を使用する攻撃から防御するのに役立ついくつかの追加のセキュリティ機能を提供します。 開発者は、アプリケーションを分離するために、Visual Studio を使用してアプリケーションを更新できます。
Win32 アプリの分離は、2 段階のプロセスに従います。
- 最初の手順では、Windows によってセキュリティ境界として認識される AppContainer を使用して、低整合性プロセスとして Win32 アプリケーションを起動します。 プロセスは既定で特定の Windows API のセットに制限されており、より高い整合性レベルで動作するプロセスにコードを挿入できません
- 2 番目の手順では、Windows セキュリティ保護可能なオブジェクトへの承認されたアクセス権を付与することで、最小特権が適用されます。 このアクセスは、MSIX パッケージを使用してアプリケーション マニフェストに追加される機能によって決まります。 このコンテキストのセキュリティ保護可能なオブジェクトは、アクセスが機能によって保護されている Windows リソースを指します。 これらの機能により、Windows 上の随意Access Controlリストを移植できます
分離されたアプリケーションが円滑に実行されるようにするには、開発者はアプリケーション パッケージ マニフェストのアクセス機能宣言を使用して、アプリケーションのアクセス要件を定義する必要があります。 アプリケーション機能プロファイラー (ACP) は、アプリケーションを低い特権で学習モードで実行できるようにすることで、プロセス全体を簡略化します。 機能が存在しない場合はアクセスを拒否する代わりに、ACP はアクセスを許可し、アプリケーションを分離して実行する場合にアクセスに必要な追加の機能をログに記録します。
非アイソレーションされたネイティブ Win32 アプリケーションに合わせてスムーズなユーザー エクスペリエンスを作成するには、次の 2 つの重要な要因を考慮する必要があります。
- データとプライバシー情報にアクセスするためのアプローチ
- 他の Windows インターフェイスとの互換性のために Win32 アプリを統合する
1 つ目の要因は、分離境界 AppContainer 内および分離境界外のファイルとプライバシー情報へのアクセスを管理するメソッドの実装に関連しています。 2 つ目の要因は、Win32 アプリを他の Windows インターフェイスと統合することで、ユーザーの同意プロンプトを混乱させることなくシームレスな機能を有効にできるようにすることです。
詳細情報
- Win32 アプリの分離の概要
- アプリケーション機能プロファイラー (ACP)
- Visual Studio を使用した Win32 アプリ分離アプリケーションのパッケージ化
- Win32 アプリの分離を使用した Python のサンドボックス化
アプリ コンテナー
Win32 アプリのWindows サンドボックスに加えて、ユニバーサル Windows プラットフォーム (UWP) アプリケーションは、アプリ コンテナーと呼ばれる Windows コンテナーで実行されます。 アプリ コンテナーはプロセスとリソース分離の境界として機能しますが、Docker コンテナーとは異なり、これらは Windows アプリケーションを実行するように設計された特別なコンテナーです。
アプリ コンテナーで実行されるプロセスは、低整合性レベルで動作します。つまり、所有していないリソースへのアクセスが制限されます。 ほとんどのリソースの既定の整合性レベルは中程度の整合性レベルであるため、UWP アプリはファイル システム、レジストリ、およびその他のリソースのサブセットにのみアクセスできます。 アプリ コンテナーでは、ネットワーク接続に対する制限も適用されます。 たとえば、ローカル ホストへのアクセスは許可されません。 その結果、マルウェアや感染したアプリはエスケープのためのフットプリントが限られています。
詳細情報
Windows サンドボックス
Windows サンドボックスは、Hyper-V と同じハードウェア ベースの仮想化テクノロジを使用して、信頼されていない Win32 アプリケーションを分離して安全に実行するための軽量デスクトップ環境を提供します。 Windows サンドボックスにインストールされている信頼されていない Win32 アプリはサンドボックスにのみ存在し、ホストに影響を与えることはできません。
Windows サンドボックスが閉じられると、デバイスに何も保持されません。 信頼されていない Win32 アプリケーションが閉じられた後、すべてのファイルと状態を含むすべてのソフトウェアが完全に削除されます。
詳細情報
Windows Subsystem for Linux (WSL)
Linux 用 Windows サブシステム (WSL) を使用すると、別の仮想マシンやデュアル ブートを必要とせずに、Windows デバイス上で Linux 環境を実行できます。 WSL は、Windows と Linux の両方を同時に使用する開発者にシームレスで生産的なエクスペリエンスを提供するように設計されています。
Windows 11 バージョン 24H2 の新機能
- Hyper-V ファイアウォール は、Windows によってホストされる WSL コンテナーとの間の受信および送信トラフィックのフィルター処理を可能にするネットワーク ファイアウォール ソリューションです
- DNS トンネリング は、さまざまなネットワーク環境での互換性を向上させ、仮想化機能を使用してネットワーク パケットではなく DNS 情報を取得するネットワーク設定です。
- 自動プロキシ は、WINDOWS の HTTP プロキシ情報を使用するように WSL を強制するネットワーク設定です。 Windows でプロキシを使用する場合は、そのプロキシが WSL ディストリビューションに自動的に適用されるため、オンにする
これらの機能は、Microsoft Intune[7]などのデバイス管理ソリューションを使用して設定できます。 Microsoft Defender for Endpoint (MDE) は WSL と統合されるため、WSL ディストリビューション内のアクティビティを監視し、MDE ダッシュボードにレポートできます。
詳細情報
仮想化ベースのセキュリティ エンクレーブ
仮想化ベースのセキュリティ エンクレーブは、ホスト アプリケーション内のソフトウェア ベースの信頼された実行環境 (TEE) です。 VBS エンクレーブを使用すると、開発者は VBS を使用して、管理者レベルの攻撃からアプリケーションのシークレットを保護できます。
VBS エンクレーブは、x64 と ARM64 の両方で、Windows 11、バージョン 24H2、Windows Server 2025 以降で使用できます。
詳細情報