DNSSECの設計上の脆弱性により、単一のDNSパケットがドメイン名の解決を提供するサーバーの処理能力を使い果たし、サーバーを無効化する可能性があることが明らかになった。DNSSECは、DNSのアップグレード版であり、クエリの結果が途中で改ざんされないようにするために暗号化を使用している。このセキュリティホールはKeyTrapと呼ばれ、公開DNSサービスを停止させることが可能である。KeyTrapの攻撃は非常にステルスであり、単一のDNS応答パケットでリゾルバを170秒から16時間まで停止させることができる。この脆弱性は、BIND 9 DNSリゾルバやUnbound DNSリゾルバなど、さまざまなDNSソフトウェアに存在している。
KeyTrap攻撃により、DNSSECを利用しているクライアントはホスト名をIPアドレスに安全に解決できなくなり、接続の喪失や通常のDNSへのダウングレードが発生する可能性がある。DNSの停止は、コンテンツへのアクセスの拒否だけでなく、スパム防御や暗号防御、インタードメインルーティングセキュリティなど他のシステムにも干渉する可能性がある。KeyTrap攻撃の潜在的な被害は、ウェブブラウジング、メール、インスタントメッセージなどのインターネットを利用するアプリケーションに深刻な影響を与える可能性がある。
KeyTrap攻撃は、特別に作成されたDNSSECレコードを使用してDNSリゾルバを停止させる。DNSSECの仕様により、リゾルバは利用可能なすべての暗号化素材を送信し、バリデーションが成功するまで受信した暗号化素材のいずれかを使用する必要がある。KeyTrap攻撃は、衝突するキータグと衝突するキーを提示することでCPUを過負荷にすることができる。
KeyTrapの脆弱性に関する情報は、関連するベンダーや主要な公開DNSプロバイダーと共有され、パッチのリリースが調整された。KeyTrapの脆弱性に対するパッチは、さまざまなベンダーによって提供されており、BIND 9 DNSソフトウェアなどで修正されている。しかし、この脆弱性を完全に解消するには、DNSSECの標準を改訂する必要があるが、解決は容易ではない。
2023年12月時点で、世界中のWebクライアントの約31%がDNSSECを検証するDNSリゾルバを使用している。DNSSECを利用しているクライアントはKeyTrap攻撃の影響を受け、ホスト名をIPアドレスに安全に解決できなくなる可能性がある。GoogleやCloudflareなどの公開DNSサービスもKeyTrap攻撃の影響を受け、サービスの停止が起こる可能性がある。DNSSECの普及と影響範囲については、改善が必要とされている。
【ニュース解説】
DNSSECとは、インターネット上でドメイン名をIPアドレスに変換する際に使用されるシステムで、その安全性を高めるための拡張機能です。しかし、最近発見されたKeyTrapと名付けられた脆弱性により、DNSSECを提供するサーバーが単一のDNSパケットによって過負荷に陥り、機能停止するリスクがあることが明らかになりました。この脆弱性は、サーバーが受け取る特定のDNSSECレコードのバリデーション(検証)過程でCPUを過剰に使用させることにより発生します。
この問題の重大性は、DNSSECを利用するクライアントがホスト名をIPアドレスに解決できなくなることにあります。これにより、ウェブブラウジング、メール、インスタントメッセージングなど、インターネットを利用する多くのアプリケーションの利用が困難になる可能性があります。さらに、スパム防御や暗号防御、インタードメインルーティングセキュリティなど、他のシステムにも悪影響を及ぼす恐れがあります。
この脆弱性は、DNSSECの仕様に基づいているため、解決策を見つけることが難しいとされています。脆弱性を完全に排除するためには、DNSSECの標準自体を見直す必要がありますが、これには時間と労力がかかります。一方で、関連するベンダーや公開DNSプロバイダーは、この問題に対処するためのパッチをリリースしていますが、これらのパッチは標準を破る形となっており、完全な解決策とは言えません。
この脆弱性の発見は、インターネットのセキュリティに対する新たな警鐘を鳴らしています。DNSSECは、DNSの安全性を高めるために広く採用されていますが、このような脆弱性が存在することで、その効果が損なわれる可能性があります。今後、DNSSECの標準を見直し、より安全なインターネット環境を構築するための取り組みが求められています。また、この問題は、セキュリティ対策が常に進化し続ける必要があることを改めて示しており、技術者や研究者にとっては、新たな課題となるでしょう。
from Just one bad DNS packet can bring down a public DNSSEC server.