2025年1月以降のWindowsUpdate適用で一部サービスでAD認証が失敗する可能性がある

2025年1月以降のWindows Updateを適用するとKerberos認証に関わる動作が一部変更され、AD認証に失敗する可能性がある、という情報を見つけました。あまり情報が出ておらず不確かなことが多いのですが、私の理解した範囲で情報を整理します。今後追加で判明したことがあれば追記いたします。

# 情報ソース
詳細に解説してくれているMicrosoftブログ
[CVE-2024-26248, CVE-2024-29056 への対応とその影響について ](https://jpwinsup.github.io/blog/2024/08/13/ActiveDirectory/Authentication/CVE-2024-26248,%20CVE-2024-29056%20PAC%20Validation%20changes%20related/)

KB情報
[KB5037754: CVE-2024-26248 および CVE-2024-29056 に関連する PAC 検証の変更を管理する方法](https://support.microsoft.com/ja-jp/topic/kb5037754-cve-2024-26248-%E3%81%8A%E3%82%88%E3%81%B3-cve-2024-29056-%E3%81%AB%E9%96%A2%E9%80%A3%E3%81%99%E3%82%8B-pac-%E6%A4%9C%E8%A8%BC%E3%81%AE%E5%A4%89%E6%9B%B4%E3%82%92%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95-6e661d4f-799a-4217-b948-be0a1943fef1)

# 概要
これまでも3段階でActive Directoryの挙動が変わる更新プログラムがありましたが、今回も同様に3段階で挙動が変わります。Kerberosで使われているPAC検証に脆弱性が見つかったため、このPAC検証の仕様が変更されます。
今回は以下のような予定となっています。

### 2024 年 4 月 9 日：初期展開フェーズ (互換モード) 
24年4月～12月の更新プログラムを適用するとこの状態になる。イベントログに警告が出るようになる段階。動作は変わらない。

### 2025 年 1 月 7 日：既定で強制フェーズ
25年1月の更新プログラムを適用するとこのフェーズに。既定の動作が強制モードになるので、条件にあてはまると認証エラーが発生する。レジストリ値を変更すると動作を従来のものに戻せる段階。1回実施時期が延長されて25年1月、ついにこのフェーズに突入するようです。

### 2025 年 4 月 8 日：強制フェーズ
25年4月の更新プログラムを適用するとこの段階になる予定です。レジストリによる調整ができず、新しい仕様が強制されます。

# 認証エラーが発生する条件
何が発生トリガーなのか分かりにくいのですが、おそらく以下の条件を満たすと発動します。一部のサービスだけ認証が失敗する、というような形で顕在化するものと思われます。
1. サービスを提供しているWindowsサーバに2025年1月以降の更新プログラムを適用している　かつ　ドメインコントローラに2024年4月以降の更新プログラムが適用されていない
2. サービスはADによる認証を利用している
3. サービスは以下の条件を満たす
    * サービス アカウントがLocalService / LocalSystem / NetworkService ではない
    * サービス アカウントが“SeTCBPrivilege” (オペレーティング システムの一部として機能) 特権を持たない 

### 1.について
* 2025年1月以降に新規構築したサーバで認証失敗する、しばらくWindowsUpdateしていなかったサーバで久しぶりに更新プログラム適用する、といったようなケースで問題が顕在化すると思われます。
* ドメインコントローラ側のみ最新の更新プログラムが適用されているケースで問題になるかは明言されていません。問題になるPAC検証はリソースサーバ（サービスを提供しているサーバ）から開始するようであり、ドメインコントローラが従来のPAC検証を拒否するようなことは書かれていないので、ドメインコントローラ側だけが最新の場合には問題にならない…？（ここは真偽不明です）
* 全てのWindowsに更新プログラムを適用せねばならない、というような書き方がされているのですが、クライアント端末には更新プログラムをあててなくても問題ないのではないかと推測しています。理由としてはPAC検証を行うのはサービスを提供しているサーバであり、クライアント端末は関与していないと考えられるからです。

### 3.について
具体的にどのようなサービスが対象となるのかは言及されていません…。
LocalService / LocalSystem / NetworkServiceで動いているファイルサーバ等のサービスは影響うけないと想定されます。
LocalService / LocalSystem / NetworkService以外をサービスアカウントとして指定しているサードパーティ製品関連は影響を受ける可能性があるのではないかと考えられます。
影響があるかどうかの確実な見極めは2024/6～12月の更新プログラムを適用して本事象に当てはまるイベントログが出るかどうかを確認する、になるかと思います。
**※ 2024/4～5月の更新プログラムはクリティカルな不具合があるようなので適用しないでください！**

# 暫定対処策
2025年4月の更新プログラムを適用するまでであれば以下のような対応が可能です。
* 可能であれば2024/6～12月の更新プログラムをまず適用し、問題となりうるイベントログが出るか確認する
* 2025年1月以降の更新プログラムを適用して問題が発生したら、問題が発生しているサーバ（認証失敗しているサービスをホストしているサーバ）でPAC検証の仕様変更をオフにするレジストリ設定をおこなう（再起動不要）
具体的なレジストリ設定は [CVE-2024-26248, CVE-2024-29056 への対応とその影響について ](https://jpwinsup.github.io/blog/2024/08/13/ActiveDirectory/Authentication/CVE-2024-26248,%20CVE-2024-29056%20PAC%20Validation%20changes%20related/) を参照ください。
* 時間を稼いでいる間にドメインコントローラへ更新プログラムを適用する計画をたて、ドメインコントローラに更新プログラムを適用する

2025年4月以降の更新プログラムでは強制フェーズとなってしまうので、更新プログラム適用で認証エラーが発生してしまった場合は以下のような対応になると考えられます。
* 4月以降の更新プログラムを一旦アンインストールし、2025年3月の更新プログラムを適用する。時間を稼いでいる間にドメインコントローラへの更新プログラム適用を計画する
* ドメインコントローラに更新プログラムを適用する
* ドメインコントローラへの更新プログラム適用後、リソースサーバに最新の更新プログラムを適用しなおす

なお、長年更新プログラムを適用していないドメインコントローラに最新パッチをいきなり適用すると、過去のAD仕様変更の影響を受けて被害が拡大するおそれがあります。慎重に調査、計画しましょう。
過去のAD仕様改変パッチの情報は以下にまとめています。
[Active Directoryに影響がある月例パッチまとめ](https://qiita.com/chappy7121/items/dd8c45acc31029686b6e)


# 参考：PACとは何？
* Privileged Attribute Certificate/特権属性証明書 の略
* PACは認証ユーザーとその特権に関する情報を含む Kerberos サービス チケットの拡張機能であり、Kerberos認証で発行されるチケットの中に含まれている。このチケットを使用してシステムへの認証を行う場合、ドメイン コントローラに問い合わせることなく、ユーザーのチケットから PAC を取得して特権レベルを判別することができる。
* このPACを狙った攻撃手法が存在しており、例えばPACを偽造して不正に特権取得（例：ドメイン管理者権限）する、というような攻撃がある。そのため、偽造されたPACでないか検証しよう、という仕組みが追加された。その検証にも脆弱性が見つかったので、今回のような修正パッチが出てきている、という背景らしい。

#### 調査するにあたって参考にしたブログ記事
[What Is the Kerberos PAC?](https://blog.netwrix.com/2023/01/10/what-is-the-kerberos-pac/)
[Fighting Golden Ticket Attacks with Privileged Attribute Certificate (PAC)](https://www.varonis.com/blog/pac_requestor-and-golden-ticket-attacks)