CVE-2021-42287 で追加されたイベント メッセージ ID 35 , 37 と脆弱性対応の流れについて

Last Update: feedback 共有

※※ 2022/4/13更新 
※※ ・「[3] 既知の不具合について」修正リリースに伴い、更新いたしました。必ずご一読いただきますようお願い致します。
※※ ・ 第二展開フェーズ、強制フェーズのスケジュール延期に伴い、更新いたしました。

本記事はマイクロソフト社員によって公開されております。

こんにちは。Windows Commercial Support Directory Services チームです。 
2021 年 11 月にリリースされた更新プログラムをドメイン コントローラーへ適用した後、システム イベント ログに Microsoft-Windows-Kerberos-Key-Distribution-Center ID 35 と ID 37 が記録されるようになったというお問い合わせをいただいております。

今回は、これらのイベント メッセージ と CVE-2021-42287 の脆弱性対応の流れについてご案内させていただきます。

// 本脆弱性に関する参考情報
Active Directory Domain Services Elevation of Privilege Vulnerability
KB5008380—Authentication updates (CVE-2021-42287)

イベント メッセージ ID 35 と 37 について

これらのイベント メッセージは、 2021 年 11 月にリリースされたセキュリティ更新プログラムに含まれる “CVE-2021-42287” の脆弱性対応で追加されたものとなります。

■ Microsoft-Windows-Kerberos-Key-Distribution-Center ID 35

ログの名前:         System
ソース:           Microsoft-Windows-Kerberos-Key-Distribution-Center
イベント ID:       35
タスクのカテゴリ:      なし
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       <ドメイン コントローラー>
説明:
キー配布センター (KDC) は、PAC 属性フィールドを含まない別の KDC (<KDC Name>) からのチケット許可チケット (TGT) を
検出しました。詳細については、https://go.microsoft.com/fwlink/?linkid=2173051 を参照してください。  

■ Microsoft-Windows-Kerberos-Key-Distribution-Center ID 37

ログの名前:         System
ソース:           Microsoft-Windows-Kerberos-Key-Distribution-Center
イベント ID:       37
タスクのカテゴリ:      なし
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       <ドメイン コントローラー>
説明:
キー配布センター (KDC) が、別のチケットの要求を処理しているときにチケットを要求したアカウントに関する情報を含まない
チケットを検出しました。そのため、セキュリティー チェックが実行されず、セキュリティの脆弱性が開かれる可能性があります。
詳細については、https://go.microsoft.com/fwlink/?linkid=2173051 を参照してください。
 チケット PAC の構成: <KDC Name>  
 クライアント: <Domain Name>\<Client Name>  
 チケットの対象: <Service Name> 


CVE-2021-42287 の脆弱性対応では、ドメイン コントローラーがクライアントに Kerberos Ticket-Granting Tickets (TGT) を発行する際に、TGT の PAC フィールドに "要求元" の情報を追加するようになりました。 その後、クライアントが TGT を使ってドメイン コントローラーへサービス チケットを要求した際、クライアントから受け取った TGT の "要求元" 情報を検証する動作となっております。

イベント メッセージ ID 35, 37 は、この検証を行った際、TGT に “要求元” などの情報が含まれていなかった場合に記録されるものとなります。そのため、すべてのドメイン コントローラーに 2021 年 11 月の更新プログラムを適用した後、特に 1 週間ほどは、クライアントに残存している古い TGT の影響で頻繁にイベント メッセージが記録される場合がございますが、これらのイベント メッセージが記録されていたとしても、ドメイン コントローラーが CVE-2021-42287 の “強制モード” に移行しない限り、直ちに問題になることはございません。

ただし、CVE-2021-42287 の対応方針として、2022 年 10 月 11 日リリース予定の更新プログラムで “強制モード” に移行する予定となります。”強制モード” に移行すると、上記イベント メッセージが記録されている TGT はすべて拒否される動作となり、Kerberos 認証に失敗することが想定されます。

そのため、強制モードに移行する前に、以下の流れに沿って対応を進めていただきますようお願い申し上げます。


[1] 本脆弱性への対処の流れについて

本脆弱性に対しては、以下のような流れで対処をおこないます。

1 ) すべてのドメイン コントローラーに 2021 年 11 月 9 日 の更新プログラムをインストールします。
※ 併せて、「[3] 既知の不具合について」が修正された更新プログラムの適用もご検討ください

2 ) すべての ドメイン コントローラーに更新プログラムを適用した後、最低 7 日間 ( チケットの有効期間 ) 以上、運用してください。

3-1) 7 日以上運用した後から、ドメイン コントローラーに システム イベント ログに ID 35、36、37、38 のメッセージ出力がないか監視します。

