Zerologon(CVE-2020-1472)とは?Active Directoryの重大な脆弱性と対策を徹底解説
2020年8月、MicrosoftはActive Directoryに存在するWindows Serverの重大な脆弱性CVE-2020-1472(通称:Zerologon)を修正するセキュリティ更新プログラムを公開しました。多くの環境では、この更新プログラムはすでにすべてのドメインコントローラー(DC)へ適用済みでしょう。しかし、DCへの適用だけで対応が完了したと思っている管理者は少なくありません。実は、それだけでは話が終わりません。本記事では、Zerologon脆弱性の仕組み、Active Directoryドメインコントローラーの保護方法、2021年2月に追加でリリースされる更新プログラムの背景、そしてWindows Server管理者が取るべき具体的な対応について詳しく解説します。
ZeroLogonとは:Windows Netlogonの脆弱性 CVE-2020-1472
CVE-2020-1472は、Windows Serverの全バージョン(2008 R2、2012、2016、2019など)のActive Directoryに存在する重大な脆弱性で、認証されていない攻撃者がリモートからドメイン管理者権限を取得できる可能性があります。Netlogon Remote Protocol(MS-NRPC)におけるAES-CFB8暗号化の実装バグが原因で、ネットワーク経由でドメインコントローラーにアクセスできる攻撃者は、権限を昇格し、AD内のドメインコントローラーのコンピューターアカウントパスワードを変更できてしまいます。その後、攻撃者はSYSTEM権限でDCに対して認証を行い、Active Directory全体を完全に掌握できます(ドメイン管理者パスワードのリセットや、AD内での任意の操作など)。
Netlogonプロトコルは、ADドメインネットワークにおけるユーザーおよびコンピューターの認証に使用されるほか、ドメイン内のコンピューターアカウントパスワードをリモートで更新する際にも利用されます。
Zerologonを悪用するには、攻撃者はNetlogon経由で接続を確立する必要があります(使用ポート:RPCロケーターTCP/135、RPC動的ポート範囲、TCP/445上のSMB)。ゼロから始まる特定のシーケンスを使用することで、正規のドメインコンピューターになりすますことが可能となり、権限昇格後にDCアカウントのパスワードを変更できます。
この脆弱性には、CVSS最大評価である10点満点中10点が付与されています。
影響を受けるのは以下のすべてのWindows Serverバージョンです。
- Windows Server 2019 / Windows Server 2016
- Windows Server バージョン2004 / 1909 / 1903
- Windows Server 2012 R2 / Windows Server 2012
- Windows Server 2008 R2 SP1
現在、複数の実用的なZerologon公開エクスプロイトが存在しており、mimikatzにもzerologonモジュールが追加されています。

注意:自社ネットワーク内でZerologonエクスプロイトを実行テストしないでください。DCのパスワードを空にリセットしてしまうと、ADインフラストラクチャに深刻なダメージを与える恐れがあります。
自社のDCが脆弱かどうかを検証するためのPythonスクリプトはこちらで公開されています:https://github.com/SecuraBV/CVE-2020-1472
Zerologon対策のWindows Server更新プログラム
MicrosoftはWindows Server 2008 R2のサポートを終了しているため、このOS向けの公式修正プログラムは公開されていません。ただし、Extended Security Updates(ESU)の1年契約を購入している場合は、WS2008R2向けの更新プログラムKB4571729をダウンロードして適用できます。
また、Windows Server 2008 R2向けの非公式なZerologonパッチとして0patch(https://blog.0patch.com/2020/09/micropatch-for-zerologon-perfect.html)が提供されています。利用する場合は自己責任となります。
その他のWindows Serverバージョンについては、Windows UpdateやWSUSから入手できるほか、Microsoft Update Catalogから手動でMSUファイルをダウンロードしてインストールすることも可能です。
- Windows Server 2019(KB4565349)/ Windows Server 2016(KB4571694)
- Windows Server バージョン2004(KB4566782)/ 1909(KB4565351)/ 1903(KB4565351)
- Windows Server 2012 R2(KB4571723)/ Windows Server 2012(KB4571702)
ZeroLogonからActive Directoryドメインコントローラーを守る方法
Zerologon脆弱性を修正する更新プログラムは2020年8月にリリースされました。Active Directoryを保護するには、お使いのWindows Serverバージョンに応じた2020年8月の累積更新プログラム(またはそれ以降)を、すべてのドメインコントローラーにインストールする必要があります。
実際のところ、このパッチは暫定的な修正です。Microsoftは、Netlogonにおける安全なRPC(Remote Procedure Call)への円滑な移行を実現するため、2段階でZerologonに対応します。
- 第1段階(展開フェーズ):8月のパッチは、既知の攻撃シナリオからドメインコントローラーを保護する緊急修正です。ただし、この更新プログラムだけでは脆弱性は完全には解消されません(Netlogon経由でDCを攻撃する他のシナリオも存在します)。新しいセキュア版RPCプロトコルに対応していないレガシーシステムは、引き続きDCに接続できます。
- 第2段階(強制フェーズ):次の更新プログラムは2021年2月9日にリリースされます。適用後は、すべてのドメインコントローラーが旧Netlogonプロトコルを使用する接続を拒否するようになります(GPOを使えばレガシーデバイスの例外設定も可能です。詳細は後述します)。
第1段階のパッチ適用後は、ドメインコントローラーのログで、安全でないバージョンのNetlogon RPCを使用して接続しようとしたデバイスのイベントを確認できます。また、ネットワーク内にレガシーデバイスがない場合は、2021年を待たずに、FullSecureChannelProtectionレジストリ値を使用してDC側で旧Netlogon RPCのサポートを無効化することも可能です。
セキュリティ更新プログラムの適用後、脆弱なバージョンのNetlogonを使用して接続を試みたコンピューターのイベントが、ドメインコントローラーのログに記録されるようになります。イベントビューアーの[Windowsログ]→[システム]で、NETLOGONソースの以下のイベントIDに注目してください。
- イベントID 5827 / 5828:Netlogonサービスが、脆弱なNetlogonセキュアチャネル接続をコンピューターアカウントから拒否したことを示します。つまり、このコンピューターによる脆弱なNetlogonバージョンでの接続は拒否されています(2021年2月までは参考情報であり、実際に接続がブロックされるわけではありません)。
すべてのイベントをCSVファイルに保存し、DCへの接続を試みたデバイス名を分析できます。以下のPowerShellコマンドを使用してください。Get-EventLog -LogName System -InstanceId 5827 -Source NETLOGON|Select-Object message| Export-Csv c:\ps\5827.csv -Encoding utf8 - イベントID 5829:脆弱なNetlogonバージョンを使用した接続が許可されたことを示します。
- イベントID 5830 / 5831:デバイスがポリシー「ドメインコントローラー:脆弱なNetlogonセキュアチャネル接続を許可する」に登録されているため、脆弱なNetlogonバージョンによる接続が許可されたことを示します。
2021年2月までに、検出されたすべてのデバイスに最新のセキュリティ更新プログラムを適用してください。Windowsデバイスであれば最新の累積更新プログラムの適用で十分です。Netlogon Remote Protocolを使用してActive Directoryに接続するその他のデバイス(OEM機器など)については、各ベンダーに更新プログラムの提供状況を確認してください。
2021年2月には特別なセキュリティ更新プログラムがリリースされ、ドメインコントローラーは「接続するすべてのデバイスがセキュア版Netlogonプロトコルを使用しなければならない」モードに移行します。同時に、イベント5829に記録されたデバイス(セキュア版Netlogonに非対応)はドメインに接続できなくなるため、これらのデバイスは手動でGPOの除外リストに追加する必要があります。
これは、サポートが終了している古いWindowsバージョン(Windows XP / Windows Server 2003 / Vista / 2008)が、ADドメイン内で正常に動作できなくなることを意味します。
Zerologon対策のためのグループポリシー(GPO)設定
ネットワーク内に、安全でないNetlogonバージョンしかサポートしないデバイスが残っていない場合は、2021年2月9日(旧Netlogonバージョンによる接続を拒否する第2段階の更新プログラムのリリース日)より前に、DCにセキュア版Netlogonの使用を強制する個別のGPOを作成できます。そのためには、以下のレジストリキーをGPO経由ですべてのDCに展開します。
- レジストリキー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters - 値の種類:
DWORD - 値の名前:
FullSecureChannelProtection
設定可能な値は以下のとおりです。
- 1:強制モードを有効にします。DCは脆弱なバージョンのNetlogonによる接続を拒否します。ポリシー「ドメインコントローラー:脆弱なNetlogonセキュアチャネル接続を許可する」に追加されたアカウントには、この設定は適用されません(後述)。
- 0:DCが、非Windowsデバイスからの脆弱なNetlogonバージョンによる接続を受け入れることを許可します(このオプションは強制フェーズのリリースで廃止予定です)。

非WindowsデバイスがNetlogon経由でDCに接続できるようにするには?
特定のデバイスやアカウントが、脆弱なNetlogonバージョンを使用してDCに接続することを許可するための専用パラメーターがGPOに用意されています。ポリシー名は「ドメインコントローラー:脆弱なNetlogonセキュアチャネル接続を許可する」で、[コンピューターの構成]→[Windowsの設定]→[セキュリティの設定]→[ローカルポリシー]→[セキュリティオプション]にあります。

まずADにセキュリティグループを作成し、レガシーNetlogon RPCを使用してドメインコントローラーとのセキュアチャネル確立を許可したいアカウントやデバイスをそのグループに追加します。
次に、DCに対してポリシーを有効化し(Default Domain Controller Policyレベルで設定)、[セキュリティの定義]をクリックして、安全でないNetlogonプロトコルの使用を許可するグループを指定します([脆弱な接続の作成]→[許可])。
逆に[拒否]を選択すれば、特定のデバイスによる安全でないNetlogon RPCの使用を明示的に禁止することもできます。
-
Active Directory Server 2003 を Active Directory Server 2016 に段階的に移行する方法
このチュートリアルでは、Windows Server 2003 Active Directory を Windows Server 2016 AD に移行する方法を紹介します。ご存じのとおり、Windows Server 2003 のサポートと更新は 2015 年 7 月に終了し、多くの企業が既に移行しているか、Windows Server 2003 サーバーを Windows Server 2012R2 または Windows Server 2016 にアップグレードする予定です。 Active Directory の移行は、重要かつ深刻な手順です。なぜなら、AD サーバーは、ネットワーク
-
Windows Server Backupを使ってActive Directoryサーバー(2016/2012)をバックアップ・スケジュールする方法
本記事では、Windows Server Backupアプリケーションを使用して、Active Directoryが稼働するWindows Server 2016またはServer 2012をバックアップする方法をご紹介します。この記事を読み終える頃には、Windows Server 2016/2012上でサーバーの完全バックアップを実行・スケジュール設定できるようになり、万一トラブルが発生した際にもサーバーを復元できるようになります。 ご存じのとおり、Windows Server 2008、2012/2012R2、2016では「システムの復元」機能は利用できません(サポートされていません)。