From e5ec5f8d80159cfc1e8c5b264f91150eee544694 Mon Sep 17 00:00:00 2001 From: Nancy Date: Wed, 20 Jan 2016 11:09:32 -0800 Subject: [PATCH] revision 12 updates This includes updates to address current open issues --- draft-ietf-sacm-requirements.xml | 56 ++++++++++++++++---------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/draft-ietf-sacm-requirements.xml b/draft-ietf-sacm-requirements.xml index 7610dd0..2648ba8 100644 --- a/draft-ietf-sacm-requirements.xml +++ b/draft-ietf-sacm-requirements.xml @@ -8,7 +8,7 @@ - + @@ -39,7 +39,7 @@ - + - Secure Automation and Continuous Monitoring (SACM) Requirements + Security Automation and Continuous Monitoring (SACM) Requirements @@ -127,7 +127,7 @@
- Today's environment of rapidly-evolving security threats highlights the need to automate the sharing of such information while protecting user information as well as the systems that store, + Today's environment of rapidly-evolving security threats highlights the need to automate the sharing of security information (such as posture information) while protecting user information as well as the systems that store, process, and transmit this information. Security threats can be detected in a number of ways. SACM's charter focuses on how to collect and share this information based on use cases that involve posture assessment of endpoints. @@ -141,7 +141,7 @@ assessments. - This document focuses on describing the requirements for facilitating the exchange of posture assessment information in the enterprise, in particular, for the use cases as exemplified in . Also, this document uses terminology defined in . + This document focuses on describing the requirements for facilitating the exchange of posture assessment information in the enterprise, in particular, for the use cases as exemplified in . Also, this document uses terminology defined in .
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", @@ -160,19 +160,19 @@
- This document defines requirements based on the SACM use cases defined in . + This document defines requirements based on the SACM use cases defined in . This section describes the requirements used by SACM to assess and compare candidate data models, interfaces, and protocols, to suit the SACM architecture. These requirements express characteristics or features that a candidate - protocol or data model must be capable of offering to ensure security and interoperability. + protocol, information model, or data model must be capable of offering to ensure security and interoperability. Multiple data models, protocols, and transports may be employed in a SACM environment. A SACM transport protocol is one that runs on top of L3 protocols such as TCP/IP or L4 protocols such as HTTP, carries operations (requests / responses), and moves data. SACM defines an architecture and information model focused on addressing the needs for determining, sharing, and using posture information via Posture Information Providers and Posture Information Consumers mediated by a Controller. With the information model defining assets and attributes to facilitate the guidance, collection, and assessment of posture, these are some of the tasks that should be considered: - Asset Classification: Map the assets on the target endpoints to asset classes. This enables identification of the attributes needed to exchange information pertaining to the target endpoint. + Asset Classification: Map the target endpoint and/or the assets on the target endpoints to asset classes. This enables identification of the attributes needed to exchange information pertaining to the target endpoint. - Attribute Definition: Define the attributes desired to be collected from each target endpoint. This is what we want to know about a target endpoint. For instance, organizations will want to know what software is installed and its many critical security attributes such as patch level. + Attribute Definition: Define the attributes desired to be collected from each target endpoint. This is what we want to know about a target endpoint. For instance, organizations will want to know what software is installed and its critical security attributes such as patch level. Policy Definition: This is where an organization can express its policy for acceptable or problematic values of an endpoint attribute. The expected values of an endpoint attribute are determined for later comparison against the actual endpoint attribute values during the evaluation process. Expected values may include both those values which are good as well as those values which represent problems, such as vulnerabilities. The organization can also specify the endpoint attributes that are to be present for a given target endpoint. @@ -186,13 +186,13 @@
- Many deployment scenarios can be instantiated to address the above tasks and use cases defined in . To ensure interoperability, scalability, and flexibility in any of these deployments, the following requirements are defined for proposed SACM standards: + Many deployment scenarios can be instantiated to address the above tasks and use cases defined in . To ensure interoperability, scalability, and flexibility in any of these deployments, the following requirements are defined for proposed SACM standards: Solution Extensibility: The information model, data models, protocols, and transports defined by SACM MUST be designed to allow support for future extensions, including both standard and proprietary transport protocols and data models. - The information model and interfaces MUST support the ability to add new operations while maintaining backwards compatibility. SACM-defined transport protocols MUST have extensibility to allow them to transport operations that are defined in the future. + The information model and device interfaces (see G-012) MUST support the ability to add new operations while maintaining backwards compatibility. SACM-defined transport protocols MUST have extensibility to allow them to transport operations that are defined in the future. The query language MUST allow for general inquiries, as well as expression of specific attributes or relationships between attributes to follow; the retrieval of specific information based on an event, or on a continuous basis; and the ability to retrieve specific pieces of information, specific types or classes of information, or the entirety of available information. The information model MUST accommodate the interoperable addition of new data types and/or schemas. @@ -206,23 +206,23 @@ Large number of target endpoints: A deployment may be managing information of a very large number of target endpoints. - Agility: The data model, protocols, and transports MUST be suitably specified to enable implementations to fit into different deployment models and scenarios, including considerations for implementations of data models and transports operating in constrained environments. + Versatility: The data model, protocols, and transports MUST be suitably specified to enable implementations to fit into different deployment models and scenarios, including considerations for implementations of data models and transports operating in constrained environments. - Information Extensibility: Non-standard (implementation-specific) attributes MUST be supported. A method SHOULD be defined for preventing collisions from occurring in the naming of all attributes independent of their source. For interoperability and scope boundary, the information model MUST define the mandatory set of attributes. The set of attributes defined by the information model MUST be well defined. + Information Extensibility: Non-standard (implementation-specific) attributes MUST be supported. A method SHOULD be defined for preventing collisions from occurring in the naming of all attributes independent of their source. For interoperability and scope boundary, the information model MUST define the mandatory set of attributes. Data Integrity: To protect the information being shared, SACM components MUST protect the integrity and confidentiality of data in transit (while information is being transferred between providers and consumers, and through proxies and/or repositories) and data at rest (for information stored on repositories and on providers / consumers). Mechanisms for this protection are unspecified but should include industry best practices such as encrypted storage, encrypted transports, data checksums, etc. These mechanisms are required to be available (i.e. all data-handling components must support them), but are not required to be used in all cases. Data Partitioning: A method for partitioning data MUST be supported to accommodate considerations such as geographic, regulatory, operational requirements, overlay boundaries, and federation (where the data may be collected in multiple locations and either centralized or kept in the local region). Where replication of data is supported, it is required that methods exist to prevent update loops. - Versioning and Backward Compatibility: Announcement and negotiation of versions, inclusive of existing capabilities (such as transport protocols, data models, specific attributes within data models, standard attribute expression sets, etc.) MUST be supported. Negotiation for both versioning and capability is needed to accommodate future growth and ecosystems with mixed capabilities. + Versioning and Backward Compatibility: Announcement and negotiation of versions, inclusive of existing capabilities (such as transport protocols, data models, specific attributes within data models, standard attribute expression sets, etc.) MUST be supported. Negotiation for both versioning and capabilities is needed to accommodate future growth and ecosystems with mixed capabilities. Information Discovery: There MUST be mechanisms for components to discover what information is available across the ecosystem (i.e. a method for cataloging data available in the ecosystem and advertising it to consumers), where to go to get a specific piece of that information (i.e. which provider has the information), and what schemas are in use for organizing the information. For example, providing a method by which a node can locate the advertised information so that consumers are not required to have a priori knowledge to find available information. Target Endpoint Discovery: SACM MUST define the means by which target endpoints may be discovered. Use Case 2.1.2 describes the need to discover endpoints and their composition. - Push and Pull Access: Three methods of data access MUST be supported: the standard Pull model as well as solicited and unsolicited Push models. All of the methods of data access MUST support the ability for the initiator to filter the set of posture assessment information to be delivered. Additionally, the provider of the information MUST be able to filter the set of posture assessment information based on the permissions of the recipient. This requirement is driven by use cases 2.1.3, 2.1.4 and 2.1.5. + Push and Pull Access: Three methods of data access MUST be supported: a Pull model, a solicited Push model, and an unsolicited Push models. All of the methods of data access MUST support the ability for the initiator to filter the set of posture assessment information to be delivered. Additionally, the provider of the information MUST be able to filter the set of posture assessment information based on the permissions of the recipient. This requirement is driven by use cases 2.1.3, 2.1.4 and 2.1.5. - Device Interface: The interfaces by which SACM components communicate to share endpoint posture information MUST be well defined. That is, the interface defines the data model, SACM transport protocols, and network transport protocols to enable SACM components to communicate. [Revised per our 6/29 conversation - does this work? -LL] + Device Interface: The interfaces by which SACM components communicate to share endpoint posture information MUST be well defined. That is, the interface defines the data model, SACM transport protocols, and network transport protocols to enable SACM components to communicate. Endpoint Location and Network Topology: The SACM architecture and interfaces MUST allow for the target endpoint (network) location and network topology to be modeled and understood. Where appropriate, the data model and the interfaces SHOULD allow for discovery of the target endpoint location or network topology or both. @@ -247,7 +247,7 @@ Topology Flexibility: Both centralized and decentralized (peer-to-peer) information exchange MUST be supported. Centralized data exchange enables use of a common data format to bridge together data exchange between diverse systems, and can leverage a virtual data store that centralizes and offloads all data access, storage, and maintenance to a dedicated resource. Decentralized data exchange enables simplicity of sharing data between relatively uniform systems, and between small numbers of systems, especially within a single enterprise domain. The fact that a centralized or decentralized deployment is used SHOULD be invisible to a consumer. - Capability Negotiation: Announcement and negotiation of functional capabilities (such as authentication protocols, authorization schemes, data models, transport protocols, etc.) must be supported, enabling a SACM component to make inquiries about the capabilities of other components in the SACM ecosystem. + Capability Negotiation: Announcement and negotiation of functional capabilities (such as authentication protocols, authorization schemes, data models, transport protocols, etc.) MUST be supported, enabling a SACM component to make inquiries about the capabilities of other components in the SACM ecosystem. Role-based Authorization: The SACM architecture MUST be capable of effecting role-based authorization. Distinction of endpoints capable of and authorized to provide or consume information is required to address appropriate access controls. @@ -267,9 +267,9 @@ Extensible Attribute Vocabulary: The information model MUST define a minimum set of attributes for communicating Posture Information, to ensure interoperability between data models. (Individual data models may define attributes beyond the mandatory-to-implement minimum set.) The attributes should be defined with a clear mechanism for extensibility to enable data models to adhere to SACM's required attributes as well as allow for their own extensions. The attribute vocabulary should be defined with a clear mechanism for extensibility to enable future versions of the information model to be interoperably expanded with new attributes. - Posture Data Publication: The information model MUST allow for the data to be provided by a SACM component either solicited or unsolicited. No aspect of the information model should be dependent upon or assume a push (unsolicited) or pull (solicited) model of publication. + Posture Data Publication: The information model MUST allow for the data to be provided by a SACM component either solicited or unsolicited. No aspect of the information model should be dependent upon or assume a push or pull model of publication. - Data Model Negotiation: SACM's information model MUST allow support for different data models, data model versions, and different versions of the operations (and network layer transport). The SACM information model MUST include the ability to discover and negotiate the use of a particular data model or any data model. + Data Model Negotiation: SACM's information model MUST allow support for different data models, data model versions, and different versions of the operations on the data models and transport protocols. The SACM information model MUST include the ability to discover and negotiate the use of a particular data model or any data model. Data Model Identification: The information model MUST provide a means to uniquely identify each data model uniquely. The identifier MUST contain both an identifier of the data model and a version indicator for the data model. The identifiers SHOULD be decomposable so that a customer can query for any version of a specific data model and compare returned values for older or newer than a desired version. @@ -306,13 +306,13 @@ Data Generation: The data model MUST allow the provider to include attributes defining how the data was generated (e.g. self-reported, reported by aggregator, scan result, etc.). - Data Source: The data model MUST allow the provider to include attributes defining the data source (target endpoint from which the data was collected) - e.g. hostname, domain (DNS) name or application name. + Data Source: The data model MUST allow the provider to include attributes identifying the data source (target endpoint from which the data was collected) - e.g. hostname, domain (DNS) name or application name. Data Updates: The data model SHOULD allow the provider to include attributes defining whether the information provided is a delta, partial, or full set of information. Multiple Collectors: The data model MUST support the collection of attributes by a variety of collectors, including internal collectors, external collectors with an authenticated relationship with the endpoint, and external collectors based on network and other observers. - Attribute Extensibility: Use Cases in the whole of Section 2 describe the need for an attribute dictionary. With SACM's scope focused on posture assessment, the data model attribute collection and aggregation MUST have a well-understood set of attributes inclusive of their meaning or usage intent. The data model MUST include all attributes defined in the information model and MAY include additional attributes beyond those found in the information model. Additional attributes MUST be defined in accordance with the extensibility framework provided in the information model. + Attribute Extensibility: Use Cases in the whole of Section 2 describe the need for an attribute dictionary. With SACM's scope focused on posture assessment, the data model attribute collection and aggregation MUST have a well-understood set of attributes inclusive of their meaning or usage intent. The data model MUST include all attributes defined in the information model and MAY include additional attributes beyond those found in the information model. Additional attributes MUST be defined in accordance with the extensibility framework provided in the information model (see IM-001). Solicited vs. Unsolicited Updates: The data model MUST enable a provider to publish data either solicited (in response to a request from a consumer) or unsolicited (as new data is generated, without a request required). For example, an external collector can publish data in response to a request by a consumer for information about an endpoint, or can publish data as it observes new information about an endpoint, without any specific consumer request triggering the publication; a compliance-server provider may publish endpoint posture information in response to a request from a consumer (solicited), or it may publish posture information driven by a change in the posture of the endpoint (unsolicited). @@ -332,15 +332,15 @@ Collection Abstraction: Collection is the act of a SACM component gathering data from a target endpoint. The request for a data item MUST include enough information to properly identify the item to collect, but the request shall not be a command to directly execute nor directly be applied as arguments to a command. The purpose of this requirement is primarily to reduce the potential attack vectors, but has the additional benefit of abstracting the request for collection from the collection method, thereby allowing more flexibility in how collection is implemented. - Collection Composition: A collection request MAY be composed of multiple collection requests (which yield collected values). The desire for multiple values MUST be expressed as part of the collection request, so that the aggregation can be resolved at the point of collection without having to interact with the requestor. This requirement SHOULD NOT be interpreted as preventing a collector from providing attributes which were not part of the original request. + Collection Composition: A collection request MAY be composed of multiple collection requests (which yield collected values). The desire for multiple values MUST be expressed as part of the collection request, so that the aggregation can be resolved at the point of collection without having to interact with the requestor. This requirement should not be interpreted as preventing a collector from providing attributes which were not part of the original request. Attribute-based Query: A query operation is the act of requesting data from a provider. Query operations SHOULD be based on a set of attributes. Query operations MUST support both a query for specific attributes and a query for all attributes. Use Case 2.1.2 describes the need for the data model to support a query operation based on a set of attributes to facilitate collection of information such as posture assessment, inventory (of endpoints or endpoint components), and configuration checklist. Information-based Query with Filtering: The query operation MUST support filtering. Use Case 2.1.3 describes the need for the data model to support the means for the information to be collected through a query mechanism. Furthermore, the query operation requires filtering capabilities to allow for only a subset of information to be retrieved. The query operation MAY be a synchronous request or asynchronous request. - Data Model Scalability: The operation resulting from a query operation MUST be able to handle the return and receipt of large amounts of data. Use Cases 2.1.4 and 2.1.5 describes the need for the data model to support scalability. For example, the query operation may result in a very large set of attributes, as well as a large set of targets. + Operation Scalability: The operation resulting from a query operation MUST be able to handle the return and receipt of large amounts of data. Use Cases 2.1.4 and 2.1.5 describe the need for the data model to support scalability. For example, the query operation may result in a very large set of attributes, as well as a large set of targets. - Data Abstraction: The data model MUST allow a SACM component to communicate what data was used to construct the target endpoint's identity, so other SACM components can determine whether they are constructing an equivalent target endpoint (and their identity) and whether they have confidence in that identity. SACM components SHOULD have interfaces defined to transmit this data directly or to refer to where the information can be retrieved. + Data Abstraction: The data model MUST allow a SACM component to communicate what data was used to construct the target endpoint's identity, so other SACM components can determine whether they are constructing an equivalent target endpoint (and its identity) and whether they have confidence in that identity. SACM components SHOULD have interfaces defined to transmit this data directly or to refer to where the information can be retrieved. Provider Restriction: Request operations MUST include the ability to restrict the data to be provided by a specific provider or a provider with specific characteristics. Response operations MUST include the ability to identify the provider that supplied the response. For example, a SACM Consumer should be able to request that all of the data come from a specific provider by identity (e.g. Provider A) or from a Provider that is in a specific location (e.g. in the Boston office). @@ -359,7 +359,7 @@ Data Integrity: SACM transport protocols MUST be able to ensure data integrity for data in transit. - Data Confidentiality: SACM transport protocols MUST be able to support data confidentiality. SACM transport protocols MUST ensure data protection for data in transit (e.g. by encryption) to provide confidentiality, integrity, and robustness against protocol-based attacks. Note that while the transport MUST be able to support data confidentiality, implementations MAY choose to make confidentiality optional. Protection for data at rest is not in scope for transport protocols. Data protection MAY be used for both privacy and non-privacy scenarios. + Data Confidentiality: SACM transport protocols MUST be able to support data confidentiality. SACM transport protocols MUST ensure data protection for data in transit (e.g. by encryption) to provide confidentiality, integrity, and robustness against protocol-based attacks. Note that while the transport MUST be able to support data confidentiality, implementations MAY provide a configuration option that enables and disables confidentiality in deployments. Protection for data at rest is not in scope for transport protocols. Data protection MAY be used for both privacy and non-privacy scenarios. Transport Protection: SACM transport protocols MUST be capable of supporting mutual authentication and replay protection. @@ -396,7 +396,7 @@ In addition, authorization needs to extend to specific information or resources available in the environment. In other words, authorization is based on the subject (the information requestor), the provider (the information responder), the object (the endpoint the information is being requested on), and the attribute (what piece of data is being requested). The method by which this authorization is applied is unspecified. - SACM's charter focuses on the sharing of posture information for improving efficacy of security applications such as compliance, configuration, assurance and other threat and vulnerability reporting and remediation systems. While the goal is to facilitate the flow of information securely, it is important to note that participating endpoints may not be cooperative or trustworthy. + SACM's charter focuses on the workflow orchestration and the sharing of posture information for improving efficacy of security applications such as compliance, configuration, assurance and other threat and vulnerability reporting and remediation systems. While the goal is to facilitate the flow of information securely, it is important to note that participating endpoints may not be cooperative or trustworthy.
The information given from the provider to a requestor may come with different levels of trustworthiness given the different potential deployment scenarios and compromise either at the provider, the requesting consumer, or devices that are involved in the transport between the provider and requestor. This section will describe the different considerations that may reduce the level of trustworthiness of the information provided. @@ -410,7 +410,7 @@ A requestor may require data freshness indications, both knowledge of data origination as well as time of publication so that it can make more informed decisions about the relevance of the data based on its currency and/or age. - It is also important to note that endpoint assessment reports, especially as they may be provided by the target endpoint may pose untrustworthy information. The considerations for this is described in Section 8 of . + It is also important to note that endpoint assessment reports, especially as they may be provided by the target endpoint may pose untrustworthy information. The considerations for this are described in Section 8 of . The trustworthiness of the posture information given by the provider to one or many requestors is dependent on several considerations. Some of these include the requestor requiring: @@ -460,7 +460,7 @@ &RFC2119; &RFC5209; - &I-D.ietf-sacm-use-cases; + &RFC7632; &I-D.ietf-sacm-terminology;