弊社のDNS サーバが再帰的な問合せを使用する DDoS 攻撃の踏み台にされてしまいました

事の顛末

JPCERTより以下のメールが着た

「この連絡は、JPNIC、JPRS WHOIS データベースに登録されている、もしくは以
前に返信いただいた、下記の担当者の方にお送りしています。
JPCERT/CC では、以下の通り、貴サイトの DNS サーバが、DNS の再帰的な問合
せ (recursive queries) を使った DDoS 攻撃の踏み台として使用された可能性
があるとの報告を受けています。・・・」

「DNS の再帰的な問合せ (recursive queries) を使った DDoS 攻撃」とは

DNS Amp攻撃の解説と、踏み台にされないためのBIND DNSの設定

調査

最初にDNSのキャッシュの内容をファイルに出力

rndc dumpdb

上記を実行すると/etc/bind/named.conf.optionsで指定されたディレクトリにファイル(named_dump.db)が出力される。
(キャッシュのクリアはrndc flush)

options{
        directory "/var/cache/bind";
};

対策終了後のsyslogを見るとDDosの形跡と思われる多くの問い合わせが着ている。
特に多いのが「somethingstrange.netfirms.com」と「webpanel.sk」についての問い合わせ。

Sep 24 11:50:04 localhost named[11347]: client 65.129.239.237#22124: query (cache) 'somethingstrange.netfirms.com/ANY/IN' denied
Sep 24 11:50:05 localhost named[11347]: client 65.129.239.237#59962: query (cache) 'somethingstrange.netfirms.com/ANY/IN' denied
Sep 24 11:50:05 localhost named[11347]: client 69.31.20.75#10270: query (cache) 'webpanel.sk/ANY/IN' denied

named_dump.dbを確認しても上記のドメインに関するキャッシュはない。
単純に問い合わせているだけのようだ。

対応方法

DNSには2つの機能(役割)がある。

(1)コンテンツサーバ
自分が管理しているドメインに関する情報の問い合わせへの回答

(2)キャッシュサーバ
(1)以外の問い合わせに対する回答

今回の対策とでは(2)に対する問い合わせを社内のみに限定する。
named.conf.optionsに以下を記述して基本社外からの問い合わせを拒絶。

 allow-query{
                localhost;
                社内のネットワーク
        };

弊社が管理しているドメインについては問い合わせを許可

zone "管理対象ドメイン" {

        allow-query{any;};
};

以上