SACM | J. Schaad |
Internet-Draft | August Cellars |
Intended status: Informational | D. Waltermire |
Expires: May 4, 2017 | National Institute of Standards and Technology |
October 31, 2016 |
Prospective Architecture for SACM
draft-schaad-sacm-architecture-00
This document describes the high level architecture for Security Automation and Continuous Monitoring (SACM). The architecture identifies the components that provide for the collection, storage, dissemination, and evaluation of posture information. This architecture also describes the interfaces and associated operations that define the interactions between these components. This information will inform future engineering work around identifying existing standards for collecting, storing, disseminating, and evaluating endpoint posture information. This architecture will also help in identifying standardization gaps that require new engineering effort.
Security practitioners need to request, analyze, and aggregate posture information from disparate sources that use differing means to identify endpoints, hardware, software, and configurations. This task is made harder by the large number of different protocols and formats needed to bring together all of this information into a single view. This architecture provides a means to automatically gather posture data together for standardized dissemination to downstream components. This allows security practitioners that leverage this architecture to focus on managing security problems, not data.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 4, 2017.
Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
This document represents some views of the authors but should not be considered to be the opinions of them either individually or collectively. The document is designed both to clarify the thinking of the authors as well as to create some discussion on what the architecture looks like. As such, it is entirely reasonable that section of the document (i.e. the one on the IM) should be combined, removed or replaced. This can be either because they do not belong in this document or because they are just wrong.
Another aim of the document is to clarify what pieces of the work may need to be done in the future as this may help clarify some of the dicussions are underway or have been completed. This is the aim of the list of protocols associated with a component. With this, we can perhaps start looking at what DM(s) are doing when they are sending data.
Jim: Part of the questions that would need to be addressed before publication is the audience of the document. It is my personal feeling that the document should be sufficently complete that it can be handed to a person who is not in the community, and they should be able to understand all of the pieces and how they interact.
To manage information system security risk, network operators must know the operational state of the endpoints they manage, and must be able to assess known vulnerabilities against this operational state to understand potential security risks. This helps the network operator to determine which threats a given endpoint might be subject to, and supports decision making around actions that mitigate the associated risk. Vulnerability assessment is an example of this type of analysis, where endpoint software inventory is compared with known vulnerable software versions reported by software vendors and vulnerability researchers to determine which endpoints have vulnerable software. Knowledge of vulnerable software on endpoints can then drive software patching activities, reducing the attack surface of the network. Additionally, many organizations develop compliance requirements based on their understanding of security risks. These compliance requirements, also called policies, define what software may be installed on a given endpoint and how that software must be configured to achieve a sufficient level of security risk reduction for the organization. In both cases, an organization needs to have an up-to-date view of the operational state of the endpoints connected to their networks and accessing their information systems.
Understanding the operational state of an endpoint (hereafter referred to as "endpoint posture") requires the ability to collect and evaluate endpoint posture information as posture changes occur. In order to make decisions quickly to prevent, deflect, or mitigate an attack, network operators must be able to collect, disseminate, and evaluate posture information within narrow timeframes. Making decisions quickly relies on automating posture collection and evaluation processes so that network operators can identify endpoints, software, and software configurations in a meaningful and enduring way that is suitable for trending and longer-term analysis. This document describes a suitable architecture that supports automated collection, storage, dissemination, and evaluation of endpoint posture information.
Still needs text dealing with other uses.
There is an IM and a DM. Some differences between these are found in [RFC3444].
The SACM architecture is made up of a number of different entities each of which supports one or more roles. A picture of what roles can exist can be found in Figure 1.
----!----1----!----2----!----3----!----4----!----5----!----6----!- +-----------+ +---------------+ +------------+ +-------+ | Raw | | | | | | | | Data | | Authenticator | | Authorizor | | Data | | Collector | | | | | | Store | +-----------+ +---------------+ +------------+ +-------+ | | | / +-----------+ +-----------+ | SACM |- /------\ -| Directory | | Collector | / SACM \ +-----------+ +-----------+ / \ | | +-------------+ +--------+ \ CLOUD / -| Aggregators | | SACM |----- \ / +-------------+ | Proxy | \------/ +--------+ +------------+ | | | | Evaluators | /-----------\ +------------+ +-----------+ +------------+ | External | | Policy | | External | | SACM | | Management | | Event | | Cloud | +------------+ | Processor | \-----------/ +-----------+
Figure 1: SACM Architecture
A description of the different roles in the picture above is as follows:
In many cases it is not always clear where a single service falls. A simple example of this is where the NEA protocol would fit into the picture. NEA can be treated either as an internal collector or as an external collector depending on what is being collected and how the observer feels about the world. Many of the core things that NEA collects today are not directly mapped to the SACM Information Model without some massaging, as such it is reasonable to look at this as being an external collector with the NEA server being co-resident with the SACM External Collector. This entity would take the NEA data, convert it into the SACM IM, and then publish it using one of the SACM DMs. On the other hand, it is also possible that NEA would collect data that corresponds directly to a SACM IM and return the data already encoded in a SACM DM. In this case, it would make sense to consider the NEA client as being a SACM Internal collector which publishes using NEA as the publishing protocol and the ENA server being either a proxy or a data store.
In many cases more than one role will be combined into a single entity. In this section a view of how roles might be combined together to provide support as a proxy for the Ice Station Zebra use case in [RFC7632]. In this scenario, the enterprise has two different SACM sub-systems. One sub-system is at the main enterprise and the other sub-system is at Zebra. There is not a constant high-speed connection between the two sub-systems, instead data is exchanged an intermittent, low-speed, high-latency link.
The proxy role is the one that sits between the two subsystems, that is what it is designed for. Due to the link, one would have two different proxies one on either side of the link. The entity that contains the proxy may additionally have the following roles:
The collection of data in the SACM world is one of the major issues that needs to be dealt with. For this reason we drill down into that problem here.
When dealing with just the issue of collcition, the SACM architecture can be thought of as having a left-hand side and a right-hand side, illustrated by the dotted line in Figure 2. The left-hand side describes how management protocols can be used to allow a Collection Controller (CC) [CREF1]JLS: This is equavalent to a SACM External Collector. Does that mean we should rename one or other? to choreograph the collection of endpoint posture from a set of target endpoints through posture change subscriptions or direct requests, and for endpoints to report posture information based on these collection requests. The left-hand side of the architecture is built upon existing endpoint management protocols; however, new protocols are needed to separate out the evaluation and collection capabilities defined by some of these protocols (e.g., NEA).
| +----------+ | | | | +-----------+ | Target +---------+ | +---------------------------> | | Endpoint | | | | | Datastore | | | | | | +------------> | +----------+ +v---------v-+ | | | | | {-------v---} +-----^-----+ +----------+ | | { } | | | | Collection | { Messaging } | | Target <--------> Controller <--> Protocol +--------+ | | Endpoint | | | { | | | | | | | { | Broker | | +----------+ | | {--^-----+ | | +^---------^-+ | +--------+ | +----------+ | | | | +-----v-----+ | | | | | +-----------------> | | Target <---------+ | | | Evaluator | | Endpoint | | +---------------------------> | | | | | | +----------+ | +-----------+ | [-----------] | Management | Protocol | Interfaces | | Left-Hand Side | Right-Hand Side
Figure 2: SACM Architecture
At the center of the SACM architecture is a CC that spans the left- and right-hand sides. The CC choreographs the collection of posture information on the left-hand side, and provides a common view of the collected posture for the right-hand side. Working in this way, all Evaluators that consume posture information from a given CC are provided a common view of all endpoint posture information collected by the CC. This common view can be accessed by Evaluators who need this information for asset management, configuration management, and vulnerability management use cases, and collected posture information can also be made available to other posture consumers to support unforeseen use cases.
The right-hand side of the SACM architecture defines how posture information is shared between components that provide collected posture (e.g., a Collection Controller) and components that store, evaluate, and use collected posture information on the network. Analytical and reporting capabilities need to be able to publish and subscribe to posture data feeds from other tools that have the required information. Other capabilities may need to access data stores of previously collected, historic posture information. By separating the methods of posture collection from how this information is consumed for use, the SACM architecture protects endpoints from being overloaded by downstream requests, and posture data from unauthorized access. These benefits support security automation by providing improved access to posture information by downstream consumers, and allowing downstream components to communicate information derived from posture analysis.
The following subsection discuss the motivations for the SACM architecture.
On the left-hand side of the SACM architecture, a number of existing, widely deployed endpoint management protocols support the collection of posture information from endpoints. Examples of these protocols include: the Simple Network Management Protocol (SNMP) [RFC3411], Network Configuration Protocol (NETCONF) [RFC4741], and the Network Endpoint Assessment (NEA) protocol [RFC5209]. These and similar protocols provide extension points that allow for new types of posture information to be represented and collected over time. For these reasons, integration with existing posture collection protocols is a key feature of this architecture.
A gap in the functionality provided by existing protocols is a generalized mechanism to allow external components to drive data collection activities through a common, protocol agnostic collection interface. This is a feature supported by the SACM architecture through the definition of a common interface on the right-hand side that allows the CC to choreograph posture collection through implementations of existing management protocols on the left-hand side.
Collection choreography is the act of managing posture collection activities on the left-hand side to produce a common view of collected posture information for one or more collection consumers on the right-hand side. Collection choreography is supported in the SACM architecture by the Collection Controller (CC) for the following reasons:
For these reasons a Collection Controller is needed to choreograph posture collection within the SACM architecture.
On the right-hand side of the SACM architecture, once collection has been triggered and choreographed, there remains the issue of efficiently disseminating the collected posture information to consumers. The collection activity will have yielded information in an arbitrary data format, often spread across several formats with overlapping and mismatched information. There is a need for a means to package this information in a standardized way such that automated systems downstream can consume it without a priori knowledge of the source format.
The SACM architecture needs to support direct request response and publish subscribe mechanisms for posture data dissemination. In either case, arbitrary data formats can be processed at collection time and re-enveloped by a standardized information description. The downstream consumer needs to only understand the enveloping model to process the message containing posture information. It might also be possible to allow the enveloping model to identify multiple formats, allowing the consumer to request information from the designated source in a specific format it recognizes and supports.
List of protocols:
Additionally, the repository will potentially trigger events within the server for dealing with outstanding requests for data or evaluations.
[I-D.coffin-sacm-nea-swid-patnc] represents one set of attributes to carry SACM information.
The SACM architecture includes a single Information Model to provide a consistent view of the data needed to do perform the endpoint posture assessment. Additional IMs may be defined by entities other than the IETF which are supersets of the IETF IM. This is one way that companies will be able to differentiate their products from each other. The IM includes not only the data itself, but metadata as well. The meta data includes, but is not limited to:
The SACM architecture includes a single Data Model defined by the IETF. Additional DMs maybe defined by entities other than the IETF. These additional DMs may be either subsets or supersets of the IETF SACM DM. The subset DMs are defined for doing special purpose work which does not need the full SACM DM.
The term DM is used by the SACM group in two different contexts and it is useful to discuss those two contexts. Data Model can refer to how the data is arranged within a entity. In this view of a DM, one can use a relational database as the conceptual view of the world. The relations in the database reflect the relations between the data in the IM. The use of a relational database is not the only way to implement the DM within a process.
The term DM can also refer to how the data is represented when serialized for transport between two entities. This is the meaning that is more usual when looking at the current SACM documents. This is sometimes referred to as the DM in transit.
This document has no IANA Considerations.
This document is a high level description of the architecture of the SACM environment, as such it does not directly specify any security problems or requirements. Security requirements for SACM can be found in other documents including the SACM Requirements [I-D.ietf-sacm-requirements].
This document is currently the opinions of just the authors and is not representative of the SACM working group or the IETF.
This document has been formed by discussions with a large number of the SACM working group members including but not limited to: Henk Birkholz, Lisa Lorenzin, Nancy Cam-Winget.