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

Last Update: feedback 共有

※※ 2023/6/30 更新
※※ ・イベント ID 42 のイベントログについての情報更新に伴い、本記事の内容を更新いたしました。

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

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

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

本記事では、CVE-2022-37966 への対応とその影響について (Kerberos プロトコルの変更/セッションキーの既定の暗号化タイプの変更) に関してご案内させていただきます。

// 本脆弱性に関する参考情報

KB5021131: CVE-2022-37966 に関連する Kerberos プロトコルの変更を管理する方法


CVE-2022-37966 への対応について


本脆弱性対応につきましては、基本的に 2022 年 11 月の更新プログラムをドメイン コントローラーにインストールするのみで対処が完了します。

※ 11 月の更新プログラムには、本脆弱性への対応に伴って潜在的な不具合が見つかり、後述いたしますような既知の問題が存在しております。本脆弱性への対応にあたっては 2023 年 1 月の更新プログラムをインストールすることをご検討ください。

具体的には、 2022 年 11 月の更新プログラムをドメイン コントローラーにインストールすると、ドメイン コントローラー上のユーザー アカウントでデフォルトの暗号化タイプ ( msDS-SupportedEncryptionTypes 属性 ) が、設定されていない、もしくは 0 であるアカウントの Kerberos 認証のセッション キーのデフォルトの暗号化タイプが RC4 から AES に変更されます。

11 月更新プログラムに含まれる他 2 点の脆弱性対応 ( CVE-2022-38023、CVE-2022-37967 ) のように段階的に脆弱性対応を行うものではございません。

2022 年 11 月の更新プログラムを適用すると、レジストリ:DefaultDomainSupportedEncTypes が利用可能となります。
本レジストリの設定は Kerberos 認証におけるセッションキーとチケット暗号化の両方の既定値を設定することができ、今回の脆弱性対応により、既定値に Kerberos 認証のセッション キーのデフォルトの暗号化タイプが AES となる設定が含まれております。

Registry Key: HKEY_LOCAL_MACHINE\System\currentcontrolset\services\kdc
Name : DefaultDomainSupportedEncTypes
Type: REG_DWORD
Data: 0x27(既定値 ※レジストリが存在しない場合には、この値となります。)

※補足:既定の値 0x27 について
0x27 については、11 月の更新プログラムを適用することで追加される 0x20 ( AES256_CTS_HMAC_SHA1_96_SK ) に以前の OS の既定値である 0x7 ( DES_CBC_CRC, DES_CBC_MD5, RC4 ) を追加したものとなります。0x20 ( AES256_CTS_HMAC_SHA1_96_SK ) が、セッションキーにだけ影響する新しいフラグとなります。

2.2.7 Supported Encryption Types Bit Flags

更新プログラム適用後も CVE-2022-37966 に対して脆弱なアカウントについて

アカウントにて、msDS-supportedEncryptionTypes 属性に RC4 が明示的に定義されているアカウントの場合は、更新プログラム適用後も脆弱性の対象となります。
KB5021131: CVE-2022-37966 に関連する Kerberos プロトコルの変更を管理する方法 にも記載の以下のコマンドは、そうした更新プログラム適用後も CVE-2022-37966 に対して脆弱なアカウントを探すものとなります。
具体的には DES/RC4 が明示的に有効になっており、かつ AES が無効なアカウントを探し出すコマンドとなります。

Get-ADObject -Filter "msDS-supportedEncryptionTypes -bor 0x7 -and -not msDS-supportedEncryptionTypes -bor 0x18"

このようなアカウントがある場合、まずは対象アカウントを利用する端末やサービスが AES に対応しているのかどうかをご確認ください。もし AES に対応済みであればこのアカウントの msDS-supportedEncryptionTypes 属性に対して明示的に AES のみ ( 0x18 ) を設定いただき、脆弱性へ対処いただくことをご検討ください。

イベント メッセージ ID 42 について

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

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

// 日本語の場合

ログの名前:         System
ソース:           Microsoft-Windows-Kerberos-Key-Distribution-Center
イベント ID:       42
タスクのカテゴリ:      なし
レベル:           エラー
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       <ドメイン コントローラー>
説明:
Kerberos キー配布センターには、アカウント krbtgt.

セキュリティで保護されていない暗号化の使用を防ぐために、このアカウントのパスワードを更新する必要があります。 

詳細については、https://go.microsoft.com/fwlink/?linkid=2215265 を参照してください。

// 英語の場合
  ※適用した更新プログラムが 2022 年 11 月 にリリースされた更新プログラムの場合、日本語 OS でも英語でメッセージが出力される場合がございます。