※ 7 日以内に出力されるイベント メッセージは、古い Kerberos チケットが残存している影響の可能性がございますので、無視してください
※ イベント メッセージのサンプルは「[4] 追加されたイベント メッセージについて」をご確認ください

3-2) システム イベント ログ に ID 35、36、37、38 が出力されない場合でも、新しい PAC に対応していないサード パーティ製品が
ドメイン コントローラー から新しい PAC を含む TGT を受け取った際に、サード パーティ製品の実装によっては影響が発生する可能性がございます。
Kerberos 認証をするサード パーティ製品が存在している場合は、ドメイン コントローラー に更新プログラムを適用した後、Kerberos 認証が問題なく行えることを別途ご確認ください。

4 ) 3-1) , 3-2) が問題ないことを確認した後、すべてのドメイン コントローラーで以下のレジストリを設定し、強制モードを有効にします。これにより、脆弱性対応が完了します。

Registry Key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Kdc
Name: PacRequestorEnforcement
Type: REG_DWORD
Data: 2

※ OS 再起動は不要です。
※ PacRequestorEnforcement の詳細は、「[5] PacRequestorEnforcement レジストリ キーについて」をご参照ください。

留意事項

本脆弱性の対処は、今後リリースされる更新プログラムで段階的にもおこなわれる予定です。そのため、手順 4) を実施しなかった場合も、すべてのドメイン コントローラーに 2022 年 10 月 11 日 (強制フェーズ) の更新プログラムを適用することで、ドメイン コントローラーで強制モードが有効になります。

段階的な展開の詳細については、「[2] 本脆弱性への対処 ( 段階的な展開 )」をご参照ください。


[2] 本脆弱性への対処 ( 段階的な展開 )

本脆弱性の段階的な展開については、以下の 3 フェーズで実施される予定です。

1) 2021 年 11 月 9 日: 初期展開フェーズ

このフェーズでは、既定で PacRequestorEnforcement レジストリが “1” と同等の動作となり、PAC に “要求元” が追加されます。
“要求元” が存在しない TGT についても認証を行うことが可能なため、通常、認証に失敗するといった影響はございません。

 ※ PacRequestorEnforcement レジストリは既定で存在しません。
 ※ 2021 年 11 月 9 日時点で、レジストリが存在しない場合の動作は、”1” と同等の動作になります。

2) 2022 年 7 月 12 日: 第 2 展開フェーズ

このフェーズでは、PacRequestorEnforcement レジストリの 0 が削除されます。この更新プログラムをインストール後、PacRequestorEnforcement を 0 に設定しても、 1 に設定した際と同じ動作になります。
 ※ PacRequestorEnforcement を 0 に設定していない環境では、このフェーズは不要です。

3) 2022 年 10 月 11 日: 強制フェーズ

PacRequestorEnforcement のレジストリ キーが無効化され、強制的に PacRequestorEnforcement = 2 の動作となります。

強制フェーズでは、以下のドメイン コントローラーと互換性が無くなります。
・ 2021 年 11 月 9 日以降の更新プログラムをインストールしなかったドメイン コントローラー
・ 2021 年 11 月 9 日以降の更新プログラムをインストールしたが、PacRequestorEnforcement が 0 に設定されており、且つ、2022 年 7 月 12 日の更新プログラムを適用していないドメイン コントローラー

次のドメイン コントローラーと互換性があります。
・ 2022 年 7 月 12 日以降の更新プログラムをインストールしたドメイン コントローラー
・ 2021 年 11 月 9 日以降の更新プログラムをインストールし、PacRequestorEnforcement が 1 または 2 を持つドメイン コントローラー


[3] 既知の不具合について

1) 既知の問題 ( 2022/4/12更新 )

2021 年 11 月 9 日以降の Windows 更新プログラムをすべてのドメイン コントローラーへインストールして 1 週間以上経過した後も、
パスワード変更時に行われる Kerberos 認証 (kpasswd) において、PAC (要求元) の検証に失敗し、意図せず SYSTEM イベント : 37 が記録されるという既知の問題がございます。これにより、初期展開フェーズ及び、第 2 展開フェーズにおいては実影響は発生しませんが、
強制フェーズへ移行 (PacRequestorEnforcement = 2) した場合、当該 Kerberos 認証は拒否される動作となります。

