※※ 2023/6/30 更新
※※ ・イベント ID 42 のイベントログについての情報更新に伴い、本記事の内容を更新いたしました。
本記事はマイクロソフト社員によって公開されております。
こんにちは。Windows Commercial Support Directory Services チームです。
2022 年 11 月にリリースされた更新プログラムでは、Active Direcotry 環境への脆弱性対応として以下 3 点の対処が含まれています。
- CVE-2022-37966 への対応とその影響について
- CVE-2022-38023 への対応とその影響について
- CVE-2022-37967 への対応とその影響について
本記事では、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 ) が、セッションキーにだけ影響する新しいフラグとなります。
更新プログラム適用後も 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 未満の場合には、機能レベルの昇格を実施後に、対処を実施ください。
“Active Directory ユーザーとコンピューター” から、[Users] コンテナ配下に存在する “krbtgt” アカウントを右クリックし、[パスワードのリセット] を選択します。
[ユーザーは次回ログオン時にパスワード変更が必要] のチェックを外し、パスワード欄は空のまま [OK] をクリックします。
“krbtgt のパスワードは変更されました” というメッセージが表示されますので、[OK] をクリックします。
※ krbtgt のパスワードには、非常に長いランダムな文字列が自動的に設定されますので、空のままで問題ありません。パスワードの変更が完了しましたら、コマンド プロンプトを管理者権限で起動し、以下のコマンドを実行します。本コマンドを実行することでパスワード変更の情報をサイト内外のドメイン コントローラーに複製します
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 である
※ Windows OS 上で動作するサードパーティー製品が、Kerberos 認証に Windows OS のモジュールではない独自の実装を使用している場合も該当します。
上記ケースの場合、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 の Kerberos モジュールを使用していない場合もあり、後述のステップで影響をご確認ください。
リソースサーバーである Windows OS 以外のサードパーティー製品が AES に対応していれば影響はございません。
そのため、事前に本影響の有無について確認する場合には、以下のようなステップで確認を行います。
- ドメイン環境に、Windows OS 以外のサードパーティー製品のコンピューターオブジェクトやサービスアカウントが無いか確認を行います。
- もし存在する場合には、対象オブジェクトの msDS-SupportedEncryptionTypes 属性を確認し、0 または未設定 ( null ) であるか確認します。
- もし 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 のイベントログについての情報更新に伴い、本記事の内容を更新。