draft-ietf-sacm-requirements-05.txt   draft-ietf-sacm-requirements-06.txt 
SACM N. Cam-Winget SACM N. Cam-Winget
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Intended status: Informational L. Lorenzin Intended status: Informational L. Lorenzin
Expires: November 10, 2015 Pulse Secure Expires: November 21, 2015 Pulse Secure
May 9, 2015 May 20, 2015
Secure Automation and Continuous Monitoring (SACM) Requirements Secure Automation and Continuous Monitoring (SACM) Requirements
draft-ietf-sacm-requirements-05 draft-ietf-sacm-requirements-06
Abstract Abstract
This document defines the scope and set of requirements for the This document defines the scope and set of requirements for the
Secure Automation and Continuous Monitoring (SACM) architecture, data Secure Automation and Continuous Monitoring (SACM) architecture, data
model and protocols. The requirements and scope are based on the model and protocols. The requirements and scope are based on the
agreed upon use cases. agreed upon use cases.
Status of This Memo Status of This Memo
skipping to change at page 1, line 34 skipping to change at page 1, line 34
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 10, 2015. This Internet-Draft will expire on November 21, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Requirements for SACM . . . . . . . . . . . . . . . . . . 4 2.1. Requirements for SACM . . . . . . . . . . . . . . . . . . 3
2.2. Requirements for the Architecture . . . . . . . . . . . . 6 2.2. Requirements for the Architecture . . . . . . . . . . . . 6
2.3. Requirements for the Information Model . . . . . . . . . 7 2.3. Requirements for the Information Model . . . . . . . . . 7
2.4. Requirements for the Data Model . . . . . . . . . . . . . 8 2.4. Requirements for the Data Model . . . . . . . . . . . . . 8
2.5. Requirements for Data Model Operations . . . . . . . . . 11 2.5. Requirements for Data Model Operations . . . . . . . . . 11
2.6. Requirements for Transport Protocols . . . . . . . . . . 12 2.6. Requirements for Transport Protocols . . . . . . . . . . 12
3. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 3. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
5. Security Considerations . . . . . . . . . . . . . . . . . . . 13 5. Security Considerations . . . . . . . . . . . . . . . . . . . 13
5.1. Trust between Provider and Requestor . . . . . . . . . . 14 5.1. Trust between Provider and Requestor . . . . . . . . . . 14
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 6. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 15
6.1. Normative References . . . . . . . . . . . . . . . . . . 15 6.1. -05 to -06 . . . . . . . . . . . . . . . . . . . . . . . 15
6.2. Informative References . . . . . . . . . . . . . . . . . 15 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 7.1. Normative References . . . . . . . . . . . . . . . . . . 15
7.2. Informative References . . . . . . . . . . . . . . . . . 16
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction 1. Introduction
Today's environment of rapidly-evolving security threats highlights Today's environment of rapidly-evolving security threats highlights
the need to automate the sharing of such information while protecting the need to automate the sharing of such information while protecting
user information as well as the systems that store, process, and user information as well as the systems that store, process, and
transmit this information. Security threats can be detected in a transmit this information. Security threats can be detected in a
number of ways. SACM's charter focuses on how to collect and share number of ways. SACM's charter focuses on how to collect and share
this information based on use cases that involve posture assessment this information based on use cases that involve posture assessment
of endpoints. of endpoints.
skipping to change at page 3, line 15 skipping to change at page 3, line 15
2. Requirements 2. Requirements
This document defines requirements based on the SACM use cases This document defines requirements based on the SACM use cases
defined in [I-D.ietf-sacm-use-cases]. This section describes the defined in [I-D.ietf-sacm-use-cases]. This section describes the
requirements used by SACM to assess and compare candidate data requirements used by SACM to assess and compare candidate data
models, interfaces, and protocols, to suit the SACM architecture. models, interfaces, and protocols, to suit the SACM architecture.
These requirements express characteristics or features that a These requirements express characteristics or features that a
candidate protocol or data model must be capable of offering to candidate protocol or data model must be capable of offering to
ensure security and interoperability. ensure security and interoperability.
In order to address the needs for determining, sharing, and using SACM defines an architecture and information model focused on
posture information, the following tasks should be considered: addressing the needs for determining, sharing, and using posture
information. With the information model defining assets and
1. Define the assets. This is what we want to know about an asset. attributes to facilitate the guidance, collection and assessment of
For instance, organizations will want to know what software is posture, the following tasks should be considered:
installed and its many critical security attributes such as patch
level. [EDITOR Note: Should this really be a task as I think it
may need to be pre-defined as part of the SACM information model?
This refers to comment on Mar 23 made by Jim Schaad]
2. Map the assets to an endpoint class. This requires populating 1. Map the assets to an endpoint class. This requires populating
the attributes needed to exchange information pertaining to the the attributes needed to exchange information pertaining to the
assets composing an endpoint. [EDITOR Note: Do we need to add assets composing an endpoint.
another task or subtask for the creation of such a mapping as
commented by Jim Schaad?]
3. Policy Definition: This is where an organization can express its 2. Policy Definition: This is where an organization can express its
policy for acceptable or problematic values of an asset policy for acceptable or problematic values of an asset
attribute. The expected values of an asset attribute are attribute. The expected values of an asset attribute are
determined for later comparison against the actual asset determined for later comparison against the actual asset
attribute values during the evaluation process. Expected values attribute values during the evaluation process. Expected values
may include both those values which are good as well as those may include both those values which are good as well as those
values which represent problems, such as vulnerabilities. The values which represent problems, such as vulnerabilities. The
organization can also specify the asset attributes that are to be organization can also specify the asset attributes that are to be
present for a given asset. present for a given asset.
4. Evaluation task: Evaluate the actual values of the asset data 3. Evaluation task: Evaluate the actual values of the asset data
against those expressed in the policy. against those expressed in the policy.
5. Report results: Report the results of the evaluation for use by 4. Report results: Report the results of the evaluation for use by
other components. Examples of use of a report would be other components. Examples of use of a report would be
additional evaluation, network enforcement, vulnerability additional evaluation, network enforcement, vulnerability
detection and license management. detection and license management.
6. Access Control Policy: Classes of entities and access control 5. Access Control Policy: Classes of entities and access control
policies are assigned to generic attributes as well as attributes policies are assigned to generic attributes as well as attributes
for specific endpoints. for specific endpoints.
2.1. Requirements for SACM 2.1. Requirements for SACM
Many deployment scenarios can be instantiated to address the above Many deployment scenarios can be instantiated to address the above
tasks and use cases defined in [I-D.ietf-sacm-use-cases]. To ensure tasks and use cases defined in [I-D.ietf-sacm-use-cases]. To ensure
interoperability, scalability, and flexibility in any of these interoperability, scalability, and flexibility in any of these
deployments, the following requirements are defined for proposed SACM deployments, the following requirements are defined for proposed SACM
standards: standards:
G-001 Solution Extensibility: The data models, protocols, and G-001 Solution Extensibility: The data models, protocols, and
transports defined by SACM MUST be designed to allow support for transports defined by SACM MUST be designed to allow support for
future extensions. future extensions.
1. The information model and interfaces MUST support the ability to 1. The information model and interfaces MUST support the ability to
add new operations while maintaining backwards compatibility. add new operations while maintaining backwards compatibility.
2. The query language MUST allow for general inquiries, as well as 2. The query language MUST allow for general inquiries, as well as
expression of specific paths to follow; the retrieval of expression of specific attributes or relationships between
specific information based on an event, or on a continuous basis attributes to follow; the retrieval of specific information
and the ability to retrieve specific pieces of information, based on an event, or on a continuous basis and the ability to
specific types or classes of information, or the entirety of retrieve specific pieces of information, specific types or
available information. [EDITOR Note: this should be part of the classes of information, or the entirety of available
operations on data model section, but we haven't defined information.
routability for source paths so not sure this is even in scope
for SACM]
3. The information model MUST accommodate the addition of new data 3. The information model MUST accommodate the addition of new data
types and/or schemas. types and/or schemas.
G-002 Interoperability: The data models, protocols, and transports G-002 Interoperability: The data models, protocols, and transports
must be specified with enough details to ensure interoperability. must be specified with enough details to ensure interoperability.
[EDITOR Note: Can we remove this requirement?]
G-003 Scalability: The data models, protocols, and transports MUST G-003 Scalability: The data models, protocols, and transports MUST
be scalable. SACM needs to support a broad set of deployment be scalable. SACM needs to support a broad set of deployment
scenarios. Scalability must be addressed to support: scenarios. Scalability must be addressed to support:
* Large datagrams: It is possible that the size of posture * Large datagrams: It is possible that the size of posture
assessment information can vary from a single assessment that is assessment information can vary from a single assessment that is
small in size to a very large datagram or a very large set of small in size to a very large datagram or a very large set of
assessments. assessments.
skipping to change at page 5, line 14 skipping to change at page 5, line 7
* Large number of target endpoints: A deployment may be managing * Large number of target endpoints: A deployment may be managing
information of a very large number of target endpoints. information of a very large number of target endpoints.
G-004 Agility: The data model, protocols, and transports MUST be G-004 Agility: The data model, protocols, and transports MUST be
suitably specified to enable implementations to fit into different suitably specified to enable implementations to fit into different
deployment models and scenarios, including considerations for deployment models and scenarios, including considerations for
implementations of data models and transports operating in implementations of data models and transports operating in
constrained environments. constrained environments.
G-005 Information Extensibility: A method for expressing both G-005 Information Extensibility: Non-standard (implementation-
standard and non-standard (implementation-specific) data attributes specific) data attributes MUST be supported. A method SHOULD be
while avoiding collisions SHOULD be defined. For interoperability defined for preventing collisions from occurring in the naming of
and scope boundary, an explicit set of data attributes MUST be all data attributes independent of their source. For
defined in the information model as mandatory to implement. interoperability and scope boundary, the information model MUST
define the mandatory set of data attributes. The set of attributes
defined by the information model MUST be well defined.
G-006 Data Integrity: A method for ensuring data integrity MUST be G-006 Data Integrity: A method for ensuring data integrity MUST be
provided. This method is required to be available (i.e. all data- provided. This method is required to be available (i.e. all data-
handling components must support it), but is not required to be used handling components must support it), but is not required to be used
in all cases. [EDITOR Note: is the intent to provide data transport in all cases.
integrity only?]
G-007 Data Partitioning: A method for partitioning data MUST be G-007 Data Partitioning: A method for partitioning data MUST be
supported to accommodate considerations such as geographic, supported to accommodate considerations such as geographic,
regulatory, operational requirements, overlay boundaries and regulatory, operational requirements, overlay boundaries and
federation where the data may be collected in multiple locations and federation where the data may be collected in multiple locations and
either centralized or kept in the local region. Where replication either centralized or kept in the local region. Where replication
of data is supported, it is required that methods exist to prevent of data is supported, it is required that methods exist to prevent
update loops. update loops.
G-008 Versioning and Backward Compatibility: Announcement and G-008 Versioning and Backward Compatibility: Announcement and
skipping to change at page 6, line 4 skipping to change at page 5, line 46
discover what information is available across the ecosystem (i.e. a discover what information is available across the ecosystem (i.e. a
method for cataloging data available in the ecosystem and method for cataloging data available in the ecosystem and
advertising it to consumers), and where to go to get a specific advertising it to consumers), and where to go to get a specific
piece of that information. For example, providing a method by which piece of that information. For example, providing a method by which
a node can locate the advertised information so that consumers are a node can locate the advertised information so that consumers are
not required to have a priori knowledge to find available not required to have a priori knowledge to find available
information. information.
G-010 Endpoint Discovery: SACM MUST define the means by which G-010 Endpoint Discovery: SACM MUST define the means by which
endpoints may be discovered. Use Case 2.1.2 describes the need to endpoints may be discovered. Use Case 2.1.2 describes the need to
discover endpoints and their composition. [EDITOR Note: should we discover endpoints and their composition.
make this a sub-requirement to G-009 as suggested by Jim Schaad?]
G-011 Push and Pull Access: Three methods of data access MUST be G-011 Push and Pull Access: Three methods of data access MUST be
supported: the standard Pull model as well as solicited and supported: the standard Pull model as well as solicited and
unsolicited Push models. All of the methods of data access MUST unsolicited Push models. All of the methods of data access MUST
support the ability for the initiator to filter the set of posture support the ability for the initiator to filter the set of posture
assessment information to be delivered. Additionally, the provider assessment information to be delivered. Additionally, the provider
of the information MUST be able to filter the set of posture of the information MUST be able to filter the set of posture
assessment information based on the permissions of the recipient. 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. This requirement is driven by use cases 2.1.3, 2.1.4 and 2.1.5.
G-012 Device Interface: the interfaces by which SACM components G-012 Device Interface: the interfaces by which SACM components
communicate to share endpoint posture information MUST be well communicate to share endpoint posture information MUST be well
defined. [EDITOR Note: to address Chris' comment, we can clarify by defined. That is, the interface defines the data model protocols
changing the term interface to communication transport both at the and network transport protocols to enable SACM components to
network and data layer] communicate.
G-013 Device location and network topology: the SACM architecture G-013 Device location and network topology: the SACM architecture
and interfaces MUST allow for the target endpoint (network) location and interfaces MUST allow for the target endpoint (network) location
and network topology to be modeled and understood. Where and network topology to be modeled and understood. Where
appropriate, the data model and the interfaces SHOULD allow for appropriate, the data model and the interfaces SHOULD allow for
discovery of the target endpoint location or network topology or discovery of the target endpoint location or network topology or
both. both.
G-014 Target Endpoint Identity: the SACM architecture and interfaces G-014 Target Endpoint Identity: the SACM architecture and interfaces
MUST support the ability of components to provide attributes that MUST support the ability of components to provide attributes that
skipping to change at page 7, line 46 skipping to change at page 7, line 38
is required to address appropriate access controls. is required to address appropriate access controls.
ARCH-007 Context-based Authorization: The SACM architecture MUST be ARCH-007 Context-based Authorization: The SACM architecture MUST be
capable of effecting context based authorization. Different capable of effecting context based authorization. Different
policies (e.g. business, regulatory, etc.) may specify what data may policies (e.g. business, regulatory, etc.) may specify what data may
be exposed to, or shared by consumers based on one or more be exposed to, or shared by consumers based on one or more
attributes of the consumer. The policy may specify that consumers attributes of the consumer. The policy may specify that consumers
are required to share specific information either back to the the are required to share specific information either back to the the
system or to administrators. system or to administrators.
IM-006 Time Synchronization: Actions or decisions based on time-
sensitive data (such as user logon/logoff endpoint connection/
disconnection, endpoint behaviour events, etc.) are all predicated
on a synchronized understanding of time. The SACM architecture MUST
provide a mechanism for all components to synchronize time. A
mechanism for detecting and reporting time discrepancies SHOULD be
provided by the architecture and reflected in the Information Model.
2.3. Requirements for the Information Model 2.3. Requirements for the Information Model
The SACM information represents the abstracted representation for the The SACM information represents the abstracted representation for the
Posture Assessment information to be communicated. SACM data models Posture Assessment information to be communicated. SACM data models
must adhere and comply to the SACM Information Model. The must adhere and comply to the SACM Information Model. The
requirements for the SACM information model include: requirements for the SACM information model include:
IM-001 Extensible Attribute Dictionary: the Information Model MUST IM-001 Extensible Attribute Dictionary: the Information Model MUST
define a minimum set of attributes for communicating Posture define a minimum set of attributes for communicating Posture
Information, to ensure interoperability between data models. Information, to ensure interoperability between data models.
skipping to change at page 8, line 25 skipping to change at page 8, line 25
IM-002 Posture Data Publication: The Information Model SHOULD allow IM-002 Posture Data Publication: The Information Model SHOULD allow
for the data to be provided by an endpoint either solicited or for the data to be provided by an endpoint either solicited or
unsolicited. That is, data models MUST support at least one or both unsolicited. That is, data models MUST support at least one or both
means to publish data: solicited or unsolicited. For example, a means to publish data: solicited or unsolicited. For example, a
compliance-server provider may publish endpoint posture information compliance-server provider may publish endpoint posture information
in response to a request from a consumer (solicited), or it may in response to a request from a consumer (solicited), or it may
publish posture information driven by a change in the posture of the publish posture information driven by a change in the posture of the
endpoint (unsolicited). endpoint (unsolicited).
IM-003 Data model negotiation: SACM's Information Model MUST allow IM-003 Data Model Negotiation: SACM's Information Model MUST allow
support for different data models, data model versions and different support for different data models, data model versions and different
versions of the operations (and network layer transport). The SACM versions of the operations (and network layer transport). The SACM
Information Model MUST include the ability to discover and negotiate Information Model MUST include the ability to discover and negotiate
the use of a particular or any data model. the use of a particular data model or any data model.
IM-004 Data Model Identification: The Information model MUST provide IM-004 Data Model Identification: The Information model MUST provide
a means to uniquely identify each Data Model uniquely. The a means to uniquely identify each Data Model uniquely. The
identifier MUST contain both an identifier of the model and a identifier MUST contain both an identifier of the model and a
version indicator for the model. The identifiers SHOULD be version indicator for the model. The identifiers SHOULD be
decomposable so that a customer can query for any version of a decomposable so that a customer can query for any version of a
specific model and compare returned values for older or newer than a specific model and compare returned values for older or newer than a
desired version. desired version.
IM-005 Data lifetime management: The information model MUST provide IM-005 Data Lifetime Management: The information model MUST provide
a means to allow data models to include data lifetime management. a means to allow data models to include data lifetime management.
The information model must identify attributes that can allow data The information model must identify attributes that can allow data
models to at minimum, identify the data's origination time and models to at minimum, identify the data's origination time and
expected time of next update or data longevity (how long should the expected time of next update or data longevity (how long should the
data be assumed to still be valid). data be assumed to still be valid).
2.4. Requirements for the Data Model 2.4. Requirements for the Data Model
The SACM information model represents an abstraction for "what" The SACM information model represents an abstraction for "what"
information can be communicated and "how" it is to be represented and information can be communicated and "how" it is to be represented and
skipping to change at page 9, line 15 skipping to change at page 9, line 15
It is expected that as applications may produce posture assessment It is expected that as applications may produce posture assessment
information, they may share it using a specific data model. information, they may share it using a specific data model.
Similarly, applications consuming or requesting posture assessment Similarly, applications consuming or requesting posture assessment
information, may require it be based on a specific data model. Thus, information, may require it be based on a specific data model. Thus,
while there may exist different data models and schemas, they should while there may exist different data models and schemas, they should
adhere to the SACM information model and meets the requirements adhere to the SACM information model and meets the requirements
defined in this section. defined in this section.
The specific requirements for candidate data models include: The specific requirements for candidate data models include:
DM-001 The data model MUST define the data attributes as objects DM-001 The data model MUST associate each data object with exactly
that MUST be uniquely referenced (e.g. endpoint, IP address, asset). one information model element (e.g. endpoint, IP address, asset).
DM-002 The data model MAY be structured into modules and submodules DM-002 Data Model Structure: The data model can be structured either
to allow for data references within a module. For example, an as one single module or separated into modules and sub-modules that
endpoint may be defined as a module that references one or more allow for references between them. The data model structure MAY
submodules that further describe the one or more assets. reflect structure in the information model, but does not need to.
For example, the data model may use one module to define endpoints,
and that module will reference other modules that describe the
various assets associated with the endpoint. Constraints and
interfaces may further be defined to resolve or tolerate ambiguity
in the references (e.g. same IP address used in two separate
networks). The data model MAY be structured into modules and
submodules to allow for data references within a module. For
example, an endpoint may be defined as a module that references one
or more submodules that further describe the one or more assets.
Constraints and interfaces may further be defined to resolve or Constraints and interfaces may further be defined to resolve or
tolerate ambiguity in the references (e.g. same IP address used in tolerate ambiguity in the references (e.g. same IP address used in
two separate networks). two separate networks).
DM-003 Search Flexibility: The search interfaces and actions MUST DM-003 Search Flexibility: The search interfaces and actions MUST
include the ability to start a search anywhere within a data model include the ability to start a search anywhere within a data model
structure, and the ability to search based on patterns ("wildcard structure, and the ability to search based on patterns ("wildcard
searches") as well as specific data elements. . searches") as well as specific data elements. .
DM-004 Full versus partial updates: The data model SHOULD include DM-004 Full versus partial updates: The data model SHOULD include
the ability to allow providers of data to provide the data as a the ability to allow providers of data to provide the data as a
whole or when updates occur. For example, a consumer can request a whole or when updates occur. For example, a consumer can request a
full update on initial engagement, then request to receive deltas full update on initial engagement, then request to receive deltas
(updates containing only the changes since the last update) on an (updates containing only the changes since the last update) on an
ongoing basis as new data is generated. ongoing basis as new data is generated.
DM-005 The data model SHOULD allow for a loose coupling between the DM-005 Loose Coupling: The data model SHOULD allow for a loose
provider and the requestor. coupling between the provider and the requestor.
DM-006 Provider identification: The interfaces and actions in the DM-006 Provider identification: The interfaces and actions in the
data model MUST include the ability to identify data from a specific data model MUST include the ability to identify data from a specific
provider. For example, a SACM consumer should be able to request provider. For example, a SACM consumer should be able to request
all data to come from a specific provider (e.g. Provider A) as all data to come from a specific provider (e.g. Provider A) as
there can be a larger set of providers. there can be a larger set of providers.
DM-007 Data cardinality: The data model MUST describe their DM-007 Data cardinality: The data model MUST describe their
constraints (e.g. cardinality). As posture information and the constraints (e.g. cardinality). As posture information and the
tasks for collection, aggregation or evaluation, could comprise one tasks for collection, aggregation or evaluation, could comprise one
or more attributes, interfaces and actions MUST allow and account or more attributes, interfaces and actions MUST allow and account
for such cardinality as well as whether the attributes are for such cardinality as well as whether the attributes are
conditional, optional, or mandatory. conditional, optional, or mandatory.
DM-008 Data model negotiation: The interfaces and actions in the DM-008 Data model negotiation: The interfaces and actions in the
data model MUST include capability negotiation to enable discovery data model MUST include capability negotiation to enable discovery
of supported and available data types and schemas. of supported and available data types and schemas.
DM-009 Data source: The data model MUST include the ability for DM-009 Data Source: The data model MUST include the ability for
providers to identify the data origin. For example, a provider providers to identify the data origin. For example, a provider
endpoint could share self-reported data vs. data collected from a endpoint could share self-reported data vs. data collected from a
different SACM endpoint or by some externally-observed data. different SACM endpoint or by some externally-observed data.
DM-010 Attribute Dictionary: Use Cases in the whole of Section 2 DM-010 Attribute Dictionary: Use Cases in the whole of Section 2
describe the need for an attribute dictionary. With SACM's scope describe the need for an attribute dictionary. With SACM's scope
focused on posture assessment, the data model attribute collection focused on posture assessment, the data model attribute collection
and aggregation MUST have a well-understood set of attributes and aggregation MUST have a well-understood set of attributes
inclusive of their meaning or usage intent. [EDITOR Note: Per Jim inclusive of their meaning or usage intent.
Schaad`s comment, this is really subsumed by IM-001. Should we
remove it or incorporate into IM-001?]
DM-011 The data model SHOULD allow the provider to include the DM-011 Origination Time: The data model SHOULD allow the provider to
information's origination time. include the information's origination time.
DM-012 The data model SHOULD allow the provider to include DM-012 Data Generation: The data model SHOULD allow the provider to
attributes defining how the data was generated (e.g. self-reported, include attributes defining how the data was generated (e.g. self-
reported by aggregator, scan result, etc.). reported, reported by aggregator, scan result, etc.).
DM-013 The data model SHOULD allow the provider to include DM-013 Data Origin: The data model SHOULD allow the provider to
attributes defining the data source (e.g. hostname, domain (DNS) include attributes defining the data source (e.g. hostname, domain
name or application name.)" (DNS) name or application name.)"
DM-014 The data model SHOULD allow the provider to include DM-014 Data Updates: The data model SHOULD allow the provider to
attributes defining whether the information provided is a delta, include attributes defining whether the information provided is a
partial, or full set of information. delta, partial, or full set of information.
DM-015 The data model MUST support the collection of attributes by a DM-015 Multiple Collectors: The data model MUST support the
variety of collectors, including internal collectors, external collection of attributes by a variety of collectors, including
collectors with an authenticated relationship with the endpoint, and internal collectors, external collectors with an authenticated
external collectors based on network and other observers. relationship with the endpoint, and external collectors based on
network and other observers.
DM-016 Solicited vs. Unsolicited Updates: The data model SHOULD DM-016 Solicited vs. Unsolicited Updates: The data model SHOULD
enable a provider to publish data either solicited (in response to a enable a provider to publish data either solicited (in response to a
request from a from a consumer) or unsolicited (as new data is request from a from a consumer) or unsolicited (as new data is
generated, without a request required). For example, an external generated, without a request required). For example, an external
collector can publish data in response to a request by a consumer collector can publish data in response to a request by a consumer
for information about an endpoint, or can publish data as it for information about an endpoint, or can publish data as it
observes new information about an endpoint, without any specific observes new information about an endpoint, without any specific
consumer request triggering the publication. consumer request triggering the publication.
skipping to change at page 11, line 19 skipping to change at page 11, line 25
data. The specific requirements for such operations include: data. The specific requirements for such operations include:
OP-001 Time Synchronization: Request and response operations SHOULD OP-001 Time Synchronization: Request and response operations SHOULD
be timestamped, and published information SHOULD capture time of be timestamped, and published information SHOULD capture time of
publication. Actions or decisions based on time-sensitive data publication. Actions or decisions based on time-sensitive data
(such as user logon/logoff, endpoint connection/disconnection, (such as user logon/logoff, endpoint connection/disconnection,
endpoint behavior events, etc.) are all predicated on a synchronized endpoint behavior events, etc.) are all predicated on a synchronized
understanding of time. A method for detecting and reporting time understanding of time. A method for detecting and reporting time
discrepancies SHOULD be provided. discrepancies SHOULD be provided.
OP-002 Collection separation: The request for a data item MUST OP-002 Collection Abstraction: The request for a data item MUST
include enough information to properly identify the item to collect, include enough information to properly identify the item to collect,
but the request shall not be a command to directly execute nor but the request shall not be a command to directly execute nor
directly be applied as arguments to a command. The purpose of this directly be applied as arguments to a command. The purpose of this
requirement is primarily to reduce the potential attack vectors, but requirement is primarily to reduce the potential attack vectors, but
has the additional benefit of abstracting the request for collection has the additional benefit of abstracting the request for collection
from the collection method, thereby allowing more flexibility in how from the collection method, thereby allowing more flexibility in how
collection is implemented. collection is implemented.
OP-003 Collection composition: A collection request MAY be composed OP-003 Collection Composition: A collection request MAY be composed
of multiple collection requests (which yield collected values). The of multiple collection requests (which yield collected values). The
desire for multiple values MUST be expressed as part of the desire for multiple values MUST be expressed as part of the
collection request, so that the aggregation can be resolved at the collection request, so that the aggregation can be resolved at the
point of collection without having to interact with the requester. point of collection without having to interact with the requester.
This requirement SHOULD NOT be interpreted as preventing a collector
from providing attributes which were not part of the original
request.
OP-004 Attribute-based query: A query operation SHOULD be based on a OP-004 Attribute-based Query: A query operation SHOULD be based on a
set of attributes. Use Case 2.1.2 describes the need for the data set of 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 model to support a query operation based on a set of attributes to
facilitate collection of information such as posture assessment, facilitate collection of information such as posture assessment,
inventory (of endpoints or endpoint components), and configuration inventory (of endpoints or endpoint components), and configuration
checklist. checklist.
OP-005 Information-based query with filtering: The query operation OP-005 Information-based Query with Filtering: The query operation
MUST support filtering. Use Case 2.1.3 describes the need for the 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 data model to support the means for the information to be collected
through a query mechanism. Furthermore, the query operation through a query mechanism. Furthermore, the query operation
requires filtering capabilities to allow for only a subset of requires filtering capabilities to allow for only a subset of
information to be retrieved. The query operation MAY be a information to be retrieved. The query operation MAY be a
synchronous request or asynchronous request. synchronous request or asynchronous request.
OP-006 Data model scalability: The data model MUST be scalable. Use OP-006 Data Model Scalability: The operation resulting from a query
Cases 2.1.4 and 2.1.5 describes the need for the data model to operation MUST be able to handle the return and receipt of large
support scalability. For example, the query operation may result in amounts of data. Use Cases 2.1.4 and 2.1.5 describes the need for
a very large set of attributes, as well as a large set of targets. 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.
OP-007 The data model MUST allow a SACM component to communicate OP-007 Data Abstraction: The data model MUST allow a SACM component
what data was used to construct the target endpoint's identity, so to communicate what data was used to construct the target endpoint's
other SACM components can determine whether they are constructing an identity, so other SACM components can determine whether they are
equivalent target enpoint (and their identity) and whether they have constructing an equivalent target enpoint (and their identity) and
confidence in that identity. SACM components SHOULD have interfaces whether they have confidence in that identity. SACM components
defined to transmit this data directly or to refer to where the SHOULD have interfaces defined to transmit this data directly or to
information can be retrieved. refer to where the information can be retrieved.
2.6. Requirements for Transport Protocols 2.6. Requirements for Transport Protocols
EDITOR Note: this section is meant to relate to Network tranport
layer protocols. For the data, I pesumed the transport would fall as
an operation on the data model. But we need group consensus and
terminology to clarify this.
The requirements for transport protocols include: The requirements for transport protocols include:
T-001 Transport variability: Different transports MUST be supported T-001 Transport Variability: Different transports MUST be supported
to address different deployment and time constraints. Supporting to address different deployment and time constraints. Supporting
transports MAY be at the data link layer, network, transport, or transports MAY be at the data link layer, network, transport, or
application layers. application layers.
T-002 Data Integrity: Transport protocols MUST be able to ensure T-002 Data Integrity: Transport protocols MUST be able to ensure
data integrity. data integrity.
T-003 Data Confidentiality: Transport protocols MUST be able to T-003 Data Confidentiality: Transport protocols MUST be able to
support data confidentiality. Transport protocols SHOULD ensure support data confidentiality. Transport protocols SHOULD ensure
data protection for data in transit by encryption to provide data protection for data in transit by encryption to provide
confidentiality, integrity, and robustness against protocol-based confidentiality, integrity, and robustness against protocol-based
attacks. Note that while the transport MUST be able to support data attacks. Note that while the transport MUST be able to support data
confidentiality, implementations MAY choose to make confidentiality confidentiality, implementations MAY choose to make confidentiality
optional. Protection for data at rest is not in scope for SACM. optional. Protection for data at rest is not in scope for SACM.
Data protection MAY be used for both privacy and non-privacy Data protection MAY be used for both privacy and non-privacy
scenarios. scenarios.
T-004 Transport protection: Transport protocols MUST be capable of T-004 Transport Protection: Transport protocols MUST be capable of
supporting mutual authentication and replay protection. supporting mutual authentication and replay protection.
T-005 Transport reliability: Transport protocols MUST provide T-005 Transport Reliability: Transport protocols MUST provide
reliable delivery of data. This includes the ability to perform reliable delivery of data. This includes the ability to perform
fragmentation and reassembly, and to detect replays. fragmentation and reassembly, and to detect replays.
T-006 Transport Agnostic: the data model SHOULD be transport T-006 Transport Agnostic: the data model SHOULD be transport
agnostic, to allow for the data operations to leverage the most agnostic, to allow for the data operations to leverage the most
appropriate transport Internet layer (e.g. Link Layer, TCP, UDP, appropriate transport Internet layer (e.g. Link Layer, TCP, UDP,
etc.). etc.).
3. Acknowledgements 3. Acknowledgements
skipping to change at page 13, line 40 skipping to change at page 13, line 49
providers to access specific information being requested or providers to access specific information being requested or
published. published.
To enable federation across multiple entities (such as across To enable federation across multiple entities (such as across
organizational or geographic boundaries) authorization must also organizational or geographic boundaries) authorization must also
extend to infrastructure elements themselves, such as central extend to infrastructure elements themselves, such as central
controllers / brokers / data repositories. controllers / brokers / data repositories.
In addition, authorization needs to extend to specific information or In addition, authorization needs to extend to specific information or
resources available in the environment. In other words, resources available in the environment. In other words,
authorization should be based on both subject (the information authorization is based on the subject (the information requester),
requestor) and object (the information requested). The method by the provider (the information responder), the object (the endpoint
which this authorization is applied is unspecified. 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 focus on the sharing of posture information for SACM's charter focus on the sharing of posture information for
improving efficacy of security applications such as compliance, improving efficacy of security applications such as compliance,
configuration, assurance and other threat and vulnerability reporting configuration, assurance and other threat and vulnerability reporting
and remediation systems. While the goal is to facilitate the flow of and remediation systems. While the goal is to facilitate the flow of
information securely, it is important to note that participating information securely, it is important to note that participating
endpoints may not be cooperative or trustworthy. endpoints may not be cooperative or trustworthy.
5.1. Trust between Provider and Requestor 5.1. Trust between Provider and Requestor
skipping to change at page 15, line 20 skipping to change at page 15, line 30
o Direct (peer to peer) communication with the provider. o Direct (peer to peer) communication with the provider.
o Authentication and authorization of the provider. o Authentication and authorization of the provider.
o Either or both confidentiality and integrity at the transport o Either or both confidentiality and integrity at the transport
layer. layer.
o Either or both confidentiality and integrity at the data layer. o Either or both confidentiality and integrity at the data layer.
6. References 6. Change Log
6.1. Normative References 6.1. -05 to -06
Updated G-005 to clarify the MUST to allow non-standard extensions,
SHOULD avoid collisions and ensure interoperability.
Cleaned up and clarified IM-003, DM-001.
Cleaned up some of the OP-XXX and ARCH-XXX per Jim Schaad's comments.
Updated some of the text around Editor notes and removed all 'Editor
Note' comments
7. References
7.1. Normative References
[I-D.ietf-sacm-terminology] [I-D.ietf-sacm-terminology]
Waltermire, D., Montville, A., Harrington, D., Cam-Winget, Waltermire, D., Montville, A., Harrington, D., Cam-Winget,
N., Lu, J., Ford, B., and M. Kaeo, "Terminology for N., Lu, J., Ford, B., and M. Kaeo, "Terminology for
Security Assessment", draft-ietf-sacm-terminology-06 (work Security Assessment", draft-ietf-sacm-terminology-06 (work
in progress), February 2015. in progress), February 2015.
[I-D.ietf-sacm-use-cases] [I-D.ietf-sacm-use-cases]
Waltermire, D. and D. Harrington, "Endpoint Security Waltermire, D. and D. Harrington, "Endpoint Security
Posture Assessment - Enterprise Use Cases", draft-ietf- Posture Assessment - Enterprise Use Cases", draft-ietf-
sacm-use-cases-09 (work in progress), March 2015. sacm-use-cases-09 (work in progress), March 2015.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5209] Sangster, P., Khosravi, H., Mani, M., Narayan, K., and J. [RFC5209] Sangster, P., Khosravi, H., Mani, M., Narayan, K., and J.
Tardo, "Network Endpoint Assessment (NEA): Overview and Tardo, "Network Endpoint Assessment (NEA): Overview and
Requirements", RFC 5209, June 2008. Requirements", RFC 5209, June 2008.
6.2. Informative References 7.2. Informative References
[RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between [RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between
Information Models and Data Models", RFC 3444, January Information Models and Data Models", RFC 3444, January
2003. 2003.
Authors' Addresses Authors' Addresses
Nancy Cam-Winget Nancy Cam-Winget
Cisco Systems Cisco Systems
3550 Cisco Way 3550 Cisco Way
San Jose, CA 95134 San Jose, CA 95134
US US
Email: ncamwing@cisco.com Email: ncamwing@cisco.com
Lisa Lorenzin Lisa Lorenzin
Pulse Secure Pulse Secure
 End of changes. 48 change blocks. 
106 lines changed or deleted 132 lines changed or added

This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/