One document matched: draft-ietf-sacm-requirements-02.xml


<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC5209 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5209.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3444 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3444.xml">
<!ENTITY I-D.ietf-sacm-use-cases SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-sacm-use-cases.xml">
<!ENTITY I-D.ietf-sacm-terminology SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-sacm-terminology">
<!ENTITY I-D.handt-sacm-alternate-architecture SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.handt-sacm-alternate-architecture.xml">

]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->

<rfc category="info" docName="draft-ietf-sacm-requirements-02" ipr="trust200902">
    
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters P-->

    <title abbrev="Abbreviated Title">Secure Automation and Continuous Monitoring (SACM) Requirements</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

 
    <author fullname="Nancy Cam-Winget" initials="N." surname="Cam-Winget">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street>3550 Cisco Way</street>
	  <city>San Jose</city>
	  <country>US</country>
	  <code>95134</code>
	  <region>CA</region>

          <!-- Reorder-->
        </postal>

        <email>ncamwing@cisco.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
    
  
    <author fullname="Lisa Lorenzin" initials="L." surname="Lorenzin">
        <organization>Pulse Secure</organization>
        <address>
            <postal>
                <street>2700 Zanker Rd., Suite 200</street>
                <city>San Jose</city>
                <country>US</country>
                <code>95134</code>
                <region>CA</region>
            </postal>
            
            <email>llorenzin@pulsesecure.net</email>
        </address>
    </author>



    <date month="October" year="2014"/>


    <area>General</area>

    <workgroup>SACM</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>template</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>This document defines the scope and set of requirements for the Secure Automation and Continuous Monitoring working group.
      The requirements and scope are based on the agreed upon use cases.
      </t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
        <t> Today's environment of rapidly-evolving security threats highlights the need to automate the sharing of such information while protecting user information as well as the systems that store,
            process, and transmit this information.  Security threats can be detected
            in a number of ways. SACM's charter focuses on how to collect and share this information based on use cases
            that involve posture assessment of endpoints.  </t>
      
      <t> Scalable and sustainable collection, expression, and evaluation of endpoint information is foundational to SACM's objectives.  To secure and defend a network one must reliably determine what devices are
          on the network, how those devices are configured from a hardware
          perspective, what software products are installed on those devices,
          and how those products are configured.  We need to be able to
          determine, share, and use this information in a secure, timely,
          consistent, and automated manner to perform endpoint posture
          assessments.</t>

      <t> This document focuses on describing the requirements for facilitating the exchange of posture assessment information, in particular, for the use cases as exemplified in <xref target="I-D.ietf-sacm-use-cases"/>.Also, this document uses terminology defined in <xref target="I-D.ietf-sacm-terminology"/>.</t>

    </section>
    
      
    <section anchor="reqmts" title="Requirements">
        
       <t> This document defines requirements based on the SACM use cases defined in <xref target="I-D.ietf-sacm-use-cases"/>. 
       This section describes the requirements used by SACM to assess and compare candidate information models
       and protocols to suit the architecture.  These requirements express characteristics or features that a candidate
       protocol or data model must be capable of offering to ensure security and interoperability.</t>

       <t> In order to address the needs for determining, sharing and using posture information, the following tasks should be considered: </t>
            <t><list hangIndent="1" style="numbers">
                    <t> Define the assets.  This is what we want to know about an asset.
        For instance, organizations will want to know what software is
        installed and its many critical security attributes such as patch
        level.</t>
    
            <t>Resolve what assets actually compose an endpoint.  This requires
        populating the data elements and attributes needed to exchange
        information pertaining to the assets composing an endpoint.</t>
    
            <t>Determine the expected values for the data elements and attributes that
        need to be evaluated against the actual collected instances of
        asset data.  This is how an organization can express its policy
        for an acceptable data element or attribute value.  A system
        administrator can also identify specific data elements and
        attributes that represent problems, such as vulnerabilities, that
        need to be detected on an endpoint.</t>
    
            <t>Evaluate the collected instances of the asset data against those
        expressed in the policy.</t>
    
            <t>Report the results of the evaluation.</t>
            </list></t>


       <section anchor="general" title="Requirements for SACM">

           <t> Many deployment scenarios can be instantiated to address the above tasks and use cases defined in <xref target="I-D.ietf-sacm-use-cases"/>. To ensure interoperability, scalability and flexibility in any of these deployments, the following requirements are defined for all use cases:</t>
     
   
      <t><list hangIndent="1" style="hanging">
         
         <t hangText="G-001"> Extensibility: The data models, protocols and transports defined by SACM must be extensible to allow support for non-standard and future extensions. </t>
            <t><list hangIndent="1" style="numbers">
             <t>The transport protocol must support easily adding
    new operations while maintaining backwards compatibility. </t>
            <t>The
    query language must allow general inquiries as well as expression
    of specific paths to follow; retrieval of specific information
    based on an event, as well as on a continuous basis; and the
    ability to retrieve specific pieces of information, specific
    classes of information, and/or the entirety of available
    information.  </t>
            <t>The information model must accommodate the addition
    of new data types and/or schemas in a backwards compatible fashion.</t>
                </list></t>

