CVE-2022-37967 への対応とその影響について

Last Update: feedback 共有

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

こんにちは。Windows Commercial Support Directory Services サポートチームです。

2022 年 11 月にリリースされた更新プログラムでは、Active Direcotry 環境への脆弱性対応として以下 3 点の対処が含まれています。

CVE-2022-37966 への対応とその影響について
CVE-2022-38023 への対応とその影響について
・CVE-2022-37967 への対応とその影響について

本記事では、CVE-2022-37967 への対応とその影響 (Kerberos プロトコルの変更/完全なPAC署名の追加) についてご案内させていただきます。


CVE-2022-37967 の脆弱性対応について


2022 年 11 月に公開いたしました CVE-2022-37967 への脆弱性対応について説明させていただきます。

Kerberos 委任を利用する際に、Kerberos の PAC (Privileged Attribute Certificate) 署名を使用した、セキュリティ バイパスと特権の昇格の脆弱性が確認されたため、本脆弱性への対処として、CVE-2022-37967 をリリースしました。

CVE-2022-37967 の認証プロセスの変更により、2022 年 11 月の更新プログラムをドメイン コントローラーにインストールすると、ドメイン コントローラーが発行する Kerberos チケット内の PAC バッファー領域にPAC 署名を追加する動作となります。

本脆弱性の対処は段階的に行われる予定となっており、最終フェーズにおいて Kerberos 委任の認証の中で本 PAC 署名を検証し、検証に失敗した場合認証を拒否する動作とすることで本脆弱性を解決します。

段階的な対処につきましては、2022 年 11 月の更新プログラムをドメイン コントローラーにインストール後に利用可能となる、以下の KrbtgtFullPacSignature レジストリの値によって制御します。

▼KrbtgtFullPacSignature レジストリ

- レジストリサブキー:
HKEY_LOCAL_MACHINE\System\currentcontrolset\services\kdc
- 値:
KrbtgtFullPacSignature
- データ:
0 – CVE-2022-37967 の変更が無効
1 – 新しい PAC 署名が追加されますが、署名の検証は行われません。(2022 年 11 月の更新プログラム 追加後の状態)
2 – 監査モード。 新しい PAC 署名が追加され、署名が存在する場合は検証が行われます。この段階では署名が見つからない場合や署名が無効な場合、監査ログを出力し、認証を許可します。
3 – 強制モード。 新しい PAC 署名が追加され、署名が存在する場合は検証が行われます。 署名が見つからない場合や署名が無効な場合、監査ログを出力し、認証を拒否します。

上記レジストリの動作を踏まえ、本脆弱性の対処は以下 5 フェーズを経て実施されます。

▼各フェーズごとの動作

1) 2022 年 11 月 8 日: 初期展開フェーズ

レジストリ:KrbtgtFullPacSignature = 1 の動作となります。

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

レジストリ:KrbtgtFullPacSignature = 2 の動作となります。
※本フェーズ以降、PAC 署名の検証動作が追加されるため、後述するイベントログが出力される可能性が出てきます。

3) 2023 年 6 月 13 日: 第 3 展開フェーズ

レジストリ:KrbtgtFullPacSignature = 0 の設定が無効化されます。
つまり、明示的に KrbtgtFullPacSignature = 0 と設定した場合でも、動作には反映されません。

4) 2023 年 7 月 11 日: 初期強制フェーズ

レジストリ:KrbtgtFullPacSignature = 3 の動作となります。
また、レジストリ:KrbtgtFullPacSignature = 1 の設定が無効化されます。
つまり、明示的に KrbtgtFullPacSignature = 0 及び 1 と設定した場合でも、動作には反映されません。

5) 2023 年 10 月 10 日: 完全強制フェーズ (KrbtgtFullPacSignature = 3 相当)

レジストリ:KrbtgtFullPacSignature の値にかかわらず、レジストリ:KrbtgtFullPacSignature = 3 相当の動作に強制します。
※レジストリにて明示的に値を設定した場合でも、動作には反映されません。

なお、本脆弱性対応による Kerberos 認証への影響は、基本的には初期強制フェーズまでは発生しないものとなりますが、
初期強制フェーズ以降、ドメイン コントローラー間の更新プログラムの適用状況に差異がある場合、kerberos 委任における認証動作に影響が生じる可能性があるため、次項で CVE-2022-37967 の対処の流れをご説明いたします。


CVE-2022-37967の対処の流れについて


