カミンスキー攻撃とは、DNSサーバのキャッシュ機能を利用して、ドメインの乗っ取りや偽サイトへの誘導を行う攻撃です。
カミンスキー攻撃により、DNSキャッシュポイズニング攻撃の効率を劇的に上げます。
カミンスキー攻撃とは
ドメイン内に存在しないホスト名を攻撃対象のキャッシュDNSサーバに送信して、問い合わせを強制させてえキャッシュDNSを汚染する攻撃です。
DNSでは、送られてきたホスト名のIPアドレスを送ります。
ドメインに存在しないホスト名を送られた場合、キャッシュDNSサーバには当然情報がないため、権威サーバに再帰問い合わせをします。
攻撃者は「偽ホストのIPアドレスはわからないけど、正規ホスト名に聞けばIPわかるよ。正規ホスト名のIPアドレスは○○です。(偽のIPアドレスを伝える)」をキャッシュDNSサーバに伝えます。
正規の通信よりも先に、回答することで、キャッシュDNSサーバは誤認します。
キャッシュDNSサーバは、正規のホスト名のIPアドレスを攻撃者に教わったものに修正します。
これにより、キャッシュDNSサーバのIPアドレスが変更できるので、DNSキャッシュポイズニングが成立します。
対策
オープンリゾルバをやめる
リゾルバとは、ドメイン名からIPアドレスの情報 を検索したり、IPアドレスからドメイン名の情報を検索する名前解決を行うソフトウェアプログラムです。
オープンリゾルバは、すべての問い合わせに応答してしまうので、内部ドメインからの問い合わせのみに応答するようにすることで、攻撃者からの問い合わせを無視できます。
DNSキャッシュサーバで問い合わせに使うポートの番号をランダムにする
問い合わせポート番号とトランザクションIDの合計32ビットになるため、攻撃者から偽装された返答よりも早く正規の回答ができます。