図 DNSを使った攻撃「DNS amp」のしくみ
図 DNSを使った攻撃「DNS amp」のしくみ
[画像のクリックで拡大表示]

 DNS amp(ディーエヌエス アンプ)とは,複数のコンピュータから大量にデータを送り付けて回線をパンクさせるDDoS(distributed denial of service:分散サービス妨害)攻撃の一種である。セキュリティ関連組織が注意を呼びかけているほか,2006年7月には警察庁が注意を促す文書を発表。国内のインターネット運用者が一堂に会するJANOG会議でも対策の必要性が議論された。世界中にあるDNSサーバーが攻撃の踏み台になる危険性がある。

 DNS ampのしくみはこうだ(図)。

 クラッカは,自分が用意したDNSサーバーに,大きなサイズのレコード情報を登録する。DNSサーバーに登録できるレコード情報には,DNSでテキスト情報をやりとりするためのTXTレコードがある。これを使って大きなサイズのTXTレコードを作る(図の1)。続いてクラッカは,用意したTXTレコードをインターネット上に公開されているDNSサーバーにキャッシュさせる(同2)。ここまでが攻撃の準備だ。

 クラッカがターゲットを攻撃するときは,ボットネットを使う(同3)。ボットネットは,データをキャッシュしたDNSサーバーにTXTレコードを要求するDNS要求パケットを送る。ただし,送信元IPアドレスをターゲットとなるマシンのアドレスに詐称する(同4)。この要求パケットに含まれるデータはわずか数十バイトだ。

 この要求パケットを受けて,DNSサーバーはアドレスを詐称されたターゲットのマシンに対してDNS応答パケットを送る(同5)。問題は,このDNS応答パケットのサイズだ。DNS要求パケットのデータ部分が数十バイトだったのに対して,応答パケットにはDNSでやりとりできる最大サイズ(4096バイト)のTXTレコードを格納する格好になる。こうして,インターネット上のDNSサーバーを使ってデータを増幅(amplification)し,ターゲットを攻撃するわけだ。

 現在インターネットに公開されているDNSサーバーの多くは,キャッシュ機能を有効にしている。そのため,世界中のDNSサーバーがDNS ampの踏み台として使われる危険性がある。

 対策は,公開DNSサーバーのキャッシュ機能を無効にして,自身に登録されているレコード情報だけを応答するように設定すること。ただし,そうすると社内ユーザーがこのDNSサーバーを使って名前解決ができなくなってしまう。そのため,社内ユーザーが使うDNSサーバーを別途用意し,そのDNSサーバーは社内ネットからの要求だけに応えるようにアクセス制限を施すようにする。