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

DNSの脆弱性

DNSSEC導入の必要性が叫ばれ始めた理由は、今までのDNSの仕組みに 脆弱性が指摘されたためです。

DNSサーバはインターネットのように膨大なユーザーがひっきりなしに DNSサーバーへ問い合わせを行ってしまうと、当然DNSサーバーに負荷が かかってしまいます。

DNSではこの負荷を減らすために、キャッシュを保持しています。

IPアドレスの問い合わせを行うローカル・サーバでは、 DNSサーバ(ここではDNS権威サーバーとします)へ 問い合わせを行った内容を内部のキャッシュに保持して、 次回問い合わせがあった場合、DNS権威サーバへ問い合わせを 行う前に内部のキャッシュを調べます。

キャッシュに情報があればその内容を使用し、なければDNS権威サーバへ 問い合わせを行います。

しかし、このキャッシュしているIPアドレスは外部から簡単に 書き換えられるという問題が明らかになりました。 このような攻撃を「DNSキャッシュポイズニング」と呼ばれています。

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

DNSキャッシュサーバーは、名前解決の応答があると、IPアドレスを 確認するのですが、その確認中に偽装したIPアドレスの情報を 大量に送りつけると、キャッシュサーバー内に偽装したIPアドレスとして 保持してしまう可能性があります。 このような攻撃を「DNSキャッシュポイズニング」と言われる手法です。

この脆弱性が潜んでいる理由として、DNSの仕様動作が原因として あげられます。 DNSはそもそもDNSサーバー同士がお互いの存在を確認することなく、 お互いが一方的に情報を送りつける動作をします。 そのために、だれがこの情報を送りつけてきたのかは考慮していません。 つまり、仮に送信元のサーバーが悪意のあるサーバーだったとしても、 それを知る術はないわけです。

 

DNSの仕様動作

 

「DNSキャッシュポイズニング」の怖いところは、DNSの基本的な 動作には問題がないため、ユーザーはまったく気づかずに フィッシングサイトなどに誘導させられてしまうという点。

「DNSキャッシュポイズニング」の対策として選択されたのが、 「DNSSEC(DNS Security Extensions)」です。

日本のドメイン名である「.jp」でも2011年1月に導入が開始されています。

JPRSがJPドメイン名サービスにDNSSECを導入

関連記事