0Pricing
Cloud & IT Cert Prep · レッスン

ディレクトリサービス:LDAPとActive Directory

LDAPディレクトリとActive Directoryがユーザー、グループ、コンピューターを整理する方法と、Group Policyによって大規模にセキュリティ設定を適用する方法を理解します。

「ディレクトリサービス:LDAPとActive Directory」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

ディレクトリサービスとは

ディレクトリサービスは、ユーザー、グループ、コンピューター、プリンター、ポリシーなど、ネットワークリソースに関する情報を一元的に保存・整理するリポジトリです。組織は各システムで個別にユーザーデータベースを管理するのではなく、ディレクトリサービスをID情報の信頼できる唯一の情報源として使用します。すべての認証要求はディレクトリに対して検証され、アクセス ポリシーは組織全体で一貫して適用されます。

LDAP:Lightweight Directory Access Protocol

LDAP(Lightweight Directory Access Protocol)は、ディレクトリサービスの検索と変更に使われる業界標準プロトコルです。LDAPはエントリをDirectory Information Tree(DIT)と呼ばれる階層ツリーに整理し、各エントリをDistinguished Name(DN)で識別します。LDAPはポート389(平文)とポート636(LDAPS — TLS over LDAP)で動作します。LDAPはプロトコルであり、ディレクトリ自体は別の製品です。

# LDAP Distinguished Name structure
cn=John Smith,ou=Engineers,dc=corp,dc=example,dc=com

# cn  = Common Name (user's name)
# ou  = Organizational Unit
# dc  = Domain Component

# LDAP search query example
ldapsearch -H ldap://dc.corp.example.com \
  -b 'dc=corp,dc=example,dc=com' \
  '(sAMAccountName=jsmith)' mail memberOf

Active Directoryのアーキテクチャ

Active Directory(AD)は、LDAPとKerberosを基盤とするMicrosoftのエンタープライズ向けディレクトリサービスです。リソースをドメインに整理し、ドメインがツリーに、ツリーがフォレストにまとまります。ドメインコントローラー(DC)はADデータベース(NTDS.dit)をホストし、認証を処理します。ADは、ほとんどのWindowsエンタープライズ環境におけるID管理の中核です。

# Active Directory hierarchy
# Forest: corp.example.com (trust boundary)
#   Tree: corp.example.com
#     Domain: corp.example.com
#       OU: Engineering
#         User: jsmith
#         Group: Dev-Team
#       OU: Finance
#         Computer: FIN-PC-01

Active DirectoryにおけるKerberos認証

Active Directoryは、デフォルトの認証プロトコルとしてKerberosを使用します。この処理はチケット付与によって行われます。クライアントがKey Distribution Center(KDC)に対して認証を行い、Ticket-Granting Ticket(TGT)を受け取ります。ユーザーがリソースにアクセスする必要がある場合、TGTを提示して、そのリソース専用のService Ticketを取得します。パスワードがネットワーク上で送信されることはなく、暗号化されたチケットだけが送信されます。この設計は、Kerberoastingなどの攻撃を理解するうえで中心的な要素です。

# Kerberos authentication flow (simplified)
# 1. Client -> KDC: Authentication Request (AS-REQ)
# 2. KDC  -> Client: Ticket-Granting Ticket (AS-REP)
# 3. Client -> KDC: Service Ticket Request (TGS-REQ) + TGT
# 4. KDC  -> Client: Service Ticket (TGS-REP)
# 5. Client -> Server: Access Request + Service Ticket
# 6. Server validates ticket -> Access granted

グループポリシーオブジェクト(GPO)

グループポリシーオブジェクト(GPO)は、数千台のマシンにセキュリティ設定を同時に適用するためのADの仕組みです。GPOでは、パスワードの複雑性要件、画面ロックのタイムアウト、ソフトウェアのインストール、ファイアウォールルール、レジストリ設定などを構成できます。GPOはADコンテナー(サイト、ドメイン、OU)にリンクされ、そのコンテナー内のすべてのユーザーとコンピューターに適用されます。GPO設定はデフォルトで90分ごとに更新されるため、ポリシーから逸脱したマシンでもコンプライアンスを維持できます。

# Common GPO security settings
# Computer Configuration -> Windows Settings -> Security Settings:
#   Password Policy:
#     - Minimum password length: 14
#     - Password complexity: Enabled
#     - Maximum password age: 90 days
#   Account Lockout Policy:
#     - Lockout threshold: 5 attempts
#     - Lockout duration: 30 minutes

ADセキュリティグループと最小権限

Active Directoryは、アクセス権限をまとめて管理するためにセキュリティグループを使用します。管理者は個々のユーザーに権限を割り当てるのではなく、グループに権限を付与し、適切なグループにユーザーを追加します。Security+で理解しておくべき主な組み込みグループには、Domain Admins(ドメイン全体を完全に制御)、Enterprise Admins(フォレスト全体を制御)、Schema Admins(ADスキーマを変更)、Administrators(ローカルマシンの管理者)があります。これらの高権限グループへの所属は厳格に管理する必要があります。

