draft-ietf-lisp-threats-11.txt | draft-ietf-lisp-threats-12.txt | |||
---|---|---|---|---|
Network Working Group D. Saucez | Network Working Group D. Saucez | |||
Internet-Draft INRIA | Internet-Draft INRIA | |||
Intended status: Informational L. Iannone | Intended status: Informational L. Iannone | |||
Expires: July 3, 2015 Telecom ParisTech | Expires: September 6, 2015 Telecom ParisTech | |||
O. Bonaventure | O. Bonaventure | |||
Universite catholique de Louvain | Universite catholique de Louvain | |||
December 30, 2014 | March 5, 2015 | |||
LISP Threats Analysis | LISP Threats Analysis | |||
draft-ietf-lisp-threats-11.txt | draft-ietf-lisp-threats-12.txt | |||
Abstract | Abstract | |||
This document proposes a threat analysis of the Locator/Identifier | This document proposes a threat analysis of the Locator/Identifier | |||
Separation Protocol (LISP). | Separation Protocol (LISP). | |||
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. | |||
skipping to change at page 1, line 34 | skipping to change at page 1, line 34 | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 3, 2015. | This Internet-Draft will expire on September 6, 2015. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2015 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
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 | |||
2. Threat model . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Threat model . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.1. Attacker's Operation Modes . . . . . . . . . . . . . . . 3 | 2.1. Attacker's Operation Modes . . . . . . . . . . . . . . . 4 | |||
2.1.1. On-path vs. Off-path Attackers . . . . . . . . . . . 4 | 2.1.1. On-path vs. Off-path Attackers . . . . . . . . . . . 4 | |||
2.1.2. Internal vs. External Attackers . . . . . . . . . . . 4 | 2.1.2. Internal vs. External Attackers . . . . . . . . . . . 4 | |||
2.1.3. Live vs. Time-shifted attackers . . . . . . . . . . . 4 | 2.1.3. Live vs. Time-shifted attackers . . . . . . . . . . . 4 | |||
2.1.4. Control-plane vs. Data-plane attackers . . . . . . . 4 | 2.1.4. Control-plane vs. Data-plane attackers . . . . . . . 5 | |||
2.1.5. Cross mode attackers . . . . . . . . . . . . . . . . 5 | 2.1.5. Cross mode attackers . . . . . . . . . . . . . . . . 5 | |||
2.2. Threat categories . . . . . . . . . . . . . . . . . . . . 5 | 2.2. Threat categories . . . . . . . . . . . . . . . . . . . . 5 | |||
2.2.1. Replay attack . . . . . . . . . . . . . . . . . . . . 5 | 2.2.1. Replay attack . . . . . . . . . . . . . . . . . . . . 5 | |||
2.2.2. Packet manipulation . . . . . . . . . . . . . . . . . 5 | 2.2.2. Packet manipulation . . . . . . . . . . . . . . . . . 5 | |||
2.2.3. Packet interception and suppression . . . . . . . . . 5 | 2.2.3. Packet interception and suppression . . . . . . . . . 6 | |||
2.2.4. Spoofing . . . . . . . . . . . . . . . . . . . . . . 5 | 2.2.4. Spoofing . . . . . . . . . . . . . . . . . . . . . . 6 | |||
2.2.5. Rogue attack . . . . . . . . . . . . . . . . . . . . 6 | 2.2.5. Rogue attack . . . . . . . . . . . . . . . . . . . . 7 | |||
2.2.6. Denial of Service (DoS) attack . . . . . . . . . . . 6 | 2.2.6. Denial of Service (DoS) attack . . . . . . . . . . . 7 | |||
2.2.7. Performance attack . . . . . . . . . . . . . . . . . 7 | 2.2.7. Performance attack . . . . . . . . . . . . . . . . . 7 | |||
2.2.8. Intrusion attack . . . . . . . . . . . . . . . . . . 7 | 2.2.8. Intrusion attack . . . . . . . . . . . . . . . . . . 7 | |||
2.2.9. Amplification attack . . . . . . . . . . . . . . . . 7 | 2.2.9. Amplification attack . . . . . . . . . . . . . . . . 7 | |||
2.2.10. Multi-category attacks . . . . . . . . . . . . . . . 7 | 2.2.10. Multi-category attacks . . . . . . . . . . . . . . . 7 | |||
3. Attack vectors . . . . . . . . . . . . . . . . . . . . . . . 7 | 3. Attack vectors . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
3.1. Gleaning . . . . . . . . . . . . . . . . . . . . . . . . 7 | 3.1. Gleaning . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.2. Locator Status Bits . . . . . . . . . . . . . . . . . . . 9 | 3.2. Locator Status Bits . . . . . . . . . . . . . . . . . . . 9 | |||
3.3. Map-Version . . . . . . . . . . . . . . . . . . . . . . . 9 | 3.3. Map-Version . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
3.4. Echo-Nonce . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.4. Routing Locator Reachability . . . . . . . . . . . . . . 11 | |||
3.5. Instance ID . . . . . . . . . . . . . . . . . . . . . . . 11 | 3.5. Instance ID . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
3.6. Interworking . . . . . . . . . . . . . . . . . . . . . . 11 | 3.6. Interworking . . . . . . . . . . . . . . . . . . . . . . 12 | |||
3.7. Map-Request messages . . . . . . . . . . . . . . . . . . 12 | 3.7. Map-Request messages . . . . . . . . . . . . . . . . . . 12 | |||
3.8. Map-Reply messages . . . . . . . . . . . . . . . . . . . 12 | 3.8. Map-Reply messages . . . . . . . . . . . . . . . . . . . 13 | |||
3.9. Map-Register messages . . . . . . . . . . . . . . . . . . 14 | 3.9. Map-Register messages . . . . . . . . . . . . . . . . . . 14 | |||
3.10. Map-Notify messages . . . . . . . . . . . . . . . . . . . 14 | 3.10. Map-Notify messages . . . . . . . . . . . . . . . . . . . 15 | |||
4. Note on Privacy . . . . . . . . . . . . . . . . . . . . . . . 14 | 4. Note on Privacy . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 5. Threats Mitigation . . . . . . . . . . . . . . . . . . . . . 15 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 16 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
Appendix A. Document Change Log . . . . . . . . . . . . . . . . 17 | 9.2. Informative References . . . . . . . . . . . . . . . . . 17 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | Appendix A. Document Change Log . . . . . . . . . . . . . . . . 18 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | ||||
1. Introduction | 1. Introduction | |||
The Locator/ID Separation Protocol (LISP) is specified in [RFC6830]. | The Locator/ID Separation Protocol (LISP) is specified in [RFC6830]. | |||
The present document assess the potential security threats identified | The present document assess the potential security threats identified | |||
in the LISP specifications if LISP is deployed in the Internet (i.e., | in the LISP specifications if LISP is deployed in the Internet (i.e., | |||
a public non-trustable environment). | a public non-trustable environment). | |||
The document is composed of three main parts: the first defines the | The document is composed of three main parts: the first defines the | |||
general threat model that attackers can follow to mount attacks. The | general threat model that attackers can follow to mount attacks. The | |||
second describing the techniques based on the LISP protocol and | second describes the techniques based on the LISP protocol and | |||
architecture that attackers can use to construct attacks. The third | architecture that attackers can use to construct attacks. The third | |||
discussing mitigation techniques and general solutions to protect the | discusses mitigation techniques and general solutions to protect the | |||
LISP protocol and architecture from attacks. | LISP protocol and architecture from attacks. | |||
This document does not consider all the possible uses of LISP as | This document does not consider all the possible uses of LISP as | |||
discussed in [RFC6830] and [RFC7215]. The document focuses on LISP | discussed in [RFC6830] and [RFC7215]. The document focuses on LISP | |||
unicast, including as well LISP Interworking [RFC6832], LISP-MS | unicast, including as well LISP Interworking [RFC6832], LISP-MS | |||
[RFC6833], and LISP Map-Versioning [RFC6834]. The reading of these | [RFC6833], and LISP Map-Versioning [RFC6834]. The reading of these | |||
documents is a prerequisite for understanding the present document. | documents is a prerequisite for understanding the present document. | |||
This document assumes a generic IP service and does not discuss the | This document assumes a generic IP service and does not discuss the | |||
difference, from a security viewpoint, between using IPv4 or IPv6. | difference, from a security viewpoint, between using IPv4 or IPv6. | |||
skipping to change at page 4, line 19 | skipping to change at page 4, line 24 | |||
entities. On-path attackers are located either directly on the | entities. On-path attackers are located either directly on the | |||
normal communication path (either by gaining access to a node on the | normal communication path (either by gaining access to a node on the | |||
path or by placing themselves directly on the path) or outside the | path or by placing themselves directly on the path) or outside the | |||
location path but manage to deviate (or gain a copy of) packets sent | location path but manage to deviate (or gain a copy of) packets sent | |||
between the communication entities. On-path attackers hence mount | between the communication entities. On-path attackers hence mount | |||
their attacks by modifying packets initially sent legitimately | their attacks by modifying packets initially sent legitimately | |||
between communication entities. | between communication entities. | |||
An attacker is called off-path attacker if it does not have access to | An attacker is called off-path attacker if it does not have access to | |||
packets exchanged during the communication or if there is no | packets exchanged during the communication or if there is no | |||
communication. To succeed their attacks, off-path attackers must | communication. In order for their attacks to succeed, off-path | |||
hence generate packets and inject them in the network. | attackers must hence generate packets and inject them in the network. | |||
2.1.2. Internal vs. External Attackers | 2.1.2. Internal vs. External Attackers | |||
An internal attacker launches its attack from a node located within a | An internal attacker launches its attack from a node located within a | |||
legitimate LISP site. Such an attacker is either a legitimate node | legitimate LISP site. Such an attacker is either a legitimate node | |||
of the site or it exploits a vulnerability to gain access to a | of the site or it exploits a vulnerability to gain access to a | |||
legitimate node in the site. Because of their location, internal | legitimate node in the site. Because of their location, internal | |||
attackers are trusted by the site they are in. | attackers are trusted by the site they are in. | |||
On the contrary, an external attacker launches its attacks from the | On the contrary, an external attacker launches its attacks from the | |||
skipping to change at page 7, line 24 | skipping to change at page 7, line 35 | |||
(e.g., a host, a router, or a network) or information that it | (e.g., a host, a router, or a network) or information that it | |||
normally doesn't have access to. Intrusion attacks can lead to | normally doesn't have access to. Intrusion attacks can lead to | |||
privacy leakages. | privacy leakages. | |||
2.2.9. Amplification attack | 2.2.9. Amplification attack | |||
In an amplification attack, the traffic generated by the target of | In an amplification attack, the traffic generated by the target of | |||
the attack in response to the attack is larger than the traffic that | the attack in response to the attack is larger than the traffic that | |||
the attacker must generate. | the attacker must generate. | |||
In some cases, the data-plane can be several order of magnitude | ||||
faster than the control-plane at processing packets. This difference | ||||
can be exploited to overload the control-plane via the data-plane | ||||
without overloading the data-plane. | ||||
2.2.10. Multi-category attacks | 2.2.10. Multi-category attacks | |||
Attacks categories are not mutually exclusive and any combination can | Attacks categories are not mutually exclusive and any combination can | |||
be used to perform specific attacks. | be used to perform specific attacks. | |||
For example, one can mount a rogue attack to perform a performance | For example, one can mount a rogue attack to perform a performance | |||
attack starving the memory of an ITR resulting in a DoS on the ITR. | attack starving the memory of an ITR resulting in a DoS on the ITR. | |||
3. Attack vectors | 3. Attack vectors | |||
This section presents techniques that can be used by attackers to | This section presents techniques that can be used by attackers in | |||
succeed attacks leveraging the LISP protocol and/or architecture. | order to succeed attacks leveraging the LISP protocol and/or | |||
architecture. | ||||
3.1. Gleaning | 3.1. Gleaning | |||
To reduce the time required to obtain a mapping, the optional | To reduce the time required to obtain a mapping, the optional | |||
gleaning mechanism allows an xTR to directly learn a mapping from the | gleaning mechanism allows an xTR to directly learn a mapping from the | |||
LISP data encapsulated packets and the Map-Request packets that it | LISP data encapsulated packets and the Map-Request packets that it | |||
receives. LISP encapsulated data packets contain a source RLOC, | receives. LISP encapsulated data packets contain a source RLOC, | |||
destination RLOC, source EID and destination EID. When an xTR | destination RLOC, source EID and destination EID. When an xTR | |||
receives an encapsulated data packet coming from a source EID for | receives an encapsulated data packet coming from a source EID for | |||
which it does not already know a mapping, it may insert the mapping | which it does not already know a mapping, it may insert the mapping | |||
skipping to change at page 8, line 13 | skipping to change at page 8, line 29 | |||
EID from the mapping system. | EID from the mapping system. | |||
If a packet injected by an off-path attacker and with a spoofed inner | If a packet injected by an off-path attacker and with a spoofed inner | |||
address is gleaned by an xTR then the attacker may divert the traffic | address is gleaned by an xTR then the attacker may divert the traffic | |||
meant to be delivered to the spoofed EID as long as the gleaned entry | meant to be delivered to the spoofed EID as long as the gleaned entry | |||
is used by the xTR. This attack can be used as part of replay, | is used by the xTR. This attack can be used as part of replay, | |||
packet manipulation, packet interception and suppression, or DoS | packet manipulation, packet interception and suppression, or DoS | |||
attacks as the packets are sent to the attacker. | attacks as the packets are sent to the attacker. | |||
If the packet sent by the attacker contains a spoofed outer address | If the packet sent by the attacker contains a spoofed outer address | |||
instead of a spoofed inner address then it can succeed a DoS or a | instead of a spoofed inner address then it can achieve a DoS or a | |||
performance attack as the traffic normally destined to the attacker | performance attack as the traffic normally destined to the attacker | |||
will be redirected to the spoofed source RLOC. Such traffic may | will be redirected to the spoofed source RLOC. Such traffic may | |||
overload the owner of the spoofed source RLOC, preventing it from | overload the owner of the spoofed source RLOC, preventing it from | |||
operating properly. | operating properly. | |||
If the packet injected uses both inner and outer spoofing, the | If the packet injected uses both inner and outer spoofing, the | |||
attacker can succeed a spoofing, a performance, or an amplification | attacker can achieve a spoofing, a performance, or an amplification | |||
attack as traffic normally destined to the spoofed EID address will | attack as traffic normally destined to the spoofed EID address will | |||
be sent to the spoofed RLOC address. If the attacked LISP site also | be sent to the spoofed RLOC address. If the attacked LISP site also | |||
generates traffic to the spoofed EID address, such traffic may have a | generates traffic to the spoofed EID address, such traffic may have a | |||
positive amplification factor. | positive amplification factor. | |||
A gleaning attack does not only impact the data-plane but can also | A gleaning attack does not only impact the data-plane but can also | |||
have repercussions on the control-plane as a Map-Request is sent | have repercussions on the control-plane as a Map-Request is sent | |||
after the creation of a gleaned entry. The attacker can then succeed | after the creation of a gleaned entry. The attacker can then achieve | |||
DoS and performance attacks on the control-plane. For example, if an | DoS and performance attacks on the control-plane. For example, if an | |||
attacker sends a packet for each address of a prefix not yet cached | attacker sends a packet for each address of a prefix not yet cached | |||
in the EID-to-RLOC cache of an xTR, the xTR will potentially send a | in the EID-to-RLOC cache of an xTR, the xTR will potentially send a | |||
Map-Request for each such packet until the mapping is installed which | Map-Request for each such packet until the mapping is installed which | |||
leads to an over-utilisation of the control-plane as each packet | leads to an over-utilisation of the control-plane as each packet | |||
generates a control-plane event. For succeeding this example, the | generates a control-plane event. In order for this attack to | |||
attacker may not need to use spoofing. | succeed, the attacker may not need to use spoofing. This issue can | |||
occur even if gleaning is turned off since whether or not gleaning is | ||||
used the ITR may need to send a Map-Request in response to incoming | ||||
packets whose EID is not currently in the cache. | ||||
Gleaning attacks are fundamentally involving a time-shifted mode of | Gleaning attacks are fundamentally involving a time-shifted mode of | |||
operation as the attack may last as long as the gleaned entry is kept | operation as the attack may last as long as the gleaned entry is kept | |||
by the targeted xTR. RFC 6830 [RFC6830] recommends to store the | by the targeted xTR. RFC 6830 [RFC6830] recommends to store the | |||
gleaned entries for only a few seconds which limits the duration of | gleaned entries for only a few seconds which limits the duration of | |||
the attack. | the attack. | |||
Gleaning attacks always involve external data-plane attackers but | Gleaning attacks always involve external data-plane attackers but | |||
results in attacks on either the control-plane or data-plane. | results in attacks on either the control-plane or data-plane. | |||
skipping to change at page 9, line 24 | skipping to change at page 9, line 38 | |||
When an attacker sends a LISP encapsulated packet with a crafted LSB | When an attacker sends a LISP encapsulated packet with a crafted LSB | |||
to an xTR, it can influence the xTR's choice of the locators for the | to an xTR, it can influence the xTR's choice of the locators for the | |||
prefix associated to the source EID. In case of an off-path | prefix associated to the source EID. In case of an off-path | |||
attacker, the attacker must inject a forged packet in the network | attacker, the attacker must inject a forged packet in the network | |||
with a spoofed inner address. An on-path attacker can manipulate the | with a spoofed inner address. An on-path attacker can manipulate the | |||
LSB of legitimate packets passing through it and hence does not need | LSB of legitimate packets passing through it and hence does not need | |||
to use spoofing. Instead of manipulating the LSB field, an on-path | to use spoofing. Instead of manipulating the LSB field, an on-path | |||
attacker can also obtain the same result of injecting packets with | attacker can also obtain the same result of injecting packets with | |||
invalid LSB values by replaying packets. | invalid LSB values by replaying packets. | |||
The LSB field can be leveraged to succeed a DoS attack by either | The LSB field can be leveraged to mount a DoS attack by either | |||
declaring all RLOCs as unreachable (all LSB set to 0), or by | declaring all RLOCs as unreachable (all LSB set to 0), or by | |||
concentrating all the traffic to one RLOC (e.g., all but one LSB set | concentrating all the traffic to one RLOC (e.g., all but one LSB set | |||
to 0) and hence overloading the RLOC concentrating all the traffic | to 0) and hence overloading the RLOC concentrating all the traffic | |||
from the xTR, or by forcing packets to be sent to RLOCs that are | from the xTR, or by forcing packets to be sent to RLOCs that are | |||
actually not reachable (e.g., invert LSB values). | actually not reachable (e.g., invert LSB values). | |||
The LSB field can also be used to mount a replay, a packet | The LSB field can also be used to mount a replay, a packet | |||
manipulation, or a packet interception and suppression attack. | manipulation, or a packet interception and suppression attack. | |||
Indeed, if the attacker manages to be on the path between the xTR and | Indeed, if the attacker manages to be on the path between the xTR and | |||
one of the RLOCs specified in the mapping, forcing packets to go via | one of the RLOCs specified in the mapping, forcing packets to go via | |||
skipping to change at page 10, line 20 | skipping to change at page 10, line 37 | |||
Map-Version found in the header of the packet. If the stored | Map-Version found in the header of the packet. If the stored | |||
mapping is older (i.e., the Map-Version is smaller) than the | mapping is older (i.e., the Map-Version is smaller) than the | |||
source version of the LISP encapsulated packet, the xTR should | source version of the LISP encapsulated packet, the xTR should | |||
send a Map-Request for the source EID. | send a Map-Request for the source EID. | |||
A cross-mode attacker can use the Map-Version bit to mount a DoS | A cross-mode attacker can use the Map-Version bit to mount a DoS | |||
attack, an amplification attack, or a spoofing attack. For instance | attack, an amplification attack, or a spoofing attack. For instance | |||
if the mapping cached at the xTR is outdated, the xTR will send a | if the mapping cached at the xTR is outdated, the xTR will send a | |||
Map-Request to retrieve the new mapping which can yield to a DoS | Map-Request to retrieve the new mapping which can yield to a DoS | |||
attack (by excess of signalling traffic) or an amplification attack | attack (by excess of signalling traffic) or an amplification attack | |||
if the data-plane packet sent by the attacker is smaller than the | if the data-plane packet sent by the attacker is smaller, or | |||
control-plane packets sent in response to the attacker's packet. | otherwise uses fewer resources, than the control-plane packets sent | |||
With a spoofing attack and if the xTR considers that the spoofed ITR | in response to the attacker's packet. With a spoofing attack and if | |||
has an outdated mapping, it will send an SMR to the spoofed ITR which | the xTR considers that the spoofed ITR has an outdated mapping, it | |||
can result in performance, amplification, or DoS attack as well. | will send an SMR to the spoofed ITR which can result in performance, | |||
amplification, or DoS attack as well. | ||||
Map-Version attackers are inherently cross mode as the Map-Version is | Map-Version attackers are inherently cross mode as the Map-Version is | |||
a method to put control information in the data-plane. Moreover, | a method to put control information in the data-plane. Moreover, | |||
this vector involves live attackers. Nevertheless, on-path attackers | this vector involves live attackers. Nevertheless, on-path attackers | |||
do not take specific advantage over off-path attackers. | do not take specific advantage over off-path attackers. | |||
3.4. Echo-Nonce | 3.4. Routing Locator Reachability | |||
The Nonce-Present and Echo-Nonce bits in the LISP header are used to | The Nonce-Present and Echo-Nonce bits in the LISP header are used to | |||
verify the reachability of an xTR. A testing xTR sets the Echo-Nonce | verify the reachability of an xTR. A testing xTR sets the Echo-Nonce | |||
and the Nonce-Present bits in LISP data encapsulated packets and | and the Nonce-Present bits in LISP data encapsulated packets and | |||
include a random nonce in the LISP header of packets. Upon reception | include a random nonce in the LISP header of packets. Upon reception | |||
of these packets, the tested xTR stores the nonce and echo it | of these packets, the tested xTR stores the nonce and echo it | |||
whenever it returns a LISP encapsulated data packets to the testing | whenever it returns a LISP encapsulated data packets to the testing | |||
xTR. The reception of the echoed nonce confirms that the tested xTR | xTR. The reception of the echoed nonce confirms that the tested xTR | |||
is reachable. | is reachable. | |||
skipping to change at page 11, line 25 | skipping to change at page 11, line 47 | |||
receives such packets will continuously change the nonce that it | receives such packets will continuously change the nonce that it | |||
returns to the remote ITR, which can yield to a performance attack. | returns to the remote ITR, which can yield to a performance attack. | |||
If the remote ITR tries a nonce-reachability test, this test may fail | If the remote ITR tries a nonce-reachability test, this test may fail | |||
because the ETR may echo an invalid nonce. This hence yields to a | because the ETR may echo an invalid nonce. This hence yields to a | |||
DoS attack. | DoS attack. | |||
In the case of an on-path attacker, a packet manipulation attack is | In the case of an on-path attacker, a packet manipulation attack is | |||
necessary to mount the attack. To mount such an attack, an off-path | necessary to mount the attack. To mount such an attack, an off-path | |||
attacker must mount an outer address spoofing attack. | attacker must mount an outer address spoofing attack. | |||
If an xTR chooses to periodically check with active probes the | ||||
liveness of entries in its EID-to-RLOC cache (as described in section | ||||
6.3 of [RFC6830]), then this may amplify the attack that caused the | ||||
insertion of entries being checked. | ||||
3.5. Instance ID | 3.5. Instance ID | |||
LISP allows to carry in its header a 24-bits value called Instance ID | LISP allows to carry in its header a 24-bits value called Instance ID | |||
and used on the ITR to indicate which local Instance ID has been used | and used on the ITR to indicate which local Instance ID has been used | |||
for encapsulation, while on the ETR the instance ID decides the | for encapsulation, while on the ETR the instance ID decides the | |||
forwarding table to use to forward the decapsulated packet in the | forwarding table to use to forward the decapsulated packet in the | |||
LISP site. | LISP site. | |||
An attacker (either a control-plane or data-plane attacker) can use | An attacker (either a control-plane or data-plane attacker) can use | |||
the instance ID functionality to mount an intrusion attack. | the instance ID functionality to mount an intrusion attack. | |||
skipping to change at page 12, line 36 | skipping to change at page 13, line 13 | |||
messages. When an xTR receives a Map-Request with appended Map- | messages. When an xTR receives a Map-Request with appended Map- | |||
Records, it does the same operations as for the other Map-Request | Records, it does the same operations as for the other Map-Request | |||
messages and is so subject to the same attacks. However, it also | messages and is so subject to the same attacks. However, it also | |||
installs in its EID-to-RLOC cache the Map-Records contained in the | installs in its EID-to-RLOC cache the Map-Records contained in the | |||
Map-Request. An attacker can then use this vector to force the | Map-Request. An attacker can then use this vector to force the | |||
installation of mappings in its target xTR. Consequently, the EID- | installation of mappings in its target xTR. Consequently, the EID- | |||
to-RLOC cache of the xTR is polluted by potentially forged mappings | to-RLOC cache of the xTR is polluted by potentially forged mappings | |||
allowing the attacker to mount any of the attacks categorized in | allowing the attacker to mount any of the attacks categorized in | |||
Section 2.2 (see Section 3.8 for more details). It is worth to | Section 2.2 (see Section 3.8 for more details). It is worth to | |||
mention that the attacker does not need to forge the mappings present | mention that the attacker does not need to forge the mappings present | |||
in the Map-Request to succeed a performance or DoS attack. Indeed, | in the Map-Request to achieve a performance or DoS attack. Indeed, | |||
if the attacker owns a large enough EID prefix it can de-aggregate it | if the attacker owns a large enough EID prefix it can de-aggregate it | |||
in many small prefixes, each corresponding to another mapping and it | in many small prefixes, each corresponding to another mapping and it | |||
installs them in the xTR cache by mean of the Map-Request. | installs them in the xTR cache by mean of the Map-Request. | |||
Moreover, attackers can use Map Resolver and/or Map Server network | Moreover, attackers can use Map Resolver and/or Map Server network | |||
elements to relay its attacks and hide the origin of the attack. | elements to relay its attacks and hide the origin of the attack. | |||
Indeed, on the one hand, a Map Resolver is used to dispatch Map- | Indeed, on the one hand, a Map Resolver is used to dispatch Map- | |||
Request to the mapping system and, on the other hand, a Map Server is | Request to the mapping system and, on the other hand, a Map Server is | |||
used to dispatch Map-Requests coming from the mapping system to ETRs | used to dispatch Map-Requests coming from the mapping system to ETRs | |||
that are authoritative for the EID in the Map-Request. | that are authoritative for the EID in the Map-Request. | |||
3.8. Map-Reply messages | 3.8. Map-Reply messages | |||
Most of the security of the Map-Reply messages depends on the 64 bits | Most of the security of the Map-Reply messages depends on the 64 bits | |||
nonce that is included in a Map-Request and returned in the Map- | nonce that is included in a Map-Request and returned in the Map- | |||
Reply. If an ETR does not accept Map-Reply messages with an invalid | Reply. If an ETR does not accept Map-Reply messages with an invalid | |||
nonce, the risk of attack is limited given the size of the nonce (64 | nonce, the risk of an off-path attack is limited given the size of | |||
bits). Nevertheless, the nonce only confirms that the Map-Reply | the nonce (64 bits). Nevertheless, the nonce only confirms that the | |||
received was sent in response to a Map-Request sent, it does not | Map-Reply received was sent in response to a Map-Request sent, it | |||
validate the contents of that Map-Reply. | does not validate the contents of that Map-Reply. | |||
If an attacker manages to send a valid (i.e., in response to a Map- | If an attacker manages to send a valid (i.e., in response to a Map- | |||
Request and with the correct nonce) Map-Reply to an ITR, then it can | Request and with the correct nonce) Map-Reply to an ITR, then it can | |||
perform any of the attack categorised in Section 2.2 as it can inject | perform any of the attack categorised in Section 2.2 as it can inject | |||
forged mappings directly in the ITR EID-to-RLOC cache. For instance, | forged mappings directly in the ITR EID-to-RLOC cache. For instance, | |||
if the mapping injected to the ITR points to the address of a node | if the mapping injected to the ITR points to the address of a node | |||
controlled by the attacker, it can mount replay, packet manipulation, | controlled by the attacker, it can mount replay, packet manipulation, | |||
packet interception and suppression, or DoS attacks as it will | packet interception and suppression, or DoS attacks as it will | |||
receive every packet destined to a destination lying in the EID | receive every packet destined to a destination lying in the EID | |||
prefix of the injected mapping. In addition, the attacker can inject | prefix of the injected mapping. In addition, the attacker can inject | |||
skipping to change at page 13, line 47 | skipping to change at page 14, line 25 | |||
force its target ITR to send a Map-Request, nothing prevents the | force its target ITR to send a Map-Request, nothing prevents the | |||
attacker to initiate some communication with the ITR. This method | attacker to initiate some communication with the ITR. This method | |||
can be used by internal attackers that want to control the mappings | can be used by internal attackers that want to control the mappings | |||
installed in their site. To that aim, they simply have to collude | installed in their site. To that aim, they simply have to collude | |||
with an external attacker ready to over-claim prefixes on behalf of | with an external attacker ready to over-claim prefixes on behalf of | |||
the internal attacker. | the internal attacker. | |||
It is worth to notice that when the Map-Reply is in response to a | It is worth to notice that when the Map-Reply is in response to a | |||
Map-Request sent via the mapping system (i.e., not send directly from | Map-Request sent via the mapping system (i.e., not send directly from | |||
the ITR to an ETR), the attacker does not need to use a spoofing | the ITR to an ETR), the attacker does not need to use a spoofing | |||
attack to succeed its attack as by design the source IP address of a | attack to achieve its attack as by design the source IP address of a | |||
Map-Reply is not known in advance by the ITR. | Map-Reply is not known in advance by the ITR. | |||
Map-Request and Map-Reply messages are exposed to any type of | Map-Request and Map-Reply messages are exposed to any type of | |||
attackers, on-path or off-path but also external or internal | attackers, on-path or off-path but also external or internal | |||
attackers. Also, even though they are control message, they can be | attackers. Also, even though they are control message, they can be | |||
leveraged by data-plane attackers. As the decision of removing | leveraged by data-plane attackers. As the decision of removing | |||
mappings is based on the TTL indicated in the mapping, time-shifted | mappings is based on the TTL indicated in the mapping, time-shifted | |||
attackers can take benefit of injecting forged mappings as well. | attackers can take benefit of injecting forged mappings as well. | |||
3.9. Map-Register messages | 3.9. Map-Register messages | |||
skipping to change at page 15, line 5 | skipping to change at page 15, line 30 | |||
4. Note on Privacy | 4. Note on Privacy | |||
As presented by [RFC6973], universal privacy considerations are | As presented by [RFC6973], universal privacy considerations are | |||
impossible to establish as the privacy definition may vary from one | impossible to establish as the privacy definition may vary from one | |||
to another. As a consequence, this document does not aim at | to another. As a consequence, this document does not aim at | |||
identifying privacy issues related to the LISP protocol but it is | identifying privacy issues related to the LISP protocol but it is | |||
necessary to highlight that security threats identified in this | necessary to highlight that security threats identified in this | |||
document could play a role in privacy threats as defined in section 5 | document could play a role in privacy threats as defined in section 5 | |||
of [RFC6973]. | of [RFC6973]. | |||
Note, however, that like public deployments of any other control | Like public deployments of any other control plane protocols, in an | |||
plane protocol, in an Internet deployment mappings are public and | Internet deployment mappings are public and hence provide information | |||
hence provide information about the infrastructure and reachability | about the infrastructure and reachability of LISP sites (i.e., the | |||
of LISP sites (i.e., the addresses of the edge routers). | addresses of the edge routers). Depending upon deployment details, | |||
LISP map replies might or might not provide finer grained and more | ||||
detailed information than is available with currently deployed | ||||
routing and control protocols. | ||||
5. IANA Considerations | 5. Threats Mitigation | |||
This document makes no request to IANA. | Most of threats can be mitigated with careful deployment and | |||
configuration (e.g., filter) and also by applying the general rules | ||||
in security that consist in activating only features that are | ||||
necessary in the deployment and verifying the validity of the | ||||
information obtained from third parties. | ||||
The control-plane is the most critical part of LISP from a security | ||||
viewpoint and it is worth to notice that the specifications already | ||||
offer authentication mechanism for mappings registration ([RFC6833]) | ||||
and this mechanism combined with LISP-SEC [I-D.ietf-lisp-sec] | ||||
strongly mitigates threats in non-trustable environments such as the | ||||
Internet. Moreover, LISP specifications define an authentication | ||||
data field for Map-Request messages and Encapsulated Control messages | ||||
without specifying how to use it [RFC6830]. The presence of this | ||||
field in the specifications allows to propose a general | ||||
authentication mechanisms for the LISP control-plane while staying | ||||
backward compatible. The exact technique still has to be designed | ||||
and defined. To maximally mitigate the threats on the mapping | ||||
system, authentication must be used, whenever possible, for both Map- | ||||
Request and Map-Reply messages and for messages exchanged internally | ||||
among elements of the mapping system, such as specified in | ||||
[I-D.ietf-lisp-sec] and [I-D.ietf-lisp-ddt]. | ||||
Systematically applying filters and rate-limitation, as proposed in | ||||
[RFC6830], mitigates most of the threats presented in this document. | ||||
In order to minimise the risk of overloading the control-plane with | ||||
actions triggered from data-plane events, such actions should be rate | ||||
limited. | ||||
Finally, all information opportunistically learned (e.g., with LSB or | ||||
gleaning) should be used with care until they are verified. For | ||||
instance, a reachability change learned with LSB should not be used | ||||
directly to decide the destination RLOC, but instead should trigger a | ||||
rate-limited reachability test. Similarly, a gleaned entry should be | ||||
used only for the flow that triggered the gleaning procedure until | ||||
the gleaned entry has been verified [Trilogy]. | ||||
6. Security Considerations | 6. Security Considerations | |||
This document is devoted to threat analysis of the Locator/Identifier | This entire document is dedicated to threat analysis and mitigation | |||
Separation Protocol and is then a piece of choice to understand the | of the Locator/Identifier Separation Protocol, aiming at helping to | |||
security risks at stake while deploying LISP in non-trustable | understand the security risks at stake, and how to mitigate them, | |||
environment. | while deploying LISP in non-trustable environments. | |||
The purpose of this document is not to provide recommendations to | 7. IANA Considerations | |||
protect against attacks, however most of threats can be prevented | ||||
with careful deployment and configuration (e.g., filter) and also by | ||||
applying the general rules in security that consist in activating | ||||
only features that are necessary in the deployment and verifying the | ||||
validity of the information obtained from third parties. More | ||||
detailed recommendations are given in [Saucez13]. | ||||
The control-plane is probably the most critical part of LISP from a | This document makes no request to IANA. | |||
security viewpoint and it is worth to notice that the specifications | ||||
already offer authentication mechanism for Map-Register messages | ||||
([RFC6833]) and that [I-D.ietf-lisp-sec] and [I-D.ietf-lisp-ddt] are | ||||
clearly going in the direction of a secure control-plane. | ||||
7. Acknowledgments | 8. Acknowledgments | |||
This document builds upon the draft of Marcelo Bagnulo | This document builds upon the draft of Marcelo Bagnulo | |||
([I-D.bagnulo-lisp-threat]), where the flooding attack and the | ([I-D.bagnulo-lisp-threat]), where the flooding attack and the | |||
reference environment were first described. | reference environment were first described. | |||
The authors would like to thank Ronald Bonica, Albert Cabellos, Ross | The authors would like to thank Ronald Bonica, Albert Cabellos, Ross | |||
Callon, Noel Chiappa, Florin Coras, Vina Ermagan, Dino Farinacci, | Callon, Noel Chiappa, Florin Coras, Vina Ermagan, Dino Farinacci, | |||
Stephen Farrell, Joel Halpern, Emily Hiltzik, Darrel Lewis, Edward | Stephen Farrell, Joel Halpern, Emily Hiltzik, Darrel Lewis, Edward | |||
Lopez, Fabio Maino, Terry Manderson, and Jeff Wheeler for their | Lopez, Fabio Maino, Terry Manderson, and Jeff Wheeler for their | |||
comments. | comments. | |||
This work has been partially supported by the INFSO-ICT-216372 | This work has been partially supported by the INFSO-ICT-216372 | |||
TRILOGY Project (www.trilogy-project.org). | TRILOGY Project (www.trilogy-project.org). | |||
The work of Luigi Iannone has been partially supported by the ANR- | The work of Luigi Iannone has been partially supported by the ANR- | |||
13-INFR-0009 LISP-Lab Project (www.lisp-lab.org) and the EIT KIC ICT- | 13-INFR-0009 LISP-Lab Project (www.lisp-lab.org) and the EIT KIC ICT- | |||
Labs SOFNETS Project. | Labs SOFNETS Project. | |||
8. References | 9. References | |||
8.1. Normative References | 9.1. Normative References | |||
[RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The | [RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The | |||
Locator/ID Separation Protocol (LISP)", RFC 6830, January | Locator/ID Separation Protocol (LISP)", RFC 6830, January | |||
2013. | 2013. | |||
[RFC6832] Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, | [RFC6832] Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, | |||
"Interworking between Locator/ID Separation Protocol | "Interworking between Locator/ID Separation Protocol | |||
(LISP) and Non-LISP Sites", RFC 6832, January 2013. | (LISP) and Non-LISP Sites", RFC 6832, January 2013. | |||
[RFC6833] Fuller, V. and D. Farinacci, "Locator/ID Separation | [RFC6833] Fuller, V. and D. Farinacci, "Locator/ID Separation | |||
skipping to change at page 16, line 30 | skipping to change at page 17, line 37 | |||
[RFC6834] Iannone, L., Saucez, D., and O. Bonaventure, "Locator/ID | [RFC6834] Iannone, L., Saucez, D., and O. Bonaventure, "Locator/ID | |||
Separation Protocol (LISP) Map-Versioning", RFC 6834, | Separation Protocol (LISP) Map-Versioning", RFC 6834, | |||
January 2013. | January 2013. | |||
[RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | [RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | |||
Morris, J., Hansen, M., and R. Smith, "Privacy | Morris, J., Hansen, M., and R. Smith, "Privacy | |||
Considerations for Internet Protocols", RFC 6973, July | Considerations for Internet Protocols", RFC 6973, July | |||
2013. | 2013. | |||
8.2. Informative References | 9.2. Informative References | |||
[I-D.bagnulo-lisp-threat] | [I-D.bagnulo-lisp-threat] | |||
Bagnulo, M., "Preliminary LISP Threat Analysis", draft- | Bagnulo, M., "Preliminary LISP Threat Analysis", draft- | |||
bagnulo-lisp-threat-01 (work in progress), July 2007. | bagnulo-lisp-threat-01 (work in progress), July 2007. | |||
[I-D.ietf-lisp-ddt] | [I-D.ietf-lisp-ddt] | |||
Fuller, V., Lewis, D., Ermagan, V., and A. Jain, "LISP | Fuller, V., Lewis, D., Ermagan, V., and A. Jain, "LISP | |||
Delegated Database Tree", draft-ietf-lisp-ddt-02 (work in | Delegated Database Tree", draft-ietf-lisp-ddt-02 (work in | |||
progress), October 2014. | progress), October 2014. | |||
[I-D.ietf-lisp-sec] | [I-D.ietf-lisp-sec] | |||
Maino, F., Ermagan, V., Cabellos-Aparicio, A., and D. | Maino, F., Ermagan, V., Cabellos-Aparicio, A., and D. | |||
Saucez, "LISP-Security (LISP-SEC)", draft-ietf-lisp-sec-07 | Saucez, "LISP-Security (LISP-SEC)", draft-ietf-lisp-sec-07 | |||
(work in progress), October 2014. | (work in progress), October 2014. | |||
[RFC7215] Jakab, L., Cabellos-Aparicio, A., Coras, F., Domingo- | [RFC7215] Jakab, L., Cabellos-Aparicio, A., Coras, F., Domingo- | |||
Pascual, J., and D. Lewis, "Locator/Identifier Separation | Pascual, J., and D. Lewis, "Locator/Identifier Separation | |||
Protocol (LISP) Network Element Deployment | Protocol (LISP) Network Element Deployment | |||
Considerations", RFC 7215, April 2014. | Considerations", RFC 7215, April 2014. | |||
[Saucez13] | [Trilogy] Saucez, D. and L. Iannone, "How to mitigate the effect of | |||
Saucez, D., Iannone, L., and O. Bonaventure, "The Map-and- | scans on mapping systems", Trilogy Future Internet Summer | |||
Encap Locator/Identifier separation paradigm: a Security | School., 2009. | |||
Analysis", Solutions for Sustaining Scalability in | ||||
Internet Growth, IGI Global, 2013. | ||||
Appendix A. Document Change Log | Appendix A. Document Change Log | |||
o Version 12 Posted March 2015. | ||||
* Addressed comments by Ross Callon on the mailing list | ||||
(http://www.ietf.org/mail-archive/web/lisp/current/ | ||||
msg05829.html). | ||||
* Addition of a section discussing mitigation techniques for | ||||
deployments in non-trustable environments. | ||||
o Version 11 Posted December 2014. | o Version 11 Posted December 2014. | |||
* Editorial polishing. Clarifications added in few points. | * Editorial polishing. Clarifications added in few points. | |||
o Version 10 Posted July 2014. | o Version 10 Posted July 2014. | |||
* Document completely remodeled according to the discussions on | * Document completely remodeled according to the discussions on | |||
the mailing list in the thread http://www.ietf.org/mail- | the mailing list in the thread http://www.ietf.org/mail- | |||
archive/web/lisp/current/msg05206.html and to address comments | archive/web/lisp/current/msg05206.html and to address comments | |||
from Ronald Bonica and Ross Callon. | from Ronald Bonica and Ross Callon. | |||
End of changes. 40 change blocks. | ||||
82 lines changed or deleted | 133 lines changed or added | |||
This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |