2020/01/06

AD 環境は 2020年3月の Windows Update に要注意(かも)→ 3 月実施は延期

新年あけましておめでとうございました。

(※以下は、AD DS または AD LDS 運用中の管理者向けに注意しておいたほうがいい”かもしれない”話。AD DS/AD LDS を使っていないところや個人の Windows ユーザーには無関係な話。)

以下の公式ブログにあるように、2020年3月のWindows Updateで、Active Directory (AD DS および AD LDS)に関連する重要な変更(既定のセキュリティ設定の強化)が予定されているそうです。2020年3月は2019年12月時点での予定。

[AD管理者向け] 2020 年 LDAP 署名と LDAP チャネルバインディングが有効化。確認を!(Microsoft Security Response Center)
https://msrc-blog.microsoft.com/2019/10/02/ldapbinding/
2/6 追記) こちらも更新されました "注釈1:2020 年 2 月 5 日時点では、2020 年後半を予定しています。"

上記のブログにあるように、AD 運用している場合は事前にテストしておいたほうが良いと思います。2019年8月のセキュリティアドバイザリ ADV190023(https://portal.msrc.microsoft.com/ja-JP/security-guidance/advisory/adv190023) で周知してきたと書いてますが、知らない AD 管理者は多いのでは? 事前にテストしておかないと、3 月の Windows Update の後に大変なことになるかもしれないし、ならないかもしれない。

2/5 追記)2/4 PT 付で ADV190023 が更新されました。2020 年後半に延期だそうです。
"The March 2020 updates do not make changes to LDAP signing or channel binding policies or their registry equivalent on new or existing domain controllers.
A further future monthly update, anticipated for release the second half of calendar year 2020, will enable LDAP signing and channel binding on domain controllers configured with default values for those settings."

3/3 追記)  AD LDS は影響なしになったらしい。

2021/1/5 追記)さらに更新。"The March 10, 2020 and updates in the foreseeable future will not make changes to LDAP signing or LDAP channel binding policies or their registry equivalent on new or existing domain controllers." (2020年後半というのものも消え、当面既定を変更することはないみたい)



