rfc9472xml2.original.xml | rfc9472.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 2. | ||||
6.10) --> | ||||
<!DOCTYPE rfc [ | <!DOCTYPE rfc [ | |||
<!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
<!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
<!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
<!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
]> | ]> | |||
<rfc ipr="trust200902" docName="draft-ietf-opsawg-sbom-access-18" category="std" | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRef | -ietf-opsawg-sbom-access-1htmlwdiff 8" number="9472" submissionType="IETF" categ | |||
s="true"> | ory="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" upda | |||
<front> | tes="" obsoletes="" xml:lang="en" version="3"> | |||
<title abbrev="Discovering SBOMs and Vuln. Info">Discovering and Retrieving | ||||
Software Transparency and Vulnerability Information</title> | ||||
<front> | ||||
<title abbrev="A YANG Data Model for SBOMs & Vuln. Info">A YANG Data | ||||
Model for Reporting Software Bills of Materials (SBOMs) and Vulnerability | ||||
Information</title> | ||||
<seriesInfo name="RFC" value="9472"/> | ||||
<author initials="E." surname="Lear" fullname="Eliot Lear"> | <author initials="E." surname="Lear" fullname="Eliot Lear"> | |||
<organization>Cisco Systems</organization> | <organization>Cisco Systems</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Richtistrasse 7</street> | <street>Richtistrasse 7</street> | |||
<city>Wallisellen</city> | <city>Wallisellen</city> | |||
<code>CH-8304</code> | <code>8304</code> | |||
<country>Switzerland</country> | <country>Switzerland</country> | |||
</postal> | </postal> | |||
<phone>+41 44 878 9200</phone> | <phone>+41 44 878 9200</phone> | |||
<email>lear@cisco.com</email> | <email>lear@cisco.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="S." surname="Rose" fullname="Scott Rose"> | <author initials="S." surname="Rose" fullname="Scott Rose"> | |||
<organization>NIST</organization> | <organization>NIST</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>100 Bureau Dr</street> | <street>100 Bureau Dr.</street> | |||
<city>Gaithersburg MD</city> | <city>Gaithersburg</city> | |||
<region>MD</region> | ||||
<code>20899</code> | <code>20899</code> | |||
<country>USA</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<phone>+1 301-975-8439</phone> | <phone>+1 301-975-8439</phone> | |||
<email>scott.rose@nist.gov</email> | <email>scott.rose@nist.gov</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2023" month="October"/> | ||||
<date year="2023" month="April" day="28"/> | <area>ops</area> | |||
<workgroup>opsawg</workgroup> | ||||
<keyword>Internet-Draft</keyword> | <keyword>sbom</keyword> | |||
<keyword>discovery</keyword> | ||||
<keyword>mud</keyword> | ||||
<keyword>vex</keyword> | ||||
<keyword>chaff</keyword> | ||||
<abstract> | <abstract> | |||
<t>To improve cybersecurity posture, automation is necessary to locate | ||||
<t>To improve cybersecurity posture, automation is necessary to locate | the software a device is using, whether that software has known | |||
the software a device is using, and whether that software has known | vulnerabilities, and what, if any, recommendations suppliers may have. | |||
vulnerabilities, and what, if any recommendations suppliers may have. | This memo extends the Manufacturer User Description (MUD) YANG schema to | |||
This memo extends the MUD YANG schema to provide the locations of software | provide the locations of software bills of materials (SBOMs) and | |||
bills of materials (SBOMS) and to vulnerability information by introducing | vulnerability information by introducing a transparency schema.</t> | |||
a transparency schema.</t> | ||||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="introduction"><name>Introduction</name> | <section anchor="introduction"> | |||
<name>Introduction</name> | ||||
<t>A number of activities have been working to improve visibility to what | <t>A number of activities have taken place to improve the visibility of | |||
software is running on a system, and what vulnerabilities that | what software is running on a system and what vulnerabilities that | |||
software may have <xref target="EO2021"/>.</t> | software may have <xref target="EO2021"/>.</t> | |||
<t>Put simply, this memo seeks to answer two classes of questions for | ||||
<t>Put simply, this memo seeks to answer two classes of questions to the | tens of thousands of devices and a large variety of device types. Those | |||
scale of tens of thousands of devices and a large variety of types of | questions are as follows:</t> | |||
devices. Those questions are as the following:</t> | <ul spacing="normal"> | |||
<li>Is this system susceptible to a particular vulnerability?</li> | ||||
<t><list style="symbols"> | <li>Which devices in a particular environment contain vulnerabilities | |||
<t>Is this system vulnerable to a particular vulnerability?</t> | that require some action?</li> | |||
<t>Which devices in a particular environment contain vulnerabilities | </ul> | |||
that require some action?</t> | <t>This memo doesn't specify the format of this information but rather | |||
</list></t> | only how to locate and retrieve these objects. That is, the model is | |||
intended to facilitate discovery and on its own provides no access to | ||||
<t>This memo doesn't specify the format of this information, but rather | the underlying data.</t> | |||
only how to locate and retrieve these objects. That is, the model is | <t>Software bills of materials (SBOMs) are descriptions of what | |||
intended to facilitate discovery, and on its own provides no access to the | software, including versioning and dependencies, a device contains. | |||
underlying data.</t> | There are different SBOM formats such as Software Package Data Exchange | |||
<xref target="SPDX"/> or CycloneDX <xref target="CycloneDX15"/>.</t> | ||||
<t>Software bills of materials (SBOMs) are descriptions of what software, | <t>System vulnerabilities may be similarly described using several data | |||
including versioning and dependencies, a device contains. There | formats, including the aforementioned CycloneDX, the Common Vulnerability | |||
are different SBOM formats such as Software Package Data Exchange | Reporting Framework <xref target="CVRF"/>, and the Common Security Advisor | |||
<xref target="SPDX"/> or CycloneDX<xref target="CycloneDX12"/>.</t> | y | |||
Format <xref target="CSAF"/>. This information is typically used to | ||||
<t>System vulnerabilities may similarly be described using several data | report the state of any known vulnerabilities on a system to administrator | |||
formats, including the aforementioned CycloneDX, Common Vulnerability | s.</t> | |||
Reporting Framework <xref target="CVRF"/>, the Common Security Advisory Format | ||||
<xref target="CSAF"/>. This information is typically used to report to | ||||
administrators the state of any known vulnerabilities on a system.</t> | ||||
<t>SBOM and vulnerability information can be used in concert with other | ||||
sources of vulnerability information. For a network management tool | ||||
could discover that a system makes use of a particular set of software | ||||
components, searches a national vulnerability database to determine | ||||
known vulnerabilities, and then applies information provided the | ||||
manufacturer through this mechanism to produce a vulnerability report. | ||||
That report may be used to indicate what if any versions of software | ||||
correct that vulnerability, or whether the system exercises the | ||||
vulnerable code at all.</t> | ||||
<t>Both classes of information elements are optional under the model | <t>SBOM and vulnerability information can be used in concert with other | |||
sources of vulnerability information. A network management tool could | ||||
discover that a system uses a particular set of software components, | ||||
searches a national vulnerability database to determine known | ||||
vulnerabilities, and applies information provided by the manufacturer | ||||
through this mechanism to produce a vulnerability report. That report | ||||
may be used to indicate what, if any, versions of software correct that | ||||
vulnerability or whether the system exercises the vulnerable code at | ||||
all.</t> | ||||
<t>Both classes of information elements are optional under the model | ||||
specified in this memo. One can provide only an SBOM, only | specified in this memo. One can provide only an SBOM, only | |||
vulnerability information, or both an SBOM and vulnerability | vulnerability information, or both an SBOM and vulnerability | |||
information.</t> | information.</t> | |||
<t>Note that SBOM formats may also carry other information, the most | ||||
<t>Note that SBOM formats may also carry other information, the most | ||||
common being any licensing terms. Because this specification is | common being any licensing terms. Because this specification is | |||
neutral regarding content, it is left for format developers such as | neutral regarding content, it is left for format developers such as | |||
the Linux Foundation, OASIS, and ISO to decide what attributes they | the Linux Foundation, OASIS, and ISO to decide what attributes they | |||
will support.</t> | will support.</t> | |||
<t>This memo does not specify how vulnerability information may be | ||||
<t>This memo does not specify how vulnerability information may be | retrieved directly from the endpoint. That is because vulnerability | |||
retrieved directly from the endpoint. That's because vulnerability | information changes occur to software updates at different rates. | |||
information changes occur at different rates to software updates. | ||||
However, some SBOM formats may also contain vulnerability information.</t> | However, some SBOM formats may also contain vulnerability information.</t> | |||
<t>SBOMs and vulnerability information are advertised and retrieved | ||||
<t>SBOMs and vulnerability information are advertised and retrieved | ||||
through the use of a YANG augmentation of the Manufacturer User | through the use of a YANG augmentation of the Manufacturer User | |||
Description (MUD) model <xref target="RFC8520"/>. Note that the schema creates a | Description (MUD) model <xref target="RFC8520"/>. Note that the schema creates a | |||
grouping that can also be used independently of MUD. Moreover, other | grouping that can also be used independently of MUD. Moreover, other | |||
MUD features, such as access controls, needn't be present.</t> | MUD features, such as access controls, needn't be present.</t> | |||
<t>The mechanisms specified in this document are meant to address two | ||||
<t>The mechanisms specified in this document are meant to address two | ||||
use cases:</t> | use cases:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li>A network-layer management system retrieving information from an | |||
<t>A network-layer management system retrieving information from an IoT | Internet of Things (IoT) device as part of its ongoing life | |||
device as part of its ongoing lifecycle. Such devices may or may not | cycle. Such devices may or may not have query interfaces | |||
have query interfaces available.</t> | available.</li> | |||
<t>An application-layer management system retrieving vulnerability or | <li>An application-layer management system retrieving vulnerability or | |||
SBOM information in order to evaluate the posture of an application | SBOM information in order to evaluate the posture of an application | |||
server of some form. These application servers may themselves be | server of some form. These application servers may themselves be | |||
containers or hypervisors. Discovery of the topology of a server is | containers or hypervisors. Discovery of the topology of a server is | |||
beyond the scope of this memo.</t> | beyond the scope of this memo.</li> | |||
</list></t> | </ul> | |||
<t>To satisfy these two key use cases, objects may be found in one of | ||||
<t>To satisfy these two key use cases, objects may be found in one of | ||||
three methods:</t> | three methods:</t> | |||
<ol spacing="normal"> | ||||
<li>on the devices themselves</li> | ||||
<li>on a website (e.g., via a URI)</li> | ||||
<li>through some form of out-of-band contact with the supplier</li> | ||||
</ol> | ||||
<t>Using the first method, devices will have interfaces that permit | ||||
direct retrieval. Examples of these interfaces might be an HTTP <xref | ||||
target="RFC9110"/> or Constrained Application Protocol (CoAP) <xref | ||||
target="RFC7252"/> endpoint for retrieval. There may also be private | ||||
interfaces as well.</t> | ||||
<t>Using the second method, when a device does not have an appropriate | ||||
retrieval interface, but one is directly available from the | ||||
manufacturer, a URI to that information is discovered through interfaces | ||||
such as MUD via DHCP or bootstrapping and ownership transfer | ||||
mechanisms.</t> | ||||
<t>Using the third method, a supplier may wish to make an SBOM or | ||||
vulnerability information available under certain circumstances and may | ||||
need to individually evaluate requests. The result of that evaluation | ||||
might be the SBOM, the vulnerability itself, a restricted URL, or no | ||||
access.</t> | ||||
<t>To enable application-layer discovery, this memo defines a well-known | ||||
URI <xref target="RFC8615"/>. Management or orchestration tools can | ||||
query this well-known URI to retrieve a system's SBOM information. | ||||
Further queries may be necessary based on the content and structure of | ||||
the response.</t> | ||||
<t><list style="symbols"> | <section anchor="requirements-language"> | |||
<t>on devices themselves</t> | <name>Requirements Language</name> | |||
<t>on a website (e.g., via URI)</t> | <t> The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
<t>through some form of out-of-band contact with the supplier.</t> | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
</list></t> | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
<t>Using the first method, devices will have interfaces that permit | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | |||
direct retrieval. Examples of these interfaces might be an HTTP | are to be interpreted as described in BCP 14 <xref | |||
<xref target="RFC9110"/>, or COAP <xref target="RFC7252"/> endpoint for retrieva | target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they | |||
l. | appear in all capitals, as shown here. | |||
There may also be private interfaces as well.</t> | </t> | |||
</section> | ||||
<t>Using the second method, when a device does not have an appropriate | <section anchor="how-this-information-is-retrieved"> | |||
retrieval interface, but one is directly available from the | <name>How This Information is Retrieved</name> | |||
manufacturer, a URI to that information is discovered through | <t><xref target="the-mud-sbom-augmentation-to-the-mud-yang-model"/> | |||
interfaces such as MUD via DHCP or bootstrapping and ownership | describes a data model to extend the MUD file format to carry SBOM and | |||
transfer mechanisms.</t> | vulnerability information. <xref target="RFC8520" sectionFormat="of" | |||
section="1.5"/> describes mechanisms by which devices can emit a URL | ||||
<t>Using the third method, a supplier may wish to make an SBOM or | to point to this file. Additionally, devices can share this URL | |||
vulnerability information available under certain circumstances, and | either through documentation or within a QR code on a box. <xref | |||
may need to individually evaluate requests. The result of that | target="the-well-known-transparency-endpoint-set"/> describes a | |||
evaluation might be the SBOM or vulnerability itself or a restricted | well-known URL from which an SBOM could be served from the local | |||
URL or no access.</t> | device.</t> | |||
<t>Note that vulnerability and SBOM information are likely to change | ||||
<t>To enable application-layer discovery, this memo defines a well-known | at different rates. MUD's cache-validity node provides a way for | |||
URI <xref target="RFC8615"/>. Management or orchestration tools can query this | manufacturers to control how often tooling should check for those | |||
well-known URI to retrieve a system's SBOM information. Further | changes through the cache-validity node.</t> | |||
queries may be necessary based on the content and structure of the | </section> | |||
response.</t> | <section anchor="formats"> | |||
<name>Formats</name> | ||||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | <t>There are multiple ways to express both SBOMs and vulnerability | |||
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | information. When these are retrieved either from the device or from | |||
"MAY", and "OPTIONAL" in this document are to be interpreted as | a remote web server, tools will need to observe the Content-Type | |||
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and | header to determine precisely which format is being transmitted. | |||
only when, they | Because IoT devices in particular have limited capabilities, use of a | |||
appear in all capitals, as shown here.</t> | specific Accept: header in HTTP or the Accept Option in CoAP is | |||
<bcp14>NOT RECOMMENDED</bcp14>. Instead, backend tooling is | ||||
<section anchor="how-this-information-is-retrieved"><name>How This Information I | encouraged to support all known formats and <bcp14>SHOULD</bcp14> | |||
s Retrieved</name> | silently discard SBOM information sent with a media type that is not | |||
understood.</t> | ||||
<t>Section 4 describes a data model to extend the MUD file format to carry SBOM | <t>If multiple SBOMs are intended to be supported in the same file, | |||
and vulnerability information. Section 1.5 of RFC8520 describes mechanisms by | the media type should properly reflect that. For example, one might | |||
which devices can emit a URL to point to this file. Additionally, devices can | make use of application/{someformat}+json-seq. It is left to those | |||
share this URL either through documentation or within a QR code on a box. | supporting those formats to make the appropriate registrations in this | |||
Section 2 describes a well-known URL from which an SBOM could be served from | case.</t> | |||
the local device.</t> | <t>Some formats may support both vulnerability and software inventory | |||
information. When both vulnerability and software inventory | ||||
<t>Note that vulnerability and SBOM information are likely to change at | information is available from the same URL, both sbom-url and members | |||
different rates. MUD's cache-validity node provides a way for | of the vuln-url list <bcp14>MUST</bcp14> indicate that. Network | |||
manufacturers to control how often tooling should check for those | management systems <bcp14>MUST</bcp14> take note of when the SBOM and | |||
changes through the cache-validity node.</t> | vulnerability information are accessible via the same resource and not | |||
retrieve the resource a second time.</t> | ||||
</section> | </section> | |||
<section anchor="formats"><name>Formats</name> | </section> | |||
<t>There are multiple ways to express both SBOMs and vulnerability | <section anchor="the-well-known-transparency-endpoint-set"> | |||
information. When these are retrieved either from the device | <name>The Well-Known Transparency Endpoint Set</name> | |||
or from a remote web server, tools will need to observe the | <t>A well-known endpoint is defined:</t> | |||
Content-Type header to determine precisely which format is being | <t indent="3">"/.well-known/sbom" retrieves an SBOM | |||
transmitted. Because IoT devices in particular have limited | </t> | |||
capabilities, use of a specific Accept: header in HTTP or the Accept | <t>As discussed previously, the precise format of a response is based on | |||
Option in CoAP is NOT RECOMMENDED. Instead, backend tooling is | the Content-Type provided.</t> | |||
encouraged to support all known formats, and SHOULD silently discard | </section> | |||
SBOM information sent with a media type that is not understood.</t> | <section anchor="the-mud-transparency-extension-model-extension"> | |||
<name>The mud-transparency Extension</name> | ||||
<t>If multiple SBOMs are intended to be supported in the same file, the | <t>We now formally define the mud-transparency extension; this is done in | |||
media type should properly reflect that. For example, one might make | two parts.</t> | |||
use of application/{someformat}+json-seq. It is left to those | <t>First, the extension name "transparency" is listed in the | |||
supporting those formats to make the appropriate registrations in this | "extensions" array of the MUD file. Note that this schema extension is | |||
case.</t> | intended to be used wherever it might be appropriate (e.g., not just | |||
with MUD).</t> | ||||
<t>Some formats may support both vulnerability and software inventory | <t>Second, the "mud" container is augmented with a list of SBOM sources.</ | |||
information. When both vulnerability and software inventory | t> | |||
information is available from the same URL, both sbom-url and members | <t>This is done as follows:</t> | |||
of the vuln-url list MUST indicate that. Network management systems | <sourcecode type="yangtree"><![CDATA[ | |||
retrieving this information MUST take note that the identical resource | ||||
is being retrieved rather than retrieving it twice.</t> | ||||
</section> | ||||
</section> | ||||
<section anchor="the-well-known-transparency-endpoint-set"><name>The well-known | ||||
transparency endpoint set</name> | ||||
<t>A well-known endpoint is defined:</t> | ||||
<t><list style="symbols"> | ||||
<t>"/.well-known/sbom" retrieves an SBOM.</t> | ||||
</list></t> | ||||
<t>As discussed previously, the precise format of a response is based on | ||||
the Content-type provided.</t> | ||||
</section> | ||||
<section anchor="the-mud-transparency-extension-model-extension"><name>The mud-t | ||||
ransparency extension model extension</name> | ||||
<t>We now formally define this extension. This is done in two parts. | ||||
First, the extension name "transparency" is listed in the "extensions" | ||||
array of the MUD file. N.B., this schema extension is intended to be | ||||
used wherever it might be appropriate (e.g., not just MUD).</t> | ||||
<t>Second, the "mud" container is augmented with a list of SBOM sources.</t> | ||||
<t>This is done as follows:</t> | ||||
<figure><artwork><![CDATA[ | ||||
module: ietf-mud-transparency | module: ietf-mud-transparency | |||
augment /mud:mud: | augment /mud:mud: | |||
+--rw transparency | +--rw transparency | |||
+--rw (sbom-retrieval-method)? | +--rw (sbom-retrieval-method)? | |||
| +--:(cloud) | | +--:(cloud) | |||
| | +--rw sboms* [version-info] | | | +--rw sboms* [version-info] | |||
| | +--rw version-info string | | | +--rw version-info string | |||
| | +--rw sbom-url? inet:uri | | | +--rw sbom-url? inet:uri | |||
| +--:(local-well-known) | | +--:(local-well-known) | |||
| | +--rw sbom-local-well-known? identityref | | | +--rw sbom-local-well-known? identityref | |||
| +--:(sbom-contact-info) | | +--:(sbom-contact-info) | |||
| +--rw sbom-contact-uri? inet:uri | | +--rw sbom-contact-uri? inet:uri | |||
+--rw sbom-archive-list? inet:uri | +--rw sbom-archive-list? inet:uri | |||
+--rw (vuln-retrieval-method)? | +--rw (vuln-retrieval-method)? | |||
+--:(cloud) | +--:(cloud) | |||
| +--rw vuln-url* inet:uri | | +--rw vuln-url* inet:uri | |||
+--:(vuln-contact-info) | +--:(vuln-contact-info) | |||
+--rw vuln-contact-uri? inet:uri | +--rw vuln-contact-uri? inet:uri | |||
]]></artwork></figure> | ]]></sourcecode> | |||
<t>See <xref target="RFC8340"/> for a description of YANG trees.</t> | <t>See <xref target="RFC8340"/> for a description of YANG trees.</t> | |||
</section> | </section> | |||
<section anchor="the-mud-sbom-augmentation-to-the-mud-yang-model"><name>The mud- | <section anchor="the-mud-sbom-augmentation-to-the-mud-yang-model"> | |||
sbom augmentation to the MUD YANG model</name> | ||||
<figure><artwork><![CDATA[ | <name>The mud-sbom Augmentation to the MUD YANG Data Model</name> | |||
<CODE BEGINS>file "ietf-mud-transparency@2023-01-12.yang" | ||||
<t>This YANG module references <xref target="RFC6991" | ||||
format="default"/>, <xref target="RFC7231" format="default"/>, <xref | ||||
target="RFC7252" format="default"/>, <xref target="RFC8520" | ||||
format="default"/>, and <xref target="RFC9110" format="default"/>.</t> | ||||
<sourcecode name="ietf-mud-transparency@2023-09-08.yang" type="yang" marke | ||||
rs="true"><![CDATA[ | ||||
module ietf-mud-transparency { | module ietf-mud-transparency { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-mud-transparency"; | namespace "urn:ietf:params:xml:ns:yang:ietf-mud-transparency"; | |||
prefix mudtx; | prefix mudtx; | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
reference | reference | |||
"RFC 6991"; | "RFC 6991: Common YANG Data Types"; | |||
} | } | |||
import ietf-mud { | import ietf-mud { | |||
prefix mud; | prefix mud; | |||
reference | reference | |||
"RFC 8520"; | "RFC 8520: Manufacturer Usage Description Specification"; | |||
} | } | |||
organization | organization | |||
"IETF OPSAWG (Ops Area) Working Group"; | "IETF OPSAWG (Ops Area) Working Group"; | |||
contact | contact | |||
"WG Web: https://datatracker.ietf.org/wg/opsawg/ | "WG Web: <https://datatracker.ietf.org/wg/opsawg/> | |||
WG List: opsawg@ietf.org | WG List: <opsawg@ietf.org> | |||
Editor: Eliot Lear lear@cisco.com | Editor: Eliot Lear <lear@cisco.com> | |||
Editor: Scott Rose scott.rose@nist.gov"; | Editor: Scott Rose <scott.rose@nist.gov>"; | |||
description | description | |||
"This YANG module augments the ietf-mud model to provide for | "This YANG module augments the ietf-mud model to provide for | |||
reporting of SBOMs and vulnerability information. | reporting of SBOMs and vulnerability information. | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | ||||
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | ||||
'MAY', and 'OPTIONAL' in this document are to be interpreted as | ||||
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | ||||
they appear in all capitals, as shown here. | ||||
Copyright (c) 2023 IETF Trust and the persons identified as | Copyright (c) 2023 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
the license terms contained in, the Revised BSD License set | the license terms contained in, the Revised BSD License set | |||
forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX | This version of this YANG module is part of RFC 9472 | |||
(https://www.rfc-editor.org/info/rfcXXXX); | (https://www.rfc-editor.org/info/rfc9472); | |||
see the RFC itself for full legal notices. | see the RFC itself for full legal notices."; | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | ||||
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | ||||
'MAY', and 'OPTIONAL' in this document are to be interpreted as | ||||
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | ||||
they appear in all capitals, as shown here. "; | ||||
revision 2023-01-12 { | revision 2023-09-08 { | |||
description | description | |||
"Initial proposed standard."; | "Initial proposed standard."; | |||
reference | reference | |||
"RFC XXXX: Discovering and Retrieving Software Transparency | "RFC 9472: A YANG Data Model for Reporting Software Bills | |||
and Vulnerability Information"; | of Materials (SBOMs) and Vulnerability Information"; | |||
} | } | |||
identity local-type { | identity local-type { | |||
description | description | |||
"Base identity for local-well-known choices"; | "Base identity for local well-known choices."; | |||
} | } | |||
identity http { | identity http { | |||
base mudtx:local-type; | base mudtx:local-type; | |||
description | description | |||
"Use http[RFC7231] (insecure) to retrieve SBOM information. | "Use http (RFC 7231) (insecure) to retrieve SBOM information. | |||
This method is NOT RECOMMENDED, but may be unavoidable for | This method is NOT RECOMMENDED but may be unavoidable for | |||
certain classes of deployment, where TLS has not or | certain classes of deployment where TLS has not or | |||
cannot be implemented"; | cannot be implemented."; | |||
reference | ||||
"RFC 7231: Hypertext Transfer Protocol (HTTP/1.1): | ||||
Semantics and Content"; | ||||
} | } | |||
identity https { | identity https { | |||
base mudtx:local-type; | base mudtx:local-type; | |||
description | description | |||
"Use https (secure) to retrieve SBOM information. See | "Use https (secure) to retrieve SBOM information. See | |||
RFC 9110."; | RFC 9110."; | |||
reference | ||||
"RFC 9110: HTTP Semantics"; | ||||
} | } | |||
identity coap { | identity coap { | |||
base mudtx:local-type; | base mudtx:local-type; | |||
description | description | |||
"Use COAP [RFC7252] (insecure) to retrieve SBOM. This method | "Use COAP (RFC 7252) (insecure) to retrieve SBOM. This method | |||
is NOT RECOMMENDED, although it may be unavoidable | is NOT RECOMMENDED, although it may be unavoidable | |||
for certain classes of implementations/deployments."; | for certain classes of implementations/deployments."; | |||
reference | ||||
"RFC 7252: The Constrained Application Protocol (CoAP)"; | ||||
} | } | |||
identity coaps { | identity coaps { | |||
base mudtx:local-type; | base mudtx:local-type; | |||
description | description | |||
"Use COAPS (secure) to retrieve SBOM [RFC7252]"; | "Use COAPS (secure) to retrieve SBOM (RFC 7252)."; | |||
} | } | |||
grouping transparency-extension { | grouping transparency-extension { | |||
description | description | |||
"This grouping provides a means to describe the location of | "This grouping provides a means to describe the location of | |||
software bills of material and vulnerability descriptions."; | software bills of material and vulnerability descriptions."; | |||
container transparency { | container transparency { | |||
description | description | |||
"Container of methods to get SBOMs and vulnerability | "Container of methods to get SBOMs and vulnerability | |||
information."; | information."; | |||
choice sbom-retrieval-method { | choice sbom-retrieval-method { | |||
description | description | |||
"How to find SBOM information"; | "How to find SBOM information."; | |||
case cloud { | case cloud { | |||
list sboms { | list sboms { | |||
key "version-info"; | key "version-info"; | |||
description | description | |||
"A list of SBOMs tied to different software | "A list of SBOMs tied to different software | |||
or hardware versions."; | or hardware versions."; | |||
leaf version-info { | leaf version-info { | |||
type string; | type string; | |||
description | description | |||
"The version to which this SBOM refers."; | "The version to which this SBOM refers."; | |||
skipping to change at line 409 ¶ | skipping to change at line 409 ¶ | |||
description | description | |||
"Which communication protocol to choose."; | "Which communication protocol to choose."; | |||
} | } | |||
} | } | |||
case sbom-contact-info { | case sbom-contact-info { | |||
leaf sbom-contact-uri { | leaf sbom-contact-uri { | |||
type inet:uri { | type inet:uri { | |||
pattern '((mailto)|(https?)|(tel)):.*'; | pattern '((mailto)|(https?)|(tel)):.*'; | |||
} | } | |||
description | description | |||
"This MUST be either a tel, http, https, or | "This MUST be a tel, an http, an https, or | |||
mailto uri schema that customers can use to | a mailto uri schema that customers can use to | |||
contact someone for SBOM information."; | contact someone for SBOM information."; | |||
} | } | |||
} | } | |||
} | } | |||
leaf sbom-archive-list { | leaf sbom-archive-list { | |||
type inet:uri; | type inet:uri; | |||
description | description | |||
"This URI returns a JSON list of URLs that consist of | "This URI returns a JSON list of URLs that consist of | |||
SBOMs that were previously published for this | SBOMs that were previously published for this | |||
device. Publication dates can be found inside | device. Publication dates can be found inside | |||
the SBOMs."; | the SBOMs."; | |||
} | } | |||
choice vuln-retrieval-method { | choice vuln-retrieval-method { | |||
description | description | |||
"How to find vulnerability information"; | "How to find vulnerability information."; | |||
case cloud { | case cloud { | |||
leaf-list vuln-url { | leaf-list vuln-url { | |||
type inet:uri; | type inet:uri; | |||
description | description | |||
"List of statically located URLs that reference | "List of statically located URLs that reference | |||
vulnerability information"; | vulnerability information."; | |||
} | } | |||
} | } | |||
case vuln-contact-info { | case vuln-contact-info { | |||
leaf vuln-contact-uri { | leaf vuln-contact-uri { | |||
type inet:uri { | type inet:uri { | |||
pattern '((mailto)|(https?)|(tel)):.*'; | pattern '((mailto)|(https?)|(tel)):.*'; | |||
} | } | |||
description | description | |||
"This MUST be either a tel, http, https, or | "This MUST be a tel, an http, an https, or | |||
mailto uri schema that customers can use to | a mailto uri schema that customers can use to | |||
contact someone for vulnerability information."; | contact someone for vulnerability information."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
augment "/mud:mud" { | augment "/mud:mud" { | |||
description | description | |||
"Add extension for software transparency."; | "Add extension for software transparency."; | |||
uses transparency-extension; | uses transparency-extension; | |||
} | } | |||
} | } | |||
<CODE ENDS> | ]]></sourcecode> | |||
]]></artwork></figure> | ||||
</section> | ||||
<section anchor="examples"><name>Examples</name> | ||||
<t>In this example MUD file that uses a cloud service, the modelX | ||||
presents a location of the SBOM in a URL. Note, the ACLs in a MUD | ||||
file are NOT required, although they are a very good idea for IP-based | ||||
devices.</t> | ||||
<section anchor="without-acls"><name>Without ACLS</name> | ||||
<t>This first MUD file demonstrates how to get SBOM and | </section> | |||
<section anchor="examples"> | ||||
<name>Examples</name> | ||||
<t>In this example MUD file that uses a cloud service, the modelX | ||||
presents a location of the SBOM in a URL. Note that the Access Control | ||||
Lists (ACLs) in a MUD file are NOT required, although they are a very | ||||
good idea for IP-based devices.</t> | ||||
<section anchor="without-acls"> | ||||
<name>Without ACLS</name> | ||||
<t>This first MUD file demonstrates how to get SBOM and | ||||
vulnerability information without ACLs.</t> | vulnerability information without ACLs.</t> | |||
<figure><artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
{ | { | |||
"ietf-mud:mud": { | "ietf-mud:mud": { | |||
"mud-version": 1, | "mud-version": 1, | |||
"extensions": [ | "extensions": [ | |||
"transparency" | "transparency" | |||
], | ], | |||
"mudtx:transparency": { | "mudtx:transparency": { | |||
"sbom-url": "https://iot.example.com/info/modelX/sbom.json", | sboms: [ { | |||
"vuln-url" : [ | "version-info": "1.2", | |||
"https://iotd.example.com/info/modelX/csaf.json" | "sbom-url": "https://iot.example.com/info/modelX/sbom.json" | |||
] | } ], | |||
}, | "vuln-url" : [ | |||
"mud-url": "https://iot.example.com/modelX.json", | "https://iotd.example.com/info/modelX/csaf.json" | |||
"mud-signature": "https://iot.example.com/modelX.p7s", | ] | |||
"last-update": "2022-01-05T13:29:12+00:00", | }, | |||
"cache-validity": 48, | "mud-url": "https://iot.example.com/modelX.json", | |||
"is-supported": true, | "mud-signature": "https://iot.example.com/modelX.p7s", | |||
"systeminfo": "retrieving vuln and SBOM info via a cloud service", | "last-update": "2022-01-05T13:29:12+00:00", | |||
"mfg-name": "Example, Inc.", | "cache-validity": 48, | |||
"documentation": "https://iot.example.com/doc/modelX", | "is-supported": true, | |||
"model-name": "modelX" | "systeminfo": "retrieving vuln and SBOM info via a cloud service", | |||
} | "mfg-name": "Example, Inc.", | |||
} | "documentation": "https://iot.example.com/doc/modelX", | |||
]]></artwork></figure> | "model-name": "modelX" | |||
} | ||||
}]]></sourcecode> | ||||
<t>The second example demonstrates that just SBOM information is included | <t>The second example demonstrates that just SBOM information is | |||
from the cloud.</t> | included from the cloud.</t> | |||
<figure><artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
{ | { | |||
"ietf-mud:mud": { | "ietf-mud:mud": { | |||
"mud-version": 1, | "mud-version": 1, | |||
"extensions": [ | "extensions": [ | |||
"transparency" | "transparency" | |||
], | ], | |||
"mudtx:transparency": { | "mudtx:transparency": { | |||
"sbom-url": "https://iot.example.com/info/modelX/sbom.json" | sboms: [ { | |||
}, | "version-info": "1.2", | |||
"mud-url": "https://iot.example.com/modelX.json", | "sbom-url": "https://iot.example.com/info/modelX/sbom.json" | |||
"mud-signature": "https://iot.example.com/modelX.p7s", | } ], | |||
"last-update": "2022-01-05T13:29:12+00:00", | }, | |||
"cache-validity": 48, | "mud-url": "https://iot.example.com/modelX.json", | |||
"is-supported": true, | "mud-signature": "https://iot.example.com/modelX.p7s", | |||
"systeminfo": "retrieving only SBOM info via a cloud service", | "last-update": "2022-01-05T13:29:12+00:00", | |||
"mfg-name": "Example, Inc.", | "cache-validity": 48, | |||
"documentation": "https://iot.example.com/doc/modelX", | "is-supported": true, | |||
"model-name": "modelX" | "systeminfo": "retrieving vuln and SBOM info via a cloud service", | |||
} | "mfg-name": "Example, Inc.", | |||
} | "documentation": "https://iot.example.com/doc/modelX", | |||
]]></artwork></figure> | "model-name": "modelX" | |||
} | ||||
</section> | }]]></sourcecode> | |||
<section anchor="sbom-located-on-the-device"><name>SBOM Located on the Device</n | </section> | |||
ame> | <section anchor="sbom-located-on-the-device"> | |||
<name>SBOM Located on the Device</name> | ||||
<t>In the next example, the SBOM is located on the device, and there is no | <t>In the next example, the SBOM is located on the device, and there | |||
vulnerability information provided.</t> | is no vulnerability information provided.</t> | |||
<figure><artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
{ | { | |||
"ietf-mud:mud": { | "ietf-mud:mud": { | |||
"mud-version": 1, | "mud-version": 1, | |||
"extensions": [ | "extensions": [ | |||
"transparency" | "transparency" | |||
], | ], | |||
"mudtx:transparency": { | "mudtx:transparency": { | |||
"sbom-local-well-known": "https" | "sbom-local-well-known": "https" | |||
}, | }, | |||
"mud-url": "https://iot.example.com/modelX.json", | "mud-url": "https://iot.example.com/modelX.json", | |||
"mud-signature": "https://iot.example.com/modelX.p7s", | "mud-signature": "https://iot.example.com/modelX.p7s", | |||
"last-update": "2022-01-05T13:29:47+00:00", | "last-update": "2022-01-05T13:29:47+00:00", | |||
"cache-validity": 48, | "cache-validity": 48, | |||
"is-supported": true, | "is-supported": true, | |||
"systeminfo": "retrieving SBOM info from a local source", | "systeminfo": "retrieving SBOM info from a local source", | |||
"mfg-name": "Example, Inc.", | "mfg-name": "Example, Inc.", | |||
"documentation": "https://iot.example.com/doc/modelX", | "documentation": "https://iot.example.com/doc/modelX", | |||
"model-name": "modelX" | "model-name": "modelX" | |||
} | } | |||
} | }]]></sourcecode> | |||
]]></artwork></figure> | ||||
<t>In this example, the SBOM is retrieved from the device, while | <t>In this example, the SBOM is retrieved from the device, while | |||
vulnerability information is available from the cloud. This is likely | vulnerability information is available from the cloud. This is likely | |||
a common case, because vendors may learn of vulnerability information | a common case because vendors may learn of vulnerability information | |||
more frequently than they update software.</t> | more frequently than they update software.</t> | |||
<figure><artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
{ | { | |||
"ietf-mud:mud": { | "ietf-mud:mud": { | |||
"mud-version": 1, | "mud-version": 1, | |||
"extensions": [ | "extensions": [ | |||
"transparency" | "transparency" | |||
], | ], | |||
"mudtx:transparency": { | "mudtx:transparency": { | |||
"sbom-local-well-known": "https", | "sbom-local-well-known": "https", | |||
"vuln-url" : [ | "vuln-url" : [ | |||
"https://iotd.example.com/info/modelX/csaf.json" | "https://iotd.example.com/info/modelX/csaf.json" | |||
] | ] | |||
}, | }, | |||
"mud-url": "https://iot-device.example.com/modelX.json", | "mud-url": "https://iot-device.example.com/modelX.json", | |||
"mud-signature": "https://iot-device.example.com/modelX.p7s", | "mud-signature": "https://iot-device.example.com/modelX.p7s", | |||
"last-update": "2022-01-05T13:25:14+00:00", | "last-update": "2022-01-05T13:25:14+00:00", | |||
"cache-validity": 48, | "cache-validity": 48, | |||
"is-supported": true, | "is-supported": true, | |||
"systeminfo": "mixed example: SBOM on device, vuln info in cloud", | "systeminfo": "mixed example: SBOM on device, vuln info in cloud", | |||
"mfg-name": "Example, Inc.", | "mfg-name": "Example, Inc.", | |||
"documentation": "https://iot-device.example.com/doc/modelX", | "documentation": "https://iot-device.example.com/doc/modelX", | |||
"model-name": "modelX" | "model-name": "modelX" | |||
} | } | |||
} | }]]></sourcecode> | |||
]]></artwork></figure> | ||||
</section> | ||||
<section anchor="further-contact-required"><name>Further contact required.</name | ||||
> | ||||
<t>In this example, the network manager must take further steps | </section> | |||
<section anchor="further-contact-required"> | ||||
<name>Further Contact Required</name> | ||||
<t>In this example, the network manager must take further steps | ||||
to retrieve SBOM information. Vulnerability information is | to retrieve SBOM information. Vulnerability information is | |||
still available.</t> | still available.</t> | |||
<figure><artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
{ | { | |||
"ietf-mud:mud": { | "ietf-mud:mud": { | |||
"mud-version": 1, | "mud-version": 1, | |||
"extensions": [ | "extensions": [ | |||
"transparency" | "transparency" | |||
], | ], | |||
"ietf-mud-transparency:transparency": { | "mudtx:transparency": { | |||
"contact-info": "https://iot-device.example.com/contact-info.html", | "contact-info": "https://iot-device.example.com/contact-info.html", | |||
"vuln-url" : [ | "vuln-url" : [ | |||
"https://iotd.example.com/info/modelX/csaf.json" | "https://iotd.example.com/info/modelX/csaf.json" | |||
] | ] | |||
}, | }, | |||
"mud-url": "https://iot-device.example.com/modelX.json", | "mud-url": "https://iot-device.example.com/modelX.json", | |||
"mud-signature": "https://iot-device.example.com/modelX.p7s", | "mud-signature": "https://iot-device.example.com/modelX.p7s", | |||
"last-update": "2021-07-09T06:16:42+00:00", | "last-update": "2021-07-09T06:16:42+00:00", | |||
"cache-validity": 48, | "cache-validity": 48, | |||
"is-supported": true, | "is-supported": true, | |||
"systeminfo": "retrieving vuln and SBOM info via a cloud service", | "systeminfo": "retrieving vuln and SBOM info via a cloud service", | |||
"mfg-name": "Example, Inc.", | "mfg-name": "Example, Inc.", | |||
"documentation": "https://iot-device.example.com/doc/modelX", | "documentation": "https://iot-device.example.com/doc/modelX", | |||
"model-name": "modelX" | "model-name": "modelX" | |||
} | ||||
} | } | |||
]]></artwork></figure> | }]]></sourcecode> | |||
</section> | ||||
<section anchor="with-acls"><name>With ACLS</name> | ||||
<t>Finally, here is a complete example where the device provides | </section> | |||
SBOM and vulnerability information, as well as access-control | <section anchor="with-acls"> | |||
<name>With ACLS</name> | ||||
<t>Finally, here is a complete example where the device provides | ||||
SBOM and vulnerability information as well as access control | ||||
information.</t> | information.</t> | |||
<figure><artwork><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
{ | { | |||
"ietf-mud:mud": { | "ietf-mud:mud": { | |||
"mud-version": 1, | "mud-version": 1, | |||
"extensions": [ | "extensions": [ | |||
"transparency" | "transparency" | |||
], | ], | |||
"mudtx:transparency": { | "mudtx:transparency": { | |||
"sbom-local-well-known": "https", | "sbom-local-well-known": "https", | |||
"vuln-url" : [ | "vuln-url" : [ | |||
"https://iotd.example.com/info/modelX/csaf.json" | "https://iotd.example.com/info/modelX/csaf.json" | |||
] | ] | |||
}, | }, | |||
"mud-url": "https://iot.example.com/modelX.json", | "mud-url": "https://iot.example.com/modelX.json", | |||
"mud-signature": "https://iot.example.com/modelX.p7s", | "mud-signature": "https://iot.example.com/modelX.p7s", | |||
"last-update": "2022-01-05T13:30:31+00:00", | "last-update": "2022-01-05T13:30:31+00:00", | |||
"cache-validity": 48, | "cache-validity": 48, | |||
"is-supported": true, | "is-supported": true, | |||
"systeminfo": "retrieving vuln and SBOM info via a cloud service", | "systeminfo": "retrieving vuln and SBOM info via a cloud service", | |||
"mfg-name": "Example, Inc.", | "mfg-name": "Example, Inc.", | |||
"documentation": "https://iot.example.com/doc/modelX", | "documentation": "https://iot.example.com/doc/modelX", | |||
"model-name": "modelX", | "model-name": "modelX", | |||
"from-device-policy": { | "from-device-policy": { | |||
"access-lists": { | "access-lists": { | |||
"access-list": [ | "access-list": [ | |||
{ | { | |||
"name": "mud-65443-v4fr" | "name": "mud-65443-v4fr" | |||
} | } | |||
] | ] | |||
} | } | |||
}, | }, | |||
"to-device-policy": { | "to-device-policy": { | |||
"access-lists": { | "access-lists": { | |||
"access-list": [ | "access-list": [ | |||
{ | { | |||
"name": "mud-65443-v4to" | "name": "mud-65443-v4to" | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
}, | }, | |||
"ietf-access-control-list:acls": { | "ietf-access-control-list:acls": { | |||
"acl": [ | "acl": [ | |||
{ | { | |||
"name": "mud-65443-v4to", | "name": "mud-65443-v4to", | |||
"type": "ipv4-acl-type", | "type": "ipv4-acl-type", | |||
"aces": { | "aces": { | |||
"ace": [ | "ace": [ | |||
{ | { | |||
"name": "cl0-todev", | "name": "cl0-todev", | |||
"matches": { | "matches": { | |||
"ipv4": { | "ipv4": { | |||
"ietf-acldns:src-dnsname": "iotserver.example.com" | "ietf-acldns:src-dnsname": "iotserver.example.com" | |||
} | } | |||
}, | }, | |||
"actions": { | "actions": { | |||
"forwarding": "accept" | "forwarding": "accept" | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
}, | }, | |||
{ | { | |||
"name": "mud-65443-v4fr", | "name": "mud-65443-v4fr", | |||
"type": "ipv4-acl-type", | "type": "ipv4-acl-type", | |||
"aces": { | "aces": { | |||
"ace": [ | "ace": [ | |||
{ | { | |||
"name": "cl0-frdev", | "name": "cl0-frdev", | |||
"matches": { | "matches": { | |||
"ipv4": { | "ipv4": { | |||
"ietf-acldns:dst-dnsname": "iotserver.example.com" | "ietf-acldns:dst-dnsname": "iotserver.example.com" | |||
} | } | |||
}, | }, | |||
"actions": { | "actions": { | |||
"forwarding": "accept" | "forwarding": "accept" | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
} | }]]></sourcecode> | |||
]]></artwork></figure> | ||||
<t>At this point, the management system can attempt to retrieve the SBOM, | ||||
and determine which format is in use through the content-type header | ||||
on the response to a GET request, independently repeat the process for | ||||
vulnerability information, and apply ACLs, as appropriate.</t> | ||||
</section> | ||||
</section> | ||||
<section anchor="security-considerations"><name>Security Considerations</name> | ||||
<t>This document describes a schema for discovering the location of | ||||
information relating to software transparency, and does not specify | ||||
the access model for the information itself. In particular, the YANG | ||||
module specified in this document is not necessarily intended to be | ||||
accessed via regular network management protocols, such as the NETCONF | ||||
<xref target="RFC6241"></xref> or RESTCONF <xref target="RFC8040"></xref>, and h | ||||
ence the regular security | ||||
considerations for such usage are not considered here.</t> | ||||
<t>We describe below protections relating to both discovery and some | ||||
advice on protecting the underlying SBOM/vulnerability information.</t> | ||||
<t>The model specifies both encrypted and unencrypted means to retrieve | ||||
information. This is a matter of pragmatism. Unencrypted | ||||
communications allow for manipulation of information being retrieved. | ||||
Therefore, it is RECOMMENDED that implementations offer a means to | ||||
configure endpoints so that they may make use of TLS or DTLS.</t> | ||||
<t>The ietf-mud-transparency module has no operational impact on the | ||||
element itself, and is used to discover state information that may be | ||||
available on or off the element. In as much as the module itself is | ||||
made writeable, this only indicates a change in how to retrieve | ||||
read-only elements. There is no means, for instance, to upload an | ||||
SBOM. Additional risks are discussed below, and are applicable to all | ||||
nodes within the transparency container.</t> | ||||
<t>If an attacker modifies the elements, they may misdirect automation to | ||||
retrieve a different set of URLs than was intended by the designer. This | ||||
in turn leads to two specific sets of risks:</t> | ||||
<t><list style="symbols"> | ||||
<t>the information retrieved would be false.</t> | ||||
<t>the URLs themselves point to malware.</t> | ||||
</list></t> | ||||
<t>To address either risk, any change in a URL, and in particular to the | ||||
authority section, two approaches may be used:</t> | ||||
<t><list style="symbols"> | ||||
<t>test any cloud-based URL against a reputation service.</t> | ||||
<t>provide the administrator an opportunity to approve further procesisng | ||||
when the authority changes to one not known to be reputable.</t> | ||||
</list></t> | ||||
<t>SBOMs provide an inventory of software. Knowledge of which specific | ||||
software is loaded on a system can aid an attacker in identifying an | ||||
appropriate exploit for a known vulnerability or guide the development | ||||
of novel exploit against this system. However, 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 to the well-known URL by default.</t> | ||||
<t>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. In | ||||
particular, if a system attempts to retrieve an SBOM via HTTP or COAP | ||||
and the client is not authorized, the server MUST produce an | ||||
appropriate error, with instructions on how to register a particular | ||||
client.</t> | ||||
<t>Another risk is a skew in the SBOM listing and the actual software | ||||
inventory of a device/container. For example, a manufacturer may | ||||
update the SBOM on its server, but an individual device has not been | ||||
upgraded yet. This may result in an incorrect policy being applied to | ||||
a device. A unique mapping of a device's software version and its SBOM | ||||
can minimize this risk.</t> | ||||
<t>To further mitigate attacks against a device, manufacturers SHOULD | ||||
recommend network access controls.</t> | ||||
<t>Vulnerability information is generally made available to such | ||||
databases as NIST's National Vulnerability Database <xref target="NISTNVD"/>. I | ||||
t | ||||
is possible that vendors may wish to release information early to some | ||||
customers. We do not discuss here whether that is a good idea, but if | ||||
it is employed, then appropriate access controls and authorization | ||||
SHOULD be applied to that information.</t> | ||||
</section> | ||||
<section anchor="iana-considerations"><name>IANA Considerations</name> | ||||
<section anchor="mud-extension"><name>MUD Extension</name> | ||||
<t>The IANA is requested to add "transparency" to the MUD | ||||
extensions registry as follows:</t> | ||||
<figure><artwork><![CDATA[ | ||||
Extension Name: transparency | ||||
Standard reference: This document | ||||
]]></artwork></figure> | ||||
</section> | ||||
<section anchor="yang-registration"><name>YANG Registration</name> | ||||
<t>The following YANG module should be registered in the "YANG Module | ||||
Names" registry:</t> | ||||
<figure><artwork><![CDATA[ | ||||
Name: ietf-mud | ||||
URN: urn:ietf:params:xml:ns:yang:ietf-mud-transparency | ||||
Prefix: mudtx | ||||
Registrant contact: The IESG | ||||
Reference: This memo | ||||
]]></artwork></figure> | ||||
<t>The following XML registration is requested:</t> | ||||
<figure><artwork><![CDATA[ | <t>At this point, the management system can attempt to retrieve the | |||
URI: urn:ietf:params:xml:ns:yang:ietf-mud-transparency | SBOM, determine which format is in use through the Content-Type | |||
Registrant Contact: IESG | header on the response to a GET request, independently repeat the | |||
XML: None. Namespace URIs do not represent an XML specification. | process for vulnerability information, and apply ACLs as | |||
]]></artwork></figure> | appropriate.</t> | |||
</section> | ||||
</section> | ||||
</section> | <section anchor="security-considerations"> | |||
<section anchor="well-known-prefix"><name>Well-Known Prefix</name> | <name>Security Considerations</name> | |||
<t>This document describes a schema for discovering the location of | ||||
information relating to software transparency and does not specify the | ||||
access model for the information itself. In particular, the YANG module | ||||
specified in this document is not necessarily intended to be accessed | ||||
via regular network management protocols, such as NETCONF <xref target="RF | ||||
C6241"/> or RESTCONF | ||||
<xref target="RFC8040"/>, and hence the regular security considerations | ||||
for such usage are not considered here.</t> | ||||
<t>Below, we describe protections relating to both discovery and some | ||||
advice on protecting the underlying SBOM and vulnerability | ||||
information.</t> | ||||
<t>The model specifies both encrypted and unencrypted means to retrieve | ||||
information. This is a matter of pragmatism. Unencrypted | ||||
communications allow for manipulation of information being retrieved. | ||||
Therefore, it is <bcp14>RECOMMENDED</bcp14> that implementations offer a | ||||
means to configure endpoints so that they may make use of TLS or | ||||
DTLS.</t> | ||||
<t>The ietf-mud-transparency module has no operational impact on the | ||||
element itself and is used to discover state information that may be | ||||
available on or off the element. In as much as the module itself is | ||||
made writeable, this only indicates a change in how to retrieve | ||||
read-only elements. There are no means, for instance, to upload an SBOM. | ||||
Additional risks are discussed below and are applicable to all nodes | ||||
within the transparency container.</t> | ||||
<t>If an attacker modifies the elements, they may misdirect automation | ||||
to retrieve a different set of URLs than was intended by the designer. | ||||
This in turn leads to two specific sets of risks:</t> | ||||
<ul spacing="normal"> | ||||
<li>the information retrieved would be false</li> | ||||
<li>the URLs themselves point to malware</li> | ||||
</ul> | ||||
<t>The following well known URI is requested in accordance with | <t>To address either of these risks or any tampering of a URL:</t> | |||
<xref target="RFC8615"/>:</t> | <ul spacing="normal"> | |||
<li>test any cloud-based URL against a reputation service</li> | ||||
<li>provide the administrator an opportunity to approve further | ||||
processing when the authority changes to one not known to be | ||||
reputable</li> | ||||
</ul> | ||||
<t>SBOMs provide an inventory of software. Knowledge of which specific | ||||
software is loaded on a system can aid an attacker in identifying an | ||||
appropriate exploit for a known vulnerability or guide the development | ||||
of novel exploit against this system. However, if software is available | ||||
to an attacker, the attacker may already be able to derive this | ||||
very same software inventory. When this information resides on the | ||||
endpoint itself, the endpoint <bcp14>SHOULD NOT</bcp14> provide | ||||
unrestricted access to the well-known URL by default.</t> | ||||
<t>Other servers that offer the data <bcp14>MAY</bcp14> 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. In particular, | ||||
if a system attempts to retrieve an SBOM via HTTP or CoAP and the client | ||||
is not authorized, the server <bcp14>MUST</bcp14> produce an appropriate | ||||
error with instructions on how to register a particular client.</t> | ||||
<t>Another risk is a skew in the SBOM listing and the actual software | ||||
inventory of a device/container. For example, a manufacturer may update | ||||
the SBOM on its server, but an individual device has not been upgraded | ||||
yet. This may result in an incorrect policy being applied to a | ||||
device. A unique mapping of a device's software version and its SBOM can | ||||
minimize this risk.</t> | ||||
<t>To further mitigate attacks against a device, manufacturers | ||||
<bcp14>SHOULD</bcp14> recommend network access controls.</t> | ||||
<t>Vulnerability information is generally made available to such | ||||
databases as NIST's National Vulnerability Database <xref | ||||
target="NISTNVD"/>. It is possible that vendors may wish to release | ||||
information early to some customers. We do not discuss here whether | ||||
that is a good idea, but if it is employed, then appropriate access | ||||
controls and authorization <bcp14>SHOULD</bcp14> be applied to that | ||||
information.</t> | ||||
</section> | ||||
<figure><artwork><![CDATA[ | <section anchor="iana-considerations"> | |||
URI suffix: "sbom" | <name>IANA Considerations</name> | |||
Change controller: "IETF" | <section anchor="mud-extension"> | |||
Specification document: This memo | <name>MUD Extension</name> | |||
Related information: See ISO/IEC 5962:2021 and SPDX.org | <t>IANA has added "transparency" to the "MUD Extensions" | |||
registry <xref target="RFC8520"/> as follows:</t> | ||||
<dl newline="false" spacing="compact"> | ||||
<dt>Value:</dt> | ||||
<dd>transparency</dd> | ||||
<dt>Reference:</dt> | ||||
<dd>RFC 9472</dd> | ||||
</dl> | ||||
</section> | ||||
<section anchor="yang-registration"> | ||||
<name>YANG Registration</name> | ||||
]]></artwork></figure> | <t>IANA has registered the following YANG module in the "YANG Module | |||
Names" registry <xref target="RFC6020"/>:</t> | ||||
<dl newline="false" spacing="compact"> | ||||
<dt>Name:</dt> | ||||
<dd>ietf-mud-transparency</dd> | ||||
<dt>Namespace:</dt> | ||||
<dd>urn:ietf:params:xml:ns:yang:ietf-mud-transparency</dd> | ||||
<dt>Maintained by IANA:</dt> | ||||
<dd>N</dd> | ||||
<dt>Prefix:</dt> | ||||
<dd>mudtx</dd> | ||||
<dt>Reference:</dt> | ||||
<dd>RFC 9472</dd> | ||||
</dl> | ||||
</section> | <t>The following URI has been registered in the "IETF XML Registry" <xre | |||
</section> | f target="RFC3688"/>:</t> | |||
<section anchor="acknowledgments"><name>Acknowledgments</name> | <dl newline="false" spacing="compact"> | |||
<dt>URI:</dt> | ||||
<dd>urn:ietf:params:xml:ns:yang:ietf-mud-transparency</dd> | ||||
<dt>Registrant Contact:</dt> | ||||
<dd>IESG</dd> | ||||
<dt>XML:</dt> | ||||
<dd>None. Namespace URIs do not represent an XML specification.</dd> | ||||
</dl> | ||||
<t>Thanks to Russ Housley, Dick Brooks, Tom Petch, Nicolas Comstedt, who | </section> | |||
provided review comments.</t> | <section anchor="well-known-prefix"> | |||
<name>Well-Known Prefix</name> | ||||
<t>IANA has added the following URI suffix to the "Well-Known URIs" regi | ||||
stry | ||||
in accordance with <xref target="RFC8615"/>:</t> | ||||
<dl newline="false" spacing="compact"> | ||||
<dt>URI Suffix:</dt> | ||||
<dd>sbom</dd> | ||||
<dt>Change Controller:</dt> | ||||
<dd>IETF</dd> | ||||
<dt>Reference:</dt> | ||||
<dd>RFC 9472</dd> | ||||
<dt>Status:</dt> | ||||
<dd>permanent</dd> | ||||
<dt>Related Information:</dt> | ||||
<dd>See ISO/IEC 5962:2021 and SPDX.org</dd> | ||||
</dl> | ||||
</section> | </section> | |||
</section> | ||||
</middle> | </middle> | |||
<back> | <back> | |||
<references> | ||||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
119.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.36 | ||||
88.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.60 | ||||
20.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
241.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
991.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
231.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
252.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
040.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
174.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
110.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
520.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
615.xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<references title='Normative References'> | <reference anchor="EO2021"> | |||
<front> | ||||
<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'> | <title>Executive Order on Improving the Nation's Cybersecurity</titl | |||
<front> | e> | |||
<title>Key words for use in RFCs to Indicate Requirement Levels</title> | <author initials="J." surname="Biden" fullname="Joseph Biden"> | |||
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></a | <organization>The White House</organization> | |||
uthor> | </author> | |||
<date month='March' year='1997'/> | <date year="2021" month="May"/> | |||
<abstract><t>In many standards track documents several words are used to signify | </front> | |||
the requirements in the specification. These words are often capitalized. This | <refcontent>EO 14028</refcontent> | |||
document defines these words as they should be interpreted in IETF documents. | </reference> | |||
This document specifies an Internet Best Current Practices for the Internet Comm | ||||
unity, and requests discussion and suggestions for improvements.</t></abstract> | ||||
</front> | ||||
<seriesInfo name='BCP' value='14'/> | ||||
<seriesInfo name='RFC' value='2119'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC2119'/> | ||||
</reference> | ||||
<reference anchor='RFC6241' target='https://www.rfc-editor.org/info/rfc6241'> | ||||
<front> | ||||
<title>Network Configuration Protocol (NETCONF)</title> | ||||
<author fullname='R. Enns' initials='R.' role='editor' surname='Enns'><organizat | ||||
ion/></author> | ||||
<author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'> | ||||
<organization/></author> | ||||
<author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenw | ||||
aelder'><organization/></author> | ||||
<author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'><org | ||||
anization/></author> | ||||
<date month='June' year='2011'/> | ||||
<abstract><t>The Network Configuration Protocol (NETCONF) defined in this docume | ||||
nt provides mechanisms to install, manipulate, and delete the configuration of n | ||||
etwork devices. It uses an Extensible Markup Language (XML)-based data encoding | ||||
for the configuration data as well as the protocol messages. The NETCONF proto | ||||
col operations are realized as remote procedure calls (RPCs). This document obs | ||||
oletes RFC 4741. [STANDARDS-TRACK]</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='6241'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC6241'/> | ||||
</reference> | ||||
<reference anchor='RFC6991' target='https://www.rfc-editor.org/info/rfc6991'> | ||||
<front> | ||||
<title>Common YANG Data Types</title> | ||||
<author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenw | ||||
aelder'><organization/></author> | ||||
<date month='July' year='2013'/> | ||||
<abstract><t>This document introduces a collection of common data types to be us | ||||
ed with the YANG data modeling language. This document obsoletes RFC 6021.</t>< | ||||
/abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='6991'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC6991'/> | ||||
</reference> | ||||
<reference anchor='RFC7252' target='https://www.rfc-editor.org/info/rfc7252'> | ||||
<front> | ||||
<title>The Constrained Application Protocol (CoAP)</title> | ||||
<author fullname='Z. Shelby' initials='Z.' surname='Shelby'><organization/></aut | ||||
hor> | ||||
<author fullname='K. Hartke' initials='K.' surname='Hartke'><organization/></aut | ||||
hor> | ||||
<author fullname='C. Bormann' initials='C.' surname='Bormann'><organization/></a | ||||
uthor> | ||||
<date month='June' year='2014'/> | ||||
<abstract><t>The Constrained Application Protocol (CoAP) is a specialized web tr | ||||
ansfer protocol for use with constrained nodes and constrained (e.g., low-power, | ||||
lossy) networks. The nodes often have 8-bit microcontrollers with small amount | ||||
s of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireles | ||||
s Personal Area Networks (6LoWPANs) often have high packet error rates and a typ | ||||
ical throughput of 10s of kbit/s. The protocol is designed for machine- to-mach | ||||
ine (M2M) applications such as smart energy and building automation.</t><t>CoAP | ||||
provides a request/response interaction model between application endpoints, sup | ||||
ports built-in discovery of services and resources, and includes key concepts of | ||||
the Web such as URIs and Internet media types. CoAP is designed to easily inte | ||||
rface with HTTP for integration with the Web while meeting specialized requireme | ||||
nts such as multicast support, very low overhead, and simplicity for constrained | ||||
environments.</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='7252'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC7252'/> | ||||
</reference> | ||||
<reference anchor='RFC8040' target='https://www.rfc-editor.org/info/rfc8040'> | ||||
<front> | ||||
<title>RESTCONF Protocol</title> | ||||
<author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></a | ||||
uthor> | ||||
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/ | ||||
></author> | ||||
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></aut | ||||
hor> | ||||
<date month='January' year='2017'/> | ||||
<abstract><t>This document describes an HTTP-based protocol that provides a prog | ||||
rammatic interface for accessing data defined in YANG, using the datastore conce | ||||
pts defined in the Network Configuration Protocol (NETCONF).</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='8040'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC8040'/> | ||||
</reference> | ||||
<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'> | ||||
<front> | ||||
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> | ||||
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></autho | ||||
r> | ||||
<date month='May' year='2017'/> | ||||
<abstract><t>RFC 2119 specifies common key words that may be used in protocol s | ||||
pecifications. This document aims to reduce the ambiguity by clarifying that on | ||||
ly UPPERCASE usage of the key words have the defined special meanings.</t></abs | ||||
tract> | ||||
</front> | ||||
<seriesInfo name='BCP' value='14'/> | ||||
<seriesInfo name='RFC' value='8174'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC8174'/> | ||||
</reference> | ||||
<reference anchor='RFC9110' target='https://www.rfc-editor.org/info/rfc9110'> | ||||
<front> | ||||
<title>HTTP Semantics</title> | ||||
<author fullname='R. Fielding' initials='R.' role='editor' surname='Fielding'><o | ||||
rganization/></author> | ||||
<author fullname='M. Nottingham' initials='M.' role='editor' surname='Nottingham | ||||
'><organization/></author> | ||||
<author fullname='J. Reschke' initials='J.' role='editor' surname='Reschke'><org | ||||
anization/></author> | ||||
<date month='June' year='2022'/> | ||||
<abstract><t>The Hypertext Transfer Protocol (HTTP) is a stateless application-l | ||||
evel protocol for distributed, collaborative, hypertext information systems. Thi | ||||
s document describes the overall architecture of HTTP, establishes common termin | ||||
ology, and defines aspects of the protocol that are shared by all versions. In t | ||||
his definition are core protocol elements, extensibility mechanisms, and the &qu | ||||
ot;http" and "https" Uniform Resource Identifier (URI) schemes. < | ||||
/t><t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, | ||||
7235, 7538, 7615, 7694, and portions of 7230.</t></abstract> | ||||
</front> | ||||
<seriesInfo name='STD' value='97'/> | ||||
<seriesInfo name='RFC' value='9110'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC9110'/> | ||||
</reference> | ||||
<reference anchor='RFC8520' target='https://www.rfc-editor.org/info/rfc8520'> | <reference anchor="SPDX" target="https://spdx.github.io/spdx-spec/v2.3/" | |||
<front> | > | |||
<title>Manufacturer Usage Description Specification</title> | <front> | |||
<author fullname='E. Lear' initials='E.' surname='Lear'><organization/></author> | <title>The Software Package Data Exchange (SPDX) Specification | |||
<author fullname='R. Droms' initials='R.' surname='Droms'><organization/></autho | </title> | |||
r> | <author> | |||
<author fullname='D. Romascanu' initials='D.' surname='Romascanu'><organization/ | <organization>The Linux Foundation</organization> | |||
></author> | </author> | |||
<date month='March' year='2019'/> | <date year="2022"/> | |||
<abstract><t>This memo specifies a component-based architecture for Manufacturer | </front> | |||
Usage Descriptions (MUDs). The goal of MUD is to provide a means for end devic | <refcontent>Version 2.3</refcontent> | |||
es to signal to the network what sort of access and network functionality they r | </reference> | |||
equire to properly function. The initial focus is on access control. Later wor | ||||
k can delve into other aspects.</t><t>This memo specifies two YANG modules, IPv4 | ||||
and IPv6 DHCP options, a Link Layer Discovery Protocol (LLDP) TLV, a URL, an X. | ||||
509 certificate extension, and a means to sign and verify the descriptions.</t>< | ||||
/abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='8520'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC8520'/> | ||||
</reference> | ||||
<reference anchor='RFC8615' target='https://www.rfc-editor.org/info/rfc8615'> | <reference anchor="CycloneDX15" target="https://cyclonedx.org/docs/1.5/j | |||
<front> | son"> | |||
<title>Well-Known Uniform Resource Identifiers (URIs)</title> | <front> | |||
<author fullname='M. Nottingham' initials='M.' surname='Nottingham'><organizatio | <title>CycloneDX v1.5 JSON Reference</title> | |||
n/></author> | <author> | |||
<date month='May' year='2019'/> | <organization>CycloneDX</organization> | |||
<abstract><t>This memo defines a path prefix for "well-known locations" | </author> | |||
;, "/.well-known/", in selected Uniform Resource Identifier (URI) sche | </front> | |||
mes.</t><t>In doing so, it obsoletes RFC 5785 and updates the URI schemes define | <refcontent>Version 1.5.0</refcontent> | |||
d in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI sche | </reference> | |||
mes that support well-known URIs in their registry.</t></abstract> | ||||
</front> | ||||
<seriesInfo name='RFC' value='8615'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC8615'/> | ||||
</reference> | ||||
</references> | <reference anchor="CSAF" target="https://docs.oasis-open.org/csaf/csaf/v | |||
2.0/csaf-v2.0.html"> | ||||
<front> | ||||
<title>Common Security Advisory Framework Version 2.0</title> | ||||
<author initials="L." surname="Rock" fullname="Langley Rock" role="e | ||||
ditor"> | ||||
<organization>OASIS</organization> | ||||
</author> | ||||
<author initials="S." surname="Hagen" fullname="Stefan Hagen" role=" | ||||
editor"> | ||||
<organization>OASIS</organization> | ||||
</author> | ||||
<author initials="T." surname="Schmidt" fullname="Thomas Schmidt" ro | ||||
le="editor"> | ||||
<organization>OASIS</organization> | ||||
</author> | ||||
<date year="2022" month="November"/> | ||||
</front> | ||||
<refcontent>OASIS Standard</refcontent> | ||||
</reference> | ||||
<references title='Informative References'> | <reference anchor="CVRF" target="https://docs.oasis-open.org/csaf/csaf-c | |||
vrf/v1.2/csaf-cvrf-v1.2.pdf"> | ||||
<front> | ||||
<title>CSAF Common Vulnerability Reporting Framework (CVRF) Version | ||||
1.2</title> | ||||
<author initials="S." surname="Hagen" fullname="Stefan Hagen" role=" | ||||
editor"> | ||||
<organization>OASIS</organization> | ||||
</author> | ||||
<date year="2017" month="September"/> | ||||
</front> | ||||
<seriesInfo name="Committee Specification" value="01"/> | ||||
</reference> | ||||
<reference anchor="EO2021" > | <reference anchor="NISTNVD" target="https://nvd.nist.gov"> | |||
<front> | <front> | |||
<title>Executive Order 14028, Improving the Nations Cybersecurity</title> | <title>National Vulnerability Database</title> | |||
<author initials="J." surname="Biden" fullname="President Joseph Biden"> | <author> | |||
<organization>United States Of America</organization> | <organization>NIST</organization> | |||
</author> | </author> | |||
<date year="2021" month="May"/> | </front> | |||
</front> | </reference> | |||
</reference> | ||||
<reference anchor="SPDX" target="https://spdx.github.io/spdx-spec/v2.3/"> | ||||
<front> | ||||
<title>SPDX Specification V2.3</title> | ||||
<author > | ||||
<organization>The Linux Foundation</organization> | ||||
</author> | ||||
<date year="2022"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="CycloneDX12" > | ||||
<front> | ||||
<title>CycloneDX XML Reference v1.2</title> | ||||
<author > | ||||
<organization>cyclonedx.org</organization> | ||||
</author> | ||||
<date year="2020" month="May"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="CSAF" target="https://docs.oasis-open.org/csaf/csaf/v2.0/csaf | ||||
-v2.0.html"> | ||||
<front> | ||||
<title>Common Security Advisory Framework Version 2.0</title> | ||||
<author initials="L." surname="Rock" fullname="Langley Rock" role="editor"> | ||||
<organization>OASIS</organization> | ||||
</author> | ||||
<author initials="S." surname="Hagen" fullname="Stefan Hagen" role="editor"> | ||||
<organization>OASIS</organization> | ||||
</author> | ||||
<author initials="T." surname="Schmidt" fullname="Thomas Schmidt" role="edit | ||||
or"> | ||||
<organization>OASIS</organization> | ||||
</author> | ||||
<date year="2022" month="November"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="CVRF" target="https://docs.oasis-open.org/csaf/csaf-cvrf/v1.2 | ||||
/csaf-cvrf-v1.2.pdf"> | ||||
<front> | ||||
<title>Common Vulnerability Reporting Framework (CVRF) Version 1.2</title> | ||||
<author initials="S." surname="Hagen" fullname="Stefan Hagen" role="editor"> | ||||
<organization>OASIS</organization> | ||||
</author> | ||||
<date year="2017" month="September"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="NISTNVD" target="https://nvd.nist.gov"> | ||||
<front> | ||||
<title>National Vulnerability Database</title> | ||||
<author > | ||||
<organization>NIST</organization> | ||||
</author> | ||||
<date year="n.d."/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor='RFC8340' target='https://www.rfc-editor.org/info/rfc8340'> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
<front> | 340.xml"/> | |||
<title>YANG Tree Diagrams</title> | ||||
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/ | ||||
></author> | ||||
<author fullname='L. Berger' initials='L.' role='editor' surname='Berger'><organ | ||||
ization/></author> | ||||
<date month='March' year='2018'/> | ||||
<abstract><t>This document captures the current syntax used in YANG module tree | ||||
diagrams. The purpose of this document is to provide a single location for this | ||||
definition. This syntax may be updated from time to time based on the evolutio | ||||
n of the YANG language.</t></abstract> | ||||
</front> | ||||
<seriesInfo name='BCP' value='215'/> | ||||
<seriesInfo name='RFC' value='8340'/> | ||||
<seriesInfo name='DOI' value='10.17487/RFC8340'/> | ||||
</reference> | ||||
</references> | ||||
</references> | </references> | |||
<section anchor="acknowledgments" toc="default" numbered="false"> | ||||
<section anchor="changes-from-earlier-versions"><name>Changes from Earlier Versi | <name>Acknowledgments</name> | |||
ons</name> | <t>Thanks to <contact fullname="Russ Housley"/>, <contact fullname="Dick | |||
Brooks"/>, <contact fullname="Tom Petch"/>, and <contact | ||||
<t>[[This section to be removed by RFC Editor]]</t> | fullname="Nicolas Comstedt"/>, who provided review comments.</t> | |||
</section> | ||||
<t>Please see https://github.com/elear/mud-sbom for changes.</t> | ||||
</section> | ||||
</back> | </back> | |||
<!-- ##markdown-source: | ||||
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 | ||||
yq8Q7kQV3qeUT7a2SIy/2v6J/aqvtrcH/c+etHdz/3N2d0hVtaYKl2vAE0y/ | ||||
PrQh//m+yUgrJrTBUw4JDw6z+PDJjxWUPKDA1uPgAa7kOn0scaxzWwsESqcq | ||||
4iLjc7UC3JwmNjbufyUtswEBQVpi7d438ULACXgxsyo8J/y0ValsHT88GhOk | ||||
eMlxBtVqTsciCF+yLplj/n8sQSrbXMSwSITYXqeh4juILYopniLiGS6Vhxbt | ||||
V20ZEZ6IYIoRrd2Khf8E8u1/PX7DJFaAxAZy/ZwbNOg1nxifoq2rS7woIv84 | ||||
vDh3WgyExFQtwSY0Pwy3Z7QcDligQ+Vz6RBAjmCWWzwJpuO3VIcvmuNgKS9x | ||||
mOFJqva01eq27Auvo8rwVVukEugjix1jTtam636eOdkY9D/CrgCJmCru7OYB | ||||
/n+0aTkzJFmvyrS9R9MMTOy/x2znAZlfyUauynw7FfmzZP7fROg3Z5IeJf33 | ||||
1u+0Zw0de9jQ2exqHiZJcACDUDjXMXT8LAQ1XRpY686y23tvErjg3w//IGxu | ||||
WdjSReHTvae5PZain3x9DeGQFoqM+GB2K41VcOfqe2GKjXFQ4P/6EjWqX0Ej | ||||
zuXS/O7h0Zm5iAarCVoNd4phiblilgQxCecR6PImVbdOCow3ExURnk4ve3TU | ||||
F1yrE+KtyZzBQsNmSQcfI3ExqNtqoqagNysubTeX0Ky3TFV8m0sBF34lzAS5 | ||||
PD5S2mXMifgDQ308ArPpb3i4x9mS8NBuIN9Zvmjkuenh+66bBZyOxu8DJ7Ed | ||||
6+HBs45NfKVF1TdUxlQuZ72YjHQK28fj/07XTmHVYkd6eGRjtmTjdHjdmKcz | ||||
L/JZ172H/VPA8UQhSPSWTic51cI/4t3Zc21fhWAV1B3dU+hQe4r9fcwu7T67 | ||||
3ns62H852Nv/fHd3sLtrxzdrhOCVgxfml1T3XLVGh5qOKPMLH+ZTIAJLtArK | ||||
m3VTVNfakiq3y/Gkh6chOMmJreQ4zeO+HdAoE3sIDTDQoMLNjd/c7OY3oy/8 | ||||
CdS1ryG2SqEhIKQY6IB3tS5em2t+II+ujIK2+X9CNv6NmZiSu/8iDExgnhmv | ||||
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 | ||||
x7U+ofupDB8A/T9yXdOp5XAAAA== | ||||
</rfc> | </rfc> | |||
End of changes. 86 change blocks. | ||||
1070 lines changed or deleted | 698 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |