Re: [OPSAWG] Benjamin Kaduk's Discuss on draft-ietf-opsawg-mud-20: (with DISCUSS and COMMENT)

Eliot Lear <lear@cisco.com> Tue, 17 April 2018 17:54 UTC

Return-Path: <lear@cisco.com>
X-Original-To: opsawg@ietfa.amsl.com
Delivered-To: opsawg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5C8D512783A; Tue, 17 Apr 2018 10:54:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -12.709
X-Spam-Level:
X-Spam-Status: No, score=-12.709 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, TVD_PH_BODY_META_ALL=1.8, T_DKIMWL_WL_MED=-0.01, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
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 7NDK5HgqJY9s; Tue, 17 Apr 2018 10:54:13 -0700 (PDT)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DE4AD1270FC; Tue, 17 Apr 2018 10:54:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=39091; q=dns/txt; s=iport; t=1523987652; x=1525197252; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to; bh=MQvCL3ZvAXCi4A6PHpq/tV9ZJ5lh5mApQk9RMS9C6yg=; b=nIjKizy8YkuXBIPjT0tPHYQ8OkfYQlQIyATx2c0vkiOEiFikLPDB+OkI w6AV43yDwH8Yeh/CGPy6Oez+QTv8gVkQDa5B0PGv+uEbyA+Y73D/nZqLm /JoY6KyNrYHfV2V0/83pHGJRAuzrdz5GieOFnUVrraH0UDsuVzp0qESz/ 0=;
X-Files: signature.asc : 488
X-IronPort-AV: E=Sophos;i="5.48,464,1517875200"; d="asc'?scan'208,217";a="3196076"
Received: from aer-iport-nat.cisco.com (HELO aer-core-3.cisco.com) ([173.38.203.22]) by aer-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Apr 2018 17:54:10 +0000
Received: from [10.61.91.30] (ams3-vpn-dhcp6943.cisco.com [10.61.91.30]) by aer-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id w3HHs93x004310; Tue, 17 Apr 2018 17:54:09 GMT
To: Benjamin Kaduk <kaduk@mit.edu>, The IESG <iesg@ietf.org>
Cc: draft-ietf-opsawg-mud@ietf.org, Joe Clarke <jclarke@cisco.com>, opsawg-chairs@ietf.org, opsawg@ietf.org, EKR <ekr@rtfm.com>
References: <152397906070.11507.221821272669427536.idtracker@ietfa.amsl.com>
From: Eliot Lear <lear@cisco.com>
Openpgp: preference=signencrypt
Autocrypt: addr=lear@cisco.com; prefer-encrypt=mutual; keydata= xsBNBFMe1UQBCADdYOS5APDpIpF2ohAxB+nxg1GpAYr8iKwGIb86Wp9NkK5+QwbW9H035clT lpVLciExtN8E3MCTPOIm7aITPlruixAVwlBY3g7U9eRppSw9O2H/7bie2GOnYxqmsw4v1yNZ 9NcMLlD8raY0UcQ5r698c8JD4xUTLqybZXaK2sPeJkxzT+IwupRSQ+vXEvFFGhERQ88zo5Ca Sa1Gw/Rv54oH0Dq2XYkO41rhxQ60BKZLZuQK1d9+1y3I+An3AJeD3AA31fJZD3H8YRKOBgqe ILPILbw1mM7gCtCjfvFCt6AFCwEsjITGx55ceoQ+t5B5XGYJEppMWsIFrwZsfbL+gP31ABEB AAHNJUVsaW90IExlYXIgPGxlYXJAb2Zjb3Vyc2VpbXJpZ2h0LmNvbT7CwHsEEwECACUCGwMG CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJTHtXCAhkBAAoJEIe2a0bZ0nozBNoH/j0Mdnyg CgNNmI4DyL9mGfTJ/+XiTxWXMK4TTszwwn/tsXjyPQWjoO6nYqz5i96ItmSpkelSGVpzU+LK LQxSjFeUvKw23bp1rVecfGR+OENSE1m6KfFj3vtzQOZ2/FgK210MWnlYNNyAHX6Pf6hKInTP v6LbZiAQMCmf0aPvRbk/aPSNJAuIKrLrrCgAlwelrTavFsSwnKI3dhSG8DJ9+z/uiXDiHYra Ub3BKp5K/x71Zd8hUsWm2simnE/6HvZaZz7CC29JSZ/5gGtNB3OMNKLzLWUbQacF3IKxpW66 ZFYFYnlBV4jRnKlmb40YcEXWVJkkVC8g+/J9Qo6R8BdmSTXOwE0EUx7VRAEIALRZXth1u/3n FgY+G2FN0KEEik+2Xsk8JX9zr/eISa+Ol8a4U1orgxpyP2V7bQQDkDUEfs+Asagc6I8zrk3K xGln3pFFVfdM18uaEYwWvmE84Y12r7FwYdW62bA9X1Ttsp5Q1GI8XHdh0SQTF12pXYTwWW1P THYVIp7bGzM88cHqBW0xyRflu4j2nUrd9tWFd28SRxhj+MHQkQkbKFLloRty3lwdS8MCRPzX 9gUrkl+DxFHC7WrW3Vi4glI5YBlD0n2hSyDoP1GkKVT60gUGh7eJOnUBR8lzKm5wYqAtgq2m 79rKBylA40diRhbnTTeY+ytqMWFF5UXm97Jwxsezi7kAEQEAAcLAXwQYAQIACQUCUx7VRAIb DAAKCRCHtmtG2dJ6M5K5CADbunatgHsqHbR3KbpXxzralakEcdODGv/fbN6/EdKJeXrG9QKD lPxZTB9STw6+ANwESsr9uUMAxdDNKDeynjnQmFHxGdcdcXlnPZPThfseeUhUkbB/YKOfDIQA kKozNoKYj6Dcia+D/wvifIEW+GUUcO/6Qi8yK6PLJyM8C7vHEqmUGzX8gTCYOgAyOd4WZrC9 95CfB0yFIorw+MpK7MZTm5SbGPcYF9Gq9MzSqmaEw8U6YOElKYfnkcsCTLYyWaolhck+3/0R 9ISEWK5rUzqAuK40S4+Sn7yNycdCoqvQh4e3xSpzAu3aYZ8jKXQVV0X2G9Y+M1HMZuCqhPUO LTdF
Message-ID: <8f6ae301-07c6-2dbb-35dc-22c514eab6c6@cisco.com>
Date: Tue, 17 Apr 2018 19:54:08 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.7.0
MIME-Version: 1.0
In-Reply-To: <152397906070.11507.221821272669427536.idtracker@ietfa.amsl.com>
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="MbVw7qrYy0ZAZ2EzKpePeg6CB91xXFmqw"
Archived-At: <https://mailarchive.ietf.org/arch/msg/opsawg/5wxVUC0haUQKzP6zMucpvz_zebs>
Subject: Re: [OPSAWG] Benjamin Kaduk's Discuss on draft-ietf-opsawg-mud-20: (with DISCUSS and COMMENT)
X-BeenThere: opsawg@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: OPSA Working Group Mail List <opsawg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/opsawg>, <mailto:opsawg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/opsawg/>
List-Post: <mailto:opsawg@ietf.org>
List-Help: <mailto:opsawg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/opsawg>, <mailto:opsawg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Apr 2018 17:54:16 -0000

Hi Ben,

Maybe we can swat two birds with one stone here, so to speak.  I think
both EKR and I have been ruminating on the right text, and hopefully
between the three of us, and perhaps others from the community we can
zero in on what is needed.  


On 17.04.18 17:31, Benjamin Kaduk wrote:
> Benjamin Kaduk has entered the following ballot position for
> draft-ietf-opsawg-mud-20: Discuss
>
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
>
>
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
> for more information about IESG DISCUSS and COMMENT positions.
>
>
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-opsawg-mud/
>
>
>
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
>
> Hopefully this will be an easy DISCUSS to clear.
>
> Partially guided by some of the discussion that has already happened, it seems
> like there are three places where authentication/identity validation occurs in
> the MUD flow: the (CMS) signature alongside the MUD file, the TLS connection
> used to retrieve the MUD file, and the binding between the MUD URL and the
> device itself.  The last one seems pretty important, especially given some of
> the points in Ekr's DISCUSS about limiting damage in case of
> compromised/malicious device.  The security considerations already give some
> coverage in the first paragraph, but basically limited to the "manufacturer"
> groupings, and only covers the usage of the certificate extension for binding a
> MUD URL to a specific device.  There's also some related text when considering
> what to do if the MUD URL for a given MAC address changes, but I didn't see any
> coverage for the general case.  The entity using the MUD contents needs to be
> aware of the provenance of the URL and the risks of using a "spoofed" MUD from
> an attacker.

I think EKR's last statement jibes well with what you are saying.  I
propose an amended first paragraph of the security considerations
section, to address that last point as follows:
> Devices emitting MUD URLs that are not signed by someone else may lie,
> potentially gaining additional network access by pretending to be
> something it is not.  In these cases, while we describe some
> mitigations below, a risk of lying remains in some circumstances,
> particularly when a device may masquerade as another device that has
> already been approved to be on the network, but it isn't currently
> connected.  There are two overarching mitigations for this case:
>
>  * Best mitigation: devices should migrate to the use of  802.1AR
> certificate.
>  * 2nd best mitigation: do not grant such devices access to critical
>    resources, recognizing that attackers may be masquerading as
>    them.
>
> In addition, even those    devices    that do    have manufacturer
> certificates
> may be attackers.  MUD managers    that do    not recognize a  
>  signer MUST
> seek approval of the administrator prior to further processing.
>
> Additional mitigations are described below.
>
> When certificates are not present, Things claiming to be of a certain
> manufacturer SHOULD NOT be included in that manufacturer grouping
> without additional validation of some form. 

--

The LLDP and DHCP options are not nothing.  In the context of a
physically secure environment they can go a long way and at least deter
if not stop a fair amount of nonsense.  But they are by no means perfect.

With this having been said, I hope you would both be comfortable with
the above text, or perhaps with some additional suggestions.


>
>
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> It's pretty exciting to have the prospect of getting this kind of information
> out there in a standard, machine-readable format.  That said ... there's been a
> decent amount of talk of "still getting feet wet", "need to get experience how
> this unfolds", etc., so I have to ask: are we confident that this is better as
> Proposed Standard than Experimental?

There's good reason to get to proposed.  We will never get enough
manufacturers to get the operational experience we need to get to the
next stage if it is not.  Vendors in this arena simply don't move on
experimental work.

> Adding the ability to use DNS names in ACL 'match' patterns should probably be
> accompanied by some note about the (lack of) veracity of DNS information.  This
> is not a DISCUSS since the DNS name is expected to be what the Thing actually
> attempts to use, and the DNS resolver used by the Thing is likely to be the
> same one as used by the network, so in that sense the ACL will still "work as
> intended" even in the face of spoofed DNS.  But we can probably mention that
> it's still a risk.
>
> I echo Ekr's question about CMS vs. JWS.

Please see my response in that context.

>
> Please consider using the BCP 14/RFC8174 boilerplate.

I propose to make that change.

>
> Other comments (in document order, sorry about the interspersed nits).
>
> Section 1
>
>    o  Substantially reduce the threat surface on a device entering a
>       network to those communications intended by the manufacturer.
>
> Comma after 'network'?

I propose to trim this to:

 * Substantially reduce the threat surface on a device to those
   communications intended by the manufacturer.

> Section 1.5
>
>       [...] The DHCP server may take further actions,
>       such as retrieve the URL or otherwise pass it along to network
>       management system or controller.
>
> Retrieve the resource from the URL?

I propose the following:

> The DHCP server may take further actions, such as
>    act as the MUD manager or otherwise pass it along to the MUD manager.