ログの名前:         System
ソース:          Microsoft-Windows-Kerberos-Key-Distribution-Center
イベント ID:       42
タスクのカテゴリ:      なし
レベル:           エラー
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       <ドメイン コントローラー>
説明:
The Kerberos Key Distribution Center lacks strong keys for account krbtgt.
You must update the password of this account to prevent use of insecure cryptography. 
See https://go.microsoft.com/fwlink/?linkid=2210019 to learn more.

本イベントは、krbtgt アカウントにて AES のキーが存在しない場合に Kerberos チケットを発行する際に出力されるイベントとなります。
なお、本イベントが発生している場合、AES のキーが存在しないことでCVE-2022-37967 の修正の影響を受け、認証に失敗する可能性がございます

※該当箇所抜粋
If you find this error, you likely must reset your krbtgt password before setting KrbtgtFullPacSingature = 3, or installing Windows Updates released on or after July 11, 2023.

上記は、CVE-2022-37967 における強制フェーズ( KrbtgtFullPacSignature = 3 の動作)より前に対処する必要ある旨を示しており、CVE-2022-37967 の2023 年 7 月 11 日: 初期強制フェーズでは、明示的に KrbtgtFullPacSignature を設定していない場合、既定で KrbtgtFullPacSignature = 3 の動作となります。
そのため、2023 年 7 月 11 日の更新プログラムを適用する前か、 KrbtgtFullPacSignature = 3 の設定とする前に、後述のイベント メッセージ ID 42 への対処方法についてを参考に、本イベントログへ対処ください。

※CVE-2022-37967については、CVE-2022-37967 への対応とその影響についてをご参照ください。

通常 krbtgt アカウントに AES のキーが存在しないケースとしてはドメイン機能レベル 2003 以前より運用されてきた環境である可能性がございます。

イベント メッセージ ID 42 への対処方法について

対処策につきましては、既にドメイン機能レベルとして 2008 以降であれば、以下の krbtgt アカウントのパスワード リセットにて対処いただくことが可能です。
もしドメイン機能レベル 2008 未満の場合には、機能レベルの昇格を実施後に、対処を実施ください。

  1. “Active Directory ユーザーとコンピューター” から、[Users] コンテナ配下に存在する “krbtgt” アカウントを右クリックし、[パスワードのリセット] を選択します。

  2. [ユーザーは次回ログオン時にパスワード変更が必要] のチェックを外し、パスワード欄は空のまま [OK] をクリックします。

  3. “krbtgt のパスワードは変更されました” というメッセージが表示されますので、[OK] をクリックします。
    ※ krbtgt のパスワードには、非常に長いランダムな文字列が自動的に設定されますので、空のままで問題ありません。

  4. パスワードの変更が完了しましたら、コマンド プロンプトを管理者権限で起動し、以下のコマンドを実行します。本コマンドを実行することでパスワード変更の情報をサイト内外のドメイン コントローラーに複製します

    repadmin /syncall /APe


CVE-2022-37966 対応による影響について


脆弱性対応による影響についてご案内いたします。
既に弊社事例上、CVE-2022-37966 の変更により、Windows OS 以外のサードパーティー製品で影響が生じる事例が確認されております。また、11月 8 日に公開された更新プログラムには CVE-2022-37966 への対応に関連した既知の問題が存在いたしますので、以下におまとめしております。

CVE-2022-37966 への対応によって影響が生じるケースについて

本セキュリティ強化により、以下の 3 つの条件をすべて満たすリソース サーバーが存在する場合に、影響を受ける場合がございます。

  • Windows OS 以外のサードパーティー製品である
  • kerberos 認証の暗号化方式として AES に対応していない製品である
  • 対象製品に紐づくコンピューターオブジェクトまたはサービスアカウントの msDS-SupportedEncryptionTypes 属性が未設定もしくは、0 である

上記ケースの場合、CVE-2022-37966 の対処により、先ず Kerberos 認証のセッション キーのデフォルトの暗号化タイプが RC4 から AES に変更されるために、対象のリソースサーバーへアクセスするための Kerberos チケットに含まれるセッションキーは、AES となります。

この Kerberos チケットを、クライアントから、リソースサーバーに提示し Kerberos 認証を行う際に、リソースサーバー側が AES に対応していない場合には、Kerberos 認証が失敗いたします。

※ 現行サポートしている Windows OS の場合には、ドメイン参加時に必ず、コンピューターオブジェクトの msDS-SupportedEncryptionTypes 属性に利用可能な Kerberos 暗号タイプの値が追加される動作となっており、かつ OS として AES をサポートしているため、Windows OS のみの環境においては、CVE-2022-37966 による影響は基本的に想定されません。ただし、Windows OS 上でサードパーティの製品を動作させており、対象製品に紐づくサービスアカウントがある場合は、後述のステップで影響をご確認ください。

