この記事は、特に以下の Windows サーバー バージョンに適用されます。
-
Windows Server Version 2004 (Server Core インストール)
-
Windows Server Version 1909 (Server Core インストール)
-
Windows Server Version 1903 (Server Core インストール)
-
Windows Server Version 1803 (Server Core インストール)
-
Windows Server 2019 (Server Core インストール)
-
Windows Server 2019
-
Windows Server 2016 (Server Core インストール)
-
Windows Server 2016
-
Windows Server 2012 R2 (Server Core インストール)
-
Windows Server 2012 R2
-
Windows Server 2012 (Server Core インストール)
-
Windows Server 2012
-
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core インストール)
-
Windows Server 2008 R2 for x64-based Systems Service Pack 1
-
Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core インストール)
-
Windows Server 2008 for x64-based Systems Service Pack 2
-
Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core インストール)
-
Windows Server 2008 for 32-bit Systems Service Pack 2
はじめに
2020 年 7 月 14 日、Microsoft は「CVE-2020-1350 | Windows DNS サーバーのリモートでコードが実行される脆弱性」で説明されている問題に対するセキュリティ更新プログラムをリリースしました。 このアドバイザリでは、DNS サーバーの役割を実行するように構成されている Windows サーバーに影響を与える重要なリモート コード実行 (RCE) の脆弱性について説明しています。 サーバー管理者はできるだけ早くセキュリティ更新プログラムを適用することを強くお勧めします。
レジストリベースの回避策は、影響を受ける Windows サーバーを保護するために使用でき、管理者がサーバーを再起動することなく実装できます。 この脆弱性は不安定であるため、管理者は、標準の展開方法を使用してシステムを更新できるようにするために、セキュリティ更新プログラムを適用する前に回避策を実装する必要がある場合があります。
回避策
重要
このセクションの手順の実行には注意が必要です。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 変更する前に、問題の発生に備えて復元用にレジストリのバックアップを作成してください。
この脆弱性を回避するには、次のレジストリを変更して、許可される最大の受信 TCP ベースの DNS 応答パケットのサイズを制限します。
キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
値 = TcpReceivePacketSize
種類 = DWORD
値のデータ = 0xFF00
注意事項
-
既定 (最大) 値データ = 0xFFFF。
-
このレジストリ値が貼り付けられているか、グループ ポリシーを介してサーバーに適用されている場合、値は受け入れられますが、実際には要求した値に設定されません。 値 0x を [値のデータ] ボックスに入力することはできません。 ただし、貼り付けは可能です。 値を貼り付けると、10 進値 4325120 が取得されます。
-
この回避策は、FF00 を 10 進値 65280 の値として適用します。 この値は、最大許容値の 65,535 より 255 小さくなっています。
-
レジストリの変更を有効にするには、DNS サービスを再起動する必要があります。 このためには、管理者特権を持つコマンド プロンプトで次のコマンドを実行します。
net stop dns && net start dns
回避策の実装後、上位サーバーからの DNS 応答が 65,280 バイトより大きい場合、Windows DNS サーバーはクライアントの DNS 名を解決できなくなります。
この回避策に関する重要な情報
推奨値を超える TCP ベースの DNS 応答パケットはエラーなしでドロップされます。 そのため、一部のクエリが応答されない可能性があります。 これにより、予期しないエラーが発生する可能性があります。 DNS サーバーがこの回避策による悪影響を受けるのは、以前の緩和策で許可されている (65,280 バイトを超える) より大きい有効な TCP 応答を受信した場合のみです。
値が減少しても、標準の展開や再帰クエリに影響を与える可能性は低いです。 ただし、特定の環境で非標準のユースケースが存在する場合があります。 サーバーの実装がこの回避策によって悪影響を受けるかどうかを判断するには、診断ログを有効にし、一般的なビジネス フローを表すサンプル セットをキャプチャする必要があります。 次に、ログ ファイルを確認して、異常な大きな TCP 応答パケットの存在を特定する必要があります
詳細については、「DNS ログと診断」を参照してください。
よく寄せられる質問
この回避策は、DNS の役割を実行している Windows Server のすべてのバージョンで利用できます。
このレジストリ設定が DNS ゾーン転送に影響しないことを確認しました。
いいえ、両方のオプションは必須ではありません。 セキュリティ更新プログラムをシステムに適用すると、この脆弱性が解決されます。 レジストリ ベースの回避策は、セキュリティ更新プログラムをすぐに適用することができず、セキュリティ更新プログラムの代替として考えるべきではない場合にシステムを保護します。 更新プログラムが適用された後、回避策は不要になり、削除する必要があります。
この回避策は、セキュリティ更新プログラムと互換性があります。 ただし、更新プログラムの適用後は、レジストリの変更は不要になります。 ベスト プラクティスでは、非標準構成の実行に起因する可能性のある潜在的な将来の影響を防ぐために、レジストリの変更が不要になったときに削除するように指示しています。
DNS サーバーを実行するすべてのユーザーに、セキュリティ更新プログラムをできるだけ早くインストールすることをお勧めします。 更新プログラムをすぐに適用できない場合は、更新プログラムをインストールするための標準的な手順が完了する前に、環境を保護できます。
いいえ。レジストリ設定は、受信 TCP ベースの DNS 応答パケットに固有であり、一般的にシステムの TCP メッセージの処理にグローバルには影響しません。