Формат обмена описанием инцидентов (IODEF)

Формат обмена описанием инцидентов (англ. Incident Object Description Exchange Format, IODEF) — это формат данных, используемый в области информационной безопасности для описания информации об инцидентах безопасности с целью их обмена между командами реагирования на инциденты информационной безопасности (CSIRT).[1]

Объяснение

Сообщения в IODEF организованы так, чтобы быть легко читаемыми для человека, а не только для машинной обработки. Детальное описание формата приведено в , где рассматривается реализация модели данных на базе XML и соответствующий DTD.

Одной из ключевых особенностей IODEF является его совместимость с форматом IDMEF (англ. Intrusion Detection Message Exchange Format), специально разработанным для систем обнаружения вторжений. В связи с этим IODEF сильно базируется на IDMEF и обеспечивает обратную совместимость с ним.[2]

Формат

undefined

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

Примечания

  1. Client Challenge (англ.). pypi.org. Дата обращения: 21 ноября 2025.
  2. Welcome to Mantis IODEF Importer’s documentation! — Mantis IODEF Importer 0.1.0 documentation (англ.). django-mantis-iodef-importer.readthedocs.io. Дата обращения: 21 ноября 2025.
  3. GitHub - gitpan/Iodef-Pb: Read-only release history for Iodef-Pb (англ.). GitHub. Дата обращения: 21 ноября 2025.

Ссылки

  • SECEF, проект, направленный на продвижение форматов IDMEF и IODEF
  • RGI v.2