この中で参照先になっているサポート情報ですが、もともと Windows Server 2008 のときに書かれた古いもの(WayBack さんで古い URL http://support.microsoft.com/kb/935834 を検索してみると February 6, 2009 - Revision: 1.0 とある)。2020年1月6日現在、日本語の翻訳も非常に残念なことになっているので、オリジナルを確認することをお勧めします(注:オリジナルにも間違いや既に廃止されたダウンロード リンクあり)。そのうち訂正されるかもしれませんが。

WINDOWS Server 2008 で LDAP 署名を有効にする方法(日本語)
https://support.microsoft.com/ja-jp/help/935834/
How to enable LDAP signing in Windows Server 2008(英語オリジナル、
https://support.microsoft.com/en-us/help/935834/

例えば、AD DS のドメイン環境の場合、GPO 名、ポリシー名、設定値は、日本語では正しくは次のところのやつです。

誤:「既定のドメイン コントローラ ポリシー ・・・ドメイン コントローラ:LDAP サーバー署名の要件」のポリシー設定「署名を要求する」→ 正:「Default Domain Controllers Policy ・・・ ドメイン コントローラ:LDAP サーバー署名必須」のポリシー設定「署名を必要とする」。



誤:「既定のドメイン ポリシー ・・・ ネットワーク セキュリティ:LDAPクライアント署名要件」のポリシー設定「署名が必要」→ 正:「Default Domain Policy ・・・ ネットワーク セキュリティ:必須の署名をしている LDAP クライアント」のポリシー設定「署名必要とする」。



あと「構成の変更を確認する方法」に「desk.cpl」とありますが、これは「ldp.exe」の間違い。ldp.exe は、AD DS やAD LDS の役割やこれらの役割管理ツールがインストール場合にのみ存在するツール。「desk.cpl」は古いバージョンのWindowsだと[画面の設定]コントロールパネルアプレット、新しいバージョンだと[設定]アプリの[ディスプレイ]で、LDAP とは無関係。

また、ldp.exe のバインド時のサポート情報(日)の「単純バインド」は「簡易バインド」の間違い。

バインド失敗時のメッセージですが、サポート情報(日)「Ldap_simple_bind_s() に失敗しました: 強力な認証が必要です」、(英)「Ldap_simple_bind_s() failed: Strong Authentication Required」となっていますが、マイ環(Windows Server 2016 AD DS)では「ldap_simple_bind_s() failed: 資格情報が無効です」でした。このメッセージれでいいのかわるいのか、サポート情報が残念なことになっているのであれですが、

ログオン中のユーザーの資格情報でバインドすると、署名の設定に関係なく「資格情報が無効です」と表示されてしまいます(→)。


別のドメインユーザーの資格情報でやると、既定(3月更新以前)は左、署名強制(ポリシーで強制または3月更新以降)は右(↓)。



LDAP 署名がドメインコントローラー(DC)とクライアントで有効化されていることは gpupdate 後の DC とクライアントのレジストリで確認できます。サポート情報(日/英)のレジストリのパスには間違いが含まれているので注意(ldapclientintegrity の場所は Services\ldap\Parameters ではなく Services\ldap 。このサポート情報に含まれる Fix it は既に廃止されておりダウンロードできないことにも注意)。

既定はどちらの値も 0x1、構成済みであれば 0x2。2020年3月の Windows Update の更新プログラムで既定が 0x2 になるんだと思う。

LDAP サーバー(AD DS の DC):
C:\> REG QUERY HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters /v ldapserverIntegrity 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
    ldapserverIntegrity    REG_DWORD
    0x2


※AD LDS の場合は NTDS の部分をインスタンス名に置き換え。

LDAP クライアント(DC およびドメイン メンバー):
C:\> REG QUERY HKLM\SYSTEM\CurrentControlSet\Services\ldap /v ldapclientintegrity 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ldap
    ldapclientintegrity    REG_DWORD
    0x2

※ AD ドメイン環境で、LDAP 署名を要求するように LDAP サーバー(DC)とLDAP クライアント(メンバー)で強制するように構成した後、ドメイン認証やグループ ポリシーにはとりあえず何の影響もなさそう。 影響については、最初の公式ブログで確認してください(よくわからないけど、AD のディレクトリを LDAP で検索したり、データを保存したりするアプリとか?)。もし影響するなら、ポリシーで明示的に旧設定にしておけばいい話。ldapserverintegrity は旧設定の 0x1 だと強制されちゃうそうです。0 に設定すればオフにできるそうです(コメントありがとうございます。詳しくはこちらの赤字部分を参照のこと → https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/ldap-channel-binding-and-ldap-signing-requirements-march-update/ba-p/921536/
※ LDAPS を利用している場合は、影響をテストするために、さらに LDAP サーバーにレジストリを手動で作成して LDAP チャネルバインディングを構成する必要があるみたい。この設定も 2020 年 3 月の Windows Update で既定で有効になるらしい。→ LdapEnforceChannelBinding レジストリ エントリの設定による SSL/TLS 接続の LDAP 認証の安全性の向上(https://support.microsoft.com/ja-jp/help/4034879/

C:\> REG QUERY HKLM\System\CurrentControlSet\Services\NTDS\Parameters /v ldapenforcechannelbinding

エラー: 指定されたレジストリ キーまたは値が見つかりませんでした

C:\> REG ADD HKLM\System\CurrentControlSet\Services\NTDS\Parameters /v ldapenforcechannelbinding /t REG_DWORD /d 1(または2)
この操作を正しく終了しました。





4 件のコメント:

  1. バインド失敗時のメッセージですが、サポート情報(日)「Ldap_simple_bind_s() に失敗しました: 強力な認証が必要です」、(英)「Ldap_simple_bind_s() failed: Strong Authentication Required」となっていますが、マイ環(Windows Server 2016 AD DS)では「ldap_simple_bind_s() failed: 資格情報が無効です」でした。

    これは、Channel Bindingによる影響ではありませんか?

    返信削除
  2. 分かりません。エラーになること&現在の環境に影響がないことを確認することが重要なので、エラーメッセージの違いについては気にしておりません(深入りしません)。

    返信削除
  3. https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/ldap-channel-binding-and-ldap-signing-requirements-march-update/ba-p/921536/page/3#comments
    最新のコメントによると、延期と設定の変更がありそうです。

    返信削除
  4. 延期が公式にアナウンスされましたので、上記URLの内容をご確認ください。

    返信削除

注: コメントを投稿できるのは、このブログのメンバーだけです。