SACM                                                  D. Waltermire, Ed.
Internet-Draft                                                      NIST
Intended status: Standards Track                               K. Watson
Expires: January 9, 2017                                             DHS
                                                                 C. Kahn
                                                             L. Lorenzin
                                                       Pulse Secure, LLC
                                                                M. Cokus
                                                               D. Haynes
                                                   The MITRE Corporation
                                                            July 8, 2016


                         SACM Information Model
                  draft-ietf-sacm-information-model-06

Abstract

   This document defines the Information Elements that are transported
   between SACM components and their interconnected relationships.  The
   primary purpose of the Secure Automation and Continuous Monitoring
   (SACM) Information Model is to ensure the interoperability of
   corresponding SACM data models and addresses the use cases defined by
   SACM.  The Information Elements and corresponding types are
   maintained as the IANA "SACM Information Elements" registry.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on January 9, 2017.

Copyright Notice

   Copyright (c) 2016 IETF Trust and the persons identified as the
   document authors.  All rights reserved.




Waltermire, et al.       Expires January 9, 2017                [Page 1]


Internet-Draft           SACM Information Model                July 2016


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   5
   2.  Conventions used in this document . . . . . . . . . . . . . .   6
     2.1.  Requirements Language . . . . . . . . . . . . . . . . . .   6
     2.2.  Information Element Examples  . . . . . . . . . . . . . .   6
   3.  Information Elements  . . . . . . . . . . . . . . . . . . . .   6
     3.1.  Context of Information Elements . . . . . . . . . . . . .   6
     3.2.  Extensibility of Information Elements . . . . . . . . . .   7
   4.  Structure of Information Elements . . . . . . . . . . . . . .   7
     4.1.  SACM Content Elements . . . . . . . . . . . . . . . . . .  10
     4.2.  SACM Statements . . . . . . . . . . . . . . . . . . . . .  11
     4.3.  Relationships . . . . . . . . . . . . . . . . . . . . . .  13
     4.4.  Event . . . . . . . . . . . . . . . . . . . . . . . . . .  15
     4.5.  Categories  . . . . . . . . . . . . . . . . . . . . . . .  16
     4.6.  Designation . . . . . . . . . . . . . . . . . . . . . . .  16
     4.7.  Privacy . . . . . . . . . . . . . . . . . . . . . . . . .  17
   5.  Abstract Data Types . . . . . . . . . . . . . . . . . . . . .  17
     5.1.  Simple Datatypes  . . . . . . . . . . . . . . . . . . . .  17
       5.1.1.  IPFIX Datatypes . . . . . . . . . . . . . . . . . . .  17
       5.1.2.  ciscoTrainSoftwareVersion . . . . . . . . . . . . . .  18
       5.1.3.  rpmSoftwareVersion  . . . . . . . . . . . . . . . . .  18
       5.1.4.  simpleSoftwareVersion . . . . . . . . . . . . . . . .  18
     5.2.  Structured Datatypes  . . . . . . . . . . . . . . . . . .  18
       5.2.1.  List Datatypes  . . . . . . . . . . . . . . . . . . .  18
   6.  Information Model Assets  . . . . . . . . . . . . . . . . . .  20
     6.1.  Asset . . . . . . . . . . . . . . . . . . . . . . . . . .  21
     6.2.  Endpoint  . . . . . . . . . . . . . . . . . . . . . . . .  21
     6.3.  Hardware Component  . . . . . . . . . . . . . . . . . . .  22
     6.4.  Software Component  . . . . . . . . . . . . . . . . . . .  22
       6.4.1.  Software Instance . . . . . . . . . . . . . . . . . .  23
     6.5.  Identity  . . . . . . . . . . . . . . . . . . . . . . . .  23
     6.6.  Guidance  . . . . . . . . . . . . . . . . . . . . . . . .  23
       6.6.1.  Internal Collection Guidance  . . . . . . . . . . . .  23
       6.6.2.  External Collection Guidance  . . . . . . . . . . . .  24
       6.6.3.  Evaluation Guidance . . . . . . . . . . . . . . . . .  24
       6.6.4.  Retention Guidance  . . . . . . . . . . . . . . . . .  24
     6.7.  Evaluation Results  . . . . . . . . . . . . . . . . . . .  24



Waltermire, et al.       Expires January 9, 2017                [Page 2]


Internet-Draft           SACM Information Model                July 2016


   7.  Information Model Elements  . . . . . . . . . . . . . . . . .  24
     7.1.  hardwareSerialNumber  . . . . . . . . . . . . . . . . . .  25
     7.2.  interfaceName . . . . . . . . . . . . . . . . . . . . . .  25
     7.3.  interfaceIndex  . . . . . . . . . . . . . . . . . . . . .  25
     7.4.  interfaceMacAddress . . . . . . . . . . . . . . . . . . .  25
     7.5.  interfaceType . . . . . . . . . . . . . . . . . . . . . .  26
     7.6.  interfaceFlags  . . . . . . . . . . . . . . . . . . . . .  26
     7.7.  networkInterface  . . . . . . . . . . . . . . . . . . . .  26
     7.8.  softwareIdentifier  . . . . . . . . . . . . . . . . . . .  27
     7.9.  softwareTitle . . . . . . . . . . . . . . . . . . . . . .  27
     7.10. softwareCreator . . . . . . . . . . . . . . . . . . . . .  27
     7.11. simpleSoftwareVersion . . . . . . . . . . . . . . . . . .  27
     7.12. rpmSoftwareVersion  . . . . . . . . . . . . . . . . . . .  27
     7.13. ciscoTrainSoftwareVersion . . . . . . . . . . . . . . . .  27
     7.14. softwareVersion . . . . . . . . . . . . . . . . . . . . .  28
     7.15. lastUpdated . . . . . . . . . . . . . . . . . . . . . . .  28
     7.16. softwareInstance  . . . . . . . . . . . . . . . . . . . .  28
     7.17. globallyUniqueIdentifier  . . . . . . . . . . . . . . . .  28
     7.18. dataOrigin  . . . . . . . . . . . . . . . . . . . . . . .  29
     7.19. dataSource  . . . . . . . . . . . . . . . . . . . . . . .  29
     7.20. creationTimestamp . . . . . . . . . . . . . . . . . . . .  29
     7.21. collectionTimestamp . . . . . . . . . . . . . . . . . . .  29
     7.22. publicationTimestamp  . . . . . . . . . . . . . . . . . .  30
     7.23. relayTimestamp  . . . . . . . . . . . . . . . . . . . . .  30
     7.24. storageTimestamp  . . . . . . . . . . . . . . . . . . . .  30
     7.25. type  . . . . . . . . . . . . . . . . . . . . . . . . . .  30
     7.26. protocolIdentifier  . . . . . . . . . . . . . . . . . . .  31
     7.27. sourceTransportPort . . . . . . . . . . . . . . . . . . .  31
     7.28. sourceIPv4PrefixLength  . . . . . . . . . . . . . . . . .  32
     7.29. ingressInterface  . . . . . . . . . . . . . . . . . . . .  32
     7.30. destinationTransportPort  . . . . . . . . . . . . . . . .  32
     7.31. sourceIPv6PrefixLength  . . . . . . . . . . . . . . . . .  33
     7.32. sourceIPv4Prefix  . . . . . . . . . . . . . . . . . . . .  33
     7.33. destinationIPv4Prefix . . . . . . . . . . . . . . . . . .  33
     7.34. sourceMacAddress  . . . . . . . . . . . . . . . . . . . .  33
     7.35. ipVersion . . . . . . . . . . . . . . . . . . . . . . . .  33
     7.36. interfaceDescription  . . . . . . . . . . . . . . . . . .  33
     7.37. applicationDescription  . . . . . . . . . . . . . . . . .  34
     7.38. applicationId . . . . . . . . . . . . . . . . . . . . . .  34
     7.39. applicationName . . . . . . . . . . . . . . . . . . . . .  34
     7.40. exporterIPv4Address . . . . . . . . . . . . . . . . . . .  34
     7.41. exporterIPv6Address . . . . . . . . . . . . . . . . . . .  34
     7.42. portId  . . . . . . . . . . . . . . . . . . . . . . . . .  35
     7.43. templateId  . . . . . . . . . . . . . . . . . . . . . . .  35
     7.44. collectorIPv4Address  . . . . . . . . . . . . . . . . . .  35
     7.45. collectorIPv6Address  . . . . . . . . . . . . . . . . . .  36
     7.46. informationElementIndex . . . . . . . . . . . . . . . . .  36
     7.47. informationElementId  . . . . . . . . . . . . . . . . . .  36



Waltermire, et al.       Expires January 9, 2017                [Page 3]


Internet-Draft           SACM Information Model                July 2016


     7.48. informationElementDataType  . . . . . . . . . . . . . . .  36
     7.49. informationElementDescription . . . . . . . . . . . . . .  37
     7.50. informationElementName  . . . . . . . . . . . . . . . . .  37
     7.51. informationElementRangeBegin  . . . . . . . . . . . . . .  38
     7.52. informationElementRangeEnd  . . . . . . . . . . . . . . .  38
     7.53. informationElementSemantics . . . . . . . . . . . . . . .  38
     7.54. informationElementUnits . . . . . . . . . . . . . . . . .  39
     7.55. userName  . . . . . . . . . . . . . . . . . . . . . . . .  40
     7.56. applicationCategoryName . . . . . . . . . . . . . . . . .  40
     7.57. mibObjectValueInteger . . . . . . . . . . . . . . . . . .  40
     7.58. mibObjectValueOctetString . . . . . . . . . . . . . . . .  40
     7.59. mibObjectValueOID . . . . . . . . . . . . . . . . . . . .  41
     7.60. mibObjectValueBits  . . . . . . . . . . . . . . . . . . .  41
     7.61. mibObjectValueIPAddress . . . . . . . . . . . . . . . . .  42
     7.62. mibObjectValueCounter . . . . . . . . . . . . . . . . . .  42
     7.63. mibObjectValueGauge . . . . . . . . . . . . . . . . . . .  43
     7.64. mibObjectValueTimeTicks . . . . . . . . . . . . . . . . .  43
     7.65. mibObjectValueUnsigned  . . . . . . . . . . . . . . . . .  44
     7.66. mibObjectValueTable . . . . . . . . . . . . . . . . . . .  44
     7.67. mibObjectValueRow . . . . . . . . . . . . . . . . . . . .  44
     7.68. mibObjectIdentifier . . . . . . . . . . . . . . . . . . .  45
     7.69. mibSubIdentifier  . . . . . . . . . . . . . . . . . . . .  45
     7.70. mibIndexIndicator . . . . . . . . . . . . . . . . . . . .  45
     7.71. mibCaptureTimeSemantics . . . . . . . . . . . . . . . . .  46
     7.72. mibContextEngineID  . . . . . . . . . . . . . . . . . . .  47
     7.73. mibContextName  . . . . . . . . . . . . . . . . . . . . .  48
     7.74. mibObjectName . . . . . . . . . . . . . . . . . . . . . .  48
     7.75. mibObjectDescription  . . . . . . . . . . . . . . . . . .  48
     7.76. mibObjectSyntax . . . . . . . . . . . . . . . . . . . . .  48
     7.77. mibModuleName . . . . . . . . . . . . . . . . . . . . . .  48
   8.  SACM Usage Scenario Example . . . . . . . . . . . . . . . . .  49
     8.1.  Graph Model for Detection of Posture Deviation  . . . . .  49
       8.1.1.  Components  . . . . . . . . . . . . . . . . . . . . .  49
       8.1.2.  Identifiers . . . . . . . . . . . . . . . . . . . . .  50
       8.1.3.  Metadata  . . . . . . . . . . . . . . . . . . . . . .  50
       8.1.4.  Relationships between Identifiers and Metadata  . . .  51
     8.2.  Workflow  . . . . . . . . . . . . . . . . . . . . . . . .  51
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  52
     9.1.  Contributors  . . . . . . . . . . . . . . . . . . . . . .  52
   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  52
   11. Operational Considerations  . . . . . . . . . . . . . . . . .  53
   12. Privacy Considerations  . . . . . . . . . . . . . . . . . . .  53
   13. Security Considerations . . . . . . . . . . . . . . . . . . .  53
   14. References  . . . . . . . . . . . . . . . . . . . . . . . . .  54
     14.1.  Normative References . . . . . . . . . . . . . . . . . .  54
     14.2.  Informative References . . . . . . . . . . . . . . . . .  54
   Appendix A.  Change Log . . . . . . . . . . . . . . . . . . . . .  55
     A.1.  Changes in Revision 01  . . . . . . . . . . . . . . . . .  55



