カミンスキー攻撃
別名:カミンスキー型攻撃,カミンスキー型手法,カミンスキー型攻撃手法,カミンスキーアタック
【英】Kaminsky attack, Kaminsky's attack
カミンスキー攻撃とは、DNSプロトコルの脆弱性を利用してDNSキャッシュポイズニングの成功率を高める手法である。2008年にコンピュータセキュリティ研究者のダン・カミンスキー(Dan Kaminsky)が公表した。
カミンスキー攻撃は、ごく簡単にいえば、DNSサーバーに特定条件の問い合わせを総当り的に行うとDNSキャッシュポイズニングが成立してしまう場合がある、というものである。株式会社日本レジストリサービス(JPRS)がカミンスキー攻撃について詳しく紹介している。
カミンスキー攻撃で利用されるDNSサーバーの脆弱性は以前から知られていたものであり、カミンスキー攻撃の手口も、2008年にダン・カミンスキーにより公表される前から存在していたとされる。カミンスキー攻撃に対する有効な対策としては、DNSセキュリティ拡張(DNSSEC)、DNSキャッシュサーバーの送信元ポートをランダム化する「ソースポートランダマイゼーション」の導入などが挙けられる。
2014年4月には、JPCERTコーディネーションセンター(JPCERT/CC)が日本国内のISPを対象としたカミンスキー攻撃と思われるアクセスが急増しているとして注意喚起している。
参照リンク
DNS キャッシュポイズニング攻撃に関する注意喚起 - (JPCERT/CC)
ネットワーク攻撃: | JITON Kemoge カウンターインテリジェンス カミンスキー攻撃 クラッカー クリックジャッキング マインドクラッシャー |
DNSスプーフィング
DNSスプーフィング(英: DNS spoofing)は、DNSに対する攻撃手法の一つ。DNSは、人間がインターネット上のアドレスとして用いるURL(FQDN)をコンピュータがインターネット上のアドレスとして用いる「IPアドレス」と対応づける(名前解決)ためのサーバであるが、DNSスプーフィングは不正な方法でこの対応関係を書き換えるなどして、DNSへのURLの問い合わせ(クエリ)に対し、偽の情報を答えさせる一連の攻撃手法の総称である[1][2]。DNSスプーフィングは、被害者を偽のサイトに誘導するなどの目的で行われ、偽のサイトでファーミングなどのさらなる攻撃を仕掛けるための下準備となる。
DNSスプーフィングの代表的な手法としてDNSキャッシュポイズニング(英: DNS cache poisoning)があるが、他にも攻撃者がDNSを乗っ取る方法[2]などがある。日本語の定着した訳語はないが、シマンテックはDNS詐称と訳しており[3]、BUFFALOは自社製品の脆弱性をDNS偽装と訳している[4]。
DNSキャッシュポイズニング
DNS(キャッシュDNS、厳密にはフルリゾルバと呼ぶべきもの[5][6])は自身でキャッシュしている対応表のみでは名前解決できない場合には上位のDNSに問い合わせる事により名前解決を行う。DNSキャッシュポイズニングは攻撃者が上位のDNSからの返答を偽装する事により、DNSのキャッシュにIPとURLの不正な対応関係を記憶させる攻撃手法を指す[7][8]。
DNSキャッシュポイズニングの手法の一つに「IDおよび問合わせの推測」(RFC 3833 2.2)がある[9]。この手法において攻撃者はまず標的になるサイトのURLをキャッシュDNSにクエリする。このクエリに対する返答がキャッシュされていない場合、キャッシュDNSが上位のDNSに問い合わせるので、この際クエリに用いるIDと問い合わせ内容を推測する事で上位サーバからの返答を偽装する。(攻撃者は本物の上位サーバが返答するより早く偽装した返答を返す必要がある)。このような攻撃が可能な背景には、問い合わせの際に用いるID(TXID)が16ビット=65536通りしかなく、推測が容易な事があげられる[9]。
DNSキャッシュポイズニングの初期の手法は、標的にしたいサイトの名前解決を何度もDNSに問い合わせる事で偶然TXIDが正しい値になる事を狙う、というものであった[10]。したがってその対策方法としては同一のドメイン名の名前解決を上位DNSに問い合わせる回数そのものを減らすために、キャッシュの有効期限を長くするなどするという方法が取られた[10]。攻撃者が前述の攻撃をしかけられるのはDNSにおいて標的サイトのキャッシュの有効期限が切れているタイミングに限られるので、この対策方法により攻撃が成功する可能性を下げられる。
カミンスキー攻撃
しかし2008年にダン・カミンスキーが考案したカミンスキー攻撃は、このような対策が取られたキャッシュDNSに対しても可能な攻撃手法であった。これは標的にしたいサイトと同じドメインの存在しない名前を問い合わせる、という攻撃手法である。例えば攻撃したいサイトのドメイン名がwww.example.comであれば、001.example.com、002.example.com、…などをキャッシュDNSに問い合わせるのである。このようにすれば攻撃者は毎回異なる問い合わせをしていることになるので、キャッシュの有効期限が切れるタイミングを待つことなく連続してクエリが可能になり、前述の対策は無効となる。
カミンスキー攻撃に対しても有効な対策としては問い合わせの際に問い合わせ元のポート番号を通常の固定値(53番)にするのではなく、ランダムな値にするという方法が知られている(ソースポートランダマイゼーション)[11]。これにより問い合わせの推測が困難になるので、攻撃の成功確率は下がる。
なお古くはこの他にも名前連鎖攻撃[9](Name Chaining、RFC 3833 2.3)という攻撃手法があったが、2014年現在はこの攻撃手法は通用しない[7]。
対策
DNSキャッシュポイズニングに対して最も有効な解決策の一つは、自社のDNSにDNSSECやDNSCurveなどを導入して通信相手を認証する事である。これにより攻撃者が通信相手のDNSのふりをして攻撃をしかける可能性を排除できる。しかしこの解決策が使えるのは通信相手のDNSも同じ認証システムを導入している場合に限られるため、自社の努力のみでこの解決策を取れるとは限らない。
その他の手法
ドメイン名ハイジャック
キャッシュDNSの情報を書き換えるキャッシュポイズニング攻撃に対し、DNSのレジストリの登録情報自身を書き換える攻撃をドメイン名ハイジャックという[12]。ドメイン名ハイジャックを行う方法としては、レジストリの権威DNSサーバを乗っ取って登録情報を書き換える方法、レジストリへの登録を代行する業者であるレジストラを乗っ取ったりレジストラになりすましたりして登録内容の書き換え申請を行う方法、ドメインの管理者の権限を乗っ取ったり管理者になりすましてレジストラに登録内容の書き換えを依頼する方法がある[12][13]。
ドライブバイファーミング
ユーザが買ってきたブロードバンドルーターが初期設定のままになっていると、攻撃者は初期設定状態のブロードバンドルーターの脆弱性や初期パスワードを利用してブロードバンドルーターの権限を乗っ取った上でDNSの設定を書き換え、本来参照すべきDNSではなく攻撃者が用意した悪性DNSを参照するようにできてしまう[12]。なおこうした書き換えを行うには、フィッシングなどと同様不正サイトにアクセスさせたり、この攻撃を行う専用のマルウェア(DNSチェンジャーという)を利用したりする[12]。この攻撃でDNS設定を書き換えて行うファーミングをドライブバイファーミングという[12]。
脚注
- ^ NRIセキュアテクノロジーズ「DNSSEC スプリングフォーラム2013PKIの事故から学ぶDNSSECの必要性~DNSスプーフィング攻撃の考察~」(pdf) 2016年9月27日閲覧
- ^ a b MSDNライブラリによる解説。2016年9月27日閲覧。
- ^ シマンテック「セキュリティレスポンス/用語解説/DNS spoofing (DNS 詐称)」 2016年9月27日閲覧
- ^ BUFFALO「DNS偽装の脆弱性」。2016年9月27日閲覧
- ^ IPRS 2014, p. 5.
- ^ IPA 2009, p. 3.
- ^ a b IPRS 2014, p. 8.
- ^ IPA 2009, p. 5.
- ^ a b c RFC 2004.
- ^ a b IPRS2 2014, p. 6-7.
- ^ IPRS2 2014, p. 12-16.
- ^ a b c d e 羽室英太郎 (2018/10/16). サイバーセキュリティ入門:図解×Q&A. 慶應義塾大学出版会. pp. 117-119
- ^ “ドメイン名ハイジャック”. マルウェア情報局. キヤノンITソリューションズ株式会社. 2018年10月30日閲覧。
関連項目
外部リンク
- 株式会社日本レジストリサービス/JPRS 藤原和典 (2014年9月12日). “「根元」は攻略されたのか~DNSキャッシュポイズニング攻撃とその対策について改めて考える” (PDF). IEICE. 2016年9月12日閲覧。
- 株式会社日本レジストリサービス(JPRS) (2014年4月30日). “キャッシュポイズニング攻撃対策:キャッシュDNSサーバー運用者向け―基本対策編” (PDF). 2016年9月12日閲覧。
- 独立行政法人情報処理推進機構セキュリティセンター(IPA ISEC) (2009年98月). “DNS キャッシュポイズニング対策~DNSの役割と関連ツールの使い方~” (PDF). 2015年5月1日時点のオリジナルよりアーカイブ。2016年9月12日閲覧。
- D. Atkins (邦訳:株式会社日本レジストリサービス(JPRS)) (2004年8月). “RFC 3833(日本語訳)”. 2016年9月12日閲覧。
- 情報処理推進機構:DNSキャッシュポイズニングの脆弱性に関する注意喚起
カミンスキー攻撃
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/22 07:16 UTC 版)
「DNSスプーフィング」の記事における「カミンスキー攻撃」の解説
しかし2008年にダン・カミンスキー(英語版)が考案したカミンスキー攻撃は、このような対策が取られたキャッシュDNSに対しても可能な攻撃手法であった。これは標的にしたいサイトと同じドメインの存在しない名前を問い合わせる、という攻撃手法である。例えば攻撃したいサイトのドメイン名がwww.example.comであれば、001.example.com、002.example.com、…などをキャッシュDNSに問い合わせるのである。このようにすれば攻撃者は毎回異なる問い合わせをしていることになるので、キャッシュの有効期限が切れるタイミングを待つことなく連続してクエリが可能になり、前述の対策は無効となる。 カミンスキー攻撃に対しても有効な対策としては問い合わせの際に問い合わせ元のポート番号を通常の固定値(53番)にするのではなく、ランダムな値にするという方法が知られている(ソースポートランダマイゼーション)。これにより問い合わせの推測が困難になるので、攻撃の成功確率は下がる。 なお古くはこの他にも名前連鎖攻撃(Name Chaining、RFC 3833 2.3)という攻撃手法があったが、2014年現在はこの攻撃手法は通用しない。
※この「カミンスキー攻撃」の解説は、「DNSスプーフィング」の解説の一部です。
「カミンスキー攻撃」を含む「DNSスプーフィング」の記事については、「DNSスプーフィング」の概要を参照ください。
- カミンスキー攻撃のページへのリンク