Правила парсинга

Правила парсинга задаются для пользовательских потоков данных об угрозах (потоков данных об угрозах, определенных с помощью элемента Path). Эти параметры определяют, как должен выполняться парсинг каждого потока данных об угрозах в Feed Utility.

Правила парсинга определяются в элементе Parsing правил пользовательского потока данных об угрозах.

Ниже приведен пример правил парсинга для пользовательского потока данных об угрозах. Эти правила указывают, что входной поток данных об угрозах имеет формат JSON. Правило парсинга MD5 определяется для поля files/md5 во входном потоке данных об угрозах. Значения в этом поле проходят парсинг как хеши MD5.

<Feed>

...

<Parsing type="json">

<MD5 type="MD5">files/MD5</MD5>

</Parsing>

...

<Feed>

Элемент «Parsing»

Родительский элемент Parsing содержит все вложенные правила парсинга. Его атрибуты определяют формат входных данных.

У этого элемента есть следующие атрибуты:

В следующем примере демонстрируется использование элемента Parsing для входного потока данных об угрозах в формате XML. В этом случае правила парсинга применяются к элементам, вложенным в элемент Feeds > Example > Contents.

<Feed>

...

<Parsing type="xml" rootElement="Feeds/Example/Contents">

...

</Parsing>

...

<Feed>

Индивидуальные правила парсинга

Правила парсинга для отдельных полей входного потока данных об угрозах должны быть вложены в элемент Parsing. Когда Feed Utility обрабатывает входной поток данных об угрозах, поля выходного потока данных об угрозах создаются в соответствии с этими правилами.

Каждое правило имеет следующий формат:

<%OUTPUT_NAME% type="%VALUE_TYPE%">%INPUT_NAME%</%OUTPUT_NAME%>

Выше используются следующие элементы имени правила:

В следующем примере демонстрируется синтаксис правила парсинга для входного формата JSON:

<Feed>

...

<Parsing type="json">

<Field type="url">URL</Field>

<Field type="ip">IP</Field>

<Field type="context">GEO</Field>

<Field type="md5">files/md5</Field>

</Parsing>

...

<Feed>

В следующем примере демонстрируется синтаксис правила парсинга для входного формата CSV:

<Feed>

...

<Parsing type="csv" delimiter=";">

<url type="url">1</url>

<IP type="ip">2</IP>

<GEO type="context">3</GEO>

<MD5 type="md5">4</MD5>

</Parsing>

...

<Feed>

В следующем примере демонстрируется синтаксис правила парсинга для входного формата XML:

<Feed>

...

<Parsing type="xml" rootElement="Feeds/Example/Contents">

<URL type="url">url</URL>

<IP type="ip">ip</IP>

<GEO type="context">context</GEO>

<MD5 type="md5">md5_hash</MD5>

</Parsing>

...

<Feed>

Правила парсинга для потоков данных об угрозах типа «электронная почта»

Чтобы задать правила парсинга для стороннего потока данных об угрозах, укажите следующие значения для атрибута type:

Парсинг тела сообщения (для потоков данных об угрозах типа «электронная почта»)

Feed Utility анализирует тело сообщения электронной почты, загруженного с почтового сервера, если в атрибуте type элемента Parsing задано значение messageBody.

Для парсинга тела сообщения используются регулярные выражения, указанные в элементе Parsing.

Для парсинга тела сообщения можно задать одно или несколько правил с регулярными выражениями.

Каждое правило имеет следующий вид:

<%FIELD_NAME% type="%FIELD_TYPE%">%REG_EXP%</%FIELD_NAME%>,

где:

%FIELD_NAME% определяет имя поля в выходном потоке данных об угрозах. Например, если %FIELD_NAME% — это «MD5», поле с этим значением в выходном потоке данных об угрозах также будет называться MD5.

%FIELD_TYPE% — тип индикатора.

%REG_EXP% — регулярное выражение.

Каждое регулярное выражение применяется ко всему телу сообщения.

Поток данных об угрозах формируется в соответствии с содержанием загруженных сообщений электронной почты. Формирование потока данных об угрозах удовлетворяет следующим условиям:

Парсинг вложений сообщения (для потоков данных об угрозах типа «электронная почта»)

Feed Utility анализирует вложения сообщения электронной почты, загруженного с почтового сервера, если в атрибуте type элемента Parsing задано значение messageAttach.

Можно установить одно или несколько правил для типов вложенных файлов.

Каждое правило имеет следующий вид:

<Attach type="%ATTACH_TYPE%"></Attach>,

где:

%ATTACH_TYPE% — тип вложения.

%ATTACH_TYPE% может иметь следующие значения:

Элемент Attach имеет хотя бы одно значение.

Можно задать одно или несколько правил с регулярными выражениями.

Каждое правило имеет следующий вид:

<%FIELD_NAME% type="%FIELD_TYPE%">%REG_EXP%</%FIELD_NAME%>,

где:

%FIELD_NAME% определяет имя поля в выходном потоке данных об угрозах. Например, если %FIELD_NAME% — это «MD5», поле с этим значением в выходном потоке данных об угрозах также будет называться MD5.

%REG_EXP% — регулярное выражение.

%FIELD_TYPE% — тип индикатора. Для элемента %FIELD_TYPE% в атрибуте type необходимо указать одно из следующих значений:

В следующем примере демонстрируется правило парсинга вложения сообщения:

<Attach type="pdf">

<hash1 type="md5">([\da-fA-F]{32})</hash1>

<hash2 type="sha1">([\da-fA-F]{40})</hash2>

</Attach>

Утилита Feed выполняет парсинг файлов со следующими расширениями:

Значение атрибута type элемента Parsing

Расширения файлов

csv

csv и txt

json

json

xml

xml

stix1

xml

stix2

json

pdf

pdf

Если правила парсинга заданы одновременно для stix1 и xml (или stix2 и json), Feed Utility выполняет следующие действия:

  1. Пытается подвергнуть прикрепленный файл парсингу как stix (с расширением xml/json).
  2. Если при парсинге не возникло ошибок и файл является корректным потоком данных об угрозах stix, парсинг этого файла в соответствии с правилами парсинга xml/json-вложений, указанными в настройках потока данных об угрозах, не выполняется.
  3. Если во время парсинга произошла ошибка (файл не является корректным потоком данных об угрозах stix), этот файл подвергается парсингу в соответствии с правилами парсинга xml/json-вложений, указанными в настройках потока данных об угрозах.

Если в сообщении электронной почты содержится несколько вложений, информация из каждого вложения попадает в один итоговый поток данных об угрозах.

Поток данных об угрозах формируется в соответствии с содержанием загруженных сообщений электронной почты. Формирование потока данных об угрозах удовлетворяет следующим условиям:

Исключенный элемент для потоков данных об угрозах типов «PDF» и «электронная почта»

Если значение pdf, messageBody или messageAttach указано в атрибуте type элемента Parsing, элемент Feed может содержать раздел Excluded и один или несколько вложенных элементов <Item/> с правилами исключения индикаторов для итогового потока данных об угрозах.

Раздел Excluded имеет следующий вид:

<Excluded>

<Item>{RegExp}</Item>

...

</Excluded>

Где {RegExp} — регулярное выражение.

Элементы Excluded и Item не являются обязательными.

В следующем примере демонстрируются правила исключения:

<Excluded>

<Item>(\w{3}\s+\d+\s+[\d\:]+)\s</Item>

<Item>(https:\/\/badurl\.com)</Item>

</Excluded>

В начало