効率的なDNSキャッシュ・ポイズニング?カミンスキー攻撃とは

この記事は約6分で読めます。

DNSのキャッシュ情報を書き換えて、不正なサイトへと誘導させるサイバー攻撃として、DNSキャッシュ・ポイズニングが知られています。

今回紹介するのは、DNSキャッシュ・ポイズニング攻撃を効率化した、カミンスキー攻撃です。このカミンスキー攻撃とは具体的には、どのようなものなのでしょうか。被害実例や対策方法について詳しくご紹介します。

カミンスキー攻撃とは

カミンスキー攻撃とは、DNSキャッシュ・ポイズニングを効率的に実施できる手法のことです。DNSキャッシュ・ポイズニングとは、DNSのキャッシュの脆弱性を突いて、ドメイン名を乗っ取ったり、アクセスを任意のサイトへ転送したりするサイバー攻撃のことです。

DNSキャッシュ・ポイズニングにより、ユーザーがWebサイトを訪問した時に、偽サイトへ誘導されてフィッシング詐欺にあったり、マルウェアが仕込まれているWebサイトへ誘導されて感染したりするなどの被害が発生することがあります。わかりやすく言うと、偽のWebサイトが正規のWebサイトになりすましてしまうような攻撃です。

カミンスキー攻撃の名称は、この脆弱性が、2008年7月にダン・カミンスキー(Dan Kaminsky)氏により発表されたことに由来しています。具体的には、攻撃対象のドメインに対して、同ドメイン内に存在しない名前に問い合わせを行うことで、従来の手法では難しかった、連続したDNSキャッシュ・ポイズニング攻撃を実施する手法です。

カミンスキー攻撃の被害例

カミンスキー攻撃により、どのような情報がDNSサーバにキャッシュされてしまうかによって、どのような被害の影響は異なります。ここでは具体的な事例について詳しくご紹介します。

メールの送信先変更

送信先メールアドレスのドメイン名が汚染されると、メールを正常な送信先に届けられなくなります。また、汚染されたDNSレコードが利用された場合、機密情報や個人情報が不正な送信先に送信されてしまう可能性もあり、情報漏えいとして問題になることも考えられます。

フィッシングサイトを閲覧させる

WebサーバのDNSレコードや、ドメインのNSレコードが汚染されていた場合、Webサイトの閲覧時に意図した正常のWebサイトではなく、偽のWebサイトが表示させられることがあります。中にはフィッシングサイトへ誘導されて、マルウェアに感染させられることもありえます。

そもそも正常にサイトを閲覧できないことによる損害は大きいと言えるでしょう。例えばGoogleなどの検索エンジンが使えなくなったり、取引先のWebサイトが閲覧できなくなったり、業務で使用しているWebサービスが使えなくなったりすることによる被害は甚大です。

顧客の機密情報漏えい

Webサーバが参照するSMTPサーバのDNSレコードが汚染されていたら、パスワードリマインダー機能によるメール送信や、Webサービスへの登録確認メールなど、ユーザーの機密情報が意図しないSMTPサーバへわたってしまい、情報漏洩の危険性があります。これはメールの送信が正常に行えなくなること以上の被害に発展しかねません

SSLの無効化

意図しないサイトへ誘導された場合、たとえSSLが無効化されていても、ブラウザ警告を無視してアクセスすることは簡単で、通信は継続できます。そのようにして訪問した偽のWebサイト上で、ユーザーがユーザー名やパスワードを入力してしまえば、簡単に情報が漏洩します

インターネット上では、グローバルIPアドレスを利用してインターネットに接続している限り、全てがカミンスキー攻撃の対象です。たとえファイアウォールやIDSを入れていても、DNS応答元のソースIPアドレスやポート番号を詐称されれば容易に騙されてしまうため意味がありません

例えばWebフィルタやSPAMなどのメールフィルタは、指定されたIPアドレスに対して機械的にフィルタリングするだけなので、通信先IPアドレスが正しいかまでは判別していません。
さらに、各種フィルタが利用するデータベースの配布元となるドメインやFQDNを汚染することができたら、もはやそのフィルタは意味がないと言えるでしょう。

カミンスキー攻撃への対策

カミンスキー攻撃への対策としては、以下の3つが効果的です。

問い合わせUDPポートのランダム化

従来の主なキャッシュDNSサーバの実装では、問い合わせに使うUDP ポートは一つに固定されているか、あるいは決められた範囲の限られたポートしか使用しないものがほとんどでした。
しかし、これを問い合わせごとに毎回変える(ランダム化)ように変更することで、総当たり攻撃に対する耐性を高めることが可能です。

カミンスキー攻撃では、問い合わせのUDPポートが固定の場合、ほんの数秒の攻撃でDNSキャッシュ・ポイズニングが成功することが知られています。このことからも、UDPポートのランダム化による対策の重要性がわかります。

現在では、多くのUTMなどでUDPポートのランダム化が機能として実装されている。設定で所定の項目を選択すればランダム化できるようになっています。

オープンリゾルバは使用してはいけない

オープンリゾルバとは、送信元がどのDNS再帰検索要求でも受け付けるキャッシュDNSサーバのことです。オープンリゾルバは、他のサイバー攻撃の踏み台に使われることもあるため、DNSサーバの機能としては、あまり好ましくありません。これカミンスキー攻撃においても同様です。

カミンスキー攻撃の攻撃者は、オープンリゾルバを利用することで、攻撃者が任意のタイミングで、任意のドメイン名に対するキャッシュ・ポイズニング攻撃を始められます。
適切なDNSサーバでのアクセス許可をしていても、発信元IPアドレスが偽装された、不正のDNS データが外部から通信できる場合、受信したキャッシュDNSサーバが反復検索を始めてしまう恐れがあります

つまりDNSサーバにおける対策だけでは、カミンスキー攻撃を防ぐことは不十分と言えるでしょう。
具体的には、IP アドレスを詐称したデータがDNSサーバに届かないように、ファイアウォールなどでフィルタリングするなどの適切な対応が必要です。

権威DNSサーバでは反復検索機能を無効にすること

権威 DNS サーバとは、ドメイン名を管理するためのサーバのことです。特に公開が必要な権威 DNS サーバの IP アドレスは誰でも簡単にわかるため、権威DNSサーバがオープンリゾルバとして機能していると、攻撃者から簡単に悪用されてしまします。

本来、DNSサーバには権威DNSサーバとキャッシュDNSサーバの2つの機能がありますが、これらは構成上、別の機能です。そのため権威DNSサーバとキャッシュDNSサーバはできる限り別のサーバに分割するか、別のIPアドレスに分割して使用することが推奨されています。また、権威DNSサーバでは反復検索機能の無効化も推奨されています。

なお、自分のDNSサーバがオープンリゾルバになっていないか、UDPポートのランダム化をしているかのチェックは下記サイトで実施できます。

まとめ

この記事では、DNSキャッシュ・ポインズニングの手法の一つである、カミンスキー攻撃について紹介しました。

インターネットは業務でも日常生活でも便利な道具ですが、カミンスキー攻撃はその利便性を損なわせてしまう重大なサイバー攻撃です。カミンスキー攻撃を防ぐためには、DNSサーバの適切な設定が大切です。まずは自社で管理しているDNSサーバの設定について、見直してみることをおすすめします。

情報セキュリティ対策サイバー攻撃対策インシデント対策
タイトルとURLをコピーしました