Infobloxに聞く

DNSアタック、技術者がまずすべき3つの対策

2008/09/19

 2008年7月、インターネットの世界を根幹から揺るがす大きな問題が公開された―キャッシュに偽のDNSレコードを記憶させる「DNSキャッシュポイズニング」だ。

 IPアドレスとドメイン名のひも付けを行うDNSはすべてのIPネットワークの基本だ。もしIPアドレスとドメイン名の組み合わせが信頼できないものになってしまえば、インターネットの世界は成り立たない。この問題に対して情報処理推進機構(IPA)も9月18日に「DNSキャッシュポイズニングの脆弱性に関する注意喚起」をする文書を発表しており、DNSのセキュリティ対策に注目が集まっている。DNSやDHCPは一度運用が開始されると、定期的な管理を行わずとも動いてしまう傾向があり、なかなか注目されないサービスではないだろうか。しかし、こうした動いて当然のサービスこそがネットワークの基本であり、止めてはならないもの――では、それをどう実現すべきなのだろうか。

 Infobloxはカリフォルニア州サンタクララに本社を置く企業。DNSやDHCP、RADIUSなどといったネットワークの基本となるサービスを“アプライアンス”として提供する。経営陣にはオライリーが発行する「DNS&BIND」著者の1人であるクリケット・リュー(Cricket Liu)氏が名を連ねている。今回マーケティングバイスプレジデントのリチャード・ケーガン(Richard Kagan)氏が来日したのにあわせ、Infobloxの取り組みとDNSキャッシュポイズニングへの対策について話を聞いた。

「コアネットワーク」の重要性

リチャード・ケーガン氏 Infoblox マーケティングバイスプレジデント リチャード・ケーガン氏

――まず、Infobloxの取り組みについてお聞かせください。

 InfobloxはDNS、DHCP、IPAN、RADIUS、TFTP、NTPなど、アプリケーションとネットワークインフラの間にあるネットワークサービスを「アプライアンス」として提供する企業です。アメリカでは2500社を超える企業に導入され、日本でも大手企業や大学などで使われています。

 Infobloxではこれらのベーシックなサービスを総称して「コアネットワーク」と呼んでいます。コアネットワークに注力する理由は、このサービスがきっちり設定していなければアプリケーションもセキュリティもあり得ないということが挙げられます。われわれはコアネットワークをアプライアンスとして提供し、管理がしやすく、セキュアで、高い可用性を確保できるように注力しています。DNSやDHCPをアプライアンスとして提供しているのは珍しいのではないでしょうか。

――競合はどのような企業になるのでしょうか。

 競合は「オープンソース」、つまりBINDでしょうね。しかしBINDだけでは高可用性もディザスタ耐性もセキュリティの確保もなかなか難しいでしょう。

 Infobloxのアプライアンスの特徴は、DNSやDHCP、RADIUSの情報を同一のOS、同一のデータベースに格納できることです。これにより、一貫性のある管理ができ、かつグリッドで構成した場合にユニット間の同期が簡単に行えるのです。

――DNSやDHCPは安定運用するとそのまま放置されている例が多いのではないかと思います。

 その通りで、日本だけではなく全世界で同じような傾向があるようです。DNSやDHCPのアプライアンスを売り込んでも、「ウチのDNSにはまったく問題がない」と言われてしまうことが多いのです(笑)。

 DNSやDHCPに異常があったとしても、利用者はコアネットワークサービスの異常だとは思わず、単純に「アプリケーションが動かない」と認識します。例えばWebブラウザにドメイン名を打ち込んでも期待しているページが表示されないとき、本来はDNSの問題だったとしても、「ブラウザが変」としか思わないでしょう。でも実はDNSに問題があることが原因である場合もあるのです。

 アンチスパムのエンジンを例にしますと、送信してきたメールアドレスのドメインが存在するかなどの判定のため、1回の判断で10から20回のDNSリクエストが行われます。クラウドコンピューティングでもDNSリクエストを頻繁に行っているでしょう。DNSは非常に重要なサービスなのです。しかし、上級エンジニアでもこの重要性に気がついていない場合もあります。

 ちょうど先週、倒れることのないと思われていたリーマン・ブラザーズやメリルリンチが危機的状態になり、米国は金融危機を心の底から認識しました。DNSもクラッシュしたり、キャッシュポイズニングされて初めて危機が認識される……もしかしたら、この2つは似た問題なのかもしれません(苦笑)。

DNSキャッシュポイズニング対策に決め手はあるのか

――先日、ダン・カミンスキー氏によるDNSキャッシュポイズニング攻撃についての発表がありました。

 Infobloxのクリケット・リューとカミンスキー氏は密にコミュニケーションを取っており、Infobloxのサイトでも彼らの対談をWebキャストとして公開しています(Infoblox Webinar)。ガートナーやウォールストリートジャーナルなどもこの問題を大きく取り上げており、徐々に認知度は高まっています。

 この問題は世界的にまん延した「I Love You」ウイルスを思い出させます。2001年に発生したこのワームは単なる愉快犯的なものでしたので、これによってもうけを得たのはウイルス対策ソフトウェアのベンダだけでした(笑)。しかし今回のDNSキャッシュポイズニングは違います。例えば銀行のサイトのドメイン名を、不正なフィッシングサイトへ飛ばすように汚染してしまえば、利用者のお金を盗むことができてしまいます。しかもそれは利用者が気付かないうちに、深く静かに行われてしまうことがこの問題の根の深さを表しています。だからこそ、DNSを管理するエンジニアが注意しなくてはなりません。

――エンジニアがまずすべきことはなんでしょうか。

 3つあります。まず1つはDNS設定のテスト、2つめはパッチの適用、3つめはDNSファイアウォールの導入です。

 DNSの設定のチェックおよびテストについては、オンラインでDNSの設定内容をチェックする「Cricket Liu's DNS Advisor」を提供しています。このようなツールを使い、DNSの状態を毎週、毎日と継続的にチェックし続けることが重要だと思っています。パッチの適用も必ず行ってください。しかし、ネットワークが安定運用しているとパッチ適用のタイミングが非常に難しいでしょう。そこでInfobloxは「DNSファイアウォール」という考え方を提示しています。これはBINDなどのDNSサーバとインターネットの間に、DNS/DHCPのアプライアンスを用意するというものです。

DNSファイアウォール構成図 DNSファイアウォール構成図

 DNSをアプライアンスにする理由は、パッチの適用などのアップグレードが容易になることです。例えば5台のBINDをアップデートするのに約330分かかるのに対し、アプライアンス製品であれば約20分で終わります。この構成はメンテナンス性を向上させ、内部DNSサーバを守ることができるようなものになっています。

――まずパッチ適用が最初ではないかと思ったのですが。

 DNSキャッシュポイズニング対策においてパッチ適用は非常に重要なことなのですが、残念なことにこれは「完全な対策」ではありません。パッチ適用により「数分で汚染が完了する」が「数日で汚染が完了する」というレベルに変化するのは間違いないですが、完全な修正はできません。ですので、パッチを適用したあとも攻撃の予兆がないかどうかを監視し続けることが重要なのです。

 DNSキャッシュポイズニングを行う場合、攻撃の予兆というのが必ずあります。具体的にはDNSクエリの量が急増するなどの動きがありますので、これを見逃さないことが重要です。

 10月には、Infobloxのアプライアンス向けに「DNS Protocol Monitoring」「Attack Alerts」「Attack Mitigation(アタック緩和/制限)」などのセキュリティ機能を追加する予定です。アタックのしきい値を設定し、それを超えるようなDNSクエリが確認できたらアラートを出したり、そのリクエストへの反応を制限したり、完全に止めることができるようになります。

――この事件を踏まえて、DNSというプロトコル自体のロードマップはどのようになると考えますか。

 今回の問題はDNS自体の仕様に起因するものですので、根本的な対策には仕様を変更する必要があります。現在のところDNSSECが有望視されていますが、現時点では管理、設定に多くの労力が必要です。2005年にはInfobloxのDNSSECアプライアンスを米国政府に導入したのですけれど、実運用には至ってないようです。またDNSSEC以外でも、DNSを拡張し問題を回避するということを模索しているグループもありますが、現時点では検討できるだけの情報がありません。

 いずれにせよ、これらの新しいDNSの仕組みが全世界に普及するには、少なく見積もっても数年単位の時間が必要となります。それまでこの問題を放置することはできませんので、いまできる対策を行うべきです。

関連リンク

(@IT 宮田健)

情報をお寄せください:



Security&Trust フォーラム 新着記事

注目のテーマ

Security & Trust 記事ランキング

本日 月間