弊社では以下のような操作をした際にこの問題に抵触し、意図せず SYSTEM イベント : 37 が記録されるという報告を確認しております。
 ・ [Active Directory ユーザーとコンピューター] から新しいユーザー オブジェクトを作成する
 ・ [Active Directory ユーザーとコンピューター] から既存ユーザーのパスワードをリセットする
 ・ フェールオーバー クラスターの CNO / VCO のパスワードを変更する
 ・ フェールオーバー クラスターの CNO / VCO のパスワードを手動で修復する
 ・ サードパーティ製のドメインに参加しているデバイスのパスワードを変更する

この問題を修正した更新プログラムが 2022 年 4 月 12 日にリリースされておりますので、こちらの適用をご検討ください。
参考までに、各 OS に対する修正更新プログラムをご案内いたします。

Windows Server 2022 ( KB5012604 )
Windows Server 2019 ( KB5012647 )
Windows Server 2016 ( KB5012596 )
Windows Server 2012 R2 マンスリー ロールアップ ( KB5012670 )
Windows Server 2012 R2 セキュリティのみ ( KB5012639 )
Windows Server 2012 マンスリー ロールアップ ( KB5012650 )
Windows Server 2012 セキュリティのみ ( KB5012666 )
Windows Server 2008 R2 マンスリー ロールアップ ( KB5012626 )
Windows Server 2008 R2 セキュリティのみ ( KB5012649 )
Windows Server 2008 マンスリー ロールアップ ( KB5012658 )
Windows Server 2008 セキュリティのみ ( KB5012632 )

2) Kerberos 制約付き委任の問題

2021 年 11 月 9 日の更新プログラムには、Kerberos 制約付き委任を利用する認証に関する既知の問題がございます。

問題を修正した更新プログラムが 2021 年 11 月 14 日にリリースされておりますので、こちらの適用をご検討ください。
参考までに、各 OS に対する修正更新プログラムをご案内いたします。

Windows Server 2019 ( KB5008602 )
Windows Server 2016 ( KB5008601 )
Windows Server 2012 R2 ( KB5008603 )
Windows Server 2012 ( KB5008604 )
Windows Server 2008 R2 ( KB5008601 )
Windows Server 2008 ( KB5008601 )


[4] 追加されたイベント メッセージについて

2021 年 11 月 9 日 の更新プログラムを適用すると、以下 4 つのイベント メッセージがシステム イベント ログに追加されます。

本イベント メッセージが記録された場合、以下の点についてご確認ください。
 1 ) 更新プログラムが適用されていないドメイン コントローラーがないか
 2 ) PacRequestorEnforcement のレジストリの値が 0 となっているドメインコントローラーが混在していないか
 3 ) サード パーティー製品で “PAC” に対応していないサービスやアプリケーション、OS などが存在しないか
  “PAC” に対応していないサード パーティ製品が存在している場合、製品の開発元に対処方法をご確認ください

■ Microsoft-Windows-Kerberos-Key-Distribution-Center ID 35

以下のイベント メッセージは、PAC 内に “属性” フィールドを含まないチケットの検証を行った際に記録されます。

ログの名前:         System
ソース:           Microsoft-Windows-Kerberos-Key-Distribution-Center
イベント ID:       35
タスクのカテゴリ:      なし
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       <ドメイン コントローラー>
説明:
キー配布センター (KDC) は、PAC 属性フィールドを含まない別の KDC (<KDC Name>) からのチケット許可チケット (TGT) を
検出しました。詳細については、https://go.microsoft.com/fwlink/?linkid=2173051 を参照してください。

■ Microsoft-Windows-Kerberos-Key-Distribution-Center ID 36

以下のイベント メッセージは、PAC 自体が存在しないチケットの検証を行った際に記録されます。

ログの名前:         System
ソース:           Microsoft-Windows-Kerberos-Key-Distribution-Center
イベント ID:       36
タスクのカテゴリ:      なし
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       <ドメイン コントローラー>
説明:
キー配布センター (KDC) が、別のチケットの要求を処理しているときに PAC に関する情報を含まないチケットを検出しました。
そのため、セキュリティー チェックが実行されず、セキュリティの脆弱性が開かれる可能性があります。
詳細については、https://go.microsoft.com/fwlink/?linkid=2173051 を参照してください。 
 クライアント: <Domain Name>\<User Name>  
 チケットの対象: <Service Name>

■ Microsoft-Windows-Kerberos-Key-Distribution-Center ID 37

以下のイベント メッセージは、PAC 内に “要求元” フィールドを含まないチケットの検証を行った際に記録されます。

