Формат обмена описанием инцидентов (IODEF)
Формат обмена описанием инцидентов (англ. Incident Object Description Exchange Format, IODEF) — это формат данных, используемый в области информационной безопасности для описания информации об инцидентах безопасности с целью их обмена между командами реагирования на инциденты информационной безопасности (CSIRT).[1]
Объяснение
Сообщения в IODEF организованы так, чтобы быть легко читаемыми для человека, а не только для машинной обработки. Детальное описание формата приведено в , где рассматривается реализация модели данных на базе XML и соответствующий DTD.
Одной из ключевых особенностей IODEF является его совместимость с форматом IDMEF (англ. Intrusion Detection Message Exchange Format), специально разработанным для систем обнаружения вторжений. В связи с этим IODEF сильно базируется на IDMEF и обеспечивает обратную совместимость с ним.[2]
Формат
IODEF — это объектно-ориентированный структурированный формат, включающий 47 классов в первой версии. Поскольку форматы IODEF и IDMEF во многом схожи, структура полей в них аналогична.
Формат расширяемый: помимо стандартного класса AdditionalData, который позволяет включать любую дополнительную информацию в сообщения IODEF, большинство перечислений имеет специальное поле «ext», используемое, когда ни одно из стандартных значений не подходит.
Ниже приведён перечень наиболее важных полей:
- IncidentID — одно. Идентификационный номер инцидента, присваиваемый CSIRT, создавшей данный документ IODEF.
- AlternativeID — ноль или одно. Идентификаторы инцидента, используемые другими CSIRT для ссылки на описываемый инцидент.
- RelatedActivity — ноль или одно. Идентификаторы инцидентов, связанных с основным.
- DetectTime — ноль или одно. Время, когда инцидент был впервые обнаружен.
- StartTime — ноль или одно. Время начала инцидента.
- EndTime — ноль или одно. Время окончания инцидента.
- ReportTime — одно. Время, когда инцидент был зафиксирован.
- Description — ноль или более. Краткое неформатированное текстовое описание инцидента.
- Assessment — одно или более. Характеристика воздействия инцидента.
- Method — ноль или более. Техники и методы, использованные злоумышленником.
- Contact — одно или более. Контактная информация участников инцидента.
- EventData — ноль или более. Описание событий, составляющих инцидент.
- History — ноль или одно. Журнал событий и значимых действий, предпринятых при реагировании на инцидент.
- AdditionalData — ноль или более. Механизмы расширения модели данных.[3]
Пример
Ниже приведён пример фрагмента документа IODEF на языке XML:
<!--
====================================================================
== 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>
Программное обеспечение с поддержкой протокола IODEF
- Prelude SIEM
- IODEFLIB: библиотека для Python для создания, парсинга и редактирования отчётов о компьютерных инцидентах в формате IODEF XML ()
- RT-IODEF: модуль на Perl для преобразования тикетов RT в сообщения IODEF и отображения IODEF в пользовательских полях RT с использованием их тегов описания.
- Mantis IODEF Importer: импортёр IODEF (v1.0) для платформы Mantis Cyber Threat Intelligence Mgmt.
- ArcSight-IODEF-Perl: Perl-модуль для преобразования Arcsight XML в стандартизированные сообщения IODEF
- IODEF Implementations
- IODEF DBI
- IODEF Pb: библиотека, которая сопоставляет формат IODEF () с библиотекой протоколов сериализации Google Protocol Buffers.
- XML :: IODEF: модуль Perl для простого создания и парсинга документов IODEF.
- Шаблон вывода Stix для Iodef::Pb::Simple
- Библиотека для парсинга IODEF на PHP