Правила потоков данных об угрозах

11 апреля 2024

ID 171651

Способ обработки каждого конкретного потока данных об угрозах в Feed Utility, определяется правилами, заданными для потоков данных об угрозах в элементах Feed.

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

Пример правил потока данных об угрозах

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

<Settings>

...

<Feeds>

<Feed enabled="true">

<Name>Botnet_CnC_URL_Data_Feed</Name>

<FeedID>65</FeedID>

<Filters>

<Field name="geo" value="RU"/>

</Filters>

<UrlMatcherField toRegex="false">mask</UrlMatcherField>

<RequiredFields>mask;geo;first_seen;last_seen</RequiredFields>

<RecordsCount perFile="100" total="1000" />

<FeedFields/>

</Feed>

<Feed enabled="false">

<Name>CustomFeed</Name>

<Path>./custom_example/example_feed.json</Path>

<Parsing type="json">

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

</Parsing>

<FeedFields/>

</Feed>

...

</Feeds>

...

</Settings>

Feed

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

Имя

Этот элемент задает имя загруженного файла потока данных об угрозах.

После того, как Feed Utility распаковывает загруженные потоки данных об угрозах, выполняется поиск файла с именем, начинающимся с указанной строки. Если указанная строка присутствует в начале имен нескольких файлов, Feed Utility выводит сообщение об ошибке и прекращает обработку потоков данных об угрозах. В этом случае необходимо вручную разрешить этот конфликт, например, путем удаления лишних файлов из каталога, в который Feed Utility их распаковывает. Этот каталог задается параметром WorkDir.

В значении этого параметра регистр не учитывается.

Значение этого параметра должно быть уникальным. У каких-либо двух элементов Feed не должно быть одинакового значения этого параметра.

FeedID

Этот элемент применяется только к потокам данных об угрозах «Лаборатории Касперского».

Этот элемент задает идентификатор потока данных об угрозах. Feed Utility использует этот параметр для загрузки потоков данных об угрозах с серверов обновлений.

Атрибут enabled указывает, должна ли Feed Utility обрабатывать этот поток данных об угрозах:

  • Если этот атрибут имеет значение true, Feed Utility обрабатывает соответствующий поток данных об угрозах.
  • Если этот атрибут имеет значение false, Feed Utility пропускает соответствующий поток данных об угрозах.

Path

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

Поддерживаются следующие типы значений:

  • Путь и имя файла на том сервере, где находится бинарный файл Feed Utility.
  • Путь и имя файла FTP или FTPS.
  • URL HTTP или HTTPS.
  • Сетевой путь (поддерживается только в операционной системе Windows).

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

  • cert

    Задает путь к сертификату, который будет использоваться для загрузки этого потока данных об угрозах по HTTPS или FTPS. Этот атрибут не является обязательным. Если атрибут не указан, Feed Utility не использует сертификат.

Тип аутентификации указывается в параметре Settings > Feeds > Feed конфигурационного файла Feed Utility.

Для потока данных об угрозах типа «электронная почта» необходимо выбрать протокол соединения путем указания POP3 или IMAP в качестве значения атрибута «type».

Если выбран протокол соединения, укажите в элементе Path «IPv4/Host name» и порт почтового сервера.

Authorization

Базовые параметры аутентификации для пользовательских или сторонних потоков данных об угрозах.

У этого параметра есть два вложенных элемента:

  • User

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

    Для установки этого параметра используется параметр командной строки --set-basic-auth. Для потоков данных об угрозах STIX, загружаемых с сервера TAXII, используется параметр --set-taxii.

    Этот элемент не может быть пустым.

  • Password

    Зашифрованный пароль для базовой аутентификации на сервере, с которого загружаются потоки данных об угрозах.

    Для установки этого параметра используется параметр командной строки --set-basic-auth. Для потоков данных об угрозах STIX, загружаемых с сервера TAXII, используется параметр --set-taxii.

Если этот тип аутентификации не требуется, не указывайте этот параметр.

