脅かされるDNSの安全性:DNSSEC再入門(1)(2/2 ページ)
インターネットの重要な基盤技術の1つであるDNSに対して新たな攻撃手法が公開され、その安全性が脅かされている。DNSにセキュリティ機能を提供するための技術であり、普及が進んでいるDNSSECについて、仕組みと運用方法を紹介する。(編集部)
偽装応答型DNSキャッシュポイズニングの仕組み
DNSキャッシュポイズニングとは、「あらかじめキャッシュDNSサーバに偽の情報を覚え込ませ、ユーザーが正しいアクセスを行ったつもりでも、偽のサイトに誘導する手法」のことである。フィッシングやファーミングのための攻撃手法の1つであり、キャッシュDNSサーバの利用者が被害を受けてしまう。DNSキャッシュポイズニングが成功した後、偽の情報に対するキャッシュの生存時間(TTL)が切れると証拠が残らないため、事後の調査が困難になることにも留意しなければいけない。
ここで、DNSキャッシュポイズニングの手法の1つである偽装応答型について説明する。偽装応答型では、キャッシュDNSサーバが反復検索を行うタイミングで、偽装した応答を正規の応答の前に受け取らせることを狙う。
このことから分かるように、DNSキャッシュポイズニングを行うためには「キャッシュDNSサーバが反復検索を行う」という動作が必要になる。DNSのメッセージは単純かつUDPを使用することが多いために、応答の偽装自体は難しくない。攻撃における課題は、どうやってクエリの正式な応答に見せかけるかという部分である。
ここで、キャッシュDNSサーバが、名前解決依頼として出したクエリに対する応答をどのように見分けるかについて説明をしよう。
DNSのプロトコルでは、応答パケットの識別をするために、「クエリID」と呼ばれる識別番号やIPアドレスとポート番号、応答に含まれるクエリの内容を利用している。このうち、クエリの内容によらない部分は、クエリIDとクエリ送出時のソースポート番号、場合によってはクエリ送出時のソースアドレスである。
ところが、クエリIDの長さは16ビット(65536通り)しかないために、コンピュータがその全パターンを作り出すことはさほど難しくない。従って、攻撃者がクエリIDのパターンを変えつつ総当たりで攻撃を仕掛けると、その偽装されたパケットをキャッシュDNSサーバがどこかで受け取ってしまう可能性が出てくることになる。クエリIDに加えてソースポート番号もランダムにすれば攻撃の成功率はさらに下がるが、非現実的な数字ではない。
カミンスキー型攻撃の「衝撃」
偽装応答型では、攻撃に失敗した場合には正しい応答がキャッシュされ、その生存期間が過ぎてキャッシュが破棄されるまでは、再び攻撃を行うことはできなかった。
カミンスキー型は偽装応答型の一種ではあるが、その欠点であった攻撃機会の制約を取り除いてしまったという点で脅威となる。つまり、連続攻撃が可能となったのである。
カミンスキー型の特徴は、攻撃対象と同じドメイン名の“存在しない名前”を検索させるという点にある。一度攻撃に失敗してもクエリに使う名前を変えることで、キャッシュの生存時間に関係なく連続攻撃が可能となる。このため理論的には、時間さえかければカミンスキー型攻撃の成功率はほぼ100%なのだ。
加速するDNSSECの導入
カミンスキー型の攻撃手法が公になって以来、DNSの安全性に対する議論は高まりを見せている。カミンスキー型攻撃はその成功率が非常に高いとはいえ、「一度に類似の応答が大量に届く」という攻撃の特徴を監視すれば、攻撃を早期に検知することは可能である。しかし、根本的な対策とはならない。
DNSキャッシュポイズニングを防ぐには、返ってきた応答が正しいものかどうかを調べるのが一番である。もちろん、DNSの安全性を高めるためのアイデアはほかにもあるが、現状ではDNSSECが現実解として普及しつつある。
ルートゾーンについては、2010年7月15日にDNSSECの導入が完了した。gTLDでは、2010年6月に導入を完了した“.org”を皮切りに、“.biz”“.info”“.com”“.net”など、導入済みまたは導入作業に着手したTLDが増えてきており、対応が進んでいる。
ccTLDにおいても、政府や銀行、商用ISPなどと組み、フィッシング対策として積極的にDNSSECに取り組んでいる“.se”(スウェーデン)や、2010年3月に導入を開始した“.uk”(イギリス)、2010年6月に全ゾーンに署名した“.eu”(欧州連合)、2010年6月に導入を完了した“.us”(アメリカ)など、対応が進みつつある。“.jp”においては、2010年10月17日に署名を開始し、2011年1月16日にサービスとして導入する予定である。詳細については、以下を参照していただきたい。
関連リンク:
JPドメイン名サービスへのDNSSECの導入予定について
http://jprs.jp/info/notice/20090709-dnssec.html
JPRS、2010年をめどにJPドメイン名サービスへDNSSECを導入(@ITNews)
http://www.atmarkit.co.jp/news/200907/10/dnssec.html
次回は、「DNSSECの動作原理」を中心に、その仕組みと導入のヒントを説明する。
Copyright © ITmedia, Inc. All Rights Reserved.