過去に大規模な情報漏えい事件の要因にもなった「PCのローカル管理者パスワード」を効率的に管理するためのツール「Local Administrator Password Solution(LAPS)」の使い方を紹介します。
2015年、日本年金機構において大規模な個人情報漏えい事件が発生しました。その詳細は2015年8月20日に内閣サイバーセキュリティセンターが発表した「日本年金機構の個人情報流出事案に関する原因究明調査結果(pdf)」にまとめられています。この報告書の中で、短時間に広範囲の端末へ被害が拡大した技術的要因の1つは、「ローカル管理者権限のID・パスワードが同一であったことを悪用されたこと」にあったとされています。
多くの組織において導入されているWindowsのActive Directoryでは、ドメインのユーザーアカウントのパスワードを管理しています。一方で、利用者のPCの“ローカル管理者アカウント”は、「セットアップ時に使用したものがそのまま放置されている」「セットアップ時に、複数のPCで同一のものが使用される」、あるいは「ヘルプ対応のための窓口アカウントとして、ヘルプデスクチームが利用するために残されている」といったように、情報システム部門で管理できていない場合があります。冒頭に挙げた日本年金機構のケースでも、この点が被害拡大の技術的要因として挙げられています。
では、ローカル管理者アカウントのパスワードを適切に管理する方法はないのでしょうか? 本稿では、マイクロソフトが提供している「Local Administrator Password Solution」(以下、LAPS)を使ったパスワード管理の手法を紹介します。LAPSをドメイン環境へ導入することにより、ローカルの管理者権限アカウントのパスワードが、定期的に自動で変更されるようになります。また、LAPSではドメインのグループポリシーを用いることが可能であるため、組織全体として上記の問題を緩和することができます。
なお、マイクロソフトによるLAPSに関するサポートは、マイクロソフトの「Premier サポート」サービスの加入者を対象に提供されます。
それでは、LAPSの具体的な設定方法を見ていきましょう。
ドメイン環境へのLAPSを導入する際のフローは、以下のようになります。
以下で、それぞれの手順について詳しく解説します。
LAPSで管理したいPC(以下、クライアント)を、1つのOU(Organizational Unit)へ登録するなど、管理する対象を決めておきます。本稿の例では、OU名“TestOU”に格納された“Victim7x64”をLAPSの適用対象としています。
ダウンロードしたLAPSのインストーラーを、クライアントと、クライアントを管理する側のPC(以下、マネジャー)上で実行し、インストールを実施します。なお、LAPSの動作には「Windows PowerShell 2.0」以上と、「Microsoft .NET Framework 4.0」が必要です。また、ドメインのクライアントに対してLAPSをインストールする際には、ソフトウェア配布のポリシーを利用すると効率的です。
インストーラーを起動すると、途中、インストールするコンポーネントの選択画面が表示されますが、クライアント側では「AdmPwd GPO Extension」を選択し、マネジャー側では「Management Tools」を選択します。
ドメインに、クライアント(AdmPwd GPO ExtensionをインストールしたPC)のパスワード情報と有効期限を格納するために、Active Directory上で、クライアントのコンピューターアカウントのスキーマ拡張を行います。スキーマを拡張するには、ドメインコントローラー上でPowerShellを管理者権限で起動し、以下のコマンドを実行します。
Import-module AdmPwd.PS Update-AdmPwdADSchema
これにより、コンピューターアカウントのスキーマに「ms-Mcs-AdmPwd」と「ms-Mcs-AdmPwdExpirationTime」という2つの属性が拡張されます。次に、クライアントが登録されているOUに対して、上記の2つの属性への書き込み権限を付与します。以下のコマンド例では、“TestOU”というOUに対して権限を付与しています。
Set-AdmPwdComputerSelfPermission -OrgUnit "OUname" l_Schemeset02.png
次に、先の2つの属性への書き込みを許可するユーザー(またはグループ)に権限を付与します。以下のコマンド実行例では、“Srvadm”グループに対して、“TestOU”への書き込み権限を付与しています。なお、デフォルトではこれら2つの属性に対して、「Domain Admins」グループと「Enterprise Admins」グループに書き込み権限が与えられています。これらのグループ(またはグループに所属するユーザー)を利用して管理を行う場合は、以下のコマンドを実行する必要はありません。
(1行で実行) Set-AdmPwdReadPasswordPermission -OrgUnit “OUname” -AllowedPrincipals “ユーザーまたはグループ“
設定が反映されたかどうかを確認するには、以下のコマンドを実行します(コマンド実行例は、設定値が反映された箇所のみを抽出する書式になっています)。
Find-AdmPwdExtendedRights -Identity “OUname”
「Management Tools」をインストールしたマネジャー側のPCには、LAPS用のグループポリシーオブジェクトのテンプレートが追加されます。このポリシーを利用し、特定のクライアントに対してLAPSのポリシーを適用します。LAPSのポリシーは、「グループ ポリシー管理エディター」の、「コンピューターの構成」―「ポリシー」―「管理テンプレート」―「LAPS」にあります。各ポリシーでは、以下の項目を設定することができます。
LAPSを有効化するためには、「Enable local admin password management」を有効にする必要があります。
4のポリシー設定後、「gpupdate」コマンドなどを利用してクライアントへポリシーを反映します。
LAPS導入後、クライアント側のPCのローカル管理者アカウントのパスワードは、ドメインコントローラーによりコンピューターアカウントにひも付けて管理されるようになります。ローカルの管理者権限アカウントの設定内容は、「Active DirectoryユーザーとPC」の「表示」メニューから「拡張機能」を有効にした後、コンピューターアカウントの「属性エディター」タブより確認できます。拡張した属性「ms-Mcs-AdmPwd」にローカル管理者アカウントのパスワードが平文で、「ms-Mcs-AdmPwdExpirationTime」にパスワードの有効期限がWindowsのFILETIME形式で保存されます。
これで、有効期限が過ぎ、クライアントが再起動したタイミングで、ローカルの管理者パスワードは自動的に変更されるようになります。
次回は、LAPSによりローカルの管理者パスワードが変更された際の、ログの取得方法を紹介します。
泉田 幸宏(いずみた ゆきひろ)
ソフトバンク・テクノロジー株式会社。
現役のペネトレーションテスター。官公庁、民間を問わず、多数の検査実績を持つ。
Active Directoryサーバに特化した診断などの、ネットワーク診断サービスに従事。
日々脆弱(ぜいじゃく)性の情報をチェックしつつ、「被害想定が大きい」「攻撃が容易」といった攻撃手法が公開された場合は検証を行い、時にソフトバンク・テクノロジーのレポートとして公開を行っている。
Copyright © ITmedia, Inc. All Rights Reserved.