<t hangText="G-002">Interoperability: The data models, protocols and transports must be specified with enough details and state machine to ensure interoperability.</t>

<t hangText="G-003">Scalability: The data models, protocols and transports must be scalable. SACM must support a broad set of deployment scenarios. As such, it is possible that the size of posture assessment information can vary from a single assessment that is small in (record or datagram) size to a very large datagram or a very large set of assessments. This must be defined by the SACM specifications. </t>

	   <t hangText="G-004">
           Agility: The agility requirement is to ensure that the data model, protocols, transports are suitably to implemented to fit into the different deployment models and scenarios. Considerations for the lightweight implementations of data models and transports is required.  Use cases, especially in the vulnerability assessment and threat defense applications, require time criticality in both obtaining the information as well as consuming (e.g. parsing) the data.
           </t>
       
	   <t hangText="G-005 / T-001"> Transport variability: Moved to the <xref target="xport"/>.</t>
       
	   <t hangText="G-006 / GN-005"> Extensibility: A method for expressing both standard and non-standard
           (implemention-specific) data attributes while avoiding collisions
           should be defined. For interoperability and scope boundary,
           an explicit set of data attributes as mandatory to implement.</t>
       
	   <t hangText="G-007 / GN-006/ T-002"> Data Integrity: A method for ensuring data integrity must be provided. This method is required to be available (i.e. all data-handling components must support it), but is not required to be used in all cases.
           </t>
       
       <t hangText="G-008 / T-003"> Data Protection:  Moved to the <xref target="xport"/>. </t>
           
        <t hangText="G-009 / ARCH-004">Topology Flexibility: Moved to the <xref target="arch"/>.</t>


        <t hangText="G-010 / GN-007">  Data Isolation: A method for partitioning data must be supported, to accommodate considerations such as geographic, regulatory, overlay boundaries and federation, where an organization may want to differentiate between information that can be shared outside its own domain and information that cannot. As with the requirement for data integrity, this method is required to be available (i.e. all data-handling components must support it), but is not required to be used in all cases. </t>
        
           
        <t hangText="G-011 / ARCH-005">  Modularity: has been moved to the <xref target="arch"/>.</t>
         
        
        <t hangText="G-012 / GN-008"> Versioning and Backward Compatibility: Announcement and negotiation of versions, inclusive of exisiting capabilities (such as transport protocols, data models, specific attributes within data models, standard attribute expression sets, etc.) must be supported.  Negotiation for both versioning and capability is needed to accommodate future growth and ecosystems with mixed capabilities. </t>
   

        <t hangText="G-013 / GN-009"> Discovery: There must be a mechanism for components to discover what information is available across the ecosystem (i.e. a method for cataloging data available in the ecosystem and advertising it to consumers), and where to go to get a specific piece of that information.  For example, providing a method by which a node can locate the advertised information so that consumers are not required to have a priori knowledge to find available information. </t>

        <t hangText="G-014 / IM-013">  Synchronization: has been moved to the <xref target="info_model"/>.
            </t>
        
        <t hangText="G-015 / IM-014"> Collection separation:
            has been moved to the <xref target="info_model"/>. </t>
        
        <t hangText="G-016 / IM-015"> Collection composition
            has been moved to the <xref target="info_model"/>. </t>


	 </list> </t>

       </section>
       
       <section anchor="per_usecase" title="Requirements based on Use Cases">
	 <t>This section describes the requirements that may apply to information models, data models, protocols or transports as identified by the use cases in <xref target="I-D.ietf-sacm-use-cases"/> and referenced by the section numbers from that draft. </t>
	  <t><list hangIndent="1" style="hanging">
          <t hangText="REQ-001">Attribute Dictionary: Use Cases in the whole of Section 2 describe the need for an Attribute Dictionary. With SACM's scope focused on Posture Assessment, the attribute collection and aggregation must have a well understood set of attributes inclusive of their meaning or usage intent.</t>

