「全PCのローカル管理者パスワード、同じにしてませんか?」——現場でこう聞くと、「あ……」という反応が返ってくることがあります。
セットアップが楽だからという理由で、全端末のローカル管理者パスワードを統一している現場は今でも少なくありません。しかしこれは、1台が侵害された瞬間にドメイン全体への横展開を許す構成です。
攻撃者はローカル管理者のNTLMハッシュを1台から盗み出し、同じパスワードを持つ全端末にPass-the-Hashで侵入できます。「1台やられたら全台やられる」状態です。
その解決策がLAPSです。端末ごとにランダムなローカル管理者パスワードを自動設定・ローテーションするため、1台のハッシュを奪っても他の端末には使えなくなります。
Pass-the-Hashの仕組みとNTLMの課題については「LSA ProtectionとCredential Guardとは?Pass-the-Hashが通じにくくなった理由を解説」を参照してください。
LAPSとは
LAPSとは——端末ごとにランダムなパスワードを自動設定する仕組み
LAPSとは、ドメイン参加済みのWindows端末のローカル管理者アカウントに対して、端末ごとにランダムなパスワードを自動生成・設定・ローテーションする機能です。
LAPS(Local Administrator Password Solution:ローカル管理者パスワードソリューション) Microsoftが提供するローカル管理者パスワードの自動管理ソリューション。端末ごとに異なるランダムパスワードを自動生成してADに格納し、定期的に更新する。パスワードは暗号化されてADのコンピューターオブジェクトに保存される。
LAPSが有効な環境では、各端末のローカル管理者パスワードはADが自動管理します。管理者はADからパスワードを取得して使用し、一定期間が経過すると自動的に新しいパスワードに更新されます。
なぜLAPSが横展開防止に有効なのか
LAPSが横展開防止に有効な理由は「端末ごとにパスワードが異なる」という点にあります。
Pass-the-Hashによる横展開が成立するのは、複数の端末で同じローカル管理者パスワード(つまり同じNTLMハッシュ)が使われているからです。
❌ LAPS未導入の環境(全台同じパスワード)
PC-A侵害 → ローカル管理者ハッシュ取得
→ 同じハッシュでPC-B・PC-C・PC-D...全台に横展開可能
✅ LAPS導入済みの環境(端末ごとに異なるパスワード)
PC-A侵害 → ローカル管理者ハッシュ取得
→ PC-Aのハッシュは他の端末では無効
→ 横展開できない