Waltermire, et al.       Expires January 9, 2017                [Page 4]


Internet-Draft           SACM Information Model                July 2016


     A.2.  Changes in Revision 02  . . . . . . . . . . . . . . . . .  56
     A.3.  Changes in Revision 03  . . . . . . . . . . . . . . . . .  56
     A.4.  Changes in Revision 04  . . . . . . . . . . . . . . . . .  57
     A.5.  Changes in Revision 05  . . . . . . . . . . . . . . . . .  57
     A.6.  Changes in Revision 06  . . . . . . . . . . . . . . . . .  57
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  58

1.  Introduction

   The SACM Information Model (IM) serves multiple purposes:

   o  to ensure interoperability between SACM data models that are used
      as transport encodings,

   o  to provide a standardized set of Information Elements - the SACM
      Vocabulary - to enable the exchange of content vital to automated
      security posture assessment, and

   o  to enable secure information sharing in a scalable and extensible
      fashion in order to support the tasks conducted by SACM
      components.

   A complete set of requirements imposed on the IM can be found in
   [I-D.ietf-sacm-requirements].  The SACM IM is intended to be used for
   standardized data exchange between SACM components (data in motion).
   Nevertheless, the Information Elements (IE) and their relationships
   defined in this document can be leveraged to create and align
   corresponding data models for data at rest.

   The information model expresses, for example, target endpoint (TE)
   attributes, guidance, and evaluation results.  The corresponding
   Information Elements are consumed and produced by SACM components as
   they carry out tasks.

   The primary tasks that this information model supports (on data,
   control, and management plane) are:

   o  TE Discovery

   o  TE Characterization

   o  TE Classification

   o  Collection

   o  Evaluation

   o  Information Sharing



Waltermire, et al.       Expires January 9, 2017                [Page 5]


Internet-Draft           SACM Information Model                July 2016


   o  SACM Component Discovery

   o  SACM Component Authentication

   o  SACM Component Authorization

   o  SACM Component Registration

   These tasks are defined in [I-D.ietf-sacm-terminology].

2.  Conventions used in this document

2.1.  Requirements Language

   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 RFC 2119 [RFC2119].

2.2.  Information Element Examples

   The notation used to define the SACM Information Elements (IEs) is
   based on a customized version of the IPFIX information model syntax
   [RFC7012] which is described in Figure 2.  However, there are several
   examples presented throughout the document that use a simplified
   pseudo-code to illustrate the basic structure.  It should be noted
   that while they include actual names of subjects and attributes as
   well as values, they are not intended to influence how corresponding
   SACM IEs should be defined in Section 7.  The examples are provided
   for demonstration purposes only.

3.  Information Elements

   The IEs defined in this document comprise the building blocks by
   which all SACM content is composed.  They are consumed and provided
   by SACM components on the data plane.  Every Information Element has
   a unique label: its name.  Every type of IE defined by the SACM IM is
   registered as a type at the IANA registry.  The Integer Index of the
   IANA SMI number tables can be used by SACM data models.

3.1.  Context of Information Elements

   The IEs in this information model represent information related to
   assets in the following areas (based on the use cases described in
   [RFC7632]):

   o  Endpoint Management

   o  Software Inventory Management



Waltermire, et al.       Expires January 9, 2017                [Page 6]


Internet-Draft           SACM Information Model                July 2016


   o  Hardware Inventory Management

   o  Configuration Management

   o  Vulnerability Management

3.2.  Extensibility of Information Elements

   A SACM data model based on this information model MAY include
   additional information elements that are not defined here.  The
   labels of additional Information Elements included in different SACM
   data models MUST NOT conflict with the labels of the Information
   Elements defined by this information model, and the names of
   additional Information Elements MUST NOT conflict with each other or
   across multiple data models.  In order to avoid naming conflicts, the
   labels of additional IEs SHOULD be prefixed to avoid collisions
   across extensions.  The prefix MUST include an organizational
   identifier and therefore, for example, MAY be an IANA enterprise
   number, a (partial) name space URI, or an organization name
   abbreviation.

4.  Structure of Information Elements

   There are two basic types of IEs:

   o  Attributes: an instance of an attribute type is the simplest IE
      structure comprised of a unique attribute name and an attribute
      value.

   o  Subjects: a subject is a richer structure that has a unique
      subject name and one or more attributes or subjects.  In essence,
      instances of a subject type are defined (and differentiated) by
      the attribute values and subjects associated with it.

         hostname = "arbutus"

         coordinates = (
         latitude = N27.99619,
         longitude = E86.92761
         )

          Figure 1: Example instance of an attribute and subject.

   In general, every piece of information that enables security posture
   assessment or further enriches the quality of the assessment process
   can be associated with metadata.  In the SACM IM, metadata is
   represented by specific subjects and is bundled with other attributes




Waltermire, et al.       Expires January 9, 2017                [Page 7]


Internet-Draft           SACM Information Model                July 2016


   or subjects to provide additional information about them.  The IM
   explicitly defines two kinds of metadata:

   o  Metadata focusing on the data origin (the SACM component that
      provides the information to the SACM domain)

   o  Metadata focusing on the data source (the target endpoint that is
      assessed)

   Metadata can also include relationships that refer to other
   associated IEs (or SACM content in general) by using referencing
   labels that have to be included in the metadata of the associated IE.

   Subjects can be nested and the SACM IM allows for circular or
   recursive nesting.  The association of IEs via nesting results in a
   tree-like structure wherein subjects compose the root and
   intermediary nodes and attributes the leaves of the tree.  This
   semantic structure does not impose a specific structure on SACM data
   models regarding data in motion or data repository schemata for data
   at rest.

   The SACM IM provides two conceptual top-level subjects that are used
   to ensure a homogeneous structure for SACM content and its associated
   metadata: SACM statements and SACM content-elements.  Every set of
   IEs that is provided by a SACM component must provide the information
   contained in these two subjects although it is up to the implementer
   whether or not the subjects are explicitly defined in a data model.

   The notation the SACM IM is defined in is based on a modified version
   of the IP Information Flow Export (IPFIX) Information Model syntax
   described in Section 2.1 of [RFC7012].  The customized syntax used by
   the SACM IM is defined below in Figure 2.

       elementId (required):    The numeric identifier of the
                                Information Element. It is used
                                for the compact identification
                                of an Information Element. If
                                this identifier is used without
                                an enterpriseID, then the
                                elementId must be unique, and
                                the description of allowed values
                                is administrated by IANA. The
                                value "TBD" may be used during
                                development of the information
                                model until an elementId is
                                assigned by IANA and filled
                                in at publication time.




Waltermire, et al.       Expires January 9, 2017                [Page 8]


Internet-Draft           SACM Information Model                July 2016


       enterpriseId (optional): Enterprises may wish to define
                                Information Elements without
                                registering them with IANA, for
                                example, for enterprise-internal
                                purposes.  For such Information
                                Elements, the elementId is
                                not sufficient when used
                                outside the enterprise. If
                                specifications of enterprise-
                                specific Information Elements
                                are made public and/or if
                                enterprise-specific identifiers
                                are used by SACM components
                                outside the enterprise, then the
                                enterprise-specific identifier
                                MUST be made globally unique by
                                combining it with an enterprise
                                identifier.  Valid values for the
                                enterpriseId are defined by IANA
                                as Structure of Management
                                Information (SMI) network management
                                private enterprise numbers.

       name (required):         A unique and meaningful name for
                                the Information Element.

       dataType (required):     There are two kinds of datatypes:
                                simple and structured. Attributes are
                                defined using simple datatypes
                                and subjects are defined using
                                structured datatypes. The contents of
                                the datatype field will be either
                                a reference to one of the simple
                                datatypes listed in Section
                                5.1, or the specification of
                                structured datatype as defined in
                                Section 5.2.

       status (required):       The status of the specification
                                of the Information Element.
                                Allowed values are "current" and
                                "deprecated". All newly defined
                                Information Elements have "current"
                                status. The process for moving
                                Information Elements to the
                                "deprecated" status is TBD.

       description (required): Describes the meaning of the



Waltermire, et al.       Expires January 9, 2017                [Page 9]


Internet-Draft           SACM Information Model                July 2016


                               Information Element, how it is
                               derived, conditions for its use,
                               etc.

                               For Information Elements that
                               represent flags, please include
                               a table that lists each flag value
                               (hexadecimal) and description. The
                               following is a template for that
                               table.

                               +-------+-----------------------+
                               | Value | Description           |
                               +-------+-----------------------+
                               |       |                       |
                               +-------+-----------------------+

       references (optional):  Identifies other RFCs or documents
                               outside the IETF which provide
                               additional information or context
                               about the Information Element.

           Figure 2: Information Element Specification Template

4.1.  SACM Content Elements

   Every piece of information that is provided by a SACM component is
   always associated with a set of metadata, for example, the timestamp
   at which this set of information was produced (e.g. by a collection
   task) or what target endpoint this set of information is about (e.g.
   the data-source or a target endpoint identifier, respectively).  The
   subject that associates content IE with content-metadata IE is called
   a content-element.  Content metadata can also include relationships
   that express associations with other content-elements.

















Waltermire, et al.       Expires January 9, 2017               [Page 10]


Internet-Draft           SACM Information Model                July 2016


               content-element = (
                 content-metadata = (
                   collection-timestamp = 146193322,
                   data-source = fb02e551-7101-4e68-8dec-1fde6bd10981
                 ),
                 hostname = "arbutus",
                 coordinates = (
                 latitude = N27.99619,
                 longitude = E86.92761
                 )
               )

   Figure 3: Example set of IEs associated with a timestamp and a target
                              endpoint label.

