computer account と gMSA
Active Directory の computer account は、単なる端末名ではなく security principal(セキュリティ主体)です。WEB01$ のように末尾 $ を持つ sAMAccountName で表され、パスワード、Kerberos key、NTLM 認証、group membership、ACL 上の権限を持ちます。
そのため、computer account の資格情報を得ると、LDAP/SMB/WinRM などに machine account として認証でき、付与されている AD 権限や group membership を利用できます。
事前作成された computer account
Section titled “事前作成された computer account”pre-created computer account は、実際に端末を domain join する前に AD 上へ作成された computer object です。レガシー互換や運用ミスにより、初期 password が予測しやすい値になることがあります。
代表的な危険パターン:
- computer account が作成されたまま、実際の domain join が行われていない。
- pre-Windows 2000 compatibility などにより、初期 password が小文字ホスト名に近い。
- stale computer object が無効化・削除されず、group membership や ACL を保持している。
例として APP01$ の初期 password が app01 のような形式になると、攻撃者は APP01$ として LDAP に認証できます。実際に domain join されて password がランダム化された後は、この前提は成立しません。
gMSA パスワードの読み取り権限
Section titled “gMSA パスワードの読み取り権限”gMSA(Group Managed Service Account)は、DC が managed password を管理する service account です。どの host や group が gMSA password を取得できるかは、主に msDS-GroupMSAMembership(PowerShell では PrincipalsAllowedToRetrieveManagedPassword)で制御されます。
実体は security descriptor ですが、概念的には次のように読めます。
gMSA object: msDS-GroupMSAMembership = WebServers
WebServers group: member = WEB01$
意味: WEB01$ は gMSA managed password を DC から取得できる。ここで重要なのは、許可リストに user だけでなく computer account や group が入る点です。侵害された computer account が許可 group の member なら、その account 経由で gMSA password blob を読み、NTLM hash や Kerberos key を得られる可能性があります。
権限を広げる経路
Section titled “権限を広げる経路”computer account と gMSA がつながる典型的な pivot は次の形です。
1. 弱い/未使用の computer account 資格情報を得る2. machine account として LDAP に認証する3. group membership を確認する4. gMSA password read が許可されていることを見つける5. gMSA の managed password を取得する6. gMSA の権限で WinRM/SMB/LDAP/Kerberos へ展開するgMSA 自体は安全な password rotation を提供しますが、「誰が password を取得できるか」が広すぎると強い pivot point になります。特に gMSA が Remote Management Users、管理用 group、委任設定、SPN を持つ場合は影響が大きくなります。
監査ポイント
Section titled “監査ポイント”- 未使用・stale な computer object が残っていないか。
ms-DS-MachineAccountQuotaが不要に高くないか。- computer account が高権限 group や gMSA password read group に入っていないか。
msDS-GroupMSAMembershipの trustee が最小限か。- gMSA が持つ group membership、SPN、delegation、local admin 権限が用途に合っているか。
- computer account 作成/変更イベント(例: 4741/4742)と group membership 変更イベント(例: 4728/4732/4756)を追跡しているか。
- pre-created computer account は domain join 完了まで期限管理し、不要になったら削除または無効化する。
- 初期 password を予測可能な値にしない。レガシー互換設定を不用意に使わない。
- gMSA password read は host 専用 group へ限定し、業務上必要な computer account だけを入れる。
- gMSA を remote management や高権限 group に入れる場合は、利用 host と監査ログを明確にする。
- stale computer object と stale group membership の棚卸しを定期化する。

