draft-ietf-sacm-arch-04.txt | draft-ietf-sacm-arch-05.txt | |||
---|---|---|---|---|
SACM Working Group A. Montville | SACM Working Group A. Montville | |||
Internet-Draft B. Munyan | Internet-Draft B. Munyan | |||
Intended status: Standards Track CIS | Intended status: Standards Track CIS | |||
Expires: May 1, 2020 October 29, 2019 | Expires: 12 November 2020 11 May 2020 | |||
Security Automation and Continuous Monitoring (SACM) Architecture | Security Automation and Continuous Monitoring (SACM) Architecture | |||
draft-ietf-sacm-arch-04 | draft-ietf-sacm-arch-05 | |||
Abstract | Abstract | |||
This document defines an architecture enabling a cooperative Security | This document defines an architecture enabling a cooperative Security | |||
Automation and Continuous Monitoring (SACM) ecosystem. This work is | Automation and Continuous Monitoring (SACM) ecosystem. This work is | |||
predicated upon information gleaned from SACM Use Cases and | predicated upon information gleaned from SACM Use Cases and | |||
Requirements ([RFC7632] and [RFC8248] respectively), and terminology | Requirements ([RFC7632] and [RFC8248] respectively), and terminology | |||
as found in [I-D.ietf-sacm-terminology]. | as found in [I-D.ietf-sacm-terminology]. | |||
WORKING GROUP: The source for this draft is maintained in GitHub. | WORKING GROUP: The source for this draft is maintained in GitHub. | |||
skipping to change at page 1, line 39 ¶ | skipping to change at page 1, line 39 ¶ | |||
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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 May 1, 2020. | This Internet-Draft will expire on 12 November 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2020 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 (https://trustee.ietf.org/ | |||
(https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Requirements notation . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements notation . . . . . . . . . . . . . . . . . . 3 | |||
2. Terms and Definitions . . . . . . . . . . . . . . . . . . . . 3 | 2. Terms and Definitions . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Architectural Overview . . . . . . . . . . . . . . . . . . . 3 | 3. Architectural Overview . . . . . . . . . . . . . . . . . . . 4 | |||
3.1. SACM Role-based Architecture . . . . . . . . . . . . . . 4 | 3.1. SACM Role-based Architecture . . . . . . . . . . . . . . 4 | |||
3.2. Architectural Roles/Components . . . . . . . . . . . . . 5 | 3.2. Architectural Roles/Components . . . . . . . . . . . . . 5 | |||
3.2.1. Orchestrator(s) . . . . . . . . . . . . . . . . . . . 5 | 3.2.1. Orchestrator(s) . . . . . . . . . . . . . . . . . . . 6 | |||
3.2.2. Repositories/CMDBs . . . . . . . . . . . . . . . . . 5 | 3.2.2. Repositories/CMDBs . . . . . . . . . . . . . . . . . 6 | |||
3.2.3. Integration Service . . . . . . . . . . . . . . . . . 5 | 3.2.3. Integration Service . . . . . . . . . . . . . . . . . 6 | |||
3.3. Downstream Uses . . . . . . . . . . . . . . . . . . . . . 6 | 3.3. Downstream Uses . . . . . . . . . . . . . . . . . . . . . 7 | |||
3.3.1. Reporting . . . . . . . . . . . . . . . . . . . . . . 6 | 3.3.1. Reporting . . . . . . . . . . . . . . . . . . . . . . 7 | |||
3.3.2. Analytics . . . . . . . . . . . . . . . . . . . . . . 6 | 3.3.2. Analytics . . . . . . . . . . . . . . . . . . . . . . 7 | |||
3.4. Sub-Architectures . . . . . . . . . . . . . . . . . . . . 7 | 3.4. Sub-Architectures . . . . . . . . . . . . . . . . . . . . 7 | |||
3.4.1. Collection Sub-Architecture . . . . . . . . . . . . . 7 | 3.4.1. Collection Sub-Architecture . . . . . . . . . . . . . 7 | |||
3.4.2. Evaluation Sub-Architecture . . . . . . . . . . . . . 9 | 3.4.2. Evaluation Sub-Architecture . . . . . . . . . . . . . 10 | |||
4. Interactions . . . . . . . . . . . . . . . . . . . . . . . . 11 | 4. Interactions . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
5. Security Domain Workflows . . . . . . . . . . . . . . . . . . 12 | 4.1. Interaction Categories . . . . . . . . . . . . . . . . . 12 | |||
5.1. IT Asset Management . . . . . . . . . . . . . . . . . . . 12 | 4.1.1. Broadcast . . . . . . . . . . . . . . . . . . . . . . 12 | |||
5.1.1. Components, Capabilities and Workflow(s) . . . . . . 13 | 4.1.2. Directed . . . . . . . . . . . . . . . . . . . . . . 13 | |||
5.2. Vulnerability Management . . . . . . . . . . . . . . . . 13 | 4.2. Management Plane Functions . . . . . . . . . . . . . . . 13 | |||
5.2.1. Components, Capabilities and Workflow(s) . . . . . . 14 | 4.2.1. Orchestrator Onboarding . . . . . . . . . . . . . . . 13 | |||
5.3. Configuration Management . . . . . . . . . . . . . . . . 15 | 4.2.2. Component Onboarding . . . . . . . . . . . . . . . . 14 | |||
5.3.1. Components, Capabilities and Workflow(s) . . . . . . 16 | 4.3. Component Interactions . . . . . . . . . . . . . . . . . 15 | |||
6. Privacy Considerations . . . . . . . . . . . . . . . . . . . 18 | 4.3.1. Initiate Ad-Hoc Collection . . . . . . . . . . . . . 15 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | 4.3.2. Coordinate Periodic Collection . . . . . . . . . . . 15 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | 4.3.3. Coordinate Observational/Event-based | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | Collection . . . . . . . . . . . . . . . . . . . . . 16 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 19 | 4.3.4. Persist Collected Posture Attributes . . . . . . . . 16 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 19 | 4.3.5. Initiate Ad-Hoc Evaluation . . . . . . . . . . . . . 16 | |||
Appendix A. Mapping to RFC8248 . . . . . . . . . . . . . . . . . 21 | 4.3.6. Queries . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
Appendix B. Example Components . . . . . . . . . . . . . . . . . 24 | 5. Taxonomy . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
B.1. Policy Services . . . . . . . . . . . . . . . . . . . . . 24 | 5.1. Orchestrator Registration . . . . . . . . . . . . . . . . 17 | |||
B.2. Software Inventory . . . . . . . . . . . . . . . . . . . 25 | 5.1.1. Topic . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
B.3. Datastream Collection . . . . . . . . . . . . . . . . . . 26 | 5.1.2. Interaction Type . . . . . . . . . . . . . . . . . . 17 | |||
B.4. Network Configuration Collection . . . . . . . . . . . . 26 | 5.1.3. Initiator . . . . . . . . . . . . . . . . . . . . . . 17 | |||
Appendix C. Exploring An XMPP-based Solution . . . . . . . . . . 27 | 5.1.4. Request Payload . . . . . . . . . . . . . . . . . . . 17 | |||
C.1. Example Architecture using XMPP-Grid and Endpoint Posture | 5.1.5. Receiver . . . . . . . . . . . . . . . . . . . . . . 17 | |||
Collection Protocol . . . . . . . . . . . . . . . . . . . 30 | 5.1.6. Process Description . . . . . . . . . . . . . . . . . 17 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 | 5.1.7. Response Payload . . . . . . . . . . . . . . . . . . 18 | |||
5.1.8. Response Processing . . . . . . . . . . . . . . . . . 18 | ||||
5.2. Component Registration . . . . . . . . . . . . . . . . . 18 | ||||
5.2.1. Topic . . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
5.2.2. Interaction Type . . . . . . . . . . . . . . . . . . 18 | ||||
5.2.3. Initiator . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
5.2.4. Request Payload . . . . . . . . . . . . . . . . . . . 18 | ||||
5.2.5. Receiver . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
5.2.6. Process Description . . . . . . . . . . . . . . . . . 19 | ||||
5.2.7. Response Payload . . . . . . . . . . . . . . . . . . 19 | ||||
5.2.8. Response Processing . . . . . . . . . . . . . . . . . 19 | ||||
5.3. Orchestrator-to-Component Administrative Interface . . . 19 | ||||
5.3.1. Capability Advertisement Handshake . . . . . . . . . 19 | ||||
5.3.2. Directed Collection . . . . . . . . . . . . . . . . . 20 | ||||
5.4. [Taxonomy Name] . . . . . . . . . . . . . . . . . . . . . 20 | ||||
5.4.1. Topic . . . . . . . . . . . . . . . . . . . . . . . . 21 | ||||
6. Privacy Considerations . . . . . . . . . . . . . . . . . . . 21 | ||||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | ||||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 | ||||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | ||||
9.1. Normative References . . . . . . . . . . . . . . . . . . 21 | ||||
9.2. Informative References . . . . . . . . . . . . . . . . . 22 | ||||
Appendix A. Security Domain Workflows . . . . . . . . . . . . . 24 | ||||
A.1. IT Asset Management . . . . . . . . . . . . . . . . . . . 24 | ||||
A.1.1. Components, Capabilities and Workflow(s) . . . . . . 24 | ||||
A.2. Vulnerability Management . . . . . . . . . . . . . . . . 25 | ||||
A.2.1. Components, Capabilities and Workflow(s) . . . . . . 26 | ||||
A.3. Configuration Management . . . . . . . . . . . . . . . . 26 | ||||
A.3.1. Components, Capabilities and Workflow(s) . . . . . . 27 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 | ||||
1. Introduction | 1. Introduction | |||
The purpose of this draft is to define an architectural approach for | The purpose of this draft is to define an architectural approach for | |||
a SACM Domain, based on the spirit of use cases found in [RFC7632] | a SACM Domain, based on the spirit of use cases found in [RFC7632] | |||
and requirements found in [RFC8248]. This approach gains the most | and requirements found in [RFC8248]. This approach gains the most | |||
advantage by supporting a variety of collection systems, and intends | advantage by supporting a variety of collection systems, and intends | |||
to enable a cooperative ecosystem of tools from disparate sources | to enable a cooperative ecosystem of tools from disparate sources | |||
with minimal operator configuration. | with minimal operator configuration. | |||
skipping to change at page 4, line 19 ¶ | skipping to change at page 5, line 5 ¶ | |||
or many providers. Different roles within a cooperative ecosystem | or many providers. Different roles within a cooperative ecosystem | |||
may act as both providers and consumers of SACM-relevant information. | may act as both providers and consumers of SACM-relevant information. | |||
3.1. SACM Role-based Architecture | 3.1. SACM Role-based Architecture | |||
Within the cooperative SACM ecosystem, a number of roles act in | Within the cooperative SACM ecosystem, a number of roles act in | |||
coordination to provide relevant policy/guidance, perform data | coordination to provide relevant policy/guidance, perform data | |||
collection, storage, evaluation, and support downstream analytics and | collection, storage, evaluation, and support downstream analytics and | |||
reporting. | reporting. | |||
+--------------------+ | +-----------------+ +--------------------+ | |||
| Feeds/Repositories | | | Orchestrator(s) | | Repositories/CMDBs | | |||
| of External Data | | +---------^-------+ +----------^---------+ | |||
+---------+----------+ | | | +--------------------+ | |||
| | | | | Downstream Uses | | |||
******************************************* Boundary of Responsibility ****** | | | | +----------------+ | | |||
| | +-----------v------------------------v------+ | | Analytics | | | |||
+-----------------+ | +--------------------+ | | Integration Service <------> +----------------+ | | |||
| Orchestrator(s) | | | Repositories/CMDBs | | +-----------^--------------------------^----+ | +----------------+ | | |||
+---------^-------+ | +----------^---------+ | | | | | Reporting | | | |||
| | | +--------------------+ | | | | +----------------+ | | |||
| | | | Downstream Uses | | +-----------v-------------------+ | +--------------------+ | |||
| | | | +----------------+ | | | Collection Sub-Architecture | | | |||
+-----------v----------v-------------v------+ | | Analytics | | | +-------------------------------+ | | |||
| Integration Service <------> +----------------+ | | +---------------v---------------+ | |||
+-----------^--------------------------^----+ | +----------------+ | | | Evaluation Sub-Architecture | | |||
| | | | Reporting | | | +-------------------------------+ | |||
| | | +----------------+ | | ||||
+-----------v-------------------+ | +--------------------+ | ||||
| Collection Sub-Architecture | | | ||||
+-------------------------------+ | | ||||
+---------------v---------------+ | ||||
| Evaluation Sub-Architecture | | ||||
+-------------------------------+ | ||||
Figure 2: Notional Role-based Architecture | Figure 2: Notional Role-based Architecture | |||
As shown in Figure 2, the SACM role-based architecture consists of | As shown in Figure 2, the SACM role-based architecture consists of | |||
some basic SACM Components communicating using an integration | some basic SACM Components communicating using an integration | |||
service. The integration service is expected to maximally align with | service. The integration service is expected to maximally align with | |||
the requirements described in [RFC8248], which means that the | the requirements described in [RFC8248], which means that the | |||
integration service will support brokered (i.e. point-to-point) and | integration service will support brokered (i.e. point-to-point) and | |||
proxied data exchange. | proxied data exchange. | |||
The boundary of responsibility is not intended to imply a physical | ||||
boundary. Rather, it is intended to be inclusive of various cloud/ | ||||
virtualized environments, BYOD and vendor-provided services in | ||||
addition to any physical systems the enterprise operates. | ||||
3.2. Architectural Roles/Components | 3.2. Architectural Roles/Components | |||
This document suggests a variety of players in a cooperative | This document suggests a variety of players in a cooperative | |||
ecosystem; these players are known as SACM Components. SACM | ecosystem; known as SACM Components. SACM Components may be composed | |||
Components may be composed of other SACM Components, and each SACM | of other SACM Components, and each SACM Component plays one, or more, | |||
Component plays one, or more, of several roles relevant to the | of several roles relevant to the ecosystem. Roles may act as | |||
ecosystem. Roles may act as providers of information, consumers of | providers of information, consumers of information, or both provider | |||
information, or both provider and consumer. Figure 2 depicts a | and consumer. Figure 2 depicts a number of SACM components which are | |||
number of SACM components which are architecturally significant and | architecturally significant and therefore warrant discussion and | |||
therefore warrant discussion and clarification. | clarification. | |||
3.2.1. Orchestrator(s) | 3.2.1. Orchestrator(s) | |||
Orchestration components exists to aid in the automation of | Orchestration components exists to aid in the automation of | |||
configuration, coordination, and management for the ecosystem of SACM | configuration, coordination, and management for the ecosystem of SACM | |||
components. The Orchestrator performs control-plane operations, | components. The Orchestrator performs control-plane operations, | |||
administration of an implementing organization's components | administration of an implementing organization's components | |||
(including endpoints, posture collection services, and downstream | (including endpoints, posture collection services, and downstream | |||
activities), scheduling of automated tasks, and any ad-hoc activities | activities), scheduling of automated tasks, and any ad-hoc activities | |||
such as the initiation of collection or evaluation activities. The | such as the initiation of collection or evaluation activities. The | |||
skipping to change at page 6, line 15 ¶ | skipping to change at page 6, line 48 ¶ | |||
infrastructure to allow SACM components to communicate using a shared | infrastructure to allow SACM components to communicate using a shared | |||
set of interfaces. The Integration Service's brokering capabilities | set of interfaces. The Integration Service's brokering capabilities | |||
enable the exchange of various information payloads, orchestration of | enable the exchange of various information payloads, orchestration of | |||
component capabilities, message routing and reliable delivery. The | component capabilities, message routing and reliable delivery. The | |||
Integration Service minimizes the dependencies from one system to | Integration Service minimizes the dependencies from one system to | |||
another through the loose coupling of applications through messaging. | another through the loose coupling of applications through messaging. | |||
SACM components will "attach" to the Integration Service either | SACM components will "attach" to the Integration Service either | |||
through native support for the integration implementation, or through | through native support for the integration implementation, or through | |||
the use of "adapters" which provide a proxied attachment. | the use of "adapters" which provide a proxied attachment. | |||
The Integration Service should provide mechanisms for synchronous | The Integration Service should provide mechanisms for both | |||
"request/response"-style messaging, asynchronous "send and forget" | synchronous and asynchronous "request/response"-style messaging, and | |||
messaging, or publish/subscribe. It is the responsibility of the | a publish/subscribe mechanism to implement event-based messaging. It | |||
Integration Service to coordinate and manage the sending and | is the responsibility of the Integration Service to coordinate and | |||
receiving of messages. The Integration Service should allow | manage the sending and receiving of messages. The Integration | |||
components the ability to directly connect and produce or consume | Service should allow components the ability to directly connect and | |||
messages, or connect via message translators which can act as a | produce or consume messages, or connect via message translators which | |||
proxy, transforming messages from a component format to one | can act as a proxy, transforming messages from a component format to | |||
implementing a SACM data model. | one implementing a SACM data model. | |||
The Integration Service MUST provide routing capabilities for | The Integration Service MUST provide routing capabilities for | |||
payloads between producers and consumers. The Integration Service | payloads between producers and consumers. The Integration Service | |||
MAY provide further capabilities within the payload delivery | MAY provide further capabilities within the payload delivery | |||
pipeline. Examples of these capabilities include, but are not | pipeline. Examples of these capabilities include, but are not | |||
limited to, intermediate processing, message transformation, type | limited to, intermediate processing, message transformation, type | |||
conversion, validation, etc. | conversion, validation, or other enterprise integration patterns. | |||
3.3. Downstream Uses | 3.3. Downstream Uses | |||
As depicted by Figure 2, a number of downstream uses exist in the | As depicted by Figure 2, a number of downstream uses exist in the | |||
cooperative ecosystem. Each notional SACM component represents | cooperative ecosystem. Each notional SACM component represents | |||
distinct sub-architectures which will exchange information via the | distinct sub-architectures which will exchange information via the | |||
integration services, using interactions described in this draft. | integration services, using interactions described in this draft. | |||
3.3.1. Reporting | 3.3.1. Reporting | |||
skipping to change at page 7, line 13 ¶ | skipping to change at page 7, line 45 ¶ | |||
effective decision making within the organization. | effective decision making within the organization. | |||
3.4. Sub-Architectures | 3.4. Sub-Architectures | |||
Figure 2 shows two components representing sub-architectural roles | Figure 2 shows two components representing sub-architectural roles | |||
involved in a cooperative ecosystem of SACM components: Collection | involved in a cooperative ecosystem of SACM components: Collection | |||
and Evaluation. | and Evaluation. | |||
3.4.1. Collection Sub-Architecture | 3.4.1. Collection Sub-Architecture | |||
The Collection sub-architecture, in a SACM context, is the mechanism | The Collection sub-architecture is, in a SACM context, the mechanism | |||
by which posture attributes are collected from applicable endpoints | by which posture attributes are collected from applicable endpoints | |||
and persisted to a repository, such as a configuration management | and persisted to a repository, such as a configuration management | |||
database (CMDB). Orchestration components will choreograph endpoint | database (CMDB). Orchestration components will choreograph endpoint | |||
data collection via interactions using the Integration Service as a | data collection via defined interactions, using the Integration | |||
message broker. Instructions to perform endpoint data collection are | Service as a message broker. Instructions to perform endpoint data | |||
directed to a Posture Collection Service capable of performing | collection are directed to a Posture Collection Service capable of | |||
collection activities utilizing any number of methods, such as SNMP, | performing collection activities utilizing any number of methods, | |||
NETCONF/RESTCONF, SSH, WinRM, or host-based. | such as SNMP, NETCONF/RESTCONF, SSH, WinRM, packet capture, or host- | |||
based. | ||||
+----------------------------------------------------------+ | +----------------------------------------------------------+ | |||
| Orchestrator(s) | | | Orchestrator(s) | | |||
+-----------+----------------------------------------------+ | +-----------+----------------------------------------------+ | |||
| +------------------------------+ | | +------------------------------+ | |||
| | Posture Attribute Repository | | | | Posture Attribute Repository | | |||
| +--------------^---------------+ | | +--------------^---------------+ | |||
Perform | | Perform | | |||
Collection | | Collection | | |||
| Collected Data | | Collected Data | |||
| ^ | | ^ | |||
| | | | | | |||
+-----------v------------------------------+---------------+ | +-----------v------------------------------+---------------+ | |||
| Integration Service | | | Integration Service | | |||
+----+------------------^-----------+------------------^---+ | +----+------------------^-----------+------------------^---+ | |||
| | | | | | | | | | |||
v | v | | v | v | | |||
Perform Collected Perform Collected | Perform Collected Perform Collected | |||
Collection Data Collection Data | Collection Data Collection Data | |||
| ^ | ^ | | ^ | ^ | |||
| | | | | | | | | | |||
+----v-----------------------+ +----v------------------+------+ | +----v-----------------------+ +----|------------------|------+ | |||
| Posture Collection Service | | Endpoint | | | Posture Collection Service | | | Endpoint | | | |||
+---^------------------------+ | +--------------------------+ | | +---^------------------------+ | +--v------------------+----+ | | |||
| | | |Posture Collection Service| | | | | | |Posture Collection Service| | | |||
| v | +--------------------------+ | | | v | +--------------------------+ | | |||
Events Queries +------------------------------+ | Events Queries +------------------------------+ | |||
^ | | ^ | (PCS resides on Endpoint) | |||
| | | | | | |||
+---+-------------------v----+ | +---+-------------------v----+ | |||
| Endpoint | | | Endpoint | | |||
+----------------------------+ | +----------------------------+ | |||
(PCS does not reside on Endpoint) | ||||
Figure 3: Decomposed Collection Sub-Architecture | Figure 3: Decomposed Collection Sub-Architecture | |||
3.4.1.1. Posture Collection Service | 3.4.1.1. Posture Collection Service | |||
The Posture Collection Service (PCS) is the SACM component | The Posture Collection Service (PCS) is the SACM component | |||
responsible for the collection of posture attributes from an endpoint | responsible for the collection of posture attributes from an endpoint | |||
or set of endpoints. A single PCS may be responsible for management | or set of endpoints. A single PCS may be responsible for management | |||
of posture attribute collection from many endpoints. The PCS will | of posture attribute collection from many endpoints. The PCS will | |||
interact with the Integration Service to receive collection | interact with the Integration Service to receive collection | |||
instructions and to provide collected posture data for persistence to | instructions and to provide collected posture data for persistence to | |||
the Posture Attribute Repository. Collection instructions may be | the Posture Attribute Repository. Collection instructions may be | |||
supplied in a variety of forms, including subscription to a publish/ | supplied in a variety of forms, including subscription to a publish/ | |||
subscribe topic to which the Integration Service has published | subscribe topic to which the Integration Service has published | |||
instructions, via request/response-style synchronous messaging, or | instructions, or via request/response-style messaging (either | |||
via asynchronous "send-and-forget" messaging. Collected posture | synchronous or asynchronous). | |||
information may then be supplied to the Integration Service via | ||||
similar channels. The various interaction types are discussed later | Four classifications of posture collections MAY be supported. | |||
in this draft (TBD). | ||||
3.4.1.1.1. Ad-Hoc | ||||
Ad-Hoc collection is defined as a single colletion of posture | ||||
attributes, collected at a particular time. An example of ad-hoc | ||||
collection is the single collection of a specific registry key. | ||||
3.4.1.1.2. Continuous/Scheduled | ||||
Continuous/Scheduled collection is defined as the ongoing, periodic | ||||
collection of posture attributes. An example of scheduled collection | ||||
is the collection of a specific registry key value every day at a | ||||
given time. | ||||
3.4.1.1.3. Observational | ||||
This classification of collection is triggered by the observation, | ||||
external to an endpoint, of information asserting posture attribute | ||||
values for that endpoint. An example of observational collection is | ||||
examination of netflow data for particular packet captures and/or | ||||
specific information within those captures. | ||||
3.4.1.1.4. Event-based | ||||
Event-based collection may be triggered either internally or | ||||
externally to the endpoint. Internal event-based collection is | ||||
triggered when a posture attribute of interest is added, removed, or | ||||
modified on an endpoint. This modification indicates a change in the | ||||
current state of the endpoint, potentially affecting its adherence to | ||||
some defined policy. Modification of the endpoint's minimum password | ||||
length is an example of an attribute change which could trigger | ||||
collection. | ||||
External event-based collection can be described as a collector being | ||||
subscribed to an external source of information, receiving events | ||||
from that external source on a periodic or continuous basis. An | ||||
example of event-based collection is subscription to YANG Push | ||||
notifications. | ||||
3.4.1.2. Endpoint | 3.4.1.2. Endpoint | |||
Building upon [I-D.ietf-sacm-terminology], the SACM Collection Sub- | Building upon [I-D.ietf-sacm-terminology], the SACM Collection Sub- | |||
Architecture augments the definition of an Endpoint as a component | Architecture augments the definition of an Endpoint as a component | |||
within an organization's management domain from which a Posture | within an organization's management domain from which a Posture | |||
Collection Service will collect relevant posture attributes. | Collection Service will collect relevant posture attributes. | |||
3.4.1.3. Posture Attribute Repository | 3.4.1.3. Posture Attribute Repository | |||
skipping to change at page 10, line 5 ¶ | skipping to change at page 11, line 5 ¶ | |||
appropriate repository. | appropriate repository. | |||
3.4.2. Evaluation Sub-Architecture | 3.4.2. Evaluation Sub-Architecture | |||
The Evaluation Sub-Architecture, in the SACM context, is the | The Evaluation Sub-Architecture, in the SACM context, is the | |||
mechanism by which policy, expressed in the form of expected state, | mechanism by which policy, expressed in the form of expected state, | |||
is compared with collected posture attributes to yield an evaluation | is compared with collected posture attributes to yield an evaluation | |||
result, that result being contextually dependent on the policy being | result, that result being contextually dependent on the policy being | |||
evaluated. | evaluated. | |||
+------------------+ | +------------------+ | |||
| Collection | +-------------------------------+ | | Collection | +-------------------------------+ | |||
| Sub-Architecture | | Evaluation Results Repository | | | Sub-Architecture | | Evaluation Results Repository | | |||
+--------------+ +--------^---------+ +-----------------^-------------+ | +--------------+ +--------^---------+ +-----------------^-------------+ | |||
| Orchestrator | | | | | Orchestrator | | | | |||
+------+-------+ | | | +------+-------+ (Potentially) | | |||
| Perform Store Evaluation Results | | Perform Store Evaluation Results | |||
Perform Collection | | Perform Collection | | |||
Evaluation | | | Evaluation | | | |||
| | | | | | | | |||
+------v----------------------v--------------------------------+-------------+ | +------v----------------------v--------------------------------+-------------+ | |||
| Integration Service | | | Integration Service | | |||
+--------+----------------------------^----------------------^---------------+ | +--------^----------------------^-----------------------^--------------------+ | |||
| | | | | | | | |||
| | | | | | | | |||
Perform Retrieve Posture | | | Retrieve Posture Perform | |||
Evaluation Attributes Retrieve Policy | Retrieve Policy Attributes Evaluation | |||
| | | | | | | | |||
| | | | | | | | |||
+--------v-------------------+ +-----v------+ +------v-----+ | +------v-----+ +-----v------+ +--------v-------------------+ | |||
| Posture Evaluation Service | | Posture | | Policy | | | Policy | | Posture | | Posture Evaluation Service | | |||
+----------------------------+ | Attribute | | Repository | | | Repository | | Attribute | +----------------------------+ | |||
| Repository | +------------+ | +------------+ | Repository | | |||
+------------+ | +------------+ | |||
Figure 4: Decomposed Evaluation Sub-Architecture | Figure 4: Decomposed Evaluation Sub-Architecture | |||
3.4.2.1. Posture Evaluation Service | 3.4.2.1. Posture Evaluation Service | |||
The Posture Evaluation Service (PES) represents the SACM component | The Posture Evaluation Service (PES) represents the SACM component | |||
responsible for coordinating the policy to be evaluated and the | responsible for coordinating the policy to be evaluated and the | |||
collected posture attributes relevant to that policy, as well as the | collected posture attributes relevant to that policy, as well as the | |||
comparison engine responsible for correctly determining compliance | comparison engine responsible for correctly determining compliance | |||
with the expected state. | with the expected state. | |||
3.4.2.2. Policy Repository | 3.4.2.2. Policy Repository | |||
The Policy Repository represents a persistent storage mechanism for | The Policy Repository represents a persistent storage mechanism for | |||
the policy to be assessed against collected posture attributes to | the policy to be assessed against collected posture attributes to | |||
determine if an endpoint meets the defined expected state. Examples | determine if an endpoint meets the desired expected state. Examples | |||
of information contained in a Policy Repository would be | of information contained in a Policy Repository would be | |||
Vulnerability Definition Data or configuration recommendations as | Vulnerability Definition Data or configuration recommendations as | |||
part of a CIS Benchmark or DISA STIG. | part of a CIS Benchmark or DISA STIG. | |||
3.4.2.3. Evaluation Results Repository | 3.4.2.3. Evaluation Results Repository | |||
The Evaluation Results Repository persists the information | The Evaluation Results Repository persists the information | |||
representing the results of a particular posture assessment, | representing the results of a particular posture assessment, | |||
indicating those posture attributes collected from various endpoints | indicating those posture attributes collected from various endpoints | |||
which either meet or do not meet the expected state defined by the | which either meet or do not meet the expected state defined by the | |||
assessed policy. Consideration should be made for the context of | assessed policy. Consideration should be made for the context of | |||
individual results. For example, meeting the expected state for a | individual results. For example, meeting the expected state for a | |||
configuration attribute indicates a correct configuration of the | configuration attribute indicates a correct configuration of the | |||
endpoint, whereas meeting an expected state for a vulnerable software | endpoint, whereas meeting an expected state for a vulnerable software | |||
version indicates an incorrect and therefore vulnerable | version indicates an incorrect configuration. | |||
configuration. | ||||
3.4.2.4. Posture Evaluation Workflow | 3.4.2.4. Posture Evaluation Workflow | |||
Posture evaluation is orchestrated through the Integration Service to | Posture evaluation is orchestrated through the Integration Service to | |||
the appropriate Posture Evaluation Service. The PES will, through | the appropriate Posture Evaluation Service (PES). The PES will, | |||
coordination with the Integration Service, query both the Posture | using interactions defined by the applicable taxonomy, query both the | |||
Attribute Repository and the Policy Repository to obtain relevant | Posture Attribute Repository and the Policy Repository to obtain | |||
state data for comparison. If necessary, the PES may be required to | relevant state data for comparison. If necessary, the PES may be | |||
invoke further posture collection. Once all relevant posture | required to invoke further posture collection. Once all relevant | |||
information has been collected, it is compared to expected state | posture information has been collected, it is compared to expected | |||
based on applicable policy. Comparison results are then persisted to | state based on applicable policy. Comparison results are then | |||
an evaluation results repository for further downstream use and | persisted to an evaluation results repository for further downstream | |||
analysis. | use and analysis. | |||
4. Interactions | 4. Interactions | |||
SACM Components are intended to interact with other SACM Components. | SACM Components are intended to interact with other SACM Components. | |||
These interactions can be thought of, at the architectural level, as | These interactions can be thought of, at the architectural level, as | |||
the combination of interfaces with their supported operations. Each | the combination of interfaces with their supported operations. Each | |||
interaction will convey a payload of information. The payload | interaction will convey a payload of information. The payload | |||
information is expected to contain sub-domain-specific | information is expected to contain sub-domain-specific | |||
characteristics and instructions. | characteristics and/or instructions. | |||
4.1. Interaction Categories | ||||
Two categories of interactions SHOULD be supported by the Integration | Two categories of interactions SHOULD be supported by the Integration | |||
Service; broadcast interactions, and directed interactions. | Service; broadcast and directed. | |||
o *Broadcast*: A broadcast interaction, commonly known as "publish/ | 4.1.1. Broadcast | |||
subscribe", allows for a wider distribution of a message payload. | ||||
When a payload is published to a topic on the Integration Service, | ||||
all subscribers to that topic are alerted and may consume the | ||||
message payload. A broadcast interaction may also simulate a | ||||
"directed" interaction when a topic only has a single subscriber. | ||||
An example of a broadcast interaction could be to publish to a | ||||
topic that new configuration assessment content is available. | ||||
Subscribing consumers receive the notification, and proceed to | ||||
collect endpoint configuration posture based on the new content. | ||||
o *Directed*: The intent of a directed interaction is to enable | A broadcast interaction, commonly known as "publish/subscribe", | |||
point-to-point communications between a producer and consumer, | allows for a wider distribution of a message payload. When a payload | |||
through the standard interfaces provided by the Integration | is published to a topic on the Integration Service, all subscribers | |||
Service. The provider component indicates which consumer is | to that topic are alerted and may consume the message payload. This | |||
intended to receive the payload, and the Integration Service | category of interaction can also be described as a "unicast" | |||
routes the payload directly to that consumer. Two "styles" of | interaction when a topic only has a single subscriber. An example of | |||
directed interaction exist, differing only by the response from | a broadcast interaction could be to publish Linux OVAL objects to a | |||
the payload consumer: | posture collection topic. Subscribing consumers receive the | |||
notification, and proceed to collect endpoint configuration posture | ||||
based on the new content. | ||||
* *Synchronous (Request/Response)*: Synchronous, request/response | 4.1.2. Directed | |||
style interaction requires that the requesting component block | ||||
and wait for the receiving component to respond, or to time out | ||||
when that response is delayed past a given time threshold. A | ||||
synchronous interaction example may be querying a CMDB for | ||||
posture attribute information in order to perform an | ||||
evaluation. | ||||
* *Asynchronous (Fire-and-Forget)*: An asynchronous interaction | The intent of a directed interaction is to enable point-to-point | |||
involves the payload producer directing the message to a | communications between a producer and consumer, through the standard | |||
consumer, but not blocking or waiting for a response. This | interfaces provided by the Integration Service. The provider | |||
style of interaction allows the producer to continue on to | component indicates which consumer is intended to receive the | |||
other activities without the need to wait for responses. This | payload, and the Integration Service routes the payload directly to | |||
style is particularly useful when the interaction payload | that consumer. Two "styles" of directed interaction exist, differing | |||
invokes a potentially long-running task, such as data | only by the response from the payload consumer. | |||
collection, report generation, or policy evaluation. The | ||||
receiving component may reply later via callbacks or further | ||||
interactions, but it is not mandatory. | ||||
Each interaction will convey a payload of information. The payload | 4.1.2.1. Synchronous | |||
is expected to contain specific characteristics and instructions to | ||||
be interpreted by receiving components. | ||||
5. Security Domain Workflows | Synchronous, request/response style interaction requires that the | |||
requesting component block and wait for the receiving component to | ||||
respond, or to time out when that response is delayed past a given | ||||
time threshold. A synchronous interaction example may be querying a | ||||
CMDB for posture attribute information in order to perform an | ||||
evaluation. | ||||
This section describes three primary information security domains | 4.1.2.2. Asynchronous | |||
from which workflows may be derived: IT Asset Management, | ||||
Vulnerability Management, and Configuration Management. | ||||
5.1. IT Asset Management | An asynchronous interaction involves the payload producer directing | |||
the message to a consumer, but not blocking or waiting for an | ||||
immediate response. This style of interaction allows the producer to | ||||
continue on to other activities without the need to wait for | ||||
responses. This style is particularly useful when the interaction | ||||
payload invokes a potentially long-running task, such as data | ||||
collection, report generation, or policy evaluation. The receiving | ||||
component may reply later via callbacks or further interactions, but | ||||
it is not mandatory. | ||||
Information Technology asset management is easier said than done. | 4.2. Management Plane Functions | |||
The [CISCONTROLS] have two controls dealing with IT asset management. | ||||
Control 1, Inventory and Control of Hardware Assets, states, | ||||
"Actively manage (inventory, track, and correct) all hardware devices | ||||
on the network so that only authorized devices are given access, and | ||||
unauthorized and unmanaged devices are found and prevented from | ||||
gaining access." Control 2, Inventory and Control of Software | ||||
Assets, states, "Actively manage (inventory, track, and correct) all | ||||
software on the network so that only authorized software is installed | ||||
and can execute, and that unauthorized and unmanaged software is | ||||
found and prevented from installation or execution." | ||||
In spirit, this covers all of the processing entities on your network | Mangement plane functions describe a component's interactions with | |||
(as opposed to things like network cables, dongles, adapters, etc.), | the ecosystem itself, not necessarily relating to collection, | |||
whether physical or virtual, on-premises or in the cloud. | evaluation, or downstream analytical processes. | |||
5.1.1. Components, Capabilities and Workflow(s) | 4.2.1. Orchestrator Onboarding | |||
TBD | The Orchestrator component, being a specialized role in the | |||
architecture, onboards to the ecosystem in such a manner as to enable | ||||
the onboarding and capabilities of the other component roles. The | ||||
Orchestrator must be enabled with the set of capabilities needed to | ||||
manage the functions of the ecosystem. | ||||
5.1.1.1. Components | With this in mind, the Orchestrator must first authenticate to the | |||
Integration Service. Once authentication has succeeded, the | ||||
Orchestrator must establish "service handlers" per the Section 5.2. | ||||
Once "service handlers" have been established, the Orchestrator is | ||||
then equipped to handle component registration, onboarding, | ||||
capability discovery, and topic subscription policy. | ||||
TBD | The following requirements exist for the Orchestrator to establish | |||
"service handlers" supporting the Section 5.2: - The Orchestrator | ||||
MUST enable the capability to receive onboarding requests via the | ||||
"/orchestrator/registration" topic, - The Orchestrator MUST have the | ||||
capability to generate, manage, and persist unique identifiers for | ||||
all registered components, - The Orchestrator MUST have the | ||||
capability to inventory and manage its "roster" (the list of | ||||
registered components), - The Orchestrator MUST support making | ||||
directed requests to registered components over the component's | ||||
administrative interface, as configured by the | ||||
"/orchestrator/[component-unique-identifier]" topic. Administrative | ||||
interface functions are described by their taxonomy, below. | ||||
5.1.1.2. Capabilities | 4.2.2. Component Onboarding | |||
An IT asset management capability needs to be able to: | Component onboarding describes how an individual component becomes | |||
part of the ecosystem; registering with the orchestrator, advertising | ||||
capabilities, establishing its administrative interface, and | ||||
subscribing to relevant topics. | ||||
o Identify and catalog new assets by executing Target Endpoint | The component onboarding workflow involves multiple steps: - The | |||
Discovery Tasks | component first authenticates to the Integration Service - The | |||
component then initiates registration with the Orchestrator, per the | ||||
Section 5.2 | ||||
o Provide information about its managed assets, including uniquely | Once the component has onboarded and registered with the | |||
identifying information (for that enterprise) | Orchestrator, its administrative interface will have been established | |||
via the "/orchestrator/[component-unique-identifier]" topic. This | ||||
administrative interface allows the component to advertise its | ||||
capabilities to the Orchestrator and in return, allow the | ||||
Orchestrator to direct capability-specific topic registration to the | ||||
component. This is performed using the Section 5.3.1 taxonomy. | ||||
Further described below, the "capability advertisement handshake" | ||||
first assumes the onboarding component has the ability to describe | ||||
its capabilities so they may be understood by the Orchestrator (TBD | ||||
on capability advertisement methodology). | ||||
o Handle software and/or hardware (including virtual assets) | * The component sends a message with its operational capabilities | |||
over the administrative interface: "/orchestrator/[component- | ||||
unique-identifier]" | ||||
o Represent cloud hybrid environments | * The Orchestrator receives the component's capabilities, persists | |||
them, and responds with the list of topics to which the component | ||||
should subscribe, in order to receive notifications, instructions, | ||||
or other directives intended to invoke the component's supported | ||||
capabilities. | ||||
5.1.1.3. Workflow(s) | * The component subscribes to the topics provided by the | |||
Orchestrator | ||||
TBD | 4.3. Component Interactions | |||
5.2. Vulnerability Management | Component interactions describe functionality between components | |||
relating to collection, evaluation, or other downstream processes. | ||||
Vulnerability management is a relatively established process. To | 4.3.1. Initiate Ad-Hoc Collection | |||
paraphrase the [CISCONTROLS], continuous vulnerability management is | ||||
the act of continuously acquiring, assessing, and taking subsequent | ||||
action on new information in order to identify and remediate | ||||
vulnerabilities, therefore minimizing the window of opportunity for | ||||
attackers. | ||||
A vulnerability assessment (i.e. vulnerability detection) is | The Orchestrator supplies a payload of collection instructions to a | |||
performed in two steps: | topic or set of topics to which Posture Collection Services are | |||
subscribed. The receiving PCS components perform the required | ||||
collection based on their capabilities. The PCS then forms a payload | ||||
of collected posture attributes (including endpoint identifying | ||||
information) and publishes that payload to the topic(s) to which the | ||||
Posture Attribute Repository is subscribed, for persistence. | ||||
o Endpoint information collected by the endpoint management | 4.3.2. Coordinate Periodic Collection | |||
capabilities is examined by the vulnerability management | ||||
capabilities through Evaluation Tasks. | ||||
o If the data possessed by the endpoint management capabilities is | Similar to ad-hoc collection, the Orchestrator supplies a payload of | |||
insufficient, a Collection Task is triggered and the necessary | collection instructions containing additional information regarding | |||
data is collected from the target endpoint. | collection periodicity, to the topic or topics to which Posture | |||
Collection Services are subscribed. | ||||
Vulnerability detection relies on the examination of different | 4.3.2.1. Schedule Periodic Collection | |||
endpoint information depending on the nature of a specific | ||||
vulnerability. Common endpoint information used to detect a | ||||
vulnerability includes: | ||||
o A specific software version is installed on the endpoint | Collection instructions include information regarding the schedule | |||
for collection, for example, every day at Noon, or every hour at 32 | ||||
minutes past the hour. | ||||
o File system attributes | 4.3.2.2. Cancel Periodic Collection | |||
o Specific state attributes | The Orchestrator supplies a payload of instructions to a topic or set | |||
of topics to which Posture Collection Services are subscribed. The | ||||
receiving PCS components cancel the identified periodic collection | ||||
executing on that PCS. | ||||
In some cases, the endpoint information needed to determine an | 4.3.3. Coordinate Observational/Event-based Collection | |||
endpoint's vulnerability status will have been previously collected | ||||
by the endpoint management capabilities and available in a | ||||
Repository. However, in other cases, the necessary endpoint | ||||
information will not be readily available in a Repository and a | ||||
Collection Task will be triggered to perform collection from the | ||||
target endpoint. Of course, some implementations of endpoint | ||||
management capabilities may prefer to enable operators to perform | ||||
this collection even when sufficient information can be provided by | ||||
the endpoint management capabilities (e.g. there may be freshness | ||||
requirements for information). | ||||
5.2.1. Components, Capabilities and Workflow(s) | In these scenarios, the "observer" acts as the Posture Collection | |||
Service. Interactions with the observer could specify a time period | ||||
of observation and potentially information intended to filter | ||||
observed posture attributes to aid the PCS in determining those | ||||
attributes that are applicable for collection and persistence to the | ||||
Posture Attribute Repository. | ||||
TBD | 4.3.3.1. Initiate Observational/Event-based Collection | |||
5.2.1.1. Components | The Orchestrator supplies a payload of instructions to a topic or set | |||
of topics to which Posture Collection Services (observers) are | ||||
subscribed. This payload could include specific instructions based | ||||
on the observer's capabilities to determine specific posture | ||||
attributes to observe and collect. | ||||
TBD | 4.3.3.2. Cancel Observational/Event-based Collection | |||
5.2.1.2. Capabilities | The Orchestrator supplies a payload of instructions to a topic or set | |||
of topics to which Posture Collection Services are subscribed. The | ||||
receiving PCS components cancel the identified observational/event- | ||||
based collection executing on that PCS. | ||||
TBD | 4.3.4. Persist Collected Posture Attributes | |||
5.2.1.3. Workflow(s) | [TBD] Normalization? | |||
TBD | 4.3.5. Initiate Ad-Hoc Evaluation | |||
5.3. Configuration Management | [TBD] ### Coordinate Periodic Evaluation [TBD] #### Schedule [TBD] | |||
#### Cancel [TBD] ### Coordinate Change-based Evaluation [TBD] i.e. | ||||
if a posture attribute in the repository is changed, trigger an | ||||
evaluation of particular policy items | ||||
Configuration management involves configuration assessment, which | 4.3.6. Queries | |||
requires state assessment. The [CISCONTROLS] specify two high-level | ||||
controls concerning configuration management (Control 5 for non- | ||||
network devices and Control 11 for network devices). As an aside, | ||||
these controls are listed separately because many enterprises have | ||||
different organizations for managing network infrastructure and | ||||
workload endpoints. Merging the two controls results in the | ||||
following paraphrasing: Establish, implement, and actively manage | ||||
(track, report on, correct) the security configuration of systems | ||||
using a rigorous configuration management and change control process | ||||
in order to prevent attackers from exploiting vulnerable services and | ||||
settings. | ||||
Typically, an enterprise will use configuration guidance from a | [TBD] Queries should allow for a "freshness" time period, allowing | |||
reputable source, and from time to time they may tailor the guidance | the requesting entity to determine if/when posture attributes must be | |||
from that source prior to adopting it as part of their enterprise | re-collected prior to performing evaluation. This freshness time | |||
standard. The enterprise standard is then provided to the | period can be "zeroed out" for the purpose of automatically | |||
appropriate configuration assessment tools and they assess endpoints | triggering re-collection regardless of the most recent collection. | |||
and/or appropriate endpoint information. | ||||
A preferred flow follows: | 5. Taxonomy | |||
5.1. Orchestrator Registration | ||||
o Reputable source publishes new or updated configuration guidance | The Orchestrator Registration taxonomy describes how an Orchestrator | |||
onboards to the ecosystem, or how it returns from a non-operational | ||||
state. | ||||
o Enterprise configuration assessment capability retrieves | 5.1.1. Topic | |||
configuration guidance from reputable source | ||||
o Optional: Configuration guidance is tailored for enterprise- | N/A | |||
specific needs | ||||
o Configuration assessment tool queries asset inventory repository | 5.1.2. Interaction Type | |||
to retrieve a list of affected endpoints | ||||
o Configuration assessment tool queries configuration state | Directed (Request/Response) | |||
repository to evaluate compliance | ||||
o If information is stale or unavailable, configuration assessment | 5.1.3. Initiator | |||
tool triggers an ad hoc assessment | ||||
The SACM architecture needs to support varying deployment models to | Orchestrator | |||
accommodate the current state of the industry, but should strongly | ||||
encourage event-driven approaches to monitoring configuration. | ||||
5.3.1. Components, Capabilities and Workflow(s) | 5.1.4. Request Payload | |||
This section provides more detail about the components and | N/A | |||
capabilities required when considering the aforementioned | ||||
configuration management workflow. | ||||
5.3.1.1. Components | 5.1.5. Receiver | |||
The following is a minimal list of SACM Components required to | N/A | |||
implement the aforementioned configuration assessment workflow. | ||||
o Configuration Policy Feed: An external source of authoritative | 5.1.6. Process Description | |||
configuration recommendations. | ||||
o Configuration Policy Repository: An internal repository of | Once the Orchestrator has authenticated to the Integration Service, | |||
enterprise standard configurations. | it must establish (or re-establish) any service handlers interacting | |||
with administrative interfaces and/or general operational interfaces. | ||||
o Configuration Assessment Orchestrator: A component responsible for | For initial registration, the Orchestrator MUST enable capabilities | |||
orchestrating assessments. | to: | |||
o Posture Attribute Collection Subsystem: A component responsible | * Receive onboarding requests via the "/orchestrator/registration" | |||
for collection of posture attributes from systems. | topic, | |||
o Posture Attribute Repository: A component used for storing system | * Generate, manage, and persist unique identifiers for all | |||
posture attribute values. | registered components, | |||
o Configuration Assessment Evaluator: A component responsible for | * Inventory and manage its "roster" (the list of registered | |||
evaluating system posture attribute values against expected | components), and | |||
posture attribute values. | ||||
o Configuration Assessment Results Repository: A component used for | * Support making directed requests to registered components over the | |||
storing evaluation results. | component's administrative interface, as configured by the | |||
"/orchestrator/[component-unique-identifier]" topic. | ||||
5.3.1.2. Capabilities | Administrative interfaces are to be re-established through the | |||
inventory of previously registered components, such as Posture | ||||
Collection Services, Repositories, or Posture Evaluation Services. | ||||
Per [RFC8248], solutions MUST support capability negotiation. | 5.1.7. Response Payload | |||
Components implementing specific interfaces and operations (i.e. | ||||
interactions) will need a method of describing their capabilities to | ||||
other components participating in the ecosystem; for example, "As a | ||||
component in the ecosystem, I can assess the configuration of | ||||
Windows, MacOS, and AWS using OVAL". | ||||
5.3.1.3. Configuration Assessment Workflow | N/A | |||
This section describes the components and interactions in a basic | 5.1.8. Response Processing | |||
configuration assessment workflow. For simplicity, error conditions | ||||
are recognized as being necessary and are not depicted. When one | ||||
component messages another component, the message is expected to be | ||||
handled appropriately unless there is an error condition, or other | ||||
notification, messaged in return. | ||||
+-------------+ +----------------+ +------------------+ +------------+ | N/A | |||
| Policy Feed | | Orchestrator | | Evaluation | | Evaluation | | ||||
+------+------+ +-------+--------+ | Sub-Architecture | | Results | | ||||
| | +---^----------+---+ | Repository | | ||||
| | | | +------^-----+ | ||||
| | | | | | ||||
1.| 3.| 8.| 9.| 10.| | ||||
| | | | | | ||||
| | | | | | ||||
+------v-----------------v---------------+----------v-------------+-----+ | ||||
| Integration Service | | ||||
+-----+----------------------------------+----------^---------+------^--+ | ||||
| | | | | | ||||
| | | | | | ||||
2.| 4.| 5.| 6.| 7.| | ||||
| | | | | | ||||
| | | | | | ||||
+-----v------+ +---v----------+---+ +--v------+--+ | ||||
| Policy | | Collection | | Posture | | ||||
| Repository | | Sub-Architecture | | Attribute | | ||||
+------------+ +------------------+ | Repository | | ||||
+------------+ | ||||
Figure 5: Configuration Assessment Component Interactions | 5.2. Component Registration | |||
Figure 5 depicts configuration assessment components and their | Component onboarding describes how an individual component becomes | |||
interactions, which are further described below. | part of the ecosystem; registering with the orchestrator, advertising | |||
capabilities, establishing its administrative interface, and | ||||
subscribing to relevant topics. | ||||
1. A policy feed provides a configuration assessment policy payload | 5.2.1. Topic | |||
to the Integration Service. | ||||
2. The Policy Repository, a consumer of Policy Feed information, | "/orchestrator/registration" | |||
receives and persists the Policy Feed's payload. | ||||
3. Orchestration component(s), either manually invoked, scheduled, | "[component-type]" includes "pcs", "repository", "pes", and MORE TBD | |||
or event-based, publish a payload to begin the configuration | ||||
assessment process. | ||||
4. If necessary, Collection Sub-Architecture components may be | 5.2.2. Interaction Type | |||
invoked to collect neeeded posture attribute information. | ||||
5. If necessary, the Collection Sub-Architecture will provide | Directed (Request/Response) | |||
collected posture attributes to the Integration Service for | ||||
persistence to the Posture Attribute Repository. | ||||
6. The Posture Attribute Repository will consume a payload querying | 5.2.3. Initiator | |||
for relevant posture attribute information. | ||||
7. The Posture Attribute Repository will provide the requested | Any component wishing to join the ecosystem, such as Posture | |||
information to the Integration Service, allowing further | Collection Services, Repositories (policy, collection content, | |||
orchestration payloads requesting the Evaluation Sub- | posture attribute, etc), Posture Evaluation Services and more. | |||
Architecture perform evaluation tasks. | ||||
8. The Evaluation Sub-Architecture consumes the evaluation payload | 5.2.4. Request Payload | |||
and performs component-specific state comparison operations to | ||||
produce evaluation results. | ||||
9. A payload containing evaluation results are provided by the | [TBD] Information Elements, such as - identifying-information - | |||
Evaluation Sub-Architecture to the Integration Service | component-type (pcs, pes, repository, etc) - name - description | |||
10. Evaluation results are consumed by/persisted to the Evaluation | 5.2.5. Receiver | |||
Results Repository | ||||
In the above flow, the payload information is expected to convey the | Orchestrator | |||
context required by the receiving component for the action being | ||||
taken under different circumstances. For example, a directed message | 5.2.6. Process Description | |||
sent from an Orchestrator to a Collection sub-architecture might be | ||||
telling that Collector to watch a specific posture attribute and | When the Orchestrator receives the component's request for | |||
report only specific detected changes to the Posture Attribute | onboarding, it will: - Generate a unique identifier, "[component- | |||
Repository, or it might be telling the Collector to gather that | unique-identifier]", for the onboarding component, - Persist required | |||
posture attribute immediately. Such details are expected to be | information (TBD probably need more specifics), including the | |||
handled as part of that payload, not as part of the architecture | "[component-unique-identifier]" to its component inventory, enabling | |||
described herein. | an up-to-date roster of components being orchestrated, - Establish | |||
the administrative interface via the "/orchestrator/[component- | ||||
unique-identifier]" topic. | ||||
5.2.7. Response Payload | ||||
[TBD] Information Elements - component-unique-identifier | ||||
5.2.8. Response Processing | ||||
Successful receipt of the Orchestrator's response, including the | ||||
"[component-unique-identifier]" indicates the component is onboarded | ||||
to the ecosystem. Using the response payload, the component can then | ||||
establish its end of the administrative interface with the | ||||
Orchestrator, using the "/orchestrator/[component-unique-identifier]" | ||||
topic. Given this administrative interface, the component can then | ||||
initiate the Section 5.3.1 | ||||
5.3. Orchestrator-to-Component Administrative Interface | ||||
A number of functions may take place which, instead of being | ||||
published to a multi-subscriber topic, may require direct interaction | ||||
between an Orchestrator and a registered component. During component | ||||
onboarding, this direct channel is established first by the | ||||
Orchestrator and subsequently complemented by the onboarding | ||||
component. | ||||
5.3.1. Capability Advertisement Handshake | ||||
Capability advertisement, otherwise known as service discovery, is | ||||
necessary to establish and maintain a cooperative ecosystem of tools. | ||||
Using this capability advertisement "handshake", the Orchestrator | ||||
becomes knowledgeable of a component's operational capabilities, the | ||||
endpoints/services with which the component interacts, and | ||||
establishes a direct mode of contact for invoking those capabilities. | ||||
5.3.1.1. Topic | ||||
"/orchestrator/[component-unique-identifier]" | ||||
5.3.1.2. Interaction Type | ||||
Directed (Request/Response) | ||||
5.3.1.3. Initiator | ||||
Any ecosystem component (minus the Orchestrator) | ||||
5.3.1.4. Request Payload | ||||
[TBD] Information Elements - component-type - component-unique- | ||||
identifier - interaction-type (capability-advertisement): - list of | ||||
capabilities - list of endpoints/services | ||||
5.3.1.5. Receiver | ||||
Orchestrator | ||||
5.3.1.6. Process Description | ||||
Upon receipt of the component's capability advertisement, it SHOULD: | ||||
- Persist the component's capabilities to the Orchestrator's | ||||
inventory - Coordinate, based on the supplied capabilities, a list of | ||||
topics to which the component should subscribe | ||||
5.3.1.7. Response Payload | ||||
[TBD] Information Elements - list of topics to subscribe | ||||
5.3.1.8. Response Processing | ||||
Once the component has received the response to its capability | ||||
advertisement, it should subscribe to the Orchestrator-provided | ||||
topics. | ||||
5.3.2. Directed Collection | ||||
### Directed Evaluation ### Heartbeat | ||||
5.4. [Taxonomy Name] | ||||
DESCRIPTION OF TAXONOMY | ||||
5.4.1. Topic | ||||
"/name/of/topic" ### Interaction Type [Directed (Request/Response) | ||||
-or- Publish/Subscribe] ### Initiator [Component sending/publishing | ||||
the payload] ### Request Payload DESCRIPTION OF INFORMATION MODEL OF | ||||
REQUEST PAYLOAD; i.e. what elements need to be in whatever format in | ||||
the payload. ### Receiver [Component receiving/subscribed-to the | ||||
payload] ### Process Description [What the receiver does with the | ||||
payload] ### Response Payload DESCRIPTION OF INFORMATION MODEL OF | ||||
RESPONSE PAYLOAD; i.e. what elements need to be in whatever format in | ||||
the payload. ### Response Processing [What the initiator does with | ||||
any response, if there is one] | ||||
6. Privacy Considerations | 6. Privacy Considerations | |||
TODO | [TBD] | |||
7. Security Considerations | 7. Security Considerations | |||
TODO | [TBD] | |||
8. IANA Considerations | 8. IANA Considerations | |||
TODO: Revamp this section after the configuration assessment workflow | [TBD] Revamp this section after the configuration assessment workflow | |||
is fleshed out. | is fleshed out. | |||
IANA tables can probably be used to make life a little easier. We | IANA tables can probably be used to make life a little easier. We | |||
would like a place to enumerate: | would like a place to enumerate: | |||
o Capability/operation semantics | * Capability/operation semantics | |||
o SACM Component implementation identifiers | * SACM Component implementation identifiers | |||
o SACM Component versions | ||||
o Associations of SACM Components (and versions) to specific | * SACM Component versions | |||
* Associations of SACM Components (and versions) to specific | ||||
Capabilities | Capabilities | |||
o Collection sub-architecture Identification | * Collection sub-architecture Identification | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[I-D.ietf-sacm-ecp] | [I-D.ietf-sacm-ecp] | |||
Haynes, D., Fitzgerald-McKay, J., and L. Lorenzin, | Haynes, D., Fitzgerald-McKay, J., and L. Lorenzin, | |||
"Endpoint Posture Collection Profile", draft-ietf-sacm- | "Endpoint Posture Collection Profile", draft-ietf-sacm- | |||
ecp-05 (work in progress), June 2019. | ecp-05 (work in progress), 21 June 2019, | |||
<http://www.ietf.org/internet-drafts/draft-ietf-sacm-ecp- | ||||
05.txt>. | ||||
[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, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC8412] Schmidt, C., Haynes, D., Coffin, C., Waltermire, D., and | [RFC8412] Schmidt, C., Haynes, D., Coffin, C., Waltermire, D., and | |||
J. Fitzgerald-McKay, "Software Inventory Message and | J. Fitzgerald-McKay, "Software Inventory Message and | |||
Attributes (SWIMA) for PA-TNC", RFC 8412, | Attributes (SWIMA) for PA-TNC", RFC 8412, | |||
DOI 10.17487/RFC8412, July 2018, | DOI 10.17487/RFC8412, July 2018, | |||
skipping to change at page 19, line 40 ¶ | skipping to change at page 22, line 27 ¶ | |||
[RFC8600] Cam-Winget, N., Ed., Appala, S., Pope, S., and P. Saint- | [RFC8600] Cam-Winget, N., Ed., Appala, S., Pope, S., and P. Saint- | |||
Andre, "Using Extensible Messaging and Presence Protocol | Andre, "Using Extensible Messaging and Presence Protocol | |||
(XMPP) for Security Information Exchange", RFC 8600, | (XMPP) for Security Information Exchange", RFC 8600, | |||
DOI 10.17487/RFC8600, June 2019, | DOI 10.17487/RFC8600, June 2019, | |||
<https://www.rfc-editor.org/info/rfc8600>. | <https://www.rfc-editor.org/info/rfc8600>. | |||
9.2. Informative References | 9.2. Informative References | |||
[CISCONTROLS] | [CISCONTROLS] | |||
"CIS Controls v7.0", n.d., | "CIS Controls v7.0", May 2020, | |||
<https://www.cisecurity.org/controls>. | <https://www.cisecurity.org/controls>. | |||
[draft-birkholz-sacm-yang-content] | [draft-birkholz-sacm-yang-content] | |||
Birkholz, H. and N. Cam-Winget, "YANG subscribed | Birkholz, H. and N. Cam-Winget, "YANG subscribed | |||
notifications via SACM Statements", n.d., | notifications via SACM Statements", May 2020, | |||
<https://tools.ietf.org/html/draft-birkholz-sacm-yang- | <https://tools.ietf.org/html/draft-birkholz-sacm-yang- | |||
content-01>. | content-01>. | |||
[HACK100] "IETF 100 Hackathon - Vulnerability Scenario EPCP+XMPP", | [HACK100] "IETF 100 Hackathon - Vulnerability Scenario EPCP+XMPP", | |||
n.d., <https://www.github.com/sacmwg/vulnerability- | May 2020, | |||
scenario/ietf-hackathon>. | <https://www.github.com/sacmwg/vulnerability-scenario/ | |||
ietf-hackathon>. | ||||
[HACK101] "IETF 101 Hackathon - Configuration Assessment XMPP", | [HACK101] "IETF 101 Hackathon - Configuration Assessment XMPP", May | |||
n.d., <https://www.github.com/CISecurity/Integration>. | 2020, <https://www.github.com/CISecurity/Integration>. | |||
[HACK102] "IETF 102 Hackathon - YANG Collection on Traditional | [HACK102] "IETF 102 Hackathon - YANG Collection on Traditional | |||
Endpoints", n.d., | Endpoints", May 2020, | |||
<https://www.github.com/CISecurity/YANG>. | <https://www.github.com/CISecurity/YANG>. | |||
[HACK103] "IETF 103 Hackathon - N/A", n.d., | [HACK103] "IETF 103 Hackathon - N/A", May 2020, | |||
<https://www.ietf.org/how/meetings/103/>. | <https://www.ietf.org/how/meetings/103/>. | |||
[HACK104] "IETF 104 Hackathon - A simple XMPP client", n.d., | [HACK104] "IETF 104 Hackathon - A simple XMPP client", May 2020, | |||
<https://github.com/CISecurity/SACM-Architecture>. | <https://github.com/CISecurity/SACM-Architecture>. | |||
[HACK105] "IETF 105 Hackathon - A more robust XMPP client including | [HACK105] "IETF 105 Hackathon - A more robust XMPP client including | |||
collection extensions", n.d., | collection extensions", May 2020, | |||
<https://github.com/CISecurity/SACM-Architecture>. | <https://github.com/CISecurity/SACM-Architecture>. | |||
[HACK99] "IETF 99 Hackathon - Vulnerability Scenario EPCP", n.d., | [HACK99] "IETF 99 Hackathon - Vulnerability Scenario EPCP", May | |||
2020, | ||||
<https://www.github.com/sacmwg/vulnerability-scenario/ | <https://www.github.com/sacmwg/vulnerability-scenario/ | |||
ietf-hackathon>. | ietf-hackathon>. | |||
[I-D.ietf-sacm-terminology] | [I-D.ietf-sacm-terminology] | |||
Birkholz, H., Lu, J., Strassner, J., Cam-Winget, N., and | Birkholz, H., Lu, J., Strassner, J., Cam-Winget, N., and | |||
A. Montville, "Security Automation and Continuous | A. Montville, "Security Automation and Continuous | |||
Monitoring (SACM) Terminology", draft-ietf-sacm- | Monitoring (SACM) Terminology", draft-ietf-sacm- | |||
terminology-16 (work in progress), December 2018. | terminology-16 (work in progress), 14 December 2018, | |||
<http://www.ietf.org/internet-drafts/draft-ietf-sacm- | ||||
terminology-16.txt>. | ||||
[NIST800126] | [NIST800126] | |||
Waltermire, D., Quinn, S., Booth, H., Scarfone, K., and D. | Waltermire, D., Quinn, S., Booth, H., Scarfone, K., and D. | |||
Prisaca, "SP 800-126 Rev. 3 - The Technical Specification | Prisaca, "SP 800-126 Rev. 3 - The Technical Specification | |||
for the Security Content Automation Protocol (SCAP) - SCAP | for the Security Content Automation Protocol (SCAP) - SCAP | |||
Version 1.3", February 2018, | Version 1.3", February 2018, | |||
<https://csrc.nist.gov/publications/detail/sp/800-126/rev- | <https://csrc.nist.gov/publications/detail/sp/800-126/rev- | |||
3/final>. | 3/final>. | |||
[NISTIR7694] | [NISTIR7694] | |||
Halbardier, A., Waltermire, D., and M. Johnson, "NISTIR | Halbardier, A., Waltermire, D., and M. Johnson, "NISTIR | |||
7694 Specification for Asset Reporting Format 1.1", n.d., | 7694 Specification for Asset Reporting Format 1.1", May | |||
2020, | ||||
<https://csrc.nist.gov/publications/detail/nistir/7694/ | <https://csrc.nist.gov/publications/detail/nistir/7694/ | |||
final>. | final>. | |||
[RFC5023] Gregorio, J., Ed. and B. de hOra, Ed., "The Atom | [RFC5023] Gregorio, J., Ed. and B. de hOra, Ed., "The Atom | |||
Publishing Protocol", RFC 5023, DOI 10.17487/RFC5023, | Publishing Protocol", RFC 5023, DOI 10.17487/RFC5023, | |||
October 2007, <https://www.rfc-editor.org/info/rfc5023>. | October 2007, <https://www.rfc-editor.org/info/rfc5023>. | |||
[RFC7632] Waltermire, D. and D. Harrington, "Endpoint Security | [RFC7632] Waltermire, D. and D. Harrington, "Endpoint Security | |||
Posture Assessment: Enterprise Use Cases", RFC 7632, | Posture Assessment: Enterprise Use Cases", RFC 7632, | |||
DOI 10.17487/RFC7632, September 2015, | DOI 10.17487/RFC7632, September 2015, | |||
skipping to change at page 21, line 20 ¶ | skipping to change at page 24, line 10 ¶ | |||
[RFC8248] Cam-Winget, N. and L. Lorenzin, "Security Automation and | [RFC8248] Cam-Winget, N. and L. Lorenzin, "Security Automation and | |||
Continuous Monitoring (SACM) Requirements", RFC 8248, | Continuous Monitoring (SACM) Requirements", RFC 8248, | |||
DOI 10.17487/RFC8248, September 2017, | DOI 10.17487/RFC8248, September 2017, | |||
<https://www.rfc-editor.org/info/rfc8248>. | <https://www.rfc-editor.org/info/rfc8248>. | |||
[RFC8322] Field, J., Banghart, S., and D. Waltermire, "Resource- | [RFC8322] Field, J., Banghart, S., and D. Waltermire, "Resource- | |||
Oriented Lightweight Information Exchange (ROLIE)", | Oriented Lightweight Information Exchange (ROLIE)", | |||
RFC 8322, DOI 10.17487/RFC8322, February 2018, | RFC 8322, DOI 10.17487/RFC8322, February 2018, | |||
<https://www.rfc-editor.org/info/rfc8322>. | <https://www.rfc-editor.org/info/rfc8322>. | |||
[XMPPEXT] "XMPP Extensions", n.d., <https://xmpp.org/extensions/>. | [XMPPEXT] "XMPP Extensions", May 2020, | |||
<https://xmpp.org/extensions/>. | ||||
Appendix A. Mapping to RFC8248 | Appendix A. Security Domain Workflows | |||
TODO: Consider removing or placing in a separate solution draft. | This section describes three primary information security domains | |||
from which workflows may be derived: IT Asset Management, | ||||
Vulnerability Management, and Configuration Management. | ||||
This section provides a mapping of XMPP and XMPP Extensions to the | A.1. IT Asset Management | |||
relevant requirements from [RFC8248]. In the table below, the ID and | ||||
Name columns provide the ID and Name of the requirement directly out | ||||
of [RFC8248]. The Supported By column may contain one of several | ||||
values: | ||||
o N/A: The requirement is not applicable to this architectural | Information Technology asset management is easier said than done. | |||
exploration | The [CISCONTROLS] have two controls dealing with IT asset management. | |||
Control 1, Inventory and Control of Hardware Assets, states, | ||||
"Actively manage (inventory, track, and correct) all hardware devices | ||||
on the network so that only authorized devices are given access, and | ||||
unauthorized and unmanaged devices are found and prevented from | ||||
gaining access." Control 2, Inventory and Control of Software | ||||
Assets, states, "Actively manage (inventory, track, and correct) all | ||||
software on the network so that only authorized software is installed | ||||
and can execute, and that unauthorized and unmanaged software is | ||||
found and prevented from installation or execution." | ||||
o Architecture: This architecture (possibly assuming some | In spirit, this covers all of the processing entities on your network | |||
components) should meet the requirement | (as opposed to things like network cables, dongles, adapters, etc.), | |||
whether physical or virtual, on-premises or in the cloud. | ||||
o XMPP: The set of XMPP Core specifications and the collection of | A.1.1. Components, Capabilities and Workflow(s) | |||
applicable extensions, deployment, and operational considerations. | ||||
o XMPP-Core: The requirement is satisfied by a core XMPP feature | TBD | |||
o XEP-nnnn: The requirement is satisfied by a numbered XMPP | A.1.1.1. Components | |||
extension (see [XMPPEXT]) | ||||
o Operational: The requirement is an operational concern or can be | TBD | |||
addressed by an operational deployment | ||||
o Implementation: The requirement is an implementation concern | A.1.1.2. Capabilities | |||
If there is no entry in the Supported By column, then there is a gap | An IT asset management capability needs to be able to: | |||
that must be filled. | ||||
+----------+----------------------------------------+---------------+ | * Identify and catalog new assets by executing Target Endpoint | |||
| ID | Name | Supported By | | Discovery Tasks | |||
+----------+----------------------------------------+---------------+ | ||||
| G-001 | Solution Extensibility | XMPP-Core | | ||||
| | | | | ||||
| G-002 | Interoperability | XMPP | | ||||
| | | | | ||||
| G-003 | Scalability | XMPP | | ||||
| | | | | ||||
| G-004 | Versatility | XMPP-Core | | ||||
| | | | | ||||
| G-005 | Information Extensibility | XMPP-Core | | ||||
| | | | | ||||
| G-006 | Data Protection | Operational | | ||||
| | | | | ||||
| G-007 | Data Partitioning | Operational | | ||||
| | | | | ||||
| G-008 | Versioning and Backward Compatibility | XEP-0115/0030 | | ||||
| | | | | ||||
| G-009 | Information Discovery | XEP-0030 | | ||||
| | | | | ||||
| G-010 | Target Endpoint Discovery | XMPP-Core | | ||||
| | | | | ||||
| G-011 | Push and Pull Access | XEP-0060/0312 | | ||||
| | | | | ||||
| G-012 | SACM Component Interface | N/A | | ||||
| | | | | ||||
| G-013 | Endpoint Location and Network Topology | | | ||||
| | | | | ||||
| G-014 | Target Endpoint Identity | XMPP-Core | | ||||
| | | | | ||||
| G-015 | Data Access Control | | | ||||
| | | | | ||||
| ARCH-001 | Component Functions | XMPP | | ||||
| | | | | ||||
| ARCH-002 | Scalability | XMPP-Core | | ||||
| | | | | ||||
| ARCH-003 | Flexibility | XMPP-Core | | ||||
| | | | | ||||
| ARCH-004 | Separation of Data and Management | | | ||||
| | Functions | | | ||||
| | | | | ||||
| ARCH-005 | Topology Flexibility | XMPP-Core | | ||||
| | | | | ||||
| ARCH-006 | Capability Negotiation | XEP-0115/0030 | | ||||
| | | | | ||||
| ARCH-007 | Role-Based Authorization | XMPP-Core | | ||||
| | | | | ||||
| ARCH-008 | Context-Based Authorization | | | ||||
| | | | | ||||
| ARCH-009 | Time Synchronization | Operational | | ||||
| | | | | ||||
| IM-001 | Extensible Attribute Vocabulary | N/A | | ||||
| | | | | ||||
| IM-002 | Posture Data Publication | N/A | | ||||
| | | | | ||||
| IM-003 | Data Model Negotiation | N/A | | ||||
| | | | | ||||
| IM-004 | Data Model Identification | N/A | | ||||
| | | | | ||||
| IM-005 | Data Lifetime Management | N/A | | ||||
| | | | | ||||
| IM-006 | Singularity and Modularity | N/A | | ||||
| | | | | ||||
| DM-001 | Element Association | N/A | | ||||
| | | | | ||||
| DM-002 | Data Model Structure | N/A | | ||||
| | | | | ||||
| DM-003 | Search Flexibility | N/A | | ||||
| | | | | ||||
| DM-004 | Full vs. Partial Updates | N/A | | ||||
| | | | | ||||
| DM-005 | Loose Coupling | N/A | | ||||
| | | | | ||||
| DM-006 | Data Cardinality | N/A | | ||||
| | | | | ||||
| DM-007 | Data Model Negotiation | N/A | | ||||
| | | | | ||||
| DM-008 | Data Origin | N/A | | ||||
| | | | | ||||
| DM-009 | Origination Time | N/A | | ||||
| | | | | ||||
| DM-010 | Data Generation | N/A | | ||||
| | | | | ||||
| DM-011 | Data Source | N/A | | ||||
| | | | | ||||
| DM-012 | Data Updates | N/A | | ||||
| | | | | ||||
| DM-013 | Multiple Collectors | N/A | | ||||
| | | | | ||||
| DM-014 | Attribute Extensibility | N/A | | ||||
| | | | | ||||
| DM-015 | Solicited vs. Unsolicited Updates | N/A | | ||||
| | | | | ||||
| DM-016 | Transfer Agnostic | N/A | | ||||
| | | | | ||||
| OP-001 | Time Synchronization | | | ||||
| | | | | ||||
| OP-002 | Collection Abstraction | | | ||||
| | | | | ||||
| OP-003 | Collection Composition | | | ||||
| | | | | ||||
| OP-004 | Attribute-Based Query | | | ||||
| | | | | ||||
| OP-005 | Information-Based Query with Filtering | | | ||||
| | | | | ||||
| OP-006 | Operation Scalability | | | ||||
| | | | | ||||
| OP-007 | Data Abstraction | | | ||||
| | | | | ||||
| OP-008 | Provider Restriction | | | ||||
| | | | | ||||
| T-001 | Multiple Transfer Protocol Support | Architecture | | ||||
| | | | | ||||
| T-002 | Data Integrity | Operational | | ||||
| | | | | ||||
| T-003 | Data Confidentiality | Operational | | ||||
| | | | | ||||
| T-004 | Transfer Protection | | | ||||
| | | | | ||||
| T-005 | Transfer Reliability | | | ||||
| | | | | ||||
| T-006 | Transfer-Layer Requirements | | | ||||
| | | | | ||||
| T-007 | Transfer Protocol Adoption | Architecture | | ||||
+----------+----------------------------------------+---------------+ | ||||
Appendix B. Example Components | * Provide information about its managed assets, including uniquely | |||
identifying information (for that enterprise) | ||||
TODO: Consider removing. | * Handle software and/or hardware (including virtual assets) | |||
B.1. Policy Services | * Represent cloud hybrid environments | |||
Consider a policy server conforming to [RFC8322]. [RFC8322] | A.1.1.3. Workflow(s) | |||
describes a RESTful way based on the ATOM Publishing Protocol | ||||
([RFC5023]) to find specific data collections. While this represents | ||||
a specific binding (i.e. RESTful API based on [RFC5023]), there is a | ||||
more abstract way to look at ROLIE. | ||||
ROLIE provides notional workspaces and collections, and provides the | TBD | |||
concept of information categories and links. Strictly speaking, | ||||
these are logical concepts independent of the RESTful binding ROLIE | ||||
specifies. In other words, ROLIE binds a logical interface (i.e. | ||||
GET workspace, GET collection, SET entry, and so on) to a specific | A.2. Vulnerability Management | |||
mechanism (namely an ATOM Publication Protocol extension). | ||||
It is not inconceivable to believe there could be a different | Vulnerability management is a relatively established process. To | |||
interface mechanism, or a connector, providing these same operations | paraphrase the [CISCONTROLS], continuous vulnerability management is | |||
using XMPP-Grid as the transfer mechanism. | the act of continuously acquiring, assessing, and taking subsequent | |||
action on new information in order to identify and remediate | ||||
vulnerabilities, therefore minimizing the window of opportunity for | ||||
attackers. | ||||
Even if a [RFC8322] server were external to an organization, there | A vulnerability assessment (i.e. vulnerability detection) is | |||
would be a need for a policy source inside the organization as well, | performed in two steps: | |||
and it may be preferred for such a policy source to be connected | ||||
directly to the ecosystem's communication infrastructure. | ||||
B.2. Software Inventory | * Endpoint information collected by the endpoint management | |||
capabilities is examined by the vulnerability management | ||||
capabilities through Evaluation Tasks. | ||||
The SACM working group has accepted work on the Endpoint Posture | * If the data possessed by the endpoint management capabilities is | |||
Collection Profile [I-D.ietf-sacm-ecp], which describes a collection | insufficient, a Collection Task is triggered and the necessary | |||
architecture and may be viewed as a collector coupled with a | data is collected from the target endpoint. | |||
collection-specific repository. | ||||
Posture Manager Endpoint | Vulnerability detection relies on the examination of different | |||
Orchestrator +---------------+ +---------------+ | endpoint information depending on the nature of a specific | |||
+--------+ | | | | | vulnerability. Common endpoint information used to detect a | |||
| | | +-----------+ | | +-----------+ | | vulnerability includes: | |||
| |<---->| | Posture | | | | Posture | | | ||||
| | pub/ | | Validator | | | | Collector | | | ||||
| | sub | +-----------+ | | +-----------+ | | ||||
+--------+ | | | | | | | ||||
| | | | | | | ||||
Evaluator Repository | | | | | | | ||||
+------+ +--------+ | +-----------+ |<-------| +-----------+ | | ||||
| | | | | | Posture | | report | | Posture | | | ||||
| | | | | | Collection| | | | Collection| | | ||||
| |<-----> | |<-----| | Manager | | query | | Engine | | | ||||
| |request/| | store| +-----------+ |------->| +-----------+ | | ||||
| |respond | | | | | | | ||||
| | | | | | | | | ||||
+------+ +--------+ +---------------+ +---------------+ | ||||
Figure 6: EPCP Collection Architecture | * A specific software version is installed on the endpoint | |||
In Figure 6, any of the communications between the Posture Manager | * File system attributes | |||
and EPCP components to its left could be performed directly or | ||||
indirectly using a given message transfer mechanism. For example, | ||||
the pub/sub interface between the Orchestrator and the Posture | ||||
Manager could be using a proprietary method or using [RFC8600] or | ||||
some other pub/sub mechanism. Similarly, the store connection from | ||||
the Posture Manager to the Repository could be performed internally | ||||
to a given implementation, via a RESTful API invocation over HTTPS, | ||||
or even over a pub/sub mechanism. | ||||
Our assertion is that the Evaluator, Repository, Orchestrator, and | * Specific state attributes | |||
Posture Manager all have the potential to represent SACM Components | ||||
with specific capability interfaces that can be logically specified, | ||||
then bound to one or more specific transfer mechanisms (i.e. RESTful | ||||
API, [RFC8322], [RFC8600], and so on). | ||||
B.3. Datastream Collection | In some cases, the endpoint information needed to determine an | |||
endpoint's vulnerability status will have been previously collected | ||||
by the endpoint management capabilities and available in a | ||||
Repository. However, in other cases, the necessary endpoint | ||||
information will not be readily available in a Repository and a | ||||
Collection Task will be triggered to perform collection from the | ||||
target endpoint. Of course, some implementations of endpoint | ||||
management capabilities may prefer to enable operators to perform | ||||
this collection even when sufficient information can be provided by | ||||
the endpoint management capabilities (e.g. there may be freshness | ||||
requirements for information). | ||||
[NIST800126], also known as SCAP 1.3, provides the technical | A.2.1. Components, Capabilities and Workflow(s) | |||
specifications for a "datastream collection". The specification | ||||
describes the "datastream collection" as being "composed of SCAP data | ||||
streams and SCAP source components". A "datastream" provides an | ||||
encapsulation of the SCAP source components required to, for example, | ||||
perform configuration assessment on a given endpoint. These source | ||||
components include XCCDF checklists, OVAL Definitions, and CPE | ||||
Dictionary information. A single "datastream collection" may | ||||
encapsulate multiple "datastreams", and reference any number of SCAP | ||||
components. Datastream collections were intended to provide an | ||||
envelope enabling transfer of SCAP data more easily. | ||||
The [NIST800126] specification also defines the "SCAP result data | TBD | |||
stream" as being conformant to the Asset Reporting Format | ||||
specification, defined in [NISTIR7694]. The Asset Reporting Format | ||||
provides an encapsulation of the SCAP source components, Asset | ||||
Information, and SCAP result components, such as system | ||||
characteristics and state evaluation results. | ||||
What [NIST800126]did not do is specify the interface for finding or | A.2.1.1. Components | |||
acquiring source datastream information, nor an interface for | ||||
publishing result information. Discovering the actual resources for | ||||
this information could be done via ROLIE, as described in the Policy | ||||
Services section above, but other repositories of SCAP data exist as | ||||
well. | ||||
B.4. Network Configuration Collection | TBD | |||
[draft-birkholz-sacm-yang-content] illustrates a SACM Component | A.2.1.2. Capabilities | |||
incorporating a YANG Push client function and an XMPP-grid publisher | ||||
function. [draft-birkholz-sacm-yang-content] further states "the | ||||
output of the YANG Push client function is encapsulated in a SACM | ||||
Content Element envelope, which is again encapsulated in a SACM | ||||
statement envelope" which are published, essentially, via an XMPP- | ||||
Grid Connector for SACM Components also part of the XMPP-Grid. | ||||
This is a specific example of an existing collection mechanism being | TBD | |||
adapted to the XMPP-Grid message transfer system. | ||||
Appendix C. Exploring An XMPP-based Solution | A.2.1.3. Workflow(s) | |||
TODO: Consider removing or placing in a separate draft. | TBD | |||
Ongoing work has been taking place around and during IETF hackathons. | A.3. Configuration Management | |||
The list of hackathon efforts follows: | ||||
o [HACK99]: A partial implementation of a vulnerability assessment | Configuration management involves configuration assessment, which | |||
scenario involving an [I-D.ietf-sacm-ecp] implementation, a | requires state assessment. The [CISCONTROLS] specify two high-level | |||
[RFC8322] implementation, and a proprietary evaluator to pull the | controls concerning configuration management (Control 5 for non- | |||
pieces together. | network devices and Control 11 for network devices). As an aside, | |||
these controls are listed separately because many enterprises have | ||||
different organizations for managing network infrastructure and | ||||
workload endpoints. Merging the two controls results in the | ||||
following paraphrasing: Establish, implement, and actively manage | ||||
(track, report on, correct) the security configuration of systems | ||||
using a rigorous configuration management and change control process | ||||
in order to prevent attackers from exploiting vulnerable services and | ||||
settings. | ||||
o [HACK100]: Work to combine the vulnerability assessment scenario | Typically, an enterprise will use configuration guidance from a | |||
from [HACK99] with an XMPP-based YANG push model. | reputable source, and from time to time they may tailor the guidance | |||
from that source prior to adopting it as part of their enterprise | ||||
standard. The enterprise standard is then provided to the | ||||
appropriate configuration assessment tools and they assess endpoints | ||||
and/or appropriate endpoint information. | ||||
o [HACK101]: A fully automated configuration assessment | A preferred flow follows: | |||
implementation using XMPP (specifically Publish/Subscribe | ||||
capabilities) as a communication mechanism. | ||||
o [HACK102]: An exploration of how we might model assessment, | * Reputable source publishes new or updated configuration guidance | |||
collection, and evaluation abstractly, and then rely on YANG | * Enterprise configuration assessment capability retrieves | |||
expressions for the attributes of traditional endpoints. | configuration guidance from reputable source | |||
o [HACK103]: No SACM participation at the Bangkok hackathon. | * Optional: Configuration guidance is tailored for enterprise- | |||
specific needs | ||||
o [HACK104]: Basic XMPP-to-Concise MAP - Created an XMPP adapter | * Configuration assessment tool queries asset inventory repository | |||
that can accept basic posture attributes and translate them to | to retrieve a list of affected endpoints | |||
Concise MAP. This hackathon only proved the concept that system | ||||
characteristics information can be transported via XMPP and | ||||
translated to a (very basic) concise MAP implementation. | ||||
o [HACK105]: Advanced XMPP-to-Concise MAP: Full orchestration of | * Configuration assessment tool queries configuration state | |||
collection capabilities using XMPP. Collector implementations | repository to evaluate compliance | |||
extend the core XMPP structure to allow OVAL collection | ||||
instructions (OVAL objects) to inform posture attribute | ||||
collection. Collected system characteristics can be provided to | ||||
the Concise MAP XMPP adapter using all 3 available XMPP | ||||
capabilities: Publish/Subscribe, Information Query (iq - request/ | ||||
response) stanzas, or direct Message stanzas. CDDL was created to | ||||
map collected posture attributes to Concise MAP structure. The | ||||
XMPP adapter translates the incoming system characteristics and | ||||
stores the information in the MAP. | ||||
Figure 7 depicts a slightly more detailed view of the architecture | * If information is stale or unavailable, configuration assessment | |||
(within the enterprise boundary) - one that fosters the development | tool triggers an ad hoc assessment | |||
of a pluggable ecosystem of cooperative tools. Existing collection | ||||
mechanisms can be brought into this architecture by specifying the | ||||
interface of the collector and creating the XMPP-Grid Connector | ||||
binding for that interface. | ||||
Additionally, while not directly depicted in Figure 7, this | The SACM architecture needs to support varying deployment models to | |||
architecture does allow point-to-point interfaces. In fact, | accommodate the current state of the industry, but should strongly | |||
[RFC8600] provides brokering capabilities to facilitate such point- | encourage event-driven approaches to monitoring configuration. | |||
to-point data transfers). Additionally, each of the SACM Components | ||||
depicted in Figure 7 may be a provider, a consumer, or both, | ||||
depending on the workflow in context. | ||||
+--------------+ +--------------+ | A.3.1. Components, Capabilities and Workflow(s) | |||
| Orchestrator | | Repositories | | ||||
+------^-------+ +------^-------+ | ||||
| | | ||||
| | | ||||
+-------v--------------------------v--------+ +-----------------+ | ||||
| XMPP-Grid+ <-----> Downstream Uses | | ||||
+------------------------^------------------+ +-----------------+ | ||||
| | ||||
| | ||||
+-------v------+ | ||||
| XMPP-Grid | | ||||
| Connector(s) | | ||||
+------^-------+ | ||||
| | ||||
+------v-------+ | ||||
| Collector(s) | | ||||
+--------------+ | ||||
Figure 7: XMPP-based Architecture | This section provides more detail about the components and | |||
capabilities required when considering the aforementioned | ||||
configuration management workflow. | ||||
[RFC8600] details a number of XMPP extensions (XEPs) that MUST be | A.3.1.1. Components | |||
utilized to meet the needs of [RFC7632] and [RFC8248]: | ||||
o Service Discovery (XEP-0030): Service Discovery allows XMPP | The following is a minimal list of SACM Components required to | |||
entities to discover information about other XMPP entities. Two | implement the aforementioned configuration assessment workflow. | |||
kinds of information can be discovered: the identity and | ||||
capabilities of an entity, such as supported features, and items | ||||
associated with an entity. | ||||
o Publish-Subscribe (XEP-0060): The PubSub extension enables | * Configuration Policy Feed: An external source of authoritative | |||
entities to create nodes (topics) at a PubSub service and publish | configuration recommendations. | |||
information at those nodes. Once published, an event notification | ||||
is broadcast to all entities that have subscribed to that node. | ||||
At this point, [RFC8600] specifies fewer features than SACM requires, | * Configuration Policy Repository: An internal repository of | |||
and there are other XMPP extensions (XEPs) we need to consider to | enterprise standard configurations. | |||
meet the needs of [RFC7632] and [RFC8248]. In Figure 7 we therefore | ||||
use "XMPP-Grid+" to indicate something more than [RFC8600] alone, | ||||
even though we are not yet fully confident in the exact set of XMPP- | ||||
related extensions we will require. The authors propose work to | ||||
extend (or modify) [RFC8600] to include additional XEPs - possibly | ||||
the following: | ||||
o Entity Capabilities (XEP-0115): This extension defines the methods | * Configuration Assessment Orchestrator: A component responsible for | |||
for broadcasting and dynamically discovering an entities' | orchestrating assessments. | |||
capabilities. This information is transported via standard XMPP | ||||
presence. Example capabilities that could be discovered could | ||||
include support for posture attribute collection, support for | ||||
specific types of posture attribute collection such as EPCP, | ||||
SWIMA, OVAL, or YANG. Other capabilities are still to be | ||||
determined. | ||||
o Ad Hoc Commands (XEP-0050): This extension allows an XMPP entity | * Posture Attribute Collection Subsystem: A component responsible | |||
to advertise and execute application-specific commands. Typically | for collection of posture attributes from systems. | |||
the commands contain data forms (XEP-0004) in order to structure | ||||
the information exchange. This extension may be usable for simple | ||||
orchestration (i.e. "do assessment"). | ||||
o HTTP File Upload (XEP-0363): The HTTP File Upload extension allows | * Posture Attribute Repository: A component used for storing system | |||
for large data sets to be published to a specific path on an HTTP | posture attribute values. | |||
server, and receive a URL from which that file can later be | ||||
downloaded again. XMPP messages and IQs are meant to be compact, | ||||
and large data sets, such as collected posture attributes, may | ||||
exceed a message size threshold. Usage of this XEP allows those | ||||
larger data sets to be persisted, thus necessitating only the | ||||
download URL to be passed via XMPP messages. | ||||
o Personal Eventing Protocol (XEP-0163): The Personal Eventing | * Configuration Assessment Evaluator: A component responsible for | |||
Protocol can be thought of as a virtual PubSub service, allowing | evaluating system posture attribute values against expected | |||
an XMPP account to publish events only to their roster instead of | posture attribute values. | |||
a generic PubSub topic. This XEP may be useful in the cases when | ||||
collection requests or queries are only intended for a subset of | ||||
endpoints and not an entire subscriber set. | ||||
o File Repository and Sharing (XEP-0214): This extension defines a | * Configuration Assessment Results Repository: A component used for | |||
method for XMPP entities to designate a set of file available for | storing evaluation results. | |||
retrieval by other users of their choosing, and is based on PubSub | ||||
Collections. | ||||
o Easy User Onboarding (XEP-401): The goal of this extension is | A.3.1.2. Capabilities | |||
simplified client registration, and may be useful when adding new | ||||
endpoints or SACM components to the ecosystem. | ||||
o Bidirectional-streams Over Synchronous HTTP (BOSH) (XEP-0124): | Per [RFC8248], solutions MUST support capability negotiation. | |||
BOSH emulates the semantics of a long-lived, bidirectional TCP | Components implementing specific interfaces and operations (i.e. | |||
connection between two entities (aka "long polling"). Consider a | interactions) will need a method of describing their capabilities to | |||
SACM component that is updated dynamically, i.e. an internal | other components participating in the ecosystem; for example, "As a | |||
vulnerability definition repository ingesting data from a Feed/ | component in the ecosystem, I can assess the configuration of | |||
Repository of External Data, and a second SACM component such as | Windows, MacOS, and AWS using OVAL". | |||
an Orchestrator. Using BOSH, the Orchestrator can effectively | ||||
continuously poll the vulnerability definition repository for | ||||
changes/updates. | ||||
o PubSub Collection Nodes (XEP-0248): Effectively an extension to | A.3.1.3. Configuration Assessment Workflow | |||
XEP-0060 (Publish-Subscribe), PubSub Collections aim to simplify | ||||
an entities' subscription to multiple related topics, and | ||||
establishes a "node graph" relating parent nodes to its | ||||
descendents. An example "node graph" could be rooted in a | ||||
"vulnerability definitions" topic, and contain descendent topics | ||||
for OS family-level vulnerability definitions (i.e. Windows), and | ||||
further for OS family version-level definitions (i.e. Windows 10 | ||||
or Windows Server 2016). | ||||
o PubSub Since (XEP-0312): This extension enables a subscriber to | This section describes the components and interactions in a basic | |||
automatically receive PubSub and Personal Eventing Protocol (PEP) | configuration assessment workflow. For simplicity, error conditions | |||
notifications since its last logout time. This extension may be | are recognized as being necessary and are not depicted. When one | |||
useful in intermittent connection scenarios, or when entities | component messages another component, the message is expected to be | |||
disconnect and reconnect to the ecosystem. | handled appropriately unless there is an error condition, or other | |||
notification, messaged in return. | ||||
o PubSub Chaining (XEP-0253): This extension describes the | +-------------+ +----------------+ +------------------+ +------------+ | |||
federation of publishing nodes, enabling a publish node of one | | Policy Feed | | Orchestrator | | Evaluation | | Evaluation | | |||
server to be a subscriber to a publishing node of another server. | +------+------+ +-------+--------+ | Sub-Architecture | | Results | | |||
| | +---^----------+---+ | Repository | | ||||
| | | | +------^-----+ | ||||
| | | | | | ||||
1.| 3.| 8.| 9.| 10.| | ||||
| | | | | | ||||
| | | | | | ||||
+------v-----------------v---------------+----------v-------------+-----+ | ||||
| Integration Service | | ||||
+-----+----------------------------------+----------^---------+------^--+ | ||||
| | | | | | ||||
| | | | | | ||||
2.| 4.| 5.| 6.| 7.| | ||||
| | | | | | ||||
| | | | | | ||||
+-----v------+ +---v----------+---+ +--v------+--+ | ||||
| Policy | | Collection | | Posture | | ||||
| Repository | | Sub-Architecture | | Attribute | | ||||
+------------+ +------------------+ | Repository | | ||||
+------------+ | ||||
C.1. Example Architecture using XMPP-Grid and Endpoint Posture | Figure 5: Configuration Assessment Component Interactions | |||
Collection Protocol | ||||
Figure 8 depicts a further detailed view of the architecture | Figure 5 depicts configuration assessment components and their | |||
including the Endpoint Posture Collection Protocol as the collection | interactions, which are further described below. | |||
subsystem, illustrating the idea of a pluggable ecosystem of | ||||
cooperative tools. | ||||
+--------------------+ | 1. A policy feed provides a configuration assessment policy payload | |||
| Feeds/Repositories | | to the Integration Service. | |||
| of External Data | | ||||
+--------------------+ | ||||
| | ||||
********************v*********************** Boundary of Responsibility ******* | ||||
* | * | ||||
* +--------------+ | +-------------------+ +-------------+ * | ||||
* | Orchestrator | | | Posture Attr Repo | | Policy Repo | * | ||||
* +------^-------+ | +---------^---------+ +---^---------+ * | ||||
* | | | | +----------------+ * | ||||
* | | | | | Downstream Uses| * | ||||
* | | | | | +-----------+ | * | ||||
* +------v---------v-----------v---------------v--+ | |Evaluations| | * | ||||
* | XMPP-Grid <-------> +-----------+ | * | ||||
* +----------------^-------------------^----------+ | +-----------+ | * | ||||
* | | | | Analytics | | * | ||||
* | | | +-----------+ | * | ||||
* | +-----v--------+ | +-----------+ | * | ||||
* | | Results Repo | | | Reporting | | * | ||||
* | +--------------+ | +-----------+ | * | ||||
* | +----------------+ * | ||||
* +---------v-----------+ * | ||||
* | XMPP-Grid Connector | * | ||||
* +---------^-----------+ * | ||||
* | * | ||||
* +-----------------v-------------------------------------------------------+ * | ||||
* | | * | ||||
* | +--Posture Collection Manager------------------------------------------+| * | ||||
* | |+-----------------------+ +----------------+ +----------------------+ || * | ||||
* | || Communications Server | | Posture Server | | Posture Validator(s) | || * | ||||
* | |+----------^------------+ +----------------+ +----------------------+ || * | ||||
* | +-----------|----------------------------------------------------------+| * | ||||
* | | | * | ||||
* | +-----------|-------------------------Endpoint or Endpoint Proxy-------+| * | ||||
* | |+----------v------------+ +----------------+ +----------------------+ || * | ||||
* | || Communications Client | | Posture Client | | Posture Collector(s) | || * | ||||
* | |+-----------------------+ +----------------+ +----------------------+ || * | ||||
* | +----------------------------------------------------------------------+| * | ||||
* +-----------------Endpoint Posture Collection Profile---------------------+ * | ||||
* * | ||||
******************************************************************************* | ||||
Figure 8: XMPP-based Architecture including EPCP | 2. The Policy Repository, a consumer of Policy Feed information, | |||
receives and persists the Policy Feed's payload. | ||||
Authors' Addresses | 3. Orchestration component(s), either manually invoked, scheduled, | |||
or event-based, publish a payload to begin the configuration | ||||
assessment process. | ||||
4. If necessary, Collection Sub-Architecture components may be | ||||
invoked to collect neeeded posture attribute information. | ||||
5. If necessary, the Collection Sub-Architecture will provide | ||||
collected posture attributes to the Integration Service for | ||||
persistence to the Posture Attribute Repository. | ||||
6. The Posture Attribute Repository will consume a payload querying | ||||
for relevant posture attribute information. | ||||
7. The Posture Attribute Repository will provide the requested | ||||
information to the Integration Service, allowing further | ||||
orchestration payloads requesting the Evaluation Sub- | ||||
Architecture perform evaluation tasks. | ||||
8. The Evaluation Sub-Architecture consumes the evaluation payload | ||||
and performs component-specific state comparison operations to | ||||
produce evaluation results. | ||||
9. A payload containing evaluation results are provided by the | ||||
Evaluation Sub-Architecture to the Integration Service | ||||
10. Evaluation results are consumed by/persisted to the Evaluation | ||||
Results Repository | ||||
In the above flow, the payload information is expected to convey the | ||||
context required by the receiving component for the action being | ||||
taken under different circumstances. For example, a directed message | ||||
sent from an Orchestrator to a Collection sub-architecture might be | ||||
telling that Collector to watch a specific posture attribute and | ||||
report only specific detected changes to the Posture Attribute | ||||
Repository, or it might be telling the Collector to gather that | ||||
posture attribute immediately. Such details are expected to be | ||||
handled as part of that payload, not as part of the architecture | ||||
described herein. | ||||
Authors' Addresses | ||||
Adam W. Montville | Adam W. Montville | |||
Center for Internet Security | Center for Internet Security | |||
31 Tech Valley Drive | 31 Tech Valley Drive | |||
East Greenbush, NY 12061 | East Greenbush, NY 12061 | |||
USA | United States of America | |||
Email: adam.montville.sdo@gmail.com | Email: adam.montville.sdo@gmail.com | |||
Bill Munyan | Bill Munyan | |||
Center for Internet Security | Center for Internet Security | |||
31 Tech Valley Drive | 31 Tech Valley Drive | |||
East Greenbush, NY 12061 | East Greenbush, NY 12061 | |||
USA | United States of America | |||
Email: bill.munyan.ietf@gmail.com | Email: bill.munyan.ietf@gmail.com | |||
End of changes. 195 change blocks. | ||||
875 lines changed or deleted | 787 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |