diff options
Diffstat (limited to 'doc/rfc/rfc8811.txt')
-rw-r--r-- | doc/rfc/rfc8811.txt | 1606 |
1 files changed, 1606 insertions, 0 deletions
diff --git a/doc/rfc/rfc8811.txt b/doc/rfc/rfc8811.txt new file mode 100644 index 0000000..48daba5 --- /dev/null +++ b/doc/rfc/rfc8811.txt @@ -0,0 +1,1606 @@ + + + + +Internet Engineering Task Force (IETF) A. Mortensen, Ed. +Request for Comments: 8811 Forcepoint +Category: Informational T. Reddy.K, Ed. +ISSN: 2070-1721 McAfee, Inc. + F. Andreasen + Cisco + N. Teague + Iron Mountain + R. Compton + Charter + August 2020 + + + DDoS Open Threat Signaling (DOTS) Architecture + +Abstract + + This document describes an architecture for establishing and + maintaining Distributed Denial-of-Service (DDoS) Open Threat + Signaling (DOTS) within and between domains. The document does not + specify protocols or protocol extensions, instead focusing on + defining architectural relationships, components, and concepts used + in a DOTS deployment. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for informational purposes. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Not all documents + approved by the IESG are candidates for any level of Internet + Standard; see Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc8811. + +Copyright Notice + + Copyright (c) 2020 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (https://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + +Table of Contents + + 1. Context and Motivation + 1.1. Terminology + 1.1.1. Key Words + 1.1.2. Definition of Terms + 1.2. Scope + 1.3. Assumptions + 2. DOTS Architecture + 2.1. DOTS Operations + 2.2. Components + 2.2.1. DOTS Client + 2.2.2. DOTS Server + 2.2.3. DOTS Gateway + 2.3. DOTS Agent Relationships + 2.3.1. Gatewayed Signaling + 3. Concepts + 3.1. DOTS Sessions + 3.1.1. Preconditions + 3.1.2. Establishing the DOTS Session + 3.1.3. Maintaining the DOTS Session + 3.2. Modes of Signaling + 3.2.1. Direct Signaling + 3.2.2. Redirected Signaling + 3.2.3. Recursive Signaling + 3.2.4. Anycast Signaling + 3.2.5. Signaling Considerations for Network Address + Translation + 3.3. Triggering Requests for Mitigation + 3.3.1. Manual Mitigation Request + 3.3.2. Automated Conditional Mitigation Request + 3.3.3. Automated Mitigation on Loss of Signal + 4. IANA Considerations + 5. Security Considerations + 6. References + 6.1. Normative References + 6.2. Informative References + Acknowledgments + Contributors + Authors' Addresses + +1. Context and Motivation + + Signaling the need for help to defend against an active distributed + denial-of-service (DDoS) attack requires a common understanding of + mechanisms and roles among the parties coordinating a defensive + response. The signaling layer and supplementary messaging are the + focus of DDoS Open Threat Signaling (DOTS). DOTS defines a method of + coordinating defensive measures among willing peers to mitigate + attacks quickly and efficiently, enabling hybrid attack responses + coordinated locally at or near the target of an active attack, or + anywhere in path between attack sources and target. Sample DOTS use + cases are elaborated in [DOTS-USE-CASES]. + + This document describes an architecture used in establishing, + maintaining, or terminating a DOTS relationship within a domain or + between domains. + +1.1. Terminology + +1.1.1. Key Words + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described in + BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all + capitals, as shown here. + +1.1.2. Definition of Terms + + This document uses the terms defined in [RFC8612]. + +1.2. Scope + + In this architecture, DOTS clients and servers communicate using DOTS + signal channel [RFC8782] and data channel [RFC8783] protocols. + + The DOTS architecture presented here is applicable across network + administrative domains, for example, between an enterprise domain and + the domain of a third-party attack mitigation service, as well as to + a single administrative domain. DOTS is generally assumed to be most + effective when aiding coordination of attack response between two or + more participating networks, but single domain scenarios are valuable + in their own right, as when aggregating intra-domain DOTS client + signals for an inter-domain coordinated attack response. + + This document does not address any administrative or business + agreements that may be established between involved DOTS parties. + Those considerations are out of scope. Regardless, this document + assumes necessary authentication and authorization mechanisms are put + in place so that only authorized clients can invoke the DOTS service. + + A detailed set of DOTS requirements are discussed in [RFC8612], and + the DOTS architecture is designed to follow those requirements. Only + new behavioral requirements are described in this document. + +1.3. Assumptions + + This document makes the following assumptions: + + * All domains in which DOTS is deployed are assumed to offer the + required connectivity between DOTS agents and any intermediary + network elements, but the architecture imposes no additional + limitations on the form of connectivity. + + * Congestion and resource exhaustion are intended outcomes of a DDoS + attack [RFC4732]. Some operators may utilize non-impacted paths + or networks for DOTS. However, in general, conditions should be + assumed to be hostile, and DOTS must be able to function in all + circumstances, including when the signaling path is significantly + impaired. Congestion control requirements are discussed in + Section 3 of [RFC8612]. The DOTS signal channel defined in + [RFC8782] is designed to be extremely resilient under extremely + hostile network conditions, and it provides continued contact + between DOTS agents even as DDoS attack traffic saturates the + link. + + * There is no universal DDoS attack scale threshold triggering a + coordinated response across administrative domains. A network + domain administrator or service or application owner may + arbitrarily set attack scale threshold triggers, or manually send + requests for mitigation. + + * Mitigation requests may be sent to one or more upstream DOTS + servers based on criteria determined by DOTS client administrators + and the underlying network configuration. The number of DOTS + servers with which a given DOTS client has established + communications is determined by local policy and is deployment + specific. For example, a DOTS client of a multihomed network may + support built-in policies to establish DOTS relationships with + DOTS servers located upstream of each interconnection link. + + * The mitigation capacity and/or capability of domains receiving + requests for coordinated attack response is opaque to the domains + sending the request. The domain receiving the DOTS client signal + may or may not have sufficient capacity or capability to filter + any or all DDoS attack traffic directed at a target. In either + case, the upstream DOTS server may redirect a request to another + DOTS server. Redirection may be local to the redirecting DOTS + server's domain or may involve a third-party domain. + + * DOTS client and server signals, as well as messages sent through + the data channel, are sent across any transit networks with the + same probability of delivery as any other traffic between the DOTS + client domain and the DOTS server domain. Any encapsulation + required for successful delivery is left untouched by transit + network elements. DOTS servers and DOTS clients cannot assume any + preferential treatment of DOTS signals. Such preferential + treatment may be available in some deployments (e.g., intra-domain + scenarios), and the DOTS architecture does not preclude its use + when available. However, DOTS itself does not address how that + may be done. + + * The architecture allows for, but does not assume, the presence of + Quality-of-Service (QoS) policy agreements between DOTS-enabled + peer networks or local QoS prioritization aimed at ensuring + delivery of DOTS messages between DOTS agents. QoS is an + operational consideration only, not a functional part of the DOTS + architecture. + + * The signal and data channels are loosely coupled and might not + terminate on the same DOTS server. How the DOTS servers + synchronize the DOTS configuration is out of scope of this + specification. + +2. DOTS Architecture + + The basic high-level DOTS architecture is illustrated in Figure 1: + + +-----------+ +-------------+ + | Mitigator | ~~~~~~~~~~ | DOTS Server | + +-----------+ +-------------+ + | + | + | + +---------------+ +-------------+ + | Attack Target | ~~~~~~ | DOTS Client | + +---------------+ +-------------+ + + Figure 1: Basic DOTS Architecture + + A simple example instantiation of the DOTS architecture could be an + enterprise as the attack target for a volumetric DDoS attack and an + upstream DDoS mitigation service as the mitigator. The service + provided by the mitigator is called "DDoS mitigation service". The + enterprise (attack target) is connected to the Internet via a link + that is getting saturated, and the enterprise suspects it is under + DDoS attack. The enterprise has a DOTS client, which obtains + information about the DDoS attack and signals the DOTS server for + help in mitigating the attack. In turn, the DOTS server invokes one + or more mitigators, which are tasked with mitigating the actual DDoS + attack and, hence, aim to suppress the attack traffic while allowing + valid traffic to reach the attack target. + + The scope of the DOTS specifications is the interfaces between the + DOTS client and DOTS server. The interfaces to the attack target and + the mitigator are out of scope of DOTS. Similarly, the operation of + both the attack target and the mitigator is out of scope of DOTS. + Thus, DOTS specifies neither how an attack target decides it is under + DDoS attack nor does DOTS specify how a mitigator may actually + mitigate such an attack. A DOTS client's request for mitigation is + advisory in nature and might not lead to any mitigation at all, + depending on the DOTS server domain's capacity and willingness to + mitigate on behalf of the DOTS client domain. + + The DOTS client may be provided with a list of DOTS servers, each + associated with one or more IP addresses. These addresses may or may + not be of the same address family. The DOTS client establishes one + or more sessions by connecting to the provided DOTS server addresses. + + As illustrated in Figure 2, there are two interfaces between a DOTS + server and a DOTS client: a signal channel and (optionally) a data + channel. + + +---------------+ +---------------+ + | | <------- Signal Channel ------> | | + | DOTS Client | | DOTS Server | + | | <======= Data Channel ======> | | + +---------------+ +---------------+ + + Figure 2: DOTS Interfaces + + The primary purpose of the signal channel is for a DOTS client to ask + a DOTS server for help in mitigating an attack and for the DOTS + server to inform the DOTS client about the status of such mitigation. + The DOTS client does this by sending a client signal that contains + information about the attack target(s). The client signal may also + include telemetry information about the attack, if the DOTS client + has such information available. In turn, the DOTS server sends a + server signal to inform the DOTS client of whether it will honor the + mitigation request. Assuming it will, the DOTS server initiates + attack mitigation and periodically informs the DOTS client about the + status of the mitigation. Similarly, the DOTS client periodically + informs the DOTS server about the client's status, which, at a + minimum, provides client (attack target) health information; it + should also include efficacy information about the attack mitigation + as it is now seen by the client. At some point, the DOTS client may + decide to terminate the server-side attack mitigation, which it + indicates to the DOTS server over the signal channel. A mitigation + may also be terminated if a DOTS client-specified mitigation lifetime + is exceeded. Note that the signal channel may need to operate over a + link that is experiencing a DDoS attack and, hence, is subject to + severe packet loss and high latency. + + While DOTS is able to request mitigation with just the signal + channel, the addition of the DOTS data channel provides for + additional, more efficient capabilities. The primary purpose of the + data channel is to support DOTS-related configuration and policy + information exchange between the DOTS client and the DOTS server. + Examples of such information include, but are not limited to: + + * Creating identifiers, such as names or aliases, for resources for + which mitigation may be requested. Such identifiers may then be + used in subsequent signal channel exchanges to refer more + efficiently to the resources under attack. + + * Drop-list management, which enables a DOTS client to inform the + DOTS server about sources to suppress. + + * Accept-list management, which enables a DOTS client to inform the + DOTS server about sources from which traffic is always accepted. + + * Filter management, which enables a DOTS client to install or + remove traffic filters dropping or rate-limiting unwanted traffic. + + * DOTS client provisioning. + + Note that, while it is possible to exchange the above information + before, during, or after a DDoS attack, DOTS requires reliable + delivery of this information and does not provide any special means + for ensuring timely delivery of it during an attack. In practice, + this means that DOTS deployments should rely on such information + being exchanged only under normal traffic conditions. + +2.1. DOTS Operations + + DOTS does not prescribe any specific deployment models; however, DOTS + is designed with some specific requirements around the different DOTS + agents and their relationships. + + First of all, a DOTS agent belongs to a domain that has an identity + that can be authenticated and authorized. DOTS agents communicate + with each other over a mutually authenticated signal channel and + (optionally) data channel. However, before they can do so, a service + relationship needs to be established between them. The details and + means by which this is done is outside the scope of DOTS; however, an + example would be for an enterprise A (DOTS client) to sign up for + DDoS service from provider B (DOTS server). This would establish a + (service) relationship between the two that enables enterprise A's + DOTS client to establish a signal channel with provider B's DOTS + server. A and B will authenticate each other, and B can verify that + A is authorized for its service. + + From an operational and design point of view, DOTS assumes that the + above relationship is established prior to a request for DDoS attack + mitigation. In particular, it is assumed that bidirectional + communication is possible at this time between the DOTS client and + DOTS server. Furthermore, it is assumed that additional service + provisioning, configuration, and information exchange can be + performed by use of the data channel if operationally required. It + is not until this point that the mitigation service is available for + use. + + Once the mutually authenticated signal channel has been established, + it will remain active. This is done to increase the likelihood that + the DOTS client can signal the DOTS server for help when the attack + target is being flooded, and similarly raise the probability that + DOTS server signals reach the client regardless of inbound link + congestion. This does not necessarily imply that the attack target + and the DOTS client have to be co-located in the same administrative + domain, but it is expected to be a common scenario. + + DDoS mitigation with the help of an upstream mitigator may involve + some form of traffic redirection whereby traffic destined for the + attack target is steered towards the mitigator. Common mechanisms to + achieve this redirection depend on BGP [RFC4271] and DNS [RFC1035]. + In turn, the mitigator inspects and scrubs the traffic and forwards + the resulting (hopefully non-attack) traffic to the attack target. + Thus, when a DOTS server receives an attack mitigation request from a + DOTS client, it can be viewed as a way of causing traffic redirection + for the attack target indicated. + + DOTS relies on mutual authentication and the pre-established service + relationship between the DOTS client domain and the DOTS server + domain to provide authorization. The DOTS server should enforce + authorization mechanisms to restrict the mitigation scope a DOTS + client can request, but such authorization mechanisms are deployment + specific. + + Although co-location of DOTS server and mitigator within the same + domain is expected to be a common deployment model, it is assumed + that operators may require alternative models. Nothing in this + document precludes such alternatives. + +2.2. Components + +2.2.1. DOTS Client + + A DOTS client is a DOTS agent from which requests for help + coordinating an attack response originate. The requests may be in + response to an active, ongoing attack against a target in the DOTS + client domain, but no active attack is required for a DOTS client to + request help. Operators may wish to have upstream mitigators in the + network path for an indefinite period and are restricted only by + business relationships when it comes to duration and scope of + requested mitigation. + + The DOTS client requests attack response coordination from a DOTS + server over the signal channel, including in the request the DOTS + client's desired mitigation scoping, as described in [RFC8612] (SIG- + 008). The actual mitigation scope and countermeasures used in + response to the attack are up to the DOTS server and mitigator + operators, as the DOTS client may have a narrow perspective on the + ongoing attack. As such, the DOTS client's request for mitigation + should be considered advisory: guarantees of DOTS server availability + or mitigation capacity constitute Service Level Agreements (SLAs) and + are out of scope for this document. + + The DOTS client adjusts mitigation scope and provides available + mitigation feedback (e.g., mitigation efficacy) at the direction of + its local administrator. Such direction may involve manual or + automated adjustments in response to updates from the DOTS server. + + To provide a metric of signal health and distinguish an idle signal + channel from a disconnected or defunct session, the DOTS client sends + a heartbeat over the signal channel to maintain its half of the + channel. The DOTS client similarly expects a heartbeat from the DOTS + server and may consider a session terminated in the extended absence + of a DOTS server heartbeat. + +2.2.2. DOTS Server + + A DOTS server is a DOTS agent capable of receiving, processing, and + possibly acting on requests for help coordinating attack responses + from DOTS clients. The DOTS server authenticates and authorizes DOTS + clients as described in Section 3.1 and maintains session state, + tracks requests for mitigation, reports on the status of active + mitigations, and terminates sessions in the extended absence of a + client heartbeat or when a session times out. + + Assuming the preconditions discussed below exist, a DOTS client + maintaining an active session with a DOTS server may reasonably + expect some level of mitigation in response to a request for + coordinated attack response. + + For a given DOTS client (administrative) domain, the DOTS server + needs to be able to determine whether a given resource is in that + domain. For example, this could take the form of associating a set + of IP addresses and/or prefixes per DOTS client domain. The DOTS + server enforces authorization of signals for mitigation, filtering + rules, and aliases for resources from DOTS clients. The mechanism of + enforcement is not in scope for this document but is expected to + restrict mitigation requests, filtering rules, aliases for addresses + and prefixes, and/or services owned by the DOTS client domain, such + that a DOTS client from one domain is not able to influence the + network path to another domain. A DOTS server MUST reject mitigation + requests, filtering rules, and aliases for resources not owned by the + requesting DOTS client's administrative domain. The exact mechanism + for the DOTS servers to validate that the resources are within the + scope of the DOTS client domain is deployment specific. For example, + if the DOTS client domain uses Provider-Aggregatable prefixes for its + resources and leverages the DDoS mitigation service of the Internet + Transit Provider (ITP); the ITP knows the prefixes assigned to the + DOTS client domain because they are assigned by the ITP itself. + However, if the DDoS Mitigation is offered by a third-party DDoS + mitigation service provider; it does not know the resources owned by + the DOTS client domain. The DDoS mitigation service provider and the + DOTS client domain can opt to use the identifier validation + challenges discussed in [RFC8555] and [RFC8738] to identify whether + or not the DOTS client domain actually controls the resources. The + challenges for validating control of resources must be performed when + no attack traffic is present and works only for "dns" and "ip" + identifier types. Further, if the DOTS client lies about the + resources owned by the DOTS client domain, the DDoS mitigation + service provider can impose penalties for violating the SLA. A DOTS + server MAY also refuse a DOTS client's mitigation request for + arbitrary reasons, within any limits imposed by business or SLAs + between client and server domains. If a DOTS server refuses a DOTS + client's request for mitigation, the DOTS server MUST include the + refusal reason in the server signal sent to the client. + + A DOTS server is in regular contact with one or more mitigators. If + a DOTS server accepts a DOTS client's request for help, the DOTS + server forwards a translated form of that request to the mitigator(s) + responsible for scrubbing attack traffic. Note that the form of the + translated request passed from the DOTS server to the mitigator is + not in scope; it may be as simple as an alert to mitigator operators, + or highly automated using vendor or open application programming + interfaces supported by the mitigator. The DOTS server MUST report + the actual scope of any mitigation enabled on behalf of a client. + + The DOTS server SHOULD retrieve available metrics for any mitigations + activated on behalf of a DOTS client and SHOULD include them in + server signals sent to the DOTS client originating the request for + mitigation. + + To provide a metric of signal health and distinguish an idle signal + channel from a disconnected or defunct channel, the DOTS server MUST + send a heartbeat over the signal channel to maintain its half of the + channel. The DOTS server similarly expects a heartbeat from the DOTS + client and MAY consider a session terminated in the extended absence + of a DOTS client heartbeat. + +2.2.3. DOTS Gateway + + Traditional client/server relationships may be expanded by chaining + DOTS sessions. This chaining is enabled through "logical + concatenation" of a DOTS server and a DOTS client, resulting in an + application analogous to the Session Initiation Protocol (SIP) + [RFC3261] logical entity of a Back-to-Back User Agent (B2BUA) + [RFC7092]. The term "DOTS gateway" is used here in the descriptions + of selected scenarios involving this application. + + A DOTS gateway may be deployed client side, server side, or both. + The gateway may terminate multiple discrete client connections and + may aggregate these into a single or multiple DOTS session(s). + + The DOTS gateway will appear as a server to its downstream agents and + as a client to its upstream agents, a functional concatenation of the + DOTS client and server roles, as depicted in Figure 3: + + +-------------+ + | | D | | + +----+ | | O | | +----+ + | c1 |----------| s1 | T | c2 |---------| s2 | + +----+ | | S | | +----+ + | | G | | + +-------------+ + + Figure 3: DOTS Gateway + + The DOTS gateway MUST perform full stack DOTS session termination and + reorigination between its client and server side. The details of how + this is achieved are implementation specific. + +2.3. DOTS Agent Relationships + + So far, we have only considered a relatively simple scenario of a + single DOTS client associated with a single DOTS server; however, + DOTS supports more advanced relationships. + + A DOTS server may be associated with one or more DOTS clients, and + those DOTS clients may belong to different domains. An example + scenario is a mitigation provider serving multiple attack targets + (Figure 4). + + DOTS clients DOTS server + +---+ + | c |----------- + +---+ \ + c1.example.org \ + \ + +---+ \ +---+ + | c |----------------| S | + +---+ / +---+ + c1.example.com / dots1.example.net + / + +---+ / + | c |----------- + +---+ + c2.example.com + + Figure 4: DOTS Server with Multiple Clients + + A DOTS client may be associated with one or more DOTS servers, and + those DOTS servers may belong to different domains. This may be to + ensure high availability or coordinate mitigation with more than one + directly connected ISP. An example scenario is for an enterprise to + have DDoS mitigation service from multiple providers, as shown in + Figure 5. + + DOTS client DOTS servers + +---+ + -----------| S | + / +---+ + / dots1.example.net + / + +---+/ +---+ + | c |---------------| S | + +---+\ +---+ + \ dots.example.org + \ + \ +---+ + -----------| S | + +---+ + c.example.com dots2.example.net + + Figure 5: Multihomed DOTS Client + + Deploying a multihomed client requires extra care and planning, as + the DOTS servers with which the multihomed client communicates might + not be affiliated. Should the multihomed client simultaneously + request for mitigation from all servers with which it has established + signal channels, the client may unintentionally inflict additional + network disruption on the resources it intends to protect. In one of + the worst cases, a multihomed DOTS client could cause a permanent + routing loop of traffic destined for the client's protected services, + as the uncoordinated DOTS servers' mitigators all try to divert that + traffic to their own scrubbing centers. + + The DOTS protocol itself provides no fool-proof method to prevent + such self-inflicted harms as a result of deploying multihomed DOTS + clients. If DOTS client implementations nevertheless include support + for multihoming, they are expected to be aware of the risks, and + consequently to include measures aimed at reducing the likelihood of + negative outcomes. Simple measures might include: + + * Requesting mitigation serially, ensuring only one mitigation + request for a given address space is active at any given time; + + * Dividing the protected resources among the DOTS servers, such that + no two mitigators will be attempting to divert and scrub the same + traffic; + + * Restricting multihoming to deployments in which all DOTS servers + are coordinating management of a shared pool of mitigation + resources. + +2.3.1. Gatewayed Signaling + + As discussed in Section 2.2.3, a DOTS gateway is a logical function + chaining DOTS sessions through concatenation of a DOTS server and + DOTS client. + + An example scenario, as shown in Figure 6 and Figure 7, is for an + enterprise to have deployed multiple DOTS-capable devices that are + able to signal intra-domain using TCP [RFC0793] on uncongested links + to a DOTS gateway that may then transform these to a UDP [RFC0768] + transport inter-domain where connection-oriented transports may + degrade; this applies to the signal channel only, as the data channel + requires a connection-oriented transport. The relationship between + the gateway and its upstream agents is opaque to the initial clients. + + +---+ + | c |\ + +---+ \ +---+ + \-----TCP-----| D | +---+ + +---+ | O | | | + | c |--------TCP-----| T |------UDP------| S | + +---+ | S | | | + /-----TCP-----| G | +---+ + +---+ / +---+ + | c |/ + +---+ + example.com example.com example.net + DOTS clients DOTS gateway (DOTSG) DOTS server + + Figure 6: Client-Side Gateway with Aggregation + + +---+ + | c |\ + +---+ \ +---+ + \-----TCP-----| D |------UDP------+---+ + +---+ | O | | | + | c |--------TCP-----| T |------UDP------| S | + +---+ | S | | | + /-----TCP-----| G |------UDP------+---+ + +---+ / +---+ + | c |/ + +---+ + example.com example.com example.net + DOTS clients DOTS gateway (DOTSG) DOTS server + + Figure 7: Client-Side Gateway without Aggregation + + This may similarly be deployed in the inverse scenario where the + gateway resides in the server-side domain and may be used to + terminate and/or aggregate multiple clients to a single transport as + shown in Figure 8 and Figure 9. + + +---+ + | c |\ + +---+ \ +---+ + \-----UDP-----| D | +---+ + +---+ | O | | | + | c |--------TCP-----| T |------TCP------| S | + +---+ | S | | | + /-----TCP-----| G | +---+ + +---+ / +---+ + | c |/ + +---+ + example.com example.net example.net + DOTS clients DOTS gateway (DOTSG) DOTS server + + Figure 8: Server-Side Gateway with Aggregation + + +---+ + | c |\ + +---+ \ +---+ + \-----UDP-----| D |------TCP------+---+ + +---+ | O | | | + | c |--------TCP-----| T |------TCP------| S | + +---+ | S | | | + /-----UDP-----| G |------TCP------+---+ + +---+ / +---+ + | c |/ + +---+ + example.com example.net example.net + DOTS clients DOTS gateway (DOTSG) DOTS server + + Figure 9: Server-Side Gateway without Aggregation + + This document anticipates scenarios involving multiple DOTS gateways. + An example is a DOTS gateway at the network client's side and another + one at the server side. The first gateway can be located at Customer + Premises Equipment (CPE) to aggregate requests from multiple DOTS + clients enabled in an enterprise network. The second DOTS gateway is + deployed on the provider side. This scenario can be seen as a + combination of the client-side and server-side scenarios. + +3. Concepts + +3.1. DOTS Sessions + + In order for DOTS to be effective as a vehicle for DDoS mitigation + requests, one or more DOTS clients must establish ongoing + communication with one or more DOTS servers. While the preconditions + for enabling DOTS in or among network domains may also involve + business relationships, SLAs, or other formal or informal + understandings between network operators, such considerations are out + of scope for this document. + + A DOTS session is established to support bilateral exchange of data + between an associated DOTS client and a DOTS server. In the DOTS + architecture, data is exchanged between DOTS agents over signal and + data channels. As such, a DOTS session can be a DOTS signal channel + session, a DOTS data channel session, or both. The DOTS server + couples the DOTS signal and data channel sessions using the DOTS + client identity. The DOTS session is further elaborated in the DOTS + signal channel protocol defined in [RFC8782] and the DOTS data + channel protocol defined in [RFC8783]. + + A DOTS agent can maintain one or more DOTS sessions. + + A DOTS signal channel session is associated with a single transport + connection (TCP or UDP session) and a security association (a TLS or + DTLS session). Similarly, a DOTS data channel session is associated + with a single TCP connection and a TLS security association. + + Mitigation requests created using the DOTS signal channel are not + bound to the DOTS signal channel session. Instead, mitigation + requests are associated with a DOTS client and can be managed using + different DOTS signal channel sessions. + +3.1.1. Preconditions + + Prior to establishing a DOTS session between agents, the owners of + the networks, domains, services or applications involved are assumed + to have agreed upon the terms of the relationship involved. Such + agreements are out of scope for this document but must be in place + for a functional DOTS architecture. + + It is assumed that, as part of any DOTS service agreement, the DOTS + client is provided with all data and metadata required to establish + communication with the DOTS server. Such data and metadata would + include any cryptographic information necessary to meet the message + confidentiality, integrity, and authenticity requirement (SEC-002) in + [RFC8612] and might also include the pool of DOTS server addresses + and ports the DOTS client should use for signal and data channel + messaging. + +3.1.2. Establishing the DOTS Session + + With the required business agreements in place, the DOTS client + initiates a DOTS session by contacting its DOTS server(s) over the + signal channel and (possibly) the data channel. To allow for DOTS + service flexibility, neither the order of contact nor the time + interval between channel creations is specified. A DOTS client MAY + establish the signal channel first, and then the data channel, or + vice versa. + + The methods by which a DOTS client receives the address and + associated service details of the DOTS server are not prescribed by + this document. For example, a DOTS client may be directly configured + to use a specific DOTS server IP address and port, and be directly + provided with any data necessary to satisfy the Peer Mutual + Authentication requirement (SEC-001) in [RFC8612], such as symmetric + or asymmetric keys, usernames, passwords, etc. All configuration and + authentication information in this scenario is provided out of band + by the domain operating the DOTS server. + + At the other extreme, the architecture in this document allows for a + form of DOTS client auto-provisioning. For example, the domain + operating the DOTS server or servers might provide the client domain + only with symmetric or asymmetric keys to authenticate the + provisioned DOTS clients. Only the keys would then be directly + configured on DOTS clients, but the remaining configuration required + to provision the DOTS clients could be learned through mechanisms + similar to DNS SRV [RFC2782] or DNS Service Discovery [RFC6763]. + + The DOTS client SHOULD successfully authenticate and exchange + messages with the DOTS server over both the signal and (if used) data + channel as soon as possible to confirm that both channels are + operational. + + As described in [RFC8612] (DM-008), the DOTS client can configure + preferred values for acceptable signal loss, mitigation lifetime, and + heartbeat intervals when establishing the DOTS signal channel + session. A DOTS signal channel session is not active until DOTS + agents have agreed on the values for these DOTS session parameters, a + process defined by the protocol. + + Once the DOTS client begins receiving DOTS server signals, the DOTS + session is active. At any time during the DOTS session, the DOTS + client may use the data channel to manage aliases, manage drop- and + accept-listed prefixes or addresses, leverage vendor-specific + extensions, and so on. Note that unlike the signal channel, there is + no requirement that the data channel remains operational in attack + conditions. (See "Data Channel Requirements" Section 2.3 of + [RFC8612]). + +3.1.3. Maintaining the DOTS Session + + DOTS clients and servers periodically send heartbeats to each other + over the signal channel, discussed in [RFC8612] (SIG-004). DOTS + agent operators SHOULD configure the heartbeat interval such that the + frequency does not lead to accidental denials of service due to the + overwhelming number of heartbeats a DOTS agent must field. + + Either DOTS agent may consider a DOTS signal channel session + terminated in the extended absence of a heartbeat from its peer + agent. The period of that absence will be established in the + protocol definition. + +3.2. Modes of Signaling + + This section examines the modes of signaling between agents in a DOTS + architecture. + +3.2.1. Direct Signaling + + A DOTS session may take the form of direct signaling between the DOTS + clients and servers, as shown in Figure 10. + + +-------------+ +-------------+ + | DOTS client |<------signal session------>| DOTS server | + +-------------+ +-------------+ + + Figure 10: Direct Signaling + + In a direct DOTS session, the DOTS client and server are + communicating directly. Direct signaling may exist inter- or intra- + domain. The DOTS session is abstracted from the underlying networks + or network elements the signals traverse; in direct signaling, the + DOTS client and server are logically adjacent. + +3.2.2. Redirected Signaling + + In certain circumstances, a DOTS server may want to redirect a DOTS + client to an alternative DOTS server for a DOTS signal channel + session. Such circumstances include but are not limited to: + + * Maximum number of DOTS signal channel sessions with clients has + been reached; + + * Mitigation capacity exhaustion in the mitigator with which the + specific DOTS server is communicating; + + * Mitigator outage or other downtime such as scheduled maintenance; + + * Scheduled DOTS server maintenance; + + * Scheduled modifications to the network path between DOTS server + and DOTS client. + + A basic redirected DOTS signal channel session resembles the + following, as shown in Figure 11. + + +-------------+ +---------------+ + | |<-(1)--- DOTS signal ------>| | + | | channel session 1 | | + | |<=(2)== redirect to B ======| | + | DOTS client | | DOTS server A | + | |X-(4)--- DOTS signal ------X| | + | | channel session 1 | | + | | | | + +-------------+ +---------------+ + ^ + | + (3) DOTS signal channel + | session 2 + v + +---------------+ + | DOTS server B | + +---------------+ + + Figure 11: Redirected Signaling + + 1. Previously established DOTS signal channel session 1 exists + between a DOTS client and DOTS server A. + + 2. DOTS server A sends a server signal redirecting the client to + DOTS server B. + + 3. If the DOTS client does not already have a separate DOTS signal + channel session with the redirection target, the DOTS client + initiates and establishes DOTS signal channel session 2 with DOTS + server B. + + 4. Having redirected the DOTS client, DOTS server A ceases sending + server signals. The DOTS client likewise stops sending client + signals to DOTS server A. DOTS signal channel session 1 is + terminated. + +3.2.3. Recursive Signaling + + DOTS is centered around improving the speed and efficiency of a + coordinated response to DDoS attacks. One scenario not yet discussed + involves coordination among federated domains operating DOTS servers + and mitigators. + + In the course of normal DOTS operations, a DOTS client communicates + the need for mitigation to a DOTS server, and that server initiates + mitigation on a mitigator with which the server has an established + service relationship. The operator of the mitigator may in turn + monitor mitigation performance and capacity, as the attack being + mitigated may grow in severity beyond the mitigating domain's + capabilities. + + The operator of the mitigator has limited options in the event a DOTS + client-requested mitigation is being overwhelmed by the severity of + the attack. Out-of-scope business or SLAs may permit the mitigating + domain to drop the mitigation and let attack traffic flow unchecked + to the target, but this only encourages attack escalation. In the + case where the mitigating domain is the upstream service provider for + the attack target, this may mean the mitigating domain and its other + services and users continue to suffer the incidental effects of the + attack. + + A recursive signaling model as shown in Figure 12 offers an + alternative. In a variation of the use case "Upstream DDoS + Mitigation by an Upstream Internet Transit Provider" described in + [DOTS-USE-CASES], a domain operating a DOTS server and mitigator also + operates a DOTS client. This DOTS client has an established DOTS + session with a DOTS server belonging to a separate administrative + domain. + + With these preconditions in place, the operator of the mitigator + being overwhelmed or otherwise performing inadequately may request + mitigation for the attack target from this separate DOTS-aware + domain. Such a request recurses the originating mitigation request + to the secondary DOTS server in the hope of building a cumulative + mitigation against the attack. + + example.net domain + . . . . . . . . . . . . . . . . . + . Gn . + +----+ 1 . +----+ +-----------+ . + | Cc |<--------->| Sn |~~~~~~~| Mitigator | . + +----+ . +====+ | Mn | . + . | Cn | +-----------+ . + example.com . +----+ . + client . ^ . + . . .|. . . . . . . . . . . . . . + | + 2 | + | + . . .|. . . . . . . . . . . . . . + . v . + . +----+ +-----------+ . + . | So |~~~~~~~| Mitigator | . + . +----+ | Mo | . + . +-----------+ . + . . + . . . . . . . . . . . . . . . . . + example.org domain + + Figure 12: Recursive Signaling + + In Figure 12, client Cc signals a request for mitigation across + inter-domain DOTS session 1 to the DOTS server Sn belonging to the + example.net domain. DOTS server Sn enables mitigation on mitigator + Mn. DOTS server Sn is half of DOTS gateway Gn, being deployed + logically back to back with DOTS client Cn, which has preexisting + inter-domain DOTS session 2 with the DOTS server So belonging to the + example.org domain. At any point, DOTS server Sn MAY recurse an + ongoing mitigation request through DOTS client Cn to DOTS server So, + in the expectation that mitigator Mo will be activated to aid in the + defense of the attack target. + + Recursive signaling is opaque to the DOTS client. To maximize + mitigation visibility to the DOTS client, however, the recursing + domain SHOULD provide recursed mitigation feedback in signals + reporting on mitigation status to the DOTS client. For example, the + recursing domain's DOTS server should incorporate available metrics + such as dropped packet or byte counts from the recursed domain's DOTS + server into mitigation status messages. + + DOTS clients involved in recursive signaling must be able to withdraw + requests for mitigation without warning or justification per SIG-006 + in [RFC8612]. + + Operators recursing mitigation requests MAY maintain the recursed + mitigation for a brief protocol-defined period in the event the DOTS + client originating the mitigation withdraws its request for help, as + per the discussion of managing mitigation toggling in SIG-006 of + [RFC8612]. + + Deployment of recursive signaling may result in traffic redirection, + examination, and mitigation extending beyond the initial bilateral + relationship between DOTS client and DOTS server. As such, client + control over the network path of mitigated traffic may be reduced. + DOTS client operators should be aware of any privacy concerns and + work with DOTS server operators employing recursive signaling to + ensure shared sensitive material is suitably protected. Typically, + there is a contractual SLA negotiated among the DOTS client domain, + the recursed domain, and the recursing domain to meet the privacy + requirements of the DOTS client domain and authorization for the + recursing domain to request mitigation for the resources controlled + by the DOTS client domain. + +3.2.4. Anycast Signaling + + The DOTS architecture does not assume the availability of anycast + within a DOTS deployment, but neither does the architecture exclude + it. Domains operating DOTS servers MAY deploy DOTS servers with an + anycast Service Address as described in BCP 126 [RFC4786]. In such a + deployment, DOTS clients connecting to the DOTS Service Address may + be communicating with distinct DOTS servers, depending on the network + configuration at the time the DOTS clients connect. Among other + benefits, anycast signaling potentially offers the following: + + * Simplified DOTS client configuration, including service discovery + through the methods described in [RFC7094]. In this scenario, the + "instance discovery" message would be a DOTS client initiating a + DOTS session to the DOTS server anycast Service Address, to which + the DOTS server would reply with a redirection to the DOTS server + unicast address the client should use for DOTS. + + * Region- or customer-specific deployments, in which the DOTS + Service Addresses route to distinct DOTS servers depending on the + client region or the customer network in which a DOTS client + resides. + + * Operational resiliency, spreading DOTS signaling traffic across + the DOTS server domain's networks, and thereby also reducing the + potential attack surface, as described in BCP 126 [RFC4786]. + +3.2.4.1. Anycast Signaling Considerations + + As long as network configuration remains stable, anycast DOTS + signaling is to the individual DOTS client indistinct from direct + signaling. However, the operational challenges inherent in anycast + signaling are anything but negligible, and DOTS server operators must + carefully weigh the risks against the benefits before deploying. + + While the DOTS signal channel primarily operates over UDP per SIG-001 + in [RFC8612], the signal channel also requires mutual authentication + between DOTS agents, with associated security state on both ends. + + Network instability is of particular concern with anycast signaling, + as DOTS signal channels are expected to be long lived and potentially + operating under congested network conditions caused by a volumetric + DDoS attack. + + For example, a network configuration altering the route to the DOTS + server during active anycast signaling may cause the DOTS client to + send messages to a DOTS server other than the one with which it + initially established a signaling session. That second DOTS server + might not have the security state of the existing session, forcing + the DOTS client to initialize a new DOTS session. This challenge + might in part be mitigated by use of resumption via a pre-shared key + (PSK) in TLS 1.3 [RFC8446] and DTLS 1.3 [DTLS-PROTOCOL] (session + resumption in TLS 1.2 [RFC5246] and DTLS 1.2 [RFC6347]), but keying + material must then be available to all DOTS servers sharing the + anycast Service Address, which has operational challenges of its own. + + While the DOTS client will try to establish a new DOTS session with + the DOTS server now acting as the anycast DOTS Service Address, the + link between DOTS client and server may be congested with attack + traffic, making signal session establishment difficult. In such a + scenario, anycast Service Address instability becomes a sort of + signal session flapping, with obvious negative consequences for the + DOTS deployment. + + Anycast signaling deployments similarly must also take into account + active mitigations. Active mitigations initiated through a DOTS + session may involve diverting traffic to a scrubbing center. If the + DOTS session flaps due to anycast changes as described above, + mitigation may also flap as the DOTS servers sharing the anycast DOTS + service address toggles mitigation on detecting DOTS session loss, + depending on whether or not the client has configured mitigation on + loss of signal (Section 3.3.3). + +3.2.5. Signaling Considerations for Network Address Translation + + Network address translators (NATs) are expected to be a common + feature of DOTS deployments. The middlebox traversal guidelines in + [RFC8085] include general NAT considerations that are applicable to + DOTS deployments when the signal channel is established over UDP. + + Additional DOTS-specific considerations arise when NATs are part of + the DOTS architecture. For example, DDoS attack detection behind a + NAT will detect attacks against internal addresses. A DOTS client + subsequently asked to request mitigation for the attacked scope of + addresses cannot reasonably perform the task, due to the lack of + externally routable addresses in the mitigation scope. + + The following considerations do not cover all possible scenarios but + are meant rather to highlight anticipated common issues when + signaling through NATs. + +3.2.5.1. Direct Provisioning of Internal-to-External Address Mappings + + Operators may circumvent the problem of translating internal + addresses or prefixes to externally routable mitigation scopes by + directly provisioning the mappings of external addresses to internal + protected resources on the DOTS client. When the operator requests + mitigation scoped for internal addresses, directly or through + automated means, the DOTS client looks up the matching external + addresses or prefixes and issues a mitigation request scoped to that + externally routable information. + + When directly provisioning the address mappings, operators must + ensure the mappings remain up to date or they risk losing the ability + to request accurate mitigation scopes. To that aim, the DOTS client + can rely on mechanisms such as [RFC8512] or [RFC7658] to retrieve + static explicit mappings. This document does not prescribe the + method by which mappings are maintained once they are provisioned on + the DOTS client. + +3.2.5.2. Resolving Public Mitigation Scope with Port Control Protocol + (PCP) + + Port Control Protocol (PCP) [RFC6887] may be used to retrieve the + external addresses/prefixes and/or port numbers if the NAT function + embeds a PCP server. + + A DOTS client can use the information retrieved by means of PCP to + feed the DOTS protocol(s) messages that will be sent to a DOTS + server. These messages will convey the external addresses/prefixes + as set by the NAT. + + PCP also enables discovery and configuration of the lifetime of port + mappings instantiated in intermediate NAT devices. Discovery of port + mapping lifetimes can reduce the dependency on heartbeat messages to + maintain mappings and, therefore, reduce the load on DOTS servers and + the network. + +3.2.5.3. Resolving Public Mitigation Scope with Session Traversal + Utilities (STUN) + + An internal resource, e.g., a web server, can discover its reflexive + transport address through a STUN Binding request/response + transaction, as described in [RFC8489]. After learning its reflexive + transport address from the STUN server, the internal resource can + export its reflexive transport address and internal transport address + to the DOTS client, thereby enabling the DOTS client to request + mitigation with the correct external scope, as depicted in Figure 13. + The mechanism for providing the DOTS client with the reflexive + transport address and internal transport address is unspecified in + this document. + + In order to prevent an attacker from modifying the STUN messages in + transit, the STUN client and server must use the message-integrity + mechanism discussed in Section 9 of [RFC8489] or use STUN over DTLS + [RFC7350] or STUN over TLS. If the STUN client is behind a NAT that + performs Endpoint-Dependent Mapping [RFC5128], the internal service + cannot provide the DOTS client with the reflexive transport address + discovered using STUN. The behavior of a NAT between the STUN client + and the STUN server could be discovered using the experimental + techniques discussed in [RFC5780], but note that there is currently + no standardized way for a STUN client to reliably determine if it is + behind a NAT that performs Endpoint-Dependent Mapping. + + Binding Binding + +--------+ request +---+ request +--------+ + | STUN |<----------| N |<----------| STUN | + | server | | A | | client | + | |---------->| T |---------->| | + +--------+ Binding +---+ Binding +--------+ + response response | + | reflexive transport address + | & internal transport address + v + +--------+ + | DOTS | + | client | + +--------+ + + Figure 13: Resolving Mitigation Scope with STUN + +3.2.5.4. Resolving Requested Mitigation Scope with DNS + + DOTS supports mitigation scoped to DNS names. As discussed in + [RFC3235], using DNS names instead of IP addresses potentially avoids + the address translation problem, as long as the same domain name is + internally and externally resolvable. For example, a detected + attack's internal target address can be mapped to a DNS name through + a reverse lookup. The DNS name returned by the reverse lookup can + then be provided to the DOTS client as the external scope for + mitigation. For the reverse DNS lookup, DNS Security Extensions + (DNSSEC) [RFC4033] must be used where the authenticity of response is + critical. + +3.3. Triggering Requests for Mitigation + + [RFC8612] places no limitation on the circumstances in which a DOTS + client operator may request mitigation, nor does it demand + justification for any mitigation request, thereby reserving + operational control over DDoS defense for the domain requesting + mitigation. This architecture likewise does not prescribe the + network conditions and mechanisms triggering a mitigation request + from a DOTS client. + + However, considering selected possible mitigation triggers from an + architectural perspective offers a model for alternative or + unanticipated triggers for DOTS deployments. In all cases, what + network conditions merit a mitigation request are at the discretion + of the DOTS client operator. + + The mitigation request itself is defined by DOTS; however, the + interfaces required to trigger the mitigation request in the + following scenarios are implementation specific. + +3.3.1. Manual Mitigation Request + + A DOTS client operator may manually prepare a request for mitigation, + including scope and duration, and manually instruct the DOTS client + to send the mitigation request to the DOTS server. In context, a + manual request is a request directly issued by the operator without + automated decision making performed by a device interacting with the + DOTS client. Modes of manual mitigation requests include an operator + entering a command into a text interface, or directly interacting + with a graphical interface to send the request. + + An operator might do this, for example, in response to notice of an + attack delivered by attack detection equipment or software, and the + alerting detector lacks interfaces or is not configured to use + available interfaces to translate the alert to a mitigation request + automatically. + + In a variation of the above scenario, the operator may have + preconfigured on the DOTS client mitigation requests for various + resources in the operator's domain. When notified of an attack, the + DOTS client operator manually instructs the DOTS client to send the + relevant preconfigured mitigation request for the resources under + attack. + + A further variant involves recursive signaling, as described in + Section 3.2.3. The DOTS client in this case is the second half of a + DOTS gateway (back-to-back DOTS server and client). As in the + previous scenario, the scope and duration of the mitigation request + are preexisting but, in this case, are derived from the mitigation + request received from a downstream DOTS client by the DOTS server. + Assuming the preconditions required by Section 3.2.3 are in place, + the DOTS gateway operator may at any time manually request mitigation + from an upstream DOTS server, sending a mitigation request derived + from the downstream DOTS client's request. + + The motivations for a DOTS client operator to request mitigation + manually are not prescribed by this architecture but are expected to + include some of the following: + + * Notice of an attack delivered via email or alternative messaging + + * Notice of an attack delivered via phone call + + * Notice of an attack delivered through the interface(s) of + networking monitoring software deployed in the operator's domain + + * Manual monitoring of network behavior through network monitoring + software + +3.3.2. Automated Conditional Mitigation Request + + Unlike manual mitigation requests, which depend entirely on the DOTS + client operator's capacity to react with speed and accuracy to every + detected or detectable attack, mitigation requests triggered by + detected attack conditions reduce the operational burden on the DOTS + client operator and minimize the latency between attack detection and + the start of mitigation. + + Mitigation requests are triggered in this scenario by operator- + specified network conditions. Attack detection is deployment + specific and not constrained by this architecture. Similarly, the + specifics of a condition are left to the discretion of the operator, + though common conditions meriting mitigation include the following: + + * Detected attack exceeding a rate in packets per second (pps). + + * Detected attack exceeding a rate in bytes per second (bps). + + * Detected resource exhaustion in an attack target. + + * Detected resource exhaustion in the local domain's mitigator. + + * Number of open connections to an attack target. + + * Number of attack sources in a given attack. + + * Number of active attacks against targets in the operator's domain. + + * Conditional detection developed through arbitrary statistical + analysis or deep learning techniques. + + * Any combination of the above. + + When automated conditional mitigation requests are enabled, + violations of any of the above conditions, or any additional + operator-defined conditions, will trigger a mitigation request from + the DOTS client to the DOTS server. The interfaces between the + application detecting the condition violation and the DOTS client are + implementation specific. + +3.3.3. Automated Mitigation on Loss of Signal + + To maintain a DOTS signal channel session, the DOTS client and the + DOTS server exchange regular but infrequent messages across the + signal channel. In the absence of an attack, the probability of + message loss in the signaling channel should be extremely low. Under + attack conditions, however, some signal loss may be anticipated as + attack traffic congests the link, depending on the attack type. + + While [RFC8612] specifies the DOTS protocol be robust when signaling + under attack conditions, there are nevertheless scenarios in which + the DOTS signal is lost in spite of protocol best efforts. To handle + such scenarios, a DOTS operator may request one or more mitigations, + which are triggered only when the DOTS server ceases receiving DOTS + client heartbeats beyond the miss count or interval permitted by the + protocol. + + The impact of mitigating due to loss of signal in either direction + must be considered carefully before enabling it. Attack traffic + congesting links is not the only reason why signal could be lost, and + as such, mitigation requests triggered by signal channel degradation + in either direction may incur unnecessary costs due to scrubbing + traffic, adversely impact network performance and operational expense + alike. + +4. IANA Considerations + + This document has no IANA actions. + +5. Security Considerations + + This section describes identified security considerations for the + DOTS architecture. + + Security considerations and security requirements discussed in + [RFC8612] need to be taken into account. + + DOTS is at risk from three primary attack vectors: agent + impersonation, traffic injection, and signal blocking. These vectors + may be exploited individually or in concert by an attacker to + confuse, disable, take information from, or otherwise inhibit DOTS + agents. + + Any attacker with the ability to impersonate a legitimate DOTS client + or server or, indeed, inject false messages into the stream may + potentially trigger/withdraw traffic redirection, trigger/cancel + mitigation activities or subvert drop-/accept-lists. From an + architectural standpoint, operators MUST ensure conformance to the + security requirements defined in Section 2.4 of [RFC8612] to secure + data in transit. Similarly, as the received data may contain network + topology, telemetry, and threat and mitigation information that could + be considered sensitive in certain environments, it SHOULD be + protected at rest per required local policy. + + DOTS agents MUST perform mutual authentication to ensure authenticity + of each other, and DOTS servers MUST verify that the requesting DOTS + client is authorized to request mitigation for specific target + resources (see Section 2.2.2). + + A man-in-the-middle (MITM) attacker can intercept and drop packets, + preventing the DOTS peers from receiving some or all of the DOTS + messages; automated mitigation on loss of signal can be used as a + countermeasure but with risks discussed in Section 3.3.3. + + An attacker with control of a DOTS client may negatively influence + network traffic by requesting and withdrawing requests for mitigation + for particular prefixes, leading to route or DNS flapping. DOTS + operators should carefully monitor and audit DOTS clients to detect + misbehavior and deter misuse. + + Any attack targeting the availability of DOTS servers may disrupt the + ability of the system to receive and process DOTS signals resulting + in failure to fulfill a mitigation request. DOTS servers MUST be + given adequate protections in accordance with best current practices + for network and host security. + +6. References + +6.1. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + <https://www.rfc-editor.org/info/rfc2119>. + + [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. + Rose, "DNS Security Introduction and Requirements", + RFC 4033, DOI 10.17487/RFC4033, March 2005, + <https://www.rfc-editor.org/info/rfc4033>. + + [RFC4786] Abley, J. and K. Lindqvist, "Operation of Anycast + Services", BCP 126, RFC 4786, DOI 10.17487/RFC4786, + December 2006, <https://www.rfc-editor.org/info/rfc4786>. + + [RFC6887] Wing, D., Ed., Cheshire, S., Boucadair, M., Penno, R., and + P. Selkirk, "Port Control Protocol (PCP)", RFC 6887, + DOI 10.17487/RFC6887, April 2013, + <https://www.rfc-editor.org/info/rfc6887>. + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC + 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, + May 2017, <https://www.rfc-editor.org/info/rfc8174>. + + [RFC8612] Mortensen, A., Reddy, T., and R. Moskowitz, "DDoS Open + Threat Signaling (DOTS) Requirements", RFC 8612, + DOI 10.17487/RFC8612, May 2019, + <https://www.rfc-editor.org/info/rfc8612>. + +6.2. Informative References + + [DOTS-USE-CASES] + Dobbins, R., Migault, D., Moskowitz, R., Teague, N., Xia, + L., and K. Nishizuka, "Use cases for DDoS Open Threat + Signaling", Work in Progress, Internet-Draft, draft-ietf- + dots-use-cases-25, 5 July 2020, + <https://tools.ietf.org/html/draft-ietf-dots-use-cases- + 25>. + + [DTLS-PROTOCOL] + Rescorla, E., Tschofenig, H., and N. Modadugu, "The + Datagram Transport Layer Security (DTLS) Protocol Version + 1.3", Work in Progress, Internet-Draft, draft-ietf-tls- + dtls13-38, 29 May 2020, + <https://tools.ietf.org/html/draft-ietf-tls-dtls13-38>. + + [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, + DOI 10.17487/RFC0768, August 1980, + <https://www.rfc-editor.org/info/rfc768>. + + [RFC0793] Postel, J., "Transmission Control Protocol", STD 7, + RFC 793, DOI 10.17487/RFC0793, September 1981, + <https://www.rfc-editor.org/info/rfc793>. + + [RFC1035] Mockapetris, P., "Domain names - implementation and + specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, + November 1987, <https://www.rfc-editor.org/info/rfc1035>. + + [RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for + specifying the location of services (DNS SRV)", RFC 2782, + DOI 10.17487/RFC2782, February 2000, + <https://www.rfc-editor.org/info/rfc2782>. + + [RFC3235] Senie, D., "Network Address Translator (NAT)-Friendly + Application Design Guidelines", RFC 3235, + DOI 10.17487/RFC3235, January 2002, + <https://www.rfc-editor.org/info/rfc3235>. + + [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, + A., Peterson, J., Sparks, R., Handley, M., and E. + Schooler, "SIP: Session Initiation Protocol", RFC 3261, + DOI 10.17487/RFC3261, June 2002, + <https://www.rfc-editor.org/info/rfc3261>. + + [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A + Border Gateway Protocol 4 (BGP-4)", RFC 4271, + DOI 10.17487/RFC4271, January 2006, + <https://www.rfc-editor.org/info/rfc4271>. + + [RFC4732] Handley, M., Ed., Rescorla, E., Ed., and IAB, "Internet + Denial-of-Service Considerations", RFC 4732, + DOI 10.17487/RFC4732, December 2006, + <https://www.rfc-editor.org/info/rfc4732>. + + [RFC5128] Srisuresh, P., Ford, B., and D. Kegel, "State of Peer-to- + Peer (P2P) Communication across Network Address + Translators (NATs)", RFC 5128, DOI 10.17487/RFC5128, March + 2008, <https://www.rfc-editor.org/info/rfc5128>. + + [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security + (TLS) Protocol Version 1.2", RFC 5246, + DOI 10.17487/RFC5246, August 2008, + <https://www.rfc-editor.org/info/rfc5246>. + + [RFC5780] MacDonald, D. and B. Lowekamp, "NAT Behavior Discovery + Using Session Traversal Utilities for NAT (STUN)", + RFC 5780, DOI 10.17487/RFC5780, May 2010, + <https://www.rfc-editor.org/info/rfc5780>. + + [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer + Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, + January 2012, <https://www.rfc-editor.org/info/rfc6347>. + + [RFC6763] Cheshire, S. and M. Krochmal, "DNS-Based Service + Discovery", RFC 6763, DOI 10.17487/RFC6763, February 2013, + <https://www.rfc-editor.org/info/rfc6763>. + + [RFC7092] Kaplan, H. and V. Pascual, "A Taxonomy of Session + Initiation Protocol (SIP) Back-to-Back User Agents", + RFC 7092, DOI 10.17487/RFC7092, December 2013, + <https://www.rfc-editor.org/info/rfc7092>. + + [RFC7094] McPherson, D., Oran, D., Thaler, D., and E. Osterweil, + "Architectural Considerations of IP Anycast", RFC 7094, + DOI 10.17487/RFC7094, January 2014, + <https://www.rfc-editor.org/info/rfc7094>. + + [RFC7350] Petit-Huguenin, M. and G. Salgueiro, "Datagram Transport + Layer Security (DTLS) as Transport for Session Traversal + Utilities for NAT (STUN)", RFC 7350, DOI 10.17487/RFC7350, + August 2014, <https://www.rfc-editor.org/info/rfc7350>. + + [RFC7658] Perreault, S., Tsou, T., Sivakumar, S., and T. Taylor, + "Deprecation of MIB Module NAT-MIB: Managed Objects for + Network Address Translators (NATs)", RFC 7658, + DOI 10.17487/RFC7658, October 2015, + <https://www.rfc-editor.org/info/rfc7658>. + + [RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage + Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085, + March 2017, <https://www.rfc-editor.org/info/rfc8085>. + + [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol + Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, + <https://www.rfc-editor.org/info/rfc8446>. + + [RFC8489] Petit-Huguenin, M., Salgueiro, G., Rosenberg, J., Wing, + D., Mahy, R., and P. Matthews, "Session Traversal + Utilities for NAT (STUN)", RFC 8489, DOI 10.17487/RFC8489, + February 2020, <https://www.rfc-editor.org/info/rfc8489>. + + [RFC8512] Boucadair, M., Ed., Sivakumar, S., Jacquenet, C., + Vinapamula, S., and Q. Wu, "A YANG Module for Network + Address Translation (NAT) and Network Prefix Translation + (NPT)", RFC 8512, DOI 10.17487/RFC8512, January 2019, + <https://www.rfc-editor.org/info/rfc8512>. + + [RFC8555] Barnes, R., Hoffman-Andrews, J., McCarney, D., and J. + Kasten, "Automatic Certificate Management Environment + (ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019, + <https://www.rfc-editor.org/info/rfc8555>. + + [RFC8738] Shoemaker, R.B., "Automated Certificate Management + Environment (ACME) IP Identifier Validation Extension", + RFC 8738, DOI 10.17487/RFC8738, February 2020, + <https://www.rfc-editor.org/info/rfc8738>. + + [RFC8782] Reddy.K, T., Ed., Boucadair, M., Ed., Patil, P., + Mortensen, A., and N. Teague, "Distributed Denial-of- + Service Open Threat Signaling (DOTS) Signal Channel + Specification", RFC 8782, DOI 10.17487/RFC8782, May 2020, + <https://www.rfc-editor.org/info/rfc8782>. + + [RFC8783] Boucadair, M., Ed. and T. Reddy.K, Ed., "Distributed + Denial-of-Service Open Threat Signaling (DOTS) Data + Channel Specification", RFC 8783, DOI 10.17487/RFC8783, + May 2020, <https://www.rfc-editor.org/info/rfc8783>. + +Acknowledgments + + Thanks to Matt Richardson, Roman Danyliw, Frank Xialiang, Roland + Dobbins, Wei Pan, Kaname Nishizuka, Jon Shallow, Paul Kyzivat, Warren + Kumari, Benjamin Kaduk, and Mohamed Boucadair for their comments and + suggestions. + + Special thanks to Roman Danyliw for the AD review. + +Contributors + + Mohamed Boucadair + Orange + mohamed.boucadair@orange.com + + Cristopher Gray + Christopher_Gray3@cable.comcast.com + +Authors' Addresses + + Andrew Mortensen (editor) + Forcepoint + United States of America + + Email: andrewmortensen@gmail.com + + + Tirumaleswar Reddy.K (editor) + McAfee, Inc. + Embassy Golf Link Business Park + Bangalore 560071 + Karnataka + India + + Email: kondtir@gmail.com + + + Flemming Andreasen + Cisco + United States of America + + Email: fandreas@cisco.com + + + Nik Teague + Iron Mountain + United States of America + + Email: nteague@ironmountain.co.uk + + + Rich Compton + Charter + + Email: Rich.Compton@charter.com |