日本レジストリサービス(JPRS)は2011年5月27日、DNSサーバーソフト「BIND」に深刻なぜい弱性が見つかったと警告した(発表資料)。悪意ある第三者からネットワーク越しにリモートで攻撃を受けると、named(DNSサーバーの実体となるプロセス)が停止する危険性がある。対象となるのは、現在サポートされているすべてのBIND 9のバージョン。

 具体的には、BIND 9でのネガティブキャッシュの扱いに実装上のバグがある。ネガティブキャッシュとは「そのドメイン名は存在しない」「そのリソースレコードは存在しない」といった情報のキャッシュのこと。あらかじめ「存在しない」という情報をキャッシュしておくことで、DNSの応答速度を向上させ、DNSサーバーに対する負荷を軽減する機能だ。このバグを抱えたDNSサーバーが、権威DNSサーバーからサイズの大きなRRSIGリソースレコードセットを含む否定応答を受信すると、エラーが発生してnamedがクラッシュしてしまう。

 RRSIGレコードはその他のリソースレコードの署名情報を格納するためのレコードで、DNSSECで利用する。ただし、今回のぜい弱性はDNSSECを有効にしていないキャッシュDNSサーバーでも攻撃対象になる。

 例えば、攻撃者がDNSSECの署名を設定し、サイズの大きなRRSIGリソースレコードセットを備えた権威DNSサーバーを用意しておく。その後、何らかの手段を使って攻撃対象のキャッシュDNSサーバーを利用する端末のDNSリゾルバーから、悪意ある権威DNSサーバーが管理するゾーン中の「存在しないドメイン名」を検索させる。例えば、迷惑メールにリンクを張りつけたり、ボットネットを使ったりする手段が考えられる。その結果、悪意ある権威DNSサーバーからキャッシュDNSサーバーに対して、「存在しないドメイン名」の否定応答が返ってくると、キャッシュDNSサーバーのnamedがクラッシュしてしまう。このため、「インターネットに公開していないキャッシュDNSサーバーでも、攻撃対象になる点は注意が必要」(JPRS担当者)。

 BINDの開発元のISC(Internet Systems Consortiumi)は、このぜい弱性の深刻度を「High(高)」と評価している。すでに攻撃手法がインターネット上に公開されていること、攻撃対象のDNSサーバー側でDNSSECを有効にしていなくても影響を受けること、現在サポートされているBIND 9の全バージョンが影響を受けることなどがその理由だ。

 JPRSは、すでにこのぜい弱性を修正した「BIND 9.8.0-P2」「同9.7.3-P1」「同9.6-ESV-R4-P1」「同9.4-ESV-R4-P1」へのアップグレード、またはDNSのディストリビューションベンダー各社からリリースされたパッチの適用を推奨している。

■変更履歴
記事公開当初、「仕様上は単独でRRSIGレコードを検索することができるため、攻撃者に悪用される恐れがある」との記述がありましたが、今回の攻撃とは直接関係がありませんでした。また、「存在しないドメイン名」に関する記述が一部間違っておりました。お詫びして訂正いたします。本文は修正済みです。なお、併せてJPRS担当者のコメントを追記しました。[2011/05/30 18:25]

最終段落のアップグレード推奨バージョンに関する記述が一部誤っておりました。「同9.7.3-P」は正しくは「同9.7.3-P1」です。お詫びして訂正いたします。本文は修正済みです。[2011/05/30 20:40]