DNSスプーフィング

読み:ディーエンエス・スプーフィング
外語:DNS spoofing
品詞:名詞

DNSキャッシュを汚染すること。これによって攻撃を受けたDNSを使うユーザーは、目的のサイトにアクセスしたつもりが、実は悪意ある何者かのサイトへと誘導される可能性がある。

クラッカーからすると、ユーザを意図した先へ誘導することが可能となる。

DNSは、ホスト名IPアドレスに解決するためのサービスである。

ネットワーク上に散在するDNSサーバは、各々が担当する特定範囲の情報のみを管理していて、管轄外のホスト名の問い合わせについては、他のDNSサーバへ解決を要請する、つまり丸投げする。

しかしアクセス頻度の高いホスト名があったとして、それを何度も外に問い合わせるのは効率が良いとはいえない。そこで検索効率向上のために、一度管轄外で解決されたアドレスは、一定期間キャッシュとして保存し、その間は再利用される。

このメカニズムによって高速なアクセスを実現するが、しかしもし、他のDNSサーバから誤った情報が渡された場合、それまでもがキャッシュに残ることになり、実はこれが現在のDNSがもつ最大の脆弱性なのである。

例えば悪意あるクラッカーがホストAの名前解決を管轄する、DNS 1という名のDNSを持っていたとする。

そしてある第三者が管理する、攻撃対象となるDNSのDNS 2を攻撃する。

具体的には、

  • ホストAの別名はXXXXである
  • XXXXの名前解決はDNS 1が担当している

という情報をDNS 2に対して流す。

この状況でユーザがDNS 2に対してホストAの名前解決を依頼すると、DNS 2は悪意あるDNS 1に対して解決の要請を行なってしまう。

この時にDNS 1が不正なIPアドレスをDNS 2に返せば、DNS 2は不正な値を返すとともに、またDNS 2のキャッシュは汚染されてしまうわけである。