ログの名前:         System
ソース:           Microsoft-Windows-Kerberos-Key-Distribution-Center
イベント ID:       37
タスクのカテゴリ:      なし
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       <ドメイン コントローラー>
説明:
キー配布センター (KDC) が、別のチケットの要求を処理しているときにチケットを要求したアカウントに関する情報を含まない
チケットを検出しました。そのため、セキュリティー チェックが実行されず、セキュリティの脆弱性が開かれる可能性があります。
詳細については、https://go.microsoft.com/fwlink/?linkid=2173051 を参照してください。
 チケット PAC の構成: <KDC Name>  
 クライアント: <Domain Name>\<Client Name>  
 チケットの対象: <Service Name>  

■ Microsoft-Windows-Kerberos-Key-Distribution-Center ID 38

以下のイベント メッセージは、PAC の “要求元” に含まれるユーザー名と実際のチケットの利用ユーザー名が異なる場合に記録されます。

ログの名前:         System
ソース:           Microsoft-Windows-Kerberos-Key-Distribution-Center
イベント ID:       38
タスクのカテゴリ:      なし
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       <ドメイン コントローラー>
説明:
キー配布センター (KDC) で、チケットを要求したアカウントに関する矛盾した情報を含むチケットが検出されました。
これは、チケットの発行後にアカウントの名前が変更された可能性があります。
これは、試行されたエクスプロイトの一部であった可能性があります。
https://go.microsoft.com/fwlink/?linkid=2173051を参照してください。:
 Client: <Domain Name>\<User Name>  
 Ticket for: <Service Name>  
 Requesting Account SID from Active Directory: <SID>  
 Requesting Account SID from Ticket: <SID> 


[5] PacRequestorEnforcement レジストリ キーについて

2021 年 11 月 9 日の更新プログラムをドメイン コントローラーに適用すると、PacRequestorEnforcement キーが利用可能となります。

Registry Key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Kdc
Name: PacRequestorEnforcement
Type: REG_DWORD
Data: 0 or 1 or 2
  ※ OS 再起動は不要です。

PacRequestorEnforcement キーの値ごとの動作について、以下にご案内いたします。

■ PacRequestorEnforcement = 1 もしくは レジストリが存在しない ( 既定 )

展開モードです。2021 年 11 月 9 日の更新プログラムを適用した直後はレジストリが存在せず、このモードになります。

クライアントがドメイン コントローラーに TGT を要求した際、ドメイン コントローラーは PAC フィールドに “要求元” を追加して TGT を発行します。その後、クライアントが TGT を使ってドメイン コントローラーへサービス チケットを要求した際、クライアントから受け取った TGT の “要求元” を検証しますが、”要求元” が存在しないなどの理由で検証に失敗したとしても、サービス チケットを発行する動作となります。そのため、通常、認証に失敗するといった影響はございません。

“要求元” の検証に失敗した場合などは、システム イベント ログに「[4] 追加されたイベント メッセージについて」でご案内したメッセージが記録されます。

■ PacRequestorEnforcement = 2

強制モードです。

クライアントがドメイン コントローラーに TGT を要求した際、ドメイン コントローラーは PAC フィールドに “要求元” を追加して TGT を発行します。その後、クライアントが TGT を使ってドメイン コントローラーへサービス チケットを要求した際、クライアントから受け取った TGT の “要求元” を検証します。”要求元”の検証に失敗した場合は、サービス チケットの発行をおこないません。

“要求元” の検証に失敗した場合などは、システム イベント ログに「[4] 追加されたイベント メッセージについて」でご案内したメッセージが記録されます。

■ PacRequestorEnforcement = 0

CVE-2021-42287 の脆弱性対策の機能を無効化します。 このモードでは、「[4] 追加されたイベント メッセージについて」でご案内したメッセージは出力されず、TGT に対する “要求元” の追加処理もおこなわれません。2022 年 7 月 12 日リリース予定の更新プログラムを適用すると、PacRequestorEnforcement = 0 は機能しない動作となる予定です。

なお、今後の強制モードに向けての妨げとなる可能性があるため、弊社としては PacRequestorEnforcement = 0 を設定することは推奨しておりません。

留意事項

PacRequestorEnforcement キーが機能するのは、2022 年 10 月 11 日リリース予定の更新プログラム適用前までとなります。
2022 年 10 月 11 日リリース予定の更新プログラムを適用すると、レジストリの値に関わらず、PacRequestorEnforcement = 2 と同等の動作になる予定です。


参考情報

Active Directory Domain Services Elevation of Privilege Vulnerability
KB5008380—Authentication updates (CVE-2021-42287)

更新履歴

2021/12/1 : 本ブログの公開
2022/2/1 : 「[3] 既知の不具合について」に新たな既知の問題を追記
2022/4/13 : 「[3] 既知の不具合について」に問題が修正された更新プログラムを追記。第二展開フェーズ、強制フェーズのスケジュールが延期になったため日程を更新。