Hi Eliot, Scott, Thanks for this document. Here is my AD review for draft-ietf-opsawg-sbom-access-12.
Moderate level comments: (1) p 3, sec 1. Introduction To enable application-layer discovery, this memo defines a well-known URI [RFC8615]. Management or orchestration tools can query this well-known URI to retrieve a system's SBOM or vulnerability information. Further queries may be necessary based on the content and structure of the response. It looks like the .wellknown URI can only be used to retrieve SBOM information and not vulnerability information (unless I am missing something). (2) p 15, sec 6. Security Considerations The YANG module specified in this document defines a schema for data that is designed to be accessed via network management protocols such as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS [RFC8446]. This text looks to be inconsistent with earlier parts of the document, specifically, I didn't think that the intent was to fetch this information using NETCONF or RESTCONF, but the early part of this document states that it contains groupings, which presumably could be used in any YANG model, and hence security considerations would apply. I would suggest that you split the security considerations into two separate sub-sections: i. The security considerations as this document applies to documenting SBOMs as part of the MUD file. Which I think is most of the text that you have below. As per above I think that it is this section that should be updated to comment on the use of the insecure version of http and coap. ii. A separate sub-section that only applies if the groupings are being used in regular YANG modules accessed via NETCONF/RESTCONF and that follows the standard YANG security template. Minor level comments: (3) p 0, sec Discovering and Retrieving Software Transparency and Vulnerability Information draft-ietf-opsawg-sbom-access-12 It wasn't obvious to me why this is called "transparency", is this is a standard term of art for SBOMs? (4) p 4, sec 1.1. How This Information Is Retrieved Note that vulnerability and SBOM information is likely to change at different rates. MUD's cache-validity node provides a way for manufacturers to control how often tooling should check for those changes through the cache-validity node. Just for my understanding: Is there any mechanism for clients to register for notification of changes rather than polling? (5) p 4, sec 2. The well-known transparency endpoint set Two well known endpoint is defined: "Two" => "a", and well known => well-known? (6) p 7, sec 4. The mud-sbom augmentation to the MUD YANG model identity http { base mudtx:local-type; description "Use http (insecure) to retrieve SBOM information. This method is NOT RECOMMENDED, but may be unavoidable for certain classes of deployment, where TLS has not or cannot be implemented"; } I'm okay with this and coap (from a pragmatism POV). But I think that the security section should talk about this: I.e., emphasize that secure versions MUST be used in preference, if available, and highlight the risks if insecure protocols are used. (7) p 7, sec 4. The mud-sbom augmentation to the MUD YANG model identity coaps { base mudtx:local-type; description "Use COAPS (secure) to retrieve SBOM"; } Possibly add YANG reference statements to point to the latest http, https, coap, and coaps specifications? (8) p 8, sec 4. The mud-sbom augmentation to the MUD YANG model choice sbom-retrieval-method { description "How to find SBOM information"; case cloud { list sboms { key "version-info"; description "A list of SBOMs tied to different software or hardware versions."; leaf version-info { type string; description "The version to which this SBOM refers."; } leaf sbom-url { type inet:uri; description "A statically located URL."; } Should any URI be allowed here, or should it be pattern restricted to http(s) or coap(s)? (9) p 8, sec 4. The mud-sbom augmentation to the MUD YANG model leaf archive-list { type inet:uri; description "This URI returns a JSON list of URLs that consist of SBOMs that were previously published for this device. Publication dates can found inside the SBOMs."; i. Why not "sbom-archive-list"? ii. Please also reformat the description. (10) p 8, sec 4. The mud-sbom augmentation to the MUD YANG model } choice vuln-retrieval-method { description "How to find vulnerability information"; case cloud { Is cloud a slightly colloquial term? Would 'remote' or 'online' be more general? (11) p 8, sec 4. The mud-sbom augmentation to the MUD YANG model leaf vuln-url { type inet:uri; description "A statically located URL."; Perhaps "A statically located URL that references the vulnerability information"? (12) p 9, sec 4. The mud-sbom augmentation to the MUD YANG model } } case vuln-contact-info { leaf contact-uri { type inet:uri; description "This MUST be either a tel, http, https, or mailto uri schema that customers can use to contact someone for vulnerability information."; i. Should this be "vuln-conctact-uri" (since the case statement doesn't appear in the instance data). The alternative solution would be to introduce "sbom" and "vuln" containers which would then force those containing identifiers into the instance data. ii. Should you not also have the same pattern statement that you also have for sbom-contact-uri? (13) p 10, sec 5.1. Without ACLS This first MUD file demonstrates how to get SBOM and vulnerability information without ACLs. { "ietf-mud:mud": { "mud-version": 1, "extensions": [ "ol", "transparency" ], "ol": { "owners": [ "Copyright (c) Example, Inc. 2022. All Rights Reserved" ], "spdx-tag": "0BSD" }, Where is the "ol" extension defined. I would have thought that the top node would need a prefix and name? (14) p 16, sec 6. Security Considerations SBOMs provide an inventory of software. If software is available to an attacker, the attacker may well already be able to derive this very same software inventory. When this information resides on the endpoint itself, the endpoint SHOULD NOT provide unrestricted access by default. Other servers that offer the data MAY restrict access to SBOM information using appropriate authorization semantics within HTTP. One way to do this would be to issue a certificate to the client for this purpose after a registration process has taken place. Another approach would involve the use of OAUTH in combination with a In particular, if a system attempts to retrieve an SBOM via HTTP and the client is not authorized, the server MUST produce an appropriate error, with instructions on how to register a particular client. federations of SBOM servers. Editing error? "with a ... " and "federations of SBOM servers". Nit level comments: (15) p 0, sec To improve cybersecurity posture, automation is necessary to locate what software is running on a device, whether that software has known vulnerabilities, and what, if any recommendations suppliers may have. This memo extends the MUD YANG model to provide the locations of software bills of materials and to vulnerability information. I find the last sentence hard to read, e.g., the "to vulnerability ..." (16) p 7, sec 4. The mud-sbom augmentation to the MUD YANG model grouping transparency-extension { description "This grouping provides a means to describe the location of software bills of material and vulnerability descriptions."; container transparency { description "container of methods to get an SBOM."; Please capitalize the first letter. Also, this container holds data other than just how to get SBOMs, should the description reflect that? Other grammar warnings generated by an automated tool (some may already be flagged above): Grammar Warnings: Section: 1, draft text: - on devices themselves - on a web site (e.g., via URI) - through some form of out-of-band contact with the supplier. Warning: Nowadays it's more common to write this as one word. Suggested change: "website" Section: 2, draft text: Two well known endpoint is defined: Warning: Possible agreement error. The noun 'endpoint' seems to be countable, so consider using: endpoints. Suggested change: "endpoints" Section: 6, draft text: Some of the readable data nodes in this YANG module may be considered sensitive or vulnerable in some network environments. Warning: If the text is a generality, 'of the' is not necessary. Suggested change: "Some" Section: 6, draft text: Another approach would involve the use of OAUTH in combination with a In particular, if a system attempts to retrieve an SBOM via HTTP and the client is not authorized, the server MUST produce an appropriate error, with instructions on how to register a particular client. Warning: Use an instead of 'a' if the following word starts with a vowel sound, e.g. 'an article', 'an hour' Suggested change: "an" Section: 6, draft text: federations of SBOM servers. Warning: This sentence does not start with an uppercase letter. Suggested change: "Federations" Regards, Rob _______________________________________________ OPSAWG mailing list OPSAWG@ietf.org https://www.ietf.org/mailman/listinfo/opsawg