forked from sacmwg/draft-ietf-sacm-requirements
-
Notifications
You must be signed in to change notification settings - Fork 0
/
draft-ietf-sacm-requirements.xml
486 lines (313 loc) · 47.2 KB
/
draft-ietf-sacm-requirements.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC5209 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5209.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC6973 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6973.xml">
<!ENTITY RFC7632 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7632.xml">
<!ENTITY I-D.ietf-sacm-terminology SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-sacm-terminology">
<!ENTITY I-D.handt-sacm-alternate-architecture SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.handt-sacm-alternate-architecture.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
(Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
(using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-ietf-sacm-requirements-12" ipr="trust200902">
<!-- category values: std, bcp, info, exp, and historic
ipr values: full3667, noModification3667, noDerivatives3667
you can add the attributes updates="NNNN" and obsoletes="NNNN"
they will automatically be output with "(if approved)" -->
<!-- ***** FRONT MATTER ***** -->
<front>
<!-- The abbreviated title is used in the page header - it is only necessary if the
full title is longer than 39 characters P-->
<title abbrev="Abbreviated Title">Security Automation and Continuous Monitoring (SACM) Requirements</title>
<!-- add 'role="editor"' below for the editors if appropriate -->
<!-- Another author who claims to be an editor -->
<author fullname="Nancy Cam-Winget" initials="N." surname="Cam-Winget">
<organization>Cisco Systems</organization>
<address>
<postal>
<street>3550 Cisco Way</street>
<city>San Jose</city>
<country>US</country>
<code>95134</code>
<region>CA</region>
<!-- Reorder-->
</postal>
<email>[email protected]</email>
<!-- uri and facsimile elements may also be added -->
</address>
</author>
<author fullname="Lisa Lorenzin" initials="L." surname="Lorenzin">
<organization>Pulse Secure</organization>
<address>
<postal>
<street>2700 Zanker Rd., Suite 200</street>
<city>San Jose</city>
<country>US</country>
<code>95134</code>
<region>CA</region>
</postal>
<email>[email protected]</email>
</address>
</author>
<date/>
<area>General</area>
<workgroup>SACM</workgroup>
<!-- WG name at the upperleft corner of the doc,
IETF is fine for individual submissions.
If this element is not present, the default is "Network Working Group",
which is used by the RFC Editor as a nod to the history of the IETF. -->
<keyword>template</keyword>
<!-- Keywords will be incorporated into HTML output
files in a meta tag but they have no effect on text or nroff
output. If you submit your draft to the RFC Editor, the
keywords will be used for the search engine. -->
<abstract>
<t>This document defines the scope and set of requirements for the Secure Automation and Continuous Monitoring (SACM) architecture, data model and transport protocols.
The requirements and scope are based on the agreed upon use cases.
</t>
</abstract>
</front>
<middle>
<section title="Introduction">
<t> Today's environment of rapidly-evolving security threats highlights the need to automate the sharing of security information (such as posture information) while protecting user information as well as the systems that store,
process, and transmit this information. Security threats can be detected
in a number of ways. SACM's charter focuses on how to collect and share this information based on use cases
that involve posture assessment of endpoints. </t>
<t> Scalable and sustainable collection, expression, and evaluation of endpoint information is foundational to SACM's objectives. To secure and defend a network, one must reliably determine what devices are
on the network, how those devices are configured from a hardware
perspective, what software products are installed on those devices,
and how those products are configured. We need to be able to
determine, share, and use this information in a secure, timely,
consistent, and automated manner to perform endpoint posture
assessments.</t>
<t> This document focuses on describing the requirements for facilitating the exchange of posture assessment information in the enterprise, in particular, for the use cases as exemplified in <xref target="RFC7632"/>. Also, this document uses terminology defined in <xref target="I-D.ietf-sacm-terminology"/>.</t>
<section title="Requirements Language">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref
target="RFC2119">RFC 2119</xref>.</t>
<t>When the words appear in lower case, their natural language meaning is used.</t>
</section>
</section>
<section anchor="reqmts" title="Requirements">
<t> This document defines requirements based on the SACM use cases defined in <xref target="RFC7632"/>.
This section describes the requirements used by SACM to assess and compare candidate data models, interfaces,
and protocols, to suit the SACM architecture. These requirements express characteristics or features that a candidate
protocol, information model, or data model must be capable of offering to ensure security and interoperability.</t>
<t> Multiple data models, protocols, and transports may be employed in a SACM environment. A SACM transport protocol is one that runs on top of L3 protocols such as TCP/IP or L4 protocols such as HTTP, carries operations (requests / responses), and moves data. </t>
<t> SACM defines an architecture and information model focused on addressing the needs for determining, sharing, and using posture information via Posture Information Providers and Posture Information Consumers mediated by a Controller. With the information model defining assets and attributes to facilitate the guidance, collection, and assessment of posture, these are some of the tasks that should be considered: </t>
<t><list hangIndent="1" style="numbers">
<t>Asset Classification: Map the target endpoint and/or the assets on the target endpoints to asset classes. This enables identification of the attributes needed to exchange information pertaining to the target endpoint. </t>
<t>Attribute Definition: Define the attributes desired to be collected from each target endpoint. This is what we want to know about a target endpoint. For instance, organizations will want to know what software is installed and its critical security attributes such as patch level. </t>
<t>Policy Definition: This is where an organization can express its policy for acceptable or problematic values of an endpoint attribute. The expected values of an endpoint attribute are determined for later comparison against the actual endpoint attribute values during the evaluation process. Expected values may include both those values which are good as well as those values which represent problems, such as vulnerabilities. The organization can also specify the endpoint attributes that are to be present for a given target endpoint.</t>
<t>Information Collection: Collect information (attribute values) from the target endpoint to populate the endpoint data.</t>
<t>Endpoint Assessment: Evaluate the actual values of the endpoint attributes against those expressed in the policy. (An evaluation result may become additional endpoint data).</t>
<t>Result Reporting: Report the results of the evaluation for use by other components. Examples of use of a report would be additional evaluation, network enforcement, vulnerability detection, and license management.</t>
</list></t>
<section anchor="general" title="Requirements for SACM">
<t> Many deployment scenarios can be instantiated to address the above tasks and use cases defined in <xref target="RFC7632"/>. To ensure interoperability, scalability, and flexibility in any of these deployments, the following requirements are defined for proposed SACM standards:</t>
<t><list hangIndent="1" style="hanging">
<t hangText="G-001"> Solution Extensibility: The information model, data models, protocols, and transports defined by SACM MUST be designed to allow support for future extensions, including both standard and proprietary transport protocols and data models. </t>
<t><list hangIndent="1" style="numbers">
<t> The information model and device interfaces (see G-012) MUST support the ability to add new operations while maintaining backwards compatibility. SACM-defined transport protocols MUST have extensibility to allow them to transport operations that are defined in the future.</t>
<t> The query language MUST allow for general inquiries, as well as expression of specific attributes or relationships between attributes to follow; the retrieval of specific information based on an event, or on a continuous basis; and the ability to retrieve specific pieces of information, specific types or classes of information, or the entirety of available information.</t>
<t> The information model MUST accommodate the interoperable addition of new data types and/or schemas.</t>
</list></t>
<t hangText="G-002"> Interoperability: The data models, protocols, and transports must be specified with enough details to ensure interoperability. </t>
<t hangText="G-003"> Scalability: SACM needs to support a broad set of deployment scenarios. The data models, protocols, and transports MUST be scalable unless they are specifically defined to apply to a special-purpose scenario, such as constrained devices. A SACM transport protocol standard SHOULD include a section on scalability considerations that addresses the number of endpoints and amount of information to which it can reasonably be expected to scale. Scalability must be addressed to support:</t>
<t><list style="symbols">
<t> Large datagrams: It is possible that the size of posture assessment information can vary from a single assessment that is small in size to a very large datagram or a very large set of assessments (up to multiple gigabytes in size). </t>
<t> Large number of providers and consumers: A deployment may consist of a very large number of endpoints requesting and/or producing posture assessment information. </t>
<t> Large number of target endpoints: A deployment may be managing information of a very large number of target endpoints. </t>
</list> </t>
<t hangText="G-004"> Versatility: The data model, protocols, and transports MUST be suitably specified to enable implementations to fit into different deployment models and scenarios, including considerations for implementations of data models and transports operating in constrained environments.</t>
<t hangText="G-005"> Information Extensibility: Non-standard (implementation-specific) attributes MUST be supported. A method SHOULD be defined for preventing collisions from occurring in the naming of all attributes independent of their source. For interoperability and scope boundary, the information model MUST define the mandatory set of attributes.</t>
<t hangText="G-006"> Data Integrity: To protect the information being shared, SACM components MUST protect the integrity and confidentiality of data in transit (while information is being transferred between providers and consumers, and through proxies and/or repositories) and data at rest (for information stored on repositories and on providers / consumers). Mechanisms for this protection are unspecified but should include industry best practices such as encrypted storage, encrypted transports, data checksums, etc. These mechanisms are required to be available (i.e. all data-handling components must support them), but are not required to be used in all cases. </t>
<t hangText="G-007"> Data Partitioning: A method for partitioning data MUST be supported to accommodate considerations such as geographic, regulatory, operational requirements, overlay boundaries, and federation (where the data may be collected in multiple locations and either centralized or kept in the local region). Where replication of data is supported, it is required that methods exist to prevent update loops.</t>
<t hangText="G-008"> Versioning and Backward Compatibility: Announcement and negotiation of versions, inclusive of existing capabilities (such as transport protocols, data models, specific attributes within data models, standard attribute expression sets, etc.) MUST be supported. Negotiation for both versioning and capabilities is needed to accommodate future growth and ecosystems with mixed capabilities. </t>
<t hangText="G-009"> Information Discovery: There MUST be mechanisms for components to discover what information is available across the ecosystem (i.e. a method for cataloging data available in the ecosystem and advertising it to consumers), where to go to get a specific piece of that information (i.e. which provider has the information), and what schemas are in use for organizing the information. For example, providing a method by which a node can locate the advertised information so that consumers are not required to have a priori knowledge to find available information. </t>
<t hangText="G-010"> Target Endpoint Discovery: SACM MUST define the means by which target endpoints may be discovered. Use Case 2.1.2 describes the need to discover endpoints and their composition. </t>
<t hangText="G-011"> Push and Pull Access: Three methods of data access MUST be supported: a Pull model, a solicited Push model, and an unsolicited Push models. All of the methods of data access MUST support the ability for the initiator to filter the set of posture assessment information to be delivered. Additionally, the provider of the information MUST be able to filter the set of posture assessment information based on the permissions of the recipient. This requirement is driven by use cases 2.1.3, 2.1.4 and 2.1.5.</t>
<t hangText="G-012"> Device Interface: The interfaces by which SACM components communicate to share endpoint posture information MUST be well defined. That is, the interface defines the data model, SACM transport protocols, and network transport protocols to enable SACM components to communicate. </t>
<t hangText="G-013">Endpoint Location and Network Topology: The SACM architecture and interfaces MUST allow for the target endpoint (network) location and network topology to be modeled and understood. Where appropriate, the data model and the interfaces SHOULD allow for discovery of the target endpoint location or network topology or both. </t>
<t hangText="G-014">Target Endpoint Identity: The SACM architecture and interfaces MUST support the ability of components to provide attributes that can be used to compose an identity for a target endpoint. These identities MAY be composed of attributes from one or more SACM components.</t>
<t hangText="G-015"> Data Access Control: Methods of access control MUST be supported to accommodate considerations such as geographic, regulatory, operational and federations. Entities accessing or publishing data MUST identify themselves and pass access policy.</t>
</list> </t>
</section>
<section anchor="arch" title="Requirements for the Architecture">
<t> At the simplest abstraction, the SACM architecture represents the core components and interfaces needed to perform the production and consumption of posture assessment information. Requirements relating to SACM's architecture include:</t>
<t><list hangIndent="1" style="hanging">
<t hangText="ARCH-001"> Scalability: The architectural components MUST account for a range of deployments, from very small sets of endpoints to very large deployments. </t>
<t hangText="ARCH-002"> Flexibility: The architectural components MUST account for different deployment scenarios where the architectural components may be implemented, deployed, or used within a single application, service, or network, or may comprise a federated system. </t>
<t hangText="ARCH-003"> Separation of Data and Management Functions: SACM MUST define both the configuration and management of the SACM data models and protocols used to transport and share posture assessment information.</t>
<t hangText="ARCH-004"> Topology Flexibility: Both centralized and decentralized (peer-to-peer) information exchange MUST be supported. Centralized data exchange enables use of a common data format to bridge together data exchange between diverse systems, and can leverage a virtual data store that centralizes and offloads all data access, storage, and maintenance to a dedicated resource. Decentralized data exchange enables simplicity of sharing data between relatively uniform systems, and between small numbers of systems, especially within a single enterprise domain. The fact that a centralized or decentralized deployment is used SHOULD be invisible to a consumer.</t>
<t hangText="ARCH-005"> Capability Negotiation: Announcement and negotiation of functional capabilities (such as authentication protocols, authorization schemes, data models, transport protocols, etc.) MUST be supported, enabling a SACM component to make inquiries about the capabilities of other components in the SACM ecosystem.</t>
<t hangText="ARCH-006"> Role-based Authorization: The SACM architecture MUST be capable of effecting role-based authorization. Distinction of endpoints capable of and authorized to provide or consume information is required to address appropriate access controls.</t>
<t hangText="ARCH-007"> Context-based Authorization: The SACM architecture MUST be capable of effecting context-based authorization. Different policies (e.g. business, regulatory, etc.) might specify what data may be exposed to, or shared by, consumers based on one or more attributes of the consumer. The policy might specify that consumers are required to share specific information either back to the system or to administrators. </t>
<t hangText="ARCH-008"> Time Synchronization: Actions or decisions based on time-sensitive data (such as user logon/logoff, endpoint connection/disconnection, endpoint behavior events, etc.) are all predicated on a synchronized understanding of time. The SACM architecture MUST provide a mechanism for all components to synchronize time. A mechanism for detecting and reporting time discrepancies SHOULD be provided by the architecture and reflected in the information model. </t>
</list></t>
</section>
<section anchor="info_model" title="Requirements for the Information Model">
<t> The SACM information model represents the abstracted representation for Posture Assessment information to be communicated. SACM data models must adhere to and comply with the SACM information model. The requirements for the SACM information model include: </t>
<t><list hangIndent="1" style="hanging">
<t hangText="IM-001"> Extensible Attribute Vocabulary: The information model MUST define a minimum set of attributes for communicating Posture Information, to ensure interoperability between data models. (Individual data models may define attributes beyond the mandatory-to-implement minimum set.) The attributes should be defined with a clear mechanism for extensibility to enable data models to adhere to SACM's required attributes as well as allow for their own extensions. The attribute vocabulary should be defined with a clear mechanism for extensibility to enable future versions of the information model to be interoperably expanded with new attributes.</t>
<t hangText="IM-002"> Posture Data Publication: The information model MUST allow for the data to be provided by a SACM component either solicited or unsolicited. No aspect of the information model should be dependent upon or assume a push or pull model of publication. </t>
<t hangText="IM-003"> Data Model Negotiation: SACM's information model MUST allow support for different data models, data model versions, and different versions of the operations on the data models and transport protocols. The SACM information model MUST include the ability to discover and negotiate the use of a particular data model or any data model. </t>
<t hangText="IM-004"> Data Model Identification: The information model MUST provide a means to uniquely identify each data model uniquely. The identifier MUST contain both an identifier of the data model and a version indicator for the data model. The identifiers SHOULD be decomposable so that a customer can query for any version of a specific data model and compare returned values for older or newer than a desired version.</t>
<t hangText="IM-005"> Data Lifetime Management: The information model MUST provide a means to allow data models to include data lifetime management. The information model must identify attributes that can allow data models to, at minimum, identify the data's origination time and expected time of next update or data longevity (how long should the data be assumed to still be valid).</t>
<t hangText="IM-006"> Singularity and Modularity: The SACM information model MUST be singular (i.e. there is only one information model, not multiple alternative information models from which to choose) and MAY be modular (a conjunction of several sub-components) for ease of maintenance and extension. For example, endpoint identification could be an independent sub-component of the information model, to simplify updating of endpoint identification attributes.</t>
</list></t>
</section>
<section anchor="data_model" title="Requirements for the Data Model">
<t> The SACM information model represents an abstraction for "what" information can be communicated and "how" it is to be represented and shared. It is expected that as applications may produce posture assessment information, they may share it using a specific data model. Similarly, applications consuming or requesting posture assessment information, may require it be based on a specific data model. Thus, while there may exist different data models and schemas, they should adhere to the SACM information model and meet the requirements defined in this section. </t>
<t> The specific requirements for candidate data models include: </t>
<t><list hangIndent="1" style="hanging">
<t hangText="DM-001"> Element Association: The data model MUST contain a data model element for each information model element (e.g. endpoint, IP address, asset). In other words, for every item in the information model, there must be an item in the data model. The data model can also include elements that do not exist in the information model.</t>
<t hangText="DM-002"> Data Model Structure: The data model can be structured either as one single module or separated into modules and sub-modules that allow for references between them. The data model structure MAY reflect structure in the information model, but does not need to. For example, the data model might use one module to define endpoints, and that module might reference other modules that describe the various assets associated with the endpoint. Constraints and interfaces might further be defined to resolve or tolerate ambiguity in the references (e.g. same IP address used in two separate networks).</t>
<t hangText="DM-003"> Search Flexibility: The search interfaces and actions MUST include the ability to start a search anywhere within a data model structure, and the ability to search based on patterns ("wildcard searches") as well as specific data elements.</t>
<t hangText="DM-004"> Full vs. Partial Updates: The data model SHOULD include the ability to allow providers of data to provide the data as a whole, or when updates occur. For example, a consumer can request a full update on initial engagement, then request to receive deltas (updates containing only the changes since the last update) on an ongoing basis as new data is generated. </t>
<t hangText="DM-005"> Loose Coupling: The data model SHOULD allow for a loose coupling between the provider and the consumer, such that the consumer can request information without being required to request it from a specific provider, and a provider can publish information without having a specific consumer targeted to receive it.</t>
<t hangText="DM-006"> Data Cardinality: The data model MUST describe their constraints (e.g. cardinality). As posture information and the tasks for collection, aggregation, or evaluation, could comprise one or more attributes, interfaces and actions MUST allow and account for such cardinality as well as whether the attributes are conditional, optional, or mandatory.</t>
<t hangText="DM-007"> Data Model Negotiation: The interfaces and actions in the data model MUST include capability negotiation to enable discovery of supported and available data types and schemas.</t>
<t hangText="DM-008"> Data Origin: The data model MUST include the ability for consumers to identify the data origin (provider that collected the data).</t>
<t hangText="DM-009"> Origination Time: The data model SHOULD allow the provider to include the information's origination time. </t>
<t hangText="DM-010"> Data Generation: The data model MUST allow the provider to include attributes defining how the data was generated (e.g. self-reported, reported by aggregator, scan result, etc.). </t>
<t hangText="DM-011"> Data Source: The data model MUST allow the provider to include attributes identifying the data source (target endpoint from which the data was collected) - e.g. hostname, domain (DNS) name or application name.</t>
<t hangText="DM-012"> Data Updates: The data model SHOULD allow the provider to include attributes defining whether the information provided is a delta, partial, or full set of information.</t>
<t hangText="DM-013"> Multiple Collectors: The data model MUST support the collection of attributes by a variety of collectors, including internal collectors, external collectors with an authenticated relationship with the endpoint, and external collectors based on network and other observers.</t>
<t hangText="DM-014"> Attribute Extensibility: Use Cases in the whole of Section 2 describe the need for an attribute dictionary. With SACM's scope focused on posture assessment, the data model attribute collection and aggregation MUST have a well-understood set of attributes inclusive of their meaning or usage intent. The data model MUST include all attributes defined in the information model and MAY include additional attributes beyond those found in the information model. Additional attributes MUST be defined in accordance with the extensibility framework provided in the information model (see IM-001).</t>
<t hangText="DM-015"> Solicited vs. Unsolicited Updates: The data model MUST enable a provider to publish data either solicited (in response to a request from a consumer) or unsolicited (as new data is generated, without a request required). For example, an external collector can publish data in response to a request by a consumer for information about an endpoint, or can publish data as it observes new information about an endpoint, without any specific consumer request triggering the publication; a compliance-server provider may publish endpoint posture information in response to a request from a consumer (solicited), or it may publish posture information driven by a change in the posture of the endpoint (unsolicited).</t>
<t hangText="DM-016"> Transport Agnostic: The data model MUST be transport agnostic, to allow for the data operations to leverage the most appropriate SACM transport protocol.</t>
</list> </t>
</section>
<section anchor="dm-ops" title="Requirements for Data Model Operations">
<t> Posture information data adhering to a data model must also provide interfaces that include operations for access and production of the data. Operations requirements are distinct from transport requirements in that operations requirements are requirements on the application performing requests and responses, whereas transport requirements are requirements on the transport protocol carrying the requests / responses.
The specific requirements for such operations include: </t>
<t><list hangIndent="1" style="hanging">
<t hangText="OP-001"> Time Synchronization: Request and response operations MUST be timestamped, and published information SHOULD capture time of publication. Actions or decisions based on time-sensitive data (such as user logon/logoff, endpoint connection/disconnection, endpoint behavior events, etc.) are all predicated on a synchronized understanding of time. A method for detecting and reporting time discrepancies SHOULD be provided.</t>
<t hangText="OP-002"> Collection Abstraction: Collection is the act of a SACM component gathering data from a target endpoint. The request for a data item MUST include enough information to properly identify the item to collect, but the request shall not be a command to directly execute nor directly be applied as arguments to a command. The purpose of this requirement is primarily to reduce the potential attack vectors, but has the additional benefit of abstracting the request for collection from the collection method, thereby allowing more flexibility in how collection is implemented.</t>
<t hangText="OP-003"> Collection Composition: A collection request MAY be composed of multiple collection requests (which yield collected values). The desire for multiple values MUST be expressed as part of the collection request, so that the aggregation can be resolved at the point of collection without having to interact with the requestor. This requirement should not be interpreted as preventing a collector from providing attributes which were not part of the original request. </t>
<t hangText="OP-004"> Attribute-based Query: A query operation is the act of requesting data from a provider. Query operations SHOULD be based on a set of attributes. Query operations MUST support both a query for specific attributes and a query for all attributes. Use Case 2.1.2 describes the need for the data model to support a query operation based on a set of attributes to facilitate collection of information such as posture assessment, inventory (of endpoints or endpoint components), and configuration checklist.</t>
<t hangText="OP-005"> Information-based Query with Filtering: The query operation MUST support filtering. Use Case 2.1.3 describes the need for the data model to support the means for the information to be collected through a query mechanism. Furthermore, the query operation requires filtering capabilities to allow for only a subset of information to be retrieved. The query operation MAY be a synchronous request or asynchronous request.</t>
<t hangText="OP-006"> Operation Scalability: The operation resulting from a query operation MUST be able to handle the return and receipt of large amounts of data. Use Cases 2.1.4 and 2.1.5 describe the need for the data model to support scalability. For example, the query operation may result in a very large set of attributes, as well as a large set of targets.</t>
<t hangText="OP-007"> Data Abstraction: The data model MUST allow a SACM component to communicate what data was used to construct the target endpoint's identity, so other SACM components can determine whether they are constructing an equivalent target endpoint (and its identity) and whether they have confidence in that identity. SACM components SHOULD have interfaces defined to transmit this data directly or to refer to where the information can be retrieved.</t>
<t hangText="OP-008"> Provider Restriction: Request operations MUST include the ability to restrict the data to be provided by a specific provider or a provider with specific characteristics. Response operations MUST include the ability to identify the provider that supplied the response. For example, a SACM Consumer should be able to request that all of the data come from a specific provider by identity (e.g. Provider A) or from a Provider that is in a specific location (e.g. in the Boston office).</t>
</list></t>
</section>
<section anchor="xport" title="Requirements for SACM Transport Protocols">
<t>The term transport protocol is frequently overloaded. The term SACM transport protocol is intended to be distinguished from underlying layer 3 and 4 protocols such as TCP/IP and TLS. However, it is possible that a layer 3 or 4 protocol may be used as a SACM transport protocol, either alone or as part of a SACM transport protocol (i.e. using HTTP over TLS with XML as the content). The SACM transport protocol is focused on moving data and performing necessary access control operations; it is agnostic to the data model operations.</t>
<t>The requirements for SACM transport protocols include: </t>
<t><list hangIndent="1" style="hanging">
<t hangText="T-001"> Multiple Transport Protocol Support: SACM transport protocols MUST support different network transport protocols in a deployment to support different transport layer requirements, different device capabilities, and system configurations dealing with connectivity.</t>
<t hangText="T-002"> Data Integrity: SACM transport protocols MUST be able to ensure data integrity for data in transit.</t>
<t hangText="T-003"> Data Confidentiality: SACM transport protocols MUST be able to support data confidentiality. SACM transport protocols MUST ensure data protection for data in transit (e.g. by encryption) to provide confidentiality, integrity, and robustness against protocol-based attacks. Note that while the transport MUST be able to support data confidentiality, implementations MAY provide a configuration option that enables and disables confidentiality in deployments. Protection for data at rest is not in scope for transport protocols. Data protection MAY be used for both privacy and non-privacy scenarios. </t>
<t hangText="T-004"> Transport Protection: SACM transport protocols MUST be capable of supporting mutual authentication and replay protection. </t>
<t hangText="T-005"> Transport Reliability: SACM transport protocols MUST provide reliable delivery of data. This includes the ability to perform fragmentation and reassembly, and to detect replays.</t>
<t hangText="T-006"> Transport Layer Requirements: Each SACM transport protocol MUST clearly specify the transport layer requirements it needs to operate correctly. Examples of items that may need to be specified include connectivity requirements, replay requirements, data link encryption requirements, and/or channel binding requirements. These requirements are needed in order for deployments to be done correctly. For example, a proxy server between UDP and TCP can provide a connection that correctly fulfills the connectivity and replay requirements as well as data link requirements (through the use of TLS and DTLS) but would be unable to provide a channel binding requirement, as that implies there is no MITM to look at the data.</t>
</list></t>
</section>
</section>
<section anchor="Acknowledgements" title="Acknowledgements">
<t>The authors would like to thank Barbara Fraser, Jim Bieda, and Adam Montville for reviewing and contributing to this draft. In addition, we recognize valuable comments and suggestions made by Jim Schaad and Chris Inacio.</t>
</section>
<!-- Possibly a 'Contributors' section ... -->
<section anchor="IANA" title="IANA Considerations">
<t>This memo includes no request to IANA.</t>
</section>
<section anchor="Security" title="Security Considerations">
<t>This document defines the requirements for SACM. As such, it is expected that several data models, protocols, and transports may be defined or reused from already existing standards. This section will highlight security considerations that may apply to SACM based on the architecture and standards applied in SACM. In particular, highlights to security considerations that may apply to the SACM reference architecture and standard data models and transports will be discussed.</t>
<t> To address security and privacy considerations, the data model, protocols, and transports must consider authorization based on consumer function and privileges, to only allow authorized consumers and providers to access specific information being requested or published.</t>
<t>To enable federation across multiple entities (such as across organizational or geographic boundaries) authorization must also extend to infrastructure elements themselves, such as central controllers / brokers / data repositories.</t>
<t>In addition, authorization needs to extend to specific information or resources available in the environment. In other words, authorization is based on the subject (the information requestor), the provider (the information responder), the object (the endpoint the information is being requested on), and the attribute (what piece of data is being requested). The method by which this authorization is applied is unspecified.</t>
<t>SACM's charter focuses on the workflow orchestration and the sharing of posture information for improving efficacy of security applications such as compliance, configuration, assurance and other threat and vulnerability reporting and remediation systems. While the goal is to facilitate the flow of information securely, it is important to note that participating endpoints may not be cooperative or trustworthy.</t>
<section anchor="Trust" title="Trust between Provider and Requestor">
<t> The information given from the provider to a requestor may come with different levels of trustworthiness given the different potential deployment scenarios and compromise either at the provider, the requesting consumer, or devices that are involved in the transport between the provider and requestor. This section will describe the different considerations that may reduce the level of trustworthiness of the information provided.</t>
<t> In the information transport flow, it is possible that some of the devices may serve as proxies or brokers and as such, may be able to observe the communications flowing between an information provider and requestor. Without appropriate protections, it is possible for these proxies and brokers to inject and affect man-in-the-middle attacks.</t>
<t>It is common to, in general, distrust the network service provider, unless the full hop by hop communications process flow is well understood. As such, the posture information provider should protect the posture information data it provides as well as the transport it uses. Similarly, while there may be providers whose goal is to openly share its information, there may also be providers whose policy is to grant access to certain posture information based on its business or regulatory policy. In those situations, a provider may require full authentication and authorization of the requestor (or set of requestors) and share only the authorized information to the authenticated and authorized requestors.</t>
<t> A requestor beyond distrusting the network service provider, must also account that the information received from the provider may have been communicated through an undetermined network communications system.
That is, the posture information may have traversed through many devices before reaching the requestor. SACM specifications should provide the means for verifying data origin and data integrity and at minimum, provide endpoint authentication and transport integrity.</t>
<t> A requestor may require data freshness indications, both knowledge of data origination as well as time of publication so that it can make more informed decisions about the relevance of the data based on its currency and/or age. </t>
<t> It is also important to note that endpoint assessment reports, especially as they may be provided by the target endpoint may pose untrustworthy information. The considerations for this are described in Section 8 of <xref target="RFC5209"/>. </t>
<t> The trustworthiness of the posture information given by the provider to one or many requestors is dependent on several considerations. Some of these include the requestor requiring: </t>
<t><list style="symbols">
<t> Full disclosure of the network topology path to the provider(s).</t>
<t> Direct (peer to peer) communication with the provider.</t>
<t> Authentication and authorization of the provider.</t>
<t> Either or both confidentiality and integrity at the transport layer. </t>
<t> Either or both confidentiality and integrity at the data layer.</t>
</list> </t>
</section>
<section anchor="Privacy" title="Privacy Considerations">
<t>SACM information may contain sensitive information about the target endpoint as well as revealing identity information of the producer or consumer of such information. Similarly, as part of the SACM discovery mechanism, the advertised capabilities (and roles, e.g. SACM components enabled) by the endpoint may be construed as private information. There may be applications as well as business and regulatory practicess that require that aspects of such information be hidden from any parties that do not need to know it. </t>
<t> Data confidentiality can provide some level of privacy but may fall short where unecessary data is still transmitted. In those cases, filtering requirements at the data model such as OP-005 must be applied to ensure that such data is not disclosed. <xref target="RFC6973"/> provides guidelines for which SACM protocols and information and data models should follow.</t>
</section>
</section>
<section anchor="ChangeLog" title="Change Log">
<section anchor="latest" title="-05 to -06">
<t> Updated G-005 to clarify the MUST to allow non-standard extensions, SHOULD avoid collisions and ensure interoperability.</t>
<t> Cleaned up and clarified IM-003, DM-001.</t>
<t> Cleaned up some of the OP-XXX and ARCH-XXX per Jim Schaad's comments.</t>
<t> Updated some of the text around Editor notes and removed all 'Editor Note' comments</t>
</section>
</section>
</middle>
<!-- *****BACK MATTER ***** -->
<back>
<!-- References split into informative and normative -->
<!-- There are 2 ways to insert reference entries from the citation libraries:
1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
(for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")
Both are cited textually in the same manner: by using xref elements.
If you use the PI option, xml2rfc will, by default, try to find included files in the same
directory as the including file. You can also define the XML_LIBRARY environment variable
with a value containing a set of directories to search. These can be either in the local
filing system or remote ones accessed by http (http://domain/dir/... ).-->
<references title="Normative References">
<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
&RFC2119;
&RFC5209;
&RFC7632;
&I-D.ietf-sacm-terminology;
</references>
<references title="Informative References">
<!-- Here we use entities that we defined at the beginning. -->
&RFC6973;
</references>
<!-- Change Log
v00 2013-010-11 NCW Initial version
v02 2014-002-02 NCW Changed the structure of the document to include general requirements vs. those driven by use cases based on feedback by the WG and the spreadsheet discussed in the Dec 2-13 call. Removed Security Requirements section they may be addressed in the Security Consideration section.
v03 2014-012-02 NCW Removed Terminology section. Updated proposed architecture and requirements per feedback on Feb 4 call; added more text around the "Evaluator Service", clarified G-005 and REQ-006 and removed references to SACM WG.
v04 2014-027-05 NCW Removed Architecture section, incorporated some updates from Lisa Lorenzin's 5/13/14 email.
v07 2015-07-06 LLL Updates based on open issue resolutions from 6/29 virtual interim meeting.
-->
</back>
</rfc>