オープンリゾルバ(Open Resolver)に対する注意喚起
              初版公開 2013年4月18日
              最終更新 2014年7月25日
            
DNSの不特定からの問い合わせに応答する*1、 サーバやネットワーク機器は、オープンリゾルバと呼ばれています。 最近、 適切な対策が施されていないオープンリゾルバが踏み台*2として利用され、 国内外のサーバに対する大規模なDDoS攻撃*3が行われていることが報告されています。
これを受けて、本来、 オープンリゾルバである必要のないサーバやネットワーク機器を減らし、 踏み台となってしまうことへの対策をとるための活動が行われています。
ご確認と対策をお願いいたします。
対策が必要なオープンリゾルバとは
オープンリゾルバの中には、 デフォルト設定のままであるなどの理由で、 本来はDNSサーバを意図したものではないにも関わらず、 管理者や利用者が気づかないうちにDNSの応答機能が有効になっているものがあります*4。
オープンリゾルバとなっているサーバやネットワーク機器は、 DDoS攻撃の踏み台になってしまう恐れがあるため、 対策をとることが必要です。
(ご注意)オープンリゾルバの中にはDDoS攻撃の踏み台などに悪用されないように、 対策が取られているものがあります。
DDoS攻撃のために踏み台として悪用された場合の影響
踏み台を利用したDDoS攻撃は、 送信元IPアドレスが踏み台のホストであるため、 そのサーバや機器によって攻撃が行われているように見えてしまいます。 インターネットを経由した不正行為に対しては、 その送信元に連絡を取って停止するように要請されることが多く、 踏み台として海外に対するDDoS攻撃に悪用された場合、 外国語で対応する必要があることが報告されています。
オープンリゾルバに関する対策
はじめに、以下の注意喚起をご参照ください。
- 
                DNSの再帰的な問い合わせを使ったDDoS攻撃に関する注意喚起(JPCERT/CC)
https://www.jpcert.or.jp/at/2013/at130022.html 
次に対策について述べます。以下の3点が挙げられます。
- 
                DNSの応答機能が有効になっているソフトウェアにおける対策
                
サーバソフトウェア(仮想サーバやルータ製品のオペレーティングシステムを含む)の設定を変更し、 オープンリゾルバにならないようにします。
オペレーティングシステムのパッケージや仮想サーバ、 ネットワーク製品のために、 デフォルト設定のテンプレートを作成している場合には、 そのテンプレートを確認し、 配布先でオープンリゾルバにならないようにします。 設定例をAppendix Iに示します。 - 
                ネットワーク機器における対策
                
まずネットワーク機器自体がオープンリゾルバとなっていないことを確認します。 本来は経由するはずのないIPアドレスのパケットをフィルタリングします。
ブロードバンドルータ、ケーブルテレビのセットトップボックス等、 CPE (Customer Premises Equipment)の設定のテンプレートを作成している場合には、 そのテンプレートを確認し、 配布先でオープンリゾルバにならないようにします。 対策となる設定はBCP38やSource Address Validationと呼ばれています。 設定例をAppendix IIに示します。 - 
                DNSサーバにおける対策
                
DNSサーバの設定を確認し、 オープンリゾルバにならないようにします。 そのためには、 不必要なDNSの再帰問い合わせに応答しないように設定します。 問い合わせに対する応答がDDoS攻撃にならないようにするための手法として、 Response Rate Limiting in the Domain Name System (DNS RRL) (DNSにおける応答のレート制限)があります。 設定例をAppendix IIIに示します。 
確認方法
オープンリゾルバかどうかを確認することのできるWebサービスを以下に示します。
              
                (ご注意)多くのオープンリゾルバを探す用途には使えません。
                多くのオープンリゾルバを探す疑いのある操作が行われた場合、
                セキュリティインシデントとして扱われる可能性があります。
              
              
            
- 
                オープンリゾルバ確認サイト
http://www.openresolver.jp/ - 
                Open DNS Resolver Project
http://openresolverproject.org/ - 
                Test for Open Resolvers (The Measurement Factory)
http://dns.measurement-factory.com/cgi-bin/openresolvercheck.pl 
対策を取られる方へ
- 
               ソフトウェア設定やネットワーク機器設定のテンプレートを作成されている方
テンプレートとなる設定にオープンリゾルバとなるものが入ってしまわないよう、 ご確認と対策をお願いいたします。 - 
               ブロードバンドルータ、セットトップボックス等、CPEの設定のテンプレートを作成されている方
テンプレートとなる設定にオープンリゾルバとなるものが入ってしまわないよう、 ご確認と対策をお願いいたします。 - 
               ISPの方
DNSサーバとルータなどのネットワーク機器の、ご確認と対策をお願いいたします。 - 
               サーバを管理運用されている方
サーバが意図せずオープンリゾルバになってしまわないよう、 ご確認と対策をお願いいたします。 
Appendix I. DNSの応答機能が有効になっているサーバ、および、DNSキャッシュサーバにおける設定例
問い合わせを許可するIPアドレスを、 自組織のネットワークや顧客のネットワークに制限し、 DDoS攻撃の原因となるような問い合わせに応答しないように設定します。
- BINDの設定例
                