4.2.  SACM Statements

   One or more SACM content elements are bundled in a SACM statement.
   In contrast to content-metadata, statement-metatdata focuses on the
   providing SACM component instead of the target endpoint that the
   content is about.  The only content-specific metadata included in the
   SACM statement is the content-type IE.  Therefore, multiple content-
   elements that share the same statement metadata and are of the same
   content-type can be included in a single SACM statement.  A SACM
   statement functions similar to an envelope or a header.  Its purpose
   is to enable the tracking of the origin of data inside a SACM domain
   and more importantly to enable the mitigation of conflicting
   information that my originate from different SACM components.  How a
   consuming SACM component actually deals with conflicting information
   is out-of-scope of the SACM IM.  Semantically, the term statement
   implies that the SACM content provided by a SACM component might not
   be correct in every context, but rather is the result of an best-
   effort to produce correct information.


















Waltermire, et al.       Expires January 9, 2017               [Page 11]


Internet-Draft           SACM Information Model                July 2016


               sacm-statement = (
                 statement-metadata = (
                   publish-timestamp = 1461934031,
                   data-origin = 24e67957-3d31-4878-8892-da2b35e121c2,
                   content-type = observation
                 ),
                 content-element = (
                   content-metadata = (
                     collection-timestamp = 146193322,
                     data-source = fb02e551-7101-4e68-8dec-1fde6bd10981
                   ),
                   hostname = "arbutus"
                 )
               )

      Figure 4: Example of a simple SACM statement including a single
                             content-element.


































Waltermire, et al.       Expires January 9, 2017               [Page 12]


Internet-Draft           SACM Information Model                July 2016


               sacm-statement = (
                 statement-metadata = (
                   publish-timestamp = 1461934031,
                   data-origin = 24e67957-3d31-4878-8892-da2b35e121c2
                   content-type = observation
                 ),
                 content-element = (
                   content-metadata = (
                     collection-timestamp = 146193322,
                     data-source = fb02e551-7101-4e68-8dec-1fde6bd10981
                   ),
                   coordinates = (
                     latitude = N27.99619,
                     longitude = E86.92761
                   )
                 )
               )

               sacm-statement = (
                 statement-metadata = (
                   publish-timestamp = 1461934744,
                   data-origin = e42885a1-0270-44e9-bb5c-865cf6bd4800,
                   content-type = observation
                 ),
                 content-element = (
                   content-metadata = (
                     collection-timestamp = 146193821,
                     te-label = fb02e551-7101-4e68-8dec-1fde6bd10981
                   ),
                   coordinates = (
                     latitude = N16.67622,
                     longitude = E141.55321
                   )
                 )
               )

       Figure 5: Example of conflicting information originating from
                        different SACM components.

4.3.  Relationships

   An IE can be associated with another IE, e.g. a user-name attribute
   can be associated with a content-authorization subject.  These
   references are expressed via the relationships subject, which can be
   included in a corresponding content-metadata subject.  The
   relationships subject includes a list of one or more references.  The
   SACM IM does not enforce a SACM domain to use unique identifiers as




Waltermire, et al.       Expires January 9, 2017               [Page 13]


Internet-Draft           SACM Information Model                July 2016


   references.  Therefore, there are at least two ways to reference
   another content-element:

   o  The value of a reference represents a specific content-label that
      is unique in a SACM domain (and has to be included in the
      corresponding content-element metadata in order to be referenced),
      or

   o  The reference is a subject that includes an appropriate number of
      IEs in order to identify the referenced content-element by its
      actual content.

   It is recommended to provide unique identifiers in a SACM domain and
   the SACM IM provides a corresponding naming-convention as a reference
   in section FIXME.  The alternative highlighted above summarizes a
   valid approach that does not require unique identifiers and is
   similar to the approach of referencing target endpoints via
   identifying attributes included in a characterization record (FIXME
   REF arch).

               content-element = (
                 content-metadata = (
                   collection-timestamp = 1461934031,
                   te-label =
                   fb02e551-7101-4e68-8dec-1fde6bd10981
                   relationships = (
                     associated-with-user-account =
                     f3d70ef4-7e18-42af-a894-8955ba87c95d
                   )
                 ),
                 hostname = "arbutus"
               )

               content-element = (
                 content-metadata = (
                   content-label = f3d70ef4-7e18-42af-a894-8955ba87c95d
                 ),
                 user-account = (
                   username = romeo
                   authentication = local
                 )
               )

    Figure 6: Example instance of a content-element subject associated
              with another subject via its content metadata.






Waltermire, et al.       Expires January 9, 2017               [Page 14]


Internet-Draft           SACM Information Model                July 2016


