SACM Working Group | D. Waltermire |
Internet-Draft | S. Banghart |
Intended status: Informational | National Institute of Standards and Technology |
Expires: May 1, 2018 | October 28, 2017 |
Definition of the ROLIE Software Descriptor Extension
draft-ietf-sacm-rolie-softwaredescriptor-00
This document extends the Resource-Oriented Lightweight Information Exchange (ROLIE) core to add the information type category and related requirements needed to support Software Record and Software Inventory use cases. The 'software-descriptor' information type is defined as a ROLIE extension. Additional supporting requirements are also defined that describe the use of specific formats and link relations pertaining to the new information type.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 1, 2018.
Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
This document defines an extension to the Resource-Oriented Lightweight Information Exchange (ROLIE) protocol to support the publication of software descriptor information. Software descriptor information is information that characterizes:
Software descriptor information includes identifying, versioning, software creation and publication, and file artifact information. Software descriptor information provides data about what might be installed, but doesn't describe where or how a specific software installation is installed, configured, or executed.
Some possible use cases for Software descriptor information include:
This document supports these use cases by describing the content requirements for Collections of software descriptor information that are to be published to or retrieved from a ROLIE repository. This document also discusses requirements around the use of link relationships and describing the data model formats used in a ROLIE Entry describing a software descriptor information resource.
The key words "MUST," "MUST NOT," "REQUIRED," "SHALL," "SHALL NOT," "SHOULD," "SHOULD NOT," "RECOMMENDED," "MAY," and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
Definitions for some of the common computer security-related terminology used in this document can be found in Section 2 of [RFC5070].
This document does not specify any additional requirements for use of the Atom Publishing Protocol.
This document does not specify any additional requirements on the Atom Syndication Format.
This document defines the following information type[s]:
The "software-descriptor" information type represents any information that describes a piece of software. This document uses the definition of software provided by [RFC4949]. Note that as per this definition, this information type pertains to static software, that is, code on the disc. The software-descriptor information type is intended to provide a category for information that does one or more of the following:
Provided below is a non-exhaustive list of information that may be considered to be of a software-descriptor information type.
Note again that this list is not exhaustive, any information that in is the abstract realm of an incident should be classified under this information-type.
This information type does not include descriptions of running software, or state and configuration information that is associated with a software installation.
This document does not contain any additional requirements for the rolie:format element, the formats that follow are provided as examples of formats that describe the software descriptor information type.
The ISO SWID Tag 2016 format is a software descriptor and software record data format. It provides several tags: primary, which provides descriptive and naming information about software, patch, which describes non-standalone software meant to patch existing software, and corpus, which describes the software installation media that installs a given piece of software.
For a more complete overview as well as normative requirements, refer to TODO(ref?):ISO/IEC 19770-2
The Consise SWID format is an alternative representation of the ISO SWID Tag 2016 format using a CBOR encoding defined by a CDDL specification. It provides the same features and attributes as are specified in ISO 19770-2, plus:
This document registers new valid rolie:property names as follows:
This property provides an exposure point for an identification field from the associated software descriptor. The value of this property SHOULD be uniquely identifying information generated from the software descriptor linked to by the entry's atom:content element. swd:id property values SHOULD have a one-to-one mapping to individual pieces of SWD content.
This property provides an exposure point for the plain text name of the software being described. Due to the great variance in naming schemes, this property should be considered informative.
This section defines the requirements around the implementation of link relationships in the atom:link element in Entries. Each relationship is named, described, and given a requirement level.
Name | Description | Conformance |
---|---|---|
ancestor | Links to a software descriptor resource that defines an ancestor of the software being described by this Entry. | MAY |
patches | Links to a software descriptor resource that defines the software being patched by this software | MAY |
requires | Links to a software descriptor resource that defines a piece of software required for this software to function properly. | MAY |
installs | Links to a software descriptor resource that defines the software being installed by this software. | MAY |
installationrecord | Provides a link to a resource that describes an installation of this software. | MAY |
There are no additional extensions to define.
IANA has added an entry to the "ROLIE Security Resource Information Type Sub-Registry" registry located at <https://www.iana.org/assignments/rolie/category/information-type> .
The entry is as follows:
IANA has added an entry to the "ROLIE URN Parameters" registry located in <https://www.iana.org/assignments/rolie/>.
The entry is as follows:
IANA has added an entry to the "ROLIE URN Parameters" registry located in <https://www.iana.org/assignments/rolie/>.
The entry is as follows:
Use of this extension implies dealing with the security implications of both ROLIE and of software descriptors in general. As with any SWD information, care should be taken to verify the trustworthiness and veracity of the descriptor information to the fullest extent possible.
Ideally, software descriptors should have been signed by the software manufacturer, or signed by whichever agent processed the source code. SWD documents from these sources are more likely to be accurate than those generated by scraping installed software.
These "authoritative" sources of SWD content should consider additional security for their ROLIE repository beyond the typical recommendations, as the central importance of the repository is likely to make it a target.
Version information is often represented differently across manufacturers and even across product releases. If using SWD version information for low fault tolerance comparisons and searches, care should be taken that the correct version scheme is being utilized.
This extension does not introduce any privacy considerations above or beyond that of the core ROLIE document. Any implementations using this extension should understand the privacy considerations of ROLIE and the Atom Publishing Protocol.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[RFC4949] | Shirey, R., "Internet Security Glossary, Version 2", FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007. |
[RFC5070] | Danyliw, R., Meijer, J. and Y. Demchenko, "The Incident Object Description Exchange Format", RFC 5070, DOI 10.17487/RFC5070, December 2007. |
This document does not require any schema extensions.
Use of this extension in a ROLIE repository will not typically change that repository's operation. As such, the general examples provided by the ROLIE core document would serve as examples. Provided below is a sample SWD ROLIE entry:
<?xml version="1.0" encoding="UTF-8"?> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:rolie="urn:ietf:params:xml:ns:rolie-1.0"> <id>dd786dba-88e6-440b-9158-b8fae67ef67c</id> <title>Sample Software Descriptor</title> <published>2015-08-04T18:13:51.0Z</published> <updated>2015-08-05T18:13:51.0Z</updated> <summary>A descriptor for a piece of software published by this organization. </summary> <link rel="self" href="http://www.example.org/provider/SWD/123456"/> <category scheme="urn:ietf:params:rolie:category:information-type" term="software-descriptor"/> <rolie:format ns="urn:example:COSWID"/> <content type="application/xml" src="http://www.example.org/provider/SWD/123456/data"/> </entry>