
かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.81 かつてWDACと呼ばれた「ビジネス向けアプリコントロール」に新展開手段|Windows Server 2025大特集(18)
2025年02月06日配信
2025年04月25日更新
執筆者:山内 和朗
前回は、Windows Server 2025にセキュリティベースラインを簡単に展開、維持することができる新機能「OSConfig」を紹介しました。今回は、OSConfigの別の使用方法である「ビジネス向けアプリコントロール(App Control for Biziness)」の展開機能について紹介します。ビジネス向けアプリコントロールというセキュリティ機能を初めて聞く方も多いかもしれませんが、実はこの機能はWindows Server 2025で導入された新しいセキュリティ機能ではありません。
WindowsおよびWindows Serverには、「AppLocker」「Windows Defenderアプリケーション制御(Windows Defender Application Control(WDAC)」「SmartScreen」「Exploit protection」「スマートアプリコントロール(Smart App Control、Windows 11バージョン22H2以降の新規インストールのみで使用可能)」など、ソフトウェアの実行を許可/禁止する機能を複数備えています。Windows 10およびWindows Server 2026からはサポートされなくなりましたが、以前は「ソフトウェアの制限のポリシー(Software Restriction Policy《SRP》)」というものもありました。
今回紹介する「ビジネス向けアプリコントロール(App Control for Business)」は、これらに新たに追加されるセキュリティ機能では決してありません。Windows 10およびWindows Server 2016で「デバイスガード(Device Guard)」として登場し、その後、「Windows Defenderアプリケーション制御(Windows Defender Application Control《WDAC》)」という名称に変更された機能と同じものです。「メモリ整合性」「ハイパーバイザーで保護されたコード整合性(HyperVisor-protected Code Integrity《HVCI》)」「ハイパーバイザーによって適用されるコードの整合性(Hypervisor Enforced Code Integrity)」と呼ばれることもあります。この機能が、Windows Server 2025およびWindows 11バージョン24H2から、ビジネス向けアプリコントロールに変更されました。
Windows 10/11の「Windowsセキュリティ」アプリの「コア分離」にある「メモリ整合性」は、この機能の一部であり、信頼できない(署名されていない)カーネルモードドライバーのロードをブロックすることで、カーネルが侵害されることを回避します。この機能を特に「カーネルモードのコード整合性(Kernel Mode Code Integrity《KMCI》」と呼ぶことがあります。一方、ビジネス向けアプリコントロール(旧称、WDAC)でコードの整合性ポリシーを使用して制御可能なユーザーモードアプリの制御のことを「ユーザーモードのコード整合性(User Mode Code Integrity《UMCI》)」と呼ぶことがあります。そして、「コア分離」は、「仮想化ベースのセキュリティ(Virtualization-Based Security《VBS》」と呼ばれることがあります。
このように、度重なる名称変更や、複数の別名を持つため、混乱するかもしれませんが、「ビジネス向けアプリコントロール=WDAC」ということだけは覚えておいてください(画面1)。
画面1 Windows Server 2022(画面上)とWindows Server 2025(画面下)の同じポリシー。名称が「ビジネス向けアプリコントロール」に変更された。ちなみに、Windows 10バージョン1703、Windows Server 2016以前は「コードの整合性ポリシーを展開する」という名称だった
App Control for Business と AppLocker の概要|Windows(Microsoft Learn)
App Control for Business および AppLocker 機能の利用可能性|Windows(Microsoft Learn)
ビジネス向けアプリコントロールは、グループポリシー、Microsoft Intune、Microsoft Configuration Manager、PowerShell(ConfigCIモジュール)などを使用して、コードの整合性ポリシーを展開し、監査モードまたは強制モードで導入することができます。コードの整合性ポリシーは、以下の「App Control Policy Wizard(旧称、WDAC Policy Wizard)」を使用して作成することができます。
App Control Policy Wizard
そして、Windows Server 2025では、従来の方法は引き続き利用できますが、新しい展開手段として前回紹介した「OSConfig」が加わりました。
OSConfig を使用して App Control for Business を構成する|Windows Server(Microsoft Learn)
Microsoftは、Windows Server 2025向けにサーバーの攻撃面の縮小に役立つ、ビジネス向けアプリコントロールポリシーを開発し、OSConfigを使用して簡単に展開できるようにしました。Windows Server 2025で利用可能なポリシーは、OSConfigの以下の4つのシナリオとして提供されています。OSConfigを使用したビジネス向けアプリコントロールポリシーの展開は、少なくともWindows Server 2025専用であることに注意してください。Windows 10/11デバイスへの展開には対応していません。Intuneやグループポリシーなど、従来の方法を使用してください。
監査モードでは、信頼されていないコードの実行はブロックされませんが、イベントログに記録されます。一方、強制モードでは、信頼されていないコードの実行がブロックされ、イベントログに記録されます。
OSConfigを使用してこれらのシナリオを展開し、ビジネス用アプリコントロールを導入するには、対象のサーバーにMicrosoft.OSConfigモジュールをインストールしておく必要があります。それには、前回説明したのと同じ、次の1行のコマンドラインを実行します。なお、Microsoft.OSConfigモジュールはPowerShellギャラリー(https://www.powershellgallery.com/packages/Microsoft.OSConfig/)からのインストールとなるため、インターネットアクセスが利用可能である必要があります。
PS C:¥> Install-Module -Name Microsoft.OSConfig -Scope AllUsers -Repository PSGallery -Force |
例えば、監査モードで導入する場合は、次のコマンドラインを実行します。OSの再起動は不要で、ビジネス用アプリコントロールは即座に機能し始めます(画面2)。
PS C:¥> Set-OSConfigDesiredConfiguration -Scenario AppControl\WS2025\DefaultPolicy\Audit -Default PS C:¥> Set-OSConfigDesiredConfiguration -Scenario AppControl\WS2025\AppBlockList\Audit -Default |
画面2 ビジネス向けアプリコントロールのポリシーを監査モードで導入する
アプリコントロールポリシーが適用されたことを確認するには、PowerShellやコマンドプロンプトで以下のコマンドラインを実行します。ちなみに、citool.exeは、Windows 11バージョン22H2以降およびWindows Server 2025に追加されたコードの整合性ポリシー管理ツールです。
CiTool テクニカル リファレンス|Windows(Microsoft Learn)
PS C:¥> citool -lp または --list-policies |
出力結果に、以下の2つフレンドリ名を持つポリシーが存在することを確認します(画面3)。「| Select-String "WS2025"」や「| Findstr /I "WS2025"」を付けて検索することもできますが、その場合、日本語が文字化けします。
画面3 ビジネス向けアプリコントロールポリシーが展開されたことを確認する
監査モードで導入後、署名されていないアプリを実行してみました。アプリは「VirtMemTest」ウィンドウタイトルを持つ「sample.exe」です。このツールの正体については気にしないでください、単に署名されていないアプリというだけです。すると、「アプリケーションとサービス ログ」の「Microsoft-Windows-CodeIntegrity/Operational」ログにイベントID「3076」として、信頼されていないアプリ「sample.exe」が実行されたことが記録されました(画面4)。
画面4 信頼されていないアプリ(sample.exe)が実行されたことを示すイベントID「3076」のイベント
次に、監査モードから強制モードに切り替えてみます。それには、監査モード用のシナリオを削除し、強制モード用のシナリオを展開します。
PS C:¥> Remove-OSConfigDesiredConfiguration -Scenario AppControl\WS2025\DefaultPolicy\Audit PS C:¥> Remove-OSConfigDesiredConfiguration -Scenario AppControl\WS2025\AppBlockList\Audit PS C:¥> Set-OSConfigDesiredConfiguration -Scenario AppControl\WS2025\DefaultPolicy\Enforce -Default PS C:¥> Set-OSConfigDesiredConfiguration -Scenario AppControl\WS2025\AppBlockList\Enforce -Default |
強制モードに切り替えると、監査モードで実行できたアプリの実行がブロックされました(画面5)。以前のWindowsバージョンでは「組織がWindows Defenderアプリケーション制御を使用してこのアプリをブロックしました」と表示されていたのと同じダイアログボックスです。イベントログには、イベントID「3077」としてアプリの実行がブロックされたことが記録されます(画面6)。
なお、OSConfig以外の方法でビジネス向けアプリコントロールのポリシーを削除した場合(ConfigCIモジュールやcitoolなどを使用して削除した場合)、OSConfigの「ドリフト制御」(望ましい構成からの逸脱を自動修正する機能)によって、既定で4時間のリフレッシュ期間が経過すると、設定が削除前のポリシーの状態(監査モードまたは強制モード)に戻ることに注意が必要です。
画面5 強制モードに切り替えると、信頼されていないアプリの実行がこのようにブロックされる
画面6 ビジネス向けアプリコントロールによりブロックされたアプリに関するイベント
Windowsのシステムファイルはすべて署名済みであるため問題はありませんが、独自に開発したアプリやサードベンダーのアプリは、ビジネス向けアプリコントロールによりブロックされる可能性があります。まずは、監査モードで運用して許可するべきアプリをリストアップし、自社の許可ポリシーを作成して、既定のポリシーに追加するという使い方になるでしょう。前出のApp Control Poily Wizardを使用すると、イベントログを直接または.evtxファイルを介して解析して、許可リストのポリシーを作成することができます(画面7)。App Control Poily WizardはXML形式でポリシーを出力しますが、それをPowerShellを使用して追加します(ConfigCIおよびMicrosoft.OSConfigモジュールのコマンドレットを使用)。詳細な方法については、公式ドキュメントを参照してください。
画面7 App Control Poily Wizardを使用すると、イベントログに記録されたログを解析し、許可リストを作成することができる
最後に、環境内で現在有効になっているビジネス向けアプリコントロールポリシーを確認する方法を紹介します。App Control Poily Wizardで作成、追加した追加のポリシーは、このコマンドラインで確認することができます(画面8)。
PS C:¥> (Get-OSConfigDesiredConfiguration -Scenario AppControl).Value.PolicyInfo | Where-Object { $_.IsEffective -eq $true } |
画面8 現在有効になっているビジネス向けアプリコントロールポリシーを確認する。sample-PolicyはApp Control Policy Wizardで作成、追加した「sample.exe」の実行を許可するポリシー
Windows Server 2025大特集(1)|...|(17)|(18)