Subject: [secdir] SecDir Review of draft-ietf-pcp-anycast-06

From: Yoav Nir <[email-masked]>
Date: Mon, 8 Jun 2015 18:00:38 +0300

Hi.

I have reviewed this document as part of the security directorate's ongoing effort to review all IETF documents being processed by the IESG.  These comments were written primarily for the benefit of the security area directors.  Document editors and WG chairs should treat these comments just like any other last call comments.

TL;DR: Ready (with a question)

The document describes an alternative method for nodes behind a middlebox (such as NAT device or firewall) to contact the middlebox in order to manage port allocation. Existing methods (described in RFC 6887 and 7291 respectively) are to either assume that the default router is the device (suitable for small networks) or specify the middlebox address in a DHCP option (suitable for larger networks).

This document proposes a third alternative: use of a well-known anycast address. Sending a request to that anycast address will ensure delivery to the closest service address (which may or may not be co-located with the middlebox) by the routing on the network, supported by either BGP or IGP.

There are two specific concerns about this method (other than the usual anycast or pcp concerns). The first is that information about the internal network might leak to a PCP service outside the network. Whereas a failure of a service whose address is given in DHCP will result in black-holed packets, failure of a service with an anycast address will cause the packets to be forwarded to some random PCP server on the Internet. Section 5.1 discusses this and recommends filtering in perimeter gateways and reduced TTL. I believe this addresses that threat adequately.

The other specific concern is that a rogue machine would push routes to advertise itself as a PCP service, hijacking PCP traffic and causing network outages. Section 5.2 deals with this issue. The section makes the claim that within the first network segment, the nodes do not use dynamic routing protocols, so an attack there is equivalent to impersonating the default router. Outside the first segment, routing protocols are used, and there is a need for routing security anyway. In both cases an attacker capable of conducting these attacks can do a lot worse than impersonating a PCP service.

I find this argument almost convincing. What is still bothering me is the question of whether the more damaging attacks would be discovered immediately, whereas simply advertising a route to the anycast address can “fly under the radar” so that the attacker can become the PCP server undetected. I don’t have a firm attack in mind, just a mild concern.

Yoav

---

From: "Christian Huitema" <[email-masked]>
Date: Tue, 9 Jun 2015 14:33:30 -0700

> There are two specific concerns about this method (other than the usual
> anycast or pcp concerns). The first is that information about the internal
> network might leak to a PCP service outside the network. 

In fact, it is almost guaranteed to leak outside of the network. In the initial deployments, first hop routers will not be aware of the anycast address...

> ... Whereas a failure of
> a service whose address is given in DHCP will result in black-holed packets,
> failure of a service with an anycast address will cause the packets to be
> forwarded to some random PCP server on the Internet. Section 5.1 discusses
> this and recommends filtering in perimeter gateways and reduced TTL. I
> believe this addresses that threat adequately.

I would find the TTL mitigation would be more convincing if the draft actually specified a recommended TTL value.

-- Christian Huitema

---

From: Yoav Nir <[email-masked]>
Date: Wed, 10 Jun 2015 00:47:23 +0300

> On Jun 10, 2015, at 12:33 AM, Christian Huitema <[email-masked]> wrote:
> 

Doesn’t that depend on the depth (diameter?) of the network?  The TTL should be high enough to reach the legitimate service but no higher. It does seem like a very fiddly thing. You’d need to re-adjust the TTL sent by all clients if you rearranged your servers a bit. I can see operators not taking the risk and just using the OS default TTL that’s high enough to take a packet to any network on the Internet.

Expecting the NAT device / firewall to filter sounds more plausible to me.

---

From: "Christian Huitema" <[email-masked]>
Date: Tue, 9 Jun 2015 15:33:19 -0700

> > I would find the TTL mitigation would be more convincing if the draft
> actually specified a recommended TTL value.
> 
> Doesn’t that depend on the depth (diameter?) of the network?  The TTL
> should be high enough to reach the legitimate service but no higher. It does
> seem like a very fiddly thing. You’d need to re-adjust the TTL sent by all clients
> if you rearranged your servers a bit. I can see operators not taking the risk and
> just using the OS default TTL that’s high enough to take a packet to any
> network on the Internet.

But then, what is the point of mentioning TTL as a plausible mitigation if there is no practical way to use it? 

> Expecting the NAT device / firewall to filter sounds more plausible to me.

Except that currently deployed routers will not be updated for a long time. If they do support PCP, the router selection rule will discover them. But many don't. They will thus pass the unicast packets through, unmolested.

There are probably a bunch of heuristics that can be applied to reduce the leakage. But I don't see them in the draft.

-- Christian Huitema