TAXII

Параметр TAXII указывает расположение потока данных об угрозах STIX. Этот элемент должен содержать адрес сервиса опроса (Poll) сервера TAXII.

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

  • collection_name

    Название коллекции данных для этого потока данных об угрозах STIX.

  • version

    Версия сервера TAXII. Возможные значения этого атрибута: 1, 2.0 и 2.1. Для потока данных об угрозах STIX 2.0 необходимо указать сервер TAXII 2.0. Для потока данных об угрозах STIX 2.1 необходимо указать сервер TAXII 2.1.

    По умолчанию значение этого атрибута равно 1.

В следующем примере демонстрируется указание местоположения потока данных об угрозах STIX:

<TAXII collection_name="example-collection" version="2.1">http://192.0.2.10:9000</TAXII>

Настройка авторизации на сервере TAXII

Учетные данные для авторизации на сервере TAXII.

У этого параметра есть два вложенных элемента:

  • User

    Имя пользователя для авторизации на сервере TAXII.

    Этот параметр хранится в зашифрованном виде. Для установки этого параметра используется параметр командной строки --set-taxii. Если вместо использования этого параметра командной строки ввести имя пользователя в незашифрованном виде, соединение с сервером TAXII не будет установлено.

  • Password

    Пароль для авторизации на сервере TAXII.

    Этот параметр хранится в зашифрованном виде. Для установки этого параметра используется параметр командной строки --set-taxii. Если вместо использования этого параметра командной строки ввести пароль в незашифрованном виде, соединение с сервером TAXII не будет установлено.

Следующий пример демонстрирует использование этого параметра:

<Feed>

<Name>TAXII</Name>

<TAXII collection_name="example-collection" version="2.1">http://192.0.2.10:9000</TAXII>

<Authorization>

<User>zQYq33rAY7dgImLtk8W0jQ==</User>

<Password>OUYWpkPDoH+vv/IFfCrshw==</Password>

</Authorization>

</Feed>

Filters

Этот элемент задает правила фильтрации для потока данных об угрозах. Каждое правило фильтрации определяется в отдельном элементе Field.

Элемент Filters не является обязательным. Если элемент Filters не содержит вложенных элементов Field, Feed Utility ведет себя так, как будто элемент Filters пропущен. Если элемент Filters отсутствует, фильтрация не производится.

UrlMatcherField

Этот элемент определяет способ обработка в Feed Utility потоков данных об угрозах с масками URL.

Если Feed Utility используется как часть CyberTrace вместе с Kaspersky CyberTrace Service, потоки данных об угрозах, содержащие маски URL, должны быть преобразованы в двоичный формат.

Если Feed Utility используется отдельно от Kaspersky CyberTrace Service, нет необходимости компилировать маски, поэтому в таком случае элемент UrlMatcherField может отсутствовать в конфигурационном файле Feed Utility.

Этот элемент имеет значение и необязательный атрибут toRegex:

  • Значение элемента определяет имя поля в потоке данных об угрозах, содержащее маску URL.
  • Необязательный атрибут toRegex этого элемента определяет, как утилита должна обрабатывать поток данных об угрозах.
    • Если атрибут toRegex имеет значение 0, false или не указан, Feed Utility компилирует поток данных об угрозах и создает двоичные файлы, которые могут использоваться в Kaspersky CyberTrace Service.
    • Если атрибут toRegex имеет значение 1 или true, приложение Feed Utility обрабатывает маски URL в потоках данных об угрозах, преобразовывая их в регулярные выражения.

      Для каждой маски URL в Feed Utility создается регулярное выражение, сопоставляющее все URL, охватываемые данной маской URL. Например, маске URL botnet.example.com соответствует регулярное выражение ((\/{2}|^)botnet\.example\.com(\/.*|$)). Как и маска URL, это регулярное выражение сопоставляет все URL домена botnet.example.com.

      Атрибут toRegex может иметь значение 1 только для тех потоков данных об угрозах, у которых есть поле type. Кроме того, если среди правил потока данных об угрозах присутствует элемент RequiredFields, он должен содержать поле type.

