【図解】ADの特権グループとは?Domain Admins・Enterprise Admins・Operatorsの役割と守り方を初心者向けに解説

Active Directoryには、Domain Admins や Enterprise Admins のように、入っているだけでドメインやフォレストのほぼすべてを操作できるグループがあります。こうしたグループを「特権グループ」と呼びます。便利だからと何となくメンバーを増やしてしまうと、そのうちの1人のアカウントが盗まれただけで、ドメイン全体が乗っ取られます。この記事では、主な特権グループの役割と、なぜ守る必要があるのか、どう守ればよいのかを説明します。

この記事でわかること
  1. Enterprise Admins、Schema Admins、Domain Admins、Administrators、各種 Operators の役割と置き場所
  2. 特権グループのアカウントが盗まれると何が起きるのか
  3. 特権グループを守るための基本(ふだんは空にする、Tier モデル、Protected Users、AdminSDHolder)

特権グループとは

ADの管理者は、大きく2種類に分けて考えられています。DCそのものやADの設定を管理する「サービス管理者」と、ADに入っているユーザーや、ドメインに参加したサーバ・PCのデータを管理する「データ管理者」です。特権グループは、主にサービス管理者のためのグループで、メンバーになるとDCを自由に操作できます。

DCを操作できるということは、ドメインのすべてのアカウントのパスワードを変えたり、グループのメンバーを変えたり、グループポリシーで全部のPCに設定を配ったりできる、ということです。そのため、特権グループのメンバーのアカウントが盗まれたときの被害は、ふつうのアカウントとは比べものになりません。

一般ユーザー例:user01自分のPC自分のファイルサーバの管理者例:srvadmin担当のサーバサーバのデータDomain Admins例:admin01(メンバー)すべてのDC全アカウント全PC・サーバGPO盗まれたときに攻撃者が自由にできる範囲。Domain Admins は「ドメイン全体」になる
図1 アカウントが盗まれたときに影響が及ぶ範囲

攻撃者がADを狙うとき、最終的な目標になるのがこの特権グループです。どのグループがどれだけ強いのかを知っておくことが、守り方を考える出発点になります。

主な特権グループの置き場所

特権グループには、フォレストに1つだけあるものと、ドメインごとにあるものがあります。ここでは、本社ドメインがフォレストルート(最初に作ったドメイン)で、その下に大阪ドメインがある構成で見てみます。フォレストやドメインの関係は「グループの種類とスコープ」の記事で説明しています。

フォレスト(corp.example.com)本社ドメイン(フォレストルート)大阪ドメインフォレストに1つだけ(ルートにある)Enterprise AdminsSchema AdminsドメインごとにあるDomain AdminsAdministratorsビルトインDomain AdminsAdministratorsビルトインEnterprise Admins はすべてのドメインの Administrators に入る矢印:左のグループが右のグループのメンバーになっている(既定の入れ子)
図2 主な特権グループの置き場所と、既定の入れ子
グループスコープ
置き場所
できること
Enterprise Adminsユニバーサル
フォレストルートだけ
フォレスト全体の変更(子ドメインの追加など)。すべてのドメインの Administrators に入っている
Schema Adminsユニバーサル
フォレストルートだけ
スキーマ(ADに保存できるデータの形の定義)の変更
Domain Adminsグローバル
ドメインごと
ドメインの管理。同じドメインの Administrators と、ドメインに参加したすべてのコンピュータのローカルの Administrators に入っている
Administratorsビルトイン
ローカル
ドメインごと
ドメインのDCを完全に管理できる。ADのほとんどのオブジェクトの所有者
各種 Operatorsビルトイン
ローカル
ドメインごと
アカウント、DCの保守、バックアップ、プリンタなど、一部の管理作業を任せるためのグループ

Enterprise Admins、Schema Admins、Domain Admins、Administrators の既定のメンバーは、ドメインを作ったときにできる組み込みの Administrator アカウントです。

Enterprise Admins と Schema Admins:フォレスト全体の管理者

Enterprise Admins は、フォレストの全体に対する管理者です。フォレストルートにだけあり、すべてのドメインの Administrators グループに既定で入っています。そのため、大阪ドメインのDCも含めて、フォレストの中のすべてのDCを管理できます。

Schema Admins は、ADのスキーマを変更できるグループです。スキーマは、ユーザーやコンピュータなどのオブジェクトがどんな属性を持てるかを決める設計図で、フォレスト全体で1つです。Exchange Server の導入など、スキーマを拡張するときにしか使いません。

Domain Admins と Administrators:ドメインの管理者

Domain Admins は、ドメインの管理者です。ドメインごとにあり、本社の Domain Admins は本社ドメインを、大阪の Domain Admins は大阪ドメインを管理します。

Domain Admins本社ドメインDCAdministrators(ドメインの管理者グループ)FS01・WEB01ローカルの Administrators(ドメイン参加時に自動で入る)PC01・PC02ローカルの Administrators(ドメイン参加時に自動で入る)Domain Admins に入ると、ドメインの中のすべてのDC・サーバ・PCの管理者になる
図3 Domain Admins が届く範囲

Domain Admins は、同じドメインの Administrators グループに入っているので、DCを管理できます。さらに、PCやサーバをドメインに参加させると、Domain Admins がそのコンピュータのローカルの Administrators にも自動で入ります。つまり、Domain Admins のメンバーは、ドメインのすべてのDC、サーバ、PCの管理者です。

Administrators は、ADの Builtin コンテナにあるグループで、SIDは S-1-5-32-544 です。DCではドメインの管理者グループとして働き、ADのほとんどのオブジェクトの所有者になっています。Domain Admins や Enterprise Admins の権限の多くは、この Administrators に入っていることで得られています。

Operators と名の付くグループ

Builtin コンテナには、管理作業の一部だけを任せるためのグループもあります。名前だけ見ると権限が小さそうですが、どれもDCの上で強い力を持ちます。

Account Operatorsアカウントの管理ユーザー・グループを作成・変更DCにサインインできるServer OperatorsDCの保守DCのサービスの開始・停止DCのファイルを変更できるBackup Operatorsバックアップ権限に関係なく全ファイルをバックアップ・復元できるPrint OperatorsDCのプリンタ管理DCでドライバを読み込み・解除できるどれも既定ではメンバーなし。どれもDCの上で強い力を持ち、Microsoft の Tier モデルでもBackup Operators や Server Operators は Domain Admins と同じ最上位(Tier 0)に入る
図4 Operators と名の付く4つのグループ
グループ注意したい点
Account Operatorsほとんどのユーザーやグループを作成・変更でき、DCにローカルでサインインできる。管理者グループやそのメンバーは変更できない
Server OperatorsDCでサービスの開始・停止、共有の作成、バックアップと復元ができ、DCにインストールされたプログラムを変更できる
Backup Operatorsファイルのアクセス許可に関係なく、すべてのファイルをバックアップ・復元できる。DCでもバックアップと復元ができる
Print OperatorsDCに接続したプリンタを管理でき、すべてのDCでデバイスドライバを読み込み・解除できる。Microsoft もメンバーの追加には注意するよう書いている

4つとも、既定ではメンバーがいません。Microsoft の Tier モデル(後で説明します)でも、Backup Operators や Server Operators のような組み込みのグループは、Domain Admins と同じ最上位の Tier 0 に入っています。「Domain Admins ほどの権限は渡したくないから Operators に入れておこう」という使い方は、安全とは言えません。

ほかにも気を付けたいグループ

Group Policy Creator Owners(グループポリシーを作成・編集できる)のように、メンバーになると多くのPCに影響を与えられるグループはほかにもあります。グループの一覧と既定の権利は、Microsoft の「Active Directory security groups」にまとまっています。自分の環境でどのグループにだれが入っているかを、一度確かめておくと安心です。

なぜ守る必要があるのか

特権グループのアカウントが盗まれる典型的な流れは、次のようなものです。

① 攻撃者が一般ユーザーの PC02 に入り込むPC02② 管理者が admin01(Domain Admins)で PC02 にサインインadmin01PC02PC02 のメモリにadmin01 の資格情報が残る③ 攻撃者が資格情報を盗み、DC を乗っ取るadmin01 としてDC防ぐには・特権グループは、ふだん空にする・管理用と普段用のアカウントを分ける・Domain Admins で一般PCや メンバーサーバにサインインしない・管理作業は管理専用のPCから・特権グループのメンバーの変更を 監視する
図5 特権アカウントが盗まれる典型的な流れ

Windowsにサインインすると、そのPCのメモリ(LSASS)には、シングルサインオンのための資格情報が残ります。攻撃者がすでに入り込んでいるPCに、管理者が Domain Admins のアカウントでサインインしてしまうと、その資格情報を盗まれ、攻撃者は Domain Admins としてDCを操作できるようになります。資格情報がメモリに残るしくみは「LSASS・SSPI・Negotiate」の記事で説明しています。

つまり、特権グループを守るとは、「特権アカウントの資格情報を、信頼できない場所に置かない」ことです。そのための考え方が、次の Tier モデルです。

Tier モデル

Microsoft は、AD の資産と管理者を3つの階層(Tier)に分けて、階層をまたいで資格情報を使わないようにする「Tier モデル」を勧めています。

Tier 0ID の中枢DC・AD CS・Entra Connect・Domain Admins などTier 1サーバとアプリメンバーサーバ(FS01・WEB01)、サーバ管理者Tier 2利用者の端末PC01・PC02、ヘルプデスク守るルール上の Tier のアカウントで下の Tier にサインインしない管理者は Tier ごとに別のアカウントと、その Tier 専用の管理用PC(PAW)を使う
図6 AD の Tier モデル
Tier入るもの
Tier 0ID の中枢。DC、AD CS、AD FS、Microsoft Entra Connect、Domain Admins などの管理アカウントとグループ(Backup Operators や Server Operators を含む)、DCを管理するバックアップや監視のしくみ
Tier 1メンバーサーバ、Exchange や SQL Server などのサーバアプリ、業務アプリと、その管理者
Tier 2利用者のPCやスマートフォンと、ヘルプデスクなどの管理者

ルールはシンプルで、上の Tier のアカウントで、下の Tier のコンピュータにサインインしません。図5の例では、Tier 0 の admin01 で Tier 2 の PC02 にサインインしたことが問題でした。管理作業は、その Tier 専用に用意した管理用のPC(PAW:特権アクセスワークステーション)から行います。Microsoft は、Domain Admins と同じ強さの権限を持つ人を5人未満に抑えることを、よくある目安として挙げています。

特権グループの守り方

Microsoft のドキュメントに書かれている守り方のうち、基本になるものを挙げます。

やること内容
ふだんは空にしておくEnterprise Admins、Domain Admins、Administrators には、ふだん使うアカウントを入れない(守りを固めた組み込みの Administrator だけは残してよい)。必要なときだけ一時的に入れて、作業が終わったらすぐ外す
アカウントを分ける管理者には、メールやWebを使う普段用のアカウントとは別に、管理用のアカウントを1人1つずつ用意する。管理用のアカウントは共有しない
一般のPCやサーバにサインインさせないメンバーサーバとPCのOUにリンクしたGPOで、Domain Admins などを「ネットワーク経由のアクセスを拒否」「ローカルログオンを拒否」「リモートデスクトップ経由のログオンを拒否」などのユーザー権利に入れる
Operators は空のままにする既定どおりメンバーを空にしておく。メンバーを入れる場合は、Domain Admins と同じ Tier 0 のアカウントとして扱う
既定の入れ子は変えないDomain Admins をローカルの Administrators から外したり、Enterprise Admins を各ドメインの Administrators から外したりしない。障害から戻すときに必要になる
変更を監視する特権グループのメンバーやプロパティが変わったら通知されるように監査を設定する

Protected Users グループ

Protected Users は、メンバーの資格情報が盗まれにくくなるように、認証のやり方を強制的に絞るグループです。特権アカウントを入れておくと、図5のような盗難に強くなります。

メンバーになると内容
NTLM などが使えないNTLM、ダイジェスト認証、CredSSP では認証できない。Kerberos だけになる
弱い暗号を使わないKerberos の事前認証で DES や RC4 を使わず、AES だけを使う
委任されないKerberos の制約付き委任・制約なし委任の対象にならない
チケットの寿命が短いTGT の有効期間が4時間になり、4時間ごとに認証し直す
資格情報を残さないWindows 8.1 以降のPCでは、パスワードがキャッシュされない

ただし、この制限には抜け道がありません。Domain Admins のメンバーを全員いきなり入れると、NTLMしか使えない場面などで全員がサインインできなくなるおそれがあります。Microsoft も、影響を十分に試してから入れるよう注意しています。サービス用のアカウントやコンピュータアカウントは、入れても守れないので入れません。

AdminSDHolder と SDProp

特権グループは、AD の中でもう1つの仕掛けに守られています。それが AdminSDHolder と SDProp です。

