なんとなくわかる「DNSキャッシュポイズニング」

スポンサーリンク

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

DNSキャッシュポイズニング(DNS cache poisoning)とは、 DNSキャッシュサーバの脆弱性を利用して偽のIPアドレスの情報をDNSサーバへ記憶させ、 そのDNSサーバを使用するユーザーに対して悪意のあるサイトへ誘導したりメールの盗聴などを行うサイバー攻撃です。

DNSキャッシュサーバには権威サーバとの通信回数を減らすために権威サーバから取得したドメイン名とIPアドレスの組の情報がある一定時間格納されており(TTL : Time To Live)、利用者からのアクセスに対してIPアドレスのレスポンスを返して利用者がアクセスしたいサイトへと誘導します。利用者からリクエストされたドメイン名がDNSキャッシュサーバにない場合には権威サーバにリクエストを送信してIPアドレスを取得し、DNSキャッシュサーバにデータを格納した後、利用者にその情報を渡します。

DNSキャッシュポイズニングでは、権威サーバのレスポンスに見せかけてDNSキャッシュサーバにドメイン名とIPアドレスの組のIPアドレスを書き換える攻撃を行います。DNSはUDP通信で行われるため、ややセキュリティが低く権威サーバからの通信を判別するのが16ビットのIDによる判別なので攻撃者によっていつかは当てられてしまうという脆弱性があるためこの攻撃が行われていた。

このサイバー攻撃を行うことで利用者がサイトへアクセスしようとDNSキャッシュサーバにリクエストを送信すると偽のIPアドレスが帰ってきて攻撃者の用意した悪意のあるサイトに誘導されてしまいます。

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

DNSキャッシュポイズニングによって以下のような影響が発生する可能性があります。

  • 特定のIPアドレスを経由させることで通信内容の盗聴
  • 悪意のあるWebサイトへの誘導で秘密情報の取得(ファーミング)
  • 偽サイトでのマルウェアのインストール
  • Dos攻撃の踏み台となる

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

DNSキャッシュポイズニングにはいくつかの対策方法が存在します。

  • ソースポートランダマイゼーション(Source port randomization)による問い合わせUDPポートのランダム化
  • DNSSECによるセキュリティ強化
  • DNSのリクエストができるクライアントを限定する
  • TTLを長くする(カミンスキー攻撃には効果がない)

などが対策として挙げられます。

コメント

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