4.4.  Event

   Event subjects provide a structure to represent the change of IE
   values that was detected by a collection task at a specific point of
   time.  It is mandatory to include the new values and the collection
   timestamp in an event subject and it is recommended to include the
   past values and a collection timestamp that were replaced by the new
   IE values.  Every event can also be associated with a subject-
   specific event-timestamp and a lastseen-timestamp that might differ
   from the corresponding collection-timestamps.  If these are omitted
   the collection-timestamp that is included in the content-metadata
   subject is used instead.

           sacm-statement = (
             statement-metadata = (
               publish-timestamp = 1461934031,
               data-origin = 24e67957-3d31-4878-8892-da2b35e121c2,
               content-type = event
             ),
             event = (
               event-attributes = (
                 event-name = "host-name change",
                 content-element = (
                   content-metadata = (
                   collection-timestamp = 146193322,
                   data-source =
                     fb02e551-7101-4e68-8dec-1fde6bd10981,
                     event-component = past-state
                  ),
                  hostname = "arbutus"
                 ),
                 content-element = (
                   content-metadata = (
                     collection-timestamp = 146195723,
                     data-source =
                     fb02e551-7101-4e68-8dec-1fde6bd10981,
                     event-component = current-state
                   ),
                   hostname = "lilac"
                 )
               )
             )

        Figure 7: Example of a SACM statement containing an event.







Waltermire, et al.       Expires January 9, 2017               [Page 15]


Internet-Draft           SACM Information Model                July 2016


4.5.  Categories

   Categories are special IEs that enable to refer to multiple types of
   IE via just one name.  Therefore, they are similar to a type-choice.
   A prominent example of a category is network-address.  Network-
   address is a category that every kind of network address is
   associated with, e.g. mac-address, ipv4-address, ipv6-address, or
   typed-network-address.  If a subject includes network-address as one
   of its components, any of the category members are valid to be used
   in its place.

   Another prominent example is EndpointIdentifier.  Some IEs can be
   used to identify (and over time re-recognize) target endpoints -
   those are associated with the category endpoint-identifier.

4.6.  Designation

   TODO: In the IETF, there are privacy concerns with respect to
   endpoint identity and monitoring.  As a result, the Endpoint ID
   Design Team proposes that "endpoint identity" be changed to "endpoint
   designation".  Designation attributes can be used to correlate
   endpoints, information about endpoints, events, etc.  NOTE:
   Designation attributes are just those that are mandatory-to-
   implement.  In practice, organizations may need to select additional
   attributes beyond the mandatory-to-implement attributes to
   successfully identify an endpoint on their network.  Operational and
   privacy concerns will be covered in Operational Considerations and
   Privacy Considerations sections respectively.  A proposal outlining
   various options for representing designation attributes/objects in
   the IPFIX syntax is being discussed on the mailing list.  See IM
   issue #39 at https://github.com/sacmwg/draft-ietf-sacm-information-
   model/issues/39 for more information.  Also, consider inserting table
   that discusses the various properties of designation attributes and
   include it in this section to help others determine whether or not a
   new Information Element should be considered a designation attribute.
   Lastly, explain how designation attributes can be used.  For example,
   letting a consumer identify an endpoint, for two purposes:

   o  To tell whether two endpoint attribute assertions concern the same
      endpoint

   o  To respond to compliance measurements, for example by reporting,
      remediating, and quarantining (SACM does not specify these
      responses, but SACM exists to enable them.)







Waltermire, et al.       Expires January 9, 2017               [Page 16]


Internet-Draft           SACM Information Model                July 2016


4.7.  Privacy

   TODO: In the IETF, there are privacy concerns with respect to
   endpoint identity and monitoring.  As a result, it was proposed that
   a privacy property be included to denote when a Information Element
   represents a privacy concern.  A proposal outlining various options
   for representing privacy attributes/objects in the IPFIX syntax is
   being discussed on the mailing list.  See IM issue #39 at
   https://github.com/sacmwg/draft-ietf-sacm-information-model/issues/39
   for more information.

5.  Abstract Data Types

   This section describes the set of valid abstract data types that can
   be used for the specification of the SACM Information Elements in
   Section 7.  SACM currently supports two classes of datatypes that can
   be used to define Information Elements.

   o  Simple: Datatypes that are atomic and are used to define the type
      of data represented by an attribute Information Element.

   o  Structured: Datatypes that can be used to define the type of data
      represented by a subject Information Element.

   Note that further abstract data types may be specified by future
   extensions of the SACM information model.

5.1.  Simple Datatypes

5.1.1.  IPFIX Datatypes

   To facilitate the use of existing work, SACM supports the following
   abstract data types defined in Section 3 of [RFC7012].

   o  unsigned8, unsigned16, unsigned32, unsigned64

   o  signed8, signed16, signed32, signed64

   o  float32, float64

   o  boolean

   o  macAddress

   o  octetArray

   o  string




Waltermire, et al.       Expires January 9, 2017               [Page 17]


Internet-Draft           SACM Information Model                July 2016


   o  dateTimeSeconds, dateTimeMilliseconds, dateTimeMicroseconds,
      dateTimeNanoSeconds

   o  ipv4Address, ipv6Address

5.1.2.  ciscoTrainSoftwareVersion

   The type "ciscoTrainSoftwareVersion" represents a software version
   that conforms to the Cisco IOS Train string format.

5.1.3.  rpmSoftwareVersion

   The type "rpmSoftwareVersion" represents a software version that
   conforms to the EPOCH:VERSION-RELEASE format.

5.1.4.  simpleSoftwareVersion

   The type "simpleSoftwareVersion" represents a software version that
   is a hierarchical list of non-negative integers separated by a single
   character delimiter.

5.2.  Structured Datatypes

5.2.1.  List Datatypes

   SACM defines the following abstract list data types that are used to
   represent the structured data associated with subjects.

   o  list: indicates that the Information Element order is not
      significant but MAY be preserved.

   o  orderedList: indicates that Information Element order is
      significant and MUST be preserved.

   The notation for defining a SACM structured datatype is based on
   regular expressions, which are composed of the keywords "list" or
   "orderedList" and an Information Element expression.  IE expressions
   use some of the regular expression syntax and operators, but the
   terms in the expression are the names of defined Information Elements
   instead of character classes.  The syntax for defining list and
   orderedList datatypes is described below, using BNF:










Waltermire, et al.       Expires January 9, 2017               [Page 18]


Internet-Draft           SACM Information Model                July 2016


       <list-def> -> ("list"|"orderedList") "(" <ie-expression> ")"

       <ie-expression> -> <ie-name> <cardinality>?
                          ( ("," | "|") <ie-name> <cardinality>?)*

       <cardinality> -> "*" | "+" | "?" |
                        ( "(" <non-neg-int> ("," <non-neg-int>)? ")" )

               Figure 8: Syntax for Defining List Datatypes

   As seen above, multiple occurences of an Information Element may be
   present in a structured datatype.  The cardinality of an Information
   Element within a structured Information Element definition is defined
   by the following operators:

       * - zero or more occurrences

       + - one or more occurrences

       ? - zero or one occurrence

      (m,n) - between m and n occurrences

         Figure 9: Specifying Cardinality for Structured Datatypes

   The absence of a cardinality operator implies one mandatory
   occurrence of the Information Element.

   Below is an example of a structured Information Element definition.






















Waltermire, et al.       Expires January 9, 2017               [Page 19]


Internet-Draft           SACM Information Model                July 2016


   personInfo = list(firstName, middleNames?, lastName)
   firstName = string
   middleNames = orderedList(middleName+)
   middleName = string
   lastName = string

   As an example, consider the name "John Ronald Reuel Tolkien".
   Below are instances of this name, structured according to the
   personInfo definition.

   personInfo = (firstName="John", middleNames(middleName="Ronald",
                 middleName="Reuel"), lastName="Tolkien")

   personInfo = (middleNames(middleName="Ronald", middleName=" Reuel"),
                 lastName="Tolkien", firstName="John")

   The instance below is not legal with respect to the definition
   of personInfo because the order in middleNames is not preserved.

   personInfo = (firstName="John", middleNames(middleName=" Reuel",
                 middleName="Ronald"), lastName="Tolkien")

           Figure 10: Example of Defining a Structured Datatype

6.  Information Model Assets

   In order to represent the Information Elements related to the areas
   listed in Section 3.1, the information model defines the information
   needs (or metadata about those information needs) related to
   following types of assets which arse defined in
   [I-D.ietf-sacm-terminology] (and included below for convenience)
   which are of interest to SACM.  Specifically:

   o  Endpoint

   o  Software Component

   o  Hardware Component

   o  Identity

   o  Guidance

   o  Evaluation Results

   The following figure shows the make up of an Endpoint asset which
   contains zero or more hardware components and zero or more software
   components each of which may have zero or more instances running an



Waltermire, et al.       Expires January 9, 2017               [Page 20]


Internet-Draft           SACM Information Model                July 2016


   endpoint at any given time as well as zero or more identities that
   act on behalf of the endpoint when interfacing with other endpoints,
   tools, or services.  An endpoint may also contain other endpoints in
   the case of a virtualized environment.


           +---------+*______in>_______*+-----+
           |Hardware |                  |!   !|
           |Component|   +---------+    |!   !|
           +---------+   |Software |in> |!   !|
                         |Component|____|!   !|
                         +---------+*  *|!   !|
                             1|         |!   !|
                             *|         |     |       +----------+
                         +---------+    |End- |*_____*| Identity |
                         |Software |in> |point| acts  +----------+
                         |Instance |____|     | for>
                         +---------+*  1|!   !|
                                        |!   !|
                                        |!   !|
                                        |!   !|
                                        |!   !|____
                                        |!   !|0..1|
                                        +-----+    |
                                           |*      |
                                           |_______|
                                              in>


                      Figure 11: Model of an Endpoint

6.1.  Asset

   As defined in [RFC4949], an asset is a system resource that is (a)
   required to be protected by an information system's security policy,
   (b) intended to be protected by a countermeasure, or (c) required for
   a system's mission.

   In the scope of SACM, an asset can be composed of other assets.
   Examples of Assets include: Endpoints, Software, Guidance, or
   Identity.  Furthermore, an asset is not necessarily owned by an
   organization.

6.2.  Endpoint

   From [RFC5209], an endpoint is any computing device that can be
   connected to a network.  Such devices normally are associated with a
   particular link layer address before joining the network and



Waltermire, et al.       Expires January 9, 2017               [Page 21]


Internet-Draft           SACM Information Model                July 2016


   potentially an IP address once on the network.  This includes:
   laptops, desktops, servers, cell phones, or any device that may have
   an IP address.

   To further clarify, an endpoint is any physical or virtual device
   that may have a network address.  Note that, network infrastructure
   devices (e.g. switches, routers, firewalls), which fit the
   definition, are also considered to be endpoints within this document.

   Physical endpoints are always composites that are composed of
   hardware components and software components.  Virtual endpoints are
   composed entirely of software components and rely on software
   components that provide functions equivalent to hardware components.

   The SACM architecture differentiates two essential categories of
   endpoints: Endpoints whose security posture is intended to be
   assessed (target endpoints) and endpoints that are specifically
   excluded from endpoint posture assessment (excluded endpoints).

6.3.  Hardware Component

   Hardware components are the distinguishable physical components that
   compose an endpoint.  The composition of an endpoint can be changed
   over time by adding or removing hardware components.  In essence,
   every physical endpoint is potentially a composite of multiple
   hardware components, typically resulting in a hierarchical
   composition of hardware components.  The composition of hardware
   components is based on interconnects provided by specific hardware
   types (e.g.  mainboard is a hardware type that provides local busses
   as an interconnect).  In general, a hardware component can be
   distinguished by its serial number.

   Examples of a hardware components include: motherboards, network
   interfaces, graphics cards, hard drives, etc.

6.4.  Software Component

   A software package installed on an endpoint (including the operating
   system) as well as a unique serial number if present (e.g. a text
   editor associated with a unique license key).

   It should be noted that this includes both benign and harmful
   software packages.  Examples of benign software components include:
   applications, patches, operating system kernel, boot loader,
   firmware, code embedded on a webpage, etc.  Examples of malicious
   software components include: malware, trojans, viruses, etc.





Waltermire, et al.       Expires January 9, 2017               [Page 22]


Internet-Draft           SACM Information Model                July 2016


6.4.1.  Software Instance

   A running instance of the software component (e.g. on a multi-user
   system, one logged-in user has one instance of a text editor running
   and another logged-in user has another instance of the same text
   editor running, or on a single-user system, a user could have
   multiple independent instances of the same text editor running).

6.5.  Identity

   TODO: Define an Asset Identity asset.  NOTE: Make sure it is clear
   that this is not identity in the sense of what we have been saying
   endpoint identity (now designation).

   Examples of an identity include: username, user and device
   certificates, etc.

6.6.  Guidance

   TODO: Need to resolve the forms of Guidance in the terminology and
   those listed as sub-sections below.

   Guidance is input instructions to processes and tasks, such as
   collection or evaluation.  Guidance influences the behavior of a SACM
   component and is considered content of the management plane.
   Guidance can be manually or automatically generated or provided.
   Typically, the tasks that provide guidance to SACM components have a
   low-frequency and tend to be be sporadic.  A prominent example of
   guidance are target endpoint profiles, but guidance can have many
   forms, including:

      Configuration, e.g. a SACM component's name, or a CMDB's IPv6
      address.

      Profiles, e.g. a set of expected states for network behavior
      associated with target endpoints employed by specific users.

      Policies, e.g. an interval to refresh the registration of a SACM
      component, or a list of required capabilities for SACM components
      in a specific location.

6.6.1.  Internal Collection Guidance

   An internal collector may need guidance to govern what it collects
   and when.






Waltermire, et al.       Expires January 9, 2017               [Page 23]


Internet-Draft           SACM Information Model                July 2016


6.6.2.  External Collection Guidance

   An external collector may need guidance to govern what it collects
   and when.

6.6.3.  Evaluation Guidance

   An evaluator typically needs Evaluation Guidance to govern what it
   considers to be a good or bad security posture.

6.6.4.  Retention Guidance

   A SACM deployment may retain posture attributes, events, or
   evaluation results for some time.  Retention supports ad hoc
   reporting and other use cases.

   If information is retained, retention guidance controls what is
   retained and for how long.

   If two or more pieces of retention guidance apply to a piece of
   information, the guidance calling for the longest retention should
   take precedence.

6.7.  Evaluation Results

   Evaluation results are the resulting values from having evaluated a
   set of posture attributes.

   An example is: a NEA access recommendation [RFC5793].

   An evaluator may be able to evaluate better if history is available.
   This is a use case for retaining Endpoint Attribute Assertions for a
   time.

   An Evaluation Result may be retained longer than the Endpoint
   Attribute Assertions from which it derives (Figure 11 does not show
   this).  In the limiting case, Endpoint Attribute Assertions are not
   retained.  When an Endpoint Attribute Assertion arrives, an evaluator
   produces an Evaluation Result.  These mechanics are out of the scope
   of the Information Model.

7.  Information Model Elements

   TODO: Define specific subjects, attributes, and metadata.  We may
   want to consider adding small diagrams showing the relationships
   between each (see Lisa's notes:
   https://mailarchive.ietf.org/arch/msg/sacm/




Waltermire, et al.       Expires January 9, 2017               [Page 24]


Internet-Draft           SACM Information Model                July 2016


   kWxlnboHAXD87cned9WavwPZy5w).  This may be too much work, but, not
   sure yet.

7.1.  hardwareSerialNumber

   elementId: TBD
   name: hardwareSerialNumber
   dataType: string
   status: current
   description: A globally unique identifier for a particular
                piece of hardware assigned by the vendor.

7.2.  interfaceName

   elementId: TBD
   name: interfaceName
   dataType: string
   status: current
   description: A short name uniquely describing an interface,
                eg "Eth1/0". See [RFC2863] for the definition
                of the ifName object.

7.3.  interfaceIndex

   elementId: TBD
   name: interfaceIndex
   dataType: unsigned32
   status: current
   description: The index of an interface installed on an endpoint.
                The value matches the value of managed object
                'ifIndex' as defined in [RFC2863]. Note that ifIndex
                values are not assigned statically to an interface
                and that the interfaces may be renumbered every time
                the device's management system is re-initialized,
                as specified in [RFC2863].

7.4.  interfaceMacAddress

   elementId: TBD
   name: interfaceMacAddress
   dataType: macAddress
   status: current
   description: The IEEE 802 MAC address associated with a network
                interface on an endpoint.







Waltermire, et al.       Expires January 9, 2017               [Page 25]


Internet-Draft           SACM Information Model                July 2016


7.5.  interfaceType

   elementId: TBD
   name: interfaceType
   dataType: unsigned32
   status: current
   description: The type of a network interface. The value matches
                the value of managed object 'ifType' as defined in
                [IANA registry ianaiftype-mib].

7.6.  interfaceFlags

   elementId: TBD
   name: interfaceFlags
   dataType: unsigned16
   status: current
   description: This information element specifies the flags
                associated with a network interface. Possible
                values include:

               +-------+----------------------------------+
               | Value | Description                      |
               +-------+----------------------------------+
               | 0x1   | interface is up                  |
               | 0x2   | broadcast address valid          |
               | 0x4   | turn on debugging                |
               | 0x8   | is a loopback net                |
               | 0x10  | interface is point-to-point link |
               | 0x20  | avoid use of trailers            |
               | 0x40  | resources allocated              |
               | 0x80  | no address resolution protocol   |
               | 0x100 | receive all packets              |
               +-------+----------------------------------+

7.7.  networkInterface

   elementId: TBD
   name: networkInterface
   dataType: orderedList(interfaceName, interfaceIndex, macAddress,
                         ifType, flags)
   status: current
   description: Information about a network interface
                installed on an endpoint. The
                following high-level digram
                describes the structure of
                networkInterface information
                element.




Waltermire, et al.       Expires January 9, 2017               [Page 26]


Internet-Draft           SACM Information Model                July 2016


7.8.  softwareIdentifier

   elementId: TBD
   name: softwareIdentifier
   dataType: string
   status: current
   description: A globally unique identifier for a particular
                software application.

7.9.  softwareTitle

   elementId: TBD
   name: softwareTitle
   dataType: string
   status: current
   description: The title of the software application.

7.10.  softwareCreator

   elementId: TBD
   name: softwareCreator
   dataType: string
   status: current
   description: The software developer (e.g., vendor or author).

7.11.  simpleSoftwareVersion

   elementId: TBD
   name: simpleSoftwareVersion
   dataType: simpleVersion
   status: current
   description: The version string for a software application that
                follows the simple versioning scheme.

7.12.  rpmSoftwareVersion

   elementId: TBD
   name: rpmSoftwareVersion
   dataType: rpmVersion
   status: current
   description: The version string for a software application that
                follows the RPM versioning scheme.

7.13.  ciscoTrainSoftwareVersion







Waltermire, et al.       Expires January 9, 2017               [Page 27]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: ciscoTrainSoftwareVersion
   dataType: ciscoTrainVersion
   status: current
   description: The version string for a software application that
                follows the Cisco Train Release versioning scheme.

7.14.  softwareVersion

   elementId: TBD
   name: softwareVerison
   dataType: list(simpleSoftwareVersion | rpmSoftwareVersion |
                  ciscoTrainSoftwareVersion)
   status: current
   description: The version of the software application. Software
                applications may be versioned using a number of
                schemas. The following high-level digram describes
                the structure of the softwareVersion information
                element.

7.15.  lastUpdated

   elementId: TBD
   name: lastUpdated
   dataType: dateTimeSeconds
   status: current
   description: The date and time when the software instance
                was last updated on the system (e.g., new
                version instlalled or patch applied)

7.16.  softwareInstance

   elementId: TBD
   name: softwareInstance
   dataType: orderedList(softwareIdentifier, title, creator,
                         softwareVersion, lastUpdated)
   status: current
   description: Information about an instance of software
                installed on an endpoint. The following
                high-level digram describes the structure of
                softwareInstance information element.

7.17.  globallyUniqueIdentifier








Waltermire, et al.       Expires January 9, 2017               [Page 28]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: globallyUniqueIdentifier
   dataType: unsigned8
   status: current
   metadata: true
   description: TODO.

7.18.  dataOrigin

   elementId: TBD
   name: dataOrigin
   dataType: string
   status: current
   metadata: true
   description: The origin of the data. TODO make a better
                description.

7.19.  dataSource

   elementId: TBD
   name: dataSource
   dataType: string
   status: current
   metadata: true
   description: The source of the data. TODO make a better
                description.

7.20.  creationTimestamp

   elementId: TBD
   name: creationTimestamp
   dataType: dateTimeSeconds
   status: current
   metadata: true
   description: The date and time when the posture
                information was created by a SACM Component.

7.21.  collectionTimestamp

   elementId: TBD
   name: collectionTimestamp
   dataType: dateTimeSeconds
   status: current
   metadata: true
   description: The date and time when the posture
                information was collected or observed by a SACM
                Component.




Waltermire, et al.       Expires January 9, 2017               [Page 29]


Internet-Draft           SACM Information Model                July 2016


7.22.  publicationTimestamp

   elementId: TBD
   name: publicationTimestamp
   dataType: dateTimeSeconds
   status: current
   metadata: true
   description: The date and time when the posture
                information was published.

7.23.  relayTimestamp

   elementId: TBD
   name: relayTimestamp
   dataType: dateTimeSeconds
   status: current
   metadata: true
   description: The date and time when the posture
                information was relayed to another SACM Component.

7.24.  storageTimestamp

   elementId: TBD
   name: storageTimestamp
   dataType: dateTimeSeconds
   status: current
   metadata: true
   description: The date and time when the posture
                information was stored in a Repository.

7.25.  type




















Waltermire, et al.       Expires January 9, 2017               [Page 30]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: type
   dataType: unsigned16
   status: current
   metadata: true
   description: The type of data model use to represent
                some set of endpoint information. The following
                table lists the set of data models supported by SACM.

                +-------+----------------------------------+
                | Value | Description                      |
                +-------+----------------------------------+
                | 0x00  | Data Model 1                     |
                +-------+----------------------------------+
                | 0x01  | Data Model 2                     |
                +-------+----------------------------------+
                | 0x02  | Data Model 3                     |
                +-------+----------------------------------+
                |...    | ...                              |
                +-------+----------------------------------+

7.26.  protocolIdentifier

   elementId: TBD
   name: protocolIdentifier
   dataType: unsigned8
   status: current
   description: The value of the protocol number in the IP packet
                header. The protocol number identifies the IP packet
                payload type. Protocol numbers are defined in the
                IANA Protocol Numbers registry.

                In Internet Protocol version 4 (IPv4), this is
                carried in the Protocol field.  In Internet Protocol
                version 6 (IPv6), this is carried in the Next Header
                field in the last extension header of the packet.

7.27.  sourceTransportPort













Waltermire, et al.       Expires January 9, 2017               [Page 31]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: sourceTransportPort
   dataType: unsigned16
   status: current
   description: The source port identifier in the transport header.
                For the transport protocols UDP, TCP, and SCTP, this
                is the source port number given in the respective
                header.  This field MAY also be used for future
                transport protocols that have 16-bit source port
                identifiers.

7.28.  sourceIPv4PrefixLength

   elementId: TBD
   name: sourceIPv4PrefixLength
   dataType: unsigned8
   status: current
   description: The number of contiguous bits that are relevant in
                the sourceIPv4Prefix Information Element.

7.29.  ingressInterface

   elementId: TBD
   name: ingressInterface
   dataType: unsigned32
   status: current
   description: The index of the IP interface where packets of this
                Flow are being received.  The value matches the
                value of managed object 'ifIndex' as defined in
                [RFC2863]. Note that ifIndex values are not assigned
                statically to an interface and that the interfaces
                may be renumbered every time the device's management
                system is re-initialized, as specified in [RFC2863].

7.30.  destinationTransportPort

   elementId: TBD
   name: destinationTransportPort
   dataType: unsigned16
   status: current
   description: The destination port identifier in the transport
                header. For the transport protocols UDP, TCP, and
                SCTP, this is the destination port number given in
                the respective header. This field MAY also be used
                for future transport protocols that have 16-bit
                destination port identifiers.





Waltermire, et al.       Expires January 9, 2017               [Page 32]


Internet-Draft           SACM Information Model                July 2016


7.31.  sourceIPv6PrefixLength

   elementId: TBD
   name: sourceIPv6PrefixLength
   dataType: unsigned8
   status: current
   description: The number of contiguous bits that are relevant in
                the sourceIPv6Prefix Information Element.

7.32.  sourceIPv4Prefix

   elementId: TBD
   name: sourceIPv4Prefix
   dataType: ipv4Address
   status: current
   description: IPv4 source address prefix.

7.33.  destinationIPv4Prefix

   elementId: TBD
   name: destinationIPv4Prefix
   dataType: ipv4Address
   status: current
   description: IPv4 destination address prefix.

7.34.  sourceMacAddress

   elementId: TBD
   name: sourceMacAddress
   dataType: macAddress
   status: current
   description: The IEEE 802 source MAC address field.

7.35.  ipVersion

   elementId: TBD
   name: ipVersion
   dataType: unsigned8
   status: current
   description: The IP version field in the IP packet header.

7.36.  interfaceDescription









Waltermire, et al.       Expires January 9, 2017               [Page 33]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: interfaceDescription
   dataType: string
   status: current
   description: The description of an interface, eg "FastEthernet
                1/0" or "ISP
   connection".

7.37.  applicationDescription

   elementId: TBD
   name: applicationDescription
   dataType: string
   status: current
   description: Specifies the description of an application.

7.38.  applicationId

   elementId: TBD
   name: applicationId
   dataType: octetArray
   status: current
   description: Specifies an Application ID per [RFC6759].

7.39.  applicationName

   elementId: TBD
   name: applicationName
   dataType: string
   status: current
   description: Specifies the name of an application.

7.40.  exporterIPv4Address

   elementId: TBD
   name: exporterIPv4Address
   dataType: ipv4Address
   status: current
   description: The IPv4 address used by the Exporting Process.
                This is used by the Collector to identify the
                Exporter in cases where the identity of the Exporter
                may have been obscured by the use of a proxy.

7.41.  exporterIPv6Address







Waltermire, et al.       Expires January 9, 2017               [Page 34]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: exporterIPv6Address
   dataType: ipv6Address
   status: current
   description: The IPv6 address used by the Exporting Process.
                This is used by the Collector to identify the
                Exporter in cases where the identity of the
                Exporter may have been obscured by the use of a
                proxy.

7.42.  portId

   elementId: TBD
   name: portId
   dataType: unsigned32
   status: current
   description: An identifier of a line port that is unique per
                IPFIX Device hosting an Observation Point.
                Typically, this Information Element is used for
                limiting the scope of other Information Elements.

7.43.  templateId

   elementId: TBD
   name: templateId
   dataType: unsigned16
   status: current
   description: An identifier of a Template that is locally unique
                within a combination of a Transport session and an
                Observation Domain.

                Template IDs 0-255 are reserved for Template Sets,
                Options Template Sets, and other reserved Sets yet
                to be created. Template IDs of Data Sets are
                numbered from 256 to 65535.

                Typically, this Information Element is used for
                limiting the scope of other Information Elements.
                Note that after a re-start of the Exporting Process
                Template identifiers may be re-assigned.

7.44.  collectorIPv4Address









Waltermire, et al.       Expires January 9, 2017               [Page 35]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: collectorIPv4Address
   dataType: ipv4Address
   status: current
   description: An IPv4 address to which the Exporting Process sends
                Flow information.

7.45.  collectorIPv6Address

   elementId: TBD
   name: collectorIPv6Address
   dataType: ipv6Address
   status: current
   description: An IPv6 address to which the Exporting Process sends
                Flow information.

7.46.  informationElementIndex

   elementId: TBD
   name: informationElementIndex
   dataType: unsigned16
   status: current
   description: A zero-based index of an Information Element
                referenced by informationElementId within a Template
                referenced by templateId; used to disambiguate
                scope for templates containing multiple identical
                Information Elements.

7.47.  informationElementId

   elementId: TBD
   name: informationElementId
   dataType: unsigned16
   status: current
   description: This Information Element contains the ID of another
                Information Element.

7.48.  informationElementDataType













Waltermire, et al.       Expires January 9, 2017               [Page 36]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: informationElementDataType
   dataType: unsigned8
   status: current
   description: A description of the abstract data type of an IPFIX
                information element.These are taken from the
                abstract data types defined in section 3.1 of the
                IPFIX Information Model [RFC5102]; see that section
                for more information on the types described in the
                informationElementDataType sub-registry.

                These types are registered in the IANA IPFIX
                Information Element Data Type subregistry.  This
                subregistry is intended to assign numbers for type
                names, not to provide a mechanism for adding data
                types to the IPFIX Protocol, and as such requires a
                Standards Action [RFC5226] to modify.

7.49.  informationElementDescription

   elementId: TBD
   name: informationElementDescription
   dataType: string
   status: current
   description: A UTF-8 [RFC3629] encoded Unicode string containing
                a human-readable description of an Information
                Element.  The content of the
                informationElementDescription MAY be annotated with
                one or more language tags [RFC4646], encoded
                in-line [RFC2482] within the UTF-8 string, in order
                to specify the language in which the description is
                written.  Description text in multiple languages MAY
                tag each section with its own language tag; in this
                case, the description information in each language
                SHOULD have equivalent meaning.  In the absence of
                any language tag, the "i-default" [RFC2277] language
                SHOULD be assumed.  See the Security Considerations
                section for notes on string handling for Information
                Element type records.

7.50.  informationElementName










Waltermire, et al.       Expires January 9, 2017               [Page 37]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: informationElementName
   dataType: string
   status: current
   description: A UTF-8 [RFC3629] encoded Unicode string containing
                the name of an Information Element, intended as a
                simple identifier.  See the Security Considerations
                section for notes on string handling for Information
                Element type records.

7.51.  informationElementRangeBegin

   elementId: TBD
   name: informationElementRangeBegin
   dataType: unsigned64
   status: current
   description: Contains the inclusive low end of the range of
                acceptable values for an Information Element.

7.52.  informationElementRangeEnd

   elementId: TBD
   name: informationElementRangeEnd
   dataType: unsigned64
   status: current
   description: Contains the inclusive high end of the range of
                acceptable values for an Information Element.

7.53.  informationElementSemantics






















Waltermire, et al.       Expires January 9, 2017               [Page 38]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: informationElementSemantics
   dataType: unsigned8
   status: current
   description: A description of the semantics of an IPFIX
                Information Element.  These are taken from the data
                type semantics defined in section 3.2 of the IPFIX
                Information Model [RFC5102]; see that section for
                more information on the types defined in the
                informationElementSemantics sub-registry.  This
                field may take the values in Table ; the special
                value 0x00 (default) is used to note that no
                semantics apply to the field; it cannot be
                manipulated by a Collecting Process or File Reader
                that does not understand it a priori.

                These semantics are registered in the IANA IPFIX
                Information Element Semantics subregistry.  This
                subregistry is intended to assign numbers for
                semantics names, not to provide a mechanism for
                adding semantics to the IPFIX Protocol, and as such
                requires a Standards Action [RFC5226] to modify.

7.54.  informationElementUnits

   elementId: TBD
   name: informationElementUnits
   dataType: unsigned16
   status: current
   description: A description of the units of an IPFIX Information
                Element.  These correspond to the units implicitly
                defined in the Information Element definitions in
                section 5 of the IPFIX Information Model [RFC5102];
                see that section for more information on the types
                described in the informationElementsUnits
                sub-registry. This field may take the values in
                Table 3 below; the special value 0x00 (none) is
                used to note that the field is unitless.

                These types are registered in the IANA IPFIX
                Information Element Units subregistry; new types
                may be added on a First Come First Served [RFC5226]
                basis.








Waltermire, et al.       Expires January 9, 2017               [Page 39]


Internet-Draft           SACM Information Model                July 2016


7.55.  userName

   elementId: TBD
   name: userName
   dataType: string
   status: current
   description: User name associated with the flow.

7.56.  applicationCategoryName

   elementId: TBD
   name: applicationCategoryName
   dataType: string
   status: current
   description: An attribute that provides a first level
                categorization for each Application ID.

7.57.  mibObjectValueInteger

   elementId: TBD
   name: mibObjectValueInteger
   dataType: signed64
   status: current
   description: An IPFIX Information Element which denotes that the
                integer value of a MIB object will be exported.
                The MIB Object Identifier ("mibObjectIdentifier")
                for this field MUST be exported in a MIB Field
                Option or via another means.  This Information
                Element is used for MIB objects with the Base
                Syntax of Integer32 and INTEGER with IPFIX Reduced
                Size Encoding used as required. The value is
                encoded as per the standard IPFIX Abstract Data Type
                of signed64.

7.58.  mibObjectValueOctetString
















Waltermire, et al.       Expires January 9, 2017               [Page 40]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: mibObjectValueOctetString
   dataType: octetArray
   status: current
   description: An IPFIX Information Element which denotes that an
                Octet String or Opaque value of a MIB object will
                be exported. The MIB Object Identifier
                ("mibObjectIdentifier") for this field MUST be
                exported in a MIB Field Option or via another means.
                This Information Element is used for MIB objects
                with the Base Syntax of OCTET STRING and Opaque. The
                value is encoded as per the standard IPFIX Abstract
                Data Type of octetArray.

7.59.  mibObjectValueOID

   elementId: TBD
   name: mibObjectValueOID
   dataType: octetArray
   status: current
   description: An IPFIX Information Element which denotes that an
                Object Identifier or OID value of a MIB object will
                be exported. The MIB Object Identifier
                ("mibObjectIdentifier") for this field MUST be
                exported in a MIB Field Option or via another means.
                This Information Element is used for MIB objects
                with the Base Syntax of OBJECT IDENTIFIER.  Note -
                In this case the "mibObjectIdentifier" will define
                which MIB object is being exported while the value
                contained in this Information Element will be an
                OID as a value.  The mibObjectValueOID Information
                Element is encoded as ASN.1/BER [BER] in an
                octetArray.

7.60.  mibObjectValueBits
















Waltermire, et al.       Expires January 9, 2017               [Page 41]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: mibObjectValueBits
   dataType: octetArray
   status: current
   description: An IPFIX Information Element which denotes that a
                set of Enumerated flags or bits from a MIB object
                will be exported. The MIB Object Identifier
                ("mibObjectIdentifier") for this field MUST be
                exported in a MIB Field Option or via another means.
                This Information Element is used for MIB objects
                with the Base Syntax of BITS.  The flags or bits are
                encoded as per the standard IPFIX Abstract Data Type
                of octetArray, with sufficient length to accommodate
                the required number of bits.  If the number of bits
                is not an integer multiple of octets then the most
                significant bits at end of the octetArray MUST be
                set to zero.

7.61.  mibObjectValueIPAddress

   elementId: TBD
   name: mibObjectValueIPAddress
   dataType: ipv4Address
   status: current
   description: An IPFIX Information Element which denotes that the
                IPv4 Address of a MIB object will be exported.  The
                MIB Object Identifier ("mibObjectIdentifier") for
                this field MUST be exported in a MIB Field Option
                or via another means.  This Information Element is
                used for MIB objects with the Base Syntax of
                IPaddress. The value is encoded as per the standard
                IPFIX Abstract Data Type of ipv4Address.

7.62.  mibObjectValueCounter

















Waltermire, et al.       Expires January 9, 2017               [Page 42]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: mibObjectValueCounter
   dataType: unsigned64
   status: current
   description: An IPFIX Information Element which denotes that the
                counter value of a MIB object will be exported.
                The MIB Object Identifier ("mibObjectIdentifier")
                for this field MUST be exported in a MIB Field
                Option or via another means.  This Information
                Element is used for MIB objects with the Base
                Syntax of Counter32 or Counter64 with IPFIX Reduced
                Size Encoding used as required. The value is encoded
                as per the standard IPFIX Abstract Data Type
                of unsigned64.

7.63.  mibObjectValueGauge

   elementId: TBD
   name: mibObjectValueGauge
   dataType: unsigned32
   status: current
   description: An IPFIX Information Element which denotes that the
                Gauge value of a MIB object will be exported.  The
                MIB Object Identifier ("mibObjectIdentifier") for
                this field MUST be exported in a MIB Field Option
                or via another means.  This Information Element is
                used for MIB objects with the Base Syntax of Gauge32.
                The value is encoded as per the standard IPFIX
                Abstract Data Type of unsigned64.  This value will
                represent a non-negative integer, which may increase
                or decrease, but shall never exceed a maximum
                value, nor fall below a minimum value.

7.64.  mibObjectValueTimeTicks

   elementId: TBD
   name: mibObjectValueTimeTicks
   dataType: unsigned32
   status: current
   description: An IPFIX Information Element which denotes that the
                TimeTicks value of a MIB object will be exported.
                The MIB Object Identifier ("mibObjectIdentifier")
                for this field MUST be exported in a MIB Field
                Option or via another means.  This Information
                Element is used for MIB objects with the Base
                Syntax of TimeTicks. The value is encoded as per
                the standard IPFIX Abstract Data Type of unsigned32.




Waltermire, et al.       Expires January 9, 2017               [Page 43]


Internet-Draft           SACM Information Model                July 2016


7.65.  mibObjectValueUnsigned

   elementId: TBD
   name: mibObjectValueUnsigned
   dataType: unsigned64
   status: current
   description: An IPFIX Information Element which denotes that an
                unsigned integer value of a MIB object will be
                exported.  The MIB Object Identifier
                ("mibObjectIdentifier") for this field MUST be
                exported in a MIB Field Option or via another means.
                This Information Element is used for MIB objects
                with the Base Syntax of unsigned64 with IPFIX
                Reduced Size Encoding used as required. The value is
                encoded as per the standard IPFIX Abstract Data Type
                of unsigned64.

7.66.  mibObjectValueTable

   elementId: TBD
   name: mibObjectValueTable
   dataType: orderedList
   status: current
   description: An IPFIX Information Element which denotes that a
                complete or partial conceptual table will be
                exported.  The MIB Object Identifier
                ("mibObjectIdentifier") for this field MUST be
                exported in a MIB Field Option or via another means.
                This Information Element is used for MIB objects
                with a SYNTAX of SEQUENCE.  This is encoded as a
                subTemplateList of mibObjectValue Information
                Elements.  The template specified in the
                subTemplateList MUST be an Options Template and
                MUST include all the Objects listed in the INDEX
                clause as Scope Fields.

7.67.  mibObjectValueRow














Waltermire, et al.       Expires January 9, 2017               [Page 44]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: mibObjectValueRow
   dataType: orderedList
   status: current
   description: An IPFIX Information Element which denotes that a
                single row of a conceptual table will be exported.
                The MIB Object Identifier ("mibObjectIdentifier")
                for this field MUST be exported in a MIB Field
                Option or via another means.  This Information
                Element is used for MIB objects with a SYNTAX of
                SEQUENCE.  This is encoded as a subTemplateList of
                mibObjectValue Information Elements.  The
                subTemplateList exported MUST contain exactly one
                row (i.e., one instance of the subtemplate).  The
                template specified in the subTemplateList MUST be
                an Options Template and MUST include all the
                Objects listed in the INDEX clause as Scope Fields.

7.68.  mibObjectIdentifier

   elementId: TBD
   name: mibObjectIdentifier
   dataType: octetArray
   status: current
   description: An IPFIX Information Element which denotes that a
                MIB Object Identifier (MIB OID) is exported in the
                (Options) Template Record.  The mibObjectIdentifier
                Information Element contains the OID assigned to
                the MIB Object Type Definition encoded as
                ASN.1/BER [BER].

7.69.  mibSubIdentifier

   elementId: TBD
   name: mibSubIdentifier
   dataType: unsigned32
   status: current
   description: A non-negative sub-identifier of an Object
                Identifier (OID).

7.70.  mibIndexIndicator










Waltermire, et al.       Expires January 9, 2017               [Page 45]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: mibIndexIndicator
   dataType: unsigned64
   status: current
   description: This set of bit fields is used for marking the
                Information Elements of a Data Record that serve as
                INDEX MIB objects for an indexed Columnar MIB
                object.  Each bit represents an Information Element
                in the Data Record with the n-th bit representing
                the n-th Information Element.  A bit set to value 1
                indicates that the corresponding Information Element
                is an index of the Columnar Object represented by
                the mibFieldValue.  A bit set to value 0 indicates
                that this is not the case.

                If the Data Record contains more than 64
                Information Elements, the corresponding Template
                SHOULD be designed such that all INDEX
                Fields are among the first 64 Information Elements,
                because the mibIndexIndicator only contains 64 bits.
                If the Data Record contains less than 64
                Information Elements, then the extra bits in the
                mibIndexIndicator for which no corresponding
                Information Element exists MUST have the value 0,
                and must be disregarded by the Collector.  This
                Information Element may be exported with
                IPFIX Reduced Size Encoding.

7.71.  mibCaptureTimeSemantics






















Waltermire, et al.       Expires January 9, 2017               [Page 46]


Internet-Draft           SACM Information Model                July 2016


   elementId: TBD
   name: mibCaptureTimeSemantics
   dataType: unsigned8
   status: current
   description: Indicates when in the lifetime of the flow the MIB
                value was retrieved from the MIB for a
                mibObjectIdentifier.  This is used to indicate if
                the value exported was collected from the MIB
                closer to flow creation or flow export time and
                will refer to the Timestamp fields included in the
                same record.  This field SHOULD be used when
                exporting a mibObjectValue that specifies counters
                or statistics.

                If the MIB value was sampled by SNMP prior to the
                IPFIX Metering Process or Exporting Process
                retrieving the value (i.e., the data is already
                stale) and it's important to know the exact sampling
                time, then an additional observationTime* element
                should be paired with the OID using structured data.
                Similarly, if different mibCaptureTimeSemantics
                apply to different mibObject elements within the
                Data Record, then individual mibCaptureTimeSemantics
                should be paired with each OID using structured data.

                Values:
                0.  undefined
                1.  begin - The value for the MIB object is captured
                from the MIB when the Flow is first observed
                2.  end - The value for the MIB object is captured
                from the MIB when the Flow ends
                3.  export - The value for the MIB object is
                captured from the MIB at export time
                4.  average - The value for the MIB object is an
                average of multiple captures from the MIB over the
                observed life of the Flow

7.72.  mibContextEngineID

   elementId: TBD
   name: mibContextEngineID
   dataType: octetArray
   status: current
   description: A mibContextEngineID that specifies the SNMP engine
                ID for a MIB field being exported over IPFIX.
                Definition as per [RFC3411] section 3.3.





Waltermire, et al.       Expires January 9, 2017               [Page 47]


Internet-Draft           SACM Information Model                July 2016


7.73.  mibContextName

   elementId: TBD
   name: mibContextName
   dataType: string
   status: current
   description: This Information Element denotes that a MIB Context
                Name is specified for a MIB field being exported
                over IPFIX. Reference [RFC3411] section 3.3.

7.74.  mibObjectName

   elementId: TBD
   name: mibObjectName
   dataType: string
   status: current
   description: The name (called a descriptor in [RFC2578]
                of an object type definition.

7.75.  mibObjectDescription

   elementId: TBD
   name: mibObjectDescription
   dataType: string
   status: current
   description: The value of the DESCRIPTION clause of an MIB object
                type definition.

7.76.  mibObjectSyntax

   elementId: TBD
   name: mibObjectSyntax
   dataType: string
   status: current
   description: The value of the SYNTAX clause of an MIB object type
                definition, which may include a Textual Convention
                or Subtyping. See [RFC2578].

7.77.  mibModuleName

   elementId: TBD
   name: mibModuleName
   dataType: string
   status: current
   description: The textual name of the MIB module that defines a MIB
                Object.





Waltermire, et al.       Expires January 9, 2017               [Page 48]


Internet-Draft           SACM Information Model                July 2016


8.  SACM Usage Scenario Example

   TODO: this section needs to refer out to wherever the operations /
   generalized workflow content ends up

   TODO: revise to eliminate graph references

   This section illustrates the proposed SACM Information Model as
   applied to SACM Usage Scenario 2.2.3, Detection of Posture Deviations
   [RFC7632].  The following subsections describe the elements
   (components and elements), graph model, and operations (sample
   workflow) required to support the Detection of Posture Deviations
   scenario.

   The Detection of Posture Deviations scenario involves multiple
   elements interacting to accomplish the goals of the scenario.
   Figure 11 illustrates those elements along with their major
   communication paths.

8.1.  Graph Model for Detection of Posture Deviation

   The following subsections contain examples of identifiers and
   metadata which would enable detection of posture deviation.  These
   lists are by no means exhaustive - many other types of metadata would
   be enumerated in a data model that fully addressed this usage
   scenario.

8.1.1.  Components

   The proposed SACM Information Model contains three components, as
   defined in the SACM Architecture [I-D.ietf-sacm-architecture]:
   Posture Attribute Information Provider, Posture Attribute Information
   Consumer, and Control Plane.

   In this example, the components are instantiated as follows:

   o  The Posture Attribute Information Provider is an endpoint security
      service which monitors the compliance state of the endpoint and
      reports any deviations for the expected posture.

   o  The Posture Attribute Information Consumer is an analytics engine
      which absorbs information from around the network and generates a
      "heat map" of which areas in the network are seeing unusually high
      rates of posture deviations.

   o  The Control Plane is a security automation broker which receives
      subscription requests from the analytics engine and authorizes




Waltermire, et al.       Expires January 9, 2017               [Page 49]


Internet-Draft           SACM Information Model                July 2016


      access to appropriate information from the endpoint security
      service.

8.1.2.  Identifiers

   To represent the elements listed above, the set of identifiers might
   include (but is not limited to):

   o  Identity - a device itself, or a user operating a device,
      categorized by type of identity (e.g. username or X.509
      certificate [RFC5280])

   o  Software asset

   o  Network Session

   o  Address - categorized by type of address (e.g.  MAC address, IP
      address, Host Identity Protocol (HIP) Host Identity Tag (HIT)
      [RFC5201], etc.)

   o  Task - categorized by type of task (e.g. internal collector,
      external collector, evaluator, or reporting task)

   o  Result - categorized by type of result (e.g. evaluation result or
      report)

   o  Guidance

8.1.3.  Metadata

   To characterize the elements listed above, the set of metadata types
   might include (but is not limited to):

   o  Authorization metadata attached to an identity identifier, or to a
      link between a network session identifier and an identity
      identifier, or to a link between a network session identifier and
      an address identifier.

   o  Location metadata attached to a link between a network session
      identifier and an address identifier.

   o  Event metadata attached to an address identifier or an identity
      identifier of an endpoint, which would be made available to
      interested parties at the time of publication, but not stored
      long-term.  For example, when a user disables required security
      software, an internal collector associated with an endpoint
      security service might publish guidance violation event metadata




Waltermire, et al.       Expires January 9, 2017               [Page 50]


Internet-Draft           SACM Information Model                July 2016


      attached to the identity identifier of the endpoint, to notify
      consumers of the change in endpoint state.

   o  Posture attribute metadata attached to an identity identifier of
      an endpoint.  For example, when required security software is not
      running, an internal collector associated with an endpoint
      security service might publish posture attribute metadata attached
      to the identity identifier of the endpoint, to notify consumers of
      the current state of the endpoint.

8.1.4.  Relationships between Identifiers and Metadata

   Interaction between multiple sets of identifiers and metadata lead to
   some fairly common patterns, or "constellations", of metadata.  For
   example, an authenticated-session metadata constellation might
   include a central network session with authorizations and location
   attached, and links to a user identity, an endpoint identity, a MAC
   address, an IP address, and the identity of the policy server that
   authorized the session, for the duration of the network session.

   These constellations may be independent of each other, or one
   constellation may be connected to another.  For example, an
   authenticated-session metadata constellation may be created when a
   user connects an endpoint to the network; separately, an endpoint-
   posture metadata constellation may be created when an endpoint
   security system and other collectors gather and publish posture
   information related to an endpoint.  These two constellations are not
   necessarily connected to each other, but may be joined if the
   component publishing the authenticated-session metadata constellation
   is able to link the network session identifier to the identity
   identifier of the endpoint.

8.2.  Workflow

   The workflow for exchange of information supporting detection of
   posture deviation, using a standard publish/subscribe/query transport
   model such as available with IF-MAP [TNC-IF-MAP-SOAP-Binding] or
   XMPP-Grid [I-D.salowey-sacm-xmpp-grid], is as follows:

   1.  The analytics engine (Posture Assessment Information Consumer)
       establishes connectivity and authorization with the transport
       fabric, and subscribes to updates on posture deviations.

   2.  The endpoint security service (Posture Assessment Information
       Provider) requests connection to the transport fabric.






Waltermire, et al.       Expires January 9, 2017               [Page 51]


Internet-Draft           SACM Information Model                July 2016


   3.  Transport fabric authenticates and establishes authorized
       privileges (e.g. privilege to publish and/or subscribe to
       security data) for the requesting components.

   4.  The endpoint security service evaluates the endpoint, detects
       posture deviation, and publishes information on the posture
       deviation.

   5.  The transport fabric notifies the analytics engine, based on its
       subscription of the new posture deviation information.

   Other components, such as access control policy servers or
   remediation systems, may also consume the posture deviation
   information provided by the endpoint security service.

9.  Acknowledgements

   Many of the specifications in this document have been developed in a
   public-private partnership with vendors and end-users.  The hard work
   of the SCAP community is appreciated in advancing these efforts to
   their current level of adoption.

   Over the course of developing the initial draft, Brant Cheikes, Matt
   Hansbury, Daniel Haynes, Scott Pope, Charles Schmidt, and Steve
   Venema have contributed text to many sections of this document.

9.1.  Contributors

   The RFC guidelines no longer allow RFCs to be published with a large
   number of authors.  Some additional authors contributed to specific
   sections of this document; their names are listed in the individual
   section headings as well as alphabetically listed with their
   affiliations below.

   +---------------+----------------+---------------------------------+
   | Name          | Affiliation    | Contact                         |
   +---------------+----------------+---------------------------------+
   | Henk Birkholz | Fraunhofer SIT | henk.birkholz@sit.fraunhofer.de |
   +---------------+----------------+---------------------------------+

10.  IANA Considerations

   This memo includes no request to IANA.








Waltermire, et al.       Expires January 9, 2017               [Page 52]


Internet-Draft           SACM Information Model                July 2016


11.  Operational Considerations

   TODO: Need to include various operational considerations here.
   Proposed sections include timestamp accuracy and which attributes
   attributes designate an endpoint.

12.  Privacy Considerations

   TODO: Need to include various privacy considerations here.

13.  Security Considerations

   Posture Assessments need to be performed in a safe and secure manner.
   In that regard, there are multiple aspects of security that apply to
   the communications between components as well as the capabilities
   themselves.  Due to time constraints, this information model only
   contains an initial listing of items that need to be considered with
   respect to security.  This list is not exhaustive, and will need to
   be augmented as the model continues to be developed/refined.

   Initial list of security considerations include:

   Authentication:  Every component and asset needs to be able to
           identify itself and verify the identity of other components
           and assets.

   Confidentiality:  Communications between components need to be
           protected from eavesdropping or unauthorized collection.
           Some communications between components and assets may need to
           be protected as well.

   Integrity:  The information exchanged between components needs to be
           protected from modification. some exchanges between assets
           and components will also have this requirement.

   Restricted Access:  Access to the information collected, evaluated,
           reported, and stored should only be viewable/consumable to
           authenticated and authorized entities.

   The TNC IF-MAP Binding for SOAP [TNC-IF-MAP-SOAP-Binding] and TNC IF-
   MAP Metadata for Network Security [TNC-IF-MAP-NETSEC-METADATA]
   document security considerations for sharing information via security
   automation.  Most, and possibly all, of these considerations also
   apply to information shared via this proposed information model.







Waltermire, et al.       Expires January 9, 2017               [Page 53]


Internet-Draft           SACM Information Model                July 2016


14.  References

14.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC5280]  Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
              Housley, R., and W. Polk, "Internet X.509 Public Key
              Infrastructure Certificate and Certificate Revocation List
              (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
              <http://www.rfc-editor.org/info/rfc5280>.

14.2.  Informative References

   [I-D.ietf-sacm-architecture]
              Cam-Winget, N., Ford, B., Lorenzin, L., McDonald, I., and
              l. loxx@cisco.com, "Secure Automation and Continuous
              Monitoring (SACM) Architecture", draft-ietf-sacm-
              architecture-00 (work in progress), October 2014.

   [I-D.ietf-sacm-requirements]
              Cam-Winget, N. and L. Lorenzin, "Secure Automation and
              Continuous Monitoring (SACM) Requirements", draft-ietf-
              sacm-requirements-01 (work in progress), October 2014.

   [I-D.ietf-sacm-terminology]
              Waltermire, D., Montville, A., Harrington, D., and N. Cam-
              Winget, "Terminology for Security Assessment", draft-ietf-
              sacm-terminology-05 (work in progress), August 2014.

   [I-D.salowey-sacm-xmpp-grid]
              Salowey, J., Lorenzin, L., Kahn, C., Pope, S., Appala, S.,
              Woland, A., and N. Cam-Winget, "XMPP Protocol Extensions
              for Use in SACM Information Transport", draft-salowey-
              sacm-xmpp-grid-00 (work in progress), July 2014.

   [RFC3580]  Congdon, P., Aboba, B., Smith, A., Zorn, G., and J. Roese,
              "IEEE 802.1X Remote Authentication Dial In User Service
              (RADIUS) Usage Guidelines", RFC 3580,
              DOI 10.17487/RFC3580, September 2003,
              <http://www.rfc-editor.org/info/rfc3580>.

   [RFC4949]  Shirey, R., "Internet Security Glossary, Version 2",
              FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007,
              <http://www.rfc-editor.org/info/rfc4949>.



Waltermire, et al.       Expires January 9, 2017               [Page 54]


Internet-Draft           SACM Information Model                July 2016


   [RFC5201]  Moskowitz, R., Nikander, P., Jokela, P., Ed., and T.
              Henderson, "Host Identity Protocol", RFC 5201,
              DOI 10.17487/RFC5201, April 2008,
              <http://www.rfc-editor.org/info/rfc5201>.

   [RFC5209]  Sangster, P., Khosravi, H., Mani, M., Narayan, K., and J.
              Tardo, "Network Endpoint Assessment (NEA): Overview and
              Requirements", RFC 5209, DOI 10.17487/RFC5209, June 2008,
              <http://www.rfc-editor.org/info/rfc5209>.

   [RFC5793]  Sahita, R., Hanna, S., Hurst, R., and K. Narayan, "PB-TNC:
              A Posture Broker (PB) Protocol Compatible with Trusted
              Network Connect (TNC)", RFC 5793, DOI 10.17487/RFC5793,
              March 2010, <http://www.rfc-editor.org/info/rfc5793>.

   [RFC7012]  Claise, B., Ed. and B. Trammell, Ed., "Information Model
              for IP Flow Information Export (IPFIX)", RFC 7012,
              DOI 10.17487/RFC7012, September 2013,
              <http://www.rfc-editor.org/info/rfc7012>.

   [RFC7632]  Waltermire, D. and D. Harrington, "Endpoint Security
              Posture Assessment: Enterprise Use Cases", RFC 7632,
              DOI 10.17487/RFC7632, September 2015,
              <http://www.rfc-editor.org/info/rfc7632>.

   [TNC-IF-MAP-NETSEC-METADATA]
              Trusted Computing Group, ""TNC IF-MAP Metadata for Network
              Security", Specification Version 1.1", May 2012.

   [TNC-IF-MAP-SOAP-Binding]
              Trusted Computing Group, ""TNC IF-MAP Binding for SOAP",
              Specification Version 2.2", March 2014.

Appendix A.  Change Log

A.1.  Changes in Revision 01

   Renamed "credential" to "identity", following industry usage.  A
   credential includes proof, such as a key or password.  A username or
   a distinguished name is called an "identity".

   Removed Session, because an endpoint's network activity is not SACM's
   initial focus

   Removed Authorization, for the same reason

   Added many-to-many relationship between Hardware Component and
   Endpoint, for clarity



Waltermire, et al.       Expires January 9, 2017               [Page 55]


Internet-Draft           SACM Information Model                July 2016


   Added many-to-many relationship between Software Component and
   Endpoint, for clarity

   Added "contains" relationship between Network Interface and Network
   Interface

   Removed relationship between Network Interface and Account.  The
   endpoint knows the identity it used to gain network access.  The PDP
   also knows that.  But they probably do not know the account.

   Added relationship between Network Interface and Identity.  The
   endpoint and the PDP will typically know the identity.

   Made identity-to-account a many-to-one relationship.

A.2.  Changes in Revision 02

   Added Section Identifying Attributes.

   Split the figure into Figure Model of Endpoint and Figure Information
   Elements.

   Added Figure Information Elements Take 2, proposing a triple-store
   model.

   Some editorial cleanup

A.3.  Changes in Revision 03

   Moved Appendix A.1, Appendix A.2, and Mapping to SACM Use Cases into
   the Appendix.  Added a reference to it in Section 1

   Added the Section 4 section.  Provided notes for the type of
   information we need to add in this section.

   Added the Section 6 section.  Moved sections on Endpoint, Hardware
   Component, Software Component, Hardware Instance, and Software
   Instance there.  Provided notes for the type of information we need
   to add in this section.

   Removed the Provenance of Information Section.  SACM is not going to
   solve provenance rather give organizations enough information to
   figure it out.

   Updated references to the Endpoint Security Posture Assessment:
   Enterprise Use Cases document to reflect that it was published as an
   RFC.




Waltermire, et al.       Expires January 9, 2017               [Page 56]


Internet-Draft           SACM Information Model                July 2016


   Fixed the formatting of a few figures.

   Included references to [RFC3580] where RADIUS is mentioned.

A.4.  Changes in Revision 04

   Integrated the IPFIX [RFC7012] syntax into Section 4.

   Converted many of the existing SACM Information Elements to the IPFIX
   syntax.

   Included existing IPFIX Information Elements and datatypes that could
   likely be reused for SACM in Section 7 and Section 4 respectively.

   Removed the sections related to reports as described in
   https://github.com/sacmwg/draft-ietf-sacm-information-model/
   issues/30.

   Cleaned up other text throughout the document.

A.5.  Changes in Revision 05

   Merged proposed changes from the I-D IM into the WG IM
   (https://github.com/sacmwg/draft-ietf-sacm-information-model/
   issues/41).

   Fixed some formatting warnings.

   Removed a duplicate IE and added a few IE datatypes that were
   missing.

A.6.  Changes in Revision 06

   Clarified that the SACM statement and content-element subjects are
   conceptual and that they do not need to be explicitly defined in a
   data model as long as the necessary information is provided.

   Updated the IPFIX syntax used to define Information Elements.  There
   are still a couple of open issues that need to be resolved.

   Updated some of the Information Elements contained in Section 7 to
   use the revised IPFIX syntax.  The rest of the Information Elements
   will be converted in a later revision.

   Performed various clean-up and refactoring in Sections 6 and 7.
   Still need to go through Section 8.





Waltermire, et al.       Expires January 9, 2017               [Page 57]


Internet-Draft           SACM Information Model                July 2016


   Removed appendices that were not referenced in the body of the draft.
   The text from them is still available in previous revisions of this
   document if needed.

Authors' Addresses

   David Waltermire (editor)
   National Institute of Standards and Technology
   100 Bureau Drive
   Gaithersburg, Maryland  20877
   USA

   Email: david.waltermire@nist.gov


   Kim Watson
   United States Department of Homeland Security
   DHS/CS&C/FNR
   245 Murray Ln. SW, Bldg 410
   MS0613
   Washington, DC  20528
   USA

   Email: kimberly.watson@hq.dhs.gov


   Clifford Kahn
   Pulse Secure, LLC
   2700 Zanker Road, Suite 200
   San Jose, CA  95134
   USA

   Email: cliffordk@pulsesecure.net


   Lisa Lorenzin
   Pulse Secure, LLC
   2700 Zanker Road, Suite 200
   San Jose, CA  95134
   USA

   Email: llorenzin@pulsesecure.net









Waltermire, et al.       Expires January 9, 2017               [Page 58]


Internet-Draft           SACM Information Model                July 2016


   Michael Cokus
   The MITRE Corporation
   903 Enterprise Parkway, Suite 200
   Hampton, VA  23666
   USA

   Email: msc@mitre.org


   Daniel Haynes
   The MITRE Corporation
   202 Burlington Road
   Bedford, MA  01730
   USA

   Email: dhaynes@mitre.org



































Waltermire, et al.       Expires January 9, 2017               [Page 59]