Re: [sidr] draft-ietf-sidr-bgpsec-threats-02: Path shortening & lengthening

Shane Amante <shane@castlepoint.net> Fri, 06 April 2012 17:03 UTC

Return-Path: <shane@castlepoint.net>
X-Original-To: sidr@ietfa.amsl.com
Delivered-To: sidr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DCE7A21F85D6 for <sidr@ietfa.amsl.com>; Fri, 6 Apr 2012 10:03:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QVHlOhi-9Gmf for <sidr@ietfa.amsl.com>; Fri, 6 Apr 2012 10:03:07 -0700 (PDT)
Received: from dog.tcb.net (dog.tcb.net [64.78.150.133]) by ietfa.amsl.com (Postfix) with ESMTP id D8F8221F85DB for <sidr@ietf.org>; Fri, 6 Apr 2012 10:03:06 -0700 (PDT)
Received: by dog.tcb.net (Postfix, from userid 0) id 81739268063; Fri, 6 Apr 2012 11:03:06 -0600 (MDT)
Received: from [10.1.68.101] (machine77.Level3.com [209.244.4.106]) (authenticated-user smtp) (TLSv1/SSLv3 AES128-SHA 128/128) by dog.tcb.net with SMTP; Fri, 06 Apr 2012 11:03:06 -0600 (MDT) (envelope-from shane@castlepoint.net)
X-Avenger: version=0.7.8; receiver=dog.tcb.net; client-ip=209.244.4.106; client-port=33790; syn-fingerprint=65535:54:1:64:M1460,N,W1,N,N,T,S MacOS 10.4.8; data-bytes=0
Mime-Version: 1.0 (Apple Message framework v1257)
Content-Type: text/plain; charset=us-ascii
From: Shane Amante <shane@castlepoint.net>
In-Reply-To: <4F7F17D0.7020901@bbn.com>
Date: Fri, 6 Apr 2012 11:02:36 -0600
Content-Transfer-Encoding: quoted-printable
Message-Id: <667584CE-B72C-4D66-8FE1-E19CDE6779BD@castlepoint.net>
References: <64B29EFD-5C6E-4D0C-8E4F-92A2B5A86279@castlepoint.net> <p06240803cb99d283e548@[10.108.69.44]> <8D2985D4-07C3-42EE-A694-DAF24D34F84A@castlepoint.net> <4F7EFD25.5020709@bbn.com> <6D97C133-3EFD-4FD5-98B3-942530BD543C@castlepoint.net> <4F7F17D0.7020901@bbn.com>
To: Andrew Chi <achi@bbn.com>
X-Mailer: Apple Mail (2.1257)
Cc: sidr wg list <sidr@ietf.org>
Subject: Re: [sidr] draft-ietf-sidr-bgpsec-threats-02: Path shortening & lengthening
X-BeenThere: sidr@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Secure Interdomain Routing <sidr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sidr>, <mailto:sidr-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sidr>
List-Post: <mailto:sidr@ietf.org>
List-Help: <mailto:sidr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sidr>, <mailto:sidr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Apr 2012 17:03:08 -0000

On Apr 6, 2012, at 10:20 AM, Andrew Chi wrote:
> On 4/6/2012 11:21 AM, Shane Amante wrote:
>> a)  BGP performs loop detection on the AS_PATH attribute *before* verifying any BGPSEC_Path_Signature, in which case you drop the UPDATE, thus causing a DoS because you're not propagating what *may* be legitimate reachability info further downstream.
> 
> Right, I'm familiar with loop detection and K/P.
> 
> If someone has modified AS_PATH to cause another AS to drop it, then they inserted someone else's AS.  This no longer counts as "legitimate reachability info", and therefore it should be dropped, and the sooner the better.

But the problem is: how do you know it's *not* "legitimate reachability info" if you've (only) based the decision to drop the UPDATE based on unverified info in the AS_PATH attribute?  If you do, that's a _threat_ of a DoS attack, which presumably the whole point of BGPSEC is designed to protect against.

