--- 1/draft-ietf-dnsop-reflectors-are-evil-01.txt 2006-09-19 22:12:05.000000000 +0200 +++ 2/draft-ietf-dnsop-reflectors-are-evil-02.txt 2006-09-19 22:12:05.000000000 +0200 @@ -1,19 +1,19 @@ Network Working Group J. Damas Internet-Draft ISC -Expires: December 27, 2006 F. Neves +Expires: March 19, 2007 F. Neves Registro.br - June 25, 2006 + September 15, 2006 - Preventing Use of Nameservers in Reflector Attacks - draft-ietf-dnsop-reflectors-are-evil-01.txt + Preventing Use of Recursive Nameservers in Reflector Attacks + draft-ietf-dnsop-reflectors-are-evil-02.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that @@ -24,55 +24,55 @@ and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. - This Internet-Draft will expire on December 27, 2006. + This Internet-Draft will expire on March 19, 2007. Copyright Notice Copyright (C) The Internet Society (2006). Abstract This document describes the use of default configured recursive nameservers as reflectors on DOS attacks. Recommended configuration as measures to mitigate the attack are given. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Problem Description . . . . . . . . . . . . . . . . . . . . . . 3 3. Recommended Configuration . . . . . . . . . . . . . . . . . . . 4 4. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 5 - 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 + 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.1. Normative References . . . . . . . . . . . . . . . . . . . 6 6.2. Informative References . . . . . . . . . . . . . . . . . . 6 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 7 Intellectual Property and Copyright Statements . . . . . . . . . . 8 1. Introduction Recently, DNS [RFC1034] has been named as a major factor in the generation of massive amounts of network traffic used in Denial of Service (DoS) attacks. These attacks, called reflector attacks, are not due to any particular flaw in the design of the DNS or its implementations, asides perhaps the fact that DNS relies heavily on UDP, the easy abuse of which is at the source of the problem. They have preferentially used DNS due to common default configurations - that allow for easy use of public recursive nameservers that make use + that allow for easy use of open recursive nameservers that make use of such a default configuration. In addition, due to the small query-large response potential of the DNS system it is easy to yield great amplification of the source traffic as reflected traffic towards the victims. DNS authority servers which do not provide recursion to clients can also be used as amplifiers; however, the amplification potential is greatly reduced when authority servers are used. It is also not practical to restrict access to authority servers to a subset of the @@ -90,42 +90,43 @@ 2. Problem Description Because most DNS traffic is stateless by design, an attacker could start a DoS attack in the following way: 1. The attacker starts by configuring a record (LRECORD) on any zone he has access to (AZONE), normally with large RDATA and TTL. 2. Taking advantage of clients (ZCLIENTS) on non-BCP38 networks, the attacker then crafts a query using the source address of their - target victim and sends it to a public recursive nameserver - (PRNS). - 3. Each PRNS proceeds with the resolution, caches the LRECORD and + target victim and sends it to a open recursive nameserver (ORNS). + 3. Each ORNS proceeds with the resolution, caches the LRECORD and finally sends it to the target. After this first lookup, access to the authoritative nameservers for AZONE is normally no longer necessary. The LRECORD will remain cached for the duration of - the TTL at the PRNS even if the AZONE is corrected. + the TTL at the ORNS even if the AZONE is corrected. + 4. Cleanup of the AZONE might, depending on the implementation used - in the PRNS, afford a way to clean the cached LRECORD from the - PRNS. This would possibly involve queries luring the PRNS to + in the ORNS, afford a way to clean the cached LRECORD from the + ORNS. This would possibly involve queries luring the ORNS to lookup information for the same name that is being used in the amplification. Because the characteristics of the attack normally involve a low volume of packets amongst all the kinds of actors besides the victim - (AZONE, ZCLIENTS, PRNS), it's unlikely any one of them would notice + (AZONE, ZCLIENTS, ORNS), it's unlikely any one of them would notice their involvement based on traffic pattern changes. - Taking advantage of PRNS that support EDNS0 [RFC2671], the - amplification factor (response size / query size) could be around 80. - With this amplification factor a relatively small army of ZCLIENTS - and PRNS could generate gigabits of traffic towards the victim. + Taking advantage of ORNS that support EDNS0 [RFC2671], the + amplification factor (response packet size / query packet size) could + be around 80. With this amplification factor a relatively small army + of ZCLIENTS and ORNS could generate gigabits of traffic towards the + victim. Even if this attach is only really possible due to non-deployment of BCP 38, this amplification attack is easier to leverage because for historical reasons, out of times when the Internet was a much closer- knit community, some nameserver implementations have been made available with default configurations that when used for recursive nameservers made the server accessible to all hosts on the Internet. For years this was a convenient and helpful configuration, enabling wider availability of services. As this document aims to make @@ -164,29 +165,36 @@ The generic recommendation to nameserver operators is to use the means provided by the implementation of choice to provide recursive name lookup service only to the intended clients. Client authentication can be usually done in several ways: o IP based authentication. Use the IP address of the sending host and filter them through and Access Control List (ACL) to service only the intended clients. - o Use TSIG [RFC2845] signed queries to authenticate the clients. - This is a less error prone method, which allows server operators - to provide service to clients who change IP address frequently - (e.g. roaming clients). The current drawback of this method is - that very few stub resolver implementations support TSIG signing - of outgoing queries. The effective use of this method implies in - most cases running a local instance of a caching nameserver or - forwarder that will be able to TSIG sign the queries and send them - on to the recursive nameserver of choice. + o Incoming Interface based selection. Use the incoming interface + for the query as a discriminator to select which clients are to be + served. This is of particular applicability for SOHO devices, + such as broadband routers that include embedded recursive name + servers. + + o Use TSIG [RFC2845] or SIG(0) [RFC2931] signed queries to + authenticate the clients. This is a less error prone method, + which allows server operators to provide service to clients who + change IP address frequently (e.g. roaming clients). The current + drawback of this method is that very few stub resolver + implementations support TSIG or SIG(0) signing of outgoing + queries. The effective use of this method implies in most cases + running a local instance of a caching nameserver or forwarder that + will be able to TSIG sign the queries and send them on to the + recursive nameserver of choice. In nameservers that do not need to be providing recursive service, for instance servers that are meant to be authoritative only, turn recursion off completely. In general, it is a good idea to keep recursive and authoritative services separate as much as practical. This, of course, depends on local circumstances. 4. Acknowledgments Joe Abley, Andrew Sullivan @@ -209,20 +217,23 @@ [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, November 1987. [RFC2671] Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC 2671, August 1999. [RFC2845] Vixie, P., Gudmundsson, O., Eastlake, D., and B. Wellington, "Secret Key Transaction Authentication for DNS (TSIG)", RFC 2845, May 2000. + [RFC2931] Eastlake, D., "DNS Request and Transaction Signatures ( + SIG(0)s)", RFC 2931, September 2000. + 6.2. Informative References [BCP38] Ferguson, P. and D. Senie, "Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing", BCP 38, RFC 2827, May 2000. Authors' Addresses Joao Damas Internet Systems Consortium, Inc.