One document matched: draft-ietf-sacm-use-cases-05.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2865 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2865.xml">
<!--
<!ENTITY RFC2865 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2865.xml">
<!ENTITY RFC3535 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3535.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY RFC4949 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4949.xml">
<!ENTITY RFC5209 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5209.xml">
<!ENTITY RFC5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
<!ENTITY RFC5792 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5792.xml">
<!ENTITY RFC5793 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5793.xml">
<!ENTITY RFC6733 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6733.xml">
<!ENTITY RFC6876 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6876.xml">
<!ENTITY I-D.draft-ietf-nea-pt-eap-09 SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-nea-pt-eap-09.xml">
<!ENTITY I-D.draft-ietf-netmod-interfaces-cfg-12 SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-netmod-interfaces-cfg-12.xml">
<!ENTITY I-D.draft-ietf-netmod-system-mgmt-08 SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-netmod-system-mgmt-08.xml">
<!ENTITY I-D.draft-ietf-savi-framework-06 SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-savi-framework-06.xml">
-->
]>
<?xml-stylesheet type='text/xsl' href='http://xml.resource.org/authoring/rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
(Here they are set differently than their defaults in xml2rfc v1.32) -->
<!-- give errors regarding ID-nits and DTD validation -->
<?rfc strict="yes" ?>
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
(using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-ietf-sacm-use-cases-05" ipr="trust200902">
<!-- category values: std, bcp, info, exp, and historic
ipr values: full3667, noModification3667, noDerivatives3667
you can add the attributes updates="NNNN" and obsoletes="NNNN"
they will automatically be output with "(if approved)" -->
<!-- ***** FRONT MATTER ***** -->
<front>
<!-- The abbreviated title is used in the page header - it is only necessary if the
full title is longer than 39 characters -->
<title abbrev="Enterprise Use Cases for Security Assessment">Endpoint Security Posture Assessment - Enterprise Use
Cases</title>
<author fullname="David Waltermire" initials="D.W." surname="Waltermire">
<organization abbrev="NIST">National Institute of Standards and Technology</organization>
<address>
<postal>
<street>100 Bureau Drive</street>
<city>Gaithersburg</city>
<region>Maryland</region>
<code>20877</code>
<country>USA</country>
</postal>
<phone/>
<email>david.waltermire@nist.gov</email>
</address>
</author>
<author fullname="David Harrington" initials="D.B.H" surname="Harrington">
<organization>Effective Software</organization>
<address>
<postal>
<street>50 Harding Rd</street>
<city>Portsmouth</city>
<region>NH</region>
<code>03801</code>
<country>USA</country>
</postal>
<phone/>
<email>ietfdbh@comcast.net</email>
</address>
</author>
<date year="2013"/>
<!-- Meta-data Declarations -->
<area>Security</area>
<workgroup>Security Automation and Continuous Monitoring WG</workgroup>
<!-- WG name at the upperleft corner of the doc,
IETF is fine for individual submissions.
If this element is not present, the default is "Network Working Group",
which is used by the RFC Editor as a nod to the history of the IETF. -->
<keyword>security automation</keyword>
<keyword>continuous monitoring</keyword>
<keyword>endpoint</keyword>
<keyword>posture assessment</keyword>
<keyword>use case</keyword>
<keyword>asset management</keyword>
<keyword>configuration management</keyword>
<keyword>vulnerability management</keyword>
<keyword>content management</keyword>
<!-- Keywords will be incorporated into HTML output
files in a meta tag but they have no effect on text or nroff
output. If you submit your draft to the RFC Editor, the
keywords will be used for the search engine. -->
<abstract>
<t>This memo documents a sampling of use cases for securely aggregating configuration and
operational data and evaluating that data to determine an organization's security posture.
From these operational use cases, we can derive common functional capabilities and
requirements to guide development of vendor-neutral, interoperable standards for aggregating
and evaluating data relevant to security posture. </t>
</abstract>
</front>
<middle>
<section title="Introduction">
<t>Our goal with this document is to improve our agreement on which problems we're trying to
solve. We need to start with short, simple problem statements and discuss those by email and
in person. Once we agree on which problems we're trying to solve, we can move on to propose
various solutions and decide which ones to use.</t>
<t>This document describes example use cases for endpoint posture assessment for enterprises.
It provides a sampling of use cases for securely aggregating configuration and operational
data and evaluating that data to determine the security posture of individual endpoints, and,
in the aggregate, the security posture of an enterprise.</t>
<t>These use cases cross many IT security information domains. From these operational use
cases, we can derive common concepts, common information expressions, functional
capabilities and requirements to guide development of vendor-neutral, interoperable
standards for aggregating and evaluating data relevant to security posture.</t>
<t>Using this standard data, tools can analyze the state of endpoints, user activities and
behaviour, and evaluate the security posture of an organization. Common expression of
information should enable interoperability between tools (whether customized, commercial, or
freely available), and the ability to automate portions of security processes to gain
efficiency, react to new threats in a timely manner, and free up security personnel to work
on more advanced problems. </t>
<t>The goal is to enable organizations to make informed decisions that support organizational
objectives, to enforce policies for hardening systems, to prevent network misuse, to
quantify business risk, and to collaborate with partners to identify and mitigate threats. </t>
<t>It is expected that use cases for enterprises and for service providers will largely
overlap, but there are additional complications for service providers, especially in
handling information that crosses administrative domains.</t>
<t>The output of endpoint posture assessment is expected to feed into additional processes,
such as policy-based enforcement of acceptable state, verification and monitoring of
security controls, and compliance to regulatory requirements.</t>
</section>
<section title="Endpoint Posture Assessment" anchor="endpoint-posture-assessment">
<t>Endpoint posture assessment involves orchestrating and performing data collection and
evaluating the posture of a given endpoint. Typically, endpoint posture information is
gathered and then published to appropriate data repositories to make collected information
available for further analysis supporting organizational security processes.</t>
<t>Endpoint posture assessment typically includes: <list style="symbols">
<t>Collecting the attributes of a given endpoint;</t>
<t>Making the attributes available for evaluation and action; and</t>
<t>Verifying that the endpoint's posture is in compliance with enterprise standards and
policy.</t>
</list>
</t>
<t>As part of these activities it is often necessary to identify and acquire any supporting
content that is needed to drive data collection and analysis.</t>
<t>The following is a typical workflow scenario for assessing endpoint posture: <list
style="numbers">
<t>Some type of trigger initiates the workflow. For example, an operator or an application
might trigger the process with a request, or the endpoint might trigger the process
using an event-driven notification.<list style="empty">
<t>QUESTION: Since this is about security automation, can we drop the User and just
use Application? Is there a better term to use here? Once the policy is selected,
the rest seems like something we definitely would want to automate, so I dropped the
User part.</t>
</list>
</t>
<t>An operator/application selects one or more target endpoints to be assessed.</t>
<t>A operator/application selects which policies are applicable to the targets.</t>
<t>For each target:<list style="letters">
<t>The application determines which (sets of) posture attributes need to be collected
for evaluation. <list style="empty">
<t>QUESTION: It was suggested that mentioning several common acquisition methods,
such as local API, WMI, Puppet, DCOM, SNMP, CMDB query, and NEA, without forcing
any specific method would be good. I have concerns this could devolve into a
"what about my favorite?" contest. OTOH, the charter does specifically call for
use of existing standards where applicable, so the use cases document might be a
good neutral location for such information, and might force us to consider what
types of external interfaces we might need to support when we consider the
requirements. It appears that the generic workflow sequence would be a good
place to mention such common acquisition methods.</t>
</list>
</t>
<t>The application might retrieve previously collected information from a cache or
data store, such as a data store populated by an asset management system.</t>
<t>The application might establish communication with the target, mutually
authenticate identities and authorizations, and collect posture attributes from the
target.</t>
<t>The application might establish communication with one or more intermediary/agents,
mutually authenticate their identities and determine authorizations, and collect
posture attributes about the target from the intermediary/agents. Such agents might
be local or external.</t>
<t>The application communicates target identity and (sets of) collected attributes to
an evaluator, possibly an external process or external system.</t>
<!-- QUESTION: Is state evaluation part of this use case or UC3? -->
<t>The evaluator compares the collected posture attributes with expected values as
expressed in policies. <list style="empty">
<t>QUESTION: Evaluator generates a report or log or notification of some type?</t>
</list>
</t>
</list>
</t>
</list>
</t>
<section title="Use Cases" anchor="use-cases">
<t>The following subsections detail specific use cases for assessment planning, data
collection, analysis, and related operations pertaining to the publication and use of
supporting content.</t>
<section title="Define, Publish, Query and Retrieve Content" anchor="uc-content">
<t>This use case describes the need for content to be defined and published to a data
store, as well as queried and retrieved from the data store for the explicit use of
posture collection and evaluation. It is expected that multiple information models will
be supported to address the information needed to support the exchange of endpoint
metadata, and the collection and evaluation of endpoint posture attribute values. It is
likely that multiple data models will be used to express these information models
requiring specialized or extensible content data stores.</t>
<t>The building blocks of this use case are:<list style="hanging" hangIndent="6">
<t hangText="Content Definition:" anchor="bb-content-definition">Defining the content
to drive collection and evaluation. This may include evaluating existing stores of
content to find content to reuse and the creation of new content. Developed content
will be based on available data models which may be standardized or proprietary.</t>
<t hangText="Content Publication:" anchor="bb-content-publication">The capability to
publish content to a content data store for further use. Published content may be
made publicly available or may be based on an authorization decision using
authenticated credentials. As a result, the visibility of content to an operator or
application may be public, enterprise-scoped, private, or controlled within any
other scope.</t>
<t hangText="Content Query:" anchor="bb-content-query">An operator or application
should be able to query a content data store using a set of specified criteria. The
result of the query will be a listing matching the query. The query result listing
may contain publication metadata (e.g., create date, modified date, publisher, etc.)
and/or the full content, a summary, snippet, or the location to retrieve the
content.</t>
<!-- AM: How is this really different from Repository Content Query above? It seems the only difference is querying multiple repositories. -->
<t hangText="Content Retrieval:" anchor="bb-content-retrieval">The act of acquiring
one or more specific content entries. This capability is useful if the location of
the content is known a priori, perhaps as the result of request based on decisions
made using information from a previous query.</t>
<t hangText="Content Change Detection:" anchor="bb-content-change">An operator or
application needs to identify content of interest that is new, updated, or deleted
in a content data store which they have been authorized to access.</t>
</list>
</t>
<t>These building blocks are used to enable acquisition of various instances of content
based on specific data models that are used to drive assessment planning (see section
<xref target="uc-assessment-planning" format="counter"/>), posture attribute value
collection (see section <xref target="uc-posture-attribute-value-collection"
format="counter"/>), and posture evaluation (see section <xref
target="uc-posture-evaluation" format="counter"/>).</t>
</section>
<section title="Endpoint Identification and Assessment Planning"
anchor="uc-assessment-planning">
<t>This use case describes the process of discovering endpoints, understanding their
composition, identifying the desired state to assess against, and calculating what
posture attributes to collect to enable evaluation. This process may be a set of manual,
automated, or hybrid steps that are performed for each assessment.</t>
<t>The building blocks of this use case are:<list style="hanging" hangIndent="6">
<t hangText="Endpoint Discovery:">The purpose of discovery is to determine the type of
endpoint to be posture assessed.</t>
<t>QUESTION: Is it just the type? Or is it to identify what endpoint instances to
target for assessment using metadata such as the endpoint's organizationally
expected type (e.g., expected function/role, etc.)</t>
<!-- AM: Trying to find tidy terms. Inventory is generic, endpoint component inventory tries to convey some meaning where an endpoint component could be HW or SW. -->
<t hangText="Identify Endpoint Targets">Determine the candidate endpoint target(s) to
perform the assessment against. Depending on the assessment trigger, a single
endpoint may be targeted or multiple endpoints may be targeted based on discovered
endpoint metadata. This may be driven by content that describes the applicable
targets for assessment. In this case the Content Query and/or Content Retrieval
building blocks (see section <xref target="uc-content" format="counter"/>) may be
used to acquire this content.</t>
<t hangText="Endpoint Component Inventory:">To determine what applicable desired
states should be assessed, it is first necessary to acquire the inventory of
software, hardware, and accounts associated with the targeted endpoint(s). If the
assessment of the endpoint is not dependant on the component inventory, then this
capability is not required for use in performing the assessment. This process can be
treated as a collection use case for specific posture attributes. In this case the
building blocks for <xref target="uc-posture-attribute-value-collection"
format="title"/> (see section <xref target="uc-posture-attribute-value-collection"
format="counter"/>) can be used.</t>
<t hangText="Posture Attribute Identification:">Once the endpoint targets and component
inventory is known, it is then necessary to calculate what posture attributes are
required to be collected to perform the evaluation. If this is driven by content,
then the Content Query and/or Content Retrieval building blocks (see section <xref
target="uc-content" format="counter"/>) may be used to acquire this content.</t>
</list>
</t>
<t>QUESTION: Are we missing a building block that determines what previously collected
data, if any, is suitable for evaluation and what data needs to be actually
collected?</t>
<t>At this point the set of posture attribute values to use for evaluation are known and
they can be collected if necessary (see section <xref
target="uc-posture-attribute-value-collection" format="counter"/>).</t>
</section>
<section title="Endpoint Posture Attribute Value Collection"
anchor="uc-posture-attribute-value-collection">
<t>This use case describes the process of collecting a set of posture attribute values
related to one or more endpoints. This use case can be initiated by a variety of
triggers including:<list style="numbers">
<t>A posture change or significant event on the endpoint.</t>
<t>A network event (e.g., endpoint connects to a network/VPN, specific netflow is
detected).</t>
<t>Due to a scheduled or ad hoc collection task.</t>
</list>
</t>
<t>The building blocks of this use case are:<list style="hanging" hangIndent="6">
<t hangText="Collection Content Acquisition:">If content is required to drive the
collection of posture attributes values, this capability is used to acquire this
content from one or more content data stores. Depending on the trigger, the specific
content to acquire might be known. If not, it may be necessary to determine the
content to use based on the component inventory or other assessment criteria. The
Content Query and/or Content Retrieval building blocks (see section <xref
target="uc-content" format="counter"/>) may be used to acquire this content.</t>
<t hangText="Posture Attribute Value Collection:">The accumulation of posture
attribute values. This may be based on collection content that is associated with
the posture attributes.</t>
</list>
</t>
<t>Once the posture attribute values are collected, they may be persisted for later use or
they may be immediately used for posture evaluation.</t>
</section>
<section title="Posture Evaluation" anchor="uc-posture-evaluation">
<t>This use case describes the process of evaluating collected posture attribute values
representing actual endpoint state against the expected state selected for the
assessment. This use case can be initiated by a variety of triggers including:<list
style="numbers">
<t>A posture change or significant event on the endpoint.</t>
<t>A network event (e.g., endpoint connects to a network/VPN, specific netflow is
detected).</t>
<t>Due to a scheduled or ad hoc evaluation task.</t>
</list></t>
<t>The building blocks of this use case are:<list style="hanging" hangIndent="6">
<t hangText="Posture Attribute Value Query:">If previously collected posture attribute
values are needed, the appropriate data stores are queried to retrieve them. If all
posture attribute values are provided directly for evaluation, then this capability
may not be needed.</t>
<t hangText="Evaluation Content Acquisition:">If content is required to drive the
evaluation of posture attributes values, this capability is used to acquire this
content from one or more content data stores. Depending on the trigger, the specific
content to acquire might be known. If not, it may be necessary to determine the
content to use based on the component inventory or other assessment criteria. The
Content Query and/or Content Retrieval building blocks (see section <xref
target="uc-content" format="counter"/>) may be used to acquire this content.</t>
<t hangText="Posture Attribute Evaluation:">The comparison of posture attribute values
against their expected results as expressed in the specified content. The result of
this comparison is output as a set of posture evaluation results.</t>
</list>
</t>
<t>Completion of this process represents a complete assessment cycle as defined in section
<xref target="endpoint-posture-assessment"/>.</t>
</section>
<section title="Mining the Database" anchor="uc-mining-database">
<t>This use case describes the need to analyze previously collected posture attribute
values from one or more endpoints. This is an alternate use case to <xref
target="uc-posture-evaluation" format="title"/> (see section <xref
target="uc-posture-evaluation" format="counter"/> that uses collected posture
attributes values for analysis processes that may do more than evaluating expected vs.
actual state(s).</t>
<t>The building blocks of this use case are:<list style="hanging" hangIndent="6">
<t hangText="Query:">Query a data store for specific posture attribute values.</t>
<t hangText="Change Detection:">An operator should have a mechanism to detect the
availability of new or changes to existing posture attribute values. The timeliness
of detection may vary from immediate to on demand. Having the ability to filter what
changes are detected will allow the operator to focus on the changes that are
relevant to their use.</t>
</list>
</t>
<t>QUESTION: Does this warrant a separate use case, or should this be incorporated into
the previous use case?</t>
</section>
</section>
<section title="Usage Scenarios">
<t>In this section, we describe a number of usage scenarios that utilize aspects of endpoint
posture assessment. These are examples of common problems that can be solved with the
building blocks defined above.</t>
<section title="Definition and Publication of Automatable Configuration Guides">
<t>A vendor manufactures a number of specialized endpoint devices. They also develop and
maintain an operating system for these devices that enables end-user organizations to
configure a number of security and operational settings. As part of their customer
support activities, they publish a number of secure configuration guides that provide
minimum security guidelines for configuring their devices.</t>
<t>Each guide they produce applies to a specific model of device and version of the
operating system and provides a number of specialized configurations depending on the
devices intended function and what add-on hardware modules and software licenses are
installed on the device. To enable their customers to evaluate the security posture of
their devices to ensure that all appropriate minimal security settings are enabled, they
publish an automatable configuration checklist using a popular data format that defines
what settings to collect using a network management protocol and appropriate values for
each setting. They publish these checklist to a public content repository that customers
can query to retrieve applicable checklist for their deployed specialized endpoint
devices.</t>
<t>Automatable configuration checklist could also come from sources other than a device
vendor, such as industry groups or regulatory authorities, or enterprises could develop
their own checklists.</t>
<t>This usage scenario employs the following building blocks defined in <xref
target="uc-content"/> above:<list style="hanging" hangIndent="6">
<t hangText="Content Definition:">To allow content to be defined using standardized or
proprietary data models that will drive Collection and Evaluation.</t>
<t hangText="Content Publication:">Providing a mechanism to publish created content to
a content data store.</t>
<t hangText="Content Query:">To locate and select existing content that may be
reused.</t>
<t hangText="Content Retrieval">To retrieve specific content from a content data store
for editing.</t>
</list>
</t>
<t>While each building block can be used in a manual fashion by a human operator, it is
also likely that these capabilities will be implemented together in some form of a
content editor or generator application.</t>
</section>
<section title="Automated Checklist Verification" anchor="us-checklist-verification">
<t>A financial services company operates a heterogeneous IT environment. In support of
their risk management program, they utilize vendor provided automatable security
configuration checklists for each operating system and application used within their IT
environment. Multiple checklists are used from different vendors to insure adequate
coverage of all IT assets.</t>
<t>To identify what checklists are needed, they use automation to gather an inventory of
the software versions utilized by all IT assets in the enterprise. This data gathering
will involve querying existing data stores of previously collected endpoint software
inventory posture data and actively collecting data from reachable endpoints as needed
utilizing network and systems management protocols. Previously collected data may be
provided by periodic data collection, network connection-driven data collection, or
ongoing event-driven monitoring of endpoint posture changes.</t>
<t>Using the gathered hardware and software inventory data and associated asset management
data that may indicate the organizational defined functions of each endpoint, checklist
content is queried, located and downloaded from the appropriate vendor and 3rd-party
content repositories for the appropriate checklists. This content is cached locally to
reduce the need to download the checklist content multiple times.</t>
<t>Driven by the setting data provided in the checklist, a combination of existing
configuration data stores and data collection methods are used to gather the appropriate
posture attributes from each endpoint. Specific data is gathered based on the defined
enterprise function and software inventory of each endpoint. The data collection paths
used to collect software inventory posture will be used again for this purpose. Once the
data is gathered, the actual state is evaluated against the expected state criteria in
each applicable checklist. The results of this evaluation are provided to appropriate
operators and applications to drive additional business logic.</t>
<t>Checklists could include searching for indicators of compromise on the endpoint (e.g.,
file hashes); identifying malicious activity (e.g. command and control traffic);
detecting presence of unauthorized/malicious software, hardware, and configuration
items; and other indicators.</t>
<t>A checklist can be assessed as a whole, or a specific subset of the checklist can be
assessed resulting in partial data collection and evaluation.</t>
<t>Checklists could also come from sources other than the application or OS vendor, such
as industry groups or regulatory authorities, or enterprises could develop their own
checklists.</t>
<t>While specific applications for checklists results are out-of-scope for current SACM
efforts, how the data is used may illuminate specific latency and bandwidth
requirements. For this purpose use of checklist assessment results may include, but are
not limited to:<list style="symbols">
<t>Detecting endpoint posture deviations as part of a change management program to
include changes to hardware and software inventory including patches, changes to
configuration items, and other posture aspects.</t>
<t>Determining compliance with organizational policies governing endpoint posture.</t>
<t>Searching for current and historic signs of infection by malware and determining
the scope of infection within an enterprise.</t>
<t>Informing configuration management, patch management, and vulnerability mitigation
and remediation decisions.</t>
<t>Detecting performance, attack and vulnerable conditions that warrant additional
network diagnostics, monitoring, and analysis.</t>
<t>Informing network access control decision making for wired, wireless, or VPN
connections.</t>
</list>
</t>
<t>This usage scenario employs the following building blocks defined in <xref
target="uc-content"/> above:<list style="hanging" hangIndent="6">
<t hangText="Endpoint Discovery:">The purpose of discovery is to determine the type of
endpoint to be posture assessed.</t>
<t hangText="Identify Endpoint Targets:">To identify what potential endpoint targets
the checklist should apply to based on organizational policies.</t>
<t hangText="Endpoint Component Inventory:">Collecting and consuming the software and
hardware inventory for the target endpoints.</t>
<t hangText="Posture Attribute Identification:">To determine what data needs to be
collected to support evaluation, the checklist is evaluated against the component
inventory and other endpoint metadata to determine the set of posture attribute
values that are needed.</t>
<t hangText="Collection Content Acquisition:">Based on the identified posture
attributes, the application will query appropriate content data stores to find the
"applicable" data collection content for each endpoint in question.</t>
<t hangText="Posture Attribute Value Collection:">For each endpoint, the values for
the required posture attributes are collected.</t>
<t hangText="Posture Attribute Value Query:">If previously collected posture attribute
values are used, they are queried from the appropriate data stores for the target
endpoint(s).</t>
<t hangText="Evaluation Content Acquisition:">Any content that is needed to support
evaluation is queried and retrieved.</t>
<t hangText="Posture Attribute Evaluation:">The resulting posture attribute values
from previous Collection processes are evaluated using the evaluation content to
provide a set of posture results.</t>
</list>
</t>
</section>
<section title="Detection of Posture Deviations">
<t>Example corporation has established secure configuration baselines for each different
type of endpoint within their enterprise including: network infrastructure, mobile,
client, and server computing platforms. These baselines define an approved list of
hardware, software (i.e., operating system, applications, and patches), and associated
required configurations. When an endpoint connects to the network, the appropriate
baseline configuration is communicated to the endpoint based on its location in the
network, the expected function of the device, and other asset management data. It is
checked for compliance with the baseline indicating any deviations to the device's
operators. Once the baseline has been established, the endpoint is monitored for any
change events pertaining to the baseline on an ongoing basis. When a change occurs to
posture defined in the baseline, updated posture information is exchanged allowing
operators to be notified and/or automated action to be taken.</t>
<t>Like the <xref target="us-checklist-verification" format="title"/> usage scenario (see
section <xref target="us-checklist-verification" format="counter"/>), this usage
scenario supports assessment of checklists. It differs from that scenario by monitoring
for specific endpoint posture changes on an ongoing basis. When the endpoint detects a
posture change, an alert is generated identifying the specific changes in posture
allowing a delta assessment to be performed instead of a full assessment in the
previous case. This usage scenario employs the same building blocks as <xref
target="us-checklist-verification" format="title"/> (see section <xref
target="us-checklist-verification" format="counter"/>). It differs slightly in how it
uses the following building blocks:<list style="hanging" hangIndent="6">
<t hangText="Endpoint Component Inventory:">Additionally, changes to the hardware and
software inventory are monitored, with changes causing alerts to be issued.</t>
<t hangText="Posture Attribute Value Collection:">After the initial assessment,
posture attributes are monitored for changes. If any of the selected posture
attribute values change, an alert is issued.</t>
<t hangText="Posture Attribute Value Query:">The previous state of posture attributes
are tracked, allowing changes to be detected.</t>
<t hangText="Posture Attribute Evaluation:">After the initial assessment, a partial
evaluation is performed based on changes to specific posture attributes.</t>
</list>
</t>
<t>This usage scenario highlights the need to query a data store to prepare a compliance
report for a specific endpoint and also the need for a change in endpoint state to
trigger Collection and Evaluation.</t>
</section>
<section title="Endpoint Information Analysis and Reporting">
<t>Freed from the drudgery of manual endpoint compliance monitoring, one of the security
administrators at Example Corporation notices (not using SACM standards) that five
endpoints have been uploading lots of data to a suspicious server on the Internet. The
administrator queries data stores for specific endpoint posture to see what software is
installed on those endpoints and finds that they all have a particular program
installed. She then queries the appropriate data stores to see which other endpoints
have that program installed. All these endpoints are monitored carefully (not using SACM
standards), which allows the administrator to detect that the other endpoints are also
infected.</t>
<t>This is just one example of the useful analysis that a skilled analyst can do using
data stores of endpoint posture.</t>
<t>This usage scenario employs the following building blocks defined in <xref
target="uc-content"/> above:<list style="hanging" hangIndent="6">
<t hangText="Posture Attribute Value Query:">Previously collected posture attribute
values are queried from the appropriate data stores for the target
endpoint(s).</t>
<t>QUESTION: Should we include other building blocks here?</t>
</list>
</t>
<t>This usage scenario highlights the need to query a repository for attributes to see
which attributes certain endpoints have in common.</t>
</section>
<section title="Asynchronous Compliance/Vulnerability Assessment at Ice Station Zebra">
<t>A university team receives a grant to do research at a government facility in the
arctic. The only network communications will be via an intermittent low-speed
high-latency high-cost satellite link. During their extended expedition they will need
to show continue compliance with the security policies of the university, the
government, and the provider of the satellite network as well as keep current on
vulnerability testing. Interactive assessments are therefore not reliable, and since the
researchers have very limited funding they need to minimize how much money they spend on
network data.</t>
<t>Prior to departure they register all equipment with an asset management system owned by
the university, which will also initiate and track assessments.</t>
<t>On a periodic basis -- either after a maximum time delta or when the content repository
has received a threshold level of new vulnerability definitions -- the university uses
the information in the asset management system to put together a collection request for
all of the deployed assets that encompasses the minimal set of artifacts necessary to
evaluate all three security policies as well as vulnerability testing.</t>
<t>In the case of new critical vulnerabilities this collection request consists only of
the artifacts necessary for those vulnerabilities and collection is only initiated for
those assets that could potentially have a new vulnerability.</t>
<t>[Optional] Asset artifacts are cached in a local CMDB. When new vulnerabilities are
reported to the content repository, a request to the live asset is only done if the
artifacts in the CMDB are incomplete and/or not current enough.</t>
<t>The collection request is queued for the next window of connectivity. The deployed
assets eventually receive the request, fulfill it, and queue the results for the next
return opportunity.</t>
<t>The collected artifacts eventually make it back to the university where the level of
compliance and vulnerability expose is calculated and asset characteristics are compared
to what is in the asset management system for accuracy and completeness.</t>
<t>Like the <xref target="us-checklist-verification" format="title"/> usage scenario (see
section <xref target="us-checklist-verification" format="counter"/>), this usage
scenario supports assessment of checklists. It differs from that scenario in how
content, collected posture values, and evaluation results are exchanged due to bandwidth
limitations and availability. This usage scenario employs the same building blocks as
<xref target="us-checklist-verification" format="title"/> (see section <xref
target="us-checklist-verification" format="counter"/>). It differs slightly in how it
uses the following building blocks:<list style="hanging" hangIndent="6">
<t hangText="Endpoint Component Inventory:">It is likely that the component inventory
will not change. If it does, this information will need to be batched and
transmitted during the next communication window.</t>
<t hangText="Collection Content Acquisition:">Due to intermittent communication
windows and bandwidth constraints, changes to collection content will need to
batched and transmitted during the next communication window. Content will need to
be cached locally to avoid the need for remote communications.</t>
<t hangText="Posture Attribute Value Collection:">The specific posture attribute
values to be collected are identified remotely and batched for collection during the
next communication window. If a delay is introduced for collection to complete,
results will need to be batched and transmitted in the same way.</t>
<t hangText="Posture Attribute Value Query:">Previously collected posture attribute
values will be stored in a remote data store for use at the university</t>
<t hangText="Evaluation Content Acquisition:">Due to intermittent communication
windows and bandwidth constraints, changes to evaluation content will need to
batched and transmitted during the next communication window. Content will need to
be cached locally to avoid the need for remote communications.</t>
<t hangText="Posture Attribute Evaluation:">Due to the caching of posture attribute
values and evaluation content, evaluation may be performed at both the university
campus as well as the satellite site.</t>
</list>
</t>
<t>This usage scenario highlights the need to support low-bandwidth, intermittent, or
high-latency links.</t>
</section>
<section title="Identification and Retrieval of Repository Content">
<t>In preparation for performing an assessment, an operator or application will need
to identify one or more content data stores that contain the content entries necessary
to perform data collection and evaluation tasks. The location of a given content entry
will either be known a priori or known content repositories will need to be queried to
retrieve applicable content.</t>
<t>To query content it will be necessary to define a set of search criteria. This criteria
will often utilize a logical combination of publication metadata (e.g. publishing
identity, create time, modification time) and content-specific criteria elements. Once
the criteria is defined, one or more content data stores will need to be queried
generating a result set. Depending on how the results are used, it may be desirable to
return the matching content directly, a snippet of the content matching the query, or a
resolvable location to retrieve the content at a later time. The content matching the
query will be restricted based the authorized level of access allowed to the
requester.</t>
<t>If the location of content is identified in the query result set, the content will be
retrieved when needed using one or more content retrieval requests. A variation on this
approach would be to maintain a local cache of previously retrieved content. In this
case, only content that is determined to be stale by some measure will be retrieved from
the remote content store.</t>
<t>Alternately, content can be discovered by iterating over content published with a given
context within a content repository. Specific content can be selected and retrieved as
needed.</t>
<t>This usage scenario employs the following building blocks defined in <xref
target="uc-content"/> above:<list style="hanging" hangIndent="6">
<t hangText="Content Query:">Enables an operator or application to query one or more
content data stores for content using a set of specified criteria.</t>
<t hangText="Content Retrieval:">If content locations are returned in the query result
set, then specific content entries can be retrieved and possibly cached locally.</t>
</list>
</t>
</section>
<section title="Content Change Detection">
<t>An operator or application may need to identify new, updated, or deleted content in a
content repository for which they have been authorized to access. This may be achieved
by querying or iterating over content in a content repository, or through a notification
mechanism that alerts to changes made to a content repository.</t>
<t>Once content changes have been determined, data collection and evaluation activities
may be triggered.</t>
<t>This usage scenario employs the following building blocks defined in <xref
target="uc-content"/> above:<list style="hanging" hangIndent="6">
<t hangText="Content Change Detection:">Allows an operator or application to identify
content changes in a content data store which they have been authorized to
access.</t>
<t hangText="Content Retrieval:">If content locations are provided by the change
detection mechanism, then specific content entries can be retrieved and possibly
cached locally.</t>
</list>
</t>
</section>
<section title="Others...">
<t>Additional use cases will be identified as we work through other domains.</t>
</section>
</section>
</section>
<section anchor="IANA" title="IANA Considerations">
<t>This memo includes no request to IANA.</t>
</section>
<section anchor="Security" title="Security Considerations">
<t>This memo documents, for Informational purposes, use cases for security automation. While
it is about security, it does not affect security.</t>
</section>
<section title="Acknowledgements">
<t>The National Institute of Standards and Technology (NIST) and/or the MITRE Corporation have
developed specifications under the general term "Security Automation" including languages,
protocols, enumerations, and metrics.</t>
<t>Adam Montville edited early versions of this draft.</t>
<t>Kathleen Moriarty, and Stephen Hanna contributed text describing the scope of the
document.</t>
<t>Gunnar Engelbach, Steve Hanna, Chris Inacio, Kent Landfield, Lisa Lorenzin, Adam Montville,
Kathleen Moriarty, Nancy Cam-Winget, and Aron Woland provided use cases text for various
revisions of this draft.</t>
</section>
<section title="Change Log">
<section title="-04- to -05-">
<t>Changes in this revision are focused on section 2 and the subsequent subsections:<list
style="symbols">
<t>Moved existing use cases to a subsection titled "Usage Scenarios".</t>
<t>Added a new subsection titled "Use Cases" to describe the common use cases and
building blocks used to address the "Usage Scenarios". The new use cases are:<list
style="symbols">
<t>Define, Publish, Query and Retrieve Content</t>
<t>Endpoint Identification and Assessment Planning</t>
<t>Endpoint Posture Attribute Value Collection</t>
<t>Posture Evaluation</t>
<t>Mining the Database</t>
</list>
</t>
<t>Added a listing of building blocks used for all usage scenarios.</t>
<t>Combined the following usage scenarios into "Automated Checklist Verification":
"Organizational Software Policy Compliance", "Search for Signs of Infection",
"Vulnerable Endpoint Identification", "Compromised Endpoint Identification",
"Suspicious Endpoint Behavior", "Traditional endpoint assessment with stored results",
"NAC/NAP connection with no stored results using an endpoint evaluator", and "NAC/NAP
connection with no stored results using a third-party evaluator".</t>
<t>Created new usage scenario "Identification and Retrieval of Repository Content" by
combining the following usage scenarios: "Repository Interaction - A Full Assessment"
and "Repository Interaction - Filtered Delta Assessment"</t>
<t>Renamed "Register with repository for immediate notification of new security
vulnerability content that match a selection filter" to "Content Change Detection" and
generalized the description to be neutral to implementation approaches.</t>
<t>Removed out-of-scope usage scenarios: "Remediation and Mitigation" and "Direct Human
Retrieval of Ancillary Materials"</t>
</list>
</t>
<t>Updated acknowledgements to recognize those that helped with editing the use case text.</t>
</section>
<section title="-03- to -04-">
<t>Added four new use cases regarding content repository.</t>
</section>
<section title="-02- to -03-">
<t>Expanded the workflow description based on ML input.</t>
<t>Changed the ambiguous "assess" to better separate data collection from evaluation.</t>
<t>Added use case for Search for Signs of Infection.</t>
<t>Added use case for Remediation and Mitigation.</t>
<t>Added use case for Endpoint Information Analysis and Reporting.</t>
<t>Added use case for Asynchronous Compliance/Vulnerability Assessment at Ice Station
Zebra.</t>
<t>Added use case for Traditional endpoint assessment with stored results.</t>
<t>Added use case for NAC/NAP connection with no stored results using an endpoint
evaluator.</t>
<t>Added use case for NAC/NAP connection with no stored results using a third-party
evaluator.</t>
<t>Added use case for Compromised Endpoint Identification.</t>
<t>Added use case for Suspicious Endpoint Behavior.</t>
<t>Added use case for Vulnerable Endpoint Identification.</t>
<t>Updated Acknowledgements</t>
<t/>
</section>
<section title="-01- to -02-">
<t>Changed title</t>
<t>removed section 4, expecting it will be moved into the requirements document.</t>
<t>removed the list of proposed capabilities from section 3.1</t>
<t>Added empty sections for Search for Signs of Infection, Remediation and Mitigation, and
Endpoint Information Analysis and Reporting.</t>
<t>Removed Requirements Language section and rfc2119 reference.</t>
<t>Removed unused references (which ended up being all references).</t>
</section>
<section title="-00- to -01-">
<t>
<list style="symbols">
<t>Work on this revision has been focused on document content relating primarily to use
of asset management data and functions.</t>
<t>Made significant updates to section 3 including:<list style="symbols">
<t>Reworked introductory text.</t>
<t>Replaced the single example with multiple use cases that focus on more discrete
uses of asset management data to support hardware and software inventory, and
configuration management use cases.</t>
<t>For one of the use cases, added mapping to functional capabilities used. If
popular, this will be added to the other use cases as well.</t>
<t>Additional use cases will be added in the next revision capturing additional
discussion from the list.</t>
</list></t>
<t>Made significant updates to section 4 including:<list style="symbols">
<t>Renamed the section heading from "Use Cases" to "Functional Capabilities" since
use cases are covered in section 3. This section now extrapolates specific
functions that are needed to support the use cases.</t>
<t>Started work to flatten the section, moving select subsections up from under
asset management.</t>
<t>Removed the subsections for: Asset Discovery, Endpoint Components and Asset
Composition, Asset Resources, and Asset Life Cycle.</t>
<t>Renamed the subsection "Asset Representation Reconciliation" to "Deconfliction of
Asset Identities".</t>
<t>Expanded the subsections for: Asset Identification, Asset Characterization, and
Deconfliction of Asset Identities.</t>
<t>Added a new subsection for Asset Targeting.</t>
<t>Moved remaining sections to "Other Unedited Content" for future updating.</t>
</list></t>
</list>
</t>
</section>
<section title="draft-waltermire-sacm-use-cases-05 to draft-ietf-sacm-use-cases-00">
<t>
<list style="symbols">
<t>Transitioned from individual I/D to WG I/D based on WG consensus call.</t>
<t>Fixed a number of spelling errors. Thank you Erik!</t>
<t>Added keywords to the front matter.</t>
<t>Removed the terminology section from the draft. Terms have been moved to:
draft-dbh-sacm-terminology-00</t>
<t>Removed requirements to be moved into a new I/D.</t>
<t>Extracted the functionality from the examples and made the examples less
prominent.</t>
<t>Renamed "Functional Capabilities and Requirements" section to "Use Cases". <list
style="symbols">
<t>Reorganized the "Asset Management" sub-section. Added new text throughout. <list
style="symbols">
<t>Renamed a few sub-section headings.</t>
<t>Added text to the "Asset Characterization" sub-section.</t>
</list>
</t>
</list>
</t>
<t>Renamed "Security Configuration Management" to "Endpoint Configuration Management".
Not sure if the "security" distinction is important. <list style="symbols">
<t>Added new sections, partially integrated existing content.</t>
<t>Additional text is needed in all of the sub-sections.</t>
</list>
</t>
<t>Changed "Security Change Management" to "Endpoint Posture Change Management". Added
new skeletal outline sections for future updates.</t>
</list>
</t>
</section>
<section title="waltermire -04- to -05-">
<t><list style="symbols">
<t> Are we including user activities and behavior in the scope of this work? That seems
to be layer 8 stuff, appropriate to an IDS/IPS application, not Internet stuff. </t>
<t>I removed the references to what the WG will do because this belongs in the charter,
not the (potentially long-lived) use cases document. I removed mention of charter
objectives because the charter may go through multiple iterations over time; there is
a website for hosting the charter; this document is not the correct place for that
discussion.</t>
<t>I moved the discussion of NIST specifications to the acknowledgements section.</t>
<t>Removed the portion of the introduction that describes the chapters; we have a table
of concepts, and the existing text seemed redundant.</t>
<t>Removed marketing claims, to focus on technical concepts and technical analysis, that
would enable subsequent engineering effort.</t>
<t>Removed (commented out in XML) UC2 and UC3, and eliminated some text that referred to
these use cases. </t>
<t>Modified IANA and Security Consideration sections. </t>
<t>Moved Terms to the front, so we can use them in the subsequent text. </t>
<t>Removed the "Key Concepts" section, since the concepts of ORM and IRM were not
otherwise mentioned in the document. This would seem more appropriate to the arch doc
rather than use cases.</t>
<t>Removed role=editor from David Waltermire's info, since there are three editors on
the document. The editor is most important when one person writes the document that
represents the work of multiple people. When there are three editors, this role
marking isn't necessary.</t>
<t>Modified text to describe that this was specific to enterprises, and that it was
expected to overlap with service provider use cases, and described the context of this
scoped work within a larger context of policy enforcement, and verification.</t>
<t>The document had asset management, but the charter mentioned asset, change,
configuration, and vulnerability management, so I added sections for each of those
categories.</t>
<t>Added text to Introduction explaining goal of the document.</t>
<t>Added sections on various example use cases for asset management, config management,
change management, and vulnerability management.</t>
</list></t>
</section>
</section>
</middle>
<!-- *****BACK MATTER ***** -->
<back>
<!-- References split into informative and normative -->
<!-- There are 2 ways to insert reference entries from the citation libraries:
1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
(for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")
Both are cited textually in the same manner: by using xref elements.
If you use the PI option, xml2rfc will, by default, try to find included files in the same
directory as the including file. You can also define the XML_LIBRARY environment variable
with a value containing a set of directories to search. These can be either in the local
filing system or remote ones accessed by http (http://domain/dir/... ).-->
<references title="Normative References">
&RFC2119;
</references>
<references title="Informative References">
&RFC2865;
<!--
&I-D.draft-ietf-nea-pt-eap-09;
&I-D.draft-ietf-netmod-interfaces-cfg-12;
&I-D.draft-ietf-netmod-system-mgmt-08;
&I-D.draft-ietf-savi-framework-06;
&RFC3535;
&RFC3552;
&RFC4949;
&RFC5209;
&RFC5226;
&RFC5792;
&RFC5793;
&RFC6733;
-->
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-24 07:28:20 |