At some point in the future, the SIDR WG will resolve *how* it's going to prescribe that BGP loop detection is supposed to work.  Either way, it needs to acknowledge there are two types of potential threats:
a)  Use unverified AS_PATH info for loop detection; or,
b)  Use verified BGPSEC_Path_Signature info for loop detection.
Ultimately, if the SIDR WG prescription *eventually* resolves that loop detection is only going to be performed on the BGPSEC_Path_Signature attribute, then the text in sidr-threats can be modified, at that future point in time, to say something like:
- Attacks against BGP loop detection are mitigated by only using verified info on the path from reconstruction of the path in BGPSEC_Path_Signature; however,
- This has the potential to introduce a DoS on the BGP control plane itself, either through normal operation (high churn) or an operator injecting false UPDATE's, into the system, which exceed the capacity of routers to perform crypto verification fast enough ...


> It sounds like there's another issue mixed up in here (but perhaps not in scope of the -bgpsec-threats document): you're trying to resolve the ambiguity on what to do with AS_PATH, as Matt notes at the end of the following section.
> 
> http://tools.ietf.org/html/draft-ietf-sidr-bgpsec-protocol-02#section-5
> 
>   EDITOR'S NOTE: Text will be inserted here for dealing with the
>   AS_PATH attribute.  Note that the BGPGSEC_Path_Signatures attribute
>   now contains all of the information needed to construct the AS_PATH
>   attribute.  Therefore, there seem to be two options.  One option the
>   BGPSEC speaker checks the AS_PATH attribute against the information
>   in the BGPSEC_Path_Signatures attribute and returns "Not Good" if the
>   two do not match.  The other option is that the BGPSEC speaker
>   discards anything in the AS_PATH attribute and reconstructs the
>   AS_PATH from the data in the BGPSEC_Path_Signatures attribute.  I
>   believe that there are no interoperability problems if the choice
>   between these two options is left up to the BGPSEC speaker.

Given the above, then I suggest the next revision of draft-ietf-sidr-bgpsec-protocol explicitly says: "Updates: RFC 4271" and that future updates of draft-ietf-sidr-bgpsec-protocol start to be shared with IDR WG mailing list, (particularly in light of discussions at the recent IDR WG meeting where the SIDR co-chairs have pointed out the need for cooperation between SIDR & IDR).  I do not believe that the SIDR WG is in a position to make a call as to whether, or to what extent, there are going to be interoperability concerns with legacy, non-BGPSEC capable routers wrt AS_PATH loop detection ... IMO, that should be the responsibility and call of the IDR WG.


>> b)  BGP performs loop detection on the AS_PATH attribute only /after/ verifying the BGPSEC_Path_Signature is valid, in which case there is a /potential/ for another type of DoS, because there will always be a limited amount of crypto verifications/sec that can be performed.  There's also the concern that this will slow down propagation of reachability information, because it first needs to be crypto-verified before it's used/propagated.  Note, this is unlikely to be a problem during "steady-state", but is more likely to appear during some amount of churn in BGP due to link and/or router failures, for example.
> 
> Yes, this is true -- there's always DoS by feeding garbage to your neighbor, BGPSEC or not, but crypto lets you waste more CPU.  DoS on a BGP router is mentioned briefly at the end of 4.1 -- would you like more text?

Yes.  I think the text "... DoS attacks against BGP routers" is extremely vague, because there are two things that come to mind:
a)  A packet DDoS attack against the router, which may not have anything to do with the BGP control plane itself -- i.e.: some attacker trying to overwhelm links with too much traffic causing [severe] packet loss; and,
b)  A DoS attack against the actual BGP _control_plane_ itself.  More specifically, threats that either:
    i)  overwhelm the I/O, CPU (and/or, memory) capabilities of the BGP router; and,
    ii) in the future, overwhelm a new component, namely, the crypto verification capabilities of the BGP protocol.

I care about the latter (b), in the context of the SIDR WG, and I believe that is what the current text in Section 4.1 is attempting to say, just not well enough, yet.

Thanks,

-shane