Windows LAPSについて調べてみました!

Others
OthersWindows

こんにちは。今回は、Windows LAPS(Local Administrator Password Solution)について、Microsoftの公式ドキュメントを参照しながら仕様を確認していきます。
また、Microsoft Entra ID(以下、Entra ID)をバックアップディレクトリとし、Microsoft Intune(以下、Intune)のエンドポイントセキュリティのアカウント保護ポリシーを使用して管理する方法について動作検証していきたいと思います。

Windows LAPSとは

概要

Windows LAPSとは、Microsoft Entraに参加しているデバイスもしくはActive Directoryドメインに参加しているデバイス上のローカル管理者アカウントのパスワードを自動的に管理およびバックアップする機能です。また、Active Directoryドメインコントローラーのディレクトリサービス復元モード (DSRM) アカウントのパスワードを自動的に管理およびバックアップすることも可能です。

Windows 10、11とWindows Server 2019、2022で2023年4月11日以降の更新プログラムが適用されたOSプラットフォームで使用することが可能です。

Windows LAPSを使用すれば、ローカル管理者アカウントのパスワードを定期的にローテーションして管理することが可能になり、パスワードのハッシュ情報を不正に取得して認証を行うなりすまし攻撃(Pass the Hash攻撃)から保護することが可能になります。

制御シナリオは、デバイスの管理方法によって以下の通り異なります。

管理方法制御シナリオ
Entra参加デバイス、Entraハイブリッド参加デバイスの場合Entra IDにローカル管理者アカウントのパスワードをバックアップして管理する。
Active Directoryドメイン参加デバイスの場合Active Directory サーバにローカル管理者アカウントのパスワードをバックアップして管理する。

参照先:Windows LAPS の概要

アーキテクチャ

Windows LAPSのアーキテクチャは以下画像(※Microsoft 公式ドキュメントより)の通りです。

Windows LAPSは、Core logic(laps.dll)、CSP(lapscsp.dll)、PowerShellコマンド(lapspsh.dll)で構成されており、GPOを使用して構成することも可能です。

マネージドデバイスでWindows LAPSポリシーを有効にすれば、構成されたローカルアカウントパスワード管理が開始されます。1時間おきにバックグラウンドでタスクが起動し、パスワード有効期限が切れていないか確認します。パスワード有効期限が切れた場合、現在のポリシーに準拠した長さと複雑さの新しいランダムパスワードが生成されます。

バックグラウンドで起動するタスクは、Windows タスクスケジューラでは実装されておらず、構成することはできなくなっています。しかし、以下コマンドをPowerShellで実行することで、タスクを手動で開始することは可能になっています。

Invoke-LapsPolicyProcessing

参照先:Windows LAPS のアーキテクチャ

設定方法

Windows LAPSは、以下のポリシー管理メカニズムを使用して設定することが可能です。

ポリシー名ポリシーのレジストリキールート
LAPS CSPHKLM\Software\Microsoft\Policies\LAPS
LAPS グループポリシーHKLM\Software\Microsoft\Windows\CurrentVersion\Policies\LAPS
LAPS ローカル構成HKLM\Software\Microsoft\Windows\CurrentVersion\LAPS\Config

ライセンスの要件

Windows LAPSは、サポートされているWindows デバイスであれば無料で利用することができます。また、Microsoft Entra ID Free 以上のライセンスを使用して、Entra ID に対してパスワードをバックアップすることも可能です。

参照先:Windows LAPS の概要_ ライセンスの要件

レガシ Microsoft LAPSとの比較

Windows デバイスのローカル管理者アカウントを制御する方法として、レガシ Microsoft LAPSを使用してActive Directory サーバにバックアップする方法もございます。

しかし、レガシ Microsoft LAPSはWindows 11 23 H2以降で非推奨になっているため、旧バージョンのOS (Windows 11 23 H2 以前のバージョン) ではない場合はWindows LAPSを使用します。

Windows LAPS は、レガシ Microsoft LAPS から設計概念を継承しており、かつ多くの機能も追加されています。詳細は、以下のMicrosoft 公式ドキュメントをご参照ください。

参照先:Windows LAPS の概要_Windows LAPS とレガシ Microsoft LAPS の比較

Entra IDとIntuneを使用したWindows LAPS管理

Entra IDとIntuneのサポートを備えたWindows LAPSは、2023年10月23日に一般提供が開始されました。この機能は、Entra参加デバイスとEntraハイブリッド参加デバイスで利用することができます。

参照先:Windows Local Administrator Password Solution with Microsoft Entra ID now Generally Available!

動作検証

今回は以下のような環境を用意して、Entra IDとIntuneのサポートを備えたWindows LAPSポリシーについて動作確認していきます。

環境準備

以下の手順で環境準備を実施していきます。

  1. Entra IDにてMicrosoft Entra Local Administrator Password Solution (LAPS) 有効化
  2. Intuneにてクライアント側のWindows LAPSポリシー作成

注意 組み込みのローカル管理者アカウント以外を管理する場合は、事前に対象のデバイスに対してローカル管理者アカウントを作成しておきます。

参照先:Microsoft Entra ID を使用した Windows LAPS の有効化
参照先:Microsoft Intuneを使用して Windows LAPS ポリシーを管理する

1. Entra IDにてMicrosoft Entra Local Administrator Password Solution (LAPS) 有効化

Microsoft Entra 管理センター へアクセスし、[ID > すべてのデバイス > デバイスの設定]画面を表示します。Microsoft Entra Local Administrator Password Solution (LAPS) の有効化を「はい」に変更して「保存」をクリックします。

2. Intuneにてクライアント側のWindows LAPSポリシー作成

Microsoft Intune 管理センター へアクセスし、[エンドポイントセキュリティ > アカウント保護]画面を表示して「ポリシーの作成」をクリックします。

画面右にプロファイル作成のメニューが表示されますので、プラットフォームに「Windows 10 以降」、プロファイルに「Local admin password solution(Windows LAPS)」を選択して「作成」をクリックします。

プロファイルの各項目を設定します。以下画像は今回作成した構成設定の画面イメージです。
「管理者のアカウント名」を未構成にした場合は、既定で組み込みローカル管理者アカウントを管理する設定になります。また、ローカル管理者アカウントは1アカウントしか指定できません。

参照先:Windows LAPS CSP

作成が完了したら、以下画像の通り新しいポリシーが追加されたことを確認します。

以上で、環境準備は完了です。

動作確認

ここからは、構成したWindows LAPSポリシーについて以下の手順で動作確認を実施していきます。

  1. Entra IDにてアカウントとパスワードの詳細を表示する
  2. Intuneにてアカウントとパスワードの詳細を表示する
  3. Intuneにてローカル管理者パスワードのローテーションを実施する
  4. Microsoft Graph APIにてEntra IDからパスワードを取得する
  5. Entra参加デバイスにローカル管理者アカウントでサインインする

参照先:アカウントとパスワードの詳細を表示する
参照先:Microsoft Entra ID からパスワードを取得する

1. Entra IDにてアカウントとパスワードの詳細を表示する

Microsoft Entra 管理センター へアクセスし、[ID > すべてのデバイス > ローカル管理者パスワードの回復]画面を表示します。

ローカル管理者パスワードの表示をクリックします。以下画像のように、アカウント名と自動生成されたパスワードを確認することが可能です。

2. Intuneにてアカウントとパスワードの詳細を表示する

Microsoft Intune 管理センター へアクセスし、[デバイス > すべてのデバイス]画面を表示して対象のデバイスを選択します。モニターメニューより「ローカル管理者パスワード」を選択します。

「ローカル管理者パスワードの表示」をクリックすれば、Entra管理センターと同じくアカウント名と自動生成されたパスワードを確認することが可能です。

3. Intuneにてローカル管理者パスワードのローテーションを実施する

対象のデバイス画面にて「概要」メニューを選択します。画面右上の3点ボタンを選択して、「ローカル管理者パスワードのローテーション」をクリックします。

デバイス アクション状態に以下画像のようなメニューが追加され「保留」状態になりますので、対象のデバイスを再起動します。

デバイスの再起動後、再びローカル管理者パスワードを参照すると、前回のパスワードローテーションの時刻が更新されたことを確認できます。

4. Microsoft Graph APIにてEntra IDからパスワードを取得する

PowerShellを起動して以下コマンドを実行します。

Connect-MgGraph -Scopes "DeviceLocalCredential.Read.All"
Get-LapsAADPassword -DeviceIds <DeviceName> -IncludePasswords -AsPlainText

以下画像は実際の実行画面のイメージになります。Password欄に現在のパスワード情報が表示されます。

5. Entra参加デバイスにローカル管理者アカウントでサインインする

最後にローカル管理者アカウントで今回生成したパスワードでサインインできることを確認します。以下画像のように、自動生成されたパスワードでログインした際の画面イメージです。

さいごに

いかがだったでしょうか?今回は、Windows LAPSについて仕様を確認し、Entra IDとIntuneを使用してWindows LAPSを構成および管理する方法について動作検証を実施しました。今回設定した方法ではローカル管理者アカウントは既定で存在する必要がありますが、Windows LAPSのポリシーには新しいカスタムアカウントを自動管理する設定項目もございます。Windows LAPSの全ポリシーに関する詳細は、以下のMicrosoft 公式ドキュメントをご参照ください。

参照先:BackupDirectory 別にサポートされているポリシー設定

参考リンク

タイトルとURLをコピーしました