LDAPインジェクション攻撃

LDAPインジェクションは、ディレクトリサービスにおけるSQLインジェクションに相当します。攻撃者は、ユーザー入力がLDAPフィルターに直接連結される処理に、特殊文字(*、(、)、\、NUL)を挿入してLDAPクエリを操作します。攻撃に成功すると、認証をバイパスしたり、すべてのディレクトリエントリを抽出したり、ディレクトリオブジェクトを変更したりできます。防止するには、入力検証を行い、文字列連結ではなくパラメーター化されたLDAP APIを使用する必要があります。

# Vulnerable LDAP filter (DO NOT use)
filter = '(uid=' + user_input + ')'
# Attacker input: *)(&
# Result: (uid=*)(&) -- returns ALL users

# Defense: escape special chars before including in filter
# LDAP special chars: ( ) * \ NUL
# Use LDAP library escaping functions

ADレプリケーションとドメインコントローラー

企業では、冗長性と地理的な分散配置のために複数のドメインコントローラーを導入します。ADレプリケーションは、Directory Replication Service(DRS)を使用してすべてのDCを同期します。攻撃者はこのレプリケーションをDCSync攻撃に悪用します。レプリケーション権限を使い、実際にはログオンせずにDCからすべてのパスワードハッシュを要求する攻撃です。レプリケーション権限の保護は、ADを強化するうえで重要な手順です。

# DCSync attack detection query (PowerShell)
# Detect accounts with dangerous replication permissions:
Get-ObjectAcl -DistinguishedName 'DC=corp,DC=example,DC=com' |
  Where-Object { $_.ActiveDirectoryRights -match 'DS-Replication' } |
  Select-Object IdentityReference, ActiveDirectoryRights

LDAPのセキュリティ保護:LDAPSと署名

ポート389の平文LDAPでは、バインド資格情報を含むデータがクリアテキストで送信されるため、傍受される危険があります。組織では、すべてのディレクトリトラフィックを暗号化するため、ポート636のLDAPS(TLS経由のLDAP)を必須にする必要があります。さらに、攻撃者がLDAP認証メッセージを傍受して再送し、不正アクセスを得るリレー攻撃を防ぐため、LDAP署名とチャネルバインディングも必須にする必要があります。

# Verify LDAP signing requirement (Windows)
# Registry key:
# HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
# LDAPServerIntegrity = 2 (Require signing)

# Or via GPO:
# Security Settings -> Local Policies -> Security Options
# 'Domain controller: LDAP server signing requirements' = Require signing

Active Directoryの攻撃対象領域:よくある設定ミス

Active Directory環境では、何年も運用するうちに設定ミスが蓄積していきます。ADにおける一般的なセキュリティ上の弱点には、制約のない委任(任意のユーザーへのなりすましを許してしまいます)、脆弱なパスワードを持つKerberoast可能なサービスアカウント、AS-REP roastingの対象(事前認証が無効になっているアカウント)、過剰なDomain Adminメンバーシップ、そして隠れた特権権限を付与するAdminSDHolderの設定ミスなどがあります。BloodHoundなどのツールを使った定期的なADセキュリティ評価により、こうした経路を特定できます。

LDAPとActive Directoryのまとめ

関係を明確にすると、LDAPはディレクトリと通信するためのプロトコルです(HTTPがWebサーバーとの通信に使われるのと同じです)。Active Directoryは、アクセスプロトコルとしてLDAPを使用するMicrosoftのディレクトリサービス製品です。その他のLDAP互換ディレクトリには、OpenLDAP(オープンソース)、Oracle Directory Server、Red Hat Directory Serverなどがあります。いずれもLDAPクエリを使用しますが、管理インターフェースや追加の独自機能はそれぞれ異なります。

理解度チェック

このレッスンで学んだCompTIA Security+(SY0-701)の概念について、理解度を確認しましょう。

レッスンのまとめ

このレッスンでは、LDAPは、階層ツリー内の識別名を使ってディレクトリサービスにクエリを実行するプロトコルであること、Active Directoryは認証にKerberosを使用し、GPOによってドメイン全体にセキュリティ設定を適用すること、そして傍受攻撃やリレー攻撃を防ぐため、ポート636のLDAPSとLDAP署名を必須にする必要があることを学びました。次は、特権アクセス管理(PAM)について学びます。

よくある質問

「ディレクトリサービス:LDAPとActive Directory」レッスンは無料ですか?

はい。「ディレクトリサービス:LDAPとActive Directory」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

「ディレクトリサービス:LDAPとActive Directory」で何を学びますか?

LDAPディレクトリとActive Directoryがユーザー、グループ、コンピューターを整理する方法と、Group Policyによって大規模にセキュリティ設定を適用する方法を理解します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cloud & IT Cert Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ディレクトリサービス:LDAPとActive Directory」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?

はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ディレクトリサービス:LDAPとActive Directory
  2. 特権アクセス管理(PAM)
  3. IDガバナンスとプロビジョニング
  4. ジャストインタイムアクセスと条件付きアクセスポリシー
← Cloud & IT Cert Prepに戻る