Subject: RE: [pim] last-hop threats by hosts to PIM (fwd)

From: James Lingard <[email-masked]>
Date: Fri, 7 Jan 2005 16:22:51 -0000

Pekka,

I'm not sure that this draft makes a useful contribution, given the existing
Security Considerations section of draft-ietf-pim-sm-v2-new and
draft-ietf-mboned-mroutesec.  There seems to be very little here that is not
in one of those two documents.  And although this document does bring
together the material into one place, I fear that the creation of a third
document may only confuse matters.

Secondly, I find it hard to understand what assumption you are making about
the level of PIM knowledge of the reader.  I feel that someone without a
reasonable knowledge of the protocol would be unable to understand the
document, yet in several places it attempts to give explanation that would
be unnecessary to a more knowledgeable reader.  Perhaps an up-front
statement of assumptions would be useful.

More specific comments are inline below.

Regards,
James.

-----Original Message-----
From: Pekka Savola [mailto:[email-masked]]
Sent: 04 January 2005 18:46
To: [email-masked]
Subject: [pim] last-hop threats by hosts to PIM (fwd)

> I received no comments to this, so re-sending again..
> 
> Please, do read and send comments for:
>
http://www.ietf.org/internet-drafts/draft-savola-pim-lasthop-threats-00.txt
> 
> It's very short, only about 5 pages, but could be very useful work as 
> Informational.

2.  Last-hop PIM Vulnerabilities

   This section describes briefly the main attacks against last-hop PIM
   signalling, before we get to the actual threats and mitigation
   methods in the next sections.

## The distinction between Sections 2 and 3 isn't at all clear to me.
## Perhaps they should be merged?

2.1  Sending PIM Register Messages on Your Own

   PIM Register messages are sent as unicast-encapsulated messages.

## I should hope that readers would already be aware of this fact.

   Maliscious hosts could also send registers themselves for example to
   get around the rate-limiters, to interfere with foreign RPs, etc.

## Is this really a "last-hop" vulnerability?  Perhaps you should define in
## the introduction precisely what you mean by this.

2.2  Becoming an Illegitimate PIM Neighbor

   When PIM has been enabled on a router's "host" interface, any host
   can also become a PIM neighbor using PIM Hello messages unless
   special, rare precautions, such as protecting all the PIM traffic on
   the link using IPsec, have been taken.

## I think that in this section you should assume the mitigation steps
## described below are not taken; hence the second half of this sentence
## is unnecessary.

   Further PIM messaged should not be accepted except from valid PIM
   neighbors; if implementations are compliant to this recommendation in
   the PIM-SM specification, becoming a PIM Neighbor using Hello
   messages is the first step to be able to send other PIM messages.

## I'm not sure this needs stating at all: I think this knowledge 
## could be assumed.

2.3  Becoming an Illegitimate PIM DR

   Designated Router is in "charge" of a particular LAN, for example,
   for registering new sources, generating PIM Join/Prune messages and
   forwarding multicast traffic.

   A host which can became a PIM neighbor, can also, as part of becoming
   the neighbor, influence the DR election process: basically, if at
   least one neighbor did not have "DR Priority" field in the Hello
   message (a "bidding-down" attack), the neighbor with the numerically
   highest IP address wins the election; if DR priority existed, the DR
   priority is first checked and only then the IP addresses are
   compared.

## I don't think it's necessary to describe the details of DR election
## here.  You could simply state that a host that can become a PIM
## neighbor is able to cause itself to be elected DR (either with or 
## without the DR Priority Hello option).

   Further, it is not sufficient to secure DR election, because Assert
   messages can be used to obtain the responsibility for forwarding
   upstream traffic as described in the next section.

## This paragraph is unnecessary here since it's described in the next
## section.

   It seems that a DR can send PIM messages (like Prune/Join) to the
   non-DR to be forwarded upstream on behalf of directly connected (to
   both DR and non-DR) sources.  In other words, a host on a stub LAN
   can be elected as a DR and act as a "man-in-the-middle" between the
   other hosts and the real PIM router.

## I don't understand what the threat is here.  You don't get any special
## privileges from being the DR, just the ability to deny service.

                                         [XXX: Is this correct?  Should
   non-DRs reject forwarding upstream messages from downstream LAN's
   DRs, because a real DR should have its own upstream connectivity?]

## This is correct.  There is no requirement for a DR to have
## connectivity.

2.4  Becoming an Illegitimate PIM Asserted Forwarder

   With a PIM Assert, a router can be elected to be in charge of
   handling all traffic from a particular (S,G) (where S might also be
   all of S? [XXX: true?]).  This overrides DR behaviour.

## Yes, true.

[snipped]

   As noted before, it is also possible to spoof an Assert on someone
   else's behalf to cause a temporary disruption on the LAN.  However,
   it is not 100% clear what happens when the router which was spoofed
   receives "it's own assert" and CouldAssert(S,G,I) is False?  [XXX: a
   PIM expert should say something?  Is this an issue in the state
   machine?]

## The PIM-SM spec says nothing explicitly about what to do when receiving
## messages that supposedly come from yourself (and I don't think that it
## should).  I suspect that most implementations will drop such messages
## since (a) they may be caused by local loopback of your own packets, and
## (b) you are not a neighbor of yourself.

[snipped]

