<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[
    <!-- <!ENTITY rfc2119 PUBLIC '' 
      'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml'> -->
]>

<rfc category="info" ipr="trust200902" docName="draft-ietf-mile-iodef-guidance-11">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes"?>         <!-- generate a table of contents -->
<?rfc symrefs="yes"?>     <!-- use anchors instead of numbers for references -->
<?rfc sortrefs="yes" ?>   <!-- alphabetize the references -->
<?rfc compact="yes" ?>    <!-- conserve vertical whitespace -->
<?rfc subcompact="no" ?>  <!-- but keep a blank line between list items -->

    <front>
        <title abbrev='IODEF Guidance'>Incident Object Description Exchange Format Usage Guidance</title>
        <author initials='P' surname="Kampanakis" fullname='Panos Kampanakis'>
            <organization>Cisco Systems</organization> 
            <address>
                <!-- <postal>
                    <street>170 West Tasman Dr.</street>
                    <city>San Jose</city> <region>CA</region>
                    <code>95134</code>
                    <country>US</country>
                </postal> -->
            <email>pkampana@cisco.com</email>
            </address>
        </author>
        <author initials='M.' surname="Suzuki" fullname='Mio Suzuki'>
            <organization>NICT</organization> 
            <address>
                <postal>
                    <street>4-2-1, Nukui-Kitamachi</street>
                    <city>Koganei</city> <region>Tokyo</region>
                    <code>184-8795</code>
                    <country>JP</country>
                </postal>
            <email>mio@nict.go.jp</email>
            </address>
        </author>
        <date day="7" month="September" year="2017" />
        <workgroup>MILE Working Group</workgroup>

        <abstract>
        <t>The Incident Object Description Exchange Format (IODEF) v2 (RFC7970)
		defines a data representation that provides a framework for sharing 
        information about computer security incidents commonly exchanged 
        by Computer Security Incident Response Teams (CSIRTs) . 
        Since the IODEF model includes a wealth of available options that can be used to describe 
        a security incident or issue, it can be challenging for security practitioners to develop 
		tools that leverage IODEF for incident sharing. This document provides guidelines for 
		IODEF implementers. It addresses how common security indicators can be represented 
		in IODEF and use-cases of how IODEF is being used. This document aims  
		to make IODEF's adoption by vendors easier and encourage faster and wider adoption 
		of the model by CSIRTs around the world.</t>
        </abstract>
    </front>

    <middle>

        <section anchor="intro" title="Introduction">
            <t>The Incident Object Description Exchange Format (IODEF) v2 <xref target="RFC7970"/> 
			defines a data representation that provides a framework for sharing computer security 
			incident information commonly exchanged by Computer Security Incident Response Teams 
			(CSIRTs). The IODEF data model consists of multiple classes and data types 
			that are defined in the IODEF XML schema.</t>
            <t>The IODEF schema was designed to describe all the possible fields needed 
			in a security incident exchange. Thus, IODEF contains a plethora of data constructs 
            which could make it hard for IODEF implementers to decide which 
            are important. Additionally, in the IODEF schema, there exist multiple 
            fields and classes which do not necessarily need to be used in every possible data 
            exchange. Moreover, some IODEF classes are useful only in rare circumstances. 
			This document tries to address these concerns. It 
            also presents how common security indicators can be represented in IODEF. It points out 
            the most important IODEF classes for an implementer and describes other ones that are not 
            as important. Also, it presents some common pitfalls for IODEF implementers and how 
            to address them. The end goal of this document is to make IODEF's use by vendors 
			easier and encourage wider adoption of the model by CSIRTs around the world.</t>
            <t><xref target="strategy"/> discusses the recommended classes and how an IODEF implementer 
            should choose the classes to implement. <xref target="iodef-considerations"/> presents common 
            considerations a practitioner will come across and how to address them. <xref 
            target="in_action"/> goes over some common uses of IODEF. </t>
        </section>

        <section anchor="terminology" title="Terminology">
                <t>The terminology used in this document follows the one defined in 
                <xref target="RFC7970"/> and <xref target="RFC7203"/>.</t>
        
                <!-- <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 RFC 2119 <xref target="RFC2119"/>.</t> -->
        </section>

        <section anchor="strategy" title="Implementation and Use Strategy">
            <t>It is important for IODEF implementers to distinguish how the 
			IODEF classes will be used in incident information exchanges. 
			It is also important to understand the most common IODEF 
			classes that describe common security incidents or 
			indicators. This section describes the most important classes 
			and factors an IODEF practitioner should take into consideration 
			before using IODEF or designing an implementation.</t>
			
            <section title="Minimal IODEF document" anchor="minimal">
                <t>An IODEF document <!-- MUST --> must  
				include at least an Incident class, an xml:lang attribute 
				that defines the supported language and the IODEF version attribute. 
				An Incident <!-- MUST --> must contain a purpose attribute and three  
				mandatory-to-implement elements. These elements are Generation 
				time class that describes the time of the incident, an 
				IncidentID class and at least one Contact class. 
				The structure of the minimal IODEF-Document is shown in 
				<xref target="minimal-fig"/>.</t>
				
                <figure title="Minimal IODEF-Document class" anchor="minimal-fig"><artwork><![CDATA[
 +---------------+            +--------------+
 |IODEF-Document |            | Incident     |
 +---------------+            +--------------+            +----------------+
 |STRING version |<>--{1..*}--| ENUM purpose |<>----------| IncidentID     |
 |ENUM xml:lang  |            |              |            +----------------+
 |               |            |              |            | STRING name    |
 +---------------+            |              |            +----------------+
                              |              |            
                              |              |<>----------[ GenerationTime ]
                              |              |            
                              |              |            +----------------+										   
                              |              |<>--{1..*}--[ Contact        |
                              +--------------+            +----------------+
                                                          | ENUM role      |
                                                          | ENUM type      |
                                                          +----------------+
                ]]></artwork></figure>
				
				<t>The IncidentID class <!-- MUST --> must contain at least a name attribute.</t>
				
				<t>In turn, the Contact class requires the type and role attributes, but no elements are 
				required by the IODEF v2 specification. Nevertheless, at least one of the 
				elements in the Contact class, such as an Email class, <!-- SHOULD --> should be implemented 
				so that the IODEF document is useful.</t>

                <t>Section 7.1 of <xref target="RFC7970"/> presents a minimal IODEF document 
				with only the mandatory classes and attributes. Implementers can also refer to 
				Section 7 of <xref target="RFC7970"/> and <xref target="appendix2"/> for 
				example IODEF v2 documents.</t>
            </section>
			
            <section title="Information represented">
				<t>There is no need for a practitioner to use or implement IODEF classes 
				and fields other than the minimal ones (<xref target="minimal" />) 
				and the ones necessary for her use-cases. The implementer 
				should carefully look into the schema and decide which classes to 
				implement (or not).</t> 
				
				<t>For example, if we have Distributed Denial of Service (DDoS) as 
				a potential use-case, then the Flow class and its included 
				information are the most important classes to use. The Flow 
				class describes information related to the attacker 
				and victim hosts, which information could help 
				automated filtering or sink-hole operations.</t>
				
				<t>Another potential use-case is malware command and control (c2). After modern 
				malware infects a device, it usually proceeds to connect to one or more 
				c2 servers to receive instructions from its master and potentially exfiltrate information. 
				To protect against such activity, it is important to interrupt the c2 communication by 
				filtering the activity. IODEF can describe c2 activities using the Flow and the ServiceName 
				classes.</t>
				
				<t>For use-cases where indicators need to be described, the IndicatorData 
				class will be implemented instead of the EventData class.</t>
				
				<t>In summary, an implementer <!-- SHOULD --> should identify her use-cases and find 
				the classes that are necessary to support in IODEF v2. Implementing and parsing 
				all IODEF classes can be cumbersome in some occasions and unnecessary. Other 
				external schemata can also be used in IODEF to describe incidents or 
				indicators. External schemata should be parsed accordingly only if the 
				implementer's IODEF use-cases require external schema information. But 
				even when an IODEF implementation cannot parse an external schema, the 
				IODEF report can still be valuable to an incident response team.
				The information can also be useful when shared further with 
				content consumers able to parse this information.</t> 
				
				<t>IODEF supports multiple language translations of free-form, ML_STRING 
				text in all classes <xref target="RFC7970"/>. That way, text in Description 
				elements can be translated to different languages by using a 
				translation identifier in the class. Implementers <!-- SHOULD --> 
				should be able to parse iodef:MLStringType classes and extract 
				only the information relevant to languages of interest.</t>
            </section>
			
            <section title="IODEF Classes">
                <t><xref target="RFC7970"/> contains classes that can describe 
				attack Methods, Events, Incidents, Indicators, how they were discovered 
				and the Assessment of the repercussions for the victim. It is important 
				for IODEF users to know the distinction between these classes in 
				order to decide which ones fulfill their use-cases. </t>
				
				<t>An IndicatorData class depicts a threat indicator or observable that could 
				be used to describe a threat that resulted in an attempted attack. 
				For example, we could see an attack happening but it might have been prevented and 
				not have resulted in an incident or security event. On the other hand, an EventData 
				class usually describes a security event and can be considered as a report 
				of something that took place.</t>
				
				<t>Classes like Discovery, Assessment, Method, and RecoveryTime are used in conjunction with 
				EventData as they related to the incident report described in the EventData. The 
				RelatedActivity class can reference an incident, an indicator or other related threat 
				activity.</t>
				
				<t>While deciding what classes are important for the needed use-cases, IODEF users <!-- SHOULD --> should 
				carefully evaluate the necessary classes and how these are used in order to avoid unnecessary 
				work. For example, if we want to only describe indicators in IODEF, the implementation of 
				Method or Assessment might not be important.</t>
            </section>
        </section>

        <section anchor="iodef-considerations" title="IODEF usage considerations">
            <t>Implementers need to consider some common, standardized options for their IODEF use strategy.</t>
			
            <section title="External References">
                <t>The IODEF format includes the Reference class used for externally defined information
                such as a vulnerability, Intrusion Detection System (IDS) alert, malware sample, advisory, 
                or attack technique. To facilitate the exchange of information, the Reference class was extended 
				to the Enumeration Reference Format <xref target="RFC7495"/>. The Enumeration Reference Format 
				specifies a means to use external enumeration specifications (e.g. CVE) that could define 
				an enumeration format, specific enumeration values, or both. As external enumerations 
				can vary greatly, implementers <!-- SHOULD --> should only support the ones expected 
				to describe their specific use-cases.</t>
            </section>
			
            <section title="Extensions">
                <t>The IODEF data model (<xref target="RFC7970"/>) is extensible. Many attributes 
				with enumerated values can be extended using the "ext-*" prefix. 
                Additional classes can also be defined by using the AdditionalData and RecordItem 
                classes. An extension to the AdditionalData class for reporting Phishing emails 
                is defined in <xref target="RFC5901"/>. Information about extending IODEF class 
				attributes and enumerated values can be found in Section 5 of 
				<xref target="RFC7970"/>.</t>

                <t>Additionally, IODEF can import existing schemata by using an extension framework 
                defined in <xref target="RFC7203"/>. The framework enables IODEF users to embed 
                XML data inside an IODEF document using external schemata or structures defined by external 
                specifications. Examples include CVE, CVRF and OVAL. <xref target="RFC7203"/> 
                enhances the IODEF capabilities without further extending the data model.</t>

                <t>IODEF implementers <!-- SHOULD NOT --> should not use their own IODEF extensions unless data 
                cannot be represented using existing standards or importing them in an IODEF 
                document using <xref target="RFC7203"/> is not a suitable option.</t>
            </section>

            <section title="Indicator predicate logic" anchor="predicate"> 
                <t>An IODEF <xref target="RFC7970"/> document can describe 
				incident reports and indicators. The Indicator class can 
				include references to other indicators, observables and more 
				classes that contain details about the indicator. When describing 
				security indicators, it is often common to need to group them 
				together in order to form a group of indicators that constitute 
				a security threat. For example, a botnet might have multiple 
                command and control servers. For that reason, IODEF v2 introduced 
				the IndicatorExpression class that is used to add the indicator 
				predicate logic when grouping more than one indicators or 
				observables.</t>

                <t>Implementations <!-- MUST --> must be able to parse and apply 
				the Boolean logic offered by an IndicatorExpression in order to 
				evaluate the existence of an indicator. As explained in Section 
				3.29.5 of <xref target="RFC7970"/> the IndicatorExpression 
				element operator defines the operator applied to all the child 
				element of the IndicatorExpression. If no operator is defined 
				"and" <!-- SHOULD --> should be assumed. IndicatorExpressions can also be nested together. 
				Child IndicatorExpressions should be treated as child elements of 
				their parent and they <!-- SHOULD --> should be evaluated first before evaluated 
				with the operator of their parent. </t>
				
				<t>Users can refer to <xref target="appendix1"/> for example uses of 
				the IndicatorExpressions in an IODEF v2.</t>
            </section>
			            
			<section title="Disclosure level">
            <!-- This section describes how the restriction attribute 
            are not enough, so they use a new schema for data marking to 
			have more restrictions 
			(as it was explained in http://repoman.apwg.org/research/wiki/dataMarking ) -->
            <t>Access to information in IODEF documents should be tightly locked 
            since the content may be confidential. IODEF has a common attribute, 
			called "restriction", which indicates the disclosure guideline 
			to which the sender expects the recipient to adhere to 
			for the information represented in the class and its children.
            That way, the sender can express the level of disclosure for each
            component of an IODEF document. Appropriate external measures could be 
			implemented based on the restriction level. One example is when 
			Real-time Inter-network Defense (RID) <xref target="RFC6545"/> 
			is used to transfer the IODEF documents, it can provide policy guidelines 
			for handling IODEF documents by using the RIDPolicy class.</t>

            <t>The enforcement of the disclosure guidelines is out of scope for IODEF.
            The recipient of the IODEF document needs to follow the guidelines, but
            these guidelines themselves do not provide any enforcement measures. 
			For that purpose, implementers <!-- SHOULD --> should consider appropriate 
			privacy control measures, technical or operational for their implementation.</t>
            </section>
        </section>

        <section anchor="in_action" title="IODEF Uses">
            <t>IODEF is currently used by various organizations in order to
            represent security incidents and share incident and threat information
            between security operations organizations.</t>

            <section title="Implementations">
                <!-- Here we had two sections that included CIF and APWG. Currently there 
                is a whole new draft on IODEF implementations (I-D.ietf-mile-implementreport) 
				so we will not expand on CIF and APWG -->
                <!-- <section title="Collective Intelligence Framework">
                <t> The Collective Intelligence Framework <xref target="CIF"/> is a cyber 
                threat intelligence management system that uses IODEF to combine known 
                malicious threat information from multiple sources and use that it to identify, 
                detect and mitigate. The threat intelligence can be IP addresses, domains and 
                URLs that are involved in malicious activity. IODEF records can be consumed 
                by a CIF standalone client or CIF browser plugins that a user can use to 
                make informed decisions about threat information.</t>
                   <section title="Anti-Phishing Working Group">
                <t> The Anti-Phishing Working Group (<xref target="APWG"/>) is using 
                <xref target="RFC5070"/> to represent email phishing information. 
                <xref target="APWG"/> also uses IODEF to aggregate and share 
                Bot and Infected System Alerting and Notification System (BISANS) and 
                Cyber Bullying IODEF records. Special IODEF extensions are used in order 
                to mark the sensitivity of the exchanged information. Shared infected 
                system or email phishing records can then be used by interested parties 
                in order to provide mitigations. <xref target="APWG"/> leverages tools of 
                its eCRISP-X toolkit in order to share and report e-Crime IODEF records.</t>
            </section>  -->
  			    <t>In order to use IODEF, tools like IODEF parsers are necessary. 
                <xref target="RFC8134"/> describes a set of 
				IODEF implementations and uses by various vendors and 
				Computer Emergency Readiness Team (CERT) organizations. 
				The document does not specify any specific mandatory to implement 
				(MTI) IODEF classes but provides a list of real world uses. Perl and 
				Python modules (XML::IODEF, Iodef::Pb, iodeflib) are some examples. 
				Moreover, implementers are encouraged to refer to Section 7 of 
				<xref target="RFC8134"/>  practical IODEF usage guidelines. 
				<xref target="implementations"/>, on the other hand, includes 
				various vendor incident reporting products that can consume and export 
				in IODEF format.</t>
            </section>
			
            <section title="Inter-vendor and Service Provider Exercise">
                <t>As an interoperability exercise, in 2013 a limited number of vendors organized 
				and executed threat indicators exchanges in IODEF. The transport protocol used
                was RID. The threat information shared included indicators from DDoS attacks; 
				and Malware incidents and Spear-Phishing that targets specific individuals after 
				harvesting information about them. The results served as proof-of-concept (PoC) 
				about how seemingly competing entities could use IODEF to exchange sanitized 
				security information. As this was a PoC exercise only example information (no 
				real threats) were shared as part of the exchanges.</t>
                <t> <figure title="PoC peering topology" anchor="poc-fig"><artwork><![CDATA[
      ____________                             ____________
      | Vendor X  |                            | Vendor Y  |
      | RID Agent |_______-------------________| RID Agent |
      |___________|       | Internet  |        |___________|
                          -------------

                   ---- RID Report message --->
                   -- carrying IODEF example ->
                   --------- over TLS -------->

                   <----- RID Ack message -----
                   <--- in case of failure ----
                ]]></artwork></figure>
                <xref target="poc-fig"/> shows how RID interactions took place during the
                PoC. Participating organizations were running RID Agent software on-
                premises. The RID Agents formed peering relationships with other
                participating organizations. When Entity X had a new incident to
                exchange it would package it in IODEF and send it to Entity Y over
                TLS in a RID Report message. In case there was an issue with the
                message, Entity Y would send an RID Acknowledgement message back to
                Entity X which included an application level message to describe 
                the issue. Interoperability between RID agents implementing  
                <xref target="RFC6545"/> and <xref target="RFC6546"/> was also confirmed.</t>
                <t> The first use-case included sharing of Malware Data Related to 
                an Incident between CSIRTs. After Entity X detected an incident, 
				she would put data about malware found during the incident 
				in a backend system. Entity X then decided to share the 
				incident information with Entity Y about the malware 
				discovered. This could be a human decision or part of an 
				automated process.</t>
                <t> Below are the steps followed for the malware information exchange 
                that was taking place: 
                <list style="format (%d)">
                    <t>Entity X has a sharing agreement with Entity Y, and has 
                    already been configured with the IP address of Entity Y’s RID 
                    Agent.</t>
                    <t>Entity X’s RID Agent connects to Entity Y’s RID Agent, and 
                    mutual authentication occurs using PKI digital certificates.</t>
                    <t>Entity X pushes out a RID Report message which contains 
                    information about N pieces of discovered malware. IODEF is used 
                    in RID to describe the 
                        <list style="format (%c)">
                            <t>Hash of malware files</t>
                            <t>Registry settings changed by the malware</t>
                            <t>C&amp;C Information for the malware</t>
                        </list>
                    </t>
                    <t>Entity Y receives RID Report message, sends RID Acknowledgement 
                    message</t>
                    <t>Entity Y stores the data in a format that makes it possible for 
                    the back end to know which source the data came from.</t>
                </list> </t>
                <t> Another use-case was sharing a DDoS attack 
				as explained in the following scenario: Entity X, 
				a Critical Infrastructure and Key Resource (CIKR) company 
                detects that their internet connection is saturated with an abnormal 
                amount of traffic. Further investigation determines that this is an 
                actual DDoS attack. Entity X's CSIT contacts their ISP, Entity Y, 
				and shares information with them about the attack traffic characteristics. 
				<!-- In addition, Entity X has an information sharing 
                relationship with Entity Y. It shares information with Entity Y on 
                characteristics of the attack to watch for. --> Entity X's ISP is being 
                overwhelmed by the amount of traffic, so it shares attack signatures 
                and IP addresses of the most prolific hosts with its adjacent ISPs.</t>
                <t> Below are the steps followed for a DDoS information exchange: 
                <list style="format (%d)">
                    <t>Entity X has a sharing agreement with Entity Y, and has 
                    already been configured with the IP address of Entity Y’s RID 
                    Agent.</t>
                    <t>Entity X’s RID Agent connects to Entity Y’s RID Agent, and 
                    mutual authentication occurs using PKI digital certificates.</t>
                    <t>Entity X pushes out a RID Report message which contains 
                    information about the DDoS attack. IODEF is used in RID to 
                        describe the 
                        <list style="format (%c)">
                            <t>Start and Detect dates and times</t>
                            <t>IP Addresses of nodes sending DDoS Traffic</t>
                            <t>Sharing and Use Restrictions</t>
                                        <t>Traffic characteristics (protocols and ports)</t>
                                        <t>HTTP User-Agents used</t>
                                        <t>IP Addresses of C&amp;C for a botnet</t>
                        </list>
                    </t>
                    <t>Entity Y receives RID Report message, sends RID Acknowledgement 
                    message</t>
                    <t>Entity Y stores the data in a format that makes it possible for 
                    the back end to know which source the data came from.</t>
					<t>Entity Y shares information with other ISP Entities it has an 
					established relationship with.</t>
                </list> </t>
                <t> One more use-case was sharing spear-phishing email information 
                as explained in the following scenario: The board members of several 
                defense contractors receive a targeted email inviting them to attend a conference 
                in San Francisco. The board members are asked to provide their 
                personally identifiable information such as their home address, 
                phone number, corporate email, etc in an attached document which 
                came with the email.  The board members are also asked to click 
                on a URL which would allow them to reach the sign up page for the 
                conference. One of the recipients believes the email to be a phishing 
                attempt and forwards the email to their corporate CSIRT for analysis. 
                The CSIRT identifies the email as an attempted spear phishing incident 
                and distributes the indicators to their sharing partners. </t>
                <t> Below are the steps followed for a spear-phishing information exchange 
                between CSIRTs that was part of this PoC. 
                <list style="format (%d)">
                    <t>Entity X has a sharing agreement with Entity Y, and has 
                    already been configured with the IP address of Entity Y’s RID 
                    Agent.</t>
                    <t>Entity X’s RID Agent connects to Entity Y’s RID Agent, and 
                    mutual authentication occurs using PKI digital certificates.</t>
                    <t>Entity X pushes out a RID Report message which contains 
                    information about the spear-phishing email. IODEF is used 
                    in RID to describe the 
                        <list style="format (%c)">
                            <t>Attachment details (file Name, hash, size, malware family</t>
                            <t>Target description  (IP, domain, NSLookup)</t>
                                        <t>Email information (From, Subject, header information, 
                                        date/time, digital signature)</t>
                            <t>Confidence Score</t>
                        </list>
                    </t>
                    <t>Entity Y receives RID Report message, sends RID Acknowledgement 
                    message</t>
                    <t>Entity Y stores the data in a format that makes it possible for 
                    the back end to know which source the data came from.</t>
                </list> </t>
				<t><xref target="appendix2"/> includes some of the incident IODEF example 
				information that was exchanged by the organizations' RID Agents as part 
				of this proof-of-concept. </t>
            </section>

            <section title="Use-cases">
                <t>Other use-cases of IODEF, other than the ones described above, could be: 
                  <list style="format (%d)">
                    <t>ISP notifying a national CERT or organization when it identifies and acts upon an incident and CERTs notifying ISPs when they are aware of incidents.</t>
                    <t>Suspected phishing emails could be shared amongst organizations and national agencies. Automation could validate web content that the suspicious emails are pointing to. Identified malicious content linked in a phishing email could then be shared using IODEF. Phishing campaigns could thus be subverted much faster by automating information sharing using IODEF.</t>
                    <t>When finding a certificate that should be revoked, a third-party would forward an automated IODEF message to the CA with the full context of the certificate and the CA could act accordingly after checking its validity. Alternatively, in the event of a compromise of the private key of a certificate, a third-party could alert the certificate owner about the compromise using IODEF.</t>
                  </list></t>
            </section>
        </section>

		<section title="IANA Considerations">
        <t>This memo does not require any IANA actions. </t>
        </section>
		
        <section title="Security Considerations">
        <t>This document does not incur any new security issues, since it only talks 
        about the usage of IODEFv2 defined RFC7970. Nevertheless, 
		readers of this document should refer to the Security Considerations  
		section of <xref target="RFC7970"/>. </t>
        </section>
		
        <!-- <section title="Acknowledgements">
        <t> </t>
        </section> -->
    </middle>

    <back>
        <references title='Normative References'>
          <!-- &rfc2119; -->
          <!-- <?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5070"?> -->
		  <?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7970"?>
          <?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5901"?>
          <?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6545"?>
          <?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7203"?>
          <?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7495"?>
        </references>
        <references title='Informative References'>
		  <?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6546"?>
		  <?rfc include="http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8134"?>
          <!-- <reference anchor="APWG" target="http://apwg.org/">
              <front>
                  <title>APWG</title>
                  <author initials="" surname="" fullname="">
                      <organization />
                  </author>
                  <date year="" />
              </front>
          </reference> -->
          <!-- <reference anchor="CIF" target="http://csirtgadgets.org/collective-intelligence-framework/">
              <front>
                  <title>CIF</title>
                  <author initials="" surname="" fullname="">
                      <organization />
                  </author>
                  <date year="" />
              </front>
          </reference> -->
          <reference anchor="implementations" target="http://siis.realmv6.org/implementations/">
              <front>
                  <title>Implementations on IODEF</title>
                  <author initials="" surname="" fullname="">
                      <organization />
                  </author>
                  <date year="" />
              </front>
          </reference>
        </references>


        <section anchor="appendix1" title="Indicator predicate logic examples">
          <!-- An example is http://taxii.mitre.org/about/documents/TAXII_Introduction_briefing_November_2012.pdf (slide 19) --> 
          <t>In the following example the EventData class 
          evaluates as a Flow of one System with source address 
          being (192.0.2.104 OR 192.0.2.106) AND target address 198.51.100.1. </t>
          <figure><artwork><![CDATA[
<!-- ...XML code omitted... -->
 <IndicatorData>
   <Indicator>
     <IndicatorID name="csirt.example.com" version="1">
     G90823490
     </IndicatorID>
     <Description>C2 domains</Description>    
     <IndicatorExpression operator="and">
       <IndicatorExpression operator="or">
         <Observable>
           <System category="source" spoofed="no">
             <Node>
               <Address category="ipv4-addr">
                 192.0.2.104
               </Address>
             </Node>
           </System>
         </Observable>
         <Observable>
           <System category="source" spoofed="no">
             <Node>
               <Address category="ipv4-addr">
                 192.0.2.106
               </Address>
             </Node>
           </System>
         </Observable>
       </IndicatorExpression>
       <Observable>
         <System category="target" spoofed="no">
           <Node>
             <Address category="ipv4-addr">
               198.51.100.1
             </Address>
           </Node>
         </System>
       </Observable>
     </IndicatorExpression>
   </Indicator>
 </IndicatorData>
<!-- ...XML code omitted... -->
                ]]></artwork></figure> 
          <t>Similarly, the FileData Class can be an observable in an IndicatorExpression. 
		    The hash values of two files can be used to match against an indicator using Boolean
			"or" logic. In the following example the indicator consists of either of the two 
            files with two different hashes. </t>
          <figure><artwork><![CDATA[
<!-- ...XML code omitted... -->
 <IndicatorData>
   <Indicator>
     <IndicatorID name="csirt.example.com" version="1">
     A4399IWQ
     </IndicatorID>
     <Description>File hash watchlist</Description>    
     <IndicatorExpression operator="or">
         <Observable>
           <FileData>
             <File>
               <FileName>dummy.txt</FileName>
               <HashData scope="file-contents">
                 <Hash>
                  <ds:DigestMethod Algorithm=
                  "http://www.w3.org/2001/04/xmlenc#sha256"/>
                  <ds:DigestValue>
                   141accec23e7e5157de60853cb1e01bc38042d
                   08f9086040815300b7fe75c184
                  </ds:DigestValue>
                 </Hash>
               </HashData>
             </File>
           </FileData>
         </Observable>
         <Observable>
           <FileData>
             <File>
               <FileName>dummy2.txt</FileName>
               <HashData scope="file-contents">
                 <Hash>
                  <ds:DigestMethod Algorithm=
                  "http://www.w3.org/2001/04/xmlenc#sha256"/>
                  <ds:DigestValue>
                   141accec23e7e5157de60853cb1e01bc38042d
                   08f9086040815300b7fe75c184
                  </ds:DigestValue>
                 </Hash>
               </HashData>
             </File>
           </FileData>
         </Observable>
     </IndicatorExpression>
   </Indicator>
 </IndicatorData>
<!-- ...XML code omitted... -->
                ]]></artwork></figure>
		</section>
		
        <section anchor="appendix2" title="Inter-vendor and Service Provider Exercise Examples">
            <t>Below some of the incident IODEF example information that was exchanged by 
            the vendors as part of this proof-of-concept Inter-vendor and Service Provider 
            Exercise.</t>
            <section title="Malware Delivery URL">
                <t>This example indicates malware and related URL for file delivery.</t>
                <figure><artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<IODEF-Document version="2.00"
                xmlns="urn:ietf:params:xml:ns:iodef-2.0"
                xmlns:iodef="urn:ietf:params:xml:ns:iodef-2.0"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <iodef:Incident purpose="reporting">
    <iodef:IncidentID name="csirt.example.com">
      189801
    </iodef:IncidentID>
    <iodef:ReportTime>2012-12-05T12:20:00+00:00</iodef:ReportTime>
    <iodef:GenerationTime>2012-12-05T12:20:00+00:00</iodef:GenerationTime>
    <iodef:Description>Malware and related indicators</iodef:Description>
    <iodef:Assessment occurrence="potential">
      <iodef:SystemImpact severity="medium" type="breach-privacy">
        <iodef:Description>Malware with C&amp;C
        </iodef:Description>
      </iodef:SystemImpact>
    </iodef:Assessment>
    <iodef:Contact role="creator" type="organization">
      <iodef:ContactName>example.com CSIRT
      </iodef:ContactName>
      <iodef:Email>
        <iodef:EmailTo>contact@csirt.example.com
        </iodef:EmailTo>
      </iodef:Email>
    </iodef:Contact>
    <iodef:EventData>
      <iodef:Flow>
        <iodef:System category="source">
          <iodef:Node>
            <iodef:Address category="ipv4-addr">192.0.2.200
            </iodef:Address>
			<iodef:Address category="site-uri">
              /log-bin/lunch_install.php?aff_id=1&amp;lunch_id=1&amp;maddr=&amp;action=install
            </iodef:Address>
          </iodef:Node>
          <iodef:NodeRole category="www"/>
        </iodef:System>
      </iodef:Flow>
    </iodef:EventData>
  </iodef:Incident>
</IODEF-Document>
              ]]></artwork></figure>
            </section>
            <section title="DDoS">
                <t>The DDoS test exchanged information that described a DDoS including 
                protocols and ports, bad IP addresses and HTTP User-Agent fields. The 
                IODEF version used for the data representation was based on 
                <xref target="RFC7970"/>. </t>
                <figure><artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<IODEF-Document version="2.00"
                xmlns="urn:ietf:params:xml:ns:iodef-2.0"
                xmlns:iodef="urn:ietf:params:xml:ns:iodef-2.0"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <iodef:Incident purpose="reporting" restriction="default">
    <iodef:IncidentID name="csirt.example.com">
      189701
    </iodef:IncidentID>
    <iodef:DetectTime>2013-02-05T01:15:45+00:00</iodef:DetectTime>
    <iodef:StartTime>2013-02-05T00:34:45+00:00</iodef:StartTime>
    <iodef:ReportTime>2013-02-05T01:34:45+00:00</iodef:ReportTime>
    <iodef:GenerationTime>2013-02-05T01:15:45+00:00</iodef:GenerationTime>
    <iodef:Description>DDoS Traffic Seen</iodef:Description>
    <iodef:Assessment occurrence="actual">
      <iodef:SystemImpact severity="medium" type="availability-system">
        <iodef:Description>DDoS Traffic
        </iodef:Description>
      </iodef:SystemImpact>
      <iodef:Confidence rating="high"/>
    </iodef:Assessment>
    <iodef:Contact role="creator" type="organization">
      <iodef:ContactName>Dummy Test</iodef:ContactName>
      <iodef:Email>
        <iodef:EmailTo>contact@dummytest.com
        </iodef:EmailTo>
      </iodef:Email>
    </iodef:Contact>
    <iodef:EventData>
      <iodef:Description>
        Dummy Test sharing with ISP1
      </iodef:Description>
      <iodef:Method>
        <iodef:Reference>
          <iodef:URL>
            http://blog.spiderlabs.com/2011/01/loic-ddos-
            analysis-and-detection.html
          </iodef:URL>
          <iodef:URL>
            http://en.wikipedia.org/wiki/Low_Orbit_Ion_Cannon
          </iodef:URL>
          <iodef:Description>
            Low Orbit Ion Cannon User Agent
          </iodef:Description>
        </iodef:Reference>
      </iodef:Method>
      <iodef:Flow>
        <iodef:System category="source" spoofed="no">
          <iodef:Node>
            <iodef:Address category="ipv4-addr">
              192.0.2.104
            </iodef:Address>
          </iodef:Node>
          <iodef:Service ip-protocol="6">
            <iodef:Port>1337</iodef:Port>
          </iodef:Service>
        </iodef:System>
        <iodef:System category="source" spoofed="no">
          <iodef:Node>
            <iodef:Address category="ipv4-addr">
              192.0.2.106
            </iodef:Address>
          </iodef:Node>
          <iodef:Service ip-protocol="6">
            <iodef:Port>1337</iodef:Port>
          </iodef:Service>
        </iodef:System>
        <iodef:System category="source" spoofed="yes">
          <iodef:Node>
            <iodef:Address category="ipv4-net">
              198.51.100.0/24
            </iodef:Address>
          </iodef:Node>
          <iodef:Service ip-protocol="6">
            <iodef:Port>1337</iodef:Port>
          </iodef:Service>
        </iodef:System>
        <iodef:System category="source" spoofed="yes">
          <iodef:Node>
            <iodef:Address category="ipv6-addr">
              2001:db8:dead:beef::1
            </iodef:Address>
          </iodef:Node>
          <iodef:Service ip-protocol="6">
            <iodef:Port>1337</iodef:Port>
          </iodef:Service>
        </iodef:System>
        <iodef:System category="target">
          <iodef:Node>
            <iodef:Address category="ipv4-addr">
              203.0.113.1
            </iodef:Address>
          </iodef:Node>
          <iodef:Service ip-protocol="6">
            <iodef:Port>80</iodef:Port>
          </iodef:Service>
        </iodef:System>
        <iodef:System category="sensor">
          <iodef:Node>
          </iodef:Node>
          <iodef:Description>
            Information provided in Flow class instance is from
            Inspection of traffic from network tap
          </iodef:Description>
        </iodef:System>
      </iodef:Flow>
      <iodef:Expectation action="other"/>
    </iodef:EventData>
    <iodef:IndicatorData>
      <iodef:Indicator>
        <iodef:IndicatorID name="csirt.example.com" version="1">
          G83345941
        </iodef:IndicatorID>
        <iodef:Description>
          User-Agent string
        </iodef:Description>
        <iodef:Observable>
          <iodef:BulkObservable type="http-user-agent">
            <iodef:BulkObservableList>
              user-agent="Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12">
            </iodef:BulkObservableList>
          </iodef:BulkObservable>
        </iodef:Observable>
      </iodef:Indicator>
    </iodef:IndicatorData>
  </iodef:Incident>
</IODEF-Document>
              ]]></artwork></figure>
            </section>

            <section title="Spear-Phishing">
                <t>The Spear-Phishing test exchanged information that described a Spear-Phishing
                email including DNS records and addresses about the sender, malicious attached 
                file information and email data. The IODEF version used for the data 
                representation was based on <xref target="RFC7970"/>.</t>
                <figure><artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<IODEF-Document version="2.00"
                xmlns="urn:ietf:params:xml:ns:iodef-2.0"
                xmlns:iodef="urn:ietf:params:xml:ns:iodef-2.0"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
  <iodef:Incident purpose="reporting">
    <iodef:IncidentID name="csirt.example.com">
      189601
    </iodef:IncidentID>
    <iodef:DetectTime>2013-01-04T08:06:12+00:00</iodef:DetectTime>
    <iodef:StartTime>2013-01-04T08:01:34+00:00</iodef:StartTime>
    <iodef:EndTime>2013-01-04T08:31:27+00:00</iodef:EndTime>
    <iodef:ReportTime>2013-01-04T09:15:45+00:00</iodef:ReportTime>
    <iodef:GenerationTime>2013-01-04T09:15:45+00:00</iodef:GenerationTime>
    <iodef:Description>
      Zeus Spear Phishing E-mail with Malware Attachment
    </iodef:Description>
    <iodef:Assessment occurrence="potential">
      <iodef:SystemImpact severity="medium" type="takeover-system">
        <iodef:Description>
          Malware with Command and Control Server and System Changes
        </iodef:Description>
      </iodef:SystemImpact>
    </iodef:Assessment>
    <iodef:Contact role="creator" type="organization">
      <iodef:ContactName>example.com CSIRT</iodef:ContactName>
      <iodef:Email>
        <iodef:EmailTo>contact@csirt.example.com</iodef:EmailTo>
        </iodef:Email>
    </iodef:Contact>
    <iodef:EventData>
      <iodef:Description>
        Targeting Defense Contractors,
        specifically board members attending Dummy Con
      </iodef:Description>
      <iodef:Method>
        <iodef:Reference observable-id="ref-1234">
          <iodef:Description>Zeus</iodef:Description>
        </iodef:Reference>
      </iodef:Method>
      <iodef:Flow>
        <iodef:System category="source">
          <iodef:Node>
            <iodef:Address category="site-uri">
              http://www.zeusevil.example.com
            </iodef:Address>
            <iodef:Address category="ipv4-addr">
              192.0.2.166
            </iodef:Address>
            <iodef:Address category="asn">
              65535
            </iodef:Address>
            <iodef:Address category="ext-value"
                           ext-category="as-name">
              EXAMPLE-AS - University of Example"
            </iodef:Address>
            <iodef:Address category="ext-value"
                           ext-category="as-prefix">
              192.0.2.0/24
            </iodef:Address>
          </iodef:Node>
          <iodef:NodeRole category="malware-distribution"/>
        </iodef:System>
      </iodef:Flow>
      <iodef:Flow>
        <iodef:System category="source">
          <iodef:Node>
            <iodef:DomainData>
              <Name>mail1.evildave.example.com</Name>
            </iodef:DomainData>
            <iodef:Address category="ipv4-addr">
              198.51.100.6
            </iodef:Address>
            <iodef:Address category="asn">
              65534
            </iodef:Address>
            <iodef:Address category="ext-value"
                           ext-category="as-name">
              EXAMPLE-AS - University of Example
            </iodef:Address>
            <iodef:DomainData>
              <iodef:Name>evildave.example.com</iodef:Name>
              <iodef:DateDomainWasChecked>2013-01-04T09:10:24+00:00
              </iodef:DateDomainWasChecked>
              <!-- <iodef:RelatedDNS RecordType="MX"> -->
              <iodef:RelatedDNS dtype="string">
                evildave.example.com MX prefernce = 10, mail exchanger
                = mail1.evildave.example.com
              </iodef:RelatedDNS>
              <iodef:RelatedDNS dtype="string">
                mail1.evildave.example.com
                internet address = 198.51.100.6
              </iodef:RelatedDNS>
              <iodef:RelatedDNS dtype="string">
                zuesevil.example.com. IN TXT \"v=spf1 a mx -all\"
              </iodef:RelatedDNS>
            </iodef:DomainData>
          </iodef:Node>
          <iodef:NodeRole category="mail">
            <iodef:Description>
              Sending phishing mails
            </iodef:Description>
          </iodef:NodeRole>
          <iodef:Service>
            <iodef:EmailData>
              <iodef:EmailFrom>
                emaildave@evildave.example.com
              </iodef:EmailFrom>
              <iodef:EmailSubject>
                Join us at Dummy Con
              </iodef:EmailSubject>
              <iodef:EmailX-Mailer>
                StormRider 4.0
              </iodef:EmailX-Mailer>
            </iodef:EmailData>
          </iodef:Service>
        </iodef:System>
        <iodef:System category="target">
          <iodef:Node>
            <iodef:Address category="ipv4-addr">
              203.0.113.2
            </iodef:Address>
          </iodef:Node>
        </iodef:System>
      </iodef:Flow>
      <iodef:Expectation action="other"/>
      <iodef:Record>
        <iodef:RecordData>
          <iodef:FileData observable-id="fd-1234">
            <iodef:File>
              <iodef:FileName>
                Dummy Con Sign Up Sheet.txt
              </iodef:FileName>
              <iodef:FileSize>
                152
              </iodef:FileSize>
              <iodef:HashData scope="file-contents">
                <iodef:Hash>
                  <ds:DigestMethod
                          Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
                  <ds:DigestValue>
                    141accec23e7e5157de60853cb1e01bc38042d
                    08f9086040815300b7fe75c184
                  </ds:DigestValue>
                </iodef:Hash>
              </iodef:HashData>
            </iodef:File>
          </iodef:FileData>
        </iodef:RecordData>
        <iodef:RecordData>
          <iodef:CertificateData>
            <iodef:Certificate>
              <ds:X509Data>
                <ds:X509IssuerSerial>
                  <ds:X509IssuerName>FakeCA
                  </ds:X509IssuerName>
                  <ds:X509SerialNumber>
                    57482937101
                  </ds:X509SerialNumber>
                </ds:X509IssuerSerial>
                <ds:X509SubjectName>EvilDaveExample
                </ds:X509SubjectName>
              </ds:X509Data>
            </iodef:Certificate>
          </iodef:CertificateData>
        </iodef:RecordData>
      </iodef:Record>
    </iodef:EventData>
  </iodef:Incident>
