日本レジストリサービスは2012年6月5日、DNS(Domain Name System)サーバーソフトの「BIND 9」に突然のサービス停止の可能性を含む重大な脆弱性が見つかったことを報告し、速やかに対応措置を取るよう広く呼びかけた。これまでリリースされたBIND 9の全バージョンが今回の脆弱性の影響を受けるという。

 同脆弱性は、「長さ0のrdataによってnamedが異常停止する」というもので、BINDの開発元であるISC(Internet Systems Consortium)が6月4日(米国時間)に発表した。DNSで名前解決をする際にやりとりする「資源レコード」(Resource Record、RR)内にある「RDATA」フィールドがヌル(サイズが0)であるDNSパケットをDNSサーバーが処理しようとすると、サーバーがクラッシュしたり、サーバーメモリー内の情報がクライアントに開示されたりする危険性がある。

 RDATA部分には通常、ドメイン名(Aレコードの問い合わせ時)やメールサーバー情報(MXレコードの問い合わせ時)などが入るが、DNSの仕様(RFC1035)では実験的(EXPERIMENTAL)な資源レコードとして上記0サイズのケースを含む(最大6万5535オクテットまで)「NULL RDATA format」が定義されており、今回これが悪用された形になる。

 DNSサーバーには大まかに「権威サーバー」と「キャッシュサーバー」という二つの役割があるが(ほかに「フォワーダー」などもあるがここでは省略)、今回の脆弱性では特にキャッシュサーバーに対しての影響が大きいことをISCなどでは警告している。権威サーバーは、自身が管理するドメイン名の情報を答える側であり、今回の脆弱性の影響を受けにくいのは、「管理者がデータを含まない(RDATAの長さが0である)試験的なレコードタイプを使うように設定している場合だけ(影響を受ける)」(ISC)からだ。

 一方、キャッシュサーバーはクライアント(リゾルバ)からの要求に応じて様々な権威DNSサーバーに対して各種DNSの問い合わせを実行するサーバーであるため、ユーザーがキャッシュサーバーを通じて当該資源レコードを検索するだけでサービス妨害(DoS)攻撃を遂行できてしまう。

 このように非常に危険な脆弱性だが、ISCによれば回避策は「現在調査中」であり、一時的な回避策はまだ見つかっていないという。ISCでは、抜本的な対策としてBIND 9.9.1-P1、9.8.3-P1、9.7.6-P1、9.6-ESV-R7-P1へのアップグレード、またはディストリビューションベンダーがリリースするパッチの適用を強く勧めている。

 BINDは、DNSサーバーとして世界で最も使われている。ISCの推計によれば、稼働中のDNSサーバーの80%以上がBINDだという。キャッシュサーバーはプロバイダーなどに設置されているほか、企業が自前で立てて運用しているケースも多い。上記数値と併せて考えると、相当数の企業のDNSサーバーが影響を受けることが予想される。自前でDNSサーバーを運用している企業ユーザーは、すぐにでも対策に動いた方がよいだろう。