この記事では、資格情報を侵害する可能性のあるコード挿入を防ぐために、ローカル セキュリティ機関 (LSA) プロセスの追加の保護を構成する方法について説明します。
ローカル セキュリティ機関サーバー サービス (LSASS) プロセスを含む LSA は、ローカルサインインとリモート サインインについてユーザーを検証し、ローカル セキュリティ ポリシーを適用します。 Windows 8.1 以降では、LSA の保護が追加され、保護されていないプロセスがメモリを読み取ってコードを挿入するのを防ぎます。 この機能により、LSA が格納および管理する資格情報のセキュリティが強化されます。 Unified Extensible Firmware Interface (UEFI) ロックとセキュア ブートを使用すると、さらなる保護を実現できます。 When these settings are enabled, disabling the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa registry key has no effect.
プラグインまたはドライバーの保護されたプロセス要件
LSA プラグインまたはドライバーが保護されたプロセスとして正常に読み込まれるには、次の 2 つのセクションの条件を満たす必要があります。
Signature verification
保護モードでは、LSA に読み込まれたプラグインを Microsoft 署名でデジタル署名する必要があります。 署名されていないプラグイン、または Microsoft 署名で署名されていないプラグインは、LSA に読み込まれません。 プラグインの例としては、スマート カード ドライバー、暗号化プラグイン、パスワード フィルターがあります。
- スマート カード ドライバーなどのドライバーである LSA プラグインは、Windows Hardware Quality Labs (WHQL) 認定を使用して署名する必要があります。 詳細については、「 WHQL リリース署名」を参照してください。
- WHQL 認定プロセスがない LSA プラグインは、 LSA のファイル署名サービスを使用して署名する必要があります。
Microsoft セキュリティ開発ライフサイクル (SDL) プロセス ガイダンスへの準拠
- すべてのプラグインは、該当する SDL プロセス ガイダンスに準拠している必要があります。 詳細については、「 Microsoft セキュリティ開発ライフサイクル (SDL) – プロセス ガイダンス」を参照してください。
- プラグインが Microsoft 署名で正しく署名されている場合でも、SDL プロセスに準拠していないと、プラグインの読み込みに失敗する可能性があります。
Recommended practices
機能を広く展開する前に、次の一覧を使用して LSA 保護の有効化を十分にテストします。
- 組織が使用するすべての LSA プラグインとドライバーを特定します。 Microsoft 以外のドライバーまたはプラグイン (スマート カード ドライバーや暗号化プラグインなど) と、パスワード フィルターまたはパスワード変更通知を適用するために使用される内部で開発されたソフトウェアを含めます。
- すべての LSA プラグインが Microsoft 証明書でデジタル署名されていることを確認し、LSA 保護下での読み込みに失敗しないようにします。
- 正しく署名されたすべてのプラグインが LSA に正常に読み込み、期待どおりに動作することを確認します。
- 監査ログを使用して、保護されたプロセスとして実行できない LSA プラグインとドライバーを特定します。
LSA 保護の有効化に関する制限事項
追加された LSA 保護が有効になっている場合、カスタム LSA プラグインをデバッグすることはできません。 保護されたプロセスである場合、デバッガーを LSASS にアタッチすることはできません。 一般に、実行中の保護されたプロセスをデバッグする方法はサポートされていません。
読み込みが保護プロセスとして行われない LSA のプラグイン及びドライバーの監査
LSA 保護を有効にする前に、監査モードを使用して、LSA 保護モードで読み込みに失敗した LSA プラグインとドライバーを特定します。 監査モードでは、LSA 保護が有効になっている場合に LSA の下で読み込みに失敗するすべてのプラグインとドライバーを識別するイベント ログが生成されます。 メッセージは、プラグインまたはドライバーを実際にブロックすることなくログに記録されます。
The events described in this section are recorded in Event Viewer in the Operational log under Applications and Services Logs>Microsoft>Windows>CodeIntegrity. これらのイベントは、署名の理由により読み込みに失敗した LSA プラグインとドライバーを識別するのに役立ちます。 To manage these events, you can use the wevtutil command-line tool. For information about this tool, see Wevtutil.
Important
デバイスで Smart App Control が有効になっている場合、監査イベントは生成されません。 Smart App Control の状態を確認または変更するには、Windows セキュリティ アプリケーションを開き、[ アプリとブラウザーコントロール ] ページに移動します。 スマート アプリ コントロールの設定を選択して、スマート アプリ コントロールが有効になっているかどうかを確認します。 If you want to audit added LSA protection, change the configuration to Off.
Note
追加された LSA 保護の監査モードは、Windows 11 バージョン 22H2 以降を実行しているデバイスで既定で有効になっています。 デバイスがこのビルド以降を実行している場合、追加された LSA 保護を監査するために他のアクションは必要ありません。
1 台のコンピューターで LSASS.exe の監査モードを有効にする
- Open the Registry Editor, or enter RegEdit.exe in the Run dialog, and then go to the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\LSASS.exe registry key.
- Open the AuditLevel value. Set its data type to dword and its data value to 00000008.
- コンピューターを再起動します。
これらの手順を実行した後、ID が 3065 と 3066 のイベントを探します。 これらのイベントを確認するには、イベント ビューアーを開き、 アプリケーションとサービス ログ>Microsoft>Windows>CodeIntegrity>Operational を展開します。
- Event 3065 occurs when a code integrity check determines that a process, usually LSASS.exe, attempts to load a driver that doesn't meet the security requirements for shared sections. ただし、現在設定されているシステム ポリシーにより、イメージの読み込みが許可されます。
- Event 3066 occurs when a code integrity check determines that a process, usually LSASS.exe, attempts to load a driver that doesn't meet the Microsoft signing level requirements. ただし、現在設定されているシステム ポリシーにより、イメージの読み込みが許可されます。
プラグインまたはドライバーに共有セクションが含まれている場合、イベント 3066 はイベント 3065 と共にログに記録されます。 共有セクションを削除すると、プラグインが Microsoft の署名レベルの要件を満たさない限り、両方のイベントが発生しないようにする必要があります。
Important
これらの操作イベントは、カーネル デバッガーがアタッチされ、システムで有効になっている場合には生成されません。
複数のコンピューターで LSASS.exe の監査モードを有効にする
ドメイン内の複数のコンピューターの監査モードを有効にするには、グループ ポリシーのレジストリ クライアント側拡張機能を使用して、LSASS.exe 監査レベルのレジストリ値を展開できます。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\LSASS.exeレジストリ キーを変更する必要があります。
- Open the Group Policy Management Console by entering gpmc.msc in the Run dialog or selecting Group Policy Management Console from the Start menu.
- ドメイン レベルでリンクされているか、コンピューター アカウントを含む組織単位にリンクされている新しいグループ ポリシー オブジェクト (GPO) を作成します。 または、既に展開されている GPO を選択します。
- Right-click the GPO, and then select Edit to open the Group Policy Management Editor.
- Expand Computer Configuration>Preferences>Windows Settings.
- Right-click Registry, point to New, and then select Registry Item. [ 新しいレジストリのプロパティ] ダイアログが表示されます。
- [ 新しいレジストリのプロパティ ] ダイアログで、次の値を選択または入力します。
- For Hive, select HKEY_LOCAL_MACHINE.
- For Key Path, select SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\LSASS.exe.
- For Value name, enter AuditLevel.
- For Value type, select REG_DWORD.
- For Value data, enter 00000008.
- Select OK.
Note
GPO を有効にするには、GPO の変更をドメイン内のすべてのドメイン コントローラーにレプリケートする必要があります。
To opt in for added LSA protection on multiple computers, you can use the registry client-side extension for Group Policy to modify HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa. 手順については、この記事で後述する 「追加された LSA 資格情報保護を有効にして構成する 」を参照してください。
LSASS.exe が読み込みに失敗したプラグインとドライバーを特定する
LSA 保護が有効になっている場合、システムは LSA の下で読み込みに失敗したすべてのプラグインとドライバーを識別するイベント ログを生成します。 LSA 保護の追加をオプトインした後、イベント ログを使用して LSA 保護モードで読み込みに失敗した LSA プラグインとドライバーを識別できます。
アプリケーションとサービス ログ>Microsoft>Windows>CodeIntegrity>Operational を展開して、イベント ビューアーで次のイベントを確認します。
- Event 3033 occurs when a code integrity check determines that a process, usually LSASS.exe, attempts to load a driver that doesn't meet the Microsoft signing level requirements.
- Event 3063 occurs when a code integrity check determines that a process, usually LSASS.exe, attempts to load a driver that doesn't meet the security requirements for shared sections.
共有セクションは、通常、プログラミング手法によって、インスタンス データが同じセキュリティ コンテキストを使用する他のプロセスと対話できるようにする場合に発生します。 共有セクションでは、セキュリティの脆弱性が発生する可能性があります。
追加された LSA 資格情報保護を有効にして構成する
このセクションの手順を使用して、Windows 8.1 以降または Windows Server 2012 R2 以降を実行しているデバイスに対して追加の LSA 保護を構成できます。
セキュア ブートと UEFI を使用するデバイス
セキュア ブートまたは UEFI を使用する x86 ベースまたは x64 ベースのデバイスで LSA 保護を有効にすると、レジストリ キーまたはポリシーを使用して UEFI 変数を UEFI ファームウェアに格納できます。 UEFI ロックを有効にすると、LSASS は保護されたプロセスとして実行され、この設定はファームウェアの UEFI 変数に格納されます。
設定がファームウェアに格納されている場合、レジストリまたはポリシーを変更することで、追加の LSA 保護を構成するために UEFI 変数を削除または変更することはできません。 UEFI 変数は、LSA 保護 UEFI 変数の削除に関する手順を使用してリセットする必要があります。
UEFI ロックなしで有効にすると、LSASS は保護されたプロセスとして実行され、この設定は UEFI 変数に格納されません。 この設定は、Windows 11 バージョン 22H2 以降が新しくインストールされたデバイスに既定で適用されます。
UEFI をサポートしていない、またはセキュア ブートが無効になっている x86 ベースまたは x64 ベースのデバイスでは、LSA 保護の構成をファームウェアに格納できません。 これらのデバイスは、レジストリ キーの存在のみに依存します。 このシナリオでは、デバイスへのリモート アクセスを使用して LSA 保護を無効にすることができます。 LSA 保護の無効化は、デバイスが再起動するまで有効になりません。
Automatic enablement
Windows 11 バージョン 22H2 以降を実行しているクライアント デバイスでは、次の条件が満たされている場合、追加 LSA 保護が既定で有効になります。
- デバイスは Windows 11 バージョン 22H2 以降の新規インストールであり、以前のリリースからアップグレードされていません。
- デバイスがエンタープライズ参加済み (Active Directory ドメイン参加済み、Microsoft Entra ドメイン参加済み、またはハイブリッド Microsoft Entra ドメイン参加済み)。
- デバイスは、 ハイパーバイザーで保護されたコード整合性 (HVCI) に対応しています。
Windows 11 バージョン 22H2 以降で追加された LSA 保護を自動的に有効にしても、この機能の UEFI 変数は設定されません。 UEFI 変数を設定する場合は、レジストリ構成またはポリシーを使用できます。
1 台のコンピューターで LSA 保護を有効にする
レジストリを使用するか、ローカル グループ ポリシーを使用して、1 台のコンピューターで LSA 保護を有効にすることができます。
レジストリを使用して有効にする
- Open the Registry Editor, or enter RegEdit.exe in the Run dialog, and then go to the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa registry key.
- Open the RunAsPPL value, and edit its data:
- To configure the feature with a UEFI variable, use a type of dword and a data value of 00000001.
- To configure the feature without a UEFI variable, use a type of dword and a data value of 00000002. この値は、Windows 11 ビルド 22H2 以降でのみ適用されます。
- コンピューターを再起動します。
Windows 11 バージョン 22H2 以降でローカル グループ ポリシーを使用して有効にする
- Open the Local Group Policy Editor by entering gpedit.msc in the Run dialog.
- Expand Computer Configuration>Administrative Templates>System>Local Security Authority.
- 保護されたプロセス ポリシーとして実行するように LSASS を構成するを開きます。
- Set the policy to Enabled.
- Under Options, select one of the following options:
- UEFI 変数を使用して機能を構成するには、[ UEFI ロックで有効] を選択します。
- UEFI 変数なしで機能を構成するには、[ UEFI ロックなしで有効] を選択します。
- Select OK.
- コンピューターを再起動します。
グループ ポリシーを使用して LSA 保護を有効にする
- Open the Group Policy Management Console by entering gpmc.msc in the Run dialog or selecting Group Policy Management Console from the Start menu.
- ドメイン レベルでリンクされているか、コンピューター アカウントを含む組織単位にリンクされている新しい GPO を作成します。 または、既に展開されている GPO を選択します。
- Right-click the GPO, and then select Edit to open the Group Policy Management Editor.
- Expand Computer Configuration>Preferences>Windows Settings.
- Right-click Registry, point to New, and then select Registry Item. [ 新しいレジストリのプロパティ] ダイアログが表示されます。
- [ 新しいレジストリのプロパティ ] ダイアログで、次の値を選択または入力します。
- For Hive, select HKEY_LOCAL_MACHINE.
- For Key Path, select SYSTEM\CurrentControlSet\Control\Lsa.
- For Value name, enter RunAsPPL.
- For Value type, select REG_DWORD.
- For Value data, enter one of the following values:
- To enable LSA protection with a UEFI variable, enter 00000001.
- To enable LSA protection without a UEFI variable, enter 00000002. この設定は、Windows 11 バージョン 22H2 以降でのみ適用されます。
- Select OK.
カスタム デバイス構成プロファイルを作成して LSA 保護を有効にする
Windows 11 バージョン 22H2 以降を実行しているデバイスの場合は、次のセクションの手順を実行して LSA 保護を有効にして構成できます。 この手順では、 Microsoft Intune 管理センター を使用して、カスタム デバイス構成プロファイルを作成します。
プロファイルを作成する
- In the Intune admin center, go to Devices>Windows>Configuration profiles, and then select Create profile.
- [ プロファイルの作成 ] 画面で、次のオプションを選択します。
- Under Platform, select Windows 10 and later.
- Under Profile type, select Templates, and then select Custom.
- Select Create.
- On the Basics screen, enter a name and optional description for the profile, and then select Next.
初期構成設定を追加する
- On the Configuration settings screen, select Add.
- On the Add row screen, enter the following information:
- For Name, enter a name for the Open Mobile Alliance – Uniform Resource (OMA-URI) setting.
- For OMA-URI, enter ./Device/Vendor/MSFT/Policy/Config/LocalSecurityAuthority/ConfigureLsaProtectedProcess.
- For Data type, select Integer.
- For Value, enter one of the following values:
- To configure LSASS to run as a protected process with UEFI lock, enter 1.
- To configure LSASS to run as a protected process without UEFI lock, enter 2.
- Select Save, and then select Next.
プロファイルの構成を完了する
- On the Assignments page, configure the assignments, and then select Next.
- On the Applicability Rules page, configure any applicability rules, and then select Next.
- [ 確認と作成 ] ページで、構成を確認し、[ 作成] を選択します。
- コンピューターを再起動します。
このポリシー構成サービス プロバイダー (CSP) の詳細については、「 LocalSecurityAuthority - ConfigureLsaProtectedProcess」を参照してください。
LSA 保護を無効にする
LSA 保護を無効にするには、レジストリを使用するか、ローカル グループ ポリシーを使用します。 デバイスがセキュア ブートを使用していて、ファームウェアで LSA 保護 UEFI 変数を設定している場合は、ツールを使用して UEFI 変数を削除できます。
レジストリを使用して無効にする
- Open the Registry Editor, or enter RegEdit.exe in the Run dialog, and then go to the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa registry key.
- Open the RunAsPPL value, and set its data value to 00000000. Or delete the RunAsPPL value.
- 保護されたプロセス ライト (PPL) 機能が UEFI 変数で有効になっている場合は、 ローカル セキュリティ機関の保護されたプロセスオプトアウト ツール を使用して UEFI 変数を削除します。
- コンピューターを再起動します。
Windows 11 バージョン 22H2 以降でローカル ポリシーを使用して無効にする
- Open the Local Group Policy Editor by entering gpedit.msc in the Run dialog.
- Expand Computer Configuration>Administrative Templates>System>Local Security Authority.
- 保護されたプロセス ポリシーとして実行するように LSASS を構成するを開きます。
- Set the policy to Enabled.
- Under Options, select Disabled.
- Select OK.
- コンピューターを再起動します。
Note
If you set this policy to Not Configured and the policy was previously enabled, the prior setting doesn't get cleaned up and continues to be enforced. You must set the policy to Disabled under the Options dropdown to disable the feature.
LSA 保護 UEFI 変数を削除する
デバイスがセキュア ブートを使用している場合は、Microsoft ダウンロード センターから ローカル セキュリティ機関 (LSA) 保護プロセスオプトアウト ツール を使用して UEFI 変数を削除できます。
Note
The Download Center offers two files named LsaPplConfig.efi. 小さいファイルは x86 ベースのシステム用で、大きなファイルは x64 ベースのシステム用です。
For more information about managing Secure Boot, see UEFI Firmware.
Caution
セキュア ブートをオフにすると、セキュア ブートと UEFI 関連のすべての構成がリセットされます。 他のすべての手段で LSA 保護が失敗した場合にのみ、セキュア ブートをオフにする必要があります。
LSA 保護を確認する
Windows の起動時に LSA が保護モードで起動するかどうかを確認するには、次の手順を実行します。
- イベント ビューアーを開きます。
- Expand Windows Logs>System.
- Look for the following WinInit event: 12: LSASS.exe was started as a protected process with level: 4.
LSA と Credential Guard
LSA 保護は、信頼されていない LSA コード挿入とプロセス メモリ ダンプをブロックすることで、資格情報などの機密情報を盗難から保護するセキュリティ機能です。 LSA 保護は、コンテナー内の LSA プロセスを分離し、悪意のあるアクターやアプリなどの他のプロセスが機能にアクセスできないようにすることで、バックグラウンドで実行されます。 この分離により、LSA 保護は重要なセキュリティ機能になり、Windows 11 では既定で有効になっています。
Windows 10 以降では、Credential Guard は、NTLM パスワード ハッシュ、Kerberos チケット付与チケット (TGT)、およびアプリケーションによってドメイン資格情報として格納された資格情報を保護することで、資格情報の盗難攻撃を防ぐのにも役立ちます。 Kerberos、NTLM、Credential Manager では、仮想化ベースのセキュリティ (VBS) を使用してシークレットを分離します。
Credential Guard が有効になっている場合、LSA プロセスは、シークレットを格納および保護する分離 LSA プロセス (LSAIso.exe) と呼ばれるコンポーネントと通信します。 分離 LSA プロセスによって格納されたデータは VBS を使用して保護され、オペレーティング システムの残りの部分からはアクセスできません。 LSA は、リモート プロシージャ コールを使って分離 LSA プロセスと通信します。
Windows 11 バージョン 22H2 以降では、システム要件を満たすすべてのデバイスで VBS と Credential Guard が既定で有効になっています。 Credential Guard は、64 ビットセキュア ブート デバイスでのみサポートされています。 LSA 保護と Credential Guard は補完的であり、Credential Guard をサポートしたり、既定で有効にしたりするシステムでは、LSA 保護を有効にしてメリットを得ることもできます。 Credential Guard の詳細については、「 Credential Guard の概要」を参照してください。