カミンスキー攻撃 (カミンスキーコウゲキ) とは | 意味や読み方など丁寧でわかりやすい用語解説

作成日: 更新日:

カミンスキー攻撃 (カミンスキーコウゲキ) の読み方

日本語表記

カミンスキーこうげき (カミンスキーコウゲキ)

英語表記

Kaminsky attack (カミンスキーアタック)

カミンスキー攻撃 (カミンスキーコウゲキ) の意味や用語解説

カミンスキー攻撃とは、DNS(Domain Name System)の脆弱性を悪用し、特定のドメイン名に対する不正なIPアドレス情報をDNSキャッシュに注入することで、利用者を偽のサーバーへ誘導するサイバー攻撃の一種である。これはDNSキャッシュポイズニング攻撃の中でも特に巧妙な手法として知られ、2008年にセキュリティ研究者のダン・カミンスキー氏によってその詳細が公表され、広く認識されるようになった。この攻撃が成功すると、正規のWebサイトにアクセスしようとしたユーザーが意図せずフィッシングサイトやマルウェア配布サイトへ誘導される危険性がある。 DNSとは、インターネット上でドメイン名(例: `www.example.com`)とIPアドレス(例: `192.0.2.1`)を相互に変換するシステムのことである。人間にとって分かりやすいドメイン名を、コンピューターが通信に使うIPアドレスに変換することで、インターネット利用を容易にしている。ユーザーがWebブラウザでURLを入力すると、まずそのドメイン名に対応するIPアドレスをDNSサーバーに問い合わせる。問い合わせを受けたDNSサーバーは、過去の問い合わせ結果を一時的に保存しておく「キャッシュ」を持つことが一般的で、同じドメインへの問い合わせがあった場合に迅速に応答できるようにしている。このキャッシュの仕組みが、カミンスキー攻撃の標的となる。DNSキャッシュポイズニングは、このキャッシュに偽の情報を意図的に登録させ、そのDNSサーバーを利用するユーザーを誤ったIPアドレスに誘導する攻撃手法の総称である。 カミンスキー攻撃は、このDNSキャッシュポイズニングをより効果的に行うための手法である。従来のDNSキャッシュポイズニングは、DNSサーバーからの問い合わせ応答に含まれる「トランザクションID」という4桁の番号を推測する必要があり、成功させるのが非常に困難であった。カミンスキー攻撃の巧妙な点は、このトランザクションIDの推測を実質的に回避する点にある。具体的な攻撃手順は次のようになる。 まず、攻撃者は標的とするDNSサーバー(キャッシュDNSサーバー)に対し、存在しない大量のサブドメイン名(例: `a1.example.com`、`a2.example.com`、`a3.example.com` など)を短期間に連続して問い合わせる。これらのサブドメインは実在しないため、標的のDNSサーバーはこれらの問い合わせを解決するために、上位の権威DNSサーバーに問い合わせを行う。このとき、標的のDNSサーバーは大量の異なるトランザクションIDを生成し、それぞれに対応する問い合わせを上位サーバーへ送信する。 攻撃者は、標的のDNSサーバーが上位サーバーに問い合わせを行っている間に、これらの問い合わせに対する偽の応答を大量に送りつける。この偽の応答には、問い合わせられた存在しないサブドメインに対する情報だけでなく、攻撃者が乗っ取りたいドメイン(例: `example.com`)のIPアドレスとして、攻撃者が管理するサーバーのIPアドレスが含まれる。さらに重要な点として、偽の応答には、その乗っ取りたいドメインに対する「権威DNSサーバー」の情報(NSレコード)も含まれる。この情報には、正規の権威DNSサーバーではなく、攻撃者が管理するDNSサーバーのIPアドレスが指定される。 標的のDNSサーバーは、上位の正規DNSサーバーからの応答よりも早く、攻撃者からの偽の応答を受信してしまう場合がある。DNSサーバーは、受け取った応答が自身が送信した問い合わせに対するものであると判断すると(トランザクションIDが一致し、送信元ポートが一致していれば)、その情報をキャッシュに登録する。カミンスキー攻撃では、大量のサブドメインを問い合わせることで、攻撃者が推測すべきトランザクションIDの数を大幅に増やし、同時に攻撃者が大量の偽応答を送りつけることで、正規の応答よりも偽の応答が先に到達する確率を飛躍的に高める。一度、偽のNSレコードがキャッシュされてしまうと、それ以降、そのDNSサーバーが`example.com`に対する問い合わせを受けると、攻撃者が管理する偽のDNSサーバーに問い合わせを行うようになり、最終的にユーザーは攻撃者の意図するIPアドレス(フィッシングサイトなど)へ誘導されることになる。 この攻撃の目的は、一般的にフィッシング詐欺による情報の窃取、マルウェアの配布、または不正な広告の表示などである。正規のサイトにアクセスしているつもりでも、実際には攻撃者の用意した偽サイトに誘導されているため、ユーザーはだまされやすい。 カミンスキー攻撃に対する主な対策としては、次のようなものが挙げられる。まず、DNSサーバーのソフトウェアを常に最新の状態に保ち、脆弱性を修正するパッチを適用することが重要である。また、DNSサーバーが問い合わせを行う際に使用する送信元ポート番号をランダム化する「ソースポートのランダム化」を導入することで、攻撃者が偽の応答を特定しにくくする。トランザクションIDの生成に、より予測困難な乱数を使用することも有効である。最も抜本的な対策の一つとして、DNSSEC(DNS Security Extensions)の導入がある。DNSSECはDNSの応答に電子署名を付与し、その応答が改ざんされていない正規のものであることを暗号的に検証する仕組みであり、偽のDNS情報を検出できる。その他にも、DNSのキャッシュ有効期限(TTL: Time To Live)を適切に設定し、長すぎるTTLによって不正な情報が長時間キャッシュに残り続けないようにする、不要なゾーン転送を制限して内部DNS情報が外部に漏洩することを防ぐといった運用上の対策も有効である。これらの対策を組み合わせることで、カミンスキー攻撃のリスクを低減させることが可能となる。

カミンスキー攻撃 (カミンスキーコウゲキ) とは | 意味や読み方など丁寧でわかりやすい用語解説