<t hangText="REQ-002">Information Model: Use Case 2.1.1 describes the need for an Information Model to drive content definition. As SACM endeavors to reuse already existing standards which may have their own data models defined by instantiating an information model, the data models can be mapped to SACM's information model.  See <xref target="RFC3444"/> for a description and distinctions between an information and data model.</t>

<t hangText="REQ-003">Data Model to Protocol mapping: Use Case 2.1.1 describes the need to instantiate a data model that can map to the SACM protocols for posture content operations such as publication, query, change detection and asynchronous notifications.</t>

<t hangText="REQ-004">Endpoint Discovery: Use Case 2.1.2 describes the need to discover endpoints and their composition.</t>

<t hangText="REQ-005">Attribute based query: Use Case 2.1.2 describes the need for the data model to support a query operation based on a set of attributes to facilitate collection of information such as posture assessment, inventory (of endpoints or endpoint components) and configuration checklist. .</t>

<t hangText="REQ-006">Information based query with filtering: Use Case 2.1.3 describes the need for the data model to support the means for the information to be collected through a query mechanism. Furthermore, the query operation requires filtering capabilities to allow for only a subset of information to be retrieved. The query operation may be a synchronous request or asynchronous request.</t>

<t hangText="REQ-007">Asynchronous publication, updates or change modifications with filtering: Use Cases 2.1.3, 2.1.4 and 2.1.5 describe the need for the data model to support the means for the information to be published asynchronously. Similarly, the data model must support the means for a requestor to obtain updates or change modifications asynchronously. Like the query operation, these update notifications can be set up with a filter to allow for only a subset of posture assessment information to be obtained.</t>

<t hangText="REQ-008">Data model scalability: Use Cases 2.1.4 and 2.1.5 describes the need for the data model to support scalability. For example, the query operation may result in a very large set of attributes as well as a large set of targets.</t>

 <t hangText="REQ-009">Separation of Collection Request and Collection Action: The data model should distinguish the request for a data attribute for collection versus a request to process, execute or apply the data attributes for evaluation or analysis. N.B. This requirement is based on most of the Use Cases in Section of <xref target="I-D.ietf-sacm-use-cases"/> and defines a requirement about the Information Model, thus this is the same as IM-014.</t>
	  </list></t>
     
    </section>
       
       <section anchor="arch" title="Requirements for the Architecture">
           <t> At the simplest abstraction, the SACM architecture represents the core components and interfaces needed to perform the production and consumption of posture assessment information.
               Requirements relating the SACM's architecture include:</t>
           <t><list hangIndent="1" style="hanging">
              
               <t hangText="ARCH-001">Scalability: The architectural components must account for a range of deployments, from very small set of endpoints are used to very large deployments.  </t>
               
               <t hangText="ARCH-002">Agility: The architectural components must account for different deployment scenarios where the architectural components may be implemented, deployed or used within a single application, service, network or may comprise a federated system. </t>
               
               <t hangText="ARCH-003">Separation of Data and Management functions: SACM must define both the configuration and management of the SACM data models and protocols used to transport and share posture assessment information.</t>
               
               <t hangText="ARCH-004">Topology Flexibility: Both centralized and decentralized (peer-to-peer) information exchange must be supported.  Centralized data exchange enables use of a common data format to bridge together data exchange between diverse systems, and can leverage a virtual data store that centralizes and offloads all data access, storage, and maintenance to a dedicated resource. Decentralized data exchange enables simplicity of sharing data between relatively uniform systems, and between small numbers of systems, especially within a single enterprise domain. </t>
               
                <t hangText="ARCH-005">Modularity: Announcement and negotiation of functional capabilities (such as authentication protocols, authorization schemes, data models, transport protocols, etc.) must be supported, enabling a SACM component to make inquiries about the capabilities of other components in the SACM ecosystem.</t>
               
               </list></t>

           </section>



      <section anchor="info_model" title="Requirements for the Information Model">
          <t> The SACM information model represents an abstraction for "what" information can be communicated and "how" it is to be represented and shared. </t>
          <t> It is expected that as applications may produce Posture assessment information, they may share it using a specific data model.  Similarly, applications consuming or requesting Posture Assessment information, may require it based on a specific data model.  Thus, while there may exist different data models and schemas, they should adhere to a SACM information model that meets a set of requirements defined in this section. </t>
         
          <t> The specific requirements include: </t>
	  <t><list hangIndent="1" style="hanging">
          <t hangText="IM-001"> The information model MUST define the data attributes as objects
              that MUST be uniquely referenced (e.g. endpoint, IP address, asset).</t>
          
          <t hangText="IM-002"> The information model may structure data models into modules and submodules to allow for data references within a module.  For example, an endpoint may be defined as a module that references one or more submodules that further describe the one or more assets. Constraints
              and interfaces may further be defined to resolve or tolerate ambiguity in the references
          (e.g. same IP address used in two separate networks). </t>
          
          <t hangText="IM-003"> The interfaces and actions in the information model MUST include support for rootless searches and wildcard searches</t>
          <t hangText="IM-004"> The search interfaces and actions MUST include the ability to start a search anywhere within a data model structure.</t>
          <t hangText="IM-005"> The information model SHOULD include management of the data, including data lifetime management (longevity or expiration of data).</t>
          <t hangText="IM-006"> The information model SHOULD include data ephemerality (update vs. notify). </t>
          <t hangText="IM-007"> The information model SHOULD allow for a loose coupling between producer and consumer.</t>
          <t hangText="IM-008"> The interfaces and actions in the information model MUST include the ability to identify data from a specific producer.</t>
          <t hangText="IM-009"> The structures in the information model MUST account for metadata cardinality. As Posture information and the tasks for collection, aggregation or evaluation could comprise one or more attributes, interfaces and actions must allow and account for such cardinality as well as whether the attributes are conditional, optional or mandatory.</t>
          <t hangText="IM-010"> The interfaces and actions in the information model MUST include capability negotiation to enable discovery of supported and available data types and schemas.</t>
          <t hangText="IM-011"> Provenance of data -
              <list style="symbols">
                  <t> Publisher identity, classification, trustworthiness,
          authoritativeness</t>
                    <t> Freshness of data</t>
                    <t> Method by which data was generated (i.e. self-reported,
          reported by aggregator, result of scan, etc.)</t>
                    <t> Location of data</t>
                    <t> Delta results vs. total results </t>
                    </list> </t>
            
                    
          <t hangText="IM-012"> Freshness: Published data must be associated with the time of origination - separately from the time of publication required in IM-013.  This allows consumers can make decisions about the relevance of the data based on its currency and/or age.
              </t>
          
          <t hangText="IM-013">  Synchronization: Request and response operations must be timestamped, and published information must capture time of publication. Actions or decisions based on time-sensitive data (such as user logon/logoff, endpoint connection/disconnection, endpoint behavior events, etc.) are all predicated on a synchronized understanding of time. A method for detecting and reporting time discrepancies must be provided.
          </t>
          
          <t hangText="IM-014"> Collection separation:
              The request for a data item must include enough information to properly identify the item to collect, but the request shall not be a command to directly execute nor directly applied as arguments to a command. The purpose of this requirement is primarily to reduce the potential attack vectors, but has the additional benefit of abstracting the request for collection from the collection method thereby allowing more flexibility in how collection is implemented.</t>
          
          <t hangText="IM-015"> Collection composition
              A collection request can be composed of multiple collection requests (which yield collected values). This must be able to be expressed as part of the collection request so that the aggregation can be resolved at the point of collection without having to interact with the requester. </t>
          </list> </t>
      
          </section>
      
      
      <section anchor="xport" title="Requirements for Transport Protocols">
         <t>The requirements for transport protocols include: </t>
      
      <t><list hangIndent="1" style="hanging">
           <t hangText="T-001"> Transport variability: Different transports must be supported to address different deployment and time constraints.  Supporting transports may be at the Layer 2, Layer 3 and higher application layers.</t>
           
           <t hangText="T-002"> Data Integrity: A method for ensuring data integrity must be provided if required at the transport layer.
           </t>
           
           <t hangText="T-003"> Data Protection:  Transport protocols must ensure data protection for data in transit by encryption and robustness against protocol-based attacks. Protection for data at rest is not in scope for SACM. Data protection may be used for both privacy and non-privacy scenarios. </t>
          </list></t>
      
      </section>
    
      
  </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thank Barbara Fraser, Jim Bieda and Adam Montville for reviewing and contributing to this draft.</t>


    </section>

    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="IANA" title="IANA Considerations">
      <t>This memo includes no request to IANA.</t>

          </section>

    <section anchor="Security" title="Security Considerations">
	<t>This document defines the requirements for SACM.  As such, it is expected that several data models, protocols and transports may be defined or reused from already existing standards.  This section will highlight security considerations that may apply to SACM based on the architecture and standards applied in SACM.</t>
    
    <t> To address security and privacy considerations, the data model, protocols and transport must consider authorization based on consumer function and privileges, to only allow authorized consumers and providers to access specific information being requested or published.</t>
    
    <t>To enable federation across multiple entities (such as across organizational or geographic boundaries) authorization must also extend to infrastructure elements themselves, such as central controllers / brokers / data repositories.</t>
    
    <t>In addition, authorization needs to extend to specific information or resources available in the environment.  In other words, authorization should be based on both subject (the information requestor) and object (the information requested). The method by which this authorization is applied is unspecified.</t>
	
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
      <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->

      &RFC2119;
      &I-D.ietf-sacm-use-cases;
      &I-D.ietf-sacm-terminology;
     
    </references>
     
    <references title="Informative References">
      <!-- Here we use entities that we defined at the beginning. -->

      &RFC5209;
      &RFC3444;
     
    </references>



    <!-- Change Log

v00 2013-010-11  NCW   Initial version
v02 2014-002-02  NCW   Changed the structure of the document to include general requirements vs. those driven by use cases based on feedback by the WG and the spreadsheet discussed in the Dec 2-13 call.  Removed Security Requirements section they may be addressed in the Security Consideration section.
v03 2014-012-02  NCW   Removed Terminology section.  Updated proposed architecture and requirements per feedback on Feb 4 call; added more text around the "Evaluator Service", clarified G-005 and REQ-006 and removed references to SACM WG.
v04 2014-027-05  NCW   Removed Architecture section, incorporated some updates from Lisa Lorenzin's 5/13/14 email.
     -->
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-24 01:23:47