Re: [OPSEC] Ted Lemon's Discuss on draft-ietf-opsec-dhcpv6-shield-05: (with DISCUSS and COMMENT)

Brian Haberman <brian@innovationslab.net> Tue, 10 February 2015 14:49 UTC

Return-Path: <brian@innovationslab.net>
X-Original-To: opsec@ietfa.amsl.com
Delivered-To: opsec@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EF9F41A889B; Tue, 10 Feb 2015 06:49:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UzVXyE8O_NIr; Tue, 10 Feb 2015 06:49:29 -0800 (PST)
Received: from uillean.fuaim.com (uillean.fuaim.com [206.197.161.140]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0C66A1A7013; Tue, 10 Feb 2015 06:49:02 -0800 (PST)
Received: from clairseach.fuaim.com (clairseach-high.fuaim.com [206.197.161.158]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by uillean.fuaim.com (Postfix) with ESMTP id DE271880CE; Tue, 10 Feb 2015 06:49:01 -0800 (PST)
Received: from clemson.local (clairseach.fuaim.com [206.197.161.141]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by clairseach.fuaim.com (Postfix) with ESMTP id C2DFA71B0001; Tue, 10 Feb 2015 06:49:00 -0800 (PST)
Message-ID: <54DA1A56.8080909@innovationslab.net>
Date: Tue, 10 Feb 2015 09:48:54 -0500
From: Brian Haberman <brian@innovationslab.net>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Fernando Gont <fgont@si6networks.com>, Ted Lemon <Ted.Lemon@nominum.com>, "C. M. Heard" <heard@pobox.com>
References: <20150207194616.20651.30892.idtracker@ietfa.amsl.com> <D5B607FA-9B47-4F1B-A0C1-FB0C94A97CDB@bogus.com> <Pine.LNX.4.64.1502071930100.25761@shell4.bayarea.net> <06B01D8E-981D-4D06-B6CC-3B5CE92782C5@nominum.com> <Pine.LNX.4.64.1502080813060.2950@shell4.bayarea.net> <D97E8BB3-0DB3-4B41-8C91-DBB3121DCEF7@nominum.com> <54D90317.4070205@si6networks.com>
In-Reply-To: <54D90317.4070205@si6networks.com>
Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="kSSiadTlsHmd4U7HseXK2DC0Bkkmt5bub"
Archived-At: <http://mailarchive.ietf.org/arch/msg/opsec/1IM7q0LUzGdIGRMh7h3lNuCAHFQ>
Cc: "draft-ietf-opsec-dhcpv6-shield@ietf.org" <draft-ietf-opsec-dhcpv6-shield@ietf.org>, "opsec@ietf.org" <opsec@ietf.org>, "draft-ietf-opsec-dhcpv6-shield.ad@ietf.org" <draft-ietf-opsec-dhcpv6-shield.ad@ietf.org>, "draft-ietf-opsec-dhcpv6-shield.shepherd@ietf.org" <draft-ietf-opsec-dhcpv6-shield.shepherd@ietf.org>, The IESG <iesg@ietf.org>, "opsec-chairs@ietf.org" <opsec-chairs@ietf.org>, "brian.e.carpenter@gmail.com" <brian.e.carpenter@gmail.com>
Subject: Re: [OPSEC] Ted Lemon's Discuss on draft-ietf-opsec-dhcpv6-shield-05: (with DISCUSS and COMMENT)
X-BeenThere: opsec@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: opsec wg mailing list <opsec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/opsec>, <mailto:opsec-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/opsec/>
List-Post: <mailto:opsec@ietf.org>
List-Help: <mailto:opsec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/opsec>, <mailto:opsec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Feb 2015 14:49:33 -0000


On 2/9/15 1:57 PM, Fernando Gont wrote:
> On 02/08/2015 04:24 PM, Ted Lemon wrote:
>> On Feb 8, 2015, at 1:47 PM, C. M. Heard <heard@pobox.com> wrote:
>>> It is not necessarily true that an unknown upper layer protocol 
>>> header will look like a malformed extension header to a device that
>>>  assumes it is an extension header following the format in RFC
>>> 6564. If the value of the 2nd octet of the unknown header is v,
>>> then it won't appear malformed if at least 8*(v+1) bytes remain in
>>> the packet, starting from the beginning of the unknown header.  At
>>> that point the device would be interpreting the payload of the
>>> unknown upper layer PDU as an extension header chain.  In the
>>> benign case where the packet is a legitimate one with an upper
>>> layer protocol unknown to the device, it is likely (but not
>>> assured) that the chain would quickly terminate in something that
>>> looks like a malformed extension header.  However, it would not be
>>> difficult to craft a packet that makes a very long apparent header
>>> chain.  Depending on how the device processes header chains, that
>>> could easily be a vector for DOS attacks -- e.g., by consuming
>>> processing resources or by exercising a rarely used processing
>>> path.  That is why I think it is UNSAFE to continue processing a
>>> header chain after encountering an unknown next header value.
>>
>> This may or may not be true, but to the extent that it's true, it's
>> already addressed in RFC 7045, and it's addressed correctly there.
>> There is no need to strengthen the advice in RFC 7045 here, which
>> this document currently does
> 
> Why do you think this document "strengthens the advice in RFC7045", as
> opposed to it actually *complying* with what's in RFC7045?

Perhaps the issue is that not everyone has read 7045 recently.  The
primary piece of advice in 7045 is section 2.1
(http://tools.ietf.org/html/rfc7045#section-2.1), which I summarize as:

1. A forwarding node SHOULD forward all packets regardless of whether
there are extension headers present or not.

2. If a forwarding node examines the packet it MUST recognize all
standard extension headers and SHOULD recognize all experimental
extension headers.

3. Intermediate nodes SHOULD NOT discard a packet containing
unrecognized extension headers.

4. If the intermediate node discards a packet containing a standard
extension header, it MUST be because of a configurable policy.

5. The discard policy for each standard extension header MUST be
individually configurable.  The default configuration SHOULD allow all
standard extension headers.

6. Forwarding nodes MUST be configurable to allow unrecognized extension
headers. The default configuration MAY be to drop packets containing them.

Regards,
Brian