>
> Section 1.7
>
>    my-controller:  Devices associated with the MUD URL of a device that
>       the administrator admits.
>
> I'm probably just being dumb, but I am failing to parse what this
> means.

Would the following be clearer?

> Devices intended to serve as controllers for the MUD-URL that    the
> thing emitted.

>
> Section 1.8
>
>    The information returned by the MUD file server (a web server) is
>    valid for the duration of the Thing's connection, or as specified in
>    the description.  Thus if the Thing is disconnected, any associated
>    configuration in the switch can be removed.  Similarly, from time to
>    time the description may be refreshed, based on new capabilities or
>    communication patterns or vulnerabilities.
>
> This feels slightly internally inconsistent about valid/refreshed.

There are two concepts at play here:

  * When the device goes away or is unplugged
  * When the MUD file itself has been updated.

We am attempting to capture both.  Apparently badly.

How about the following:

> The information returned by the MUD file server is valid for as long
> as the Thing is connected.  There is no expiry.  However, if the MUD
> manager has detected that the MUD file for a Thing has changed, it
> SHOULD update the policy expeditiously, taking into account whatever
> approval flow is required in a deployment.  In this way, new
> recommendations from the manufacturer can be processed in a timely
> fashion.


>
> Section 12.2
>
> "Prior to retrieving a MUD file [...] validating the signature
> across the MUD file" is internally inconsistent.  Perhaps the first
> pargaraph is stale, since the second paragraph basically duplicates
> it?

Totally.  I propose to remove the SHOULD and leave the MUST, as follows:
> Prior to retrieving a MUD file the MUD manager MUST retrieve the MUD
> signature file by retrieving the value of "mud-signature" and
> validating the signature across the MUD file.  A MUD manager MUST
> cease processing of that file it cannot validate the chain of trust to
> a known trust anchor until an administrator has given approval.


>
> Also,
>    [...] For another, what is more important
>    is the accountability of the recommendation, and not the
>    cryptographic relationship between the device and the file.
> seems not really true.
>
>    An example:
>
>    % openssl cms -verify -in mudfile.p7s -inform DER -content
>    % mudfile
>
>    Note the additional step of verifying the common trust root.
>
> The additional step that's not included in the example?  Maybe it
> could be included?

That essentially means installing a trust anchor for this purpose.  Let
me see what I can do.


>
> Section 15
>
> Lots of tiny comments, so I'll quote and put inline.
>
> % Based on how a MUD URL is emitted, a Thing may be able to lie about
>
> s/emitted/conveyed to the network/?

I believe this text is about to change.
>
> % what it is, thus gaining additional network access.  There are
>
> s/thus/potentially/
> And maybe clarify ", based on the (false) MUD that is claimed"?

Assuming this text remains...  edited as follows:
>  Thing may be able
> to lie about what it is, potentially gaining additional network access
> by pretending to be something it is not.


>
> % several means to limit risk in this case.  The most obvious is to
> % only believe Things that make use of certificate-based authentication
> % such as IEEE 802.1AR certificates.  When those certificates are not
> % present, Things claiming to be of a certain manufacturer SHOULD NOT
> % be included in that manufacturer grouping without additional
> % validation of some form.  This will occur when it makes use of
>
> "occur" sounds more like it refers to the validation than the
> "claiming to be of a certain manufacturer"; maybe "be relevant"?

ok.
>
> % primitives such as "manufacturer" for the purpose of accessing Things
> % of a particular type.  Similarly, network management systems may be
> % able to fingerprint the Thing.  In such cases, the MUD URL can act as
> % a classifier that can be proven or disproven.  Fingerprinting may
> % have other advantages as well: when 802.1AR certificates are used,
> % because they themselves cannot change, fingerprinting offers the
> % opportunity to add artificats to the MUD URL.  The meaning of such
>
> typo                 ^^^^^^^^^^
> This is the "reserved" field in the MUD URL?  Maybe best to say so
> explicitly.

