7月初旬からインターネットとセキュリティ業界を騒がせていたDNS(Domain Name System)に関する脆弱性について7月24日(米国時間)、同脆弱性の発見者であるDan Kaminsky氏がその詳細について解説した。このDNSで発見された脆弱性は、BINDからMicrosoft製品、Cisco IOSに至るまで、インターネット上で稼働しているほとんどのシステムに影響を及ぼすもの。その存在はKaminsky氏によって7月9日に公にされ、ネットワーク管理者らに対して至急ベンダーからリリースされた対策パッチを充てるように通達が出されていた。脆弱性の詳細についてはハッカーらの悪用を避けるために8月初旬に米ネバダ州ラスベガスで開催される「Black Hat」まで公開されない予定だったが、22日になり別の研究者により脆弱性の内容がオープンにされてしまったこともあり、急遽24日での情報公開となったいきさつがある。
今回発見された脆弱性は「キャッシュ・ポイゾニング」と呼ばれるもので、インターネット上に存在するDNSサーバ同士が情報の中継を行う際、悪意のあるサーバが偽の情報を相手のDNSレコードに送り込み、以後DNSに対して問い合わせを行ったユーザーに対して本来の意図とは別のサイトへと接続を誘導する。ネットワーク上に存在する端末(ノード)は互いに通信を行う際、"ポート"と呼ばれる番号を指定して通信先のアプリケーションを指名する。ポート番号を明示することで通信の制御が行いやすくなるからだ。だがこのような形でポートを開放することは不特定の第三者に攻撃の隙を与えることも意味しており、通常は必要ないポートをファイアウォールやノード側で閉じておいたり、ポート番号を初期設定とは別のものにする、あるいは接続が発生するごとに動的に変更する手段が採られる。だがDNSのサーバ同士の通信においては、ポートが初期設定、あるいは半固定の状態で運用されているケースがほとんどで、ハッカーがこの性質を利用してDNSサーバを攻撃することが可能となる。Kaminsky氏は「(ポート番号の数である)6万5,000分の1の確率で攻撃が可能だ。こうした問題はほとんどのDNSサーバに存在しており、バグというよりは設計上の問題だ」と指摘する。
各ベンダから提供されたパッチでは、通信ポートが固定状態にある問題に着目し、この接続ポート番号のランダム性を高めることでハッカーによる攻撃成功確率を下げることを目的にしている。ほとんどのメジャーなDNSサーバ製品で対策パッチが出ているが、BINDを含む旧バージョンの製品で対策が行われていないケースもあり、その場合にはバージョンアップが必要になる。また接続先ポートが毎回ランダムで変動するため、ファイアウォール等のセキュリティ製品の設定を変更する必要がある。
同氏によれば、問題自体は2008年初頭の時点ですでに発見していたという。7月に初めて脆弱性が公開されるまでの段階では、DNS製品をリリースする各ベンダに秘密裏に通知を行い、対策パッチが登場するのを待つことに費やしていた。Black Hat開催まで1カ月となった7月9日、ネットワーク管理者らに対して脆弱性の存在を公開、管理者らのカバーするDNSの脆弱性をテストし、至急パッチでの対策を促した。同氏としては対策が十分に浸透した段階で、8月に改めて脆弱性の詳細を公開するつもりだったようだ。だがセキュリティ研究者でBlack Hatでも登壇予定のHalvar Flake氏はKaminsky氏の秘密主義を非難、脆弱性の詳細に関する同氏の考察を自身のBlog上で公開した。こうした経緯もあり、Kaminsky氏は予定よりも早い24日の段階で全情報の公開に踏み切ったものとみられる。