リソースサーバーである Windows OS 以外のサードパーティー製品が AES に対応していれば影響はございません。
そのため、事前に本影響の有無について確認する場合には、以下のようなステップで確認を行います。

  1. ドメイン環境に、Windows OS 以外のサードパーティー製品のコンピューターオブジェクトやサービスアカウントが無いか確認を行います。
  2. もし存在する場合には、対象オブジェクトの msDS-SupportedEncryptionTypes 属性を確認し、0 または未設定 ( null ) であるか確認します。
  3. もし 0 または null であった場合は、対象のオブジェクトに紐づく、サードパーティー製品の開発元に対処方法をご確認ください。

11月 8 日に公開された更新プログラムにおける既知の問題について

リリースされた更新プログラムの修正のうち、CVE-2022-37966 の修正に伴って潜在的な不具合が見つかっており、それぞれ修正更新プログラムがリリースされております。それぞれの場合について、以下にご案内いたします。

イベント メッセージ ID 14 が記録され、認証が失敗する


以下の両方を満たす場合、イベント メッセージ ID 14 が記録され、Kerberos 認証が失敗する事象が確認されております。

  • ユーザー、コンピューター、または gMSA といったサービスアカウントの msDS-supportedEncryptionTypes 属性値を明示的に設定しており、かつ明示的に RC4-HMAC (0x4) が 含まれない 値を設定されている
  • 対象のアカウントに対して認証を実施するドメイン コントローラーに 2022 年 11 月 8 日にリリースされた更新プログラムが適用されている

本不具合の影響を受け、Kerberos 認証が失敗した場合にはドメイン コントローラー側に以下のイベントログが記録されます。

//イベント ログ サンプル
※イベント ID : 14 である点と、説明内の “ ( そのキーには 1 の ID があります ) “ がキーワードとなります。

ログの名前:         System
ソース:           Microsoft-Windows-Kerberos-Key-Distribution-Center
日付:            2022/11/13 16:01:59
イベント ID:       14
タスクのカテゴリ:      なし
レベル:           エラー
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       <ドメイン コントローラー>
説明:
対象のサーバー krbtgt に対する AS 要求を処理するときに、アカウント testuser には Kerberos チケットを生成するための
適切なキーがありませんでした (そのキーには 1 の ID があります)。要求された ETYPE は 18  17  3 でした。
アカウントで利用できる ETYPE は 23  18  17 でした。
Testuser のパスワードを変更または再び設定すると正しいキーが生成されます。

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

Windows Server 2022 (KB5021656)

Windows Server 2019 (KB5021655)

Windows Server 2016 (KB5021654)

Windows Server 2012 R2 (KB5021653)

Windows Server 2012 (KB5021652)

msds-SupportedEncryptionTypes 属性において、暗号化の種類(最下位 5 ビット)に設定を行わず、かつ0以外の値を設定しているアカウントに対する認証が失敗する


以下の両方を満たす場合、Kerberos 認証が失敗する事象が確認されております。

  • アカウントの msds-SupportedEncryptionTypes 属性に対し、暗号化の種類のビット (最下位 5 ビット) 設定を行っておらず、かつ 0 以外の値を構成している
  • 対象のアカウントに対して認証を実施するドメイン コントローラーに 2022 年 11 月 8 日、または 2022 年 12 月 13 日にリリースされた更新プログラムが適用されている

例えば、msDS-SupportedEncryptionTypes が 131072 ( 16 進数で 0x20000 )の場合、最下位 5 ビットは 0 となっているため暗号化の種類に設定がなく、かつ msDS-SupportedEncryptionTypes としては 0 以外の値が設定されていることとなります。このようなアカウントに対する認証が対象となります。

// 暗号化の種類のビットについてのご参考
2.2.7 Supported Encryption Types Bit Flags

この既知の問題は、2023 年 1 月 10 日にリリースされた更新プログラムにて修正されております。参考までに、各 OS に対する修正更新プログラムをご案内いたします。

Windows Server 2022 ( KB5022291 )

Windows Server 2019 ( KB5022286 )

Windows Server 2016 ( KB5022289 )

Windows Server 2012 R2 マンスリー ロールアップ ( KB5022352 )

Windows Server 2012 R2 セキュリティのみ ( KB5022346 )

Windows Server 2012 マンスリー ロールアップ ( KB5022348 )

Windows Server 2012 セキュリティのみ ( KB5022343 )

参考情報

更新履歴

2023/01/20 : 本ブログの公開

2023/03/06 : DefaultDomainSupportedEncTypes の説明について修正。イベント メッセージ ID 42 について、日本語のイベントログを追加。CVE-2022-37966 対応による影響について、Windows OS 上でサードパーティ製品を利用している場合について追記。

2023/03/30 : CVE-2022-37967、CVE-2022-38023に関する記事へのリンクを追加。

2023/06/30 : イベント ID 42 のイベントログについての情報更新に伴い、本記事の内容を更新。