PDCエミュレータのDCAdminSDHolder正しいアクセス許可の「ひな形」CN=System の下にあるSDProp既定で60分ごとに上書きDomain AdminsEnterprise AdminsAdministratorsAccount Operators などこれらのメンバーのユーザーひな形と違うアクセス許可が付いていたら、ひな形どおりに上書きして戻す(継承もオフにする)→ だれかが Domain Admins に「メンバーを変更できる」許可をこっそり足しても、60分以内に消える保護の対象になったアカウントやグループには、adminCount = 1 という目印が付く
図7 AdminSDHolder と SDProp

AdminSDHolder は、各ドメインの CN=System の下にあるオブジェクトで、特権グループとそのメンバーに付けるべきアクセス許可の「ひな形」を持っています。PDCエミュレータの役割を持つDCでは、SDProp という処理が既定で60分ごとに動き、保護の対象になっているグループとアカウントのアクセス許可を、ひな形と比べます。違っていれば、ひな形どおりに上書きして戻します。

保護の対象は、Domain Admins、Enterprise Admins、Schema Admins、Administrators、Account・Backup・Print・Server の各 Operators、Domain Controllers、krbtgt などです。たとえ攻撃者が Domain Admins グループに「メンバーを変更できる」というアクセス許可をこっそり足しても、次に SDProp が動いた時点で消えます。

特権グループから外したのに設定が戻らないとき

保護の対象になったアカウントには adminCount という属性が 1 で付き、アクセス許可の継承がオフになります。ヘルプデスクに委任したパスワードリセットが一部のユーザーだけ効かない、といったときは、そのユーザーが過去に特権グループに入っていなかったかを確かめてみてください。

確認に使うコマンド

管理用PC(PowerShell):Domain Admins のメンバーを、入れ子もたどって表示する

Get-ADGroupMember -Identity "Domain Admins" -Recursive | Select-Object Name, objectClass

管理用PC(PowerShell):フォレストルートの Enterprise Admins と Schema Admins のメンバーを表示する

Get-ADGroupMember -Identity "Enterprise Admins" -Recursive -Server corp.example.com | Select-Object Name
Get-ADGroupMember -Identity "Schema Admins" -Recursive -Server corp.example.com | Select-Object Name

管理用PC(PowerShell):ドメインの Administrators のメンバーを表示する

Get-ADGroupMember -Identity "Administrators" -Recursive | Select-Object Name, objectClass

管理用PC(PowerShell):Operators の4つのグループが空かどうかを確かめる

"Account Operators", "Server Operators", "Backup Operators", "Print Operators" | ForEach-Object { $_; Get-ADGroupMember -Identity $_ | Select-Object Name }

管理用PC(PowerShell):AdminSDHolder の保護の対象になっているユーザーを表示する

Get-ADUser -Filter 'adminCount -eq 1' | Select-Object Name

管理用PC(PowerShell):管理用のアカウントを Protected Users に入れる

Add-ADGroupMember -Identity "Protected Users" -Members admin01

メンバーサーバ(コマンドプロンプト):そのコンピュータのローカルの Administrators のメンバーを表示する

net localgroup Administrators

特権グループのメンバーの変更は、DCのセキュリティログに記録されます。グローバルグループ(Domain Admins など)への追加はイベントID 4728、ローカルグループ(Administrators など)への追加は 4732、ユニバーサルグループ(Enterprise Admins など)への追加は 4756 です。記録するには、「セキュリティグループの管理」の監査を有効にします。

まとめ

項目ひとことで
Enterprise Adminsフォレスト全体の管理者。ルートにだけあり、すべてのドメインの Administrators に入っている
Schema Adminsスキーマを変更できる。スキーマを拡張するときだけ使う
Domain Adminsドメインの管理者。DCと、ドメインに参加したすべてのサーバ・PCの管理者になる
AdministratorsDCを完全に管理できるビルトインのグループ。ADのほとんどのオブジェクトの所有者
各種 Operators名前に反してDCの上で強い力を持つ。既定どおり空にしておく
守り方ふだんは空にする、管理用アカウントを分ける、上の Tier のアカウントで下の Tier にサインインしない、Protected Users を試して使う、変更を監視する
AdminSDHolder特権グループとそのメンバーのアクセス許可を、60分ごとにひな形どおりに戻すしくみ

特権グループは「入れておくと便利なグループ」ではなく、「必要なときだけ、決まった場所から使うグループ」です。まずは Domain Admins と Operators のメンバーを確かめ、ふだん使っているアカウントが入っていないかを見てみてください。

コメント