draft-ietf-v6ops-tunnel-loops-02.txt   draft-ietf-v6ops-tunnel-loops-03.txt 
Network Working Group G. Nakibly Network Working Group G. Nakibly
Internet-Draft National EW Research & Internet-Draft National EW Research &
Intended status: Informational Simulation Center Intended status: Informational Simulation Center
Expires: July 28, 2011 F. Templin Expires: August 8, 2011 F. Templin
Boeing Research & Technology Boeing Research & Technology
January 24, 2011 February 04, 2011
Routing Loop Attack using IPv6 Automatic Tunnels: Problem Statement and Routing Loop Attack using IPv6 Automatic Tunnels: Problem Statement and
Proposed Mitigations Proposed Mitigations
draft-ietf-v6ops-tunnel-loops-02.txt draft-ietf-v6ops-tunnel-loops-03.txt
Abstract Abstract
This document is concerned with security vulnerabilities in IPv6-in- This document is concerned with security vulnerabilities in IPv6-in-
IPv4 automatic tunnels. These vulnerabilities allow an attacker to IPv4 automatic tunnels. These vulnerabilities allow an attacker to
take advantage of inconsistencies between the IPv4 routing state and take advantage of inconsistencies between the IPv4 routing state and
the IPv6 routing state. The attack forms a routing loop which can be the IPv6 routing state. The attack forms a routing loop which can be
abused as a vehicle for traffic amplification to facilitate DoS abused as a vehicle for traffic amplification to facilitate DoS
attacks. The first aim of this document is to inform on this attack attacks. The first aim of this document is to inform on this attack
and its root causes. The second aim is to present some possible and its root causes. The second aim is to present some possible
skipping to change at page 1, line 40 skipping to change at page 1, line 40
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 28, 2011. This Internet-Draft will expire on August 8, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2011 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
skipping to change at page 2, line 16 skipping to change at page 2, line 16
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. A Detailed Description of the Attack . . . . . . . . . . . . . 4 2. A Detailed Description of the Attack . . . . . . . . . . . . . 4
3. Proposed Mitigation Measures . . . . . . . . . . . . . . . . . 6 3. Proposed Mitigation Measures . . . . . . . . . . . . . . . . . 6
3.1. Destination and Source Address Checks . . . . . . . . . . 6 3.1. Verification of end point existence . . . . . . . . . . . 6
3.1.1. Known IPv6 Prefix Check . . . . . . . . . . . . . . . 8 3.1.1. Neighbor Cache Check . . . . . . . . . . . . . . . . . 6
3.2. Verification of end point existence . . . . . . . . . . . 8 3.1.2. Known IPv4 Address Check . . . . . . . . . . . . . . . 7
3.2.1. Neighbor Cache Check . . . . . . . . . . . . . . . . . 8 3.2. Operational Measures . . . . . . . . . . . . . . . . . . . 7
3.2.2. Known IPv4 Address Check . . . . . . . . . . . . . . . 9 3.2.1. Avoiding a Shared IPv4 Link . . . . . . . . . . . . . 8
3.3. Operational Measures . . . . . . . . . . . . . . . . . . . 9 3.2.2. A Single Border Router . . . . . . . . . . . . . . . . 8
3.3.1. Avoiding a Shared IPv4 Link . . . . . . . . . . . . . 10 3.2.3. A Comprehensive List of Tunnel Routers . . . . . . . . 9
3.3.2. A Single Border Router . . . . . . . . . . . . . . . . 10 3.3. Destination and Source Address Checks . . . . . . . . . . 9
3.3.1. Known IPv6 Prefix Check . . . . . . . . . . . . . . . 11
4. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 11 4. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 11
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.1. Normative References . . . . . . . . . . . . . . . . . . . 12 8.1. Normative References . . . . . . . . . . . . . . . . . . . 12
8.2. Informative References . . . . . . . . . . . . . . . . . . 12 8.2. Informative References . . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction 1. Introduction
IPv6-in-IPv4 tunnels are an essential part of many migration plans IPv6-in-IPv4 tunnels are an essential part of many migration plans
for IPv6. They allow two IPv6 nodes to communicate over an IPv4-only for IPv6. They allow two IPv6 nodes to communicate over an IPv4-only
network. Automatic tunnels that use stateless address mapping network. Automatic tunnels that use stateless address mapping
(hereafter called "automatic tunnels") are a category of tunnels in (hereafter called "automatic tunnels") are a category of tunnels in
which a tunneled packet's egress IPv4 address is embedded within the which a tunneled packet's egress IPv4 address is embedded within the
destination IPv6 address of the packet. An automatic tunnel's router destination IPv6 address of the packet. An automatic tunnel's router
skipping to change at page 3, line 37 skipping to change at page 3, line 37
native IPv6 network. There the packet is routed back to the ingress native IPv6 network. There the packet is routed back to the ingress
point that forwards it back into the tunnel. Consequently, the point that forwards it back into the tunnel. Consequently, the
packet loops in and out of the tunnel. The loop terminates only when packet loops in and out of the tunnel. The loop terminates only when
the Hop Limit field in the IPv6 header of the packet is decremented the Hop Limit field in the IPv6 header of the packet is decremented
to zero. This vulnerability can be abused as a vehicle for traffic to zero. This vulnerability can be abused as a vehicle for traffic
amplification to facilitate DoS attacks [RFC4732]. amplification to facilitate DoS attacks [RFC4732].
Without compensating security measures in place, all IPv6 automatic Without compensating security measures in place, all IPv6 automatic
tunnels that are based on protocol-41 encapsulation [RFC4213] are tunnels that are based on protocol-41 encapsulation [RFC4213] are
vulnerable to such an attack including ISATAP [RFC5214], 6to4 vulnerable to such an attack including ISATAP [RFC5214], 6to4
[RFC3056] and 6rd [RFC5569]. It should be noted that this document [RFC3056] and 6rd [RFC5969]. It should be noted that this document
does not consider non-protocol-41 encapsulation attacks. In does not consider non-protocol-41 encapsulation attacks. In
particular, we do not address the Teredo [RFC4380] attacks described particular, we do not address the Teredo [RFC4380] attacks described
in [USENIX09]. These attacks are considered in in [USENIX09]. These attacks are considered in
[I-D.gont-6man-teredo-loops]. [I-D.gont-6man-teredo-loops].
The aim of this document is to shed light on the routing loop attack The aim of this document is to shed light on the routing loop attack
and describe possible mitigation measures that should be considered and describe possible mitigation measures that should be considered
by operators of current IPv6 automatic tunnels and by designers of by operators of current IPv6 automatic tunnels and by designers of
future ones. We note that tunnels may be deployed in various future ones. We note that tunnels may be deployed in various
operational environments, e.g. service provider network, enterprise operational environments, e.g. service provider network, enterprise
skipping to change at page 6, line 28 skipping to change at page 6, line 28
0200:5EFE:IP2, respectively. 0200:5EFE:IP2, respectively.
3. Proposed Mitigation Measures 3. Proposed Mitigation Measures
This section presents some possible mitigation measures for the This section presents some possible mitigation measures for the
attack described above. For each measure we shall discuss its attack described above. For each measure we shall discuss its
advantages and disadvantages. advantages and disadvantages.
The proposed measures fall under the following three categories: The proposed measures fall under the following three categories:
o Destination and source addresses checks
o Verification of end point existence o Verification of end point existence
o Operational measures o Operational measures
3.1. Destination and Source Address Checks o Destination and source addresses checks
Tunnel routers can use a source address check mitigation when they
forward an IPv6 packet into a tunnel interface with an IPv6 source
address that embeds one of the router's configured IPv4 addresses.
Similarly, tunnel routers can use a destination address check
mitigation when they receive an IPv6 packet on a tunnel interface
with an IPv6 destination address that embeds one of the router's
configured IPv4 addresses. These checks should correspond to both
tunnels' IPv6 address formats, regardless of the type of tunnel the
router employs.
For example, if tunnel router R1 (of any tunnel protocol) forwards a
packet into a tunnel interface with an IPv6 source address that
matches the 6to4 prefix 2002:IP1::/48, the router discards the packet
if IP1 is one of its own IPv4 addresses. In a second example, if
tunnel router R2 receives an IPv6 packet on a tunnel interface with
an IPv6 destination address with an off-link prefix but with an
interface identifier that matches the ISATAP address suffix ::0200:
5EFE:IP2, the router discards the packet if IP2 is one of its own
IPv4 addresses.
Hence a tunnel router can avoid the attack by performing the
following checks:
o When the router forwards an IPv6 packet into a tunnel interface,
it discards the packet if the IPv6 source address has an off-link
prefix but embeds one of the router's configured IPv4 addresses.
o When the router receives an IPv6 packet on a tunnel interface, it
discards the packet if the IPv6 destination address has an off-
link prefix but embeds one of the router's configured IPv4
addresses.
This approach has the advantage that that no ancillary state is
required, since checking is through static lookup in the lists of
IPv4 and IPv6 addresses belonging to the router. However, this
approach has some inherent limitations
o The checks incur an overhead which is proportional to the number
of IPv4 addresses assigned to the router. If a router is assigned
many addresses, the additional processing overhead for each packet
may be considerable. Note that an unmitigated attack packet would
be repetitively processed by the router until the Hop Limit
expires, which may require as many as 255 iterations. Hence, an
unmitigated attack will consume far more aggregate processing
overhead than per-packet address checks even if the router assigns
a large number of addresses.
o The checks should be performed for the IPv6 address formats of
every existing automatic IPv6 tunnel protocol (which uses
protocol-41 encapsulation). Hence, the checks must be updated as
new protocols are defined.
o Before the checks can be performed the format of the address must
be recognized. There is no guarantee that this can be generally
done. For example, one can not determine if an IPv6 address is a
6rd one, hence the router would need to be configured with a list
of all applicable 6rd prefixes (which may be prohibitively large)
in order to unambiguously apply the checks.
o The checks cannot be performed if the embedded IPv4 address is a
private one [RFC1918] since it is ambiguous in scope. Namely, the
private address may be legitimately allocated to another node in
another routing region.
The last limitation may be relieved if the router has some
information that allows it to unambiguously determine the scope of
the address. The check in the following subsection is one example
for this.
3.1.1. Known IPv6 Prefix Check
A router may be configured with the full list of IPv6 subnet prefixes
assigned to the tunnels attached to its current IPv4 routing region.
In such a case it can use the list to determine when static
destination and source address checks are possible. By keeping track
of the list of IPv6 prefixes assigned to the tunnels in the IPv4
routing region, a router can perform the following checks on an
address which embeds a private IPv4 address:
o When the router forwards an IPv6 packet into its tunnel with a
source address that embeds a private IPv4 address and matches an
IPv6 prefix in the prefix list, it determines whether the packet
should be discarded or forwarded by performing the source address
check specified in Section 3.1. Otherwise, the router forwards
the packet.
o When the router receives an IPv6 packet on its tunnel interface
with a destination address that embeds a private IPv4 address and
matches an IPv6 prefix in the prefix list, it determines whether
the packet should be discarded or forwarded by performing the
destination address check specified in Section 3.1. Otherwise,
the router forwards the packet.
The disadvantage of this approach is the administrative overhead for
maintaining the list of IPv6 subnet prefixes associated with an IPv4
routing region may become unwieldy should that list be long and/or
frequently updated.
3.2. Verification of end point existence 3.1. Verification of end point existence
The routing loop attack relies on the fact that a router does not The routing loop attack relies on the fact that a router does not
know whether there is an end point that can reached via its tunnel know whether there is an end point that can reached via its tunnel
that has the source or destination address of the packet. This that has the source or destination address of the packet. This
category includes mitigation measures which aim to verify that there category includes mitigation measures which aim to verify that there
is a node which participate in the tunnel and its address corresponds is a node which participate in the tunnel and its address corresponds
to the packet's destination or source addresses, as appropriate. to the packet's destination or source addresses, as appropriate.
3.2.1. Neighbor Cache Check 3.1.1. Neighbor Cache Check
One way that the router can verify that an end host exists and can be One way that the router can verify that an end host exists and can be
reached via the tunnel is by checking whether a valid entry exists reached via the tunnel is by checking whether a valid entry exists
for it in the neighbor cache of the corresponding tunnel interface. for it in the neighbor cache of the corresponding tunnel interface.
The neighbor cache entry can be populated through, e.g., an initial The neighbor cache entry can be populated through, e.g., an initial
reachability check, receipt of neighbor discovery messages, reachability check, receipt of neighbor discovery messages,
administrative configuration, etc. administrative configuration, etc.
When the router has a packet to send to a potential tunnel host for When the router has a packet to send to a potential tunnel host for
which there is no neighbor cache entry, it can perform an initial which there is no neighbor cache entry, it can perform an initial
reachability check on the packet's destination address, e.g., as reachability check on the packet's destination address, e.g., as
specified in the second paragraph of Section 8.4 of [RFC5214]. (The specified in the second paragraph of Section 8.4 of [RFC5214]. (The
router can similarly perform a "reverse reachability" check on the router can similarly perform a "reverse reachability" check on the
packet's source address when it receives a packet from a potential packet's source address when it receives a packet from a potential
skipping to change at page 9, line 30 skipping to change at page 7, line 26
host responds to the address. Otherwise, the router discards host responds to the address. Otherwise, the router discards
subseqent packets and returns ICMP destination unreachable subseqent packets and returns ICMP destination unreachable
indications as specified in Section 7.2.2 of [RFC4861]. indications as specified in Section 7.2.2 of [RFC4861].
Note that this approach assumes that the neighbor cache will remain Note that this approach assumes that the neighbor cache will remain
coherent and not subject to malicious attack, which must be confirmed coherent and not subject to malicious attack, which must be confirmed
based on specific deployment scenarios. One possible way for an based on specific deployment scenarios. One possible way for an
attacker to subvert the neighbor cache is to send false neighbor attacker to subvert the neighbor cache is to send false neighbor
discovery messages with a spoofed source address. discovery messages with a spoofed source address.
3.2.2. Known IPv4 Address Check 3.1.2. Known IPv4 Address Check
Another approach that enables a router to verify that an end host Another approach that enables a router to verify that an end host
exists and can be reached via the tunnel is simply by pre-configuring exists and can be reached via the tunnel is simply by pre-configuring
the router with the set of IPv4 addresses that are authorized to use the router with the set of IPv4 addresses that are authorized to use
the tunnel. Upon this configuration the router can perform the the tunnel. Upon this configuration the router can perform the
following simple checks: following simple checks:
o When the router forwards an IPv6 packet into the tunnel interface o When the router forwards an IPv6 packet into the tunnel interface
with a destination address that matches an on-link prefix and that with a destination address that matches an on-link prefix and that
embeds the IPv4 address IP1, it discards the packet if IP1 does embeds the IPv4 address IP1, it discards the packet if IP1 does
not belong to the configured list of IPv4 addresses. not belong to the configured list of IPv4 addresses.
o When the router receives an IPv6 packet on the tunnel's interface o When the router receives an IPv6 packet on the tunnel's interface
with a source address that matches a on-link prefix and that with a source address that matches a on-link prefix and that
embeds the IPv4 address IP2, it discards the packet if IP2 does embeds the IPv4 address IP2, it discards the packet if IP2 does
not belong to the configured list of IPv4 addresses. not belong to the configured list of IPv4 addresses.
3.3. Operational Measures 3.2. Operational Measures
The following measures can be taken by the network operator. Their The following measures can be taken by the network operator. Their
aim is to configure the network in such a way that the attacks can aim is to configure the network in such a way that the attacks can
not take place. not take place.
3.3.1. Avoiding a Shared IPv4 Link 3.2.1. Avoiding a Shared IPv4 Link
As noted above, the attack relies on having an IPv4 network as a As noted above, the attack relies on having an IPv4 network as a
shared link-layer between more than one tunnel. From this the shared link-layer between more than one tunnel. From this the
following two mitigation measures arise: following two mitigation measures arise:
3.3.1.1. Filtering IPv4 Protocol-41 Packets 3.2.1.1. Filtering IPv4 Protocol-41 Packets
In this measure a tunnel router may drop all IPv4 protocol-41 packets In this measure a tunnel router may drop all IPv4 protocol-41 packets
received or sent over interfaces that are attached to an untrusted received or sent over interfaces that are attached to an untrusted
IPv4 network. This will cut-off any IPv4 network as a shared link. IPv4 network. This will cut-off any IPv4 network as a shared link.
This measure has the advantage of simplicity. However, such a This measure has the advantage of simplicity. However, such a
measure may not always be suitable for scenarios where IPv4 measure may not always be suitable for scenarios where IPv4
connectivity is essential on all interfaces. connectivity is essential on all interfaces.
3.3.1.2. Operational Avoidance of Multiple Tunnels 3.2.1.2. Operational Avoidance of Multiple Tunnels
This measure mitigates the attack by simply allowing for a single This measure mitigates the attack by simply allowing for a single
IPv6 tunnel to operate in a bounded IPv4 network. For example, the IPv6 tunnel to operate in a bounded IPv4 network. For example, the
attack can not take place in broadband home networks. In such cases attack can not take place in broadband home networks. In such cases
there is a small home network having a single residential gateway there is a small home network having a single residential gateway
which serves as a tunnel router. A tunnel router is vulnerable to which serves as a tunnel router. A tunnel router is vulnerable to
the attack only if it has at least two interfaces with a path to the the attack only if it has at least two interfaces with a path to the
Internet: a tunnel interface and a native IPv6 interface (as depicted Internet: a tunnel interface and a native IPv6 interface (as depicted
in Figure 1). However, a residential gateway usually has only a in Figure 1). However, a residential gateway usually has only a
single interface to the Internet, therefore the attack can not take single interface to the Internet, therefore the attack can not take
place. Moreover, if there are only one or a few tunnel routers in place. Moreover, if there are only one or a few tunnel routers in
the IPv4 network and all participate in the same tunnel then there is the IPv4 network and all participate in the same tunnel then there is
no opportunity for perpetuating the loop. no opportunity for perpetuating the loop.
This approach has the advantage that it avoids the attack profile This approach has the advantage that it avoids the attack profile
altogether without need for explicit mitigations. However, it altogether without need for explicit mitigations. However, it
requires careful configuration management which may not be tenable in requires careful configuration management which may not be tenable in
large and/or unbounded IPv4 networks. large and/or unbounded IPv4 networks.
3.3.2. A Single Border Router 3.2.2. A Single Border Router
It is reasonable to assume that a tunnel router shall accept or It is reasonable to assume that a tunnel router shall accept or
forward tunneled packets only over its tunnel interface. It is also forward tunneled packets only over its tunnel interface. It is also
reasonable to assume that a tunnel router shall accept or forward reasonable to assume that a tunnel router shall accept or forward
IPv6 packets only over its IPv6 interface. If these two interfaces IPv6 packets only over its IPv6 interface. If these two interfaces
are physically different then the network operator can mitigate the are physically different then the network operator can mitigate the
attack by ensuring that the following condition holds: there is no attack by ensuring that the following condition holds: there is no
path between these two interfaces that does not go through the tunnel path between these two interfaces that does not go through the tunnel
router. router.
skipping to change at page 11, line 13 skipping to change at page 9, line 13
transmitted over the tunnel interface will not get to another tunnel transmitted over the tunnel interface will not get to another tunnel
router and from there to the IPv6 interface of the first router. The router and from there to the IPv6 interface of the first router. The
condition also ensures the reverse direction, i.e., an IPv6 packet condition also ensures the reverse direction, i.e., an IPv6 packet
which is transmitted over the IPv6 interface will not get to another which is transmitted over the IPv6 interface will not get to another
tunnel router and from there to the tunnel interface of the first tunnel router and from there to the tunnel interface of the first
router. This condition is essentially translated to a scenario in router. This condition is essentially translated to a scenario in
which the tunnel router is the only border router between the IPv6 which the tunnel router is the only border router between the IPv6
network and the IPv4 network to which it is attached (as in broadband network and the IPv4 network to which it is attached (as in broadband
home network scenario mentioned above). home network scenario mentioned above).
3.2.3. A Comprehensive List of Tunnel Routers
If a tunnel router can be configured with a comprehensive list of
IPv4 addresses of all other tunnel routers in the network, then the
router can use the list as a filter to discard any tunneled packets
coming from other routers. For example, a tunnel router can use the
network's ISATAP Potential Router List (PRL) [RFC5214] as a filter as
long as there is operational assurance that all ISATAP routers are
listed and that no other types of tunnel routers are present in the
network.
This measure parallels the one proposed for 6rd in [RFC5969] where
the 6rd BR filters all known relay addresses of other tunnels inside
the ISP's network.
This measure is especially useful for intra-site tunneling
mechanisms, such as ISATAP and 6rd, since filtering can be exercised
on well-defined site borders.
3.3. Destination and Source Address Checks
Tunnel routers can use a source address check mitigation when they
forward an IPv6 packet into a tunnel interface with an IPv6 source
address that embeds one of the router's configured IPv4 addresses.
Similarly, tunnel routers can use a destination address check
mitigation when they receive an IPv6 packet on a tunnel interface
with an IPv6 destination address that embeds one of the router's
configured IPv4 addresses. These checks should correspond to both
tunnels' IPv6 address formats, regardless of the type of tunnel the
router employs.
For example, if tunnel router R1 (of any tunnel protocol) forwards a
packet into a tunnel interface with an IPv6 source address that
matches the 6to4 prefix 2002:IP1::/48, the router discards the packet
if IP1 is one of its own IPv4 addresses. In a second example, if
tunnel router R2 receives an IPv6 packet on a tunnel interface with
an IPv6 destination address with an off-link prefix but with an
interface identifier that matches the ISATAP address suffix ::0200:
5EFE:IP2, the router discards the packet if IP2 is one of its own
IPv4 addresses.
Hence a tunnel router can avoid the attack by performing the
following checks:
o When the router forwards an IPv6 packet into a tunnel interface,
it discards the packet if the IPv6 source address has an off-link
prefix but embeds one of the router's configured IPv4 addresses.
o When the router receives an IPv6 packet on a tunnel interface, it
discards the packet if the IPv6 destination address has an off-
link prefix but embeds one of the router's configured IPv4
addresses.
This approach has the advantage that that no ancillary state is
required, since checking is through static lookup in the lists of
IPv4 and IPv6 addresses belonging to the router. However, this
approach has some inherent limitations
o The checks incur an overhead which is proportional to the number
of IPv4 addresses assigned to the router. If a router is assigned
many addresses, the additional processing overhead for each packet
may be considerable. Note that an unmitigated attack packet would
be repetitively processed by the router until the Hop Limit
expires, which may require as many as 255 iterations. Hence, an
unmitigated attack will consume far more aggregate processing
overhead than per-packet address checks even if the router assigns
a large number of addresses.
o The checks should be performed for the IPv6 address formats of
every existing automatic IPv6 tunnel protocol (which uses
protocol-41 encapsulation). Hence, the checks must be updated as
new protocols are defined.
o Before the checks can be performed the format of the address must
be recognized. There is no guarantee that this can be generally
done. For example, one can not determine if an IPv6 address is a
6rd one, hence the router would need to be configured with a list
of all applicable 6rd prefixes (which may be prohibitively large)
in order to unambiguously apply the checks.
o The checks cannot be performed if the embedded IPv4 address is a
private one [RFC1918] since it is ambiguous in scope. Namely, the
private address may be legitimately allocated to another node in
another routing region.
The last limitation may be relieved if the router has some
information that allows it to unambiguously determine the scope of
the address. The check in the following subsection is one example
for this.
3.3.1. Known IPv6 Prefix Check
A router may be configured with the full list of IPv6 subnet prefixes
assigned to the tunnels attached to its current IPv4 routing region.
In such a case it can use the list to determine when static
destination and source address checks are possible. By keeping track
of the list of IPv6 prefixes assigned to the tunnels in the IPv4
routing region, a router can perform the following checks on an
address which embeds a private IPv4 address:
o When the router forwards an IPv6 packet into its tunnel with a
source address that embeds a private IPv4 address and matches an
IPv6 prefix in the prefix list, it determines whether the packet
should be discarded or forwarded by performing the source address
check specified in Section 3.3. Otherwise, the router forwards
the packet.
o When the router receives an IPv6 packet on its tunnel interface
with a destination address that embeds a private IPv4 address and
matches an IPv6 prefix in the prefix list, it determines whether
the packet should be discarded or forwarded by performing the
destination address check specified in Section 3.3. Otherwise,
the router forwards the packet.
The disadvantage of this approach is the administrative overhead for
maintaining the list of IPv6 subnet prefixes associated with an IPv4
routing region may become unwieldy should that list be long and/or
frequently updated.
4. Recommendations 4. Recommendations
In light of the mitigation measures proposed above we make the In light of the mitigation measures proposed above we make the
following recommendations in decreasing order: following recommendations in decreasing order:
1. When possible, it is recommended that the attacks are 1. When possible, it is recommended that the attacks are
operationally eliminated (as per one of the measures proposed in operationally eliminated (as per one of the measures proposed in
Section 3.3). Section 3.2).
2. For tunnel routers that keep a coherent and trusted neighbor 2. For tunnel routers that keep a coherent and trusted neighbor
cache which includes all legitimate end-points of the tunnel, we cache which includes all legitimate end-points of the tunnel, we
recommend exercising the Neighbor Cache Check. recommend exercising the Neighbor Cache Check.
3. For tunnel routers that can implement the Neighbor Reachability 3. For tunnel routers that can implement the Neighbor Reachability
Check, we recommend exercising it. Check, we recommend exercising it.
4. For tunnels having small and static list of end-points we 4. For tunnels having small and static list of end-points we
recommend exercising Known IPv4 Address Check. recommend exercising Known IPv4 Address Check.
5. For all other cases we recommend the Destination and Source 5. We generally do not recommend using the Destination and Source
Address Checks. This is the least preferable measure since it Address Checks since they can not mitigate routing loops with 6rd
generally can not mitigate routing loops with 6rd routers. routers. Therefore, these checks should not be used alone unless
there is operational assurance that other measures are exercised
to prevent routing loops with 6rd routers.
As noted earlier, tunnels may be deployed in various operational As noted earlier, tunnels may be deployed in various operational
environments. There is a possibility that other mitigations may be environments. There is a possibility that other mitigations may be
feasible in specific deployment scenarios. The above recommendations feasible in specific deployment scenarios. The above recommendations
are general and do not attempt to cover such scenarios. are general and do not attempt to cover such scenarios.
5. IANA Considerations 5. IANA Considerations
This document has no IANA considerations. This document has no IANA considerations.
skipping to change at page 12, line 37 skipping to change at page 13, line 16
for IPv6 Hosts and Routers", RFC 4213, October 2005. for IPv6 Hosts and Routers", RFC 4213, October 2005.
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
September 2007. September 2007.
[RFC5214] Templin, F., Gleeson, T., and D. Thaler, "Intra-Site [RFC5214] Templin, F., Gleeson, T., and D. Thaler, "Intra-Site
Automatic Tunnel Addressing Protocol (ISATAP)", RFC 5214, Automatic Tunnel Addressing Protocol (ISATAP)", RFC 5214,
March 2008. March 2008.
[RFC5569] Despres, R., "IPv6 Rapid Deployment on IPv4 [RFC5969] Townsley, W. and O. Troan, "IPv6 Rapid Deployment on IPv4
Infrastructures (6rd)", RFC 5569, January 2010. Infrastructures (6rd) -- Protocol Specification",
RFC 5969, August 2010.
8.2. Informative References 8.2. Informative References
[I-D.gont-6man-teredo-loops] [I-D.gont-6man-teredo-loops]
Gont, F., "Mitigating Teredo Rooting Loop Attacks", Gont, F., "Mitigating Teredo Rooting Loop Attacks",
draft-gont-6man-teredo-loops-00 (work in progress), draft-gont-6man-teredo-loops-00 (work in progress),
September 2010. September 2010.
[RFC4380] Huitema, C., "Teredo: Tunneling IPv6 over UDP through [RFC4380] Huitema, C., "Teredo: Tunneling IPv6 over UDP through
Network Address Translations (NATs)", RFC 4380, Network Address Translations (NATs)", RFC 4380,
 End of changes. 23 change blocks. 
132 lines changed or deleted 154 lines changed or added

This html diff was produced by rfcdiff 1.40. The latest version is available from http://tools.ietf.org/tools/rfcdiff/