DNSキャッシュポイズニング

dns cash poisoning セキュリティ

インターネットの住所帳を書き換えて、ユーザーをだまそうとする攻撃のこと

簡単な説明

ネットの「住所帳(DNS)」にウソの情報をまぜて、
ユーザーを偽サイトにだまし連れてく攻撃だよ。
ちゃんと守らないと、ログイン情報とか盗まれちゃうかも。

由来

DNS(Domain Name System)は、「www.example.com」などの名前をIPアドレス(例:192.0.2.1)に変換する仕組みです。この仕組みを使って私たちはウェブサイトを見たり、メールを送ったりできます。

でも、DNSのデータは一時的にパソコンやサーバーに「キャッシュ(保存)」されます。このキャッシュに偽の情報を忍び込ませることを「DNSキャッシュポイズニング」といいます。英語で「poisoning」は「毒を入れる」という意味ですね。

具体的な説明

DNSキャッシュポイズニングは、DNSサーバーが一時的に保存している名前とIPアドレスの情報に偽の情報を混入させるサイバー攻撃です。

これに成功すると、たとえば「www.bank.co.jp」と入力しても、本物ではなく攻撃者が用意した偽の銀行サイトに誘導されてしまう可能性があります。

DNSサーバーは、名前(ドメイン)と番号(IPアドレス)を対応させていますが、この情報は毎回調べると遅いので、一時的に覚えています(キャッシュ)。

DNSキャッシュポイズニングでは、悪意のある攻撃者が、DNSサーバーのキャッシュに間違ったIPアドレスを注入して、ユーザーを偽のウェブサイトに誘導します。

この攻撃が成功するには、次のような条件が必要です:

  • DNSサーバーが偽情報を受け入れること
  • ユーザーが正しいURLを入力しても、間違ったIPに誘導されること

DNSキャッシュポイズニングは、DNSプロトコルのUDP(User Datagram Protocol)通信の脆弱性を突いた攻撃です。

攻撃者は、DNSリクエストが送信されると同時に、偽のレスポンスを大量に送り込み、正しいトランザクションIDと一致するパケットを当てることで、DNSキャッシュを汚染します。

これにより、正規のドメイン名に対して攻撃者が管理するIPアドレスが紐づけられ、クライアントは悪意あるサイトへ誘導されます。2008年にセキュリティ研究者Dan Kaminsky氏が、この問題の重大さを示したことがきっかけで、多くのDNSサーバーに修正が加えられました。

例文

「DNSキャッシュポイズニングのせいで、正しい銀行のURLを入力しても偽サイトに連れて行かれてしまったんだって。怖いね。」

疑問

Q: DNSキャッシュポイズニングはどうやって防げますか?

A: ソースポートのランダム化、DNSSEC(DNSの正当性確認機能)を導入することで防げます。

Q: この攻撃で個人情報が盗まれることがありますか?

A: はい、偽のサイトに誘導されてパスワードやクレジットカード番号を入力してしまうと、盗まれる危険があります。

Q: DNSSECはすべてのサーバーで使われていますか?

A: まだ一部のサーバーしか対応しておらず、世界全体で普及が進められています。

Q: 一度ポイズニングされたら、ずっと偽情報が残りますか?

A: いいえ、DNSキャッシュには有効期限(TTL)があるため、時間がたてば情報はリセットされます。

Q: 自分のパソコンが被害に遭っているか確認する方法はありますか?

A: 確実な方法は専門ツールを使うことですが、「nslookup」や「dig」コマンドで名前解決結果を確認することができます。

理解度を確認する問題

DNSキャッシュポイズニングの説明として最も適切なものはどれか。

A. DNSサーバーのハードウェアを破壊して情報を盗む攻撃
B. DNSのキャッシュ情報を改ざんし、ユーザーを偽のサイトへ誘導する攻撃
C. ユーザーのメールを盗聴する攻撃
D. DNSクエリを圧縮して高速化する仕組み

正解:B

関連論文や参考URL

「The Kaminsky DNS Vulnerability」 Dan Kaminsky, 2008

解説:
この論文では、DNSの設計上の脆弱性を突くことで、いかにしてキャッシュポイズニングが可能かを説明しています。特にトランザクションIDの予測可能性とUDPの特性を悪用する手法が記述され、世界中のDNSサーバーにパッチが適用されるきっかけとなりました。

結果:
この報告により、DNSソフトウェアにおいてソースポートのランダム化が標準化され、DNSSECへの移行が推奨されるようになりました。

まとめ

DNSキャッシュポイズニングとは、DNSサーバーのキャッシュ情報を書き換えて、偽サイトにユーザーを誘導する攻撃です。
これにより、ユーザーは正しいURLを入力しても、攻撃者が用意した偽のページにアクセスしてしまいます。
対策としては、DNSSECの導入やソースポートランダム化が効果的です。

コメント

タイトルとURLをコピーしました