draft-ietf-dots-requirements-10.txt | draft-ietf-dots-requirements-11.txt | |||
---|---|---|---|---|
DOTS A. Mortensen | DOTS A. Mortensen | |||
Internet-Draft Arbor Networks | Internet-Draft Arbor Networks | |||
Intended status: Informational R. Moskowitz | Intended status: Informational R. Moskowitz | |||
Expires: July 6, 2018 Huawei | Expires: July 27, 2018 Huawei | |||
T. Reddy | T. Reddy | |||
McAfee, Inc. | McAfee, Inc. | |||
January 02, 2018 | January 23, 2018 | |||
Distributed Denial of Service (DDoS) Open Threat Signaling Requirements | Distributed Denial of Service (DDoS) Open Threat Signaling Requirements | |||
draft-ietf-dots-requirements-10 | draft-ietf-dots-requirements-11 | |||
Abstract | Abstract | |||
This document defines the requirements for the Distributed Denial of | This document defines the requirements for the Distributed Denial of | |||
Service (DDoS) Open Threat Signaling (DOTS) protocols coordinating | Service (DDoS) Open Threat Signaling (DOTS) protocols enabling | |||
attack response against DDoS attacks. | coordinated response to DDoS attacks. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on July 6, 2018. | This Internet-Draft will expire on July 27, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 13 ¶ | skipping to change at page 2, line 13 ¶ | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Context and Motivation . . . . . . . . . . . . . . . . . 2 | 1.1. Context and Motivation . . . . . . . . . . . . . . . . . 2 | |||
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
2.1. General Requirements . . . . . . . . . . . . . . . . . . 7 | 2.1. General Requirements . . . . . . . . . . . . . . . . . . 6 | |||
2.2. Signal Channel Requirements . . . . . . . . . . . . . . . 8 | 2.2. Signal Channel Requirements . . . . . . . . . . . . . . . 7 | |||
2.3. Data Channel Requirements . . . . . . . . . . . . . . . . 12 | 2.3. Data Channel Requirements . . . . . . . . . . . . . . . . 12 | |||
2.4. Security Requirements . . . . . . . . . . . . . . . . . . 13 | 2.4. Security Requirements . . . . . . . . . . . . . . . . . . 13 | |||
2.5. Data Model Requirements . . . . . . . . . . . . . . . . . 15 | 2.5. Data Model Requirements . . . . . . . . . . . . . . . . . 14 | |||
3. Congestion Control Considerations . . . . . . . . . . . . . . 16 | 3. Congestion Control Considerations . . . . . . . . . . . . . . 15 | |||
3.1. Signal Channel . . . . . . . . . . . . . . . . . . . . . 16 | 3.1. Signal Channel . . . . . . . . . . . . . . . . . . . . . 15 | |||
3.2. Data Channel . . . . . . . . . . . . . . . . . . . . . . 16 | 3.2. Data Channel . . . . . . . . . . . . . . . . . . . . . . 15 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 17 | 5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 17 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 19 | 7.2. Informative References . . . . . . . . . . . . . . . . . 19 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
1. Introduction | 1. Introduction | |||
1.1. Context and Motivation | 1.1. Context and Motivation | |||
Distributed Denial of Service (DDoS) attacks continue to plague | Distributed Denial of Service (DDoS) attacks afflict networks of all | |||
network operators around the globe, from Tier-1 service providers on | kinds, plaguing network operators at service providers and | |||
down to enterprises and small businesses. Attack scale and frequency | enterprises around the world. High-volume attacks saturating inbound | |||
similarly have continued to increase, in part as a result of software | links are now common, as attack scale and frequency continue to | |||
vulnerabilities leading to reflection and amplification attacks. | increase. | |||
High-volume attacks saturating inbound links are now common, and the | ||||
impact of larger-scale attacks attract the attention of international | ||||
press agencies. | ||||
The greater impact of contemporary DDoS attacks has led to increased | The prevalence and impact of these DDoS attacks has led to an | |||
focus on coordinated attack response. Many institutions and | increased focus on coordinated attack response. However, many | |||
enterprises lack the resources or expertise to operate on-premises | enterprises lack the resources or expertise to operate on-premises | |||
attack mitigation solutions themselves, or simply find themselves | attack mitigation solutions themselves, or are constrained by local | |||
constrained by local bandwidth limitations. To address such gaps, | bandwidth limitations. To address such gaps, service providers have | |||
security service providers have begun to offer on-demand traffic | begun to offer on-demand traffic scrubbing services, which are | |||
scrubbing services, which aim to separate the DDoS traffic from | designed to separate the DDoS attack traffic from legitimate traffic | |||
legitimate traffic and forward only the latter. Today each such | and forward only the latter. | |||
service offers a proprietary invocation interface for subscribers to | ||||
request attack mitigation, tying subscribers to proprietary signaling | Today, these services offer proprietary interfaces for subscribers to | |||
implementations while also limiting the subset of network elements | request attack mitigation. Such proprietary interfaces tie a | |||
subscriber to a service while also limiting the network elements | ||||
capable of participating in the attack mitigation. As a result of | capable of participating in the attack mitigation. As a result of | |||
signaling interface incompatibility, attack responses may be | signaling interface incompatibility, attack responses may be | |||
fragmentary or otherwise incomplete, leaving key players in the | fragmented or otherwise incomplete, leaving operators in the attack | |||
attack path unable to assist in the defense. | path unable to assist in the defense. | |||
The lack of a common method to coordinate a real-time response among | A standardized method to coordinate a real-time response among | |||
involved actors and network domains inhibits the speed and | involved operators will increase the speed and effectiveness of DDoS | |||
effectiveness of DDoS attack mitigation. This document describes the | attack mitigation, and reduce the impact of these attacks. This | |||
required characteristics of protocols enabling requests for DDoS | document describes the required characteristics of protocols that | |||
attack mitigation, reducing attack impact and leading to more | enable attack coordination and mitigation of DDoS attacks. | |||
efficient defensive strategies. | ||||
DDoS Open Threat Signaling (DOTS) communicates the need for defensive | DDoS Open Threat Signaling (DOTS) communicates the need for defensive | |||
action in anticipation of or in response to an attack, but does not | action in anticipation of or in response to an attack, but does not | |||
dictate the form any defensive action takes. DOTS supplements calls | dictate the implementation of these actions. The requirements in | |||
for help with pertinent details about the detected attack, allowing | this document are derived from [I-D.ietf-dots-use-cases] and | |||
entities participating in DOTS to form ad hoc, adaptive alliances | [I-D.ietf-dots-architecture]. | |||
against DDoS attacks as described in the DOTS use cases | ||||
[I-D.ietf-dots-use-cases]. The requirements in this document are | ||||
derived from those use cases and [I-D.ietf-dots-architecture]. | ||||
1.2. Terminology | 1.2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
This document adopts the following terms: | This document adopts the following terms: | |||
DDoS: A distributed denial-of-service attack, in which traffic | DDoS: A distributed denial-of-service attack, in which traffic | |||
originating from multiple sources are directed at a target on a | originating from multiple sources is directed at a target on a | |||
network. DDoS attacks are intended to cause a negative impact on | network. DDoS attacks are intended to cause a negative impact on | |||
the availability of servers, services, applications, and/or other | the availability and/or other functionality of an attack target. | |||
functionality of an attack target. Denial-of-service | Denial-of-service considerations are discussed in detail in | |||
considerations are discussed in detail in [RFC4732]. | [RFC4732]. | |||
DDoS attack target: A network connected entity with a finite set of | DDoS attack target: A network connected entity with a finite set of | |||
resources, such as network bandwidth, memory or CPU, that is the | resources, such as network bandwidth, memory or CPU, that is the | |||
target of a DDoS attack. Potential targets include (but are not | target of a DDoS attack. Potential targets include (but are not | |||
limited to) network elements, network links, servers, and | limited to) network elements, network links, servers, and | |||
services. | services. | |||
DDoS attack telemetry: Collected measurements and behavioral | DDoS attack telemetry: Collected measurements and behavioral | |||
characteristics defining the nature of a DDoS attack. | characteristics defining the nature of a DDoS attack. | |||
Countermeasure: An action or set of actions taken to recognize and | Countermeasure: An action or set of actions focused on recognizing | |||
filter out DDoS attack traffic while passing legitimate traffic to | and filtering out specific types of DDoS attack traffic while | |||
the attack target. | passing legitimate traffic to the attack target. Distinct | |||
countermeasures can be layered to defend against attacks combining | ||||
multiple DDoS attack types. | ||||
Mitigation: A set of countermeasures enforced against traffic | Mitigation: A set of countermeasures enforced against traffic | |||
destined for the target or targets of a detected or reported DDoS | destined for the target or targets of a detected or reported DDoS | |||
attack, where countermeasure enforcement is managed by an entity | attack, where countermeasure enforcement is managed by an entity | |||
in the network path between attack sources and the attack target. | in the network path between attack sources and the attack target. | |||
Mitigation methodology is out of scope for this document. | Mitigation methodology is out of scope for this document. | |||
Mitigator: An entity, typically a network element, capable of | Mitigator: An entity, typically a network element, capable of | |||
performing mitigation of a detected or reported DDoS attack. For | performing mitigation of a detected or reported DDoS attack. The | |||
the purposes of this document, this entity is a black box capable | means by which this entity performs these mitigations and how they | |||
of mitigation, making no assumptions about availability or design | are requested of it are out of scope. The mitigator and DOTS | |||
of countermeasures, nor about the programmable interface(s) | server receiving a mitigation request are assumed to belong to the | |||
between this entity and other network elements. The mitigator and | same administrative entity. | |||
invoked DOTS server are assumed to belong to the same | ||||
administrative entity. | ||||
DOTS client: A DOTS-aware software module responsible for requesting | DOTS client: A DOTS-aware software module responsible for requesting | |||
attack response coordination with other DOTS-aware elements. | attack response coordination with other DOTS-aware elements. | |||
DOTS server: A DOTS-aware software module handling and responding to | DOTS server: A DOTS-aware software module handling and responding to | |||
messages from DOTS clients. The DOTS server enables mitigation on | messages from DOTS clients. The DOTS server enables mitigation on | |||
behalf of the DOTS client, if requested, by communicating the DOTS | behalf of the DOTS client, if requested, by communicating the DOTS | |||
client's request to the mitigator and returning selected mitigator | client's request to the mitigator and returning selected mitigator | |||
feedback to the requesting DOTS client. A DOTS server may also be | feedback to the requesting DOTS client. | |||
colocated with a mitigator. | ||||
DOTS agent: Any DOTS-aware software module capable of participating | DOTS agent: Any DOTS-aware software module capable of participating | |||
in a DOTS signal or data channel. It can be a DOTS client, DOTS | in a DOTS signal or data channel. It can be a DOTS client, DOTS | |||
server, or, as a logical agent, a DOTS gateway. | server, or, as a logical agent, a DOTS gateway. | |||
DOTS gateway: A DOTS-aware software module resulting from the | DOTS gateway: A DOTS-aware software module resulting from the | |||
logical concatenation of a DOTS server and a DOTS client, | logical concatenation of the functionality of a DOTS server and a | |||
DOTS client into a single DOTS agent. This functionality is | ||||
analogous to a Session Initiation Protocol (SIP) [RFC3261] Back- | analogous to a Session Initiation Protocol (SIP) [RFC3261] Back- | |||
to-Back User Agent (B2BUA) [RFC7092]. A DOTS gateway has a | to-Back User Agent (B2BUA) [RFC7092]. A DOTS gateway has a | |||
client-facing side, which behaves as a DOTS server for downstream | client-facing side, which behaves as a DOTS server for downstream | |||
clients, and a server-facing side, which performs the role of DOTS | clients, and a server-facing side, which performs the role of DOTS | |||
client to upstream DOTS servers. Client-domain DOTS gateways are | client for upstream DOTS servers. Client-domain DOTS gateways are | |||
DOTS gateways that are in the DOTS client's domain, while server- | DOTS gateways that are in the DOTS client's domain, while server- | |||
domain DOTS gateways denote DOTS gateways that are in the DOTS | domain DOTS gateways denote DOTS gateways that are in the DOTS | |||
server's domain. DOTS gateways are described further in | server's domain. DOTS gateways are described further in | |||
[I-D.ietf-dots-architecture]. | [I-D.ietf-dots-architecture]. | |||
Signal channel: A bidirectional, mutually authenticated | Signal channel: A bidirectional, mutually authenticated | |||
communication channel between two DOTS agents characterized by | communication channel between DOTS agents that is resilient even | |||
resilience even in conditions leading to severe packet loss, such | in conditions leading to severe packet loss, such as a volumetric | |||
as a volumetric DDoS attack causing network congestion. | DDoS attack causing network congestion. | |||
DOTS signal: A concise authenticated status/control message | DOTS signal: A concise authenticated status/control message | |||
transmitted between DOTS agents, used to indicate the client's | transmitted over the signal channel between DOTS agents, used to | |||
need for mitigation, as well as to convey the status of any | indicate the client's need for mitigation, as well as to convey | |||
requested mitigation. | the status of any requested mitigation. | |||
Heartbeat: A message transmitted between DOTS agents over the signal | Heartbeat: A message transmitted between DOTS agents over the signal | |||
channel, used as a keep-alive and to measure peer health. | channel, used as a keep-alive and to measure peer health. | |||
Data channel: A secure communication layer between two DOTS agents | Data channel: A bidirectional, mutually authentication | |||
used for infrequent bulk exchange of data not easily or | communincation channel between two DOTS agents used for infrequent | |||
appropriately communicated through the signal channel under attack | but reliable bulk exchange of data not easily or appropriately | |||
conditions. | communicated through the signal channel under attack conditions. | |||
Filter: A specification of a matching network traffic flow or set of | Filter: A specification of a matching network traffic flow or set of | |||
flows. The filter will typically have a policy associated with | flows. The filter will typically have a policy associated with | |||
it, e.g., rate-limiting or discarding matching traffic [RFC4949]. | it, e.g., rate-limiting or discarding matching traffic [RFC4949]. | |||
Blacklist: A filter list of addresses, prefixes, and/or other | Blacklist: A list of filters indicating sources from which traffic | |||
identifiers indicating sources from which traffic should be | should be blocked, regardless of traffic content. | |||
blocked, regardless of traffic content. | ||||
Whitelist: A list of addresses, prefixes, and/or other identifiers | Whitelist: A list of filters indicating sources from which traffic | |||
indicating sources from which traffic should always be allowed, | should always be allowed, regardless of contradictory data gleaned | |||
regardless of contradictory data gleaned in a detected attack. | in a detected attack. | |||
Multi-homed DOTS client: A DOTS client exchanging messages with | Multi-homed DOTS client: A DOTS client exchanging messages with | |||
multiple DOTS servers, each in a separate administrative domain. | multiple DOTS servers, each in a separate administrative domain. | |||
2. Requirements | 2. Requirements | |||
This section describes the required features and characteristics of | This section describes the required features and characteristics of | |||
the DOTS protocols. | the DOTS protocols. | |||
The DOTS protocols enable and manage mitigation on behalf of a | The DOTS protocols enable and manage mitigation on behalf of a | |||
network domain or resource which is or may become the focus of a DDoS | network domain or resource which is or may become the focus of a DDoS | |||
attack. An active DDoS attack against the entity controlling the | attack. An active DDoS attack against the entity controlling the | |||
DOTS client need not be present before establishing a communication | DOTS client need not be present before establishing a communication | |||
channel between DOTS agents. Indeed, establishing a relationship | channel between DOTS agents. Indeed, establishing a relationship | |||
with peer DOTS agents during normal network conditions provides the | with peer DOTS agents during normal network conditions provides the | |||
foundation for more rapid attack response against future attacks, as | foundation for more rapid attack response against future attacks, as | |||
all interactions setting up DOTS, including any business or service | all interactions setting up DOTS, including any business or service | |||
level agreements, are already complete. Reachability information of | level agreements, are already complete. Reachability information of | |||
peer DOTS agents is provisioned to a DOTS client using a variety of | peer DOTS agents is provisioned to a DOTS client using a variety of | |||
manual or dynamic methods. | manual or dynamic methods. Once a relationship between DOTS agents | |||
is established, regular communication between DOTS clients and | ||||
servers enables a common understanding of the DOTS agents' health and | ||||
activity. | ||||
The DOTS protocol must at a minimum make it possible for a DOTS | The DOTS protocol must at a minimum make it possible for a DOTS | |||
client to request a mitigator's aid mounting a defense, coordinated | client to request aid mounting a defense, coordinated by a DOTS | |||
by a DOTS server, against a suspected attack, signaling within or | server, against a suspected attack, signaling within or between | |||
between domains as requested by local operators. DOTS clients should | domains as requested by local operators. DOTS clients should | |||
similarly be able to withdraw aid requests. DOTS requires no | similarly be able to withdraw aid requests. DOTS requires no | |||
justification from DOTS clients for requests for help, nor do DOTS | justification from DOTS clients for requests for help, nor do DOTS | |||
clients need to justify withdrawing help requests: the decision is | clients need to justify withdrawing help requests: the decision is | |||
local to the DOTS clients' domain. Multi-homed DOTS clients must be | local to the DOTS clients' domain. Multi-homed DOTS clients must be | |||
able to select the appropriate DOTS server(s) to which a mitigation | able to select the appropriate DOTS server(s) to which a mitigation | |||
request is to be sent. Further multi-homing considerations are out | request is to be sent. The method for selecting the appropriate DOTS | |||
of scope. | server in a multi-homed environment is out of scope. | |||
Regular feedback between DOTS clients and DOTS servers supplement the | ||||
defensive alliance by maintaining a common understanding of the DOTS | ||||
agents' health and activity. Bidirectional communication between | ||||
DOTS clients and DOTS servers is therefore critical. | ||||
DOTS protocol implementations face competing operational goals when | DOTS protocol implementations face competing operational goals when | |||
maintaining this bidirectional communication stream. On the one | maintaining this bidirectional communication stream. On the one | |||
hand, the protocol must be resilient under extremely hostile network | hand, DOTS must include protections ensuring message confidentiality, | |||
conditions, providing continued contact between DOTS agents even as | integrity and authenticity to keep the protocols from becoming | |||
attack traffic saturates the link. Such resiliency may be developed | additional vectors for the very attadcks it is meant to help fight | |||
several ways, but characteristics such as small message size, | off. On the other hand, the protocol must be resilient under | |||
asynchronous, redundant message delivery and minimal connection | extremely hostile network conditions, providing continued contact | |||
overhead (when possible given local network policy) will tend to | between DOTS agents even as attack traffic saturates the link. Such | |||
contribute to the robustness demanded by a viable DOTS protocol. | resiliency may be developed several ways, but characteristics such as | |||
Operators of peer DOTS-enabled domains may enable quality- or class- | small message size, asynchronous, redundant message delivery and | |||
of-service traffic tagging to increase the probability of successful | minimal connection overhead (when possible given local network | |||
DOTS signal delivery, but DOTS does not require such policies be in | policy) will tend to contribute to the robustness demanded by a | |||
place. The DOTS solution indeed must be viable especially in their | viable DOTS protocol. Operators of peer DOTS-enabled domains may | |||
enable quality- or class-of-service traffic tagging to increase the | ||||
probability of successful DOTS signal delivery, but DOTS does not | ||||
require such policies be in place, and should be viable in their | ||||
absence. | absence. | |||
On the other hand, DOTS must include protections ensuring message | The DOTS server and client must also have some standardized method of | |||
confidentiality, integrity and authenticity to keep the protocol from | defining the scope of any mitigation, and negotiating related | |||
becoming another vector for the very attacks it's meant to help fight | mitigation communication and actions and communications. | |||
off. DOTS clients must be able to authenticate DOTS servers, and | ||||
vice versa, to avoid exposing new attack surfaces when deploying | ||||
DOTS; specifically, to prevent DDoS mitigation in response to DOTS | ||||
signaling from becoming a new form of attack. In order to provide | ||||
this level of protection, DOTS agents must have a way to negotiate | ||||
and agree upon the terms of protocol security. Attacks against the | ||||
transport protocol should not offer a means of attack against the | ||||
message confidentiality, integrity and authenticity. | ||||
The DOTS server and client must also have some common method of | ||||
defining the scope of any mitigation performed by a mitigator, as | ||||
well as making adjustments to other commonly configurable features, | ||||
such as targeted port numbers, exchanging black- and white-lists, and | ||||
so on. | ||||
Finally, DOTS should be sufficiently extensible to meet future needs | Finally, DOTS should be sufficiently extensible to meet future needs | |||
in coordinated attack defense, although this consideration is | in coordinated attack defense, although this consideration is | |||
necessarily superseded by the other operational requirements. | necessarily superseded by the other operational requirements. | |||
2.1. General Requirements | 2.1. General Requirements | |||
GEN-001 Extensibility: Protocols and data models developed as part | GEN-001 Extensibility: Protocols and data models developed as part | |||
of DOTS MUST be extensible in order to keep DOTS adaptable to | of DOTS MUST be extensible in order to keep DOTS adaptable to | |||
operational and proprietary DDoS defenses. Future extensions MUST | operational and proprietary DDoS defenses. Future extensions MUST | |||
be backward compatible. DOTS protocols MUST use a version number | be backward compatible. DOTS protocols MUST use a version number | |||
system to distinguish protocol revisions. Implementations of | system to distinguish protocol revisions. Implementations of | |||
older protocol versions SHOULD ignore information added to DOTS | older protocol versions SHOULD ignore information added to DOTS | |||
messages as part of newer protocol versions. | messages as part of newer protocol versions. | |||
GEN-002 Resilience and Robustness: The signaling protocol MUST be | GEN-002 Resilience and Robustness: The signaling protocol MUST be | |||
designed to maximize the probability of signal delivery even under | designed to maximize the probability of signal delivery even under | |||
the severely constrained network conditions imposed by particular | the severely constrained network conditions caused by particular | |||
attack traffic. The protocol MUST be resilient, that is, continue | attack traffic. The protocol MUST be resilient, that is, continue | |||
operating despite message loss and out-of-order or redundant | operating despite message loss and out-of-order or redundant | |||
message delivery. In support of signaling protocol robustness, | message delivery. In support of signaling protocol robustness, | |||
DOTS signals SHOULD be conveyed over a transport not susceptible | DOTS signals SHOULD be conveyed over a transport not susceptible | |||
to Head of Line Blocking. | to Head of Line Blocking. | |||
GEN-003 Bidirectionality: To support peer health detection, to | GEN-003 Bidirectionality: To support peer health detection, to | |||
maintain an open signal channel, and to increase the probability | maintain an active signal channel, and increase the probability of | |||
of signal delivery during an attack, the signal channel MUST be | signal delivery during an attack, the signal channel MUST be | |||
bidirectional, with client and server transmitting signals to each | bidirectional, with client and server transmitting signals to each | |||
other at regular intervals, regardless of any client request for | other at regular intervals, regardless of any client request for | |||
mitigation. Unidirectional messages MUST be supported within the | mitigation. Unidirectional messages MUST be supported within the | |||
bidirectional signal channel to allow for unsolicited message | bidirectional signal channel to allow for unsolicited message | |||
delivery, enabling asynchronous notifications between DOTS agents. | delivery, enabling asynchronous notifications between DOTS agents. | |||
GEN-004 Bulk Data Exchange: Infrequent bulk data exchange between | GEN-004 Bulk Data Exchange: Infrequent bulk data exchange between | |||
DOTS agents can also significantly augment attack response | DOTS agents can also significantly augment attack response | |||
coordination, permitting such tasks as population of black- or | coordination, permitting such tasks as population of black- or | |||
white-listed source addresses; address or prefix group aliasing; | white-listed source addresses; address or prefix group aliasing; | |||
skipping to change at page 8, line 34 ¶ | skipping to change at page 8, line 9 ¶ | |||
MTU Discovery [RFC4821]. If the PMTU cannot be discovered, DOTS | MTU Discovery [RFC4821]. If the PMTU cannot be discovered, DOTS | |||
agents SHOULD assume a PMTU of 1280 bytes. If IPv4 support on | agents SHOULD assume a PMTU of 1280 bytes. If IPv4 support on | |||
legacy or otherwise unusual networks is a consideration and PMTU | legacy or otherwise unusual networks is a consideration and PMTU | |||
is unknown, DOTS implementations MAY rely on a PMTU of 576 bytes, | is unknown, DOTS implementations MAY rely on a PMTU of 576 bytes, | |||
as discussed in [RFC0791] and [RFC1122]. | as discussed in [RFC0791] and [RFC1122]. | |||
SIG-003 Channel Health Monitoring: DOTS agents MUST support exchange | SIG-003 Channel Health Monitoring: DOTS agents MUST support exchange | |||
of heartbeat messages over the signal channel to monitor channel | of heartbeat messages over the signal channel to monitor channel | |||
health. Peer DOTS agents SHOULD regularly send heartbeats to each | health. Peer DOTS agents SHOULD regularly send heartbeats to each | |||
other while a mitigation request is active. The heartbeat | other while a mitigation request is active. The heartbeat | |||
interval during active mitigation is not specified, but SHOULD be | interval during active mitigation could be negotiable, but SHOULD | |||
frequent enough to maintain any on-path NAT or Firewall bindings | be frequent enough to maintain any on-path NAT or Firewall | |||
during mitigation. | bindings during mitigation. | |||
To support scenarios in which loss of heartbeat is used to trigger | To support scenarios in which loss of heartbeat is used to trigger | |||
mitigation, and to keep the channel active, DOTS clients MAY | mitigation, and to keep the channel active, DOTS clients MAY | |||
solicit heartbeat exchanges after successful mutual | solicit heartbeat exchanges after successful mutual | |||
authentication. When DOTS agents are exchanging heartbeats and no | authentication. When DOTS agents are exchanging heartbeats and no | |||
mitigation request is active, either agent MAY request changes to | mitigation request is active, either agent MAY request changes to | |||
the heartbeat rate. For example, a DOTS server might want to | the heartbeat rate. For example, a DOTS server might want to | |||
reduce heartbeat frequency or cease heartbeat exchanges when an | reduce heartbeat frequency or cease heartbeat exchanges when an | |||
active DOTS client has not requested mitigation, in order to | active DOTS client has not requested mitigation, in order to | |||
control load. | control load. | |||
skipping to change at page 9, line 9 ¶ | skipping to change at page 8, line 33 ¶ | |||
Following mutual authentication, a signal channel MUST be | Following mutual authentication, a signal channel MUST be | |||
considered active until a DOTS agent explicitly ends the session, | considered active until a DOTS agent explicitly ends the session, | |||
or either DOTS agent fails to receive heartbeats from the other | or either DOTS agent fails to receive heartbeats from the other | |||
after a mutually agreed upon retransmission procedure has been | after a mutually agreed upon retransmission procedure has been | |||
exhausted. Because heartbeat loss is much more likely during | exhausted. Because heartbeat loss is much more likely during | |||
volumetric attack, DOTS agents SHOULD avoid signal channel | volumetric attack, DOTS agents SHOULD avoid signal channel | |||
termination when mitigation is active and heartbeats are not | termination when mitigation is active and heartbeats are not | |||
received by either DOTS agent for an extended period. In such | received by either DOTS agent for an extended period. In such | |||
circumstances, DOTS clients MAY attempt to reestablish the signal | circumstances, DOTS clients MAY attempt to reestablish the signal | |||
channel, but SHOULD continue to send heartbeats so that the DOTS | channel, but SHOULD continue to send heartbeats so that the DOTS | |||
server knows the session is still alive. DOTS servers SHOULD | server knows the session is still alive. DOTS servers are assumed | |||
monitor the attack, using feedback from the mitigator and other | to have the ability to monitor the attack, using feedback from the | |||
available sources, and MAY use the absence of attack traffic and | mitigator and other available sources, and MAY use the absence of | |||
lack of client heartbeats as an indication the signal channel is | attack traffic and lack of client heartbeats as an indication the | |||
defunct. | signal channel is defunct. | |||
SIG-004 Channel Redirection: In order to increase DOTS operational | SIG-004 Channel Redirection: In order to increase DOTS operational | |||
flexibility and scalability, DOTS servers SHOULD be able to | flexibility and scalability, DOTS servers SHOULD be able to | |||
redirect DOTS clients to another DOTS server at any time. DOTS | redirect DOTS clients to another DOTS server at any time. DOTS | |||
clients MUST NOT assume the redirection target DOTS server shares | clients MUST NOT assume the redirection target DOTS server shares | |||
security state with the redirecting DOTS server. DOTS clients MAY | security state with the redirecting DOTS server. DOTS clients are | |||
attempt abbreviated security negotiation methods supported by the | free to attempt abbreviated security negotiation methods supported | |||
protocol, such as DTLS session resumption, but MUST be prepared to | by the protocol, such as DTLS session resumption, but MUST be | |||
negotiate new security state with the redirection target DOTS | prepared to negotiate new security state with the redirection | |||
server. | target DOTS server. | |||
Due to the increased likelihood of packet loss caused by link | Due to the increased likelihood of packet loss caused by link | |||
congestion during an attack, DOTS servers SHOULD NOT redirect | congestion during an attack, DOTS servers SHOULD NOT redirect | |||
while mitigation is enabled during an active attack against a | while mitigation is enabled during an active attack against a | |||
target in the DOTS client's domain. | target in the DOTS client's domain. | |||
SIG-005 Mitigation Requests and Status: Authorized DOTS clients MUST | SIG-005 Mitigation Requests and Status: Authorized DOTS clients MUST | |||
be able to request scoped mitigation from DOTS servers. DOTS | be able to request scoped mitigation from DOTS servers. DOTS | |||
servers MUST send mitigation request status in response to granted | servers MUST send status to the DOTS clients about mitigation | |||
DOTS clients requests for mitigation. If a DOTS server rejects an | requests. If a DOTS server rejects an authorized request for | |||
authorized request for mitigation, the DOTS server MUST include a | mitigation, the DOTS server MUST include a reason for the | |||
reason for the rejection in the status message sent to the client. | rejection in the status message sent to the client. | |||
Due to the higher likelihood of packet loss during a DDoS attack, | Due to the higher likelihood of packet loss during a DDoS attack, | |||
DOTS servers SHOULD regularly send mitigation status to authorized | DOTS servers SHOULD regularly send mitigation status to authorized | |||
DOTS clients which have requested and been granted mitigation, | DOTS clients which have requested and been granted mitigation, | |||
regardless of client requests for mitigation status. | regardless of client requests for mitigation status. | |||
When DOTS client-requested mitigation is active, DOTS server | When DOTS client-requested mitigation is active, DOTS server | |||
status messages SHOULD include the following mitigation metrics: | status messages SHOULD include the following mitigation metrics: | |||
* Total number of packets blocked by the mitigation | * Total number of packets blocked by the mitigation | |||
skipping to change at page 10, line 28 ¶ | skipping to change at page 9, line 52 ¶ | |||
but terminating. | but terminating. | |||
The initial active-but-terminating period is implementation- and | The initial active-but-terminating period is implementation- and | |||
deployment- specific, but SHOULD be sufficiently long to absorb | deployment- specific, but SHOULD be sufficiently long to absorb | |||
latency incurred by route propagation. If the client requests | latency incurred by route propagation. If the client requests | |||
mitigation again before the initial active-but-terminating period | mitigation again before the initial active-but-terminating period | |||
elapses, the DOTS server MAY exponentially increase the active- | elapses, the DOTS server MAY exponentially increase the active- | |||
but-terminating period up to a maximum of 300 seconds (5 minutes). | but-terminating period up to a maximum of 300 seconds (5 minutes). | |||
After the active-but-terminating period elapses, the DOTS server | After the active-but-terminating period elapses, the DOTS server | |||
MUST treat the mitigation as terminated, as the DOTS client is no | MUST treat the mitigation as terminated, as the DOTS client is no | |||
longer responsible for the mitigation. For example, if there is a | longer responsible for the mitigation. | |||
financial relationship between the DOTS client and server domains, | ||||
the DOTS client ceases incurring cost at this point. | ||||
SIG-006 Mitigation Lifetime: DOTS servers MUST support mitigation | SIG-006 Mitigation Lifetime: DOTS servers MUST support mitigations | |||
lifetimes, and MUST terminate a mitigation when the lifetime | for a negotiated time interval or lifetime, and MUST terminate a | |||
elapses. DOTS servers also MUST support renewal of mitigation | mitigation when the lifetime elapses. DOTS servers also MUST | |||
lifetimes in mitigation requests from DOTS clients, allowing | support renewal of mitigation lifetimes in mitigation requests | |||
clients to extend mitigation as necessary for the duration of an | from DOTS clients, allowing clients to extend mitigation as | |||
attack. | necessary for the duration of an attack. | |||
DOTS servers MUST treat a mitigation terminated due to lifetime | DOTS servers MUST treat a mitigation terminated due to lifetime | |||
expiration exactly as if the DOTS client originating the | expiration exactly as if the DOTS client originating the | |||
mitigation had asked to end the mitigation, including the active- | mitigation had asked to end the mitigation, including the active- | |||
but-terminating period, as described above in SIG-005. | but-terminating period, as described above in SIG-005. | |||
DOTS clients MUST include a mitigation lifetime in all mitigation | DOTS clients MUST include a mitigation lifetime in all mitigation | |||
requests. | requests. | |||
DOTS servers SHOULD support indefinite mitigation lifetimes, | DOTS servers SHOULD support indefinite mitigation lifetimes, | |||
skipping to change at page 12, line 15 ¶ | skipping to change at page 11, line 35 ¶ | |||
obtain mitigation scope. | obtain mitigation scope. | |||
SIG-008 Mitigation Efficacy: When a mitigation request is active, | SIG-008 Mitigation Efficacy: When a mitigation request is active, | |||
DOTS clients SHOULD transmit a metric of perceived mitigation | DOTS clients SHOULD transmit a metric of perceived mitigation | |||
efficacy to the DOTS server. DOTS servers MAY use the efficacy | efficacy to the DOTS server. DOTS servers MAY use the efficacy | |||
metric to adjust countermeasures activated on a mitigator on | metric to adjust countermeasures activated on a mitigator on | |||
behalf of a DOTS client. | behalf of a DOTS client. | |||
SIG-009 Conflict Detection and Notification: Multiple DOTS clients | SIG-009 Conflict Detection and Notification: Multiple DOTS clients | |||
controlled by a single administrative entity may send conflicting | controlled by a single administrative entity may send conflicting | |||
mitigation requests for pools of protected resources as a result | mitigation requests as a result of misconfiguration, operator | |||
of misconfiguration, operator error, or compromised DOTS clients. | error, or compromised DOTS clients. DOTS servers in the same | |||
DOTS servers in the same administrative domain attempting to honor | administrative domain attempting to honor conflicting requests may | |||
conflicting requests may flap network route or DNS information, | flap network route or DNS information, degrading the networks | |||
degrading the networks attempting to participate in attack | attempting to participate in attack response with the DOTS | |||
response with the DOTS clients. DOTS servers in a single | clients. DOTS servers in a single administrative domain SHALL | |||
administrative domain SHALL detect such conflicting requests, and | detect such conflicting requests, and SHALL notify the DOTS | |||
SHALL notify the DOTS clients in conflict. The notification | clients in conflict. The notification SHOULD indicate the nature | |||
SHOULD indicate the nature and scope of the conflict, for example, | and scope of the conflict, for example, the overlapping prefix | |||
the overlapping prefix range in a conflicting mitigation request. | range in a conflicting mitigation request. | |||
SIG-010: Network Address Translator Traversal: DOTS clients may be | SIG-010: Network Address Translator Traversal: DOTS clients may be | |||
deployed behind a Network Address Translator (NAT), and need to | deployed behind a Network Address Translator (NAT), and need to | |||
communicate with DOTS servers through the NAT. DOTS protocols | communicate with DOTS servers through the NAT. DOTS protocols | |||
MUST therefore be capable of traversing NATs. | MUST therefore be capable of traversing NATs. | |||
If UDP is used as the transport for the DOTS signal channel, all | If UDP is used as the transport for the DOTS signal channel, all | |||
considerations in "Middlebox Traversal Guidelines" in [RFC8085] | considerations in "Middlebox Traversal Guidelines" in [RFC8085] | |||
apply to DOTS. Regardless of transport, DOTS protocols MUST | apply to DOTS. Regardless of transport, DOTS protocols MUST | |||
follow established best common practices (BCPs) for NAT traversal. | follow established best common practices established in BCP 127 | |||
for NAT traversal [RFC4787][RFC6888][RFC7857]. | ||||
2.3. Data Channel Requirements | 2.3. Data Channel Requirements | |||
The data channel is intended to be used for bulk data exchanges | The data channel is intended to be used for bulk data exchanges | |||
between DOTS agents. Unlike the signal channel, which must operate | between DOTS agents. Unlike the signal channel, the data channel is | |||
nominally even when confronted with signal degradation due to | not expected to be constructed to deal with attack conditions. As | |||
significant packet loss, the data channel is not expected to be | the primary function of the data channel is data exchange, a reliable | |||
constructed to deal with attack conditions. As the primary function | transport is required in order for DOTS agents to detect data | |||
of the data channel is data exchange, a reliable transport is | delivery success or failure. | |||
required in order for DOTS agents to detect data delivery success or | ||||
failure. | ||||
The DOTS data channel protocol MUST be extensible. We anticipate the | The data channel provides a protocol for DOTS configuration, | |||
data channel will be used for such purposes as configuration or | management. For example, a DOTS client may submit to a DOTS server a | |||
resource discovery. For example, a DOTS client may submit to a DOTS | collection of prefixes it wants to refer to by alias when requesting | |||
server a collection of prefixes it wants to refer to by alias when | mitigation, to which the server would respond with a success status | |||
requesting mitigation, to which the server would respond with a | and the new prefix group alias, or an error status and message in the | |||
success status and the new prefix group alias, or an error status and | event the DOTS client's data channel request failed. | |||
message in the event the DOTS client's data channel request failed. | ||||
The transactional nature of such data exchanges suggests a separate | ||||
set of requirements for the data channel, while the potentially | ||||
sensitive content sent between DOTS agents requires extra precautions | ||||
to ensure data privacy and authenticity. | ||||
DATA-001 Reliable transport: Messages sent over the data channel | DATA-001 Reliable transport: Messages sent over the data channel | |||
MUST be delivered reliably, in order sent. | MUST be delivered reliably, in order sent. | |||
DATA-002 Data privacy and integrity: Transmissions over the data | DATA-002 Data privacy and integrity: Transmissions over the data | |||
channel are likely to contain operationally or privacy-sensitive | channel are likely to contain operationally or privacy-sensitive | |||
information or instructions from the remote DOTS agent. Theft or | information or instructions from the remote DOTS agent. Theft or | |||
modification of data channel transmissions could lead to | modification of data channel transmissions could lead to | |||
information leaks or malicious transactions on behalf of the | information leaks or malicious transactions on behalf of the | |||
sending agent (see Section 4 below). Consequently data sent over | sending agent (see Section 4 below). Consequently data sent over | |||
the data channel MUST be encrypted and authenticated using current | the data channel MUST be encrypted and authenticated using current | |||
industry best practices. DOTS servers MUST enable means to | IETF best practices. DOTS servers MUST enable means to prevent | |||
prevent leaking operationally or privacy-sensitive data. Although | leaking operationally or privacy-sensitive data. Although | |||
administrative entities participating in DOTS may detail what data | administrative entities participating in DOTS may detail what data | |||
may be revealed to third-party DOTS agents, such considerations | may be revealed to third-party DOTS agents, such considerations | |||
are not in scope for this document. | are not in scope for this document. | |||
DATA-003 Resource Configuration: To help meet the general and signal | DATA-003 Resource Configuration: To help meet the general and signal | |||
channel requirements in Section 2.2, DOTS server implementations | channel requirements in Section 2.1 and Section 2.2, DOTS server | |||
MUST provide an interface to configure resource identifiers, as | implementations MUST provide an interface to configure resource | |||
described in SIG-007. DOTS server implementations MAY expose | identifiers, as described in SIG-007. DOTS server implementations | |||
additional configurability. Additional configurability is | MAY expose additional configurability. Additional configurability | |||
implementation-specific. | is implementation-specific. | |||
DATA-004 Black- and whitelist management: DOTS servers MUST provide | DATA-004 Black- and whitelist management: DOTS servers MUST provide | |||
methods for DOTS clients to manage black- and white-lists of | methods for DOTS clients to manage black- and white-lists of | |||
traffic destined for resources belonging to a client. | traffic destined for resources belonging to a client. | |||
For example, a DOTS client should be able to create a black- or | For example, a DOTS client should be able to create a black- or | |||
whitelist entry, retrieve a list of current entries from either | whitelist entry, retrieve a list of current entries from either | |||
list, update the content of either list, and delete entries as | list, update the content of either list, and delete entries as | |||
necessary. | necessary. | |||
skipping to change at page 14, line 21 ¶ | skipping to change at page 13, line 36 ¶ | |||
SEC-002 Message Confidentiality, Integrity and Authenticity: DOTS | SEC-002 Message Confidentiality, Integrity and Authenticity: DOTS | |||
protocols MUST take steps to protect the confidentiality, | protocols MUST take steps to protect the confidentiality, | |||
integrity and authenticity of messages sent between client and | integrity and authenticity of messages sent between client and | |||
server. While specific transport- and message-level security | server. While specific transport- and message-level security | |||
options are not specified, the protocols MUST follow current | options are not specified, the protocols MUST follow current | |||
industry best practices for encryption and message authentication. | industry best practices for encryption and message authentication. | |||
In order for DOTS protocols to remain secure despite advancements | In order for DOTS protocols to remain secure despite advancements | |||
in cryptanalysis and traffic analysis, DOTS agents MUST be able to | in cryptanalysis and traffic analysis, DOTS agents MUST be able to | |||
negotiate the terms and mechanisms of protocol security, subject | negotiate the terms and mechanisms of protocol security, subject | |||
to the interoperability and signal message size requirements | to the interoperability and signal message size requirements in | |||
above. | Section 2.2. | |||
While the interfaces between downstream DOTS server and upstream | While the interfaces between downstream DOTS server and upstream | |||
DOTS client within a DOTS gateway are implementation-specific, | DOTS client within a DOTS gateway are implementation-specific, | |||
those interfaces nevertheless MUST provide security equivalent to | those interfaces nevertheless MUST provide security equivalent to | |||
that of the signal channels bridged by gateways in the signaling | that of the signal channels bridged by gateways in the signaling | |||
path. For example, when a DOTS gateway consisting of a DOTS | path. For example, when a DOTS gateway consisting of a DOTS | |||
server and DOTS client is running on the same logical device, the | server and DOTS client is running on the same logical device, the | |||
two DOTS agents could be implemented within the same process | two DOTS agents could be implemented within the same process | |||
security boundary. | security boundary. | |||
skipping to change at page 15, line 13 ¶ | skipping to change at page 14, line 25 ¶ | |||
DOTS client is not authorized to manage. | DOTS client is not authorized to manage. | |||
Likewise, DOTS servers MUST refuse to allow creation, modification | Likewise, DOTS servers MUST refuse to allow creation, modification | |||
or deletion of scope aliases and black-/white-lists when the DOTS | or deletion of scope aliases and black-/white-lists when the DOTS | |||
client is unauthorized. | client is unauthorized. | |||
The modes of authorization are implementation-specific. | The modes of authorization are implementation-specific. | |||
2.5. Data Model Requirements | 2.5. Data Model Requirements | |||
The value of DOTS is in standardizing a mechanism to permit elements, | A well-structured DOTS data model is critical to the development of | |||
networks or domains under threat of DDoS attack to request aid | successful DOTS protocols. | |||
mitigating the effects of any such attack. A well-structured DOTS | ||||
data model is therefore critical to the development of successful | ||||
DOTS protocols. | ||||
DM-001: Structure: The data model structure for the DOTS protocol | DM-001: Structure: The data model structure for the DOTS protocol | |||
may be described by a single module, or be divided into related | MAY be described by a single module, or be divided into related | |||
collections of hierarchical modules and sub-modules. If the data | collections of hierarchical modules and sub-modules. If the data | |||
model structure is split across modules, those distinct modules | model structure is split across modules, those distinct modules | |||
MUST allow references to describe the overall data model's | MUST allow references to describe the overall data model's | |||
structural dependencies. | structural dependencies. | |||
DM-002: Versioning: To ensure interoperability between DOTS protocol | DM-002: Versioning: To ensure interoperability between DOTS protocol | |||
implementations, data models MUST be versioned. How the protocols | implementations, data models MUST be versioned. How the protocols | |||
represent data model versions is not defined in this document. | represent data model versions is not defined in this document. | |||
DM-003: Mitigation Status Representation: The data model MUST | DM-003: Mitigation Status Representation: The data model MUST | |||
skipping to change at page 16, line 42 ¶ | skipping to change at page 16, line 7 ¶ | |||
3.2. Data Channel | 3.2. Data Channel | |||
As specified in DATA-001, the data channel requires reliable, in- | As specified in DATA-001, the data channel requires reliable, in- | |||
order message delivery. Data channel implementations using TCP may | order message delivery. Data channel implementations using TCP may | |||
rely on the TCP implementation's built-in congestion control | rely on the TCP implementation's built-in congestion control | |||
mechanisms. | mechanisms. | |||
4. Security Considerations | 4. Security Considerations | |||
DOTS is at risk from three primary attacks: | This document informs future protocols under development, and so does | |||
not have its security considerations of its own. However, naive DOTS | ||||
deployment potentially exposes networks to new attack vectors. The | ||||
three primary attack vectors are DOTS agent impersonation, traffic | ||||
injection, and signal blocking. | ||||
o DOTS agent impersonation | Impersonation of either DOTS server or DOTS client could have | |||
catastrophic impact on operations in either domain. Should an | ||||
attacker develop the ability to impersonate a DOTS client, that | ||||
attacker can affect policy on the network path to the DOTS client's | ||||
domain, up to and including instantiation of blacklists blocking all | ||||
inbound traffic to networks for which the DOTS client is authorized | ||||
to request mitigation. Similarly, an impersonated DOTS server may be | ||||
able to act as a sort of malicious DOTS gateway, intercepting | ||||
requests from the downstream DOTS client, modifying them to inflict | ||||
the desired impact on traffic to or from the DOTS client's domain. | ||||
Among other things, this malicious DOTS gateway might receive | ||||
mitigation requests from the DOTS client, and simply discard them, | ||||
ensuring no mitigation is ever applied. | ||||
o Traffic injection | Traffic injection into a naive DOTS deployment could allow an | |||
attacker to affect DOTS operations selectively. Rather than | ||||
impersonating a DOTS agent directly, the attacker crafts DOTS signal | ||||
or data channel messages in such a way that the targeted DOTS agent | ||||
treats them as if they originated with a legitimate DOTS agent, for | ||||
example, by spoofing the sender's IP address. As with agent | ||||
impersonation, the attacker capable of injecting traffic can affect | ||||
the network path to addresses for which the DOTS client is authorized | ||||
to request mitigation. | ||||
o Signaling blocking | Blocking communication between DOTS agents-signal blocking-has the | |||
potential to disrupt the core function of DOTS, which is to request | ||||
mitigation of active or expected DDoS attacks. The DOTS signal | ||||
channel is expected to operate over congested inbound links, and, as | ||||
described in Section 2.2, the signal channel protocol must be | ||||
designed for minimal data transfer to reduce the incidence of signal | ||||
blocking. | ||||
The DOTS protocol MUST be designed for minimal data transfer to | As detailed in Section 2.4, DOTS implementations require mutual | |||
address the blocking risk. Impersonation and traffic injection | authentication of DOTS agents in order to make agent impersonation | |||
mitigation can be managed through current secure communications best | and traffic injection more difficult. However, impersonation or | |||
practices. See Section 2.4 above for a detailed discussion. | traffic injection may still be possible as a result of credential | |||
theft, implementation flaws, or compromise of DOTS agents. Operators | ||||
should take steps to reduce attack surfaces through current secure | ||||
network communications best practices. | ||||
5. Contributors | 5. Contributors | |||
Mohamed Boucadair | Mohamed Boucadair | |||
Orange | Orange | |||
mohamed.boucadair@orange.com | mohamed.boucadair@orange.com | |||
Flemming Andreasen | Flemming Andreasen | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
skipping to change at page 18, line 33 ¶ | skipping to change at page 18, line 28 ¶ | |||
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | |||
Architecture", RFC 4291, DOI 10.17487/RFC4291, February | Architecture", RFC 4291, DOI 10.17487/RFC4291, February | |||
2006, <https://www.rfc-editor.org/info/rfc4291>. | 2006, <https://www.rfc-editor.org/info/rfc4291>. | |||
[RFC4632] Fuller, V. and T. Li, "Classless Inter-domain Routing | [RFC4632] Fuller, V. and T. Li, "Classless Inter-domain Routing | |||
(CIDR): The Internet Address Assignment and Aggregation | (CIDR): The Internet Address Assignment and Aggregation | |||
Plan", BCP 122, RFC 4632, DOI 10.17487/RFC4632, August | Plan", BCP 122, RFC 4632, DOI 10.17487/RFC4632, August | |||
2006, <https://www.rfc-editor.org/info/rfc4632>. | 2006, <https://www.rfc-editor.org/info/rfc4632>. | |||
[RFC4787] Audet, F., Ed. and C. Jennings, "Network Address | ||||
Translation (NAT) Behavioral Requirements for Unicast | ||||
UDP", BCP 127, RFC 4787, DOI 10.17487/RFC4787, January | ||||
2007, <https://www.rfc-editor.org/info/rfc4787>. | ||||
[RFC4821] Mathis, M. and J. Heffner, "Packetization Layer Path MTU | [RFC4821] Mathis, M. and J. Heffner, "Packetization Layer Path MTU | |||
Discovery", RFC 4821, DOI 10.17487/RFC4821, March 2007, | Discovery", RFC 4821, DOI 10.17487/RFC4821, March 2007, | |||
<https://www.rfc-editor.org/info/rfc4821>. | <https://www.rfc-editor.org/info/rfc4821>. | |||
[RFC5405] Eggert, L. and G. Fairhurst, "Unicast UDP Usage Guidelines | [RFC5405] Eggert, L. and G. Fairhurst, "Unicast UDP Usage Guidelines | |||
for Application Designers", RFC 5405, | for Application Designers", RFC 5405, | |||
DOI 10.17487/RFC5405, November 2008, | DOI 10.17487/RFC5405, November 2008, | |||
<https://www.rfc-editor.org/info/rfc5405>. | <https://www.rfc-editor.org/info/rfc5405>. | |||
[RFC6888] Perreault, S., Ed., Yamagata, I., Miyakawa, S., Nakagawa, | ||||
A., and H. Ashida, "Common Requirements for Carrier-Grade | ||||
NATs (CGNs)", BCP 127, RFC 6888, DOI 10.17487/RFC6888, | ||||
April 2013, <https://www.rfc-editor.org/info/rfc6888>. | ||||
[RFC7857] Penno, R., Perreault, S., Boucadair, M., Ed., Sivakumar, | ||||
S., and K. Naito, "Updates to Network Address Translation | ||||
(NAT) Behavioral Requirements", BCP 127, RFC 7857, | ||||
DOI 10.17487/RFC7857, April 2016, | ||||
<https://www.rfc-editor.org/info/rfc7857>. | ||||
[RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage | [RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage | |||
Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085, | Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085, | |||
March 2017, <https://www.rfc-editor.org/info/rfc8085>. | March 2017, <https://www.rfc-editor.org/info/rfc8085>. | |||
[RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6 | [RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6 | |||
Address Text Representation", RFC 5952, | Address Text Representation", RFC 5952, | |||
DOI 10.17487/RFC5952, August 2010, | DOI 10.17487/RFC5952, August 2010, | |||
<https://www.rfc-editor.org/info/rfc5952>. | <https://www.rfc-editor.org/info/rfc5952>. | |||
7.2. Informative References | 7.2. Informative References | |||
End of changes. 55 change blocks. | ||||
199 lines changed or deleted | 217 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |