Active Directory のユーザー アカウントでは、認証を行うためにパスワードを設定することができます。
ユーザー認証において、パスワードを連続して間違えるなど、他者による不正利用の危険がある場合、ユーザー アカウントを凍結して利用できないようにすることができます。アカウントが凍結することを「アカウント ロックアウト」と呼びます。アカウント ロックアウトの機能により、総当たり攻撃などのパスワード クラックによる不正アクセスを対処することができます。
今回は、Active Directory におけるアカウント ロックアウトの仕組みについて紹介します。
アカウント ロックアウトとは
Active Directory で管理されているアカウントを凍結させ、そのアカウントによるシステムへのログオンや使用を拒否することを「アカウント ロックアウト」と呼びます。
アカウント ロックアウトでは、パスワードを一定回数間違えるとアカウントを凍結されます。繰り返しパスワードを間違える状態は、悪意のある第三者が不正にアカウントを利用しようとする疑いがあります。アカウント ロックアウトの仕組みがあることで、総当たり攻撃によりパスワードを当てて、ログオンするという不正アクセスの行為を阻止することができます。
Active Directory ドメイン環境において、アカウント ロックアウトするまでの認証失敗の回数、ロックアウトの自動解除の時間など、アカウント ロックアウトに関する規則はアカウント ロックアウト ポリシーで定義することができます。アカウント ロックアウトされると、[Active Directory ユーザーとコンピューター] の管理コンソール上で、対象のアカウントのプロパティ画面は以下のように表示されます。
“このアカウントは現在、この Active Directory ドメイン コントローラーでロックアウトされています。“
管理者が手動でアカウント ロックアウトを解除する場合は、[アカウントのロックを解除する] のチェックボックスを有効にして、[適用] をクリックします。
アカウント ロックアウト ポリシー
Active Directory のユーザー アカウントのロックアウトの規則は、「アカウント ロックアウト ポリシー」で設定できます。Active Directory でのアカウント ロックアウト ポリシーは、グループ ポリシー管理エディターで設定することができます。
アカウント ポリシーを設定できるポリシーのパスは以下の通りです。
アカウントのロックアウトのしきい値
ロックアウト カウンターのリセット
ロックアウト期間
アカウント ロックとの仕組み
Active Directory ドメイン サービスでは、アカウントの認証の失敗回数を badPwdCount 属性でカウントしています。
ユーザーが誤ったパスワードでログオンを試行した場合、そのユーザーの認証は失敗し、badPwdCount 属性の値が 1 つインクリメントされます。アカウントの badPwdCount 属性の属性値が [アカウントのロックアウトのしきい値] で設定されている値以上になったら、アカウントはロックアウトされます。
Active Directory では、パスワードの変更は PDC エミュレーターに即時複製されます。PDC エミュレーターが持っていないドメイン コントローラーがクライアントから受け取った認証要求がパスワード間違いとなった場合、すぐに認証失敗とせずに、PDC エミュレーターへ認証要求を転送します。
PDC エミュレーターの役割や、アカウントの認証失敗時の動作については、以下の記事で紹介しています。
Active Directory ドメイン サービスを利用すると、システム管理者が各端末やユーザーを一元的に管理することができます。管理を担っているのがドメイン コントローラーというサーバーとなりますが、その中でも特別な役割をもったドメイン[…]
認証時のパスワードの検証
アカウントがロックアウトされるまでのフローと内部動作について紹介します。
- クライアント端末がドメイン コントローラーに認証要求を送信します。
- 認証要求を受け取ったドメイン コントローラーがパスワードを検証した結果、アカウントのパスワードが一致しないと判断したら、badPwdCount 属性の値を 1 つインクリメントします。
- 認証要求を受け取ったドメイン コントローラーにてパスワード間違いを検出しても、パスワードが更新されている可能性があります。そのため、最新のパスワードを保持している PDC エミュレーターの役割をもつドメイン コントローラーへ認証要求を転送します。
- 認証要求を受け取ったドメイン コントローラーがパスワードを検証した結果、アカウントのパスワードが一致しないと判断したら、badPwdCount 属性の値を 1 つインクリメントし、認証失敗の結果を応答します。
- badPwdCount 属性の値が [アカウントのロックアウトのしきい値] で定義されている値を超えたら、アカウントはロックアウトした状態となります。
- アカウントがロックアウトしたことは、同一サイト内のドメイン コントローラーへ緊急複製されます。別のサイトのドメイン コントローラーへは、通常の複製スケジュールに従って複製されます。
一般的な要因
アカウント ロックアウトが発生するのは、アカウントが連続してパスワード間違いによる認証要求が行われたことを意味します。不正利用が懸念されない状態で、意図せず何度もアカウント ロックアウトが発生する一般要因として、次のような原因が想定されます。
- 同じユーザー名のローカル ユーザーでログオンし、ローカル ユーザーの資格情報で認証が行われた
- サービス、タスク、アプリケーションに設定されている起動ユーザーに、誤ったパスワードが登録されている
- 資格情報マネージャーに不正なパスワードの資格情報が登録されている
- ログオン セッションが残ったまま、パスワードの変更が行われた
- ネットワーク ドライブの割り当てが行われたまま、パスワードの変更が行われた
有用な調査方法
予期しないアカウント ロックアウトが頻繁に発生する場合、まずは、どの端末から不正なパスワードで認証要求が送信されているのか確認する必要があります。認証失敗となった認証要求がどの端末から送信されているかは、ログオンの失敗の監査ログで確認することができます。
そのため、アカウント ロックアウトの調査として、以下のステップで調査を行います。
- 監査ログの有効化
- 監査ログより送信元のクライアント端末の特定
- クライアント端末の確認
詳細は以下の通りです。
① 監査ログの有効化
アカウント ロックアウトの調査に有効な監査ログを、ドメイン内の全てのドメイン コントローラーで有効にします。有効にする監査ポリシーは以下の通りです。
- アカウント ログオン イベントの監査
- アカウント管理の監査
- ログオン イベントの監査
上記の監査ログを有効にする監査ポリシーのパスは以下の通りです。
ポリシー: [アカウント ログオン イベントの監査]
[アカウント管理の監査]
[ログオン イベントの監査]
設定値: 成功、失敗
全てのドメイン コントローラーに適用されるように、”Default Domain Controllers Policy” などの GPO で監査ポリシーを設定することをおすすめします。
②監査ログより送信元のクライアント端末の特定
ドメイン内の全てのドメイン コントローラーにて、イベント ビューアーからセキュリティ イベント ログに記録されている監査ログを確認します。アカウント ロックアウトされたアカウントに関して、以下のイベント ID 4771 もしくはイベント ID 4776 の失敗の監査ログが記録されていないか確認します。
イベント ID 4771 または ID 4776 にて、ロックアウトの要因となった、認証要求を送信しているクライアント端末を特定します。また、アカウントがロックアウトしたことを示す成功の監査ログ ID 4740 にも、クライアント端末の情報が記録されるため、参考になります。
■ イベント ID 4771
イベント ID 4771 は、Kerberos 認証にて認証に失敗したことを示す監査ログです。イベント ログの説明に記載されている [アカウント情報] の項目に、認証の対象となるアカウント名、[ネットワーク情報] の項目に認証要求を送信したクライアント端末の IP アドレスの情報が記載されています。
ログの名前: Security
ソース: Microsoft-Windows-Security-Auditing
日付: YYYY/MM/DD HH:MM:SS
イベント ID: 4771
タスクのカテゴリ: Kerberos 認証サービス
レベル: 情報
キーワード: 失敗の監査
ユーザー: N/A
コンピューター: <コンピューター名>
説明:
Kerberos 事前認証に失敗しました。
アカウント情報:
セキュリティ ID: TEST01\user01
アカウント名: user01
サービス情報:
サービス名: krbtgt/TEST01
ネットワーク情報:
クライアント アドレス: ::ffff:192.168.1.10
クライアント ポート: 52805
追加情報:
チケット オプション: 0x40810010
エラー コード: 0x12
事前認証の種類: 0
証明書情報:
証明書発行者名:
証明書シリアル番号:
証明書拇印:
証明書情報は、事前認証に証明書が使用された場合にのみ表示されます。
事前認証の種類、チケット オプション、およびエラー コードは、RFC 4120 で定義されています。
チケットが伝送中に誤った形式になったり損傷したりして復号化できなかった場合は、このイベントの多数のフィールドが表示されなくなります。
■ イベント ID 4776
イベント ID 4776 は、NTLM 認証にて認証に失敗したことを示す監査ログです。イベント ログの説明に記載されている [ログオン アカウント] の項目に、認証の対象となるアカウント名、[ソース ワークステーション] の項目に認証要求を送信したクライアント端末のホスト名の情報が記載されています。
ログの名前: Security
ソース: Microsoft-Windows-Security-Auditing
日付: YYYY/MM/DD HH:MM:SS
イベント ID: 4776
タスクのカテゴリ: 資格情報の確認
レベル: 情報
キーワード: 失敗の監査
ユーザー: N/A
コンピューター: <コンピューター名>
説明:
コンピューターがアカウントの資格情報の確認を試行しました。
認証パッケージ: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
ログオン アカウント: user01
ソース ワークステーション: SV01
エラー コード: 0xC000006A
■ イベント ID 4740
イベント ID 4740 は、アカウントがロックアウトされたことを示す監査ログです。イベント ログの説明に記載されている [ロックアウトされたアカウント] の項目に、認証の対象となるアカウント名が記載されています。
ログの名前: Security
ソース: Microsoft-Windows-Security-Auditing
日付: YYYY/MM/DD HH:MM:SS
イベント ID: 4740
タスクのカテゴリ: ユーザー アカウント管理
レベル: 情報
キーワード: 成功の監査
ユーザー: N/A
コンピューター: <コンピューター名>
説明:
ユーザー アカウントがロックアウトされました。
サブジェクト:
セキュリティ ID: SYSTEM
アカウント名: TEST01DC01$
アカウント ドメイン: TEST01
ログオン ID: 0x3E7
ロックアウトされたアカウント:
セキュリティ ID: TEST01\user01
アカウント名: user01
追加情報:
呼び出し元コンピューター名: SV01
また、ドメイン内のログオンに関する監査ログについては、以下の記事でも紹介しております。
Active Directory ドメイン サービスを導入している環境においては、ユーザーの情報は全てドメイン コントローラー上で管理しています。ドメインで管理している Windows 端末にログオンする時は、ドメイン コントローラーに問い[…]
③クライアント端末の確認
誤ったパスワードで認証要求を送信しているクライアント端末にて、原因となるような設定がないか確認します。確認する項目については、上説した「一般的な要因」をご確認ください。