JPドメイン名のサービス案内、ドメイン名・DNSに関連する情報提供サイト


TOPICS

DNSキャッシュポイズニング攻撃と、脆弱性への対応についての解説

2008/08/08


はじめに

2008年7月、「DNSキャッシュポイズニング攻撃」と呼ばれる攻撃と、そこで用いられるDNSサーバの脆弱性に関する情報がクローズアップされました。ここでは、この問題の解説と、どのような対処が必要なのか、ということを易しく説明します。

なお、技術的に詳しい解説や、ソフトウェアの情報については以下をご覧ください。

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

DNSは、Webへのアクセスやメールの送受信などの際に、接続相手のIPアドレスを調べたりする仕組みですが、「DNS のキャッシュポイズニング」とは、DNSが偽の応答を返すようにしてしまう攻撃手法です。

インターネットの利用者が、この攻撃により偽の応答をするようにされたDNSを介してWebにアクセスすると、気づかないうちにフィッシングサイト(*)に誘導されてしまうなど、さまざまな危険性があります。

* : 本物に似せて作られた偽者のWebサイト。銀行の暗証番号やクレジットカード番号、パスワードやユーザIDなどを入力させ、搾取することを目的とした詐欺サイト。

DNSの仕組み

インターネットでWebにアクセスしたりメールを送信したりする場合、ドメイン名からIPアドレスを調べるためにDNS(Domain Name System)を参照する仕組みになっています。

DNSのサーバには、ドメイン名やホスト名に対応するIPアドレスの情報などを持つ「権威サーバ」と、権威サーバを検索する機能を持つ「キャッシュサーバ」の2種類があります。

Webへのアクセスを例にすると、

  1. パソコンからキャッシュサーバに「このWebサイト(http://example.jp/)のIPアドレスを教えて」と問い合わせる。
  2. キャッシュサーバから権威サーバに「このWebサイト(http://example.jp/)のIPアドレスを教えて」と問い合わせる。
  3. 権威サーバからキャッシュサーバに、WebサイトのIPアドレスが返される。
  4. キャッシュサーバからパソコンに、WebサイトのIPアドレスが返される。
  5. 得られたIPアドレスを使ってWebサイトにアクセスする。

という仕組みで動いています。

キャッシュサーバは、権威サーバから得られた情報を一定期間記憶(キャッシュ)します。この機能があることで、同じWebサイトへのアクセスなどでDNSに同じ問い合わせが行われたときには、権威サーバに問い合わせることなく、キャッシュサーバが回答を返すことができるようになっています。

キャッシュサーバと権威サーバ
[図1:キャッシュサーバと権威サーバ]


DNSキャッシュポイズニングの攻撃手法

権威サーバからキャッシュサーバへの連絡が行くよりも先に、悪意を持った者(攻撃者)が偽の応答を返し、キャッシュサーバ内に偽の情報を保持させるものがDNSキャッシュポイズニング攻撃です。

例えば、http://example.jp/というWebにアクセスしたい場合、キャッシュサーバからexample.jpドメインの権威サーバへ問い合わせが行われます。権威サーバからの連絡を待っているキャッシュサーバに対し、攻撃者は偽の情報を送り込むような攻撃(毒入れ)を仕掛けてきます。

偽の情報を受け取ってしまった場合でも、キャッシュサーバはそのことに気づかず、それをパソコンに返してしまいます。

この攻撃を受けやすいDNSサーバソフトウェアがあることがわかり、この攻撃手法とその対策に関する情報がクローズアップされました。

図2:DNSのキャッシュポイズニング
[図2:DNSのキャッシュポイズニング]


対処

キャッシュサーバは、一般的にはプロバイダ(ISP)が顧客に提供したり、企業が社内利用者に提供したりするもので、個人のインターネット利用者はキャッシュサーバを運用する立場ではなく、利用する立場であることがほとんどです。

もし、これを読んでいるあなたがキャッシュサーバの運用者である場合は、キャッシュポイズニング攻撃を受け入れてしまいやすい脆弱性のある古いバージョンのDNSサーバソフトウェアを利用していないかどうか確認してください。

DNSサーバの脆弱性に対処するための、新しいバージョンのソフトウェアやパッチなどは既に公開されており、これらを導入することで危険性を低減させることができます。

詳しい技術情報は以下に掲載しています。