Правила потоков данных об угрозах
22 августа 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 используется как часть Kaspersky 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> |