</IODEF-Document>
              ]]></artwork></figure>
            </section>
            <section title="Malware">
                <t>In this test, malware information was exchanged using RID and IODEF. 
                The information included file hashes, registry setting changes and the 
                C&amp;C servers the malware uses. </t>
                <figure><artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<IODEF-Document version="2.00"
                xmlns="urn:ietf:params:xml:ns:iodef-2.0"
                xmlns:iodef="urn:ietf:params:xml:ns:iodef-2.0"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
  <iodef:Incident purpose="reporting">
    <iodef:IncidentID name="csirt.example.com">
      189234
    </iodef:IncidentID>
    <iodef:ReportTime>2013-03-07T16:14:56.757+05:30</iodef:ReportTime>
    <iodef:GenerationTime>2013-03-07T16:14:56.757+05:30</iodef:GenerationTime>
    <iodef:Description>
      Malware and related indicators identified
    </iodef:Description>
    <iodef:Assessment occurrence="potential">
      <iodef:SystemImpact severity="medium" type="breach-proprietary">
        <iodef:Description>
          Malware with Command and Control Server and System Changes
        </iodef:Description>
      </iodef:SystemImpact>
    </iodef:Assessment>
    <iodef:Contact role="creator" type="organization">
      <iodef:ContactName>example.com CSIRT</iodef:ContactName>
      <iodef:Email>
        <iodef:EmailTo>contact@csirt.example.com</iodef:EmailTo>
      </iodef:Email>
    </iodef:Contact>
    <iodef:EventData>
      <iodef:Method>
        <iodef:Reference>
          <iodef:URL>
            http://www.threatexpert.example.com/report.aspx?
            md5=e2710ceb088dacdcb03678db250742b7
          </iodef:URL>
          <iodef:Description>Zeus</iodef:Description>
        </iodef:Reference>
      </iodef:Method>
      <iodef:Flow>
        <iodef:System category="source">
          <iodef:Node>
            <iodef:Address category="ipv4-addr" observable-id="addr-c2-91011-001">
              203.0.113.200
            </iodef:Address>
            <iodef:Address category="site-uri" observable-id="addr-c2-91011-002">
              http://zeus.556677889900.example.com/log-bin/
              lunch_install.php?aff_id=1&amp;amp;
              lunch_id=1&amp;amp;maddr=&amp;amp;
              action=install
            </iodef:Address>
          </iodef:Node>
          <iodef:NodeRole category="c2-server"/>
        </iodef:System>
      </iodef:Flow>
      <iodef:Record>
        <iodef:RecordData>
          <iodef:FileData observable-id="file-91011-001">
            <iodef:File>
              <iodef:HashData scope="file-contents">
                <iodef:Hash>
                  <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha1"/>
                  <ds:DigestValue>
                    MHg2NzUxQTI1MzQ4M0E2N0Q4NkUwRjg0NzYwRjYxRjEwQkJDQzJFREZG
                  </ds:DigestValue>
                </iodef:Hash>
              </iodef:HashData>
            </iodef:File>
            <iodef:File>
              <iodef:HashData scope="file-contents">
                <iodef:Hash>
                  <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#md5"/>
                  <ds:DigestValue>
                    MHgyRTg4ODA5ODBENjI0NDdFOTc5MEFGQTg5NTEzRjBBNA==
                  </ds:DigestValue>
                </iodef:Hash>
              </iodef:HashData>
            </iodef:File>
          </iodef:FileData>
          <iodef:WindowsRegistryKeysModified observable-id="regkey-91011-001">
            <iodef:Key registryaction="add-value">
              <iodef:KeyName>
                HKLM\Software\Microsoft\Windows\
                CurrentVersion\Run\tamg
              </iodef:KeyName>
              <iodef:Value>
                ?\?\?%System%\wins\mc.exe\?\??
              </iodef:Value>
            </iodef:Key>
            <iodef:Key registryaction="modify-value">
              <iodef:KeyName>HKLM\Software\Microsoft\
                Windows\CurrentVersion\Run\dqo
              </iodef:KeyName>
              <iodef:Value>"\"\"%Windir%\Resources\
                Themes\Luna\km.exe\?\?"
              </iodef:Value>
            </iodef:Key>
          </iodef:WindowsRegistryKeysModified>
        </iodef:RecordData>
      </iodef:Record>
    </iodef:EventData>
    <iodef:EventData>
      <iodef:Method>
        <iodef:Reference>
          <iodef:URL>
            http://www.threatexpert.example.com/report.aspx?
            md5=c3c528c939f9b176c883ae0ce5df0001
          </iodef:URL>
          <iodef:Description>Cridex</iodef:Description>
        </iodef:Reference>
      </iodef:Method>
      <iodef:Flow>
        <iodef:System category="source">
          <iodef:Node>
            <iodef:Address category="ipv4-addr" observable-id="addr-c2-91011-003">
              203.0.113.100
            </iodef:Address>
          </iodef:Node>
          <iodef:NodeRole category="c2-server"/>
          <iodef:Service ip-protocol="6">
            <iodef:Port>8080</iodef:Port>
          </iodef:Service>
        </iodef:System>
      </iodef:Flow>
      <iodef:Record>
        <iodef:RecordData>
          <iodef:FileData observable-id="file-91011-002">
            <iodef:File>
              <iodef:HashData scope="file-contents">
                <iodef:Hash>
                  <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha1"/>
                  <ds:DigestValue>
                    MHg3MjYzRkUwRDNBMDk1RDU5QzhFMEM4OTVBOUM1ODVFMzQzRTcxNDFD
                  </ds:DigestValue>
                </iodef:Hash>
              </iodef:HashData>
            </iodef:File>
          </iodef:FileData>
          <iodef:FileData observable-id="file-91011-003">
            <iodef:File>
              <iodef:HashData scope="file-contents">
                <iodef:Hash>
                  <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#md5"/>
                  <ds:DigestValue>
                    MHg0M0NEODUwRkNEQURFNDMzMEE1QkVBNkYxNkVFOTcxQw==
                  </ds:DigestValue>
                </iodef:Hash>
              </iodef:HashData>
            </iodef:File>
          </iodef:FileData>
          <iodef:WindowsRegistryKeysModified observable-id="regkey-91011-002">
            <iodef:Key registryaction="add-value">
              <iodef:KeyName>
                HKLM\Software\Microsoft\Windows\
                CurrentVersion\Run\KB00121600.exe
              </iodef:KeyName>
              <iodef:Value>
                \?\?%AppData%\KB00121600.exe\?\?
              </iodef:Value>
            </iodef:Key>
          </iodef:WindowsRegistryKeysModified>
        </iodef:RecordData>
      </iodef:Record>
    </iodef:EventData>
    <iodef:IndicatorData>
      <iodef:Indicator>
        <iodef:IndicatorID name="csirt.example.com" version="1">
          ind-91011
        </iodef:IndicatorID>
        <iodef:Description>
          evil c2 server, file hash, and registry key
        </iodef:Description>
        <iodef:IndicatorExpression operator="or">
          <iodef:IndicatorExpression operator="or">
            <iodef:Observable>
              <iodef:Address category="site-uri" observable-id="addr-qrst">
                http://foo.example.com:12345/evil/cc.php
              </iodef:Address>
            </iodef:Observable>
            <iodef:Observable>
              <iodef:Address category="ipv4-addr" observable-id="addr-stuv">
                192.0.2.1
              </iodef:Address>
            </iodef:Observable>
            <iodef:Observable>
              <iodef:Address category="ipv4-addr" observable-id="addr-tuvw">
                198.51.100.1
              </iodef:Address>
            </iodef:Observable>
            <iodef:Observable>
              <iodef:Address category="ipv6-addr" observable-id="addr-uvwx">
                2001:db8:dead:beef::1
              </iodef:Address>
            </iodef:Observable>
            <iodef:ObservableReference uid-ref="addr-c2-91011-001"/>
            <iodef:ObservableReference uid-ref="addr-c2-91011-002"/>
            <iodef:ObservableReference uid-ref="addr-c2-91011-003"/>
          </iodef:IndicatorExpression>
          <iodef:IndicatorExpression operator="and">
            <iodef:Observable>
              <iodef:FileData observable-id="file-91011-000">
                <iodef:File>
                  <iodef:HashData scope="file-contents">
                    <iodef:Hash>
                      <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
                      <ds:DigestValue>
                        141accec23e7e5157de60853cb1e01bc38042d08f9086040815300b7fe75c184
                      </ds:DigestValue>
                    </iodef:Hash>
                  </iodef:HashData>
                </iodef:File>
              </iodef:FileData>
            </iodef:Observable>
            <iodef:Observable>
              <iodef:WindowsRegistryKeysModified observable-id="regkey-91011-000">
                <iodef:Key registryaction="add-key"
                           observable-id="regkey-vwxy">
                  <iodef:KeyName>
                    HKLM\SYSTEM\CurrentControlSet\
                    Services\.Net CLR
                  </iodef:KeyName>
                </iodef:Key>
                <iodef:Key registryaction="add-key"
                           observable-id="regkey-wxyz">
                  <iodef:KeyName>
                    HKLM\SYSTEM\CurrentControlSet\
                    Services\.Net CLR\Parameters
                  </iodef:KeyName>
                  <iodef:Value>
                    \"\"%AppData%\KB00121600.exe\"\"
                  </iodef:Value>
                </iodef:Key>
                <iodef:Key registryaction="add-value"
                           observable-id="regkey-xyza">
                  <iodef:KeyName>
                    HKLM\SYSTEM\CurrentControlSet\Services\
                    .Net CLR\Parameters\ServiceDll
                  </iodef:KeyName>
                  <iodef:Value>C:\bad.exe</iodef:Value>
                </iodef:Key>
                <iodef:Key registryaction="modify-value"
                           observable-id="regkey-zabc">
                  <iodef:KeyName>
                    HKLM\SYSTEM\CurrentControlSet\
                    Services\.Net CLR\Parameters\Bar
                  </iodef:KeyName>
                  <iodef:Value>Baz</iodef:Value>
                </iodef:Key>
              </iodef:WindowsRegistryKeysModified>
            </iodef:Observable>
          </iodef:IndicatorExpression>
          <iodef:IndicatorExpression operator="or">
            <iodef:IndicatorExpression operator="and">
              <iodef:ObservableReference uid-ref="file-91011-001"/>
              <iodef:ObservableReference uid-ref="regkey-91011-001"/>
            </iodef:IndicatorExpression>
            <iodef:IndicatorExpression operator="and">
              <iodef:IndicatorExpression operator="or">
                <iodef:ObservableReference uid-ref="file-91011-002"/>
                <iodef:ObservableReference uid-ref="file-91011-003"/>
              </iodef:IndicatorExpression>
              <iodef:ObservableReference uid-ref="regkey-91011-002"/>
            </iodef:IndicatorExpression>
          </iodef:IndicatorExpression>
        </iodef:IndicatorExpression>
      </iodef:Indicator>
    </iodef:IndicatorData>
  </iodef:Incident>