gMSAがサービスアカウントのKerberoastingを防ぐのに対し、LAPSはローカル管理者アカウントの使い回しによる横展開の被害範囲を限定するという役割分担になります。Pass-the-Hash自体を防ぐのはCredential GuardやLSA Protectionの役割です。
gMSAの仕組みと設定手順については「gMSAとは?設定手順と使いどころをわかりやすく解説」を参照してください。
Windows LAPSとLegacy LAPSの違い
LAPSには2つのバージョンがあります。現在はWindows LAPSへの移行が推奨されています。
| 項目 | Legacy LAPS | Windows LAPS |
|---|---|---|
| 提供形態 | 別途インストールが必要 | Windows組み込み(2023年4月以降) |
| 対応OS | Windows Vista〜 | Windows 11 22H2・Server 2019以降 |
| パスワード暗号化 | ADに平文で保存 | ADに暗号化して保存 |
| 対応アカウント | ローカルAdministratorのみ | 任意のローカルアカウント |
| Entra ID対応 | 非対応 | 対応 |
| 推奨状況 | 非推奨(Legacy) | 推奨 |
Windows 11・Windows Server 2022以降の環境ではWindows LAPSを使ってください。本記事ではWindows LAPSの手順を解説します。
LAPSの設定手順
Windows LAPSを有効化する(GPO設定)
Windows LAPSはGPOで有効化します。ADスキーマの拡張は不要です(Windows LAPSはOS組み込みのため)。
① ADスキーマを更新する(Windows LAPS用)
# DC上でADスキーマを更新する(管理者権限で実行)
Update-LapsADSchema
このコマンドでLAPSがパスワードを保存するためのAD属性が追加されます。ドメイン全体で1回だけ実行します。
② コンピューターオブジェクトへの権限を設定する
# 対象OUのコンピューターにLAPSのパスワード書き込み権限を付与する
Set-LapsADComputerSelfPermission -Identity "OU=Workstations,DC=nlab,DC=local"
このコマンドにより、端末が自分自身のパスワードをADに書き込めるようになります。
③ GPOでLAPSを有効化する
GPMCで新しいGPOを作成し、対象OUにリンクします。
コンピューターの構成
└── 管理用テンプレート
└── システム
└── LAPS
├── パスワード設定を構成する:有効
│ └── パスワードの長さ:15文字以上
│ └── パスワードの有効期間:30日
└── ローカル管理者アカウントのバックアップを有効にする:有効
└── 管理するアカウント名:Administrator
④ 端末側でGPOを適用する
# 端末側でGPOを更新する
gpupdate /force
GPO適用後、LAPSが自動的にパスワードを生成してADに書き込みます。
パスワードの確認方法
設定が完了すると、ADにパスワードが保存されます。確認方法は複数あります。
PowerShellで確認する(推奨)
# 特定端末のLAPSパスワードを確認する
Get-LapsADPassword -Identity "PC-001" -AsPlainText
# 有効期限もあわせて確認する
Get-LapsADPassword -Identity "PC-001" -AsPlainText |
Select-Object ComputerName, Account, Password, PasswordExpirationTime
ADUCで確認する
RSATのADUCを開き、対象のコンピューターオブジェクトの「属性エディター」からmsLAPS-Password属性を確認できます。
パスワードを手動でリセットする
# 次回GPO適用時にパスワードをリセットさせる
Reset-LapsPassword -Identity "PC-001"
# 即座にリセットする
Invoke-LapsPolicyProcessing
現場でよくある設定ミス
① パスワード閲覧権限を広げすぎている
「管理者なら全員見えていいだろう」という理由でLAPSパスワードの閲覧権限をDomain Admins全員に付与するケースがあります。LAPSパスワードを見られる人数は最小限にしてください。必要な端末のパスワードだけを必要な人だけが確認できるよう、OU単位で権限を絞ることを推奨します。
# 特定のグループにLAPSパスワードの読み取り権限を付与する
Set-LapsADReadPasswordPermission `
-Identity "OU=Workstations,DC=nlab,DC=local" `
-AllowedPrincipals "NLAB\HelpDesk"
② LAPSのパスワード取得ログを取っていない
誰がいつどの端末のLAPSパスワードを確認したかを記録していない現場があります。LAPSパスワードの取得はADの監査ログに記録されますが、デフォルトでは有効になっていません。監査ポリシーで「ディレクトリサービスのアクセス」を有効にして、パスワード取得の証跡を残してください。
③ 対象OUの設定漏れがある
GPOのリンク先OUに含まれていない端末にはLAPSが適用されません。「本社端末には設定したが、支社端末には適用していなかった」というケースがあります。LAPSのカバー範囲を定期的に確認してください。
# LAPSが適用されていない(パスワードが空の)端末を確認する
Get-ADComputer -Filter * -Properties msLAPS-Password |
Where-Object { $_.msLAPS-Password -eq $null } |
Select-Object Name
④ Legacy LAPSのまま放置している
以前導入したLegacy LAPSをそのまま使い続けているケースがあります。Legacy LAPSはパスワードをADに平文で保存するため、ADが侵害されると全端末のローカル管理者パスワードが一度に流出します。Windows LAPSへの移行を計画してください。
チェックリスト
導入前の確認
- 全端末のローカル管理者パスワードが統一されていないか確認した
- ドメイン参加済みの全端末の一覧を把握している
- Windows LAPSに対応したOSバージョンであることを確認した
設定の確認
-
Update-LapsADSchemaでADスキーマを更新した - 対象OUに
Set-LapsADComputerSelfPermissionで権限を付与した - GPOでLAPSを有効化し、パスワード長30文字・有効期限30日を設定した
-
Get-LapsADPasswordでパスワードが正常に保存されていることを確認した
運用の確認
- LAPSパスワードの閲覧権限を最小限のグループに絞っている
- パスワード取得の監査ログを有効にしている
- LAPSが適用されていない端末がないか定期的に確認している
- Legacy LAPSを使用している場合はWindows LAPSへの移行計画がある

まとめ
今日確認すべきことは1つです。全端末のローカル管理者パスワードが統一されていないか確認してください。
# ローカル管理者パスワードの統一状況を確認する(端末上で実行)
Get-LocalUser -Name "Administrator" |
Select-Object Name, PasswordLastSet, PasswordNeverExpires
パスワードの最終更新日が古い端末、または全端末で同じ更新日になっている場合はLAPSの導入を検討してください。
LAPSは横展開の被害範囲を限定する最も実践的な対策です。仮にハッシュが奪われても、端末ごとに異なるパスワードが設定されているため、被害が1台に留まります。gMSA・Credential Guard・LAPSの3つを組み合わせることで、ハッシュ攻撃への多層防御が完成します。
次のステップとして条件付きアクセスを設定することで、仮に認証情報が漏洩した場合でも不審なサインインをブロックできます。「条件付きアクセスの設計と実務ガイド」もあわせて参照してください。
あわせてご覧ください
- LSA ProtectionとCredential Guardとは?Pass-the-Hashが通じにくくなった理由を解説
- gMSAとは?設定手順と使いどころをわかりやすく解説
- KerberoastingとDCSyncの仕組みと防御策|AD攻撃の2大手法を解説
- AD特権アカウントの設計|Tier0保護と管理者アカウント分離の実務


コメント