Incident Object Description Exchange Format
Utilisé dans le cadre de la sécurité informatique, IODEF (Incident Object Description Exchange Format / Format d'Échange de Messages de Description d'Incidents) est un format de données servant à décrire les informations relatives à un incident de sécurité dans le but d'être échangées entre les équipes de réponses aux incidents de sécurité des ordinateurs (Computer Security Incident Response Teams – CSIRTs).
Explication
Les messages IODEF sont donc organisés de façon à être facilement lisibles par des humains, et non des machines. Les détails du format sont décrits dans la RFC 5070[1]. Cette RFC présente une implémentation du modèle de données en XML ainsi que la DTD associée.
Une des principales caractéristiques de IODEF est sa compatibilité avec IDMEF (Intrusion Detection Message Exchange Format) développé pour les systèmes de détection d’intrusion. Pour cette raison, IODEF est lourdement basé sur IDMEF et fournit une compatibilité ascendante avec celui-ci.
Format
IODEF est un format orienté objet structuré, composé de 47 classes pour la première version. Les formats IODEF et IDMEF ayant beaucoup en commun, la structure des champs est similaire à celle d'IDMEF.
Ce format est extensible: En plus de l'habituelle classe AditionnalData, qui permet d'ajouter n'importe quelle information semblant pertinente au message IODEF, La plupart des énumérations sont fournis avec un champ "ext". Ce champ est utilisé lorsque aucun choix proposé dans l'énumération ne convient.
Voici une liste des champs les plus importants :
- IncidentID : Une. Un numéro d’identification d’incident assigné à cet incident par le CSIRT qui génère le document IODEF.
- AlternativeID : Zéro ou une. Les numéros d’identification d’incidents utilisés par d’autres CSIRTs pour se référer à l’incident décrit dans le document.
- RelatedActivity : Zéro ou une. Les numéros d’identification des incidents reliés à celui du document en question.
- DetectTime : Zéro ou une. L’heure à laquelle l’incident a été détecté pour la 1re fois.
- StartTime : Zéro ou une. L’heure à laquelle l’incident a commencé.
- EndTime : Zéro ou une. L’heure à laquelle l’incident s’est terminé.
- ReportTime : Une. L’heure à laquelle l’incident a été signalé.
- Description : Zéro ou plus. ML_STRING. Une description textuelle non-formatée de l’incident.
- Assessment : Une ou plus. Une caractérisation de l’impact de l’incident.
- Method : Zéro ou plus. Les techniques utilisées par l’intrus durant l’incident.
- Contact : Une ou plus. Les informations de contact pour les parties impliquées dans l’incident.
- EventData : Zéro ou plus. Description des évènements comprenant l’incident.
- History : Zéro ou une. Un log, des évènements ou des actions significatives qui ont eu lieu durant la gestion de l’incident.
- AdditionalData : Zéro ou plus. Mécanismes par lequel étendre le modèle de données.
Exemple
Voici un exemple d'une partie d'un document IODEF :
<!--
====================================================================
== IODEF-Document class ==
====================================================================
-->
<xs:element name="IODEF-Document">
<xs:complexType>
<xs:sequence>
<xs:element ref="iodef:Incident"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="version"
type="xs:string" fixed="1.00"/>
<xs:attribute name="lang"
type="xs:language" use="required"/>
<xs:attribute name="formatid"
type="xs:string"/>
</xs:complexType>
</xs:element>
<!--
====================================================================
=== Incident class ===
====================================================================
-->
<xs:element name="Incident">
<xs:complexType>
<xs:sequence>
<xs:element ref="iodef:IncidentID"/>
<xs:element ref="iodef:AlternativeID"
minOccurs="0"/>
<xs:element ref="iodef:RelatedActivity"
minOccurs="0"/>
<xs:element ref="iodef:DetectTime"
minOccurs="0"/>
<xs:element ref="iodef:StartTime"
minOccurs="0"/>
<xs:element ref="iodef:EndTime"
minOccurs="0"/>
<xs:element ref="iodef:ReportTime"/>
<xs:element ref="iodef:Description"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="iodef:Assessment"
maxOccurs="unbounded"/>
<xs:element ref="iodef:Method"
minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="iodef:Contact"
maxOccurs="unbounded"/>
<xs:element ref="iodef:EventData"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="iodef:History"
minOccurs="0"/>
<xs:element ref="iodef:AdditionalData"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="purpose" use="required">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="traceback"/>
<xs:enumeration value="mitigation"/>
<xs:enumeration value="reporting"/>
<xs:enumeration value="other"/>
<xs:enumeration value="ext-value"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ext-purpose"
type="xs:string" use="optional"/>
<xs:attribute name="lang"
type="xs:language"/>
<xs:attribute name="restriction"
type="iodef:restriction-type" default="private"/>
</xs:complexType>
</xs:element>
Logiciels prenant en charge le protocole IODEF
- Prelude SIEM
- IODEFLIB : Bibliothèque Python pour créer, parser et éditer les rapports d'incidents informatiques utilisant le format IODEF XML (RFC 5070[1])
- RT-IODEF : Module Perl pour traduire les tickets RT en messages IODEF et aussi mapper IODEF dans les champs personnalisés de RT en se basant sur leurs tags de description.
- Mantis IODEF Importer : Un importateur IODEF (v1.0) pour le framework Mantis Cyber Threat Intelligence Mgmt.
- ArcSight-IODEF-Perl : A perl module to convert arcsight xml to a standardized iodef message
- IODEF Implementations
- IODEF DBI
- IODEF Pb : Cette bibliothèque mappe le format IODEF (RFC 5070[1]) dans la bibliothèque de protocoles de sérialisation de buffers Google.
- XML :: IODEF – Un module Perl pour facilement créer/parser les documents IODEF
- Formateur de sortie Stix pour : Iodef::Pb::Simple
- Bibliothèque pour parser IODEF en PHP
Liens externes
- RFC 5070[1] - The Incident Object Description Exchange Format (IODEF)
- RFC 6685[2] – Expert Review for Incident Object Description Exchange Format (IODEF) Extensions in IANA XML Registry
- RFC 7203[3] – An Incident Object Description Exchange Format (IODEF) Extension for Structured Cybersecurity Information
- SECEF, Projet visant Ă promouvoir les formats IDMEF et IODEF
- RGI v.2