</IODEF-Document>
              ]]></artwork></figure>
            </section>
            <section title="IoT Malware">
                <t>The IoT Malware test exchanged information that described
                    a bad IP address of IoT malware and its scanned ports.
                    This example information is extracted from alert messages
                    of a Darknet monitoring system referred in
                    <xref target="RFC8134"/>.
                    The IODEF version used for the data
                    representation was based on <xref target="RFC7970"/>.</t>
                <figure><artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<IODEF-Document version="2.00"
                xmlns="urn:ietf:params:xml:ns:iodef-2.0"
                xmlns:iodef="urn:ietf:params:xml:ns:iodef-2.0"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <iodef:Incident purpose="reporting">
    <iodef:IncidentID name="csirt.example.com">
      189802
    </iodef:IncidentID>
    <iodef:ReportTime>2017-03-01T01:15:00+09:00</iodef:ReportTime>
    <iodef:GenerationTime>2017-03-01T01:15:00+09:00</iodef:GenerationTime>
    <iodef:Description>IoT Malware and related indicators</iodef:Description>
    <iodef:Assessment occurrence="potential">
      <iodef:SystemImpact severity="medium" type="takeover-system">
        <iodef:Description>IoT Malware is scanning other hosts
        </iodef:Description>
      </iodef:SystemImpact>
    </iodef:Assessment>
    <iodef:Contact role="creator" type="organization">
      <iodef:ContactName>example.com CSIRT
      </iodef:ContactName>
      <iodef:Email>
        <iodef:EmailTo>contact@csirt.example.com
        </iodef:EmailTo>
      </iodef:Email>
    </iodef:Contact>
    <iodef:EventData>
      <iodef:Discovery source="nidps">
        <iodef:Description>
          Detected by darknet monitoring
        </iodef:Description>
      </iodef:Discovery>
      <iodef:Flow>
        <iodef:System category="source">
          <iodef:Node>
            <iodef:Address category="ipv4-addr">
              192.0.2.210
            </iodef:Address>
          </iodef:Node>
          <iodef:NodeRole category="camera"/>
          <iodef:Service ip-protocol="6">
            <iodef:Port>23</iodef:Port>
          </iodef:Service>
          <iodef:OperatingSystem>
            <iodef:Description>
              Example Surveillance Camera OS 2.1.1
            </iodef:Description>
          </iodef:OperatingSystem>
        </iodef:System>
      </iodef:Flow>
      <iodef:EventData>
        <iodef:Flow>
          <iodef:System category="target">
            <iodef:Node>
              <iodef:Address category="ipv4-addr">
                198.51.100.1
              </iodef:Address>
            </iodef:Node>
            <iodef:NodeRole category="honeypot"/>
            <iodef:Service ip-protocol="6">
              <iodef:Port>23</iodef:Port>
            </iodef:Service>
          </iodef:System>
        </iodef:Flow>
      </iodef:EventData>
      <iodef:EventData>
        <iodef:Flow>
          <iodef:System category="target">
            <iodef:Node>
              <iodef:Address category="ipv4-addr">
                198.51.100.94
              </iodef:Address>
            </iodef:Node>
            <iodef:NodeRole category="honeypot"/>
            <iodef:Service ip-protocol="6">
              <iodef:Port>23</iodef:Port>
            </iodef:Service>
          </iodef:System>
        </iodef:Flow>
      </iodef:EventData>
      <iodef:EventData>
        <iodef:Flow>
          <iodef:System category="target">
            <iodef:Node>
              <iodef:Address category="ipv4-addr">
                198.51.100.237
              </iodef:Address>
            </iodef:Node>
            <iodef:NodeRole category="honeypot"/>
            <iodef:Service ip-protocol="6">
              <iodef:Port>2323</iodef:Port>
            </iodef:Service>
          </iodef:System>
        </iodef:Flow>
      </iodef:EventData>
    </iodef:EventData>
  </iodef:Incident>
</IODEF-Document>
                ]]></artwork></figure>
            </section>
        </section>
    </back>

</rfc>
