Перейти к основному содержимому
Версия: 4.6.X

enrich

Процессор enrich

Процессор enrich дополняет события данными из внешних источников: динамических списков, GeoIP-баз, LDAP-каталогов, базы активов KOMRAD и потоков данных об угрозах (IoC). Процессор не создаёт новых событий — он добавляет поля к существующему событию.

Общая конфигурация

processors:
- module: enrich
type: "<тип обогатителя>"
timeout: 2s
cache-ttl: 5m
disable-cache: false
enricher-config:
# параметры конкретного типа
ПараметрТипПо умолчаниюОписание
typestringТип обогатителя: dynamic_list, geo_ip, ldap, asset, ioc
timeoutdurationТаймаут запроса к внешнему источнику
cache-ttldurationВремя жизни записей в кеше результатов обогащения
disable-cacheboolfalseОтключить кеширование результатов
enricher-configobjectКонфигурация конкретного типа обогатителя (см. ниже)

Тип dynamic_list

Обогащение из динамических списков KOMRAD.

processors:
- module: enrich
type: dynamic_list
cache-ttl: 10m
enricher-config:
list-name: "blocked_ips"
mapping:
ECS.Source.IP: "MatchResult"
ПараметрТипОписание
list-namestringИмя динамического списка в KOMRAD
mappingmap[string]stringМаппинг данных динамического списка на поля события. Ключи должны соответствовать названиям ключа и полей в схеме динамического списка, значения — целевые поля события для записи результата

Тип geo_ip

Определение географического расположения по IP-адресу с помощью базы MaxMind GeoIP.

processors:
- module: enrich
type: geo_ip
cache-ttl: 30m
enricher-config:
db-file-path: "/opt/komrad/geoip/GeoLite2-City.mmdb"
lookup-fields:
- "ECS.Source.IP"
- "ECS.Destination.IP"
ПараметрТипОписание
db-file-pathstringПуть к файлу базы данных MaxMind (.mmdb)
lookup-fieldsstring[]Поля события, содержащие IP-адреса для GeoIP-разрешения

Тип ldap

Обогащение данными из LDAP-каталога (Active Directory, FreeIPA и др.).