3.1  Denial-of-Service Attack on the Link

   The easiest attack is to deny the multicast service on the link.
   This could mean either not forwarding all (or parts of) multicast
   from upstream on the link, or not registering or forwarding the
   multicast transmissions originated on the link upstream.

   These attacks can be done multiple ways: the most typical one would
   be becoming the DR through becoming a neighbor with Hello messages
   and winning the DR election: after that, one could just not send any
   PIM Join/Prune messages based on the IGMP reports, not forward or
   Register any sourced packets, and maybe even send PIM Prune messages
   to cut off existings transmissions because Prune messages are
   accepted from downstream interfaces even if the router is not a DR.

## The text "because Prune messages..." is another example of
## explanation that should be unnecessary for the readership.

[snipped]

3.3  Confidentiality, Integrity or Authorization Violations

   If a node can get to be a DR or craft an appropriate Assert, in
   addition to or instead of performing Denial-of-Service, it can also
   just operate as normal for some traffic, while violating
   confidentiality, integrity or authorization for some other traffic.

   Some packets, whether sent by received, could be modified (possibly
   in a subtle, unnoticable ways) in transit resulting in an integrity
   violation.

## This assumes that the "host" has connectivity to the source of the
## traffic by an alternative route, which I suspect is unlikely to be
## the case.

               The packets can obviously be observed as well, so any
   data sent can be compromised.

## Even if the host is not the DR, it is still able to observe the
## packets; I don't think anything is gained by being the DR.

   A more elaborate attack is on authorization.  There are some models
   [I-D.hayashi-igap] where the current multicast architecture is used
   to provide paid multicast service, and where the
   authorization/authentication is added to the group management
   protocols such as IGMP.  Needless to say, if a host would be able to
   act as a router, it might be possible to perform all kinds of
   attacks: subscribe to multicast service without using IGMP (i.e.,
   without having to pay for it), deny the service of the others on the
   same link, etc.

## I'll second Beau's comments on that.

[snipped]

4.3  IP Filtering PIM Messages

   To eliminate the PIM messages, and other PIM signalling, in the
   similar scenarios as with PIM Passive Mode, it might be possible to
   block IP protocol 103 (all PIM messages) as an input access-list.

## This seems to be about the only original contribution made by this
## draft, so you should spell out that this filtering has benefits
## even if you're using PIM passive mode, in that this would also
## filter out Register messages.

   This is also acceptable when IPsec is used with more than just one
   PIM router on the link.

## Only if the Register messages are also being sent with IPsec, or if
## you can ensure that no unicast messages would ever be routed from
## one of the PIM routers to another of the PIM routers via the LAN.

4.4  Summary of Vulnerabilities and Mitigation Methods

   This section summarizes the vulnerabilities, and how well the
   mitigation methods are able to cope with them.

   Summary of vulnerabilities and mitigations:

      +-----+--------------------+-----------------+----------------+
      | Sec | Vulnerability      | One stub router |>1 stub routers |
      |     |                    | PASV|IPsec|Filt |PASV|IPsec|Filt |
      +-----+--------------------+-----+-----+-----+----+-----+-----+
      | 2.1 | Hosts Registering  |  N  |  N  |  Y  | N  |  N  |  *  |
      +-----+--------------------+-----+-----+-----+----+-----+-----+
      | 2.2 | Invalid Neighbor   |  Y  |  Y  |  Y  | *  |  Y  |  *  |
      +-----+--------------------+-----+-----+-----+----+-----+-----+
      | 2.3 | Invalid DR         |  Y  |  Y  |  Y  | *  |  Y  |  *  |
      +-----+--------------------+-----+-----+-----+----+-----+-----+
      | 2.3 | Adjacency not reqd |  Y  |  Y  |  Y  | *  |  Y  |  *  |
      +-----+--------------------+-----+-----+-----+----+-----+-----+
      | 2.4 | Invalid Forwarder  |  Y  |  Y  |  Y  | *  |  Y  |  *  |
      +-----+--------------------+-----+-----+-----+----+-----+-----+

                                Figure 1

## What is the "Adjacency not reqd" line in this table referring to?

-- 
James Lingard
Data Connection Ltd (DCL)
http://www.dataconnection.com/

_______________________________________________
pim mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/pim

---

From: Pekka Savola <[email-masked]>
Date: Wed, 12 Jan 2005 14:54:44 +0200 (EET)

Hi,

Thanks for comments James and Beau.  I'll follow up with them 
off-list.  I'll just comment at this point on the generic 
observations:

(It would be interesting to see more input from the WG on what they 
think this would be useful for, if anything :)

> document may only confuse matters.

Mmm. The security considerations section of draft-ietf-pim-sm-v2-new 
has gotten better since I last looked at it; I recall that it was 
mostly a guide how to use IPsec with PIM.

draft-ietf-mboned-mroutesec tried to cover only the "off-link" part of 
PIM, i.e., if you would be able to control the DRs and other routers, 
what you could do. (I agree that hosts sending PIM registers is a 
tricky business).  I believe this doc spells out the specific threats 
and attacks a little bit further than what's in the spec, and analyzes 
other mitigation techniques rather than just IPsec.

In hindsight, it might have made sense to put this 
draft-ietf-mboned-mroutesec but that's too late now.

Now, the question still stays, what to do here.  Try to beef up 
draft-ietf-pim-sm-v2's security considerations to include this 
material?  Keep going as is, maybe consider merging later, e.g., when 
PIM-SM is going for DS?  Something else?

> statement of assumptions would be useful.

True enough -- I've assumed that the reader is familiar with PIM 
basics, but not necessarily the latest developments of the spec.  For 
example, a reader from security community evaluating PIM.

-- 
Pekka Savola                 "You each name yourselves king, yet the
Netcore Oy                    kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings