カリフォルニア大学と清華大学の学者のグループが、DNSキャッシュポイズニング攻撃の復活につながる可能性のある一連の重大なセキュリティ上の欠陥を発見。(CVE-2020-25705)
この欠陥は、オペレーティングシステムLinux 3.18-5.10、Windows Server 2019(バージョン1809)以降、macOS 10.15以降、およびFreeBSD12.1.0以降に影響します。
SAD DNS攻撃は、コーヒーショップ、ショッピングモール、または空港などのワイヤレスルーターによって管理されるパブリックワイヤレスネットワークなど、DNSフォワーダーまたはリゾルバーからの要求をトリガーできるネットワーク内のハッキングされたマシンを利用することによって機能する。
具体的には、偽のUDPパケットを被害者のサーバーに送信し、受信したICMP応答に基づいて、正しい送信元ポートに到達しことを推測して、送信元ポート番号を絞り込む。毎秒1,000ポートのスキャン速度を実現し、全65536ポートがたったの60秒で完了する。送信元ポートがランダム化されていないため、攻撃者は悪意のあるIPアドレスを挿入して、Webサイトのトラフィックをリダイレクトし、DNSキャッシュポイズニング攻撃を成功させるだけとなる。
対策
SAD DNSに対抗するために、ICMP応答を無効にし、DNSクエリのタイムアウトを設定することを推奨している。
なおLinuxカーネルセキュリティチームからはICMPグローバルレート制限をランダム化してサイドチャネルにノイズを導入するパッチがリリースされています。
icmp: randomize the global rate limiter | Kernel.org git repositories
Linux kernel source tree
git.kernel.org
Microsoftからも1221のUDPバッファーサイズを持つようにWindowsDNSサーバーを構成するようセキュリティアドバイザリーがリリースされました。
Microsoft Guidance for Addressing Spoofing Vulnerability in DNS Resolver | MSRC
ADV200013
msrc.microsoft.com