В случае формата вывода json можно принять следующие меры:

  • Компиляция потоков данных об угрозах с масками URL в двоичный файл, который может использовать Kaspersky CyberTrace Service.

    Если используется Kaspersky CyberTrace Service, элемент UrlMatcherField является обязательным для потоков данных об угрозах, содержащих маски URL: «Malicious URL Feed», «Phishing URL Feed», «Botnet C&C URL Feed» и «IoT URL Feed».

    <UrlMatcherField>%field_name%</UrlMatcherField>

  • Преобразование масок URL в регулярные выражения.

    <UrlMatcherField toRegex=1>%field_name%</UrlMatcherField>

  • Отказ от конвертации масок URL.

    Не указывайте элемент UrlMatcherField.

В случае выходных форматов csv и txt можно принять следующие меры:

  • Преобразование масок URL в регулярные выражения.

    <UrlMatcherField toRegex=1>%field_name%</UrlMatcherField>

  • Отказ от конвертации масок URL.

    Не указывайте элемент UrlMatcherField.

В случае выходных форматов openioc и stix этот элемент не следует указывать. Этот элемент невозможно использовать с этими выходными форматами.

RequiredFields

Этот элемент определяет поля, которые включаются в обработанный поток данных об угрозах. Этот элемент является обязательным для выходных форматов txt и csv. Если элемент RequiredFields не указан, в обработанный поток данных об угрозах попадают все поля записи.

Имена полей разделяются точкой с запятой («;»). Косая черта («/») в имени поля указывает на вложенное поле (в смысле формата JSON).

Этот элемент определяет поля в итоговом потоке данных об угрозах; это работает не как правило фильтрации. Например, если для потока данных об угрозах определено правило <RequiredFields>id;mask</RequiredFields>, в записях в обрабатываемом потоке данных об угрозах присутствуют только поля id и mask. Также будут включены записи, в которых есть хотя бы одно из указанных полей (id или mask). Записи, в которых нет хотя бы одного из указанных полей, будут исключены, поскольку отсутствие указанных полей приводит к добавлению пустой записи в обрабатываемый поток данных об угрозах. Если требуется отфильтровать поток данных об угрозах так, чтобы в итоговый поток данных об угрозах включались только записи, содержащие все указанные поля, необходимо использовать правила фильтрации. Сведения об использовании элемента RequiredFields одновременно с критериями фильтрации приведена в подразделе «Исключение записей с пропущенными полями» в разделе Правила фильтрации.

Поля записи записываются в форматы csv и txt в том порядке, в котором они указаны в элементе RequiredFields. Поля записи записываются в формате json в том порядке, в котором они встречаются в исходном потоке данных об угрозах. В случае форматов openioc и stix порядок записей не определен; записи выводятся в порядке обработки.

FeedFields

В этом элементе перечислены все поля, присутствующие в потоке данных об угрозах.

Не изменяйте этот параметр. Feed Utility автоматически записывает в него значения полей.

RecordsCount

Этот элемент задает максимальное количество записей, которые будут включены в обрабатываемый поток данных об угрозах.

У этого элемента есть два атрибута.

  • Атрибут total этого элемента определяет общее количество записей первого уровня, которые должны быть включены в обрабатываемые файлы. Feed Utility включает только те записи, которые соответствуют правилам фильтрации. Если это значение равно 0, это количество не ограничено и включаются все записи.

    Обратите внимание, что атрибут total относится к записям первого уровня, поэтому обработанный поток данных об угрозах может содержать больше вложенных записей, чем предусматривает значение total. Например, пусть исходный поток данных об угрозах содержит следующие данные:

    [

    {

    "time": "23.02.1992 15:43",

    "urls":[

    {

    "url" : "http://url.biz/sample1"

    },

    {

    "url" : "http://url.biz/sample2"

    }

    ]

    },

    {

    "time": "24.02.1992 15:43",

    "urls":[

    {

    "url" : "http://url.biz/sample3"

    },

    {

    "url" : "http://url.biz/sample4"

    }

    ]

    }

    ]

    Для этого потока данных об угрозах можно задать следующие настройки в конфигурационном файле Feed Utility:

    <OutputFormat>csv</OutputFormat>

    <RequiredFields>urls/url</RequiredFields>

    <RecordsCount total="1" />

    Обработанный поток данных об угрозах будет содержать две записи, поскольку они вложены в одну запись первого уровня.

    http://url.biz/sample1

    http://url.biz/sample2

  • Атрибут perFile этого элемента определяет максимальное количество записей, которые должны быть включены в один файл. Если общее количество записей в одном обработанном файле потока данных об угрозах превышает это значение, Feed Utility создает дополнительный файл потока данных об угрозах.

    Например, если атрибут total имеет значение 1000, а perFile имеет значение 300, при этом Feed Utility обнаруживает 650 записей, соответствующих правилам фильтрации, то создаются три файла (два файла по 300 записей и один файл с 50 записями).

    Этот атрибут нельзя использовать в следующих случаях:

    • Атрибут perFile нельзя использовать для потоков данных об угрозах с масками URL, которые скомпилированы в двоичный формат.
    • Атрибут perFile нельзя использовать с пользовательскими потоками данных об угрозах, для которых определены правила парсинга, в которых для атрибута type заданы типы url или domain. Такие потоки данных об угрозах также компилируются в двоичный формат с помощью Feed Utility. Чтобы использовать атрибут perFile для полей этих типов, необходимо изменить тип поля на context.

Parsing

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

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

Feed Utility может загружать сторонние потоки данных об угрозах типа «электронная почта» с почтового сервера.

Настройте подключение к почтовому серверу в следующих элементах конфигурационного файла kl_feed_util:

  • MailboxConnection

    Этот элемент является обязательным, если в элементе Path включены протоколы POP3/IMAP.

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

    • use_tls

      Значения true и false для атрибута use_tls включают или выключают использование TLS/SSL для взаимодействия с почтовым сервером. По умолчанию задано значение true.

    • receive_period

      Максимальное значение этого атрибута равно 360, предустановлено значение 7, минимально возможное значение равно 1.

      Feed Utility обрабатывает только сообщения электронной почты, полученные после последнего обновления потока данных об угрозах типа «электронная почта».

      Если поток данных об угрозах электронной почты ранее не обновлялся, Feed Utility обрабатывает все сообщения электронной почты за количество дней, указанное в атрибуте receive_period.

  • MailboxConnection/User

    Значение этого элемента закодировано. Для подключения к почтовому серверу Feed Utility кодирует имя пользователя с помощью параметра --set-mailbox.

  • MailboxConnection/Password

    Значение этого элемента закодировано. Для подключения к почтовому серверу Feed Utility кодирует пароль с помощью параметра --set-mailbox.

    Для проверки соединения с почтовым сервером используется атрибут --check-mailbox-connection.

  • MailboxConnection/Filters

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

  • Parsing

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

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

<Feed enabled="true">

<Name>Email_OSINT</Name>

<Path type="pop3">myemailserv.com:3125</Path>

<MailboxConnection use_tls="false" receive_period="7">

<User>==asd</User>

<Password>==ewq</Password>

<Filters>

<Filter field="from" condition="not_match">mywife@ya.ru</Filter>

<Filter field="subject" condition="contains">Best IoCs ever</Filter>

</Filters>

</MailboxConnection>

<Parsing type="messageBody">

<ip type="ip">(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})</ip>

</Parsing>

<Parsing type="messageAttach">

<Attach type="csv">

<ip type="ip">1</ip>

</Attach>

<Attach type="pdf">

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

</Attach>

</Parsing>

<Excluded>

<Item>VALUE1</Item>

<Item>VALUE2</Item>

</Excluded>

</Feed>

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!