第1回ではDNSの仕組みとその重要性、DNSサーバーを狙った攻撃が増えていることについて説明しました。第2回では今年話題となったDNSキャッシュポイズニング攻撃について解説します。

DNSキャッシュポイズニングとは

JPドメイン名の登録・管理を行う会社である日本レジストリサービス(JPRS)は4月にDNSキャッシュポイズニング攻撃によるDNSサーバーを狙った攻撃が国内で増加していると注意勧告を行いました。

DNSキャッシュポイズニング攻撃は、連載の第1回目で説明した「キャッシュDNSサーバー」に対して行われる攻撃です。

キャッシュDNSサーバーは、権威DNSサーバーに名前解決の問い合わせを行い、次回同じ問い合わせを受けた時のために、問い合わせ内容を一時保存する機能を持っています。

ネットワークの負荷軽減や問い合わせを高速化するための機能ですが、この機能を悪用してキャッシュDNSサーバーに偽の情報を一時保存させるのがDNSキャッシュポイズニング攻撃です。

攻撃者は正規の問い合わせに先んじて、偽の問い合わせ情報をキャッシュDNSサーバーに送りこみ(※通称:毒入れ)、ユーザーを偽サイトに誘導させます。

DNSキャッシュポイズニング攻撃の一般的な例

DNSキャッシュポイズ二ング攻撃では、様々な手法で偽の情報をキャッシュDNSサーバーに仕込みます。特に有名なの手法では、2008年7月にダン・カミンスキー氏が発見した「カミンスキー型攻撃手法」です。

DNSキャッシュポイズニングに対抗する手段として、キャッシュDNSサーバーが一時保存する有効時間を長くして毒入れされる隙を与えないという防御方法がとられていましたが、カミンスキー型攻撃手法には通じません。

カミンスキー型攻撃手法では、攻撃者はまず存在しないドメインに関する問い合わせを、標的となるキャッシュDNSサーバーに対して行います。キャッシュDNSサーバーが権威DNSサーバーに存在しないドメインの名前の解決を行う間に、攻撃者は偽の問い合わせ情報をキャッシュDNSサーバーに送りこみますが、これが失敗しても偽のドメインを無限に作成できるため、同様の攻撃を何度でも繰り返し行えることがこの攻撃の特徴です。

DNSキャッシュポイズニングへの対策方法

カミンスキー型攻撃手法への対策方法はいくつかありますが、その一つにはキャッシュDNSサーバーの送信元ポートをランダム化し、問い合わせの偽装を困難にさせる「ソースポートランダマイゼーション」という手法があります。

カミンスキー型攻撃手法が公表された直後、ソースポートランダマイゼーションは各種DNSソフトウェアに実装されました。全てのキャッシュDNSサーバーの運営者はソースポートランダマイゼーションが設定されているか確認すべきでしょう。

これはネットワーク管理者が取れる対策になりますが、DNS-OARCが公開しているチェックサイトを用いることで、ユーザーもネットワーク担当者やサービス事業者へ勧告することもできます。

また、DNSキャッシュポイズニング全般への根本的な解決策として、「DNSSEC」という技術があります。

DNSSECは、DNSの名前解決で認証を行っていないという根本的な問題を解決する技術で、電子署名による認証で名前解決を行います。これにより、問い合わせ情報が正しいDNSサーバーからのものか、通信中に偽装されているかどうかについて確認できるようになります。つまり、ほぼ完全な形でDNSキャッシュポイズニング攻撃に対する防御を行えるようになるわけです。

しかし、DNSSECは電子署名に必要な鍵の管理や更新方法などが複雑であったり、DNSSECが有効に働いているか外部から分かりづらかったりといった様々な課題があります。

そのために現状では充分に普及しておらず、進行中の問題に対応するには心許ない状況です。

DNSキャッシュポイズニングの影響

万が一DNSキャッシュポイズニング攻撃を受けた場合の被害は様々な例があります。攻撃を受けたキャッシュDNSサーバーを利用するユーザーに対して、有害サイトへの誘導や、メール内容の盗聴を行ったり、DNSを使用できなくして各種サービスやアプリケーションを動作不能にしたりします。

これらの行為は、いずれも企業やユーザーに対して大きな損害を与えることは確実です。昨年よりネットバンキングを狙ったフィッシング詐欺サイトの被害が多発していますが、DNSキャッシュポイズニング攻撃による有害サイトへの誘導も含まれていると予測されます。

冒頭で紹介した4月の注意勧告は、カミンスキー型攻撃手法によるDNSキャッシュポイズニングを対象としています。

2008年に「カミンスキー型攻撃手法」が公開されてからすぐにソースポートランダマイゼーションによる対策の必要性は警告され続けていますが、JPRSの注意勧告の時点で対策をとっていない危険なキャッシュDNSサーバーが10%近く残っているとされています。

6年が経過した今でも対策がとられていないサーバーの存在は、ネットワーク管理者を中心とした多くの人が理解していないという現実を表しています。DNSが重要なインフラにも関わらず、脆弱性の多さから攻撃者に狙われやすいという事実を多くの方に知っていただきたいと思います。

次回はDNSサーバーを踏み台としたDDoS攻撃について解説します。

三好 慶太 Infoblox トレーナーSE

DNSやDHCP、IPアドレス管理の専用アプライアンスを提供するInfobloxでプリセールス支援とトレーニングを担当するトレーナーSE。
航空会社や通信事業者でのプロジェクトマネージャー、外資ストレージベンダーを経て2010年7月より現職。現在は自社のDNSセキュリティ製品を広く知ってもらうべく奔走中。