対象試験と出題頻度
詳細をクリックして確認
情報セキュリティマネジメント
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)
用語の定義
DNSキャッシュポイズニングとは、一言で言うと「DNSサーバーのキャッシュに偽の情報を注入し、ユーザーを偽サイトに誘導する攻撃」のことです。
イメージとしては、「電話帳(DNS)の『○○銀行』の電話番号を、詐欺師の番号に書き換えてしまう」ようなものです。
利用者は正しい銀行名で電話をかけたつもりでも、実際には詐欺師につながってしまいます。DNSキャッシュポイズニングも同様に、正しいドメイン名を入力しても偽サイトに誘導されてしまう恐ろしい攻撃です。
解説
DNSキャッシュポイズニング(DNS Cache Poisoning)は、DNS(Domain Name System)の仕組みを悪用した攻撃です。DNSはドメイン名(例:www.example.com)をIPアドレス(例:192.0.2.1)に変換する「インターネットの電話帳」のような役割を持っています。DNSサーバーは問い合わせ結果を一定期間キャッシュ(一時保存)しますが、このキャッシュに偽の情報を注入(ポイズニング=毒を盛る)するのがこの攻撃です。
- 攻撃の仕組み:攻撃者はDNSサーバーが名前解決の問い合わせを行うタイミングを狙い、正規の応答よりも先に偽の応答を送信します。DNSサーバーがこの偽応答を正規のものと誤認してキャッシュに保存すると、以降そのドメインへのアクセスはすべて偽サイトに誘導されます。
- カミンスキー攻撃:2008年にセキュリティ研究者のダン・カミンスキーが発表した高度な攻撃手法で、従来の手法より効率的にDNSキャッシュを汚染できることが判明し、世界中でDNSのセキュリティ強化が進められました。
DNSキャッシュポイズニングが成功すると、ユーザーは正しいURLを入力しても偽サイトに誘導されます。これにより、フィッシング詐欺(偽の銀行サイトでログイン情報を窃取)、マルウェアの配布(偽のダウンロードサイトへ誘導)、通信の傍受(中間者攻撃への発展)など、深刻な被害が発生します。ユーザーはブラウザのアドレスバーに正しいURLが表示されているため、偽サイトに気づきにくいという特徴があります。
具体的な活用例・対策
DNSキャッシュポイズニング対策は、DNSサーバー側の設定強化とDNSSECの導入が重要です。
- DNSSEC(DNS Security Extensions): DNS応答にデジタル署名を付与し、応答の正当性と完全性を検証する仕組みです。偽の応答は署名検証に失敗するため、キャッシュポイズニングを防げます。最も効果的な対策ですが、導入にはドメイン管理者とDNSサーバー運用者の両方の対応が必要です。
- 送信元ポートのランダム化: DNSクエリの送信元ポート番号をランダム化することで、攻撃者が偽応答を送信する際に正しいポート番号を推測することを困難にします。
- トランザクションIDのランダム化: DNS問い合わせに含まれるトランザクションIDを十分にランダムにすることで、攻撃者が正しいIDを推測することを困難にします。
- DNSサーバーソフトウェアの最新化: BIND、Unboundなどのを常に最新バージョンに更新し、既知の脆弱性を修正します。
- 信頼できるDNSサーバーの利用: ユーザー側では、ISPの提供するDNSサーバーや、Google Public DNS、Cloudflare DNSなど信頼性の高いDNSサーバーを利用します。
試験ではこう出る!
情報セキュリティマネジメント、基本情報技術者、応用情報技術者で出題されます。以下のキーワードとセットで覚えましょう。
【重要キーワード】
- DNS(Domain Name System)
- キャッシュへの偽情報注入
- DNSSEC(DNS Security Extensions)
- カミンスキー攻撃
- フィッシング詐欺への誘導
試験問題で「DNSサーバーのキャッシュに偽の名前解決情報を登録し、ユーザーを偽サイトに誘導する攻撃」や「DNSSECを導入することで防げる攻撃」といった記述があれば、それは「DNSキャッシュポイズニング」に関する記述です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. DNSキャッシュポイズニングに関する説明として、最も適切なものはどれでしょうか?
- A. DNSサーバーのキャッシュに偽の情報を注入し、ユーザーを偽サイトに誘導する攻撃
- B. 送信元IPアドレスを偽装して、別のコンピュータになりすます攻撃
- C. 大量のDNSクエリを送りつけて、DNSサーバーをサービス停止に追い込む攻撃
正解と解説を見る
正解:A
解説:
DNSキャッシュポイズニングは、DNSサーバーが一時保存(キャッシュ)している名前解決情報に偽のデータを注入し、ユーザーが正しいドメイン名を入力しても偽サイトに誘導される攻撃です。対策としてはDNSSEC(DNS Security Extensions)の導入や、送信元ポート・トランザクションIDのランダム化が有効です。
選択肢Bは「IPスプーフィング」の説明です。選択肢Cは「DNSに対するDoS攻撃」の説明であり、いずれもDNSキャッシュポイズニングとは異なる攻撃手法です。