緊急CVE-2020-1350:Windows DNSサーバーの脆弱性 応急処置レジストリ変更を実施

Windows のDNSサーバーで脆弱性が見つかり、以下緊急パッチを適用する旨、Microsoftが注意喚起をしております。

CVE-2020-1350 | Windows DNS サーバーのリモートでコードが実行される脆弱性

本件は緊急で早急な対応が求められており、対策しないと組織内で膨大な影響が発生する可能性があります。
(この脆弱性による問題はワーム化が可能となるためです。)

対象はサーバーのみでクライアントは対象外です。

■対象となるWindowsServer

  • Windows Server 2008 for 32-bit Systems Service Pack 2
  • Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
  • Windows Server 2008 for x64-based Systems Service Pack 2
  • Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
  • Windows Server 2008 R2 for x64-based Systems Service Pack 1
  • Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
  • Windows Server 2012
  • Windows Server 2012 (Server Core installation)
  • Windows Server 2012 R2
  • Windows Server 2012 R2 (Server Core installation)
  • Windows Server 2016
  • Windows Server 2016 (Server Core installation)
  • Windows Server 2019
  • Windows Server 2019 (Server Core installation)
  • Windows Server, version 1903 (Server Core installation)
  • Windows Server, version 1909 (Server Core installation)
  • Windows Server, version 2004 (Server Core installation)

ただ、セキュリティパッチの適用をそう簡単にできない環境はあると思います。
そんなサーバー向けに応急処置になりますが、レジストリ変更による対応をMicrosoft社が公開しておりましたので、実施してみました。

KB4569509: DNS サーバーの脆弱性に関するガイダンス CVE-2020-1350

この脆弱性を回避するには、次のレジストリを変更して、許可される最大の受信 TCP ベースの DNS 応答パケットのサイズを制限します。

■レジストリパスHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
キー:TcpReceivePacketSize
値 :0xFF00

ただし、本手順を実施後、DNSサービスの再起動が必要となるため、クライアントや周辺システムは名前解決ができないなどの影響が発生します。特にADサーバー(Active Directory)はDNSサーバーのインストールが必須となるので、多くのIT管理者はADサーバー上で実施することが多くなるのではないかと思います。

冗長化構成している場合、1台ずつ対応するなどの検討が必要ですね。

レジストリキーの変更手順

対象のサーバーにログインし、コマンドプロンプトを起動します。
以下コマンドを実行します。

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters" /v "TcpReceivePacketSize" /t REG_DWORD /d 0xFF00 /f

コマンドを実行後、以下レジストリパスにキーが追加されます。
”HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters”

DNSサービスを再起動します。
Microsoft社公開の手順ではDNSサービスの再起動と書いてありますが、サーバーのOS再起動が実施可能であれば、OSの再起動のほうが確実です。

これで作業は完了ですが、あくまで応急処置にすぎません。

本設定は、65,280バイトを超えるTCPパケットをサーバーが受け取った場合、サーバーが正しく機能しない可能性があります。(設定した値以上のパケットを受け取った場合、予期しないエラーが発生する)

なのでMicrosoftは、セキュリティ更新プログラムを適用を強く推奨しております。パッチ適用後は、TcpReceivePacketSizeキーを設定している場合、削除したほうがいいですね。