DNS の再帰的な問合せを使った DDoS 攻撃に関する注意喚起対応(JPCERT-AT-2006-0004)

DNS の再帰的な問合せを使った DDoS 攻撃に関する注意喚起対応(JPCERT-AT-2006-0004)

Last update 2012.02.18


 2006/03/29にJPCERT/CC から DNS を使った DDoS 攻撃に対する注意喚起が促されています。

 http://www.jpcert.or.jp/at/2006/at060004.txt

 どんな手口かというと、踏み台にしたいキャッシュサーバ(*1)に送信元を詐称(攻撃対象に)したリクエストを大量に送りつけて、キャッシュサーバに DoS させるみたいです。

 http://www.us-cert.gov/reading_room/DNS-recursion121605.pdf

(*1) リゾルバのからのクエリを再帰検索で名前解決をする DNS をキャッシュサーバと呼び、ゾーン情報を外部に公開している DNS をコンテンツサーバと呼びます。

 JPCERT/CC が提示している資料のリンク先にある JPRS のドキュメントでは、MS-DNS はキャッシュサーバのアクセス制限が出来ないので、コンテンツサーバとキャッシュサーバを物理的に分離して、キャッシュサーバは LAN だけにサービスを提供しろとあります。

 http://jprs.jp/tech/notice/2006-03-29-dns-cache-server.html

 2003 だとドメインコントローラはルートヒントを使って自力でグローバルアドレス空間の名前解決が出来るので、

 の方法で対応できます。

 DMZ は ISP 側のキャッシュサーバを見る様にする方がセキュリティ構成を大幅に変更しなくて良いのでお勧めですね。


 「Windows Server 2003 実践ガイド」で紹介した DNS 設定ではこの脆弱性があるので踏み台にされる危険性が高いです。この問題への対応方法を「第16章 セキュリティアップ」の追加情報として公開します。

9 DNSがDDoSの踏み台になるのを防止する

 DNS にはリゾルバ(クライアント)からの名前解決要求に応答するキャッシュサーバと、ゾーン情報を公開するコンテンツサーバの2種類がある。

 キャッシュサーバをインターネット上に公開していると、悪意ある攻撃者は送信元に攻撃対象をセットしたクエリパケットをキャッシュサーバに大量に送信してくる。DNS にしてみれば名前解決問い合わなので、その回答を真面目にするわけだが、送信元が詐称されているので、結果として詐称されている攻撃対象に対して大量にパケットを送りつけてしまうのである。

 つまり DNS が悪意ある攻撃者の踏み台として利用され、DoS 攻撃をしてしまうのだ。

 この問題を回避方法するには、インターネット側からアクセスできる公開サービスはコンテンツサーバのみにして、キャッシュサーバはLAN等の管理ネットワーク空間からのアクセスに限定する必要がある。

 ISPのセカンダリDNSもキャッシュサーバとコンテンツサーバの共用になっているケースが多く、本書でもセカンダリDNSを名前解決用として指定して いるが、ISPがセキュリティアップのためにセカンダリDNSからキャッシュサーバ機能が削除するとが予想されるので、DNSの指定はISPが指定するキャッシュサーバに変更するのが無難だ。

9.1 公開 DNS からキャッシュサーバの機能を削除する

 インターネット上に公開している DNS からキャッシュサーバの機能を削除するには、再帰検索を無効にすればいい。

 再帰検索を無効にするには、DNSサーバのプロパティを開き、[詳細]タブにある「再帰を無効にする(フォワーダも無効になります」をチェックする。

 本書の通りの設定をしている場合は、TCP/IPのプロパティでDNSサーバに自分自身とセカンダリDNSをしているはずだ。
 ところが、キャッシュサーバ機能は停止したので自分自身では名前解決が出来なくなっている。更にセカンダリDNSからキャッシュサーバ機能が削除される事が予想されるので、この設定をISPが指定して いるプライマリ/セカンダリキャッシュサーバに変更する。

 設定が完了したら、DNSサービスを再起動するか、DNSサーバそのものを再起動すれば完了だ。これでキャッシュサーバとしての機能は停止した。

 

9.2グローバルアドレス空間の名前解決をドメインコントローラで解決する

 本書の通りの設定をしている場合は、ドメインコントローラの名前解決は公開DNSにフォワードしているはずだ。9.1で公開DNSからキャッシュサーバ機能を削除したので、このままではグローバルアドレス空間の名前解決をすることが出来ない。

 この問題の解決方法は以下の2つがある。

  1. フォワード先をISPが指定しているプライマリ/セカンダリキャッシュサーバに変更する
  2. ドメインコントローラで自力名前解決をする

 どちらの方法でも問題はない。前者のISPが提供するキャッシュサーバにフォワードする方法はフォワード先のIPアドレスを変更するだけなので解説は割愛させていただき、後者のドメインコントローラが自力で名前解決する方法を紹介しよう。

 Windows Server 2003 の DNS はルートヒントを持っているので、グローバルアドレス空間の名前解決を自力でする事が出来る。通常のDNSだけではなく、ドメインコントローラが持つDNSにもこの機能が有効なので、ドメインコントローラは自力で名前解決をすることが可能だ。

 自力名前解決をさせる方法は簡単で、フォワード設定を削除するだけだ。

 

9.3 DMZ 上の名前解決

 本書の通りの設定をしている場合は、DMZ 上のサーバは公開DNSを参照しているはずだ。

 公開サーバはグローバルアドレス空間の名前解決が出来なくなっているので、9.1で参照DNSを変更した要領で、ISPが指定しているプライマリ/セカンダリキャッシュサーバに変更する。

 

IMail を使っている場合は、サーバOSと、IMailが参照しているDNSの両方を変更する必要がある。

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.