キャッシュポイズニングとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > キャッシュポイズニングの意味・解説 

DNSスプーフィング

(キャッシュポイズニング から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/07/25 09:26 UTC 版)

DNSスプーフィング: DNS spoofing)は、DNSに対する攻撃手法の一つ。DNSは、人間がインターネット上のアドレスとして用いるURLFQDN)をコンピュータがインターネット上のアドレスとして用いる「IPアドレス」と対応づける(名前解決)ためのサーバであるが、DNSスプーフィングは不正な方法でこの対応関係を書き換えるなどして、DNSへのURLの問い合わせ(クエリ)に対し、偽の情報を答えさせる一連の攻撃手法の総称である[1][2]。DNSスプーフィングは、被害者を偽のサイトに誘導するなどの目的で行われ、偽のサイトでファーミングなどのさらなる攻撃を仕掛けるための下準備となる。

ただし、必ずしも攻撃を目的として用いられるものではない。代表的な例として広告ブロックがあり、広告元サーバーのFQDNへのDNSリクエストに対し、意図的に誤ったレスポンスをすることによって、広告がダウンロードされることを防止している[3]

DNSスプーフィングの代表的な手法としてDNSキャッシュポイズニング: DNS cache poisoning)があるが、他にも攻撃者がDNSを乗っ取る方法[2]などがある。日本語の定着した訳語はないが、シマンテックDNS詐称と訳しており[4]BUFFALOは自社製品の脆弱性をDNS偽装と訳している[5]

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

DNSキャッシュポイズニングを行う攻撃者は、オープンリゾルバになっているキャッシュDNSサーバーを主な標的とする[6][7]。オープンリゾルバとは、自分が分からないときは他のDNSサーバに答えを聞きに行くDNSサーバ(フルリゾルバ)でありかつ、誰でもアクセスが可能であることを表す。このオープンリゾルバになっているキャッシュDNSサーバーは、自身でキャッシュしている対応表のみでは名前解決できない場合には上位のDNSに問い合わせる事により名前解決を行う。DNSキャッシュポイズニングは攻撃者が上位のDNSからの返答を偽装する事により、DNSのキャッシュにIPとURLの不正な対応関係を記憶させる攻撃手法を指す[8][9]

DNSキャッシュポイズニングの手法の一つに「IDおよび問合わせの推測」(RFC 3833 2.2)がある[10]。この手法において攻撃者はまず標的になるサイトのURLをキャッシュDNSにクエリする。このクエリに対する返答がキャッシュされていない場合、キャッシュDNSが上位のDNSに問い合わせるので、この際クエリに用いるIDと問い合わせ内容を推測する事で上位サーバからの返答を偽装する。(攻撃者は本物の上位サーバが返答するより早く偽装した返答を返す必要がある)。このような攻撃が可能な背景には、問い合わせの際に用いるID(TXID)が16ビット=65536通りしかなく、推測が容易な事があげられる[10]

DNSキャッシュポイズニングの初期の手法は、標的にしたいサイトの名前解決を何度もDNSに問い合わせる事で偶然TXIDが正しい値になる事を狙う、というものであった[11]。したがってその対策方法としては同一のドメイン名の名前解決を上位DNSに問い合わせる回数そのものを減らすために、キャッシュの有効期限を長くするなどするという方法が取られた[11]。攻撃者が前述の攻撃をしかけられるのはDNSにおいて標的サイトのキャッシュの有効期限が切れているタイミングに限られるので、この対策方法により攻撃が成功する可能性を下げられる。

カミンスキー攻撃

しかし2008年にダン・カミンスキー英語版が考案したカミンスキー攻撃は、キャッシュの有効期限を長くするといった対策が取られたキャッシュDNSに対しても可能な攻撃手法である。これは「標的にしたいサイトと同じドメインに対しランダムなホスト名で問い合わせる」という攻撃手法である。例えば、攻撃したいサイトのドメイン名がwww.example.comであれば、001.example.com、002.example.com、…などをキャッシュDNSに問い合わせる。このようにすれば攻撃者は毎回異なる問い合わせをしていることになるので、キャッシュの有効期限が切れるタイミングを待つことなく連続してクエリが可能になる。そこに、DNSからの返答を偽装する事により、DNSのキャッシュにIPとURLの不正な対応関係を記憶させる。このように、DNSキャッシュポイズニングの前述の対策は無効となる。