本脆弱性に対しては、以下の流れで対処を行います。

  1. RODC を含むドメイン内の全てのドメイン コントローラーに 2022 年 11 月の更新プログラムを適用します。
    ※本ステップはスキップしても問題ありません。
  2. RODC を含むドメイン内の全てのドメイン コントローラーに 2022 年 12 月の更新プログラムを適用し、監査モードに移行します。
  3. ドメイン コントローラーの System イベントログからイベント ID:43 / ID:44 を監視します。
    なお、Kerberos チケットキャッシュ期間 (既定で 7 日間) の関係上、全てのドメイン コントローラーに更新プログラムを適用した後、7 日間は、ID:44 が頻発する可能性があります。
    そのため、7日間経過後の状況を観察し、ID:43 / ID:44 が出力されるか確認を行います。
  4. 検知した場合には、強制モード (KrbtgtFullPacSignature = 3) までに、対処 (※”▼イベントログが記録された場合の対処” を参照) を実施します。
  5. 2023 年 10 月の更新プログラムを適用すると、レジストリの値に関わらず、PAC 署名が強制化され、署名の無い Kerberos チケットは拒否されます。
    ※step 4 にて対処が完了し ID:43 / ID:44 の出力が無くなった場合には、2023 年 10 月の完全強制フェーズを待たずに KrbtgtFullPacSignature レジストリに 3 の値を設定することで、その時点で本脆弱性を解決することが出来ます。

▼Kerberos 認証に影響が生じるケースについて

強制モードの場合、PAC 署名が見つからない場合や、署名が無効な場合、認証を拒否する動作となるため、
ドメイン内に、2022 年 11 月以降の更新プログラムが適用されていないドメイン コントローラー、もしくは KrbtgtFullPacSignature = 0 に設定しているドメイン コントローラーと、強制モードのドメイン コントローラーが混在する場合、Kerberos 委任の認証に影響が生じます。
そのため、ドメイン内の全てのドメイン コントローラーの更新プログラム適用状況及び、KrbtgtFullPacSignature レジストリの設定状況を把握し、影響が生じないようご注意ください。

▼追加されたイベントログ

2022 年 11 月の更新プログラムをドメイン コントローラーにインストールすると、以下 2 点の System イベントログが追加されます。

Microsoft-Windows-Kerberos-Key-Distribution-Center ID 43

以下のイベント メッセージは、PAC署名の検証に失敗した場合に記録されます。
なお、監査モードの場合は、イベントレベルが警告となり、強制モードの場合はエラーとなります。

ログの名前:         System
ソース:           Microsoft-Windows-Kerberos-Key-Distribution-Center
イベント ID:       43
コンピューター:       <ドメイン コントローラー>
説明:
キー配布センター (KDC) で、完全な PAC 署名を検証できないチケットが検出されました。詳細については、https://go.microsoft.com/fwlink/?linkid=2210019を参照してください。

クライアント: <Kerberos 委任を行うコンピューター、及びサービスアカウント名>

Microsoft-Windows-Kerberos-Key-Distribution-Center ID 44

以下のイベント メッセージは、PAC署名が含まれていないチケットを検出した場合に記録されます。
なお、監査モードの場合は、イベントレベルが警告となり、強制モードの場合はエラーとなります。

ログの名前:         System
ソース:           Microsoft-Windows-Kerberos-Key-Distribution-Center
イベント ID:       44
コンピューター:       <ドメイン コントローラー>
説明:
キー配布センター (KDC) で、完全な PAC 署名が含まれていないチケットが見つかりました。詳細については、https://go.microsoft.com/fwlink/?linkid=2210019を参照してください。

クライアント: <Kerberos 委任を行うコンピューター、及びサービスアカウント名>

※なお、2022 年 11 月以降の更新プログラムが適用されていない、Windows Server 2012/2012R2/2016 ドメイン コントローラー と、強制フェーズ移行済みのドメイン コントローラーが混在する場合、ID:44 (エラー) の代わりに、ID:18 (エラー) が記録される場合があります。

▼イベントログが記録された場合の対処

2022 年 11 月以降の更新プログラムが適用されたドメイン コントローラーにて、イベントID:43 / ID:44 が記録された場合、以下の点についてご確認ください。

・ドメイン内に 2022 年 11 月以降の更新プログラムが適用されていないドメイン コントローラーがないかご確認ください。また、すべてのドメイン コントローラーに2022 年 11 月の更新プログラムが適用された後、1 週間経過しているかをご確認ください。
・KrbtgtFullPacSignature のレジストリの値が 0 となっているドメインコントローラーが存在していないかご確認ください。
・ドメインの機能レベルが2008 以上に設定されていることをご確認ください。
・イベントID:43 / ID:44 の “クライアント” に接続する可能性のある、サード パーティー製品が存在する場合、”PAC署名” に対応していないことでイベントが継続して検出されている可能性があります。その場合には、サードパーティー製品の開発元に対処方法をご確認ください。

参考情報

Windows Kerberos の特権の昇格の脆弱性
KB5020805:CVE-2022-37967に関連するKerberosプロトコルの変更の管理方法について

更新履歴

2023/3/6 : 本ブログの公開
2023/3/27 : 参考情報リンクの修正
2023/6/13 : 第 3 展開フェーズのスケジュール延期に伴い修正