「DNSスプーフィング」の版間の差分

削除された内容 追加された内容
タグ: モバイルアプリ編集
タグ: モバイルアプリ編集
9行目:
DNSキャッシュポイズニングの手法の一つに「IDおよび問合わせの推測」(RFC 3833 2.2)がある{{Sfn|RFC|2004}}。この手法において攻撃者はまず標的になるサイトのURLをキャッシュDNSにクエリする。このクエリに対する返答がキャッシュされていない場合、キャッシュDNSが上位のDNSに問い合わせるので、この際クエリに用いるIDと問い合わせ内容を推測する事で上位サーバからの返答を偽装する。(攻撃者は本物の上位サーバが返答するより早く偽装した返答を返す必要がある)。このような攻撃が可能な背景には、問い合わせの際に用いるID(TXID)が16ビット=65536通りしかなく、推測が容易な事があげられる{{Sfn|RFC|2004}}。
 
DNSキャッシュポイズニングの初期の手法は、標的にしたいサイトの名前解決を何度もDNSに問い合わせる事で偶然TXIDが正しい値になる事を狙う、というものであった{{Sfn|IPRS2|2014|p=6-7}}。したがってその対策方法としては同一のドメイン名の名前解決を上位DNSに問い合わせる回数そのものを減らすために、キャッシュの有効期限を長くするなどするという方法が取られた{{Sfn|IPRS2|2014|p=6-7}}。攻撃者が前述の攻撃をしかけられるのはDNSにおいて標的サイトのキャッシュの有効期限が切れているタイミングに限られるので、この対策方法により不完全ながらも攻撃が成功する可能性を下げられ
 
しかし2008年に{{仮リンク|ダン・カミンスキー|en|Dan Kaminsky}}が考案した'''カミンスキー攻撃'''は、このような対策が取られたキャッシュDNSに対しても可能な攻撃手法であった。これは''標的にしたいサイトと同じドメインの存在しない名前を問い合わせる''、という攻撃手法である。例えば攻撃したいサイトのドメイン名がwww.example.comであれば、001.example.com、002.example.com、…などをキャッシュDNSに問い合わせるのである。このようにすれば攻撃者は毎回異なる問い合わせをしていることになるので、キャッシュの有効期限が切れるタイミングを待つことなく連続してクエリが可能になり、前述の対策は無効となる。
 
カミンスキー攻撃に対しても有効な対策としては問い合わせの際に問い合わせ元のポート番号を通常の固定値(53番)にするのではなく、ランダムな値にするという方法が知られている('''ソースポートランダマイゼーション'''){{Sfn|IPRS2|2014|p=12-16}}。これにより問い合わせの推測が困難になるので、攻撃の成功確率は下がる。
 
なお古くはこの他にも名前連鎖攻撃{{Sfn|RFC|2004}}(Name Chaining、<nowiki>RFC 3833</nowiki> 2.3)という攻撃手法があったが、2014年現在はこの攻撃手法は通用しない{{Sfn|IPRS|2014|p=8}}。
 
 
DNSキャッシュポイズニング対して最も有効な解決策の一つは、自社のDNSに[[DNSSEC]]など導入して通信相手のDNSを認証する事である。これにより攻撃者が通信相手のDNSのふりをして攻撃をしかける可能性を排除できる。しかしこの解決策が使えるのは通信相手のDNSも同じ認証システムを導入している場合に限られるため、自社の努力のみでこの解決策を取れるとは限らない。
 
==関連項目==