draft-ietf-lisp-threats-03.txt | draft-ietf-lisp-threats-04.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: April 19, 2013 Telecom ParisTech | Expires: August 29, 2013 Telecom ParisTech | |||
O. Bonaventure | O. Bonaventure | |||
Universite catholique de Louvain | Universite catholique de Louvain | |||
October 16, 2012 | February 25, 2013 | |||
LISP Threats Analysis | LISP Threats Analysis | |||
draft-ietf-lisp-threats-03.txt | draft-ietf-lisp-threats-04.txt | |||
Abstract | Abstract | |||
This document analyzes the threats against the security of the | This document analyzes the potential threats against the security of | |||
Locator/Identifier Separation Protocol (LISP) and proposes a set of | the Locator/Identifier Separation Protocol (LISP) if deployed in the | |||
recommendations to mitigate some of the identified security risks. | Internet. This document proposes a set of recommendations to | |||
mitigate the identified security risks and keep a security level | ||||
equivalent to what is observed in the Internet today (i.e., without | ||||
LISP). By following the recommendations of this draft a LISP | ||||
deployment can achieve a security level that is comparable to the | ||||
existing Internet architecture. | ||||
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 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 April 19, 2013. | This Internet-Draft will expire on August 29, 2013. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2013 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 . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Definition of Terms . . . . . . . . . . . . . . . . . . . . . 3 | 2. Definition of Terms . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. On-path Attackers . . . . . . . . . . . . . . . . . . . . . . 4 | 3. On-path Attackers . . . . . . . . . . . . . . . . . . . . . . 4 | |||
4. Off-Path Attackers: Reference Environment . . . . . . . . . . 4 | 4. Off-Path Attackers: Reference Environment . . . . . . . . . . 5 | |||
5. Data-Plane Threats . . . . . . . . . . . . . . . . . . . . . . 6 | 5. Data-Plane Threats . . . . . . . . . . . . . . . . . . . . . . 6 | |||
5.1. EID-to-RLOC Database Threats . . . . . . . . . . . . . . . 6 | 5.1. EID-to-RLOC Database Threats . . . . . . . . . . . . . . . 7 | |||
5.2. EID-to-RLOC Cache Threats . . . . . . . . . . . . . . . . 7 | 5.2. EID-to-RLOC Cache Threats . . . . . . . . . . . . . . . . 7 | |||
5.2.1. EID-to-RLOC Cache poisoning . . . . . . . . . . . . . 7 | 5.2.1. EID-to-RLOC Cache poisoning . . . . . . . . . . . . . 7 | |||
5.2.2. EID-to-RLOC Cache overflow . . . . . . . . . . . . . . 9 | 5.2.2. EID-to-RLOC Cache overflow . . . . . . . . . . . . . . 9 | |||
5.3. Attacks not leveraging on the LISP header . . . . . . . . 9 | 5.3. Attacks not leveraging on the LISP header . . . . . . . . 10 | |||
5.4. Attacks leveraging on the LISP header . . . . . . . . . . 10 | 5.4. Attacks leveraging on the LISP header . . . . . . . . . . 10 | |||
5.4.1. Attacks using the Locator Status Bits . . . . . . . . 10 | 5.4.1. Attacks using the Locator Status Bits . . . . . . . . 10 | |||
5.4.2. Attacks using the Map-Version bit . . . . . . . . . . 11 | 5.4.2. Attacks using the Map-Version bit . . . . . . . . . . 12 | |||
5.4.3. Attacks using the Nonce-Present and the Echo-Nonce | 5.4.3. Attacks using the Nonce-Present and the Echo-Nonce | |||
bits . . . . . . . . . . . . . . . . . . . . . . . . . 12 | bits . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
5.4.4. Attacks using the ID Instance bits . . . . . . . . . . 13 | 5.4.4. Attacks using the Instance ID bits . . . . . . . . . . 14 | |||
6. Control Plane Threats . . . . . . . . . . . . . . . . . . . . 13 | 6. Control Plane Threats . . . . . . . . . . . . . . . . . . . . 14 | |||
6.1. Attacks with Map-Request messages . . . . . . . . . . . . 13 | 6.1. Attacks with Map-Request messages . . . . . . . . . . . . 14 | |||
6.2. Attacks with Map-Reply messages . . . . . . . . . . . . . 15 | 6.2. Attacks with Map-Reply messages . . . . . . . . . . . . . 16 | |||
6.3. Gleaning Attacks . . . . . . . . . . . . . . . . . . . . . 16 | 6.3. Gleaning Attacks . . . . . . . . . . . . . . . . . . . . . 17 | |||
7. Threats concerning Interworking . . . . . . . . . . . . . . . 17 | 7. Threats concerning Interworking . . . . . . . . . . . . . . . 18 | |||
8. Threats with Malicious xTRs . . . . . . . . . . . . . . . . . 18 | 8. Threats with Malicious xTRs . . . . . . . . . . . . . . . . . 19 | |||
9. Security of the Proposed Mapping Systems . . . . . . . . . . . 21 | 9. Security of the Proposed Mapping Systems . . . . . . . . . . . 23 | |||
9.1. LISP+ALT . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 9.1. LISP+ALT . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
9.2. LISP-DDT . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 9.2. LISP-DDT . . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
10. Threats concerning LISP-MS . . . . . . . . . . . . . . . . . . 23 | 10. Threats concerning LISP-MS . . . . . . . . . . . . . . . . . . 25 | |||
10.1. Map Server . . . . . . . . . . . . . . . . . . . . . . . . 23 | 10.1. Map Server . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
10.2. Map Resolver . . . . . . . . . . . . . . . . . . . . . . . 24 | 10.2. Map Resolver . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
11. Suggested Recommendations . . . . . . . . . . . . . . . . . . 26 | 11. Security Recommendations . . . . . . . . . . . . . . . . . . . 28 | |||
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 | |||
13. Security Considerations . . . . . . . . . . . . . . . . . . . 28 | 13. Security Considerations . . . . . . . . . . . . . . . . . . . 30 | |||
14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 28 | 14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 28 | 15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 31 | |||
15.1. Normative References . . . . . . . . . . . . . . . . . . . 28 | 15.1. Normative References . . . . . . . . . . . . . . . . . . . 31 | |||
15.2. Informative References . . . . . . . . . . . . . . . . . . 29 | 15.2. Informative References . . . . . . . . . . . . . . . . . . 31 | |||
Appendix A. Document Change Log . . . . . . . . . . . . . . . . . 30 | Appendix A. Document Change Log . . . . . . . . . . . . . . . . . 32 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 31 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
1. Introduction | 1. Introduction | |||
The Locator/ID Separation Protocol (LISP) is defined in | The Locator/ID Separation Protocol (LISP) is defined in [RFC6830]. | |||
[I-D.ietf-lisp]. The present document aims at assessing the security | The present document assesses the security level and identifies | |||
level and identifying security threats in the LISP specification. As | security threats in the LISP specification if LISP is deployed in the | |||
a result of the performed analysis, the document also proposes some | Internet (i.e., a public non-trustable environment). As a result of | |||
recommendations aiming at improving LISP's resiliency against off- | the performed analysis, the document determines the severity of the | |||
path attackers. | threats and proposes recommendations to reach the same level of | |||
security in LISP than in Internet today (e.g., without LISP). | ||||
The document is composed of two main parts: the first discussing the | The document is composed of three main parts: the first discussing | |||
LISP data-plane; while the second discussing the LISP control-plane. | the LISP data-plane; while the second discussing the LISP control- | |||
plane. The final part summarizes the recommendations to prevent the | ||||
identified threats. | ||||
The LISP data-plane consists of LISP packet encapsulation, | The LISP data-plane consists of LISP packet encapsulation, | |||
decapsulation, and forwarding and includes the EID-to-RLOC Cache and | decapsulation, and forwarding and includes the EID-to-RLOC Cache and | |||
EID-to-RLOC Database data structures used to perform these | EID-to-RLOC Database data structures used to perform these | |||
operations. | operations. | |||
The LISP control-plane consists in the mapping distribution system, | The LISP control-plane consists in the mapping distribution system, | |||
which can be one of the mapping distribution systems proposed so far | which can be one of the mapping distribution systems proposed so far | |||
(e.g., [I-D.ietf-lisp], [I-D.fuller-lisp-ddt], [I-D.ietf-lisp-alt], | (e.g., [RFC6830], [I-D.ietf-lisp-ddt], [RFC6836], [RFC6833], | |||
[I-D.ietf-lisp-ms], [I-D.meyer-lisp-cons], and [I-D.lear-lisp-nerd]), | [I-D.meyer-lisp-cons], and [RFC6837]), and the Map-Request, Map- | |||
and the Map-Request, Map-Reply, Map-Register, and Map-Notification | Reply, Map-Register, and Map-Notification messages. | |||
messages. | ||||
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 [I-D.ietf-lisp]. The document focuses on LISP unicast, | discussed in [RFC6830]. The document focuses on LISP unicast, | |||
including as well LISP Interworking [I-D.ietf-lisp-interworking], | including as well LISP Interworking [RFC6832], LISP-MS [RFC6833], | |||
LISP-MS [I-D.ietf-lisp-ms], LISP Map-Versioning | LISP Map-Versioning [RFC6834], and briefly considering the ALT | |||
[I-D.ietf-lisp-map-versioning], and briefly considering the ALT | mapping system described in [RFC6836] and the Delegated Database Tree | |||
mapping system described in [I-D.ietf-lisp-alt] and the Delegated | mapping system described in [I-D.ietf-lisp-ddt]. The reading of | |||
Database Tree mapping system described in [I-D.fuller-lisp-ddt]. The | these documents is a prerequisite for understanding the present | |||
reading of these documents is a prerequisite for understanding the | document. | |||
present document. | ||||
Unless otherwise stated, the document assumes a generic IP service | Unless otherwise stated, the document assumes a generic IP service | |||
and does not discuss the difference, from a security viewpoint, | and does not discuss the difference, from a security viewpoint, | |||
between using IPv4 or IPv6. | between using IPv4 or IPv6. | |||
This document has identified several threats on LISP in the case of | ||||
public deployments. However, most of the threats can be prevented | ||||
with careful deployment and configuration. Moreover, several threats | ||||
are introduced by optimization techniques that can be deactivated in | ||||
public deployments of LISP without alteration of its functioning as | ||||
these techniques are designed for LISP deployments in private | ||||
trustable environments. Finally, this document has not identified | ||||
any threats that would require a change in the LISP protocol or | ||||
architecture. | ||||
2. Definition of Terms | 2. Definition of Terms | |||
The present document does not introduce any new term, compared to the | Severity level: this document specifies the severity level of every | |||
main LISP specification. For a complete list of terms please refer | identified threat. We identified four severity levels for the | |||
to [I-D.ietf-lisp]. | threats. | |||
Level 0: the threat is not introduced by LISP and is equivalent to | ||||
what is encountered without LISP. | ||||
Level 1: the threat is introduced by LISP but can be neutralized by | ||||
configuration or deployment techniques, i.e., LISP protocol and | ||||
architecture does not need to be reconsidered for public | ||||
deployment. | ||||
Level 2: the threat is introduced by LISP but can be avoided by | ||||
deactivating the feature in public deployment. | ||||
Level 3: the threat is introduced by LISP and cannot be avoided | ||||
without changing the LISP specification or architecture. | ||||
The present document does not introduce any other new term, compared | ||||
to the main LISP specification. For a complete list of terms please | ||||
refer to [RFC6830]. | ||||
3. On-path Attackers | 3. On-path Attackers | |||
On-path attackers are attackers that are able to capture and modify | On-path attackers are attackers that are able to capture and modify | |||
all the packets exchanged between an Ingress Tunnel Router (ITR) and | all the packets exchanged between an Ingress Tunnel Router (ITR) and | |||
an Egress Tunnel Router (ETR). To cope with such an attacker, | an Egress Tunnel Router (ETR). To cope with such an attacker, | |||
cryptographic techniques such as those used by IPSec ([RFC4301]) are | cryptographic techniques such as those used by IPSec ([RFC4301]) are | |||
required. We do not consider that LISP has to cope with such kind of | required. As with IP, LISP relies on higher layer cryptography to | |||
attackers. | secure packet payloads from on path attacks, so we do not consider | |||
on-path attackers in this document. | ||||
Mobile IP has also considered time-shifted attacks from on-path | Mobile IP has also considered time-shifted attacks from on-path | |||
attackers. A time-shifted attack is an attack where the attacker is | attackers. A time-shifted attack is an attack where the attacker is | |||
temporarily on the path between two communicating hosts. While it is | temporarily on the path between two communicating hosts. While it is | |||
on-path, the attacker sends specially crafted packets or modifies | on-path, the attacker sends specially crafted packets or modifies | |||
packets exchanged by the communicating hosts in order to disturb the | packets exchanged by the communicating hosts in order to disturb the | |||
packet flow (e.g., by performing a man in the middle attack). An | packet flow (e.g., by performing a man in the middle attack). An | |||
important issue for time-shifted attacks is the duration of the | important issue for time-shifted attacks is the duration of the | |||
attack once the attacker has left the path between the two | attack once the attacker has left the path between the two | |||
communicating hosts. We do not consider time-shifted attacks in this | communicating hosts. We do not consider time-shifted attacks in this | |||
skipping to change at page 6, line 7 | skipping to change at page 6, line 17 | |||
assigned IP address. SA stands for Spoofing Attacker. | assigned IP address. SA stands for Spoofing Attacker. | |||
NSA is an off-path attacker that is only able to send packets whose | NSA is an off-path attacker that is only able to send packets whose | |||
source address is its assigned IP address. NSA stands for Non | source address is its assigned IP address. NSA stands for Non | |||
Spoofing Attacker. | Spoofing Attacker. | |||
It should be noted that with LISP, packet spoofing is slightly | It should be noted that with LISP, packet spoofing is slightly | |||
different than in the current Internet. Generally the term "spoofed | different than in the current Internet. Generally the term "spoofed | |||
packet" indicates a packet containing a source IP address that is not | packet" indicates a packet containing a source IP address that is not | |||
the one of the actual originator of the packet. Since LISP uses | the one of the actual originator of the packet. Since LISP uses | |||
encapsulation, the spoofed address can be in the outer header as well | encapsulation, the spoofed address could be in the outer header as | |||
as in the inner header, this translates in two types of spoofing: | well as in the inner header, this translates in two types of | |||
spoofing: | ||||
EID Spoofing: the originator of the packet puts in it a spoofed EID. | EID Spoofing: the originator of the packet puts in it a spoofed EID. | |||
The packet will be normally encapsulated by the ITR of the site | The packet will be normally encapsulated by the ITR of the site | |||
(or a PITR if the source site is not LISP enabled). | (or a PITR if the source site is not LISP enabled). | |||
RLOC Spoofing: the originator of the packet generates directly a | RLOC Spoofing: the originator of the packet generates directly a | |||
LISP-encapsulated packet with a spoofed source RLOC. | LISP-encapsulated packet with a spoofed source RLOC. | |||
Note that the two types of spoofing are not mutually exclusive, | Note that the two types of spoofing are not mutually exclusive, | |||
rather all combinations are possible and can be used to perform | rather all combinations are possible and could be used to perform | |||
different kind of attacks. | different kind of attacks. | |||
In the reference environment, both SA and NSA attackers are capable | In the reference environment, both SA and NSA attackers are capable | |||
of sending LISP encapsulated data packets and LISP control packets. | of sending LISP encapsulated data packets and LISP control packets. | |||
This means that SA is able to perform both RLOC and EID spoofing | This means that SA is able to perform both RLOC and EID spoofing | |||
while NSA can only perform EID spoofing. They may also send other | while NSA can only perform EID spoofing. They may also send other | |||
types of IP packets such as ICMP messages. We assume that both | types of IP packets such as ICMP messages. We assume that both | |||
attackers can query the LISP mapping system (e.g., through a public | attackers can query the LISP mapping system (e.g., through a public | |||
Map Resolver) to obtain the mappings for both HA and HB. | Map Resolver) to obtain the mappings for both HA and HB. | |||
5. Data-Plane Threats | 5. Data-Plane Threats | |||
This section discusses threats and attacks related to the LISP data- | This section discusses threats and attacks related to the LISP data- | |||
plane. More precisely, we discuss the operations of encapsulation, | plane. More precisely, we discuss the operations of encapsulation, | |||
decapsulation, and forwarding as well as the content of the EID-to- | decapsulation, and forwarding as well as the content of the EID-to- | |||
RLOC Cache and EID-to-RLOC Database as specified in the original LISP | RLOC Cache and EID-to-RLOC Database as specified in the original LISP | |||
document ([I-D.ietf-lisp]). | document ([RFC6830]). | |||
We start considering the two main data structures of LISP, namely the | We start considering the two main data structures of LISP, namely the | |||
EID-to-RLOC Database and the EID-to-RLOC Cache. Then, we look at the | EID-to-RLOC Database and the EID-to-RLOC Cache. Then, we look at the | |||
data plane attacks that can be performed by a spoofing off-path | data plane attacks that can be performed by a spoofing off-path | |||
attacker (SA) and discuss how they can be mitigated by LISP xTRs. In | attacker (SA) and discuss how they can be mitigated by LISP xTRs. In | |||
this analysis, we assume that the LR1 and LR2 (resp. LR3 and LR4) | this analysis, we assume that the LR1 and LR2 (resp. LR3 and LR4) | |||
xTRs maintain an EID-to-RLOC Cache that contains the required mapping | xTRs maintain an EID-to-RLOC Cache that contains the required mapping | |||
entries to allow HA and HB to exchange packets. | entries to allow HA and HB to exchange packets. | |||
5.1. EID-to-RLOC Database Threats | 5.1. EID-to-RLOC Database Threats | |||
The EID-to-RLOC Database on each xTR maintains the set of mappings | The EID-to-RLOC Database on each xTR maintains the set of mappings | |||
related to the EID-Prefixes that are "behind" the xTR. Where | related to the EID-Prefixes that are "behind" the xTR. Where | |||
"behind" means that at least one of the xTR's globally visible IP | "behind" means that at least one of the xTR's globally visible IP | |||
addresses is a RLOC for those EID-Prefixes. | addresses is a RLOC for those EID-Prefixes. | |||
As described in [I-D.ietf-lisp], the EID-to-RLOC Database content is | As described in [RFC6830], the EID-to-RLOC Database content is | |||
determined by configuration. This means that the only way to attack | determined by configuration. This means that the only way to attack | |||
this data structure is by gaining privileged access to the xTR. As | this data structure is by gaining privileged access to the xTR. As | |||
such, it is out of the scope of LISP to propose any mechanism to | such, it is out of the scope of LISP to propose any mechanism to | |||
protect routers and, hence, it is no further analyzed in this | protect routers and, hence, it is no further analyzed in this | |||
document. | document. | |||
Severity level 0. | ||||
5.2. EID-to-RLOC Cache Threats | 5.2. EID-to-RLOC Cache Threats | |||
A key component of the overall LISP architecture is the EID-to-RLOC | The EID-to-RLOC Cache (also called the Map-Cache) is the data | |||
Cache. The EID-to-RLOC Cache is the data structure that stores the | structure that stores a copy of the mappings retrieved from a remote | |||
bindings between EID and RLOC (namely the "mappings") to be used | ETR's mapping database via the LISP control plane. Attacks against | |||
later on. Attacks against this data structure can happen either when | this data structure could happen either when the mappings are first | |||
the mappings are first installed in the cache (see also Section 6) or | installed in the cache (see also Section 6) or by corrupting | |||
by corrupting (poisoning) the mappings already present in the cache. | (poisoning) the mappings already present in the cache. | |||
Severity level 2. The severity level of EID-to-RLOC Cache Threats | ||||
depends on the attack vector as described below. | ||||
5.2.1. EID-to-RLOC Cache poisoning | 5.2.1. EID-to-RLOC Cache poisoning | |||
The content of the EID-to-RLOC Cache can be poisoned by spoofing LISP | The content of the EID-to-RLOC Cache could be poisoned by spoofing | |||
encapsulated packets. Examples of EID-to-RLOC Cache poisoning are: | LISP encapsulated packets. Examples of EID-to-RLOC Cache poisoning | |||
are: | ||||
Fake mapping: The cache contains entirely fake mappings that do not | Fake mapping: The cache contains entirely fake mappings that do not | |||
originate from an authoritative mapping server. This can be | originate from an authoritative mapping server. This could be | |||
achieved either through gleaning as described in Section 6.3 or | achieved either through gleaning as described in Section 6.3 or | |||
by attacking the control-plane as described in Section 6. | by attacking the control-plane as described in Section 6. | |||
EID Poisoning: The EID-Prefix in a specific mapping is not owned by | EID Poisoning: The EID-Prefix in a specific mapping is not owned by | |||
the originator of the entry. Similarly to the previous case, | the originator of the entry. Similarly to the previous case, | |||
this can be achieved either through gleaning as described in | this could be achieved either through gleaning as described in | |||
Section 6.3 or by attacking the control-plane as described in | Section 6.3 or by attacking the control-plane as described in | |||
Section 6. | Section 6. | |||
EID redirection/RLOC poisoning: The EID-Prefix in the mapping is not | EID redirection/RLOC poisoning: The EID-Prefix in the mapping is not | |||
bound to (located by) the set of RLOCs present in the mapping. | bound to (located by) the set of RLOCs present in the mapping. | |||
This can result in packets being redirected elsewhere, | This could result in packets being redirected elsewhere, | |||
eavesdropped, or even blackholed. Note that not necessarily | eavesdropped, or even black-holed. Note that not necessarily | |||
all RLOCs are fake/spoofed. The attack works also if only part | all RLOCs are fake/spoofed. The attack works also if only part | |||
of the RLOCs, the highest priority ones, is compromised. | of the RLOCs, the highest priority ones, is compromised. | |||
Again, this can be achieved either through the gleaning as | Again, this could be achieved either through the gleaning as | |||
described in Section 6.3 or by attacking the control-plane as | described in Section 6.3 or by attacking the control-plane as | |||
described in Section 6. | described in Section 6. | |||
Reachability poisoning: The reachability information stored in the | Reachability poisoning: The reachability information stored in the | |||
mapping could be poisoned, redirecting the packets to a subset | mapping could be poisoned, redirecting the packets to a subset | |||
of the RLOCs (or even stopping it if locator status bits are | of the RLOCs (or even stopping it if locator status bits are | |||
all set to 0). If reachability information is not verified | all set to 0). If reachability information is not verified | |||
through the control-plane this attack can be simply achieved by | through the control-plane this attack could be achieved by | |||
sending a spoofed packet with swapped or all locator status | sending a spoofed packet with swapped or all locator status | |||
bits reset. The same result can be obtained by attacking the | bits reset. The same result could be obtained by attacking the | |||
control-plane as described in Section 6. Depending on how the | control-plane as described in Section 6. Depending on how the | |||
RLOC reachability information is stored on the router, the | RLOC reachability information is stored on the router, the | |||
attack can impact only one mapping or all the mappings that | attack could impact only one mapping or all the mappings that | |||
share the same RLOC. | share the same RLOC. | |||
Traffic Engineering information poisoning: The LISP protocol defines | Traffic Engineering information poisoning: The LISP protocol defines | |||
two attributes associated to each RLOC in order to perform | two attributes associated to each RLOC in order to perform | |||
inbound Traffic Engineering (TE), namely priority and weight. | inbound Traffic Engineering (TE), namely priority and weight. | |||
By injecting fake TE attributes, the attacker is able to break | By injecting fake TE attributes, the attacker is able to break | |||
load balancing policies and concentrate all the traffic on a | load balancing policies and concentrate all the traffic on a | |||
single RLOC or put more load on a RLOC than what is expected, | single RLOC or put more load on a RLOC than what is expected, | |||
creating congestion. It is even possible to block the traffic | creating congestion. It is even possible to block the traffic | |||
if all the priorities are set to 255 (special value indicating | if all the priorities are set to 255 (special value indicating | |||
not to use the RLOC). Corrupting the TE attributes can be | not to use the RLOC). Corrupting the TE attributes could be | |||
achieved by attacking the control-plane as described in | achieved by attacking the control-plane as described in | |||
Section 6. | Section 6. | |||
Mapping TTL poisoning: The LISP protocol associates a Time-To-Live | Mapping TTL poisoning: The LISP protocol associates a Time-To-Live | |||
to each mapping that, once expired, allows to delete a mapping | to each mapping that, once expired, allows to delete a mapping | |||
from the EID-to-RLOC Cache (or forces a Map-Request/Map-Reply | from the EID-to-RLOC Cache (or forces a Map-Request/Map-Reply | |||
exchange to refresh it if still needed). By injecting fake TTL | exchange to refresh it if still needed). By injecting fake TTL | |||
values, an attacker can either shrink the EID-to-RLOC Cache | values, an attacker could either shrink the EID-to-RLOC Cache | |||
(using very short TTL), thus creating an excess of cache miss | (using very short TTL), thus creating an excess of cache miss | |||
causing a DoS on the mapping system, or it can increase the | causing a DoS on the mapping system, or it could increase the | |||
size of the cache by putting very high TTL values, up to a | size of the cache by putting very high TTL values, up to a | |||
cache overflow (see Section 5.2.2). Corrupting the TTL can be | cache overflow (see Section 5.2.2). Corrupting the TTL could | |||
achieved by attacking the control-plane as described in | be achieved by attacking the control-plane as described in | |||
Section 6. Long TTL can be use in fake mappings to increase | Section 6. Long TTL could be used in fake mappings to increase | |||
attack duration. | attack duration. | |||
Instance ID poisoning: The LISP protocol allows using a 24-bit | Instance ID poisoning: The LISP protocol allows using a 24-bit | |||
identifier to select the forwarding table to use on the | identifier to select the forwarding table to use on the | |||
decapsulating ETR to forward the decapsulated packet. By | decapsulating ETR to forward the decapsulated packet. By | |||
spoofing this attribute the attacker is able to redirect or | spoofing this attribute the attacker might cause traffic to be | |||
blackhole inbound traffic. Corrupting the Instance ID | either dropped or decapsulated and then placed into the | |||
attribute can be achieved by attacking the control-plane as | incorrect VRF at the destination ETR. Corrupting the Instance | |||
described in Section 6. | ID attribute could be achieved by attacking the control-plane | |||
as described in Section 6. | ||||
Map-Version poisoning: The LISP protocol allows associating a | Map-Version poisoning: The LISP protocol offers the option to | |||
version number to mappings ([I-D.ietf-lisp-map-versioning]). | associate a version number to mappings ([RFC6834]). The LISP | |||
The LISP header can transport source and destination map- | header can transport source and destination map-versions, | |||
versions, describing which version of the mapping have been | describing which version of the mapping have been used to | |||
used to select the source and the destination RLOCs of the LISP | select the source and the destination RLOCs of the LISP | |||
encapsulated packet. By spoofing this attribute the attacker | encapsulated packet. By spoofing this attribute the attacker | |||
is able to trigger Map-Request on the receiving ETR. | is able to trigger Map-Request on the receiving ETR. | |||
Corrupting the Map-Version attribute can be achieved either by | Corrupting the Map-Version attribute could be achieved either | |||
attacking the control-plane as described in Section 6 or by | by attacking the control-plane as described in Section 6 or by | |||
using spoofed packets as described in Section 5.4.2. | using spoofed packets as described in Section 5.4.2. | |||
If the above listed attacks succeed, the attacker has the means of | If the ITR's map-cache is compromised (likely via compromising the | |||
controlling the traffic. | LISP control-plane) it is possible that traffic in the data-plane may | |||
be redirected (encapsulated to the wrong destination) a or dropped by | ||||
the ITR. | ||||
If data-plane redirection is of a critical concern, then deploying | ||||
some sort of IPSEC or TLS based security on a layer above LISP (just | ||||
like you would on top of IP) is recommended. | ||||
5.2.2. EID-to-RLOC Cache overflow | 5.2.2. EID-to-RLOC Cache overflow | |||
Depending on how the EID-to-RLOC Cache is managed (e.g., Least | Depending on how the EID-to-RLOC Cache is managed (e.g., Least | |||
Recently Used - LRU vs. Least Frequently Used - LFU) and depending on | Recently Used - LRU vs. Least Frequently Used - LFU) and depending on | |||
its size, an attacker can try to fill the cache with fake mappings. | its size, an attacker could try to fill the cache with fake mappings. | |||
Once the cache is full, some mappings will be replaced by new fake | Once the cache is full, some mappings will be replaced by new fake | |||
ones, causing traffic disruption. | ones, causing traffic disruption. | |||
This can be achieved either through gleaning as described in | This could be achieved either through gleaning as described in | |||
Section 6.3 or by attacking the control-plane as described in | Section 6.3 or by attacking the control-plane as described in | |||
Section 6. | Section 6. | |||
Another way to generate an EID-to-RLOC Cache overflow is by injecting | Another way to generate an EID-to-RLOC Cache overflow is by injecting | |||
mapping with a fake and very large TTL value. In this case the cache | mapping with a fake and very large TTL value. In this case the cache | |||
will keep a large amount of mappings ending with a completely full | will keep a large amount of mappings ending with a completely full | |||
cache. This type of attack can also be performed through the | cache. This type of attack could also be performed through the | |||
control-plane. | control-plane. | |||
5.3. Attacks not leveraging on the LISP header | 5.3. Attacks not leveraging on the LISP header | |||
We first consider an attacker that sends packets without exploiting | We first consider an attacker that sends packets without exploiting | |||
the LISP header, i.e., with the N, L, E, V, and I bits reset | the LISP header, i.e., with the N, L, E, V, and I bits reset | |||
([I-D.ietf-lisp]). | ([RFC6830]). | |||
To inject a packet in the HA-HB flow, a spoofing off-path attacker | To inject a packet in the HA-HB flow, a spoofing off-path attacker | |||
(SA) can send a LISP encapsulated packet whose source is set to LR1 | (SA) could send a LISP encapsulated packet whose source is set to LR1 | |||
or LR2 and destination LR3 or LR4. The packet will reach HB as if | or LR2 and destination LR3 or LR4. The packet will reach HB as if | |||
the packet was sent by host HA. This is not different from today's | the packet was sent by host HA. This is not different from today's | |||
Internet where a spoofing off-path attacker may inject data packets | Internet where a spoofing off-path attacker may inject data packets | |||
in any flow. Several existing techniques can be used by hosts to | in any flow. Several existing techniques could be used by hosts to | |||
prevent such attacks from affecting established flows, e.g., | prevent such attacks from affecting established flows, e.g., | |||
[RFC4301] and [I-D.ietf-tcpm-tcp-security]. | [RFC4301] and [I-D.ietf-tcpm-tcp-security]. | |||
On the other hand, a non-spoofing off-path attacker (NSA) can only | On the other hand, a non-spoofing off-path attacker (NSA) could only | |||
send a packet whose source address is set to its assigned IP address. | send a packet whose source address is set to its assigned IP address. | |||
The destination address of the encapsulated packet can be LR3 or LR4. | The destination address of the encapsulated packet could be LR3 or | |||
When the LISP ETR that serves HB receives the encapsulated packet, it | LR4. When the LISP ETR that serves HB receives the encapsulated | |||
can consult its EID-to-RLOC Cache and verify that NSA is not a valid | packet, it can consult its EID-to-RLOC Cache and verify that NSA is | |||
source address for LISP encapsulated packets containing a packet sent | not a valid source address for LISP encapsulated packets containing a | |||
by HA. This verification is only possible if the ETR already has a | packet sent by HA. This verification is only possible if the ETR | |||
valid mapping for HA. Otherwise, and to avoid such data packet | already has a valid mapping for HA. Otherwise, and to avoid such | |||
injection attacks, the LISP ETR should reject the packet and possibly | data packet injection attacks, the LISP ETR should reject the packet | |||
query the mapping system to obtain a mapping for the encapsulated | and possibly query the mapping system to obtain a mapping for the | |||
source EID (HA). | encapsulated source EID (HA). | |||
Severity level 1: use well known anti-spoofing techniques and | ||||
configure ETRs to verify the that RLOCs and EIDs are consistent with | ||||
the entries in the EID-to-RLOC Cache. | ||||
5.4. Attacks leveraging on the LISP header | 5.4. Attacks leveraging on the LISP header | |||
The main LISP document [I-D.ietf-lisp] defines several flags that | The main LISP document [RFC6830] defines several flags that modify | |||
modify the interpretation of the LISP header in data packets. In | the interpretation of the LISP header in data packets. In this | |||
this section, we discuss how an off-path attacker could exploit this | section, we discuss how an off-path attacker could exploit this LISP | |||
LISP header. | header. | |||
Severity level 2. The severity level of attacks leveraging on the | ||||
LISP header depends on the attack vector as described below. | ||||
5.4.1. Attacks using the Locator Status Bits | 5.4.1. Attacks using the Locator Status Bits | |||
When the L bit is set to 1, it indicates that the second 32-bits | When the L bit is set to 1, it indicates that the second 32-bits | |||
longword of the LISP header contains the Locator Status Bits. In | longword of the LISP header contains the Locator Status Bits. In | |||
this field, each bit position reflects the status of one of the RLOCs | this field, each bit position reflects the status of one of the RLOCs | |||
mapped to the source EID found in the encapsulated packet. In | mapped to the source EID found in the encapsulated packet. In | |||
particular, a packet with the L bit set and all Locator Status Bits | particular, a packet with the L bit set and all Locator Status Bits | |||
set to zero indicates that none of the locators of the encapsulated | set to zero indicates that none of the locators of the encapsulated | |||
source EID are reachable. The reaction of a LISP ETR that receives | source EID are reachable. The reaction of a LISP ETR that receives | |||
such a packet is not clearly described in [I-D.ietf-lisp]. | such a packet is not clearly described in [RFC6830]. | |||
A spoofing off-path attacker (SA) can send a data packet with the L | A spoofing off-path attacker (SA) could send a data packet with the L | |||
bit set to 1, all Locator Status Bits set to zero, a spoofed source | bit set to 1, all Locator Status Bits set to zero, a spoofed source | |||
RLOC (e.g. LR1), destination LR3, and containing an encapsulated | RLOC (e.g. LR1), destination LR3, and containing an encapsulated | |||
packet whose source is HA. If LR3 blindly trusts the Locator Status | packet whose source is HA. If LR3 blindly trusts the Locator Status | |||
Bits of the received packet it will set LR1 and LR2 as unreachable, | Bits of the received packet it will set LR1 and LR2 as unreachable, | |||
possibly disrupting ongoing communication. | possibly disrupting ongoing communication. | |||
Locator Status Bits can be blindly trusted only in secure | Locator Status Bits could be blindly trusted only in secure | |||
environments. In the general unsecured Internet environment, the | environments. In the general unsecured Internet environment, the | |||
safest practice for xTRs is to confirm the reachability change | safest practice for xTRs is to confirm the reachability change | |||
through the control plane (e.g., RLOC probing). In the above | through the control plane (e.g., RLOC probing). In the above | |||
example, LR3 should note that something has changed in the Locator | example, LR3 should note that something has changed in the Locator | |||
Status Bits and query the mapping system (assuming it is trusted) in | Status Bits and query the mapping system (assuming it is trusted) in | |||
order to confirm status of the RLOCs of the source EID. | order to confirm status of the RLOCs of the source EID. | |||
A similar attack could occur by setting only one Locator Status Bit | A similar attack could occur by setting only one Locator Status Bit | |||
to 1, e.g., the one that corresponds to the source RLOC of the | to 1, e.g., the one that corresponds to the source RLOC of the | |||
packet. | packet. | |||
skipping to change at page 11, line 8 | skipping to change at page 11, line 40 | |||
in Section 5.3, if the xTR accepts the packet without checking the | in Section 5.3, if the xTR accepts the packet without checking the | |||
EID-to-RLOC Cache for a mapping that binds the source EID and the | EID-to-RLOC Cache for a mapping that binds the source EID and the | |||
source RLOC of the received packet, then the same observation like | source RLOC of the received packet, then the same observation like | |||
for the spoofing attacker (SA) apply with the difference that instead | for the spoofing attacker (SA) apply with the difference that instead | |||
of complete disruption, the traffic will flow through only one RLOC, | of complete disruption, the traffic will flow through only one RLOC, | |||
possibly resulting in a DoS attack. | possibly resulting in a DoS attack. | |||
Otherwise, if the xTR does make the check through the EID-to-RLOC | Otherwise, if the xTR does make the check through the EID-to-RLOC | |||
Cache, it should reject the packet because its source address is not | Cache, it should reject the packet because its source address is not | |||
one of the addresses listed as RLOCs for the source EID. | one of the addresses listed as RLOCs for the source EID. | |||
Nevertheless, in this case a Map-Request should be sent, which can be | Nevertheless, in this case a Map-Request should be sent, which could | |||
used to perform Denial of Service attacks. Indeed an attacker can | be used to perform Denial of Service attacks. Indeed an attacker | |||
frequently change the Locator Status Bits in order to trigger a large | could frequently change the Locator Status Bits in order to trigger a | |||
amount of Map-Requests. Rate limitation, as described in | large amount of Map-Requests. Rate limitation, as described in | |||
[I-D.ietf-lisp], does not allow sending high number of such a | [RFC6830], if implemented in a very simple way a single bucket for | |||
request, resulting in the attacker saturating the rate with these | all triggered control plane messages, does not allow sending high | |||
spoofed packets. | number of such a request, resulting in the attacker saturating the | |||
rate with these spoofed packets. | ||||
Severity level 2: to avoid any risk, Locator Status Bits should be | ||||
deactivated in public deployments of LISP. Deactivating LSB does not | ||||
reduce LISP functionality. | ||||
5.4.2. Attacks using the Map-Version bit | 5.4.2. Attacks using the Map-Version bit | |||
The Map-Version bit is used to indicate whether the low-order 24 bits | The optional Map-Version bit is used to indicate whether the low- | |||
of the first 32 bits longword of the LISP header contain a Source and | order 24 bits of the first 32 bits longword of the LISP header | |||
Destination Map-Version. When a LISP ETR receives a LISP | contain a Source and Destination Map-Version. When a LISP ETR | |||
encapsulated packet with the Map-Version bit set to 1, the following | receives a LISP encapsulated packet with the Map-Version bit set to | |||
actions are taken: | 1, the following actions are taken: | |||
o It compares the Destination Map-Version found in the header with | o It compares the Destination Map-Version found in the header with | |||
the current version of its own mapping, in the EID-to-RLOC | the current version of its own mapping, in the EID-to-RLOC | |||
Database, for the destination EID found in the encapsulated | Database, for the destination EID found in the encapsulated | |||
packet. If the received Destination Map-Version is smaller (i.e., | packet. If the received Destination Map-Version is smaller (i.e., | |||
older) than the current version, the ETR should apply the SMR | older) than the current version, the ETR should apply the SMR | |||
procedure described in [I-D.ietf-lisp] and send a Map-Request with | procedure described in [RFC6830] and send a Map-Request with the | |||
the SMR bit set. | SMR bit set. | |||
o If a mapping exists in the EID-to-RLOC Cache for the source EID, | o If a mapping exists in the EID-to-RLOC Cache for the source EID, | |||
then it compares the Map-Version of that entry with the Source | then it compares the Map-Version of that entry with the Source | |||
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 spoofing off-path attacker (SA) could use the Map-Version bit to | A spoofing off-path attacker (SA) could use the Map-Version bit to | |||
force an ETR to send Map-Request messages. The attacker can retrieve | force an ETR to send Map-Request messages. The attacker could | |||
the current source and destination Map-Version for both HA and HB. | retrieve the current source and destination Map-Version for both HA | |||
Based on this information, it can send a spoofed packet with an older | and HB. Based on this information, it could send a spoofed packet | |||
Source Map-Version or Destination Map-Version. If the size of the | with an older Source Map-Version or Destination Map-Version. If the | |||
Map-Request message is larger than the size of the smallest LISP- | size of the Map-Request message is larger than the size of the | |||
encapsulated packet that could trigger such a message, this could | smallest LISP-encapsulated packet that could trigger such a message, | |||
lead to amplification attacks (see Section 6.1). However, | this could lead to amplification attacks (see Section 6.1). However, | |||
[I-D.ietf-lisp] recommends to rate limit the Map-Request messages | [RFC6830] recommends to rate limit the Map-Request messages that are | |||
that are sent by an xTR. This prevents the amplification attack, but | sent by an xTR. This prevents the amplification attack, but there is | |||
there is a risk of Denial of Service attack if an attacker sends | a risk of Denial of Service attack if an attacker sends packets with | |||
packets with Source and Destination Map-Versions that frequently | Source and Destination Map-Versions that frequently change. In this | |||
change. In this case, the ETR could consume its entire rate by | case, and depending on the implementation of the rate limitation | |||
sending Map-Request messages in response to these spoofed packets. | policy, the ETR might consume its entire rate by sending Map-Request | |||
messages in response to these spoofed packets. | ||||
A non-spoofing off-path attacker (NSA) cannot success in such an | A non-spoofing off-path attacker (NSA) could not success in such an | |||
attack if the destination xTR rejects the LISP encapsulated packets | attack if the destination xTR rejects the LISP encapsulated packets | |||
that are not sent by one of the RLOCs mapped to the included source | that are not sent by one of the RLOCs mapped to the included source | |||
EID. If it is not the case, the attacker can be able to perform | EID. If it is not the case, the attacker could be able to perform | |||
attacks concerning the Destination Map Version number as for the | attacks concerning the Destination Map Version number as for the | |||
spoofing off-path attacker (SA). | spoofing off-path attacker (SA). | |||
Severity level 1: the correct deployment of anti-spoofing and rate | ||||
limitation techniques prevents the attacks leveraging on the Map- | ||||
Version. | ||||
5.4.3. Attacks using the Nonce-Present and the Echo-Nonce bits | 5.4.3. Attacks using the Nonce-Present and the Echo-Nonce bits | |||
The Nonce-Present and Echo-Nonce bits are used when verifying the | The Nonce-Present and Echo-Nonce bits are used when verifying the | |||
reachability of a remote ETR. Assume that LR3 wants to verify that | reachability of a remote ETR. Assume that LR3 wants to verify that | |||
LR1 receives the packets that it sends. LR3 can set the Echo-Nonce | LR1 receives the packets that it sends. LR3 can set 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 these packets. Upon reception of these | include a random nonce in these packets. Upon reception of these | |||
packets, LR1 will store the nonce sent by LR3 and echo it when it | packets, LR1 will store the nonce sent by LR3 and echo it when it | |||
returns LISP encapsulated data packets to LR3. | returns LISP encapsulated data packets to LR3. | |||
skipping to change at page 13, line 14 | skipping to change at page 14, line 9 | |||
will consider the ETR not reachable. The success of this test will | will consider the ETR not reachable. The success of this test will | |||
of course depend on the ratio between the amount of packets sent by | of course depend on the ratio between the amount of packets sent by | |||
the legitimate ITR and the spoofing off-path attacker (SA). | the legitimate ITR and the spoofing off-path attacker (SA). | |||
Packets sent by a non-spoofing off-path attacker (NSA) can cause | Packets sent by a non-spoofing off-path attacker (NSA) can cause | |||
similar problem if no check is done with the EID-to-RLOC Cache (see | similar problem if no check is done with the EID-to-RLOC Cache (see | |||
Section 5.3 for the EID-to-RLOC Cache check). Otherwise, if the | Section 5.3 for the EID-to-RLOC Cache check). Otherwise, if the | |||
check is performed the packets will be rejected by the ETR that | check is performed the packets will be rejected by the ETR that | |||
receives them and cannot cause problems. | receives them and cannot cause problems. | |||
5.4.4. Attacks using the ID Instance bits | Severity level 2: to avoid any problem, echo nonce should be | |||
deactivated. Deactivating echo-nonce does not reduce LISP | ||||
functionality as it is an optimization for symmetric data flow path | ||||
and because other techniques exist to test the reachability of a | ||||
RLOC. | ||||
5.4.4. Attacks using the Instance ID bits | ||||
LISP allows to carry in its header a 24-bits value called "Instance | LISP allows to carry in its header a 24-bits value called "Instance | |||
ID" and used on the ITR to indicate which private Instance ID has | ID" and used on the ITR to indicate which private Instance ID has | |||
been used for encapsulation, while on the ETR can be used to select | been used for encapsulation, while on the ETR can be used to select | |||
the forwarding table used for forwarding the decapsulated packet. | the forwarding table used for forwarding the decapsulated packet. | |||
Even if an off-path attacker could randomly guess a valid Instance ID | Even if an off-path attacker could randomly guess a valid Instance ID | |||
value, there is no LISP specific problem. Obviously the attacker | value, there is no LISP specific problem. Obviously the attacker | |||
could be now able to reach hosts that are only reachable through the | could be now able to reach hosts that are only reachable through the | |||
routing table identified by the attacked Instance ID, however, end- | routing table identified by the attacked Instance ID, however, end- | |||
system security is out of the scope of this document. Nevertheless, | system security is out of the scope of this document. Nevertheless, | |||
access lists can be configured to protect the network from Instance | access lists can be configured to protect the network from Instance | |||
ID based attacks. | ID based attacks. | |||
Severity level 1: the correct deployment of access control lists and | ||||
firewalls prevent the attacks leveraging on the Instance ID. | ||||
6. Control Plane Threats | 6. Control Plane Threats | |||
In this section, we discuss the different types of attacks that can | In this section, we discuss the different types of attacks that could | |||
occur when an off-path attacker sends control plane packets. We | occur when an off-path attacker sends control plane packets. We | |||
focus on the packets that are sent directly to the ETR and do not | focus on the packets that are sent directly to the ETR and do not | |||
analyze the particularities of a LISP mapping system. The LISP+ALT | analyze the particularities of a LISP mapping system. The LISP+ALT | |||
and LISP-DDT mapping systems are discussed in Section 9. | and LISP-DDT mapping systems are discussed in Section 9. | |||
Severity level 2. The severity level of attacks on the LISP control- | ||||
plane depends on the attack vector as described below. | ||||
6.1. Attacks with Map-Request messages | 6.1. Attacks with Map-Request messages | |||
An off-path attacker could send Map-Request packets to a victim ETR. | An off-path attacker could send Map-Request packets to a victim ETR. | |||
In theory, a Map-Request packet is only used to solicit an answer and | In theory, a Map-Request packet is only used to solicit an answer and | |||
as such it should not lead to security problems. However, the LISP | as such it should not lead to security problems. However, the LISP | |||
specification [I-D.ietf-lisp] contains several particularities that | specification [RFC6830] contains several particularities that could | |||
could be exploited by an off-path attacker. | be exploited by an off-path attacker. | |||
The first possible exploitation is the P bit. The P bit is used to | The first possible exploitation is the P bit. The P bit is used to | |||
probe the reachability of remote ETRs in the control plane. In our | probe the reachability of remote ETRs. In our reference environment, | |||
reference environment, LR3 could probe the reachability of LR1 by | LR3 could probe the reachability of LR1 by sending a Map-Request with | |||
sending a Map-Request with the P bit set. LR1 would reply by sending | the P bit set. LR1 would reply by sending a Map-Reply message with | |||
a Map-Reply message with the P bit set and the same nonce as in the | the P bit set and the same nonce as in the Map-Request message. | |||
Map-Request message. | ||||
A spoofing off-path attacker (SA) could use the P bit to force a | A spoofing off-path attacker (SA) could use the P bit to force a | |||
victim ETR to send a Map-Reply to the spoofed source address of the | victim ETR to send a Map-Reply to the spoofed source address of the | |||
Map-Request message. As the Map-Reply can be larger than the Map- | Map-Request message. As the Map-Reply can be larger than the Map- | |||
Request message, there is a risk of amplification attack. | Request message, there is a risk of amplification attack. | |||
Considering only IPv6 addresses, a Map-Request can be as small as 40 | Considering only IPv6 addresses, a Map-Request can be as small as 40 | |||
bytes, considering one single ITR address and no Mapping Protocol | bytes, considering one single ITR address and no Mapping Protocol | |||
Data. The Map-Reply instead has a size of O(12 + (R * (28 + N * | Data. The Map-Reply instead has a size of O(12 + (R * (28 + N * | |||
24))) bytes, where N is the maximum number of RLOCs in a mapping and | 24))) bytes, where N is the maximum number of RLOCs in a mapping and | |||
R the maximum number of records in a Map-Reply. Since up to 255 | R the maximum number of records in a Map-Reply. Since up to 255 | |||
skipping to change at page 15, line 7 | skipping to change at page 16, line 13 | |||
of a Map-Request message with the SMR bit, an ETR must return to the | of a Map-Request message with the SMR bit, an ETR must return to the | |||
source of the Map-Request message a Map-Request message to retrieve | source of the Map-Request message a Map-Request message to retrieve | |||
the corresponding mapping. This raises similar problems as the P bit | the corresponding mapping. This raises similar problems as the P bit | |||
discussed above except that as the Map-Request messages are smaller | discussed above except that as the Map-Request messages are smaller | |||
than Map-Reply messages, the risk of amplification attacks is | than Map-Reply messages, the risk of amplification attacks is | |||
reduced. This is not true anymore if the ETR append to the Map- | reduced. This is not true anymore if the ETR append to the Map- | |||
Request messages its own Map-Records. This mechanism is meant to | Request messages its own Map-Records. This mechanism is meant to | |||
reduce the delay in mapping distribution since mapping information is | reduce the delay in mapping distribution since mapping information is | |||
provided in the Map-Request message. | provided in the Map-Request message. | |||
Severity level 1: the correct deployment of anti-spoofing and rate | ||||
limitation techniques prevents the attacks leveraging the Map-Request | ||||
message. | ||||
Furthermore, appending Map-Records to Map-Request messages represents | Furthermore, appending Map-Records to Map-Request messages represents | |||
a major security risk since an off-path attacker could generate a | a major security risk since an off-path attacker could generate a | |||
(spoofed or not) Map-Request message and include in the Map-Reply | (spoofed or not) Map-Request message and include in the Map-Reply | |||
portion of the message mapping for EID prefixes that it does not | portion of the message mapping for EID prefixes that it does not | |||
serve. This could lead to various types of redirection and denial of | serve. This could lead to various types of redirection and denial of | |||
service attacks. An xTR should not process the Map-Records | service attacks. An xTR should not process the Map-Records | |||
information that it receives in a Map-Request message. | information that it receives in a Map-Request message. As it is a | |||
performance optimization, we recommend to deactivate this | ||||
functionality in public LISP deployments. | ||||
Severity level 2: to avoid any risk, appending Map-Records to Map- | ||||
Request messages should be deactivated in public deployments of LISP. | ||||
Deactivating appending Map-Records to Map-Request messages does not | ||||
reduce LISP functionality. | ||||
6.2. Attacks with Map-Reply messages | 6.2. Attacks with Map-Reply messages | |||
In this section we analyze the attacks that could occur when an off- | In this section we analyze the attacks that could occur when an off- | |||
path attacker sends directly Map-Reply messages to ETRs without using | path attacker sends directly Map-Reply messages to ETRs without using | |||
one of the proposed LISP mapping systems. | one of the proposed LISP mapping systems. | |||
There are two different types of Map-Reply messages: | There are two different types of Map-Reply messages: | |||
Positive Map-Reply: These messages contain a Map-Record binding an | Positive Map-Reply: These messages contain a Map-Record binding an | |||
EID-Prefix to one or more RLOCs. | EID-Prefix to one or more RLOCs. | |||
Negative Map-Reply: These messages contain a Map-Record for an EID- | Negative Map-Reply: These messages contain a Map-Record for an EID- | |||
Prefix with an empty locator-set and specifying an action, | Prefix with an empty locator-set and specifying an action, | |||
which may be either Drop, Natively forward, or Send Map- | which may be either Drop, natively forward, or Send Map- | |||
Request. | Request. | |||
Positive Map-Reply messages are used to map EID-Prefixes onto RLOCs. | Positive Map-Reply messages are used to map EID-Prefixes onto RLOCs. | |||
Negative Map-Reply messages are used to support PTR and interconnect | Negative map-reply messages are used to indicate non-lisp prefixes. | |||
the LISP Internet with the legacy Internet. | ITRs can, if needed, be configured to send all traffic destined for | |||
non-lisp prefixes to a Proxy-ETR. | ||||
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. An ETR must never accept a Map-Reply message whose nonce does | Reply. An ETR must never accept a Map-Reply message whose nonce does | |||
not match one of the pending Map-Request messages. If an ETR does | not match one of the pending Map-Request messages. If an ETR does | |||
not accept Map-Reply messages with an invalid nonce, the risk of | not accept Map-Reply messages with an invalid nonce, the risk of | |||
attack is acceptable given the size of the nonce (64 bits). | attack is acceptable given the size of the nonce (64 bits). | |||
Note, however, that the nonce only confirms that the Map-Reply was | The nonce only confirms that the map-reply received was sent in | |||
sent by the ETR that received the Map-Request. It does not validate | response to a map-request sent, it does not validate the contents of | |||
the content of the Map-Reply message. | that map-reply. | |||
In addition, an attacker can perform EID-to-RLOC Cache overflow | In addition, an attacker could perform EID-to-RLOC Cache overflow | |||
attack by de-aggregating (i.e., splitting an EID prefix into | attack by de-aggregating (i.e., splitting an EID prefix into | |||
artificially smaller EID prefixes) either positive or negative | artificially smaller EID prefixes) either positive or negative | |||
mappings. | mappings. | |||
Severity level 1: the correct deployment of anti-spoofing techniques | ||||
prevents attacks leveraging the Map-Reply message. | ||||
6.3. Gleaning Attacks | 6.3. Gleaning Attacks | |||
A third type of attack involves the gleaning mechanism proposed in | A third type of attack involves the gleaning mechanism proposed in | |||
[I-D.ietf-lisp] and discussed in [Saucez09]. In order to reduce the | [RFC6830] and discussed in [Saucez09]. In order to reduce the time | |||
time required to obtain a mapping, [I-D.ietf-lisp] allows an ITR to | required to obtain a mapping, [RFC6830] allows an ITR to learn a | |||
learn a mapping from the LISP data encapsulated packets and the Map- | mapping from the LISP data encapsulated packets and the Map-Request | |||
Request packets that it receives. LISP data encapsulated packet | packets that it receives. LISP data encapsulated packet contains a | |||
contains a source RLOC, destination RLOC, source EID and destination | source RLOC, destination RLOC, source EID and destination EID. When | |||
EID. When an ITR receives a data encapsulated packet coming from a | an ITR receives a data encapsulated packet coming from a source EID | |||
source EID for which it does not already know a mapping, it may | for which it does not already know a mapping, it may insert the | |||
insert the mapping between the source RLOC and the source EID in its | mapping between the source RLOC and the source EID in its EID-to-RLOC | |||
EID-to-RLOC Cache. Gleaning can also be used when an ITR receives a | Cache. Gleaning could also be used when an ITR receives a Map- | |||
Map-Request as the Map-Request also contains a source EID address and | Request as the Map-Request also contains a source EID address and a | |||
a source RLOC. Once a gleaned entry has been added to the EID-to- | source RLOC. Once a gleaned entry has been added to the EID-to-RLOC | |||
RLOC cache, the LISP ITR sends a Map-Request to retrieve the mapping | cache, the LISP ITR sends a Map-Request to retrieve the mapping for | |||
for the gleaned EID from the mapping system. [I-D.ietf-lisp] | the gleaned EID from the mapping system. [RFC6830] recommends | |||
recommends storing the gleaned entries for only a few seconds. | storing the gleaned entries for only a few seconds. | |||
The first risk of gleaning is the ability to temporarily hijack an | The first risk of gleaning is the ability to temporarily hijack an | |||
identity. Consider an off-path attacker that wants to temporarily | identity. Consider an off-path attacker that wants to temporarily | |||
hijack host HA's identity and send packets to host HB with host HA's | hijack host HA's identity and send packets to host HB with host HA's | |||
identity. If the xTRs that serve host HB do not store a mapping for | identity. If the xTRs that serve host HB do not store a mapping for | |||
host HA, a non-spoofing off-path attacker (NSA) could send a LISP | host HA, a non-spoofing off-path attacker (NSA) could send a LISP | |||
encapsulated data packet to LR3 or LR4. The ETR will store the | encapsulated data packet to LR3 or LR4. The ETR will store the | |||
gleaned entry and use it to return the packets sent by host HB to the | gleaned entry and use it to return the packets sent by host HB to the | |||
attacker. In parallel, the ETR will send a Map-Request to retrieve | attacker. In parallel, the ETR will send a Map-Request to retrieve | |||
the mapping for HA. During a few seconds or until the reception of | the mapping for HA. During a few seconds or until the reception of | |||
skipping to change at page 17, line 14 | skipping to change at page 18, line 33 | |||
control plane rate limit. This will extend the duration of the | control plane rate limit. This will extend the duration of the | |||
gleaned entry. If host HA establishes a flow with host HB at that | gleaned entry. If host HA establishes a flow with host HB at that | |||
time, the packets that they exchange will first pass through the | time, the packets that they exchange will first pass through the | |||
attacker. | attacker. | |||
In both cases, the attack only lasts for a few seconds (unless the | In both cases, the attack only lasts for a few seconds (unless the | |||
attacker is able to exhaust the rate limitation). However it should | attacker is able to exhaust the rate limitation). However it should | |||
be noted that today a large amount of packets might be exchanged | be noted that today a large amount of packets might be exchanged | |||
during even a small fraction of time. | during even a small fraction of time. | |||
Severity level 2: to avoid any risk, gleaning should be deactivated | ||||
in public deployments of LISP. Deactivating gleaning does not reduce | ||||
LISP functionality. | ||||
7. Threats concerning Interworking | 7. Threats concerning Interworking | |||
[I-D.ietf-lisp-interworking] defines two network elements to allow | [RFC6832] defines two network elements to allow LISP and non-LISP | |||
LISP and non-LISP sites to communicate, namely the Proxy-ITR and the | sites to communicate, namely the Proxy-ITR and the Proxy-ETR. The | |||
Proxy-ETR. The Proxy-ITR encapsulates traffic from non-LISP sites in | Proxy-ITR encapsulates traffic from non-LISP sites in order to | |||
order to forward it toward LISP sites, while the Proxy-ETR | forward it toward LISP sites, while the Proxy-ETR decapsulates | |||
decapsulates traffic arriving from LISP sites in order to forward it | traffic arriving from LISP sites in order to forward it toward non- | |||
toward non-LISP sites. For these elements some of the attack based | LISP sites. For these elements some of the attack based on the LISP | |||
on the LISP specific header are not possible, for the simple reason | specific header are not possible, for the simple reason that some of | |||
that some of the fields cannot be used due to the unidirectional | the fields cannot be used due to the unidirectional nature of the | |||
nature of the traffic. | traffic. | |||
The Proxy-ITR has functionalities similar to the ITR, however, its | The Proxy-ITR has functionality similar to the ITR, however, its main | |||
main purpose is to encapsulate packets arriving from the DFZ in order | purpose is to encapsulate packets arriving from the DFZ in order to | |||
to reach LISP sites. This means that it is no bound to any | reach LISP sites. This means that it is no bound to any particular | |||
particular EID-Prefix, hence no mapping exists and no mapping can be | EID-Prefix, hence no mapping exists and no mapping can be configured | |||
configured in the EID-to-RLOC Database. This means that the Proxy- | in the EID-to-RLOC Database. This means that the Proxy-ITR element | |||
ITR element itself is not able to check whether or not the arriving | itself is not able to check whether or not the arriving traffic has | |||
traffic has the right to be encapsulated or not. To limit such an | the right to be encapsulated or not. To limit Proxy-ITRs being used | |||
issue it is recommended to use the current practice based on | as relays for attacks, Proxy-ITRs operators are encouraged to | |||
firewalls and ACLs on the machine running the Proxy-ITR service. On | implement best practices for data plane access control on the Proxy- | |||
the other side, the Proxy-ITR is meant to encapsulate only packets | ITRs and the border of the network, that is the edge of the scope of | |||
that are destined to one of the LISP sites it is serving. This is | the Proxy-ITR's announcement of the EID-Prefix. On the other side, | |||
the case for instance for a service provider selling Proxy-ITR | the Proxy-ITR is meant to encapsulate only packets that are destined | |||
services. For this purpose a static EID-to-RLOC Cache can be | to one of the LISP sites it is serving. This is the case for | |||
configured in order to encapsulate only valid packets. In case of a | instance for a service provider selling Proxy-ITR services. For this | |||
cache-miss no Map-Request needs to be sent and the packet can be | purpose a static EID-to-RLOC Cache can be configured in order to | |||
silently dropped. | encapsulate only valid packets. In case of a cache-miss no Map- | |||
Request needs to be sent and the packet can be silently dropped. | ||||
The Proxy-ETR has functionalities similar to the ETR, however, its | The Proxy-ETR has functionality similar to the ETR, however, its main | |||
main purpose is to inject un-encapsulated packet in the DFZ in order | purpose is to inject un-encapsulated packet in the DFZ in order to | |||
to reach non-LISP-Sites. This means that since there is no specific | reach non-LISP-Sites. This means that since there is no specific | |||
EID-Prefix downstream, it has no EID-to-RLOC Database that can be | EID-Prefix downstream, it has no EID-to-RLOC Database that can be | |||
used to check whether or not the destination EID is part of its | used to check whether or not the destination EID is part of its | |||
domain. In order to avoid for the Proxy-ETR to be used as relay in a | domain. In order to avoid for the Proxy-ETR to be used as relay in a | |||
DoS attack it is preferable to configure the EID-to-RLOC Cache with | DoS attack it is preferable to configure the EID-to-RLOC Cache with | |||
static entries used to check if an encapsulated packet coming from a | static entries used to check if an encapsulated packet coming from a | |||
specific RLOC and having a specific source EID is actually allowed to | specific RLOC and having a specific source EID is actually allowed to | |||
transit through the Proxy-ETR. This is also important for services | transit through the Proxy-ETR. This is also important for services | |||
provider selling Proxy-ETR service to actually process only packets | provider selling Proxy-ETR service to actually process only packets | |||
arriving from its customers. However, in case of cache-miss no Map- | arriving from its customers. However, in case of cache-miss no Map- | |||
Request needs to be sent, rather the packet can be silently dropped | Request needs to be sent, rather the packet can be silently dropped | |||
since it is not originating from a valid site. The same drop policy | since it is not originating from a valid site. The same drop policy | |||
should be used for packets with an invalid source RLOC or a valid | should be used for packets with an invalid source RLOC or a valid | |||
source RLOC but an invalid EID. | source RLOC but an invalid EID. | |||
As it is the case without LISP, the addition of public proxies offers | ||||
opportunities to attackers to commit attacks. LISP interworking does | ||||
not open new threats compared to other interworking techniques based | ||||
on public proxies. | ||||
Severity level 0: the careful configuration of PETR and PITR combined | ||||
with the deployment of anti-spoofing techniques mitigates the attacks | ||||
leveraging interworking and provides the same level of severity as | ||||
interworking techniques in the Internet. | ||||
8. Threats with Malicious xTRs | 8. Threats with Malicious xTRs | |||
In this section, we discuss the threats that could be caused by | In this section, we discuss the threats that could be caused by | |||
malicious xTRs. We consider the reference environment below where | malicious xTRs. We consider the reference environment below where | |||
EL1 is a malicious or compromised xTR. This malicious xTR serves a | EL1 is a malicious or compromised xTR. This malicious xTR serves a | |||
set of hosts that includes HC. The other xTRs and hosts in this | set of hosts that includes HC. The other xTRs and hosts in this | |||
network play the same role as in the reference environment described | network play the same role as in the reference environment described | |||
in Section 4. | in Section 4. | |||
+-----+ | +-----+ | |||
skipping to change at page 19, line 42 | skipping to change at page 20, line 46 | |||
| | | | | | |||
------------------- | ------------------- | |||
| | | | |||
| EID: HB | | EID: HB | |||
+-----+ | +-----+ | |||
| HB | | | HB | | |||
+-----+ | +-----+ | |||
Figure 2: Malicious xTRs' Reference Environment | Figure 2: Malicious xTRs' Reference Environment | |||
Malicious xTRs are probably the most serious threat to the LISP | Since xTRs are cornerstone in the LISP architecture, malicious xTRs | |||
control plane from a security viewpoint. To understand the problem, | are probably the most serious threat to the LISP control plane from a | |||
let us consider the following scenario. Host HC and HB exchange | security viewpoint. Indeed, the impact of compromised LISP Control | |||
packets with host HA. As all these hosts reside in LISP sites, LR1 | Plane can be severe, and the most effective way to attack any multi- | |||
and LR2 store mappings for HB and HC. Thus, these xTRs may need to | organizational control plane is from within the system itself. To | |||
exchange LISP control plane packets with EL1, e.g., to perform | understand the problem, let us consider the following scenario. Host | |||
reachability tests or to refresh expired mappings (e.g., if HC's | HC and HB exchange packets with host HA. As all these hosts reside | |||
mapping has a small TTL). | in LISP sites, LR1 and LR2 store mappings for HB and HC. Thus, these | |||
xTRs may need to exchange LISP control plane packets with EL1, e.g., | ||||
to perform reachability tests or to refresh expired mappings (e.g., | ||||
if HC's mapping has a small TTL). | ||||
A first threat against the LISP control plane is when EL1 replies to | A first threat against the LISP control plane is when EL1 replies to | |||
a legitimate Map-Request message sent by LR1 or LR2 with a Map-Reply | a legitimate Map-Request message sent by LR1 or LR2 with a Map-Reply | |||
message that contains an EID-Prefix that is larger than the prefix | message that contains an EID-Prefix that is larger than the prefix | |||
owned by the site attached to EL1. For instance if the prefix owned | owned by the site attached to EL1. For instance if the prefix owned | |||
by EL1 is 192.0.2.0/25 but the Map-Reply contain a mapping for | by EL1 is 192.0.2.0/25 but the Map-Reply contain a mapping for | |||
192.0.2.0/24. This could allow EL1 to attract packets destined to | 192.0.2.0/24. This could allow EL1 to attract packets destined to | |||
other EIDs than the EIDs that are attached to EL1. This attack is | other EIDs than the EIDs that are attached to EL1. This attack is | |||
called an "overclaiming" attack. | called an "overclaiming" attack. | |||
Overclaiming attack can be combined with de-aggregation to succeed a | A malicious ETR might fragment its eid-to-rloc database and then | |||
LISP Cache poisoning attack and prefix hijacking. For example, if | instigate traffic to its site, therefore creating state on the | |||
corresponding ITR's map-cache. This attack is called de-aggregation | ||||
attack. | ||||
Overclaiming attack could be combined with de-aggregation to succeed | ||||
a LISP Cache poisoning attack and prefix hijacking. For example, if | ||||
the EID prefix of the attacker is 192.0.2.0/25, it cannot provide a | the EID prefix of the attacker is 192.0.2.0/25, it cannot provide a | |||
mapping for the EID prefix 192.0.2.128/25 (i.e., it cannot hijack the | mapping for the EID prefix 192.0.2.128/25 (i.e., it cannot hijack the | |||
prefix). However, since a Map-Reply can contain several map records, | prefix). However, since a Map-Reply can contain several map records, | |||
it is possible to hijack such a prefix by providing as well a mapping | it is possible to hijack such a prefix by providing as well a mapping | |||
for it. To this end, the attacker can send a Map-Reply with an EID | for it. To this end, the attacker could send a Map-Reply with an EID | |||
prefix that covers at the same time the requested EID and the | prefix that covers at the same time the requested EID and the | |||
hijacked target prefix. Continuing the previous example, if the | hijacked target prefix. Continuing the previous example, if the | |||
requested mapping is for EID 192.0.2.1, and the target hijack prefix | requested mapping is for EID 192.0.2.1, and the target hijack prefix | |||
is 192.0.2.128/25, the Map-Reply will contain a map record for | is 192.0.2.128/25, the Map-Reply will contain a map record for | |||
192.0.2.0/24 and a map record for 192.0.2.128/25. Such a reply is | 192.0.2.0/24 and a map record for 192.0.2.128/25. Such a reply is | |||
considered legitimate according to the requested EID, while the map | considered legitimate according to the requested EID, while the map | |||
record of the hijacked prefix may lead to traffic redirection/ | record of the hijacked prefix may lead to traffic redirection/ | |||
disruption and ITR's Cache poisoning. | disruption and ITR's Cache poisoning. | |||
Another variant of the overclaiming attack is a Denial of Service | Another variant of the overclaiming attack is a Denial of Service | |||
attack by sending a Negative Map-Reply message for a larger prefix | attack by sending a Negative Map-Reply message for a larger prefix | |||
without any locator and with the Drop action. Such a Negative Map- | without any locator and with the Drop action. Such a Negative Map- | |||
Reply indicates that the ETR that receives it should discard all | Reply indicates that the ETR that receives it should discard all | |||
packets. | packets. | |||
The current LISP specification briefly discusses the overclaiming | By enabling [I-D.ietf-lisp-sec], overclaiming attacks are mitigated | |||
problem [I-D.ietf-lisp], but does not propose any specific solution | under the assumption that the mapping system can be trusted. This | |||
to solve the problem. Nevertheless, [I-D.ietf-lisp-sec] proposes a | assumption is equivalent to the general assumption that the control- | |||
solution to protect LISP against overclaiming attacks under the | plane is trustable in BGP meaning that the threat is not more severe | |||
assumption that the mapping system can be trusted. | than what is observed today. In addition, at the time of the writing | |||
all Map Server implementations are configured with the minimal prefix | ||||
allowed to be register by their customers such that a customer cannot | ||||
register an overclaimed attack. Therefore, if mappings are always | ||||
retrieved via the mapping system with LISP-Sec activated and if Map- | ||||
Registers are cryptographically protected as recommended in the | ||||
specifications, overclaiming attack is not possible. | ||||
Another concern with malicious xTRs is the possibility of Denial of | Another concern with malicious xTRs is the possibility of Denial of | |||
Service attacks. A first attack is the flooding attack that was | Service attacks. A first attack is the flooding attack that was | |||
described in [I-D.bagnulo-lisp-threat]. This attack allows a | described in [I-D.bagnulo-lisp-threat]. This attack allows a | |||
malicious xTR to redirect traffic to a victim. The malicious xTR | malicious xTR to redirect traffic to a victim. The malicious xTR | |||
first defines a mapping for HC with two RLOCs: its own RLOC (EL1) and | first defines a mapping for HC with two RLOCs: its own RLOC (EL1) and | |||
the RLOC of the victim (e.g., LR3). The victim's RLOC is set as | the RLOC of the victim (e.g., LR3). The victim's RLOC is set as | |||
unreachable in the mapping. HC starts a large download from host HA. | unreachable in the mapping. HC starts a large download from host HA. | |||
Once the download starts, the malicious xTR updates its Locator | Once the download starts, the malicious xTR updates its Locator | |||
Status Bits, changes the mapping's version number or sets the SMR bit | Status Bits, changes the mapping's version number or sets the SMR bit | |||
skipping to change at page 21, line 16 | skipping to change at page 22, line 35 | |||
An important point to note about this flooding attack is that it | An important point to note about this flooding attack is that it | |||
reveals a limitation of the LISP architecture. A LISP ITR relies on | reveals a limitation of the LISP architecture. A LISP ITR relies on | |||
the received mapping and possible reachability information to select | the received mapping and possible reachability information to select | |||
the RLOC of the ETR that it uses to reach a given EID or block of | the RLOC of the ETR that it uses to reach a given EID or block of | |||
EIDs. However, if the ITR made a mistake, e.g., due to | EIDs. However, if the ITR made a mistake, e.g., due to | |||
misconfiguration, wrong implementation, or other types of errors and | misconfiguration, wrong implementation, or other types of errors and | |||
has chosen a RLOC that does not serve the destination EID, there is | has chosen a RLOC that does not serve the destination EID, there is | |||
no easy way for the LISP ETR to inform the ITR of its mistake. A | no easy way for the LISP ETR to inform the ITR of its mistake. A | |||
possible solution is to enforce an ETR to perform a reachability test | possible solution is to enforce an ETR to perform a reachability test | |||
with the selected ITR as soon as there is LISP encapsulated traffic | with the selected ITR as soon as there is LISP encapsulated traffic | |||
between the two. | between the two. We recommend to never use reachability information | |||
without verifying them first. | ||||
Note that the attacks discussed in this section are for documentation | Note that the attacks discussed in this section are for documentation | |||
purpose only. Malicious xTRs are either somehow directly deployed by | purpose only. Malicious xTRs are either somehow directly deployed by | |||
attackers or the result of attackers gaining privileged access to | attackers or the result of attackers gaining privileged access to | |||
existing xTRs. As such, it is out of the scope of LISP to propose | existing xTRs. As such, it is out of the scope of LISP to propose | |||
any mechanism to protect routers or to avoid their deployments with | any mechanism to protect routers or to avoid their deployments with | |||
malicious intentions. | malicious intentions. | |||
Severity level 2: the correct deployment of anti-spoofing and rate | ||||
limiting techniques combined with LISP-Sec and Map-Register | ||||
authentication prevents threats caused by malicious xTRs, as long as | ||||
mappings are always retrieved via a trustable mapping system. In | ||||
addition reachability information should never been used without | ||||
being verified first. | ||||
9. Security of the Proposed Mapping Systems | 9. Security of the Proposed Mapping Systems | |||
9.1. LISP+ALT | 9.1. LISP+ALT | |||
One of the assumptions in [I-D.ietf-lisp] is that the mapping system | One of the assumptions in [RFC6830] is that the mapping system is | |||
is more secure than sending Map-Request and Map-Reply messages | more secure than sending Map-Request and Map-Reply messages directly. | |||
directly. We analyze this assumption in this section by analyzing | We analyze this assumption in this section by analyzing the security | |||
the security of the ALT mapping system. | of the ALT mapping system. | |||
The ALT mapping system is basically a manually configured overlay of | The ALT mapping system is basically a manually configured overlay of | |||
GRE tunnels between ALT routers. BGP sessions are established | GRE tunnels between ALT routers. BGP sessions are established | |||
between ALT routers that are connected through such tunnels. An ALT | between ALT routers that are connected through such tunnels. An ALT | |||
router advertises the EID prefixes that it serves over its BGP | router advertises the EID prefixes that it serves over its BGP | |||
sessions with neighboring ALT routers and the EID-Prefixes that it | sessions with neighboring ALT routers and the EID-Prefixes that it | |||
has learned from neighboring ALT routers. | has learned from neighboring ALT routers. | |||
The ALT mapping system is in fact a discovery system that allows any | The ALT mapping system is in fact a discovery system that allows any | |||
ALT router to discover the ALT router that is responsible for a given | ALT router to discover the ALT router that is responsible for a given | |||
skipping to change at page 22, line 12 | skipping to change at page 23, line 38 | |||
This ALT router then replies directly by sending a Map-Reply to the | This ALT router then replies directly by sending a Map-Reply to the | |||
RLOC of the requesting ITR. | RLOC of the requesting ITR. | |||
The security of the ALT mapping system depends on many factors, | The security of the ALT mapping system depends on many factors, | |||
including: | including: | |||
o The security of the intermediate ALT routers. | o The security of the intermediate ALT routers. | |||
o The validity of the BGP advertisements sent on the ALT overlay. | o The validity of the BGP advertisements sent on the ALT overlay. | |||
Unfortunately, experience with BGP on the global Internet has shown | ALT routers are interconnected with tunnels, the usage of secured | |||
that BGP is subject to various types of misconfiguration problems and | tunnels prevents BGP advertisements to be altered, dropped, or added | |||
security attacks. The SIDR working group is developing a more secure | by on-path or off path attackers. If a high level of security is | |||
inter-domain routing architecture to solve this problem ([RFC6480]). | required, works in the SIDR working group that develop security | |||
solutions for BGP ([RFC6480]) could be applied to LISP+ALT. | ||||
The security of the intermediate ALT routers is another concern. A | The security of the intermediate ALT routers is another concern. A | |||
malicious intermediate ALT router could manipulate the received BGP | malicious intermediate ALT router could manipulate the received BGP | |||
advertisements and also answer to received Map-Requests without | advertisements and also answer to received Map-Requests without | |||
forwarding them to their final destination on the overlay. This | forwarding them to their final destination on the overlay. This | |||
could lead to various types of redirection attacks. Note that in | could lead to various types of redirection attacks. Note that in | |||
contrast with a regular IP router that could also manipulate in | contrast with a regular IP router that could also manipulate in | |||
transit packets, when a malicious or compromised ALT router replies | transit packets, when a malicious or compromised ALT router replies | |||
to a Map-Request, it can redirect legitimate traffic for a long | to a Map-Request, it can redirect legitimate traffic for a long | |||
period of time by sending an invalid Map-Reply message. Thus, the | period of time by sending an invalid Map-Reply message. Thus, the | |||
impact of a malicious ALT router could be much more severe than a | impact of a malicious ALT router could be more severe than a | |||
malicious router in today's Internet. | malicious router in today's Internet. BGP is also weak in case of a | |||
router involved in the BGP topology is compromised. | ||||
Severity level 1: configuring correctly the Map Servers, Map | ||||
Revolvers, and ALT routers with filters corresponding to their | ||||
customer cones provides the same security level as in BGP. If more | ||||
security is necessary, cryptography must be used to validate the | ||||
mappings themselves. | ||||
9.2. LISP-DDT | 9.2. LISP-DDT | |||
The LISP Delegated Database Tree (LISP-DDT) mapping system is | The LISP Delegated Database Tree (LISP-DDT) mapping system is | |||
proposed as an alternative for LISP+ALT [I-D.fuller-lisp-ddt]. LISP- | proposed as an alternative for LISP+ALT [I-D.ietf-lisp-ddt]. LISP- | |||
DDT is a hierarchical distributed database for EID-to-RLOC mappings. | DDT is a hierarchical distributed database for EID-to-RLOC mappings. | |||
Each DDT node is configured with an EID prefix it is authoritative | Each DDT node is configured with an EID prefix it is authoritative | |||
for, as well as the RLOC addresses and EID prefixes of the LISP-DDT | for, as well as the RLOC addresses and EID prefixes of the LISP-DDT | |||
nodes that are authoritative for more specific EID prefix. In LISP- | nodes that are authoritative for more specific EID prefix. In LISP- | |||
DDT, mappings are retrieved iteratively. A Map Resolver that needs | DDT, mappings are retrieved iterative. A Map Resolver that needs to | |||
to locate a mapping traverses the tree of DDT nodes contacting them | locate a mapping traverses the tree of DDT nodes contacting them one | |||
one after another until the leaf of the DDT tree that is | after another until the leaf of the DDT tree that is authoritative | |||
authoritative for the longest matching EID prefix for the mapping's | for the longest matching EID prefix for the mapping's EID is reached. | |||
EID is reached. The Map Resolver traverses the hierarchy of LISP-DDT | The Map Resolver traverses the hierarchy of LISP-DDT nodes by sending | |||
nodes by sending Map-Requests, with the LISP-DDT-originated bit set, | Map-Requests, with the LISP-DDT-originated bit set, to LISP-DDT | |||
to LISP-DDT nodes. The Map Resolver first contacts the root of the | nodes. The Map Resolver first contacts the root of the hierarchy. | |||
hierarchy. When a LISP-DDT node receives a Map-Request, it replies | When a LISP-DDT node receives a Map-Request, it replies to the Map | |||
to the Map Resolver with a Map-Referral that contains the list of the | Resolver with a Map-Referral that contains the list of the locators | |||
locators of its children that are authoritative of a prefix that | of its children that are authoritative of a prefix that covers the | |||
covers the EID in the Map-Request. The Map Resolver then contacts | EID in the Map-Request. The Map Resolver then contacts one of these | |||
one of these children that will return, at its turn, a Map-Referral. | children that will return, at its turn, a Map-Referral. This | |||
This procedure is iteratively executed until a Map-Referral marked | procedure is iteratively executed until a Map-Referral marked with | |||
with the done flag is received. The locators that appear in a | the done flag is received. The locators that appear in a referral | |||
referral with the done flag are those of the authoritative ETRs for | with the done flag are those of the authoritative ETRs for the EID in | |||
the EID in the Map-Request. At that moment, the Map Resolver falls | the Map-Request. At that moment, the Map Resolver falls back to its | |||
back to its normal behavior and sends a Map-Request to the ETR in | normal behavior and sends a Map-Request to the ETR in order for the | |||
order for the ITR to obtain the mapping. It is worth to mention that | ITR to obtain the mapping. It is worth to mention that the Map | |||
the Map Resolver can cache the referrals to avoid traversing all the | Resolver can cache the referrals to avoid traversing all the whole | |||
whole hierarchy for all mapping retrievals. | hierarchy for all mapping retrievals. | |||
The operation in LISP-DDT is different from ALT and thus it does not | The operation in LISP-DDT is different from ALT and thus it does not | |||
present the same threats as LISP+ALT. As a first difference, LISP- | present the same threats as LISP+ALT. As a first difference, LISP- | |||
DDT natively includes security specification providing data origin | DDT natively includes security specification providing data origin | |||
authentication, data integrity protection and secure EID prefix | authentication, data integrity protection and secure EID prefix | |||
delegation. Hence, these aspects are no further explored in this | delegation. Hence, these aspects are no further explored in this | |||
document. | document. | |||
However, threats exist for LISP-DDT as well. For instance, a DoS | However, threats exist for LISP-DDT as well. For instance, a DoS | |||
attack can be performed on the mapping infrastructure by asking to | attack could be performed on the mapping infrastructure by asking to | |||
retrieve a large amount of mappings at the same time, hence, the | retrieve a large amount of mappings at the same time, hence, the | |||
importance of carefully dimensioning the topology of the DDT | importance of carefully dimensioning the topology of the DDT | |||
hierarchy. | hierarchy. | |||
If an attacker manages to compromise a LISP-DDT node it can send fake | If an attacker manages to compromise a LISP-DDT node it could send | |||
referrals to the Map Resolver and then control the mappings delivered | fake referrals to the Map Resolver and then control the mappings | |||
to the ITRs. Furthermore, the effects of such an attack can be | delivered to the ITRs. Furthermore, the effects of such an attack | |||
longer than the attack itself if the Map Resolver caches the | could be longer than the attack itself if the Map Resolver caches the | |||
referrals. | referrals. | |||
Severity level 1: the correct deployment of anti-spoofing and rate | ||||
limiting techniques combined with embedded security features of LISP- | ||||
DDT prevent attacks leveraging LISP-DDT. | ||||
10. Threats concerning LISP-MS | 10. Threats concerning LISP-MS | |||
LISP-MS ([I-D.ietf-lisp-ms] specifies two network elements, namely | LISP-MS ([RFC6833] specifies two network elements, namely the Map | |||
the Map Server and the Map Resolver, that are meant to be used by | Server and the Map Resolver, that are meant to be used by xTRs to | |||
xTRs to access the mapping system. The advantage is clearly the fact | access the mapping system. The advantage is clearly the fact that | |||
that even if the mapping system changes in time xTRs do not need to | even if the mapping system changes in time xTRs do not need to change | |||
change anything since they deal only with Map Servers and Map | anything since they deal only with Map Servers and Map Resolvers. | |||
Resolvers. This includes the security aspects, since no change in | This includes the security aspects, since no change in the local | |||
the local security policies is needed. | security policies is needed. | |||
10.1. Map Server | 10.1. Map Server | |||
Map Server is used to dispatch Map-Request coming from the mapping | Map Server is used to dispatch Map-Request coming from the mapping | |||
system to ETRs that are authoritative for the EID in the request. To | system to ETRs that are authoritative for the EID in the request. To | |||
this end it is necessary that ETRs register their mappings to the Map | this end it is necessary that ETRs register their mappings to the Map | |||
Server. This allows the Map Server to know toward which ETR to | Server. This allows the Map Server to know toward which ETR to | |||
forward Map-Requests and also to announce the EID-prefixes of the | forward Map-Requests and also to announce the EID-prefixes of the | |||
registered mappings in the mapping system. | registered mappings in the mapping system. | |||
LISP uses a shared key approach in order to protect the Map Server | LISP uses a shared key approach in order to protect the Map Server | |||
and grant registration rights only to ETRs that have a valid key. | and grant registration rights only to ETRs that have a valid key. | |||
Shared key must be used to protect both the registration message and | Shared key must be used to protect both the registration message and | |||
the Map-Notify message when used. The mechanism used to share the | the Map-Notify message when used. The mechanism used to share the | |||
key between a Map Server and an ETRs must be secured to avoid that a | key between a Map Server and an ETRs must be secured to avoid that a | |||
malicious nodes catch the key and uses it to send forged Map-Register | malicious nodes catch the key and uses it to send forged Map-Register | |||
message to the Map Server. A forged Map-Register message can be use | message to the Map Server. A forged Map-Register message could be | |||
to attract Map-Request and thus provide invalid Map-Replies or the | used to attract Map-Request and thus provide invalid Map-Replies or | |||
redirect Map-Requests to a target to mount a DoS attack. | the redirect Map-Requests to a target to mount a DoS attack. | |||
More subtle attacks can be carried out only in the case of malicious | More subtle attacks could be carried out only in the case of | |||
ETRs. A malicious ETR can register an invalid RLOC to divert Map- | malicious ETRs. A malicious ETR could register an invalid RLOC to | |||
Requests to a target ETR and succeed a DoS attack on it. To avoid | divert Map-Requests to a target ETR and succeed a DoS attack on it. | |||
this kind of attack, the Map Server must check that the registered | To avoid this kind of attack, the Map Server must check that the | |||
RLOCs belong to ETRs authoritative for the registered EID prefix. | registered RLOCs belong to ETRs authoritative for the registered EID | |||
Such check can be done by sending and explicit Map-Request for the | prefix. Such check can be done by sending and explicit Map-Request | |||
EID to the ETRs in the mapping and check that replies with a Map- | for the EID to the ETRs in the mapping and check that replies with a | |||
Reply. If the ETRs return a valid Map-Reply, the RLOC belongs to an | Map-Reply. If the ETRs return a valid Map-Reply, the RLOC belongs to | |||
authoritative ETR. Note that this does not protect against malicious | an authoritative ETR. Note that this does not protect against | |||
ETRs that create forged Map-Replies. Stronger techniques for RLOC | malicious ETRs that create forged Map-Replies. Stronger techniques | |||
check are presented in [I-D.saucez-lisp-mapping-security]. | for RLOC check are presented in [I-D.saucez-lisp-mapping-security]. | |||
Similarly to the previous case, a malicious ETR can register an | Similarly to the previous case, a malicious ETR could register an | |||
invalid EID-prefix to attract Map-Requests or to redirect them to a | invalid EID-prefix to attract Map-Requests or to redirect them to a | |||
target to mount a DoS attack. To avoid this kind of attack, the Map | target to mount a DoS attack. To avoid this kind of attack, the Map | |||
Server must check that the prefixes registered by an ETR belong to | Server must check that the prefixes registered by an ETR belong to | |||
that ETR. One method could be to manually configure EID-prefix | that ETR. One method could be to manually configure EID-prefix | |||
ranges that can be announced by ETRs. | ranges that can be announced by ETRs. | |||
[I-D.saucez-lisp-mapping-security] present alternative techniques to | [I-D.saucez-lisp-mapping-security] present alternative techniques to | |||
verify the prefix claimed by an ETR. | verify the prefix claimed by an ETR. | |||
Severity level 1: the correct deployment of anti-spoofing and rate | ||||
limiting techniques combined with usage of Map-Register | ||||
authentication prevents attacks leveraging the Map Server. | ||||
10.2. Map Resolver | 10.2. Map Resolver | |||
Map Resolvers receive Map-Requests, typically from ITRs, and use the | Map Resolvers receive Map-Requests, typically from ITRs, and use the | |||
mapping system to find a mapping for the EID in the Map-Request. It | mapping system to find a mapping for the EID in the Map-Request. It | |||
can work in two modes: | can work in two modes: | |||
Non-Caching Mode: The resolver just forwards the Map-Request to the | Non-Caching Mode: The resolver just forwards the Map-Request to the | |||
mapping system, which will take care of delivering the request | mapping system, which will take care of delivering the request | |||
to an authoritative ETR. The latter will send back a Map-Reply | to an authoritative ETR. The latter will send back a Map-Reply | |||
directly to the ITR that has originally issued the request. | directly to the ITR that has originally issued the request. | |||
skipping to change at page 25, line 5 | skipping to change at page 26, line 47 | |||
it to the mapping system. In this way it will receive the | it to the mapping system. In this way it will receive the | |||
corresponding reply, store a local copy in a cache, and send | corresponding reply, store a local copy in a cache, and send | |||
back a reply to the original requester. Since all requested | back a reply to the original requester. Since all requested | |||
mappings are locally cached, before actually making a request | mappings are locally cached, before actually making a request | |||
to the mapping system it performs a lookup in the local cache | to the mapping system it performs a lookup in the local cache | |||
and in case of an hit, it send back a reply without querying | and in case of an hit, it send back a reply without querying | |||
the mapping system. | the mapping system. | |||
In its basic mode, i.e., non-caching mode, the Map Resolver does not | In its basic mode, i.e., non-caching mode, the Map Resolver does not | |||
keep state, hence, the only direct form of attack is a DoS attack, | keep state, hence, the only direct form of attack is a DoS attack, | |||
where an attacker (or a group of attackers) can try to exhaust | where an attacker (or a group of attackers) could try to exhaust | |||
computational power by flooding the resolver with requests. Common | computational power by flooding the resolver with requests. Common | |||
filtering techniques and BCP against DoS attacks can be applied in | filtering techniques and BCP against DoS attacks could be applied in | |||
this case. | this case. | |||
Nonetheless, attackers can use resolvers as relay for DoS attacks | Nonetheless, attackers could use resolvers as relay for DoS attacks | |||
against xTRs. An off-path spoofing attacker can generate a high load | against xTRs. An off-path spoofing attacker could generate a high | |||
of requests to a set of resolvers, hence distributing the load in | load of requests to a set of resolvers, hence distributing the load | |||
order to avoid to be blocked. All this requests can use a specific | in order to avoid to be blocked. All this requests can use a | |||
EID that makes all the requests to be forwarded to a specific ETR, | specific EID that makes all the requests to be forwarded to a | |||
which, as a result, will be victim of a DDoS attack. Similarly, the | specific ETR, which, as a result, will be victim of a DDoS attack. | |||
attacker can use a spoofed source address making all the replies to | Similarly, the attacker could use a spoofed source address making all | |||
converge to one single ITR, which, as a result, will be victim of a | the replies to converge to one single ITR, which, as a result, will | |||
DDoS attack. Such scenarios are not specific to LISP, but rather a | be victim of a DDoS attack. Such scenarios are not specific to LISP, | |||
common problem of every query infrastructure, hence the same BCP can | but rather a common problem of every query infrastructure, hence the | |||
be applied in order to limit the attacks. | same BCP can be applied in order to limit the attacks. | |||
When functioning in caching-mode, the resolver will use the same type | When functioning in caching-mode, the resolver will use the same type | |||
of cache than ITRs. Due to its similarity with the ITRs' cache the | of cache than ITRs. Due to its similarity with the ITRs' cache the | |||
analysis provided in Section 5.2 holds also in this case. However, | analysis provided in Section 5.2 holds also in this case. However, | |||
an important difference exists: this cache is not used for packet | an important difference exists: this cache is not used for packet | |||
encapsulation but only for quick replies when new requests arrive. | encapsulation but only for quick replies when new requests arrive. | |||
Therefore, as the caching-mode is only an optimization, the attacks | Therefore, as the caching-mode is only an optimization, the attacks | |||
that aim at filling the Map Resolver cache have a less severe impact | that aim at filling the Map Resolver cache have a less severe impact | |||
on the traffic. | on the traffic. The usage of LISP-Sec prevents ITR to obtain invalid | |||
mappings. It is worth noting that caching is not used in current | ||||
implementations as it makes mapping synchronization hard for mobile | ||||
devices. | ||||
When Map Resolvers are used as front-end of the LIS-DDT mapping | When Map Resolvers are used as front-end of the LIS-DDT mapping | |||
system they may be exposed to another variant of DoS. Indeed, the | system they may be exposed to another variant of DoS. Indeed, the | |||
iterative operation of the Map Resolver on the DDT hierarchy implies | iterative operation of the Map Resolver on the DDT hierarchy implies | |||
that it has to maintain state about the ITR that requested the | that it has to maintain state about the ITR that requested the | |||
mapping, this in order to send the final Map-Request to the ETR on | mapping, this in order to send the final Map-Request to the ETR on | |||
behalf of the ITR. An attacker might leverage on this to fill the | behalf of the ITR. An attacker might leverage on this to fill the | |||
Map Resolver memory and then cause a DoS. | Map Resolver memory and then cause a DoS. Rate limiting can be used | |||
to present this attack. | ||||
The question may arise on whether a Kaminsky-like attack is possible | The question may arise on whether a Kaminsky-like attack is possible | |||
for an off-path attacker against ITRs sending requests to a certain | for an off-path attacker against ITRs sending requests to a certain | |||
resolver. The 64-bits nonce present in every message has been | resolver. The 64-bits nonce present in every message has been | |||
introduced in the LISP specification to avoid such kind of attack. | introduced in the LISP specification to avoid such kind of attack. | |||
There has been discussion within the LISP Working Group on the | There has been discussion within the LISP Working Group on the | |||
optimal size of the nonce, and it seems that 64-bits provides | optimal size of the nonce, and it seems that 64-bits provides | |||
sufficient protection. | sufficient protection. | |||
A possible way to limit the above-described attacks is to introduce | A possible way to limit the above-described attacks is to introduce | |||
strong identification in the Map-Request/Map-Reply by using the | strong identification in the Map-Request/Map-Reply by using the | |||
Encapsulated Control Message with authentication enabled. | Encapsulated Control Message with authentication enabled | |||
[I-D.ietf-lisp-sec]. | ||||
11. Suggested Recommendations | Severity level 1: the correct deployment of anti-spoofing and rate | |||
limiting techniques combined with LISP-Sec and Map-Register | ||||
authentication prevent attacks leveraging Map Resolver. | ||||
To mitigate the impact of attacks against LISP, the following | 11. Security Recommendations | |||
recommendations should be followed. | ||||
Different deployments of LISP may have different security | ||||
requirements. The recommendations in this document aim at mitigating | ||||
threats in in public deployments of LISP. | ||||
To mitigate the impact of attacks against LISP in public deployments, | ||||
the following recommendations should be followed. | ||||
First, the use of some form of filtering can help in avoid or at | First, the use of some form of filtering can help in avoid or at | |||
least mitigate some types of attacks. | least mitigate some types of attacks. | |||
o On ETRs, packets should be decapsulated only if the destination | o On ETRs, packets should be decapsulated only if the destination | |||
EID is effectively part of the EID-Prefix downstream the ETR. | EID is effectively part of the EID-Prefix downstream the ETR. | |||
Further, still on ETRs, packets should be decapsulated only if a | Further, still on ETRs, packets should be decapsulated only if a | |||
mapping for the source EID is present in the EID-to-RLOC Cache and | mapping for the source EID is present in the EID-to-RLOC Cache and | |||
has been obtained through the mapping system (not gleaned). | has been obtained through the mapping system (not gleaned). | |||
skipping to change at page 27, line 9 | skipping to change at page 29, line 16 | |||
as [RFC3704] or SAVI [SAVI], it can be expected that attackers will | as [RFC3704] or SAVI [SAVI], it can be expected that attackers will | |||
become less capable of sending packets with a spoofed source address. | become less capable of sending packets with a spoofed source address. | |||
To prevent packet injection attacks from non-spoofing attackers | To prevent packet injection attacks from non-spoofing attackers | |||
(NSA), ETRs should always verify that the source RLOC of each | (NSA), ETRs should always verify that the source RLOC of each | |||
received LISP data encapsulated packet corresponds to one of the | received LISP data encapsulated packet corresponds to one of the | |||
RLOCs listed in the mappings for the source EID found in the inner | RLOCs listed in the mappings for the source EID found in the inner | |||
packet. An alternative could be to use existing IPSec techniques | packet. An alternative could be to use existing IPSec techniques | |||
[RFC4301] and when necessary including perhaps [RFC5386] to establish | [RFC4301] and when necessary including perhaps [RFC5386] to establish | |||
an authenticated tunnel between the ITR and the ETR. | an authenticated tunnel between the ITR and the ETR. | |||
[I-D.ietf-lisp] recommends to rate limit the control messages that | [RFC6830] recommends to rate limit the control messages that are sent | |||
are sent by an xTR. This limit is important to deal with denial of | by an xTR. This limit is important to deal with denial of service | |||
service attacks. However, a strict limit, e.g., implemented with a | attacks. However, a strict limit, e.g., implemented with a token | |||
token bucket, on all the Map-Request and Map-Reply messages sent by | bucket, on all the Map-Request and Map-Reply messages sent by an xTR | |||
an xTR is not sufficient. An xTR should distinguish between | is not sufficient. An xTR should distinguish between different types | |||
different types of control plane packets: | of control plane packets: | |||
1. The Map-Request messages that it sends to refresh expired mapping | 1. The Map-Request messages that it sends to refresh expired mapping | |||
information. | information. | |||
2. The Map-Request messages that it sends to obtain mapping | 2. The Map-Request messages that it sends to obtain mapping | |||
information because one of the served hosts tried to contact an | information because one of the served hosts tried to contact an | |||
external EID. | external EID. | |||
3. The Map-Request messages that it sends as reachability probes. | 3. The Map-Request messages that it sends as reachability probes. | |||
skipping to change at page 27, line 40 | skipping to change at page 29, line 47 | |||
These control plane messages are used for different purposes. Fixing | These control plane messages are used for different purposes. Fixing | |||
a global rate limit for all control plane messages increases the risk | a global rate limit for all control plane messages increases the risk | |||
of Denial of Service attacks if a single type of control plane | of Denial of Service attacks if a single type of control plane | |||
message can exceed the configured limit. This risk could be | message can exceed the configured limit. This risk could be | |||
mitigated by either specifying a rate for each of the five types of | mitigated by either specifying a rate for each of the five types of | |||
control plane messages. Another option could be to define a maximum | control plane messages. Another option could be to define a maximum | |||
rate for all control plane messages, and prioritize the control plane | rate for all control plane messages, and prioritize the control plane | |||
messages according to the list above (with the highest priority for | messages according to the list above (with the highest priority for | |||
message type 1). | message type 1). | |||
In [I-D.ietf-lisp], there is no mechanism that allows an xTR to | In [RFC6830], there is no mechanism that allows an xTR to verify the | |||
verify the validity of the content a Map-Reply message that it | validity of the content a Map-Reply message that it receives. | |||
receives. Besides the attacks discussed earlier in the document, a | Besides the attacks discussed earlier in the document, a time-shifted | |||
time-shifted attack where an attacker is able to modify the content | attack where an attacker is able to modify the content of a Map-Reply | |||
of a Map-Reply message but then needs to move off-path could also | message but then needs to move off-path could also create redirection | |||
create redirection attacks. The nonce only allows an xTR to verify | attacks. The nonce only allows an xTR to verify that a Map-Reply | |||
that a Map-Reply responds to a previously sent Map-Request message. | responds to a previously sent Map-Request message. To verify the | |||
In order to allow verifying the validity and integrity of bindings | validity and integrity of bindings between EID-Prefixes and their | |||
between EID-Prefixes and their RLOCS solutions proposed in | RLOCS, solutions proposed in [I-D.saucez-lisp-mapping-security] and | |||
[I-D.saucez-lisp-mapping-security] and [I-D.ietf-lisp-sec] should be | [I-D.ietf-lisp-sec] could be deployed. Having LISP-SEC and lisp- | |||
deployed. Having such kind of mechanisms would allow ITRs to ignore | mapping-security in place would prevent all the above-mentioned | |||
non-verified mappings, thus increasing security. | threats. | |||
Finally, there is also the risk of Denial of Service attack against | Finally, there is also the risk of Denial of Service attack against | |||
the EID-to-RLOC Cache. We have discussed these attacks when | the EID-to-RLOC Cache. We have discussed these attacks when | |||
considering external attackers with, e.g., the gleaning mechanism and | considering external attackers with, e.g., the gleaning mechanism and | |||
in Section 5.2. If an ITR has a limited EID-to-RLOC Cache, a | in Section 5.2. If an ITR has a limited EID-to-RLOC Cache, a | |||
malicious or compromised host residing in the site that it serves | malicious or compromised host residing in the site that it serves | |||
could generate packets to random destinations to force the ITR to | could generate packets to random destinations to force the ITR to | |||
issue a large number of Map-Requests whose answers could fill its | issue a large number of Map-Requests whose answers could fill its | |||
cache. Faced with such misbehaving hosts, LISP ITR should be able to | cache. Faced with such misbehaving hosts, LISP ITR should be able to | |||
limit the percent of Map-Requests that it sends for a given source | limit the percent of Map-Requests that it sends for a given source | |||
skipping to change at page 28, line 35 | skipping to change at page 30, line 41 | |||
Security considerations are the core of this document and do not need | Security considerations are the core of this document and do not need | |||
to be further discussed in this section. | to be further discussed in this section. | |||
14. Acknowledgments | 14. 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. | |||
We would like to thank Jeff Wheeler for his comments. | The authors would like to thank Vina Ermagan, Darrel Lewis, and Jeff | |||
Wheeler for their 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). | |||
15. References | 15. References | |||
15.1. Normative References | 15.1. Normative References | |||
[I-D.fuller-lisp-ddt] | [RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The | |||
Fuller, V., Lewis, D., Ermagan, V., and A. Jain, "LISP | Locator/ID Separation Protocol (LISP)", RFC 6830, | |||
Delegated Database Tree", draft-fuller-lisp-ddt-04 (work | January 2013. | |||
in progress), September 2012. | ||||
[I-D.ietf-lisp] | [RFC6832] Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, | |||
Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, | "Interworking between Locator/ID Separation Protocol | |||
"Locator/ID Separation Protocol (LISP)", | (LISP) and Non-LISP Sites", RFC 6832, January 2013. | |||
draft-ietf-lisp-23 (work in progress), May 2012. | ||||
[I-D.ietf-lisp-alt] | [RFC6833] Fuller, V. and D. Farinacci, "Locator/ID Separation | |||
Fuller, V., Farinacci, D., Meyer, D., and D. Lewis, "LISP | Protocol (LISP) Map-Server Interface", RFC 6833, | |||
Alternative Topology (LISP+ALT)", draft-ietf-lisp-alt-10 | January 2013. | |||
(work in progress), December 2011. | ||||
[I-D.ietf-lisp-interworking] | [RFC6834] Iannone, L., Saucez, D., and O. Bonaventure, "Locator/ID | |||
Lewis, D., Meyer, D., Farinacci, D., and V. Fuller, | Separation Protocol (LISP) Map-Versioning", RFC 6834, | |||
"Interworking LISP with IPv4 and IPv6", | January 2013. | |||
draft-ietf-lisp-interworking-06 (work in progress), | ||||
March 2012. | ||||
[I-D.ietf-lisp-map-versioning] | [RFC6836] Fuller, V., Farinacci, D., Meyer, D., and D. Lewis, | |||
Iannone, L., Saucez, D., and O. Bonaventure, "LISP Map- | "Locator/ID Separation Protocol Alternative Logical | |||
Versioning", draft-ietf-lisp-map-versioning-09 (work in | Topology (LISP+ALT)", RFC 6836, January 2013. | |||
progress), March 2012. | ||||
[I-D.ietf-lisp-ms] | [RFC6837] Lear, E., "NERD: A Not-so-novel Endpoint ID (EID) to | |||
Fuller, V. and D. Farinacci, "LISP Map Server Interface", | Routing Locator (RLOC) Database", RFC 6837, January 2013. | |||
draft-ietf-lisp-ms-16 (work in progress), March 2012. | ||||
15.2. Informative References | 15.2. Informative References | |||
[Chu] Jerry Chu, H., "Tuning TCP Parameters for the 21st | [Chu] Jerry Chu, H., "Tuning TCP Parameters for the 21st | |||
Century", 75th IETF, Stockholm, July 2009, | Century", 75th IETF, Stockholm, July 2009, | |||
<http://tools.ietf.org/wg/savi/>. | <http://tools.ietf.org/wg/savi/>. | |||
[I-D.bagnulo-lisp-threat] | [I-D.bagnulo-lisp-threat] | |||
Bagnulo, M., "Preliminary LISP Threat Analysis", | Bagnulo, M., "Preliminary LISP Threat Analysis", | |||
draft-bagnulo-lisp-threat-01 (work in progress), | draft-bagnulo-lisp-threat-01 (work in progress), | |||
July 2007. | July 2007. | |||
[I-D.ietf-lisp-ddt] | ||||
Fuller, V., Lewis, D., Ermagan, V., and A. Jain, "LISP | ||||
Delegated Database Tree", draft-ietf-lisp-ddt-00 (work in | ||||
progress), October 2012. | ||||
[I-D.ietf-lisp-sec] | [I-D.ietf-lisp-sec] | |||
Maino, F., Ermagan, V., Cabellos-Aparicio, A., Saucez, D., | Maino, F., Ermagan, V., Cabellos-Aparicio, A., Saucez, D., | |||
and O. Bonaventure, "LISP-Security (LISP-SEC)", | and O. Bonaventure, "LISP-Security (LISP-SEC)", | |||
draft-ietf-lisp-sec-04 (work in progress), October 2012. | draft-ietf-lisp-sec-04 (work in progress), October 2012. | |||
[I-D.ietf-tcpm-tcp-security] | [I-D.ietf-tcpm-tcp-security] | |||
Gont, F., "Survey of Security Hardening Methods for | Gont, F., "Survey of Security Hardening Methods for | |||
Transmission Control Protocol (TCP) Implementations", | Transmission Control Protocol (TCP) Implementations", | |||
draft-ietf-tcpm-tcp-security-03 (work in progress), | draft-ietf-tcpm-tcp-security-03 (work in progress), | |||
March 2012. | March 2012. | |||
[I-D.lear-lisp-nerd] | ||||
Lear, E., "NERD: A Not-so-novel EID to RLOC Database", | ||||
draft-lear-lisp-nerd-09 (work in progress), April 2012. | ||||
[I-D.meyer-lisp-cons] | [I-D.meyer-lisp-cons] | |||
Brim, S., "LISP-CONS: A Content distribution Overlay | Brim, S., "LISP-CONS: A Content distribution Overlay | |||
Network Service for LISP", draft-meyer-lisp-cons-04 (work | Network Service for LISP", draft-meyer-lisp-cons-04 (work | |||
in progress), April 2008. | in progress), April 2008. | |||
[I-D.saucez-lisp-mapping-security] | [I-D.saucez-lisp-mapping-security] | |||
Saucez, D. and O. Bonaventure, "Securing LISP Mapping | Saucez, D. and O. Bonaventure, "Securing LISP Mapping | |||
replies", draft-saucez-lisp-mapping-security-00 (work in | replies", draft-saucez-lisp-mapping-security-00 (work in | |||
progress), February 2011. | progress), February 2011. | |||
skipping to change at page 30, line 40 | skipping to change at page 32, line 41 | |||
[SAVI] IETF, "Source Address Validation Improvements Working | [SAVI] IETF, "Source Address Validation Improvements Working | |||
Group", <http://tools.ietf.org/wg/savi/>. | Group", <http://tools.ietf.org/wg/savi/>. | |||
[Saucez09] | [Saucez09] | |||
Saucez, D. and L. Iannone, "How to mitigate the effect of | Saucez, D. and L. Iannone, "How to mitigate the effect of | |||
scans on mapping systems", Submitted to the Trilogy | scans on mapping systems", Submitted to the Trilogy | |||
Summer School on Future Internet. | Summer School on Future Internet. | |||
Appendix A. Document Change Log | Appendix A. Document Change Log | |||
o Version 04 Posted February 2013. | ||||
* Clear statement that the document compares threats of public | ||||
LISP deployments with threats in the current Internet | ||||
architecture. | ||||
* Addition of a severity level discussion at the end of each | ||||
section. | ||||
* Addressed comments from D. Lewis' review. | ||||
* Updated References. | ||||
* Further editorial polishing. | ||||
o Version 03 Posted October 2012. | o Version 03 Posted October 2012. | |||
* Dropped Reference to RFC 2119 notation because it is not | * Dropped Reference to RFC 2119 notation because it is not | |||
actually used in the document. | actually used in the document. | |||
* Deleted future plans section. | * Deleted future plans section. | |||
* Updated References | * Updated References | |||
* Deleted/Modified sentences referring to the early status of the | * Deleted/Modified sentences referring to the early status of the | |||
End of changes. 119 change blocks. | ||||
354 lines changed or deleted | 521 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |