Hi Roman, Thanks for your detailed and constructive comments and questions.
I will address yours on the revision. Thanks. Best Regards, Paul On Thu, Oct 27, 2022 at 12:34 PM Roman Danyliw <r...@cert.org> wrote: > Hi! > > I performed an AD review of > draft-ietf-i2nsf-registration-interface-dm-21. More feedback is split into > a two section: general comments on the document followed by specific > section by section comments. > > ==[ General Comments > I appreciate that this document is intended to specify the registration > interface of the I2NSF architecture. Typically, when the primary intent of > a document is to specify a YANG module most operational and architectural > considerations can be covered elsewhere. In my assessment, I2NSF is a > special case. This is a niche YANG module for a specific architecture. To > ensure that it can be implemented in a secure and interoperable way, > additional details need to be specified beyond what is in RFC8329. > Practically, there are no other documents in which to convey this > information. Additionally, what makes this document different than the > other four YANG module documents is that it appears to be specifying > interactions across administrative domains. This suggests that even > greater care needs to be taken with the Security, Operational, and Privacy > Considerations. To that end, few high-level comments: > > ** Architectural considerations. > > -- Who initiates the registration and update process? Is this Security > Controller or DMS initiated, or is it expected to be possible for either to > do it? My confusion originates from Section 3 saying the DMS “uses [the] > Registration Interface to provide NSFs developed by the NSF vendor to > Security Controller”, but Section 4 saying that “DMS registers NSFs and > their capabilities with Security Controller via the registration interface” > and Section 4.1 repeats “This submodel is used by DMS to register an NSF > with Security Controller.” Please be consistent and explicit. > > -- In NETCONF/RESTCONF parlance, who is expected to be the client and > server? > > -- I don’t see it in the YANG module definition, but the text phrases > things as if the DMS is serving the NSF to the Security Controller. For > example: > > (a) Section 3. “Developer's Management System (DMS) in I2NSF framework is > typically run by an NSF vendor, and uses Registration Interface to provide > NSFs developed by the NSF vendor to Security Controller.” > > (b) Section 3. “the I2NSF Registration Interface can be used as a standard > interface for the DMSs to provide NSFs capability information to the > Security Controller.” > > (c) Section 3. “Security Controller needs to request DMS for additional > NSF(s) that can provide the required security capabilities via Registration > Interface.” > > The text in (b) is clear in saying that the registration interface provide > NSF capability information to the Security Controller. (a) and (c) seem to > suggest that the NSF itself is being shared through the interface. > > -- I was under the impression that the DMS was providing “NSF capability > information” so I was surprised to see instances of what appeared to be > local provisioning information. For example: > > (a) Section 4.1.1.1 “The registration interface can control the usages and > limitations of the created instance and make the appropriate request > according to the status.)” > > (b) Section 4.1.2. The “NSF Access Information” (or grouping > nsf-access-info per the YANG module) appears to specify the IP address of > an NSF > > (c) YANG. rpc nsf-capability-query has the DMS returning nsf-access-info > which is an IP address of an nsf. > > Why would the DMS be privy to what appears to be local configuration > information. Does the DMS have a role in provisioning the NSF? Is there > any information about the Security Controller’s configuration stored on the > DMS (beyond authorization or authentication information)? > > ** Operational considerations > > -- What guides the cadence and workflow associated with the Security > Controller getting updates on the NSFs? > > -- How does the Security Controller discover the DMS? > > ** Security Considerations > > -- Thanks for the YANG object level analysis. Please also provide > high-level analysis about the supply-chain risk presented by this > architecture which has the Security Controller relying on a DMS. What > would be the impact to I2NSF if the DMS was not available? If the DMS was > compromised? What does the DMS learn about the Security Controller’s > configuration (and by proxy about the security architecture of the domain > in which it is fielded) through this interface? > > -- I recognize the boiler plate YANG security template on language on > citing that TLS/SSH and that NETCONF/RESTCONF can restrict access, but this > is generic. Given the described architecture (which entails exchanging > information that could affect security configurations across administrative > domains) there needs to be more specific guidance on the trust and > authentication/authorization models between the Security Controller and DMS. > > ** What does the YANG module for an “update” operation look like? > Registration is covered in Section 5.1.2.1 and Querying is in Section > 5.1.2.2. > > ==[ Section-by-section feedback > > The following are more detailed section specific feedback. > > ** Abstract. Typo. s/for Registration Interface/for the Registration > Interface/ > > ** Section 1. s/security controller/Security Controller/. Additionally, > as noted for the draft-ietf-i2nsf-consumer-facing-interface-dm, since > RFC8329 doesn’t mentioned Security Controller and uses Network Management > Operator System instead. Please note their relationship. > > ** Section 3. > > In this case, DMS > uses Registration Interface to update the capability of the NSF, > and this update SHOULD be reflected in the catalog of NSFs. > > If an update is going to occur, shouldn’t it be mandatory that the catalog > is modified? > > ** Section 3. Typo. s/from an I2NSF user, Security Controller/from an > I2NSF user, the Security Controller/ > > ** Section 4. The operations summarized in bullets (1) and (2), appear to > repeat the objectives 1 and 2 in Section 3? Is there a reason to do that > twice? > > ** Section 4.1. > The NSF Name contains a unique name of this NSF with the > specified set of capabilities. > > -- Unique within the scope of all NSF’s published by the DMS? > -- I note that draft-ietf-i2nsf-capability-data-model provides no guidance > beyond "The name of Network Security Function (NSF)", and on a registration > operation is uses that definition. As an side, on the rpc query response, > there is normative language in the YANG module. > > ** Section 4.1.1.1. Should this “NSF Specification” include other > dimensions like memory or disk? These are exposed alarms in the > monitoring-data-model. > > ** Section 4.1.1.1. > > This information represents the processing capability of an NSF. > > This sentence summarized the “NSF Specification” as “processing > capability”. However the descriptive text notes that this sub-model > element covers both “processing” and “bandwidth”. > > ** Section 4.1.1.1. > Assuming that the current workload status of each NSF is being > collected through NSF monitoring > [I-D.ietf-i2nsf-nsf-monitoring-data-model], this capability > information of the NSF can be used to determine whether the NSF is in > congestion by comparing it with the current workload of the NSF. > > Is this guidance only intended to cover “bandwidth”? I ask because I > don’t see a way to align the “% CPU load” metrics in the > monitoring-data-model with the processing-average and processing-peak > fields whose units are GHz. > > ** Section 4.1.1.1. > > These two information can be > used for the NSF's instance request. > > -- What is an instance request? > -- Editorial. "These two information" doesn't parse. > > ** Section 4.1.2. NSF Access Information. See earlier comments on not > understanding why this information is in the model. Setting that aside, > and just thinking of this container as what is necessary to connect to an > NSF over NETCONF/RESTCONF. > > -- Isn’t there also the possibility of various credentials being needed to > make a connection? Are they not represented for a reason? > > -- Why are domain names not supported? > > ** YANG. container processing > > I believe this is intended to express the processing capability of the NSF. > > -- Could the difference between “processing-average” and “processing-peak” > be explained. Is the latter expressing a concept like “Intel Turbo Boost”? > > -- Could the kind of decision support this is driving be better > explained. I ask because I’m not sure that GHz is the right unit. > Comparing clock speed absent a lot of other factors doesn’t seem > meaningful. Off the top of my head (and I’m not proposing this), something > like BogoMips or a benchmark seems more applicable. > > -- How would some of these figures be relevant in a virtualized > environment? > > ** YANG. container bandwidth. Outbound/inbound-average and -peak field. > > “The network bandwidth available to the NSF” > > -- Is this measuring the capacity of the NICs, throughput to > inspect/groom/filter a particular network load or the bandwidth of the > links provisioned to the NSF? > > -- If this is the provisioned bandwidth, please see my comments inquiring > about the role of the DMS with provisioning information. > -- If this is measuring capacity, then “bandwidth” doesn’t seem like the > right metric (maybe throughput)? What would “peak” throughput mean? > > ** Section 7. Please do not specifying normative behavior for the > attacker (i.e., “The attacker MAY …”, say “The attacker may”). > > ** Section 7. > > nsf-registration: The attacker MAY try to gather some sensitive > information of a registered NSF by sniffing this. > > Sniffing implies on-path inspection. Is the intent different here? > Shouldn’t the use of TLS or SSH preclude that? The subtext here is a > controlling read-access to the DMS server (I think). Can the threat please > be clarified? > > ** Section 7. For the “readable node analysis”, the following assessment > is used for the nsf-specification and nsf-capability-info: > > The attacker MAY gather the {specification / capability information} > information of any target NSF and misuse the information for > subsequent attacks. > > I would expect that knowing that a particular NSF is fielded by a > controller is of interest to the attacker as described. Is this > architecture, is the information tied to the specific and capability > information generic across all instances of that NSF for that vendor’s > deployment base? > > ** Section 7. > > * nsf-capability-query: The attacker MAY exploit this RPC operation > to deteriorate the availability of the DMS and/or gather the > information of some interested NSFs from the DMS. > > If the DMS is a vendor, wouldn’t the product capabilities be public in > some cases? Would that be worth clarifying? > > ** Appendix A. Step 5. > > 5. The NSF can have processing power and bandwidth. > > Could this please be made more descriptive. > > Regards, > Roman > _______________________________________________ > I2nsf mailing list > I2nsf@ietf.org > https://www.ietf.org/mailman/listinfo/i2nsf >
_______________________________________________ I2nsf mailing list I2nsf@ietf.org https://www.ietf.org/mailman/listinfo/i2nsf