2020年3月のWindows Updateで、Active Directoryのユーザ認証などに使う「LDAP 署名」と 「LDAP チャネル バインディング」が規定(デフォルト)で有効となるようです。何も準備しないでいると、”Active Directoryにログオンできない” といったことが起こり得ます。
2020/2/14 更新
2/4(米国時間)に計画の変更(延長)が発表されました。
目次
概要
2020/1/31 の時点での情報
2020年3月のWindows Updateの更新で「 Active Directory サーバー上で LDAP チャネル バインディングと LDAP 署名を既定で有効にする」ことになります。
Windows の 2020 年 LDAP 署名と LDAP チャネル バインディングの要件
<https://support.microsoft.com/ja-jp/help/4520412/2020-ldap-channel-binding-and-ldap-signing-requirement-for-windows>
2020/2/4 の時点での情報
計画の変更(延長)されました。
2/4(米国時間)にMicrosoft社アドバイザリADV190023の情報が更新されました。
当初の予定が変更され、以下のようになりました。
①2020年3月のセキュリティ更新プログラム
LDAP署名およびLDAPチャネルバインディングに関する監査イベントやログの追加、グループ ポリシーの名称変更が行われます。
②2020年後半のセキュリティ更新プログラム
LDAP署名およびLDAP チャネルバインディングの設定値を変更(既定では有効)。
参考
Microsoft Security Response Center のblog
<https://msrc-blog.microsoft.com/category/jpsecurity/>
[AD管理者向け] 2020 年 LDAP 署名と LDAP チャネルバインディングが有効化。確認を!
<https://msrc-blog.microsoft.com/2019/10/02/ldapbinding/>
対象のWindows
対象となるWindowsサーバ、Windowsクライアントは以下になります。
■Windowsサーバ:
・Windows Server 2008 SP2、Windows Server 2008 R2 SP1
・Windows Server 2012、Windows Server 2012 R2
・Windows Server 2016
・Windows Server 2019
■Windowsクライアント:
・Windows 7 SP1
・Windows 8.1
・Windows 10 1507、1607、1703、1709、1803、1809、1903、1909
Active Directory Domain Services (AD DS)の役割がインストールされたサーバー OS 、及び、Active Directory Lightweight Directory Services (AD LDS) の役割がインストールされたクライアントとなります。
一般のWindow10クライアントは対象ではありません。
何のために行うのか
細かい話はMicrosoftの公開情報を見ていただくとして、簡単に言うと
Active Directoryで、ユーザログオン時やファイルサーバのアクセス時の
”クライアントとActive Directory(ドメインコントローラサーバ)の通信を安全にする”
ものになります。
Webサービスで言う「httpに対するhttps」 やDNSサービスでいう「DNSSEC」のようなものです。
何がどうなるのか、影響は?
Microsoftは以下のように公開しています。
機能 | 内容 | 通信方式 |
LDAP 署名 | セッションキー LDAP セッションに署名を行うことができます。これにより、LDAP サーバーと LDAP クライアントのセッションが署名されるため、改ざんを防止することができます。 | LDAP → LDAPs に変更 |
LDAP チャネルバインディング 必須(LDAPS 利用時のみ) | LDAP クライアントは、channel binding tokens (CBT) を LDAP サーバーに提供するようになります。 | LDAP over SSL/TLS (LDAPS) |
詳細は上記のMicrosoftのサイトを参照いただくとして、簡単に言うと
■どうなるか:
Active Directory認証に関する通信がLDAP署名付き(LDAPs)になる。
■起こりえる現象:
①Active Directoryに証明書をインストールしていないとユーザがログオンできなくなる。
ログオンなど認証の通信(LDAP)に証明書を必要とするが、Active Directoryに証明書がないと認証エラーとなる。
②Active Directoryとログオン連携をしているアプリケーションでログオンできなくなる。
アプリケーションに認証の連携がLDAP方式だけであると、LDAPs方式では連携が取れなくなる(アプリケーションがLDAPs通信できない)。
何をすべきか
Microsoftでは、すべきことを公開しています。
[AD管理者向け] 2020 年 LDAP 署名と LDAP チャネルバインディングが有効化。確認を!
https://msrc-blog.microsoft.com/2019/10/02/ldapbinding/
セキュリティ アドバイザリ ADV190023
https://portal.msrc.microsoft.com/ja-JP/security-guidance/advisory/adv190023
詳細は該当のサイトを見ていただくとして、簡単に言うと以下を行えというものです。
①事前(2020/3 になる前)のテストを実施
LDAP 署名と LDAP チャネルバインディングを有効にして動作を確認する。
②2020/3 のWindows Updateを適用
Windows Updateはサーバ機でも必ずすぐに適用。
なお、アプリケーションソフトウェアメーカーは
「2020/3 のWindows Updateを適用しないでください」
と、言っているところが多いです。
実際にやること(暫定的対処)
Microsoftの言うように行うのが一番ですが、Windows Updateの公開日までにどこまで対策できるかわかりません。
ですので、現実的に ”安全かつ確実ですぐできる” な暫定的対策として以下があります。
2020/後半 のWindows Updateを適用しない
どうしても当てないといけないセキュリティパッチが出ないという条件ですが、準備が整っていないのであればWindows Updateの適用をやめます。
なお、当初は 「2020/3 のWindows update を適用しない」をお奨めしていましたが、2020/3 のupdateでは、”設定が有効化されない” のでupdateを適用しても問題ありません。
①WSUSサーバ導入済みの場合
WSUSサーバを導入しているのであれば、”承認しない” だけでセキュリティパッチを配信しなくなります(配信しないので適用もされない)。
②WSUSサーバがない場合
Active Directoryのグループポリシで「品質更新プログラムをいつ受信するかを選択してください」を30日(最大)に設定します。
この場合は、30日を過ぎると無条件に品質更新プログラムが適用されますので、それまでに準備が必要となります。
そもそも、サーバ機へのWindows Updateの適用は ”手動でスケジュールを組んで行う” 事を推奨していますので、WSUSサーバでの管理は必要と考えます。
もし、WSUSサーバの導入がまだであるとか、導入はしているが運用ができていないのであれば、この機会に検討することをお勧めします。ご相談ください。
LDAP署名を不要に(グループポリシの場合)
念のためになりますが、万が一パッチが当たってしまってLDAP署名が必要となったとしても、それを取り消せるようにActive DirectoryのグループポリシでLDAPに関する設定を行っておきます。
①グループポリシの作成
[グループポリシの監理]ツールを起動し、適当な名前(図では「LDAP-No署名」)のポリシを作成します。
そのポリシをドメインコントローラサーバに適用できるように「Default Domain Controller Policy」にリンクします
なお、「Default Domain Policy」に設定はしないことを推奨します(理由が知りたい場合は、こちらまで)。
②ドメインコントローラ向けの設定します。
■場所:
[コンピュータの構成] – [ポリシー] – [Windowsの設定] – [セキュリティの設定] – [ローカルポリシー] – [セキュリティオプション] の中の「ドメインコントローラ:LDAPサーバ署名必須」
■設定:
「このポリシーの設定を定義する」のチェックボックスをオンにし、下の項目は「なし」を選択
③グループポリシを編集して、クライアントの設定をします。
サーバーに [署名属性の要求] を設定した場合は、クライアントの設定も必要です。クライアントを設定しないと、サーバーとの接続が失われます。
■場所:
[コンピュータの構成] – [ポリシー] – [Windowsの設定] – [セキュリティの設定] – [ローカルポリシー] – [セキュリティオプション] の中の「ネットワークセキュリティ:必須の署名をしているLDAPクライアント」
■設定:
「このポリシーの設定を定義する」のチェックボックスをオンにし、下の項目は「署名を必要とする」を選択
LDAP署名を不要に(レジストリの場合)
基本的にはグループポリシで設定するのがよいのですが、レジストリで設定する場合は以下の場所となります。
①ドメインコントローラ向けの設定します。
■ハイブ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\LDAPServer
■キー
Integrity
■値
1(無効に相当
②クライアント向けの設定します。
■ハイブ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ldap
■キー
ldapclientintegrity
■値
1(2 になっている場合に 1 に変更)
参考
WINDOWS Server 2008 でLDAP署名を有効にする方法
https://support.microsoft.com/ja-jp/help/935834/how-to-enable-ldap-signing-in-windows-server-2008
ドメイン コントローラー: LDAP サーバー署名必須
https://docs.microsoft.com/ja-jp/windows/security/threat-protection/security-policy-settings/domain-controller-ldap-server-signing-requirements
ネットワーク セキュリティ: 必須の署名をしている LDAP クライアント
https://docs.microsoft.com/ja-jp/windows/security/threat-protection/security-policy-settings/network-security-ldap-client-signing-requirements
実際にやること(恒久的対策)
Microsoftの言うように行うためには、LDAP署名を有効にしての動作確認をおkナウ必要があります。おおよそ以下のステップになります。
①現在の設定の確認(LDAP署名が有効かどうか)
②LDAP署名機能を有効化し影響を確認(必要に応じて証明書のインストール)
この続きは、「Windows Update(2020年3月の更新)でLDAP 署名と LDAP チャネル バインディングが有効になる(その2:検証)」になります。