<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[
  <!ENTITY xml-names SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml4/reference.W3C.REC-xml-names-20091208.xml">
  <!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
  <!ENTITY RFC2141 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2141.xml">
  <!ENTITY RFC2616 SYSTEM
  "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2616.xml">
  <!ENTITY RFC3444 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3444.xml">
  <!ENTITY RFC3688 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3688.xml">
  <!ENTITY RFC3986 SYSTEM
  "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml">
  <!ENTITY RFC4287 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4287.xml">
  <!ENTITY RFC4949 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4949.xml">
  <!ENTITY RFC5070 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5070.xml">
  <!ENTITY RFC5023 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5023.xml">
  <!ENTITY RFC5005 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5005.xml">
  <!ENTITY RFC6545 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6545.xml">
  <!ENTITY RFC6546 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6546.xml">
  <!ENTITY RFC5070bis SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-mile-rfc5070-bis-25.xml">
  <!ENTITY I-D.ietf-mile-rolie SYSTEM
  "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-mile-rolie-03.xml">
]>
<?xml-stylesheet type="text/css" href="rfc7749.css"?>
<rfc ipr="trust200811" category="info"
  docName="draft-banghart-mile-rolie-csirt-01">
  <!-- Working draft of supporting document for ROLIE -->
  <?rfc compact="yes"?>
  <?rfc subcompact="no"?>
  <?rfc toc="yes"?>
  <?rfc symrefs="yes"?>
  <front>
    <title abbrev="ROLIE CSIRT">Definition of ROLIE CSIRT
      Extension</title>
    <author initials="J.P." surname="Field" fullname="John P. Field">
      <organization abbrev="Pivotal">Pivotal Software,
        Inc.</organization>
      <address>
      <postal>
        <street>625 Avenue of the Americas</street>
        <city>New York</city>
        <region>New York</region>
        <country>USA</country>
      </postal>
      <phone>(646)792-5770</phone>
      <email>jfield@pivotal.io</email>
    </address>
    </author>
    <author initials="S.A." surname="Banghart"
      fullname="Stephen A. Banghart">
      <organization abbrev="NIST">National Institute of Standards and
        Technology</organization>
      <address>
      <postal>
        <street>100 Bureau Drive</street>
        <city>Gaithersburg</city>
        <region>Maryland</region>
        <country>USA</country>
      </postal>
      <phone>(301)975-4288</phone>
      <email>sab3@nist.gov</email>
    </address>
    </author>
    <date month="May" day="3" year="2017"/>
    <area>Security</area>
    <workgroup>MILE Working Group</workgroup>
    <abstract>
      <t>This document extends the Resource-Oriented Lightweight
        Information Exchange (ROLIE) core to add the information type
        categories and related requirements needed to support Computer
        Security Incident Response Team (CSIRT) use cases. The indicator
        and incident information types are defined as ROLIE extensions.
        Additional supporting requirements are also defined that describe
        the use of specific formats and link relations pertaining to the
        new information types.</t>
    </abstract>
    <note title="Contributing to this document">
      <!--RFC EDITOR - Please remove this note before publishing -->
      <t>The source for this draft is being maintained in GitHub.
        Suggested changes should be submitted as pull requests at <eref
        target="https://github.com/CISecurity/ROLIE"/>. Instructions are
        on that page as well. Editorial changes can be managed in GitHub,
        but any substantial issues need to be discussed on the MILE
        mailing list.</t>
    </note>
  </front>
  <middle>
    <section title="Introduction" anchor="starting-intro">
      <t>Threats to computer security are evolving ever more rapidly as
        time goes on. As software increases in complexity, the number of
        vulnerabilities in systems and networks can increase
        exponentially. Threat actors looking to exploit these
        vulnerabilities are making more frequent and more widely
        distributed attacks across a large variety of systems. The
        adoption of liberal information sharing amongst attackers allows
        a discovered vulnerability to be shared and used to attack a
        vulnerable system within a narrow window of time. As the skills
        and knowledge required to identify and combat these attacks
        become more and more specialized, even a well established and
        secure system may find itself unable to quickly respond to an
        incident. Effective identification of and response to a
        sophisticated attack requires open cooperation and collaboration
        between defending operators, software vendors, and end-users. To
        improve the timeliness of responses, automation must be used to
        acquire, contextualize, and put to use shared computer security
        information.</t>

      <t> CSIRTS share two primary forms of information: incidents and
        indicators. Using these forms of information, analysts are able
        to perform a wide range of activities both proactive and reactive
        to ensure the security of their systems. </t>
      <t>Incident information describes a cyber security incident. Such
        information may include attack characteristics, information about
        the attacker, and attack vector data. Sharing this information
        helps analysts within the sharing community to inoculate their
        systems against similar attacks, providing proactive
        protection.</t>

      <t>Indicator information describes the symptoms or necessary
        pre-conditions of an attack. Everything from system
        vulnerabilities to unexpected network traffic can help analysts
        secure systems and prepare for an attack. Making this information
        available for sharing aids in the proactive defense of systems
        both within an operating unit but also for any CSIRTs that are
        part of a sharing consortium.</t>

      <t>As a means to bring automation of content discovery and
        dissemination into the CSIRT domain, this specification provides
        an extension to the Resource-Oriented Lightweight Information
        Exchange (ROLIE) core <xref target="I-D.ietf-mile-rolie"/>
        designed to address CSIRT use cases. The primary purpose of this
        extension is to define two new information types: incident, and
        indicator, along with formats and link relations that support
        these information-types.</t>

    </section>
    <section title="Terminology" anchor="ext-terminology">
      <t>The key words "MUST," "MUST NOT," "REQUIRED," "SHALL," "SHALL
        NOT," "SHOULD," "SHOULD NOT," "RECOMMENDED," "MAY," and
        "OPTIONAL" in this document are to be interpreted as described in
        <xref target="RFC2119"/>. </t>
      <t>Definitions for some of the common computer security-related
        terminology used in this document can be found in Section 2 of
        <xref target="RFC5070"/>.</t>
    </section>
    <section title="New information-types" anchor="infotypes">
      <t>This document defines the following two information types:</t>
      <section title="The &quot;incident&quot; information type"
        anchor="infotype-incident">
        <t>The &quot;incident&quot; information type represents any
          information describing or pertaining to a computer security
          incident. This document uses the definition of incident
          provided by <xref target="RFC4949"/>. Provided below is a
          non-exhaustive list of information that may be considered to be
          an incident information type. <list style="symbols">
          <t>Timing information: start and end times for the incident
            and/or the response.</t>
          <t>Descriptive information: plain text or machine readable data
            that provides some degree of description of the incident
            itself.</t>
          <t>Response information: the methods and results of a response
            to the incident.</t>
          <t>Meta and contact information: data about the CSIRT that
            recorded the information, or the operator that enacted the
            response.</t>
          <t>Effect and result information: data that describes the
            effects of an incident, or what the final results of the
            incident are.</t>
          </list> </t>
        <t>Note again that this list is not exhaustive, any information
          that in is the abstract realm of an incident should be
          classified under this information-type.</t>
      </section>
      <section title="The &quot;indicator&quot; information type"
        anchor="infotype-indicator">
        <t> The &quot;indicator&quot; information type represents
          computer security indicators or any information surrounding
          them. This document uses the definition of indicator provided
          by <xref target="RFC4949"/>. Some examples of indicator
          information is provided below, but note that indicator is
          defined in an abstract sense, to be understood as a flexible
          and widely-applicable definition. <list style="symbols">
          <t>Specific vulnerabilities that indicate a vector for
            attack.</t>
          <t>Signs of malicious reconnaissance.</t>
          <t>Definitions of patterns of other indicators.</t>
          <t>Events that may indicate an attack and information regarding
            those events.</t>
          <t>Meta information about the collecting agent.</t>
          </list> </t>
        <t>This list is intended to provide examples of the indicator
          information-type, not to define it.</t>
      </section>
    </section>
    <section
      title="Usage of CSIRT Information Types in the Atom
      Publishing Protocol"
      anchor="ext-APP">
      <t>These requirements apply when a ROLIE repository contains any
        Collections with categories with scheme attributes of either
        CSIRT information type, or if the CSIRT information types appear
        in the Categories document.</t>
      <section title="/ (forward slash) Resource URL" anchor="rid-ref">
        <t>The forward slash resource URL MUST be supported as defined in
          <xref target="I-D.ietf-mile-rolie">Section 5.5</xref>. Note
          that this is a stricter requirement than the core document.</t>
      </section>
    </section>
    <section
      title="Usage of CSIRT Information Types in the atom:feed element"
      anchor="ext-synd">
      <t>This document does not define any additional requirements for
        Feeds.</t>
    </section>
    <section title="Usage of CSIRT Information Types in an atom:entry"
      anchor="ext-synd-entries">
      <t>This document defines the following requirements for any Entries
        that are of the CSIRT information type categories.</t>
      <section title="Use of the atom:link element"
        anchor="ext-synd-entries-link">
        <t>These sections define requirements for atom:link elements in
          Entries. Note that the requirements are determined by the
          information type that appears in either the Entry or in the
          parent Feed.</t>
        <section
          title="Link relations for the 'incident'
          information-type"
          anchor="links-inc">
          <t>If the category of an Entry is the incident information
            type, then the following requirements MUST be followed for
            inclusion of atom:link elements.</t>
          <texttable anchor="links-inc-table"
            title="Link Relations for Resource-Oriented Lightweight Indicator Exchange">
            <ttcol align="left">Name</ttcol>
            <ttcol align="left">Description</ttcol>
            <ttcol align="left">Conformance</ttcol>
            <c>indicators</c>
            <c>Provides a link to a collection of zero or more instances
              of cyber security indicators that are associated with the
              resource.</c>
            <c>SHOULD</c>
            <c>evidence</c>
            <c>Provides a link to a collection of zero or more resources
              that provides some proof of attribution for an incident.
              The evidence may or may not have any identified chain of
              custody.</c>
            <c>SHOULD</c>
            <c>attacker</c>
            <c>Provides a link to a collection of zero or more resources
              that provides a representation of the attacker.</c>
            <c>SHOULD</c>
            <c>vector</c>
            <c>Provides a link to a collection of zero or more resources
              that provides a representation of the method used by the
              attacker.</c>
            <c>SHOULD</c>
          </texttable>
        </section>
        <section
          title="Link relations for the 'indicator'
          information-type"
          anchor="links-ind">
          <t>If the category of an Entry is the indicator information
            type, then the following requirements MUST be followed for
            inclusion of atom:link elements.</t>
          <texttable anchor="links-ind-table"
            title="Link Relations for Resource-Oriented Lightweight Indicator Exchange">
            <ttcol align="left">Name</ttcol>
            <ttcol align="left">Description</ttcol>
            <ttcol align="left">Conformance</ttcol>
            <c>incidents</c>
            <c>Provides a link to a collection of zero or more instances
              of incident representations associated with the
              resource.</c>
            <c>SHOULD</c>
          </texttable>
        </section>
        <section title="Link relations for both information-types"
          anchor="links-both">
          <t>If the category of an Entry is either information-type, the
            following requirements MUST be followed for inclusion of
            atom:link elements.</t>
          <texttable anchor="links-both-table"
            title="Link Relations for Resource-Oriented Lightweight Indicator Exchange">
            <ttcol align="left">Name</ttcol>
            <ttcol align="left">Description</ttcol>
            <ttcol align="left">Conformance</ttcol>
            <c>assessments</c>
            <c>Provides a link to a collection of zero or more resources
              that represent the results of executing a benchmark.</c>
            <c>MAY</c>
            <c>reports</c>
            <c>Provides a link to a collection of zero or more resources
              that represent RID reports.</c>
            <c>MAY</c>
            <c>traceRequests</c>
            <c>Provides a link to a collection of zero or more resources
              that represent RID traceRequests.</c>
            <c>MAY</c>
            <c>investigationRequests</c>
            <c>Provides a link to a collection of zero or more resources
              that represent RID investigationRequests.</c>
            <c>MAY</c>
          </texttable>
        </section>

      </section>
      <section title="Use of the rolie:format element"
        anchor="ext-synd-format">
        <t>This document does not contain any additional requirements for
          the rolie:format element; the formats that follow are provided
          as examples of formats that describe the incident and indicator
          information type. The formats are in no particular order, and
          are not requirements, nor suggestions by the authors.</t>
        <section title="IODEF Format" anchor="ext-synd-format-iodef">
          <t>The Incident Object Description Exchange Format (IODEF) is a
            format for representing computer security information
            commonly exchanged between Computer Security Incident
            Response Teams (CSIRTs) or other operational security teams. </t>
          <t>IODEF conveys indicators, incident reports, response
            activities, and related meta-data in an XML serialization.
            This information is formally structured in order to support
            and encourage automated machine-to-machine security
            communication, as well as enhanced processing at the
            endpoint.</t>
          <t>The full IODEF specification provides further high-level
            discussion and technical details.</t>
          <t>The use of the IODEF format imposes additional requirements
            on the server. See <xref target="iodefrequirements"/>.</t>
        </section>
        <section title="STIX Format" anchor="ext-synd-format-stix">
          <t>STIX is a structured language for describing a wide range of
            security resources. STIX approaches the problem with a focus
            on flexibility, automation, readability, and extensibility. </t>
          <t>The use of STIX as the content of an Entry does not impose
            any additional requirements on ROLIE implementations.</t>
        </section>
      </section>
      <section title="Use of the rolie:property element" anchor="prop">
        <t>This document provides new registrations for valid
          rolie:property names. These properties provide optional
          exposure point for valuable information in the linked content
          document. Exposing this information in a rolie:property element
          means that clients do not need to download the linked document
          to determine if it contains the information they are looking
          for.</t>
        <section title="urn:ietf:params:rolie:property:csirt:ID"
          anchor="prop-id">
          <t>Provides an exposure point for an identifier from the
            indicator or incident document. This value SHOULD be a
            uniquely identifying value for the document linked to in this
            entry's atom:content element.</t>
        </section>
      </section>
      <section title="Additional requirements for use of IODEF"
        anchor="iodefrequirements">
        <t>This section provides the normative requirements for usage of
          the IODEF format. These requirements SHOULD apply when an
          atom:entry has an IODEF format entity linked to by its
          atom:content element.</t>
        <section title="The IODEF Document">
          <t>An IODEF document that is carried in an Atom Entry SHOULD
            NOT contain a &lt;relatedActivity&gt; element. Instead, the
            related activity SHOULD be available via a link rel=related. </t>
          <t> An IODEF document that is carried in an Atom Entry SHOULD
            NOT contain a &lt;history&gt; element. Instead, the related
            history SHOULD be available via a atom:link rel="history".
            The associated href MAY leverage OpenSearch to specify the
            required query. </t>
        </section>
        <section title="Category Element" anchor="iodefcategory">
          <t> A collection or entry containing IODEF incident content
            MUST contain at least two additional &lt;atom:category&gt;
            elements. One category element MUST have the name attribute
            be equal to
            'urn:ietf:params:rolie:category:csirt:iodef:purpose' and the
            other
            'urn:ietf:params:rolie:category:csirt:iodef:restriction'.
            This metadata provides valuable metadata for searching and
            organization IODEF documents.</t>
          <t>When the name attribute of this element is
            'urn:ietf:params:rolie:category:csirt:iodef:purpose', the
            value attribute MUST be constrained as per section 3.2 of
            IODEF, e.g. traceback, mitigation, reporting, or other. </t>
          <t>When the name attribute of this element is
            'urn:ietf:params:rolie:category:csirt:iodef:restriction', the
            value attribute MUST be constrained as per section 3.2 of
            IODEF, e.g. public, need-to-know, private, default. </t>
        </section>
        <section title="Entry Elements">
          <t>An entry containing an IODEF payload MUST contain a
            &lt;rolie:property&gt; element with the following
            requirements:</t>
          <t>The "name" attribute is
            urn:ietf:params:rolie:property:csirt:id.</t>
          <t>The "value" attribute SHOULD be established via the
            concatenation of the value of the name attribute from the
            IODEF &lt;IncidentID&gt; element and the corresponding value
            of the &lt;IncidentID&gt; element. This requirement ensures a
            simple and direct one-to-one relationship between an IODEF
            incident ID and a corresponding Feed entry ID and avoids the
            need for any system to maintain a persistent store of these
            identity mappings. </t>
        </section>
        <section title="User Authorization" anchor="normative-user-authz">
          <t>When the content model for the Atom &lt;content&gt; element
            of an Atom Entry contains an &lt;IODEF-Document&gt;, then
            authorization MUST be adjudicated based upon the Atom
            &lt;category&gt; element(s), whose values have been mapped as
            per <xref target="iodefcategory"/>. </t>
        </section>
        <section title="Expectation and Impact Classes"
          anchor="normative-expectation-impact">
          <t>It is frequently the case that an organization will need to
            triage their investigation and response activities based
            upon, e.g., the state of the current threat environment, or
            simply as a result of having limited resources. </t>
          <t> In order to enable operators to effectively prioritize
            their response activity, it is RECOMMENDED that feed
            implementers provide Atom categories that correspond to the
            IODEF Expectation and Impact classes. The availability of
            these feed categories will enable clients to more easily
            retrieve and prioritize cyber security information that has
            already been identified as having a specific potential
            impact, or having a specific expectation. </t>
          <t> Support for these categories may also enable efficiencies
            for organizations that already have established (or plan to
            establish) operational processes and workflows that are based
            on these IODEF classes. </t>
        </section>
        <section title="Search">
          <t> Implementers SHOULD support search based upon the IODEF
            AlternativeID class as a search parameter. </t>
          <t> Implementers SHOULD support search based upon the four
            timestamp elements of the IODEF Incident class:
            &lt;startTime&gt;, &lt;EndTime&gt;, &lt;DetectTime&gt;, and
            &lt;ReportTime&gt;. </t>
          <t> Implementers MAY support additional search capabilities
            based upon any of the remaining elements of the IODEF
            Incident class, including the &lt;Description&gt; element. </t>
          <t> Collections that support use of the RID schema as a content
            model in the Atom member entry &lt;content&gt; element (e.g.
            in a report resource representation reachable via the
            "report" link relationship) MUST support search operations
            that include the RID MessageType as a search parameter, in
            addition to the aforementioned IODEF schema elements, as
            contained within the &lt;ReportSchema&gt; element. </t>
        </section>
      </section>
    </section>
    <section title="IANA Considerations" anchor="iana">
      <section title="information-type registrations" anchor="iana-it">
        <t>IANA has added the following entries to the "ROLIE Security
          Resource Information Type Sub-Registry" registry located at
          <eref
          target="https://www.iana.org/assignments/rolie/category/information-type"
          /> . </t>
        <section title="incident information-type" anchor="iana-it-inc">

          <t>The entry is as follows:<list>
            <t>name: incident</t>
            <t>index: TBD</t>
            <t>reference: This document, <xref target="infotype-incident"
              /></t>
            </list></t>
        </section>
        <section title="indicator information-type" anchor="iana-it-ind">
          <t>The entry is as follows:<list>
            <t>name: indicator</t>
            <t>index: TBD</t>
            <t>reference: This document, <xref
              target="infotype-indicator"/></t>
            </list></t>
        </section>
      </section>
      <section title="atom:category scheme registrations"
        anchor="iana-cat">
        <t> IANA has added the following entries to the "ROLIE URN
          Parameters" registry located in <eref
          target="https://www.iana.org/assignments/rolie/"/>.</t>
        <section title="category:csirt:iodef:purpose"
          anchor="iana-cat-purpose">
          <t>The entry is as follows:<list>
            <t>name: category:csirt:iodef:purpose</t>
            <t>Extension IRI:
              urn:ietf:params:rolie:category:csirt:iodef:purpose</t>
            <t>Reference: This document, <xref target="iodefcategory"
              /></t>
            <t>Subregistry: None</t>
            </list></t>
        </section>
        <section title="category:csirt:iodef:restriction"
          anchor="iana-cat-restriction">
          <t>The entry is as follows:<list>
            <t>name: category:csirt:iodef:restriction</t>
            <t>Extension IRI:
              urn:ietf:params:rolie:category:csirt:iodef:restriction</t>
            <t>Reference: This document, <xref target="iodefcategory"
              /></t>
            <t>Subregistry: None</t>
            </list></t>
        </section>
      </section>
      <section title="rolie:property name registrations"
        anchor="iana-prop">
        <t>IANA has added the following entries to the "ROLIE URN
          Parameters" registry located in <eref
          target="https://www.iana.org/assignments/rolie/"/>.</t>
        <section title="property:csirt:id" anchor="iana-prop-id">
          <t>The entry is as follows:<list>
            <t>name: property:csirt:id</t>
            <t>Extension IRI: urn:ietf:params:rolie:property:csirt:id</t>
            <t>Reference: This document, section 6.3.1</t>
            <t>Subregistry: None</t>
            </list></t>
        </section>
      </section>

    </section>
    <section title="Security Considerations">
      <t>This document implies the use of ROLIE in high-security use
        cases, as such, added care should be taken to fortify and secure
        ROLIE repositories and clients using this extension. The guidance
        in the ROLIE core specification is strongly recommended, and
        implementers should consider adding additional security measures
        as they see fit.</t>
      <t>When providing a private workspace for closed sharing, it is
        recommended that the ROLIE repository checks user authorization
        when the user sends a GET request to the service document. If the
        user is not authorized to send any requests to a given workspace
        or collection, that workspace or collection should be truncated
        from the service document in the response. In this way the
        existence of unauthorized content remains unknown to potential
        attackers, hopefully reducing attack surface.</t>
    </section>

  </middle>
  <back>
    <references title="Normative References"> &RFC2119; &RFC5070;
      &I-D.ietf-mile-rolie; &RFC4949; </references>
    <section title="Non-Normative Examples" anchor="non-norm-ex">
      <t>The following provide examples of some potential use cases of
        the CSIRT ROLIE extension, and provides a showcase for some of
        its benefits over traditional solutions. </t>
      <t>The general non-normative examples provided in the core ROLIE
        document remain an excellent reference resource for typical ROLIE
        usage.</t>
      <section title="Use of Link Relations" anchor="link-relations">
        <t> A key benefit of using the RESTful architectural style is the
          ability to enable the client to navigate to related resources
          through the use of hypermedia links. In the Atom Syndication
          Format, the type of the related resource identified in a
          &lt;link&gt; element is indicated via the "rel" attribute,
          where the value of this attribute identifies the kind of
          related resource available at the corresponding "href"
          attribute. Thus, in lieu of a well-known URI template the URI
          itself is effectively opaque to the client, and therefore the
          client must understand the semantic meaning of the "rel"
          attribute in order to successfully navigate. Broad
          interoperability may be based upon a sharing consortium
          defining a well-known set of Atom Link Relation types. These
          Link Relation types may either be registered with IANA, or held
          in a private registry. </t>
        <t> Individual CSIRTs may always define their own link relation
          types in order to support specific use cases, however support
          for a core set of well-known link relation types is encouraged
          as this will maximize interoperability. </t>
        <t> In addition, it may be beneficial to define use case profiles
          that correspond to specific groupings of supported link
          relationship types. In this way, a CSIRT may unambiguously
          specify the classes of use cases for which a client can expect
          to find support. </t>
        <t> The following sections provide non-normative examples of link
          relation usage. Three distinct cyber security information
          sharing use case scenarios are described. In each use case, the
          unique benefits of adopting a resource-oriented approach to
          information sharing are illustrated. It is important to note
          that these use cases are intended to be a small representative
          set and is by no means meant to be an exhaustive list. The
          intent is to illustrate how the use of link relationship types
          will enable this resource-oriented approach to cyber security
          information sharing to successfully support the complete range
          of existing use cases, and also to motivate an initial list of
          well-defined link relationship types. </t>
        <section title="Use Case: Incident Sharing" anchor="info-share">
          <t> This section provides a non-normative example of an
            incident sharing use case. </t>
          <t> In this use case, a member CSIRT shares incident
            information with another member CSIRT in the same consortium.
            The client CSIRT retrieves a feed of incidents, and is able
            to identify one particular entry of interest. The client then
            does an HTTP GET on that entry, and the representation of
            that resource contains link relationships for both the
            associated "indicators" and the incident "history", and so
            on. The client CSIRT recognizes that some of the indicator
            and history may be relevant within her local environment, and
            can respond proactively. </t>
          <t>Example HTTP GET response for an incident entry:</t>
          <figure height="" suppress-title="false" width="" alt=""
            title="" align="left">
            <artwork height="" name="" width="" type="" alt="" align="left" xml:space="preserve"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>        