processors:
- module: enrich
type: ldap
timeout: 5s
cache-ttl: 15m
enricher-config:
url: "ldaps://dc01.example.com:636"
tls:
enabled: true
skip-verify: false
username: "cn=reader,ou=service,dc=example,dc=com"
password-secret: "ldap-bind-password"
base-dn: "ou=Users,dc=example,dc=com"
filter: "(sAMAccountName=${ECS.User.Name})"
attributes-mapping:
displayName: "ECS.User.FullName"
department: "ECS.User.Group.Name"
mail: "ECS.User.Email"
enriching-strategy: first
ПараметрТипПо умолчаниюОписание
urlstringURL LDAP-сервера (ldap:// или ldaps://)
tlsobjectКонфигурация TLS-соединения
usernamestringDN для привязки (bind) к LDAP
passwordstringПароль (открытым текстом — не рекомендуется)
password-secretstringИмя секрета для пароля
base-dnstringБазовый DN для поиска
scopestringwhole_subtreeОбласть поиска LDAP (см. ниже)
deref-aliasesstringnever_deref_aliasesСтратегия разыменования псевдонимов (см. ниже)
size-limitintМаксимальное число результатов
time-limitintТаймаут поиска на стороне LDAP-сервера (секунды)
filterstringLDAP-фильтр поиска. Поддерживает шаблонизацию — значения полей события подставляются через переменные вида $ИмяПоля или ${ИмяПоля}
attributes-mappingmap[string]stringМаппинг LDAP-атрибутов на поля события. Ключ — имя LDAP-атрибута, значение — целевое поле события
enriching-strategystringfirstСтратегия обогащения при нескольких результатах: first (первый результат) или append (все результаты)

Значения scope:

ЗначениеОписание
base_objectПоиск только в записи, связанной с базовым DN
single_levelПоиск только в непосредственных потомках базовой записи (не в самой записи и не в потомках потомков)
whole_subtreeПоиск в базовой записи и всех записях-потомках (по умолчанию)
subordinate_subtreeПоиск во всех записях-потомках, но не в базовой записи

Значения deref-aliases:

ЗначениеОписание
never_deref_aliasesПсевдонимы не разыменовываются (по умолчанию)
deref_in_searchБазовая запись не разыменовывается, но все прочие псевдонимы, встреченные во время поиска, разыменовываются
deref_finding_base_objБазовая запись разыменовывается, но прочие псевдонимы не разыменовываются
deref_alwaysВсе псевдонимы разыменовываются
Синтаксис filter

Выражение фильтра поиска использует переменные для подстановки значений полей события: $ИмяПоля или ${ИмяПоля}.

(&(ObjectClass=${EventObjectClass})(uid=${ECS.User.Name}))
Приоритет password / password-secret

Если указаны оба параметра password и password-secret, значение из password имеет больший приоритет.


Тип asset

Обогащение данными из базы активов KOMRAD. Процессор ищет активы по IP-адресам и FQDN, найденным в полях события.

processors:
- module: enrich
type: asset
cache-ttl: 10m
enricher-config:
ip-lookup-fields:
- "ECS.Source.IP"
- "ECS.Destination.IP"
fqdn-lookup-fields:
- "ECS.Host.Hostname"
mappings:
Name: "Asset.Name"
Importance: "Asset.Importance"
Tags: "Asset.Tags"
OSName: "Asset.OS"
ПараметрТипОписание
ip-lookup-fieldsstring[]Поля события с IP-адресами для поиска в базе активов
fqdn-lookup-fieldsstring[]Поля события с FQDN для поиска в базе активов
mappingsmap[string]stringМаппинг свойств актива на поля события
Приоритет поиска

В первую очередь обрабатываются поля ip-lookup-fields — поиск актива по IP-адресу приоритетнее поиска по FQDN.

Доступные свойства активов для маппинга: ID, Name, Hostname, FQDN, IP, IPv4, IPv6, MAC, DeviceType, OSType, OSName, OSVersion, Importance, Tags.


Тип ioc

Обогащение индикаторами компрометации (IoC) из подключённых источников Threat Intelligence.

processors:
- module: enrich
type: ioc
timeout: 3s
cache-ttl: 10m
enricher-config:
provider: "amtip"
lookup-fields:
- "ECS.Source.IP"
- "ECS.Destination.IP"
- "ECS.URL.Full"
ПараметрТипОписание
providerstringПровайдер IoC-данных (например, amtip)
lookup-fieldsstring[]Поля события, значения которых проверяются по базе IoC
formatstringФормат данных провайдера (например, stix)

Конфигурация провайдера зависит от выбранного источника. Параметры указываются на уровне enricher-config.

Конфигурация провайдера amtip:

ПараметрТипОписание
tokenstringТокен аутентификации для API AMTIP. Имеет приоритет выше, чем token-secret
token-secretstringНазвание секрета KOMRAD с токеном. Игнорируется, если указан token
base-urlstringURL ресурса AMTIP
tlsobjectПараметры TLS для запросов
custom-fieldsmap[string]stringДополнительные поля для извлечения из ответа IoC-провайдера (ключ — имя целевого поля, значение — GJSON-путь в ответе)

Пример полной конфигурации IoC с провайдером AMTIP:

processors:
- module: enrich
timeout: 500s
cache-ttl: 5s
type: ioc
enricher-config:
format: "stix"
provider: "amtip"
lookup-fields: ["ECS.Client.IP", "ECS.URL.Path", "ECS.URL.Domain"]
token: "123"
base-url: "http://iocs-provider.example.com:8080/api/v1/ioc/"
tls:
disable: true
custom-fields:
blacklists: 'objects.#(name%Blacklists).result'
whois: 'objects.#(name%Whois Lookup).result'

При обнаружении совпадения с IoC процессор добавляет в событие информацию об индикаторе.

Подробнее об API AMTIP см. Получение IoC из внешних источников (AMTIP).