2021 年 11 月の Patch Tuesday に、Microsoft は Kerberos 向けの新しいセキュリティ更新プログラムをリリースしました。これには、新しいシステム イベントと、Kerberos Privileged Attribute Certificate (PAC) における新しい構造が含まれます。これらの更新が、運用や Kerberos チケットベース攻撃にどのような影響を与える可能性があるのかを見ていきましょう。
新しくなった点は?
標準的な Microsoft の更新により、新しい KB 記事とプロトコルの更新がいくつかあります。ここで重点的に取り上げるのは KB5008380 で、CVE-2021-42287 の更新内容を詳しく説明しています。
PACRequestorEnforcement レジストリ キー
この更新には、デプロイ(展開)フェーズと強制(施行)フェーズの両方があります。テストとスピードのために、強制の更新がリリースされる前であればいつでも強制を実装できます(現在の予定は 2022 年 7 月 12 日です)。
DWORD レジストリ キー PACRequestorEnforcement を HKEY_LOCAL_MACHINESystemCurrentControlSetServicesKdc に適用することで、パッチの動作を設定できます(ドメイン コントローラー上で実施してください)。
PACRequestorEnforcement には、次の値を指定できます。:
VALUE | BEHAVIOR |
|---|---|
|
0 |
Disabled — Reverts the update |
|
1 (default) |
Deployment — Adds the new PAC. If an authenticating user has the new PAC structure, the authentication is validated. |
|
2 |
Enforcement — Adds the new PAC. If an authenticating user does not have the new PAC, the authentication is denied. |
プロトコルの更新
2021年11月のアップデートには、Kerberos と Active Directory に対する複数のプロトコル更新も含まれていました。こちらで概要を確認できます。詳細については、errata を確認し、その後 errata に含まれる diff ドキュメントを見る必要があります。
更新された PAC 構造
Privileged Attribute Certificate は、認証済みユーザーの認可情報をエンコードするために使用されます。これには、グループ メンバーシップ、SID history、および一般的なユーザー情報が含まれます。2021年11月のアップデートで、Microsoft は PAC の内部に 2 つの新しいデータ構造 PAC_ATTRIBUTES_INFO と PAC_REQUESTOR を追加しました。PACRequestorEnforcement を 2 に設定すると、Kerberos チケットを成功させるためには、両方の新しいフィールドが必要になります。
更新の中でも特に興味深いのは、PAC_REQUESTOR 構造により導入された新しい検証です。この構造が Kerberos チケットに含まれると、KDC(ドメインコントローラー)は現在、クライアント名(cname)(ユーザー名とも呼ばれます)が、PAC_REQUESTOR 構造で使用されているのと同じ SID に解決されることを検証します。これは、クライアントと KDC が同一ドメインにある場合に限ります。一致しない場合は、使用された TGT が自動的に無効化され、使用できなくなります。 この現象は、クライアントと KDC が同一ドメインにある場合にのみ発生します。
これは Golden Tickets にとって何を意味しますか?
Golden Ticket は、攻撃者が PAC を操作することで、長期間にわたり高度に特権化されたリソースへのアクセスを得るために使用する、偽造された Kerberos チケットです。
強制モードが有効になっている場合、Golden Tickets を作成するツールは、ドメインコントローラーによる検証の対象となる PAC_REQUESTOR フィールドを使用する必要があります。つまり、すべてが同一ドメイン内にある場合は、存在しないユーザー向けの Golden Tickets はもはや作成できません。とはいえ、Trust Tickets(信頼を介して認証するために作られた Golden Tickets。検証が完了するのは、そのアカウントがドメインコントローラーと同一ドメインにある場合に限るため)では、存在しないユーザーを引き続き使用できる可能性があります。
新しいイベント(更新ノートで詳述されています)は、巧妙に作られていない、または更新されていないエクスプロイトのように、Golden Tickets のさらなる兆候を提供する可能性があります。これらの新しいイベントは、脅威検出に Windows のログを使用している場合は SIEM に収集する必要があります。以下の表では、さまざまなイベントを詳しく説明します:
Event ID | Name | Description |
|---|---|---|
|
38 |
Requestor Mismatch |
The new PAC_REQUESTOR structure was used but the client name (username) did not resolve to the SID used in PAC_REQUESTOR. |
|
37 |
Ticket without Requestor |
A service ticket was requested but the new PAC_REQUESTOR structure was not present. |
|
36 |
Ticket without a PAC |
A service ticket was requested but no PAC was present. |
|
35 |
|
The new PAC_ATTRIBUTE_INFO structure was not present in the PAC |
アップデートに関する問題
残念ながら、2021年11月のアップデートの初期リリースでは、特定の Kerberos delegation のシナリオが壊れてしまったため、この問題に直面しているお客様向けに新しいアウト・オブ・バンドのパッチがリリースされました。DirTeam の Sander Berkouwer がこの件について こちら に、利用可能な各 KB へのリンク付きで分かりやすい解説を載せています。
結論
これは良いアップデートであり、正しい方向への一歩ではありますが、Kerberos について Microsoft がさらなるプロトコル改善を続けてくれると嬉しいです。たとえば、信頼関係(trusts)全体で新しい PAC_REQUESTOR 構造を検証する(これにより、存在しないユーザーの Golden Tickets はすべて排除されるはずです)、PAC 内のメンバーシップが解決済みのユーザーのものになっていることを検証する、さらにユーザープロファイル内の情報が PAC に含まれているか、そして PAC の構造が準拠しているかまで検証できるとよいでしょう。より多くのネイティブな検知・防止機能を備えることは決して悪いことではなく、企業がより適切に自分たちを守るのに役立ちます。
共有する
もっと詳しく
著者について
Joe Dibley
セキュリティリサーチャー
Netwrix のセキュリティリサーチャーであり、Netwrix Security Research Team のメンバーです。Joe は Active Directory、Windows、およびさまざまなエンタープライズソフトウェアのプラットフォームとテクノロジーの専門家であり、新たなセキュリティリスク、複雑な攻撃手法、そしてそれに関連する緩和策と検知について研究しています。