カミンスキー攻撃に対しても有効な対策としては問い合わせの際に問い合わせ元のポート番号を通常の固定値(53番)にするのではなく、ランダムな値にするという方法が知られている(ソースポートランダマイゼーション[12]。これにより問い合わせの推測が困難になるので、攻撃の成功確率は下がる。

なお古くはこの他にも名前連鎖攻撃[10](Name Chaining、 RFC 3833 2.3)という攻撃手法があったが、2014年現在はこの攻撃手法は通用しない[8]

対策

  1. キャッシュDNSサーバーがオープンリゾルバである場合、対策をする。外部からキャッシュDNSサーバーを利用できないように配置したり、設定を行う。
  2. 上述のソースポートランダマイゼーションを行う。
  3. キャッシュDNSサーバーのキャッシュ期間を長くする。
  4. 権威DNSサーバーにDNSSECDNSCurveなどを導入し、DNSサーバーの回答にデジタル証明をつける。これにより攻撃者が通信相手のDNSのふりをして攻撃をしかける可能性を排除できる。しかしこの解決策が使えるのは通信相手のDNSも同じ認証システムを導入している場合に限られるため、自社の努力のみでこの解決策を取れるとは限らない。

その他の手法

ドメイン名ハイジャック

キャッシュDNSの情報を書き換えるキャッシュポイズニング攻撃に対し、DNSのレジストリの登録情報自身を書き換える攻撃をドメイン名ハイジャックという[13]。ドメイン名ハイジャックを行う方法としては、レジストリの権威DNSサーバを乗っ取って登録情報を書き換える方法、レジストリへの登録を代行する業者であるレジストラを乗っ取ったりレジストラになりすましたりして登録内容の書き換え申請を行う方法、ドメインの管理者の権限を乗っ取ったり管理者になりすましてレジストラに登録内容の書き換えを依頼する方法がある[13][14]

ドライブバイファーミング

ユーザが買ってきたブロードバンドルーターが初期設定のままになっていると、攻撃者は初期設定状態のブロードバンドルーターの脆弱性や初期パスワードを利用してブロードバンドルーターの権限を乗っ取った上でDNSの設定を書き換え、本来参照すべきDNSではなく攻撃者が用意した悪性DNSを参照するようにできてしまう[13]。なおこうした書き換えを行うには、フィッシングなどと同様不正サイトにアクセスさせたり、この攻撃を行う専用のマルウェア(DNSチェンジャーという)を利用したりする[13]。この攻撃でDNS設定を書き換えて行うファーミングドライブバイファーミングという[13]

脚注

  1. ^ NRIセキュアテクノロジーズ「DNSSEC スプリングフォーラム2013PKIの事故から学ぶDNSSECの必要性~DNSスプーフィング攻撃の考察~」(pdf) 2016年9月27日閲覧
  2. ^ a b MSDNライブラリによる解説。2016年9月27日閲覧。
  3. ^ 自分の広告ブロックDNSサーバーを作ろう | AdGuard DNS”. 自分の広告ブロックDNSサーバーを作ろう | AdGuard DNS. 2025年7月21日閲覧。
  4. ^ シマンテック「セキュリティレスポンス/用語解説/DNS spoofing (DNS 詐称)」 2016年9月27日閲覧
  5. ^ BUFFALO「DNS偽装の脆弱性」。2016年9月27日閲覧
  6. ^ IPRS 2014, p. 5.
  7. ^ IPA 2009, p. 3.
  8. ^ a b IPRS 2014, p. 8.
  9. ^ IPA 2009, p. 5.
  10. ^ a b c RFC 2004.
  11. ^ a b IPRS2 2014, p. 6-7.
  12. ^ IPRS2 2014, p. 12-16.
  13. ^ a b c d e 羽室英太郎 (2018/10/16). サイバーセキュリティ入門:図解×Q&A. 慶應義塾大学出版会. pp. 117-119 
  14. ^ ドメイン名ハイジャック”. マルウェア情報局. キヤノンITソリューションズ株式会社. 2018年10月30日閲覧。

関連項目

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「キャッシュポイズニング」の関連用語

キャッシュポイズニングのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



キャッシュポイズニングのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのDNSスプーフィング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS