日本レジストリサービス(JPRS)は2014年4月15日に、「キャッシュポイズニング攻撃の危険性増加に伴うDNSサーバーの設定再確認について」という緊急注意喚起を公開した。この文書の背景とDNSサーバーに求められるセキュリティ対策について、JPRSに聞いた。
2014年4月15日、日本レジストリサービス(JPRS)が「キャッシュポイズニング攻撃の危険性増加に伴うDNSサーバーの設定再確認について」という緊急の注意喚起を公開した(関連記事)。この注意喚起の意味するところは幾つか考えられるが、最も重要なのは、今もなお10%程度残っていると発表された危険なキャッシュDNSサーバーの存在であろう。
今回公開された注意喚起は、キャッシュポイズニング攻撃の危険性増加に対する警告と、その対策について説明したものである。ここで述べられていることはとてもシンプルで、端的に言えば、
ということになる(ここで対象となるDNSサーバーは多岐にわたっており、サービス事業者が提供するキャッシュDNSサーバーはもちろん、会社や教育機関などで自ら立てているキャッシュDNSサーバー、各家庭の一部にあるホームルーターも含まれる)。
DNSのキャッシュポイズニング攻撃は決して新しい話題ではない。その危険性と対応の必要性は再三呼び掛けられてきたが、危険なキャッシュDNSサーバーがいまだに10%程度存在するという事実は、これらのメッセージを見ていないか、見ていてもその深刻さを理解できない、あるいは対応する気のないケースがあったりするということなのだろう。
いずれの理由にせよ、インターネットの安全性を確保する上で、この問題を看過することはできない。キャッシュポイズニング攻撃が成功してしまうと、キャッシュされた偽のデータを参照する全ての利用者のアクセスが偽のサイトに誘導され、フィッシングや電子メールの盗難といった被害に遭う可能性があるからだ。
そこで、JPRSの広報宣伝室の宇井隆晴氏と森下泰宏氏に、注意喚起の背景について聞いた。
最初の質問は、「JPRSはこの件をどう捉えているか」である。それに対して宇井氏は、「とても重大な問題だと認識している」と答えた。
「注意喚起にも書いていますが、現状では必須ともいえるソースポートランダマイゼーションが有効になっていないと考えられるキャッシュDNSサーバーが、JP DNSサーバーにアクセスがあったIPアドレスのうち約10%程度残っていることが最大の問題であると考えています。JPRSではそれを減らすための取り組みを最優先と考え、JPCERT/CCなどの関係組織と協調しつつ、さまざまな活動を進めているところです」(宇井氏)。
では、どのような対策をとればよいのだろうか。
森下氏によれば、「2008年のカミンスキー型攻撃手法の発表によってソースポートランダマイゼーションの重要性が再認識され、BIND 9など主要な実装ではソースポートランダマイゼーションの機能は既にデフォルトで有効になっています。そのため、キャッシュDNSサーバーのバージョンを最新版に更新し、かつ、ソースポートを意図的に固定する不適切な設定がもし残っていた場合、その設定を削除するという流れになります」という。
つまり、キャッシュDNSサーバーのバージョンを最新にし、ソースポートランダマイゼーションの機能を確実に有効にすることが求められている(おそらく、きちんとDNS運用を行っている企業や組織では、既に実施済みのことだろう)。
森下氏はさらに、「これも注意喚起に書いていますが、一部ベンダーのファイアウォールなどのネットワーク機器の中に、ソースポートランダマイゼーションの効果を無効にしてしまう不適切な動作をするものがあることが判明しています。この場合、それらの機器の設定変更や更新などが必要になります」と続けた。これは、今回の対策を取る上での注意事項である。
「これらの機器を含め、使用中のキャッシュDNSサーバーの状況を簡単にチェックできるサイトをDNS-OARCが公開しています。このチェックサイトにより現状をあらためて確認し、必要に応じた対策を速やかに取ることが重要です」(森下氏)。
「DNS-OARC」は、DNSの運用・分析・調査研究などを通じ、DNSをより安全で高品質なものとすることを目的としている組織だ(チェックサイトについては後述する)。
森下氏はまた、「キャッシュDNSサーバーがオープンリゾルバーになっている場合、キャッシュポイズニングのきっかけにできる問い合わせを外部から誘発できるため、攻撃の危険性が増大します。キャッシュポイズニング防止の観点からも、オープンリゾルバーの設定修正が重要な対策となります」とも述べている。
オープンリゾルバーというと、DNSリフレクター攻撃(DNS増幅攻撃とも)に悪用可能なことがしばしば問題視される(関連記事)が、キャッシュポイズニング攻撃に対する危険性の上昇も大きな問題となり得るのだ。むしろ、自らの顧客に直接影響を及ぼすことを考えた場合、こちらの方がより深刻な問題であるともいえるだろう。
キャッシュDNSサーバーのバージョンを最新にするのは、他の脆弱性に対応するという意味からも重要である。大事なことなので繰り返すが、キャッシュDNSサーバーのバージョンを最新にし、ソースポートランダマイゼーションの機能を確実に有効にする。そして、オープンリゾルバーとなっていた場合にはそれを止める。一見すると当たり前のことに思えるが、これこそが、今回の問題に対する最重要対策だ。
管理者の多くにとっては、「ソースポートランダマイゼーションを有効にすることで、何か副作用があるのか」という点も気になると思う。
森下氏によると、「キャッシュDNSサーバーの処理能力が何割か低下する」という副作用が生じるそうだ。しかし、もしキャッシュポイズニングに遭ってしまうと、その被害は甚大なものとなり、極めて影響が大きい。処理能力の低下を理由に、ソースポートランダマイゼーションを有効にしないという選択はすべきではないという。
ここまでネットワーク管理者やシステム管理者が取るべき対策を示してきたが、もう1つ重要な側面として、利用者であるユーザーができることも書き示してみたい。今回の件で最大の問題である10%の危険なキャッシュDNSサーバーの存在を減らすには、ユーザーからの声が大きな役割を果たすと考えているからだ。
実際、ユーザーが使っているキャッシュDNSサーバーが危険なものであった場合、直接の被害を受けるのは他ならないユーザー自身である。そうしたことから、ユーザー自身がサービス提供者に改善を求めることは理にかなっているし、正当な権利であるとも思う。そこで、ここではユーザーとしてできる対策についても説明しておく。
まず、キャッシュDNSサーバーがどのような状態にあるかを確認する必要がある。しかも、その確認結果は信用するに足るものでなければいけない。そのためここでは、森下氏が述べたDNS-OARCが公開しているチェックサイトを使用する(JPRSの注意喚起の中でも紹介されている)。
このサイトにアクセスすると、上図のような画面が表示される。このサイトは日本語に対応していないため英語が表示されるが、とりあえず気にしなくてよい。
チェック方法は簡単で、「Test My DNS」と書いてある四角い枠の中をクリックするだけだ。結果は「GREAT」「GOOD」「POOR」の3段階で示されるが、現状ではGREAT以外が表示された場合、何らかの対応が必要になる。つまり、GREAT以外の結果となった場合には問題があることになるので、サービス提供者に強く改善を求めてほしい。
ユーザーが、自身が今使っているキャッシュDNSサーバーがどれくらい安全かチェックし、自分が危険な状態に置かれているかどうかを把握しておくことは重要な防衛策の1つだ。そして、問題がある場合にはユーザーとしてサービス事業者に改善を求めることは、とても重要なことである。自己防衛の意味も含めて、やってみて損はないはずだ。
Copyright © ITmedia, Inc. All Rights Reserved.