Subject: Re: [netmod] Roman Danyliw's Discuss on draft-ietf-netmod-factory-default-14: (with DISCUSS and COMMENT)

From: Qin Wu <[email-masked]>
Date: Tue, 21 Apr 2020 13:20:22 +0000

Hi, Roman:
A few clarification inline below. 
-----邮件原件-----
发件人: Roman Danyliw via Datatracker [mailto:[email-masked]] 
发送时间: 2020年4月21日 20:52
收件人: The IESG <[email-masked]>
抄送: [email-masked]; [email-masked]; [email-masked]; Kent Watsen <[email-masked]>; [email-masked]
主题: Roman Danyliw's Discuss on draft-ietf-netmod-factory-default-14: (with DISCUSS and COMMENT)

Roman Danyliw has entered the following ballot position for
draft-ietf-netmod-factory-default-14: 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-netmod-factory-default/

----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------

Please use YANG security considerations template from https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines.  Specifically (as a DISCUSS item):

** (Per the template questions “for all YANG modules you must evaluate whether any readable data”) Would factory-default contain any sensitive information in certain network environments where the ACLs should be more restrictive that world readable for everyone?
[Qin]: It does follows yang-security-guidelines but there is no readable data node defined within rpc, that's why we don't use third paragraph boilerplate and fourth paragraph boilerplate of yang-security-guidelines. YANG-security-guidelines are more applicable to YANG data model with more readable/writable data nodes.
In addition, as clarified in the second paragraph, section 6 of this draft, NACM can be used to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations (i.e., factory-reset rpc)

Per “The operational disruption caused by setting the config to factory default contents varies greatly depending on the implementation and current config”, it seems like it could be worse than just an operational disruption.  Please note that a default configuration could be insecure or not have security controls enabled whereby exposing the network to compromise.

[Qin]: As described in the second paragraph of section 6 it by default restrict access for everyone by using the "default-deny-all" access control defined [RFC8341], what else does it need to address this security concern?
----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Please use YANG security considerations template from https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines.  Specifically (as a COMMENT item):

** Add “The Network Configuration Access Control Model (NACM) [RFC8341] provides the means to …”

[Qin]: We did follow this template, I am wondering how it is different from the second paragraph of section 6? I see they are equivalent but with more fine granularity security measures, if my understanding is correct.

---

From: Kent Watsen <[email-masked]>
Date: Tue, 21 Apr 2020 15:56:09 +0000

Hi Roman,

> Please use YANG security considerations template from https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines <https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines>.  Specifically (as a COMMENT item):
> 

Regarding the use of the YANG security considerations template from [1], it has been noted that the template is imperfect in several ways…

For instance, a YANG module  may not define any protocol accessible nodes (e.g., they only define identities, typedefs, yang-data, or structures).  In another example, the YANG module may only define RPCs (such as in this case) and/or notifications.  In yet another example, the YANG module may be only for use with RESTCONF (not NETCONF), and thus mentioning NETCONF at all would be odd (i.e., RFC 8572).

In such cases, strict adherence to the template does not make sense.  As chair/shepherd/author, I’ve struggled with how to best satisfy the intention adequately.   Of course, each case varies, but one idea that I’ve been exploring is to start the section with a disclaimer explaining why/how template [1] is (or not) followed.  This approach is appealing as it immediately conveys to the IESG that the template was not ignored.  However, it is unappealing in that it may be wrong for the published Security Considerations section to have a link to the template.

Please advise.
Kent  // as chair and shepherd

[1] https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines <https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines>

---

From: Andy Bierman <[email-masked]>
Date: Tue, 21 Apr 2020 09:20:19 -0700

On Tue, Apr 21, 2020 at 8:56 AM Kent Watsen <[email-masked]> wrote:

> Please use YANG security considerations template from
> https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines.
> Specifically (as a DISCUSS item):
>
> ** (Per the template questions “for all YANG modules you must evaluate
> whether any readable data”) Would factory-default contain any sensitive
> information in certain network environments where the ACLs should be more
> restrictive that world readable for everyone?
> [Qin]: It does follows yang-security-guidelines but there is no readable
> data node defined within rpc, that's why we don't use third paragraph
> boilerplate and fourth paragraph boilerplate of yang-security-guidelines.
> YANG-security-guidelines are more applicable to YANG data model with more
> readable/writable data nodes.
> In addition, as clarified in the second paragraph, section 6 of this
> draft, NACM can be used to restrict access for particular NETCONF or
> RESTCONF users to a preconfigured subset of all available NETCONF or
> RESTCONF protocol operations (i.e., factory-reset rpc)
>
> Per “The operational disruption caused by setting the config to factory
> default contents varies greatly depending on the implementation and current
> config”, it seems like it could be worse than just an operational
> disruption.  Please note that a default configuration could be insecure or
> not have security controls enabled whereby exposing the network to
> compromise.
>
> [Qin]: As described in the second paragraph of section 6 it by default
> restrict access for everyone by using the "default-deny-all" access control
> defined [RFC8341], what else does it need to address this security concern?
> Please use YANG security considerations template from
> https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines.
> Specifically (as a COMMENT item):
>
> [Qin]: We did follow this template, I am wondering how it is different
> from the second paragraph of section 6? I see they are equivalent but with
> more fine granularity security measures, if my understanding is correct.
>
>
>
> Regarding the use of the YANG security considerations template from [1],
> it has been noted that the template is imperfect in several ways…
>
> For instance, a YANG module  may not define any protocol accessible nodes
> (e.g., they only define identities, typedefs, yang-data, or structures).
> In another example, the YANG module may only define RPCs (such as in this
> case) and/or notifications.  In yet another example, the YANG module may be
> only for use with RESTCONF (not NETCONF), and thus mentioning NETCONF at
> all would be odd (i.e., RFC 8572).
>
> In such cases, strict adherence to the template does not make sense.  As
> chair/shepherd/author, I’ve struggled with how to best satisfy the
> intention adequately.   Of course, each case varies, but one idea that I’ve
> been exploring is to start the section with a disclaimer explaining why/how
> template [1] is (or not) followed.  This approach is appealing as it
> immediately conveys to the IESG that the template was not ignored.
> However, it is unappealing in that it may be wrong for the published
> Security Considerations section to have a link to the template.
>
>

Section 3 defines a factory-default datastore.
This exposes the factory default values of all configuration data nodes.
It seems like this should be mentioned in security considerations.

The template is a guideline, nothing more.

IMO even a typedef can require some security documentation:

   typedef password {
       type string;
       description
         "contains the text password for access to all confidential server
data";
   }

Please advise.
> Kent  // as chair and shepherd

Andy

> [1] https://trac.ietf.org/trac/ops/wiki/yang-security-guidelines
>
>
>
>
>
> _______________________________________________
> netmod mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/netmod
>

---

From: "Rob Wilton (rwilton)" <[email-masked]>
Date: Wed, 22 Apr 2020 13:35:29 +0000

Hi Kent,

From: netmod <[email-masked]> On Behalf Of Kent Watsen
Sent: 21 April 2020 16:56
To: Qin Wu <[email-masked]>
Cc: Roman Danyliw <[email-masked]>; [email-masked]; The IESG <[email-masked]>; [email-masked]; [email-masked]
Subject: Re: [netmod] Roman Danyliw's Discuss on draft-ietf-netmod-factory-default-14: (with DISCUSS and COMMENT)

Hi Roman,

In such cases, strict adherence to the template does not make sense.  As chair/shepherd/author, I’ve struggled with how to best satisfy the intention adequately.   Of course, each case varies, but one idea that I’ve been exploring is to start the section with a disclaimer explaining why/how template [1] is (or not) followed.  This approach is appealing as it immediately conveys to the IESG that the template was not ignored.  However, it is unappealing in that it may be wrong for the published Security Considerations section to have a link to the template.
[RW]
Perhaps add such as section in [], and mark it to be removed before publication.

E.g. [RFC Editor: Please remove this comment before publication. For reviewers:  This section has been modified from the standard template because …]

I’m obviously not saying that we need to do this for this document, just as a suggestion for future documents.

Regards,
Rob

Please advise.

---

From: Kent Watsen <[email-masked]>
Date: Wed, 22 Apr 2020 15:54:32 +0000

[Roman: for this draft, the takeaway is that Qin’s section deviates from the template because the module doesn’t define all the parts typically found in a YANG module]

Hi Rob,

> E.g. [RFC Editor: Please remove this comment before publication. For reviewers:  This section has been modified from the standard template because …]

Yes, this idea was coming to me as I was writing the above, but I thought it useful still to agree that the RFCs should never be published with a reference to the template, whether or not the Security Considerations section conforms to it or not.

> I’m obviously not saying that we need to do this for this document, just as a suggestion for future documents.

Agreed.

---

From: "Rob Wilton (rwilton)" <[email-masked]>
Date: Fri, 24 Apr 2020 16:54:04 +0000

Hi Qin,

This document was discussed today.  I think that Roman plans to follow up regarding the security considerations discuss.

From the discussion today, and reading the Discuss, my understanding is that Roman has two concerns that are more about the specific text than the use of the template:

1) Concerns read access to the factory-default datastore which could contain sensitive information.  Perhaps read access to that datastore should default to nacm:default-deny-all?  If so, then this should probably be documented in section 3, with a sentence in section 6 to explain that is how it is protected.

2) The second point is asking to expand this paragraph:

   The operational disruption caused by setting the config to factory
   default contents varies greatly depending on the implementation and
   current config.

Such that the description also covers "Please note that a default configuration could be insecure or not have security controls enabled whereby exposing the network to compromise."

I see that you are already addressing the other comments that have been raised.

Regards,
Rob

> -----Original Message-----
> From: iesg <[email-masked]> On Behalf Of Qin Wu
> Sent: 21 April 2020 14:20
> To: Roman Danyliw <[email-masked]>; The IESG <[email-masked]>
> Cc: [email-masked]; Kent Watsen <[email-masked]>; draft-
> [email-masked]; [email-masked]
> Subject: RE: Roman Danyliw's Discuss on draft-ietf-netmod-factory-default-
> 14: (with DISCUSS and COMMENT)
> 
> Hi, Roman:
> 抄送: [email-masked]; [email-masked];
> [email-masked]; Kent Watsen <[email-masked]>; [email-masked]
> 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.)
> 
> 
> default contents varies greatly depending on the implementation and
> current config”, it seems like it could be worse than just an operational
> restrict access for everyone by using the "default-deny-all" access
> control defined [RFC8341], what else does it need to address this security
> concern?

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Fri, 24 Apr 2020 20:09:18 +0200

> 1) Concerns read access to the factory-default datastore which could contain sensitive information.  Perhaps read access to that datastore should default to nacm:default-deny-all?  If so, then this…

Why would a factory-default datastore be more sensitive than <running>?

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>

---

From: Andy Bierman <[email-masked]>
Date: Fri, 24 Apr 2020 11:26:59 -0700

On Fri, Apr 24, 2020 at 9:54 AM Rob Wilton (rwilton) <rwilton=
[email-masked]> wrote:

> Hi Qin,
>
> This document was discussed today.  I think that Roman plans to follow up
> regarding the security considerations discuss.
>
> From the discussion today, and reading the Discuss, my understanding is
> that Roman has two concerns that are more about the specific text than the
> use of the template:
>
> 1) Concerns read access to the factory-default datastore which could
> contain sensitive information.  Perhaps read access to that datastore
> should default to nacm:default-deny-all?  If so, then this should probably
> be documented in section 3, with a sentence in section 6 to explain that is
> how it is protected.
>
>
The security risk here depends on the server implementation.
In the simplest use cases the factory config may be empty (i.e., just YANG
defaults).
This might even occur for complex NMDA implementations because <intended>
contains all the implementation details and factory <running> could be
empty.

I am just asking for a little text in the SC section that says the
factory-default datastore
could contain sensitive configuration data nodes, and the risk depends on
the
specific YANG data nodes present in the server.

> Such that the description also covers "Please note that a default
> configuration could be insecure or not have security controls enabled
> whereby exposing the network to compromise."
>

Our server supports a "fallback to factory-default" boot mode.
If the server boots with a bad configuration it can retry with the factory
default config.

Does there need to be any mention that the server MAY invoke the
<factory-reset> operation on its own?

Was there any discussion of a "factory-reset" notification during
development?
Seems like factory-reset of a device is an interesting management event.

Regards,

Andy

> > Please refer to
> https://www.ietf.org/iesg/statement/discuss-criteria.html