ok: propose

>  Fingerprinting may have
> other advantages as well: when 802.1AR certificates are used, because
> they themselves cannot change, fingerprinting offers the opportunity
> to add artifacts to the MUD URL in the form of the reserved field
> discussed in {{dhcpopt}}.

>
> % artifacts is left as future work.
> %
> % Network management systems SHOULD NOT accept a usage description for
> % a Thing with the same MAC address that has indicated a change of
> % authority without some additional validation (such as review by a
> % network administrator).  New Things that present some form of
>
> This sentence could probably be tightened up.

Will try with small edits.

>
> % unauthenticated MUD URL SHOULD be validated by some external means
> % when they would be otherwise be given increased network access.
>
> I'd suggest replacing "otherwise" with a more concrete condition.

I think the best way to deal with this is to delete "otherwise".

>
> % It may be possible for a rogue manufacturer to inappropriately
> % exercise the MUD file parser, in order to exploit a vulnerability.
> % There are three recommended approaches to address this threat.  The
> % first is to validate the signature of the MUD file.  The second is to
>
> How does this help -- can't a rogue manufacturer sign whatever
> malformed blob it wants?

Let's restate that:

The first is to validate that the signer of the MUD file is known to and
trusted by the MUD manager.

>
> % have a system do a primary scan of the file to ensure that it is both
> % parseable and believable at some level.  MUD files will likely be
> % relatively small, to start with.  The number of ACEs used by any
> % given Thing should be relatively small as well.  It may also be
> % useful to limit retrieval of MUD URLs to only those sites that are
> % known to have decent web or domain reputations.
> %
> [...]
> %
> % The release of a MUD URL by a Thing reveals what the Thing is, and
> % provides an attacker with guidance on what vulnerabilities may be
> % present.
>
> It also seems to be permitted for the manufacturer to give Things
> unique MUD URLs and perform (e.g., location) tracking based on
> accesses to that URL...

It's not the best method.  For one thing, the MUD manager may be nowhere
near where the device is.  For another, if the device can communicate
with the manufacturer at all, it can directly convey that information
without going through MUD.  But it might be possible.  It can also be
remediated, as it happens.  See below.
>
> % While the MUD URL itself is not intended to be unique to a specific
> % Thing, the release of the URL may aid an observer in identifying
> % individuals when combined with other information.  This is a privacy
> % consideration.
>
> ...even though you disclaim that intent.  I suspect that any
> normative guidance on making MUD URLs non-identifying would not
> really be enforcable, but it may be worth mentioning this
> consideration earlier in the document (e.g., in Sections 5 and 10).
> Also, it's not necessarily just the "release" of the MUD URL, but
> the actual accesses by the MUD controller, that give the MUD URL's
> origin server real data about where the device being tracked is
> located/used.

I propose to (a) list this risk and (b) propose the following
remediations to address this sort of release:

There is the risk of the MUD manager itself being spied
on to determine what things are connected    to the network.  To address
this risk, MUD managers    may choose to make use of TLS proxies that
they trust that would aggregate other information.

>
> % In addressing both of these concerns, implementors should take into
> % account what other information they are advertising through
> % mechanisms such as mDNS[RFC6872], how a Thing might otherwise be
> % identified, perhaps through how it behaves when it is connected to
> % the network, whether a Thing is intended to be used by individuals or
> % carry personal identifying information, and then apply appropriate
> % data minimization techniques.  One approach is to make use of TEAP
> % [RFC7170] as the means to share information with authorized
> % components in the network.  Network elements may also assist in
> % limiting access to the MUD URL through the use of mechanisms such as
> % DHCPv6-Shield [RFC7610].
> [...]
>
> Appendix C
>
>    In this sample extension we augment the core MUD model to indicate
>    whether the device implements DETNET.  If a device later attempts to
>    make use of DETNET, an notification or exception might be generated.
>
> Presumably this should say that if a device *claims to not use
> DETNET* but then later does?
>
>
>
Righto.

Thanks!

Eliot