<entry xmlns="http://www.w3.org/2005/Atom"
  xmlns:rolie="urn:ietf:params:xml:ns:rolie-1.0">
  <id>http://www.example.org/csirt/private/incidents/123456</id>
  <title>Sample Incident</title>
  <link href="http://www.example.org/csirt/private/incidents/123456" 
    rel="self"/>
  <link href="http://www.example.org/csirt/private/incidents/123456" 
    rel="alternate"/>
  <published>2012-08-04T18:13:51.0Z</published>
  <updated>2012-08-05T18:13:51.0Z</updated>
  
  <link href="http://www.example.org/csirt/private/incidents/123456" 
    rel="edit"/>
            
  <!-- The links to indicators related to this incident,
       and the history of this incident, and so on.... -->
  <link href="http://www.example.org/csirt/private/incidents/123456
    /relationships/indicators" rel="indicators"/>
  <link href="http://www.example.org/csirt/private/incidents/123456
    /relationships/history" rel="history"/>
  <link href="http://www.example.org/csirt/private/incidents/123456
    /relationships/campaign" rel="campaign"/>

  <!-- navigate up to the full collection.  
       Might also be rel="collection" as per IANA registry -->
  <link href="http://www.example.org/csirt/private/incidents" rel="up"/>
  <rolie:format ns="urn:example:iodef"/>
  <content type="application/xml" src="example.org/123456/source">
  <!-- Content provided here as example, the content tag is only a 
       link to this file. -->
    <iodef:IODEF-Document lang="en" 
      xmlns:iodef="urn:ietf:params:xml:ns:iodef-1.0">
      <iodef:Incident purpose="traceback" restriction="need-to-know">              
        <iodef:IncidentID name="http://www.example.org/csirt/private/
          incidents">123456</iodef:IncidentID>
        <!-- ...additional incident data.... -->
        </iodef:Incident>
    </iodef:IODEF-Document>
    
  </content>
</entry>  ]]></artwork>
          </figure>
          <t>As can be seen in the example response, the Atom
            &lt;link&gt; elements enable the client to navigate to the
            related indicator resources, and/or the history entries
            associated with this incident.</t>
        </section>
        <section title="Use Case: Collaborative Investigation"
          anchor="collab-analysis">
          <t>This section provides a non-normative example of a
            collaborative investigation use case. </t>
          <t> In this use case, two member CSIRTs that belong to a closed
            sharing consortium are collaborating on an incident
            investigation. The initiating CSIRT performs an HTTP GET to
            retrieve the service document of the peer CSIRT, and
            determines the collection name to be used for creating a new
            investigation request. The initiating CSIRT then POSTs a new
            incident entry to the appropriate collection URL. The target
            CSIRT acknowledges the request by responding with an HTTP
            status code 201 Created.</t>
          <t>Example HTTP GET response for the service document:</t>
          <figure height="" suppress-title="false" width="" alt=""
            title="" align="left">
            <artwork height="" name="" width="" type="" alt="" align="left" xml:space="preserve"><![CDATA[
HTTP/1.1 200 OK
Date: Fri, 24 Aug 2012 17:09:11 GMT
Content-Length: 934
Content-Type: application/atomsvc+xml;charset="utf-8"

<?xml version="1.0" encoding="UTF-8"?>
<service xmlns="http://www.w3.org/2007/app"
         xmlns:atom="http://www.w3.org/2005/Atom">
    <workspace xml:lang="en-US" 
      xmlns:xml="http://www.w3.org/XML/1998/namespace">
      <atom:title type="text">RID Use Case Requests</atom:title>
      <collection  
        href="http://www.example.org/csirt/RID/InvestigationRequests">
         <atom:title type="text">Investigation Requests</atom:title>
         <accept>application/atom+xml; type=entry</accept>
      </collection>
      <collection href="http://www.example.org/csirt/RID/TraceRequests">
         <atom:title type="text">Trace Requests</atom:title>
         <accept>application/atom+xml; type=entry</accept>
      </collection>
      <!-- ...and so on.... -->
    </workspace>
</service>  ]]></artwork>
          </figure>
          <t>As can be seen in the example response, the Atom
            &lt;collection&gt; elements enable the client to determine
            the appropriate collection URL to request an investigation or
            a trace.</t>
          <t>The client CSIRT then POSTs a new entry to the appropriate
            feed collection. Note that the &lt;content&gt; element of the
            new entry may contain a RID message of type
            "InvestigationRequest" if desired, however this would NOT be
            required. The entry content itself need only be an IODEF
            document, with the choice of the target collection resource
            URL indicating the callers intent. A CSIRT would be free to
            use any URI template to accept investigationRequests.</t>
          <figure height="" suppress-title="false" width="" alt=""
            title="" align="left">
            <artwork height="" name="" width="" type="" alt="" align="left" xml:space="preserve"><![CDATA[
POST /csirt/RID/InvestigationRequests HTTP/1.1
Host: www.example.org
Content-Type: application/atom+xml;type=entry
Content-Length: 852 

<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
  xmlns:rolie="urn:ietf:params:xml:ns:rolie-1.0">
  <title>New Investigation Request</title>
  <id>http://www.example2.org/csirt/private/incidents/123456</id>
  <!-- id and updated not guranteed to be preserved --> 
  <!-- may want to profile that behavior in this document -->
  <updated>2012-08-12T11:08:22Z</updated>                         
  <author><name>Name of peer CSIRT</name></author>
  <rolie:format ns="urn:example:iodef"/>
  <content type="application/xml">
    <iodef:IODEF-Document lang="en" 
      xmlns:iodef="urn:ietf:params:xml:ns:iodef-1.0">
      <iodef:Incident purpose="traceback" restriction="need-to-know">              
      <iodef:IncidentID name="http://www.example2.org/csirt/
        private/incidents">123</iodef:IncidentID>
        <!-- ...additional incident data.... -->
      </iodef:Incident>
    </iodef:IODEF-Document>
  </content>
</entry>  ]]></artwork>
          </figure>
          <t>The receiving CSIRT acknowledges the request with HTTP
            return code 201 Created. </t>
          <figure height="" suppress-title="false" width="" alt=""
            title="" align="left">
            <artwork height="" name="" width="" type="" alt="" align="left" xml:space="preserve"><![CDATA[
HTTP/1.1 201 Created
Date: Fri, 24 Aug 2012 19:17:11 GMT
Content-Length: 906
Content-Type: application/atom+xml;type=entry
Location: http://www.example.org/csirt/RID/InvestigationRequests/823
ETag: "8a9h9he4qphqh"

<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
  xmlns:rolie="urn:ietf:params:xml:ns:rolie-1.0">
  <title>New Investigation Request</title>
  <id>http://www.example.org/csirt/RID/InvestigationRequests/823</id>
  <!-- id and updated not guranteed to be preserved --> 
  <!-- may want to profile that behavior in this document -->
  <updated>2012-08-12T11:08:30Z</updated>                              
  <published>2012-08-12T11:08:30Z</published>
  <author><name>Name of peer CSIRT</name></author>
  <rolie:format ns="urn:example:iodef"/>
  <content type="application/xml">
    <iodef:IODEF-Document lang="en" 
      xmlns:iodef="urn:ietf:params:xml:ns:iodef-1.0">
      <iodef:Incident purpose="traceback" restriction="need-to-know">              
      <iodef:IncidentID name="http://www.example.org/csirt/private
        /incidents">123</iodef:IncidentID>
        <!-- ...additional incident data.... -->
      </iodef:Incident>
    </iodef:IODEF-Document>
  </content>
</entry> ]]></artwork>
          </figure>
          <t>Consistent with HTTP/1.1 RFC, the location header indicates
            the URL of the newly created InvestigationRequest. If for
            some reason the request were not authorized, the client would
            receive an HTTP status code 403 Unauthorized. In this case
            the HTTP response body may contain additional details, if an
            as appropriate.</t>
        </section>
        <section title="Use Case:  Cyber Data Repository"
          anchor="cyber-repo">
          <t>This section provides a non-normative example of a cyber
            security data repository use case. </t>
          <t> In this use case a client accesses a persistent repository
            of cyber security data via a RESTful usage model. Retrieving
            a feed collection is analogous to an SQL SELECT statement
            producing a result set. Retrieving an individual Atom Entry
            is analogous to a SQL SELECT statement based upon a primary
            key producing a unique record. The cyber security data
            contained in the repository may include different data types,
            including indicators, incidents, benchmarks, or any other
            related resources. In this use case, the repository is
            queried via HTTP GET, and the results that are returned to
            the client may optionally contain URL references to other
            cyber security resources that are known to be related. These
            related resources may also be persisted locally, or they may
            exist at another (remote) cyber data respository. </t>
          <t>Example HTTP GET request to a persistent repository for any
            resources representing Distributed Denial of Service (DDOS)
            attacks:</t>
          <figure height="" suppress-title="false" width="" alt=""
            title="" align="left">
            <artwork height="" name="" width="" type="" alt="" align="left" xml:space="preserve"><![CDATA[
GET /csirt/repository/ddos
Host: www.example.org
Accept: application/atom+xml  ]]></artwork>
          </figure>
          <t>The corresponding HTTP response would be an XML document
            containing the DDOS feed.</t>
          <t>Example HTTP GET response for a DDOS feed:</t>
          <figure height="" suppress-title="false" width="" alt=""
            title="" align="left">
            <artwork height="" name="" width="" type="" alt="" align="left" xml:space="preserve"><![CDATA[

HTTP/1.1 200 OK
Date: Fri, 24 Aug 2012 17:20:11 GMT
Content-Length: nnnn
Content-Type: application/atom+xml;type=feed;charset="utf-8"

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
    xmlns:rolie="urn:ietf:params:xml:ns:rolie-1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.w3.org/2005/Atom 
                        file:/C:/schemas/atom.xsd
                        urn:ietf:params:xml:ns:iodef-1.0 
                        file:/C:/schemas/iodef-1.0.xsd"
    xml:lang="en-US">

    <generator version="1.0" xml:lang="en-US">
      emc-csirt-iodef-feed-service</generator>
    <id>http://www.example.org/csirt/repository/ddos</id>
    <title type="text" xml:lang="en-US">
      Atom formatted representation of a feed of known ddos resources.
      </title>
    <updated xml:lang="en-US">2012-05-04T18:13:51.0Z</updated> 
    <author>
        <email>csirt@example.org</email>
        <name>EMC CSIRT</name>
    </author>

    <!-- By convention there is usually a self link for the feed -->
    <link href="http://www.example.org/csirt/repository/ddos" 
      rel="self"/>
             
    <entry>
        <id>http://www.example.org/csirt/repository/ddos/123456</id>
        <title>Sample DDOS Incident</title>
        <link href="http://www.example.org/csirt/repository/ddos/123456" 
          rel="self"/>          <!-- by convention -->
        <link href="http://www.example.org/csirt/repository/ddos/123456" 
          rel="alternate"/>     <!-- required by Atom spec -->
        <link href="http://www.example.org/csirt/repository/ddos/987654" 
          rel="related"/>       <!-- link to a related DDOS resource
          in this repository -->
        <link href="http://www.cyber-agency.gov/repository/
          indicators/1a2b3c" rel="related"/>  
          <!-- link to a related DDOS resource in another repository -->              
        <published>2012-08-04T18:13:51.0Z</published>
        <updated>2012-08-05T18:13:51.0Z</updated>
        <!-- The category is based upon IODEF 
                    purpose and restriction attributes -->
        <category term="traceback" scheme="purpose" label="trace back"/>
        <category term="need-to-know" scheme="restriction" 
          label="need to know" />
        <category term="ddos" scheme="ttp" 
          label="tactics, techniques, and procedures"/>
        <summary>A short description of this DDOS attack, extracted 
        from the IODEF Incident class, <description> element. </summary>
        <rolie:format ns="urn:example:iodef"/>
        <content href="http://www.example.org/ddos/123456/data"/>
    </entry>
    
    <entry>
        <!-- ...another entry... -->
    </entry>
              
</feed>  ]]></artwork>
          </figure>
          <t>This feed document has two atom entries, one of which has
            been elided. The completed entry illustrates an Atom
            &lt;entry&gt; element that provides a summary of essential
            details about one particular DDOS incident. Based upon this
            summary information and the provided category information, a
            client may choose to do an HTTP GET operation to retrieve the
            full details of the DDOS incident. This example shows how a
            persistent repository may provide links to additional
            resources, both local and remote.</t>
          <t>Note that the provider of a persistent repostory is not
            obligated to follow any particular URL template scheme. The
            repository available at the hypothetical provider
            "www.example.com" uses a different URL pattern than the
            hypothetical repository available at "www.cyber-agency.gov".
            When a client de-references a link to resource that is
            located in a remote repository the client may be challenged
            for authentication credentials acceptable to that provider.
            If the two repository providers choose to support a federated
            identity scheme or some other form of single-sign-on
            technology, then the user experience can be improved for
            interactive clients (e.g., a human user at a browser).
            However, this is not required and is an implementation choice
            that is out of scope for this specification. </t>
        </section>
      </section>
    </section>
  </back>
</rfc>