DNSの応答機能が有効になっているサーバ、 およびDNSキャッシュサーバの場合 (named.conf):
acl "trusted" { 192.168.0.0/16; localhost; }; // 問い合わせを許可するIPアドレスを指定する。 options { recursion yes; allow-recursion { trusted; }; }; - Unboundの設定例
                
DNSの応答機能が有効になっているサーバ (unbound.conf):
server: access-control: localhost allow access-control: 192.168.0.0/16 allow ## 問い合わせを許可するIPアドレスを指定する。 
Appendix II. ネットワーク機器の設定例
ネットワーク機器のインターネット側のインターフェースにuRPF (unicast reverse path forwarding)を設定します。
- Cisco製ルータの設定例
                
○LooseモードのuRPFの設定
(ご注意)設定によってルータの負荷が上がるなどの影響がある場合があります。Router(config)#ip cef enable Router(config)#interface <インタフェース名> <インタフェース番号> Router(config-if)# ip verify unicast source reachable-via any Router(config-if)# end - Juniper製ルータの設定例
                
○LooseモードのuRPFの設定
(ご注意)設定によってルータの負荷が上がるなどの影響がある場合があります。user@juniper# edit interface [edit interfaces] user@juniper# set <インタフェース名> unit <unit番号> family inet rpf-check mode loose 
Appendix III. DNSサーバの設定例
対策を行うDNSサーバがDNSの名前解決のために設置されたDNSキャッシュ サーバである場合には、Appendix Iの設定を行います。
- 
                BINDの設定例
                
○権威DNSサーバの場合 (named.conf):
options { fetch-glue no; // BIND8の場合に記述する recursion no; // 再帰問い合わせに応答しない。 };○DNSキャッシュサーバと権威DNSサーバが同一である場合 (named.conf):
○BIND9におけるDNS RRLの設定例 (named.conf):acl "trusted" { 192.168.0.0/16; // 問い合わせを許可するIPアドレスを指定する。 localhost; }; options { fetch-glue no; // BIND8の場合に記述する recursion yes; // 再帰問い合わせに応答する。 allow-query { any; }; allow-recursion { trusted; }; allow-query-cache { trusted; }; }; zone "foo.jp" { type master; file "db.foo"; };Response Rate Limiting in The Domain Name System (DNS RRL)にあるパッチの適用が必要です。
rate-limit { responses-per-second 5; window 5; }; - 
                  Unboundの設定例
                  
○アクセス制御の設定例(unbound.conf):
server: access-control: localhost allow access-control: 192.168.0.0/16 allow ## 問い合わせを許可するIPアドレスを指定する。 
参考資料
注意喚起ほか
- 日本国内のオープン・リゾルバを踏み台としたDDoS攻撃発生に起因すると考えられるパケットの増加について, 警察庁, 2014年7月23日 NEW
 - インターネット定点観測レポート(2014年 4~6月), JPCERT/CC, 2014年7月17日 NEW
 - オープンリゾルバ確認サイト公開のお知らせ, JPRS, 2013年10月31日
 - DNSサーバーの不適切な設定「オープンリゾルバー」について, 2013年4月18日
 - DNS キャッシュサーバの設定に注意, JPCERT/CC, 2013年3月27日
 - Alert (TA13-088A) DNS Amplification Attacks, US-CERT, 2013年3月29日
 - The curse of the Open Recursor, Tom Paseka, CloudFlare, APRICOT2013/APNIC35
 
発表資料や技術解説
- DNS amplification attacks, 松崎吉伸, JANOG18 Meeting
 - 技術解説:「DNS Reflector Attacks(DNSリフレクター攻撃)」について, 2013年4月18日, JPRS
 - JPRS トピックス&コラム DDoSにあなたのDNSが使われる - DNS Ampの脅威と対策 -, JPRS, 2008年7月
 - DNS の再帰的な問い合わせを使った DDoS 攻撃の対策について, JPRS, 2006年3月29日
 - DNSの再帰的な問い合わせを悪用したDDoS攻撃手法の検証について, 警察庁, 2006年7月11日
 
技術解説(英語)
Ingress Filteringについて(英語)
- Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing (RFC2827, BCP38), P. Ferguson, D. Senie, IETF, 2000年3月
 - Ingress Filtering for Multihomed Networks, F. Baker, P. Savola, IETF, 2004年3月
 
設定方法に関する参考資料
- 設定ガイド:オープンリゾルバー機能を停止するには【BIND編】, JPRS
 - The Million Plus Resolver Challenge - Introductions - Team Cymru, Team Cymru
 - Understanding Unicast Reverse Path Forwarding, Cisco Systems
 - Configuring Unicast RPF, Juniper
 - Verifying Unicast RPF Status
 - Response Rate Limiting in the Domain Name System (DNS RRL), Red Barn, 2012年6月10日
 - Running An Authoritative-Only BIND Nameserver, Duane Wessels, ISC, 2002年12月20日
 - Preventing Use of Recursive Nameservers in Reflector Attacks (RFC5358), J. Damas, F. Neves, 2008年10月
 
更新履歴
- 2013年4月18日 初版公開
 - 2013年4月22日 設定例を追加
 - 2013年4月23日 説明および設定例を更新
 - 2014年7月25日 参考資料に、警察庁のオープンリゾルバに関する注意喚起と、JPCERT/CCのインターネット定点観測レポートを追加
 

              
              
              