DNSキャッシュポイズニングの仕組みやカミンスキー型攻撃、SAD DNSなどの進化した攻撃手法を解説。2025~2026年に確認されたBINDの脆弱性やDNSSEC、DNS Cookies、ログ監視など、現在求められる実践的なDNSセキュリティ対策までわかりやすく紹介します。
はじめに:DNSキャッシュポイズニングが今も重要な理由
Webサイトを利用するとき、私たちは通常「example.com」のようなドメイン名を入力します。しかしコンピューターが通信に利用するのはIPアドレスです。この名前とIPアドレスの対応付けを行うのがDNS(Domain Name System)です。
DNSでは、毎回権威DNSサーバーへ問い合わせる負荷を減らすため、再帰DNSリゾルバーが取得した情報を一定期間キャッシュします。この仕組みは高速化に不可欠ですが、もしキャッシュに偽の情報を登録されれば、正規サイトへのアクセスを攻撃者が用意したサーバーへ誘導できてしまいます。これがDNSキャッシュポイズニングです。
2008年に大きな注目を集めた「カミンスキー型攻撃」以降、DNSソフトウェアでは問い合わせIDや送信元ポートのランダム化など防御策が強化されました。しかし、DNSの実装や周辺機能に存在する弱点を利用した攻撃は現在も研究されており、2025~2026年にもBINDでキャッシュポイズニングにつながる脆弱性が公表されています。
DNSキャッシュポイズニングの仕組み
DNSには大きく分けて、ドメイン情報を管理する「権威DNSサーバー」と、利用者からの問い合わせを受けて名前解決を行う「再帰DNSリゾルバー」があります。
例えば利用者が「www.example.com」のIPアドレスを要求すると、再帰リゾルバーは必要に応じて権威DNSサーバーなどへ問い合わせ、その結果をキャッシュします。次の利用者から同じ問い合わせが来れば、キャッシュされた情報を返せるため、通信を高速化できます。
DNSキャッシュポイズニングでは、この「キャッシュする」という仕組みが攻撃対象になります。
攻撃者は正規のDNS応答に見せかけた偽応答を送り、リゾルバーが問い合わせているタイミングで偽情報を受け入れさせようとします。成功すると、正規ドメインに対する名前解決結果が攻撃者のIPアドレスなどに置き換わり、同じリゾルバーを利用する複数のユーザーに影響が及ぶ可能性があります。
被害としては、フィッシングサイトへの誘導、認証情報の窃取、マルウェア配布、Webサービスへのアクセス障害などが考えられます。
カミンスキー型攻撃とSAD DNS
カミンスキー型攻撃
2008年に明らかになったカミンスキー型攻撃は、DNSの問い合わせIDだけでなく、問い合わせ対象や送信元ポートなどの組み合わせを狙って大量の偽応答を送り込むことで、キャッシュへの侵入確率を高める攻撃です。
この問題を契機として、DNSリゾルバーでは問い合わせIDやUDP送信元ポートのランダム化などが広く実装されました。現在のDNSキャッシュポイズニング対策の基本になっている考え方です。
SAD DNS
その後も攻撃研究は続いています。2020年に発表されたSAD DNS(Side-channel AttackeD DNS)は、ネットワークのサイドチャネルを利用してDNS通信に関する情報を推測し、従来のランダム化による防御を回避する可能性を示しました。2021年にはSAD DNS 2.0も発表されています。
つまり、「問い合わせIDとポートをランダム化しておけば完全に安全」という考え方ではなく、DNSリゾルバーそのものを継続的に更新し、多層的に防御することが重要です。
2025~2026年にもキャッシュポイズニング脆弱性が発見
DNSキャッシュポイズニングは過去の問題ではありません。
例えばBIND 9では2025年に、疑似乱数生成器(PRNG)の弱点によって攻撃者が送信元ポートと問い合わせIDを予測できる可能性がある「CVE-2025-40780」が公表されました。影響を受けるのは主にキャッシュを行うリゾルバーで、ISCは修正版へのアップグレードを案内しています。
同じく2025年には、不要なリソースレコードをキャッシュへ注入できる可能性がある「CVE-2025-40778」も公開されました。こちらもリゾルバーが影響を受ける脆弱性です。
さらに2026年7月には、RRSIGとワイルドカードの処理に関する「CVE-2026-11721」が公開され、特定条件下でキャッシュポイズニングにつながる可能性が示されました。
これらの事例から分かるのは、DNSセキュリティでは「古典的な攻撃への対策」だけでは不十分だということです。DNSソフトウェアの実装上の問題も含め、継続的なパッチ適用が不可欠です。
DNSキャッシュポイズニングへの主な対策
DNSSECを導入する
DNSSEC(DNS Security Extensions)は、DNSレコードに電子署名を付け、リゾルバーが応答の正当性を検証できるようにする仕組みです。
問い合わせIDやポート番号の推測を困難にする従来型の防御とは異なり、「そのDNS情報が正しく署名されたものか」を検証する点が大きな特徴です。ISCも、DNSプロトコルの根本的なキャッシュポイズニング問題に対する完全な解決策としてDNSSECを位置付けています。
ただし、DNSSECを導入すればすべてのDNS攻撃を防げるわけではありません。鍵管理、署名、検証、設定ミスなど、運用面の問題にも注意が必要です。
ソースポートや問い合わせ情報をランダム化する
DNSリゾルバーでは、問い合わせIDや送信元ポートを予測されにくくすることが基本的な防御になります。
一方、BINDでは2025年の脆弱性のように、乱数生成の実装そのものが問題になる可能性もあります。そのため、単に「ランダム化されているから安心」と考えるのではなく、利用しているDNSソフトウェアを最新のセキュリティ修正版へ更新することが重要です。
DNS Cookiesを活用する
DNS Cookiesは、DNS通信の相手が正当な通信相手であることを確認するための仕組みです。UDPを利用するDNSは送信元を偽装されやすいため、DNS Cookiesによって偽装通信への耐性を高められます。BINDではDNS Cookiesへの対応が進んでいます。
オープンリゾルバーを避ける
誰でも利用できる状態の再帰DNSサーバーは、キャッシュポイズニングだけでなく、DNSリフレクション攻撃など別の攻撃にも悪用される可能性があります。
企業ネットワークでは、再帰問い合わせを必要な利用者やネットワークに限定し、外部から自由に利用できない構成にすることが重要です。
ログとDNSトラフィックを監視する
DNSログには、通常とは異なる大量の問い合わせ、異常なNXDOMAIN、特定ドメインへの急激なアクセス増加など、攻撃やマルウェア感染の兆候が現れる場合があります。
現在のDNSセキュリティでは、DNSSECだけに依存するのではなく、ログ監視や異常検知、アクセス制御を組み合わせる「多層防御」が重要になっています。
2026年のDNSセキュリティで重要な視点
2026年3月、NISTは「SP 800-81 Rev.3 Secure Domain Name System (DNS) Deployment Guide」を正式公開しました。2013年版を置き換える改訂版で、DNSSECだけでなく、権威DNS、再帰DNS、暗号化DNS、DNSログ、ゼロトラストなどを含め、DNSを組織のセキュリティ基盤として捉えています。
これはDNSセキュリティの考え方が、「DNSSECを入れるかどうか」という単一の技術論から、DNSインフラ全体の完全性・可用性・機密性をどう守るかという運用設計へ広がっていることを示しています。
特に企業では、DNSを単なる名前解決サービスとして扱うのではなく、ゼロトラストやセキュリティ監視の一部として位置付けることが重要です。
まとめ:DNSは「設定して終わり」ではない
DNSキャッシュポイズニングは、DNSのキャッシュ機構を悪用して偽の名前解決情報を利用者へ提供する攻撃です。2008年のカミンスキー型攻撃以降、ランダム化やDNSSECなどの対策が進みましたが、SAD DNSのような研究や、2025~2026年に公表されたBINDの脆弱性からも、脅威が消滅したわけではないことが分かります。
現在のDNSセキュリティで重要なのは、DNSSECによる認証、問い合わせ情報のランダム化、DNS Cookies、アクセス制御、ソフトウェアの迅速な更新、そしてログ・トラフィック監視を組み合わせることです。
また、DNSは企業ネットワーク全体の通信に関わるため、障害や侵害が発生すると広範囲へ影響する可能性があります。NISTの2026年版ガイドが示すように、DNSをインフラの一部ではなくセキュリティ基盤として捉え、継続的に設定・脆弱性・ログを見直すことが、これからのDNS運用には求められます。

