[OPSEC] Some feedback on draft-ietf-opsec-v6

Fernando Gont <fgont@si6networks.com> Fri, 26 October 2018 19:20 UTC

Return-Path: <fgont@si6networks.com>
X-Original-To: opsec@ietfa.amsl.com
Delivered-To: opsec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EBC85130DFC for <opsec@ietfa.amsl.com>; Fri, 26 Oct 2018 12:20:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.852
X-Spam-Level:
X-Spam-Status: No, score=-0.852 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DATE_IN_PAST_12_24=1.049, SPF_PASS=-0.001] autolearn=no autolearn_force=no
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 9QvFQGqEfbQu for <opsec@ietfa.amsl.com>; Fri, 26 Oct 2018 12:20:25 -0700 (PDT)
Received: from fgont.go6lab.si (fgont.go6lab.si [IPv6:2001:67c:27e4::14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3E21E130DF3 for <opsec@ietf.org>; Fri, 26 Oct 2018 12:20:25 -0700 (PDT)
Received: from [192.168.0.104] (224.red-83-41-246.dynamicip.rima-tde.net [83.41.246.224]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by fgont.go6lab.si (Postfix) with ESMTPSA id 459068788E; Fri, 26 Oct 2018 21:20:16 +0200 (CEST)
From: Fernando Gont <fgont@si6networks.com>
Openpgp: preference=signencrypt
Autocrypt: addr=fgont@si6networks.com; prefer-encrypt=mutual; keydata= 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 wPI9brGzquUHy4qRrA==
To: "draft-ietf-opsec-v6@tools.ietf.org" <draft-ietf-opsec-v6@tools.ietf.org>
Cc: "'opsec@ietf.org'" <opsec@ietf.org>
Message-ID: <eea3801c-3432-304d-69d3-7c6f3e8ff8f7@si6networks.com>
Date: Fri, 26 Oct 2018 04:15:27 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/opsec/8ht0_2x8X_7yt-9JAOQb0frZ9oc>
Subject: [OPSEC] Some feedback on draft-ietf-opsec-v6
X-BeenThere: opsec@ietf.org
X-Mailman-Version: 2.1.29
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: <https://mailarchive.ietf.org/arch/browse/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: Fri, 26 Oct 2018 19:20:28 -0000

Folks,

Here are my notes while re-reading the doc. My comments have typos,
questionable English grammar :-), and missing ("you might want to" ||
"please" || "I'd") all over the place (*please* keep that in mind :-) ).


p 4:
>    A common question is whether companies should use PI vs PA space
>    [RFC7381], but from a security perspective there is little
>    difference. 

expand acronym upon first usage.


p4:
> hence, for
>    large network, 

s/network/networks/


p4:
> That RFC also recognizes the
>    need for host tracking and lists several mechanisms of how this can
>    be accomlished in section 9.1 or by the data sources (Section 2.6.1)
>    section of this document.

This one seems hard to parse ("or by the data..")
also s/accomlished/accomplished/


p5:
>  [SCANNING]
>    shows that there are scientifically based mechanisms that make
>    scanning for IPv6 reachable nodes more realizable than expected; see
>    also [RFC7707].


IIRC, [SCANNING] talks about the structure of the network bits, rathr
than host bits. You might want to move this ref to the previous page
when discussing using the bits for geography, etc.


p5:
>    While in some unmanaged environments obfuscating addresses could be
>    considered a benefit; it is a better practice to ensure that
>    perimeter rules are actively 

These need not be ... XOR ... One could do both :-)


p5:
>    Unique Local Addresses (ULAs) RFC4193 [RFC4193] are intended for
>    scenarios where IP addresses are not globally reachable, despite
>    formally having global scope.  

I think this should be something like "..for scenarios where systems are
not..." (see s/IP addresses/systems/)


p5:
>  RFC4193 [RFC4193] states that if these addresses are
>    accidentally leaked outside of a site via routing or DNS, there is no
>    conflict with any other addresses.  However, it would be prudent to
>    consider ingress filtering packets with ULA source addresses or
>    egress filtering packets with ULA destination addresses at the domain
>    boundary.


Some might read this in the wrong way: like the lack of conflict my be
enough reason not to filter. Thing is that lack of conflict can be of
benefit if you merge to nets. But you should always filter on your
edge... otherwise e.g. your peer could get ULA packets to you.


p5:
>    ULAs are assigned within pseudo-random /48 prefixes created as
>    specified in RFC4193 [RFC4193].  They could be useful for
>    infrastructure hiding as described in RFC4864 [RFC4864].

Some people (well, "folk") in argentina :-) randomize the prefixes,
since otherwise they lead to hard-to-remember addresses. :-)
Additionally, given that 2001:db8::/16 cannot be used in practice (they
are dropped at nodes, and its impossible to override this), some folks
in ARG frequently use ULAs in e.g. virtual labs (and the corresponding
documetation).


p5:
While not wanting to get into "ula usage", they can be useful when:
* you have internal servers that should only be reachable by internal
nodes. This makes the border ACLs easier. And the addresses don't change
if your provider leases you a different prefix.

* you want to keep communication within the internal network going while
there's an outage with your provider. In that case your PA space would
time out, and if you don't use ULAs, you might loose commuunication
within your network.


Pge 6 and others:
>    RFC6164 [RFC6164] in section 5.1 documents the reasons why to use a
>    /127 for inter-router point-to-point links; notably, a /127 prevents
>    the ping-pong attack between routers not implementing correctly
>    RFC4443 [RFC4443].  The previous recommendation of RFC3627 [RFC3627]
>    has been obsoleted and marked Historic by RFC6547 [RFC6547])

If the ref is the rfc # within brakes, I would just include the
reference.. otherwise "RFCxxxx [RFCxxxx]" duplicastes stuf unnecessarily.



Section 2.1.3:
Might want to point out that, more importantly, /127s mitigate NCE
attacks for cases where the implementation does not e.g. limit the
number of entries in the "INCOMPLETE" state.



> 2.1.4.  Temporary Addresses - Privacy Extensions for SLAAC
> 
>    Normal stateless address autoconfiguration (SLAAC) relies on the
>    automatically generated EUI-64 address, which together with the /64
>    prefix makes up the global unique IPv6 address.  The EUI-64 address
>    is generated from the 48-bit MAC address.RFC8064 [RFC8064] specifies
>    another way than using EUI-64 while still keeping the same IID for
>    each network prefix; this allows SLAAC nodes to always have the same
>    stable IPv6 address on a specific network while having different IPv6
>    address on different networks.

EUI-64 is kind of legacy now. At least recent versions of modern OSes
use RFC7217. Besides RFC8064 formely recommends against EUI-64 and
recommends RFC7217. (the text would seem t suggest you can do either
eui64 or rfc7217.. but you shouldnt).


Pag 6:
> Privacy extension addresses a.k.a.
>    temporary addresses may help to mitigate the correlation of
>    activities of a node within the same network, and may also reduce the
>    attack exposure window.

It certainly does reduce the attack window, also such reduction might be
questionable (ie., there's plenty of time to attack an adress that
remains valid for one day)



p 7:
> When
>    [RFC8064] is available, the stable temporary address are probably a
>    good balance between privacy (among multiple networks) and security/
>    user attribution (within a network).

s/stable temporary/stable privacy/


p7:
>    Using privacy extension addresses prevents the operator from building
>    a priori host specific access control lists (ACLs).  It must be noted
>    that recent versions of Windows do not use the MAC address anymore to
>    build the stable address but use a mechanism similar to the one
>    described in [RFC7217], this also means that such an ACL cannot be
>    configured based solely on the MAC address of the nodes, diminishing
>    the value of such ACL.

At least some versions of windows used to generate a random token, and
use it for the IID. in that sense, addresses configured for the same NIC
for different prefixes wuld get the same IID (in contrast with rfc7217,
where the IID would eb different)


Section 2.1.6:
RFC7610 might eb of use here. I guess there's also somethign from SAVI-land?



p 9:
> 
>    A firewall or any edge device able to enforce the recommended order
>    and number of occurences of extension headers is recommended.

change the last instance of "recommended" to avoid repetition.



> 
> 2.2.3.  Fragment Header
> 
>    The fragment header is used by the source when it has to fragment
>    packets.  RFC7112 [RFC7112] and section 4.5 of RFC8200 [RFC8200]
>    explain why it is important to:
> 
>       firewall and security devices should drop first fragment not
>       containing an upper-layer header;
> 
>       destination nodes should discard first fragments not containing an
>       upper-layer header.
> 
>    Else, stateless filtering could be bypassed by an hostile party.
>    RFC6980 [RFC6980] applies the same rule to NDP and the RA-guard
>    function described in RFC6105 [RFC6105].

The first para seems to have something missing (kind of "nodes should
drop first fragments that do not contain the entire ipv6 header chain").

Note: RFC6980 bans fragmentation for ND altogether -- RFC7112 jsut says
that the first fragment must contain the entire EH chain. RFC7113 spells
out how to implement ra-guard to avoid circumvention.


P.S.: May send more as I keep reading...

Thanks!

Cheers,
-- 
Fernando Gont
SI6 Networks
e-mail: fgont@si6networks.com
PGP Fingerprint: 6666 31C6 D484 63B2 8FB1 E3C4 AE25 0D55 1D4E 7492