Приветствую, уважаемый
читатель!
На мой взгляд, одной из задач SIEM-систем является автоматизация контроля
над происходящими в инфраструктуре событиями, т.е. не надо смотреть в десятки
консолей администрирования средств защиты. В случае со Splunk мы сами создаём себе
инструмент для автоматизации контроля. Достигается это, в том числе, с
использованием языка запросов (SPL), в котором предусмотрены возможности по
автоматизации и имя им – поисковые макросы (Search macros). :)
Макросом в Splunk является часть запроса на SPL, в которую можно передавать
параметры. Разберёмся на примере. Итак, есть запрос, отображающий на карте
источники активности (IP-адреса):
sourcetype=Apache_access
| table _time,clientip
| iplocation lang=ru clientip
| geostats count by clientip latfield=lat
longfield=lon
Теперь предположим, что у нас есть несколько
источников событий, для которых необходимо стоить аналогичные визуальные
представления. Т.е. часть запроса с операторами iplocation и geostats будет повторяться, а отличаться (возможно)
будет только имя поля содержащего ip-адрес.
Создавать макросы можно двумя способами:
- В web-интерфейсе Splunk сервера (Settings > Advanced Search > Search Macros > New).
- Путем создания и редактирования файла macros.conf в директории пользовательских конфигурационных файлов (/opt/splunk/etc/apps/search/local).
Мне больше нравится второй вариант :) Поэтому открываем файл macros.conf
и добавляем текст ниже:
[geoip_location(1)]
args = iploc
definition = table _time,$iploc$ | iplocation lang=ru $iploc$ | geostats count
by $iploc$ latfield=lat longfield=lon
Пояснение:
geoip_location(1)
- имя макроса, с указанием
количества передаваемых параметров;
args - список параметров, передаваемых в макрос (перечислять
необходимо через запятую);
definition - непосредственно текст макроса с переданными в
виде переменных параметрами(указывать параметры
обязательно заключенными в знак $).
Перезагружаем
Splunk и вбиваем в строке поиска запрос:
sourcetype=Apache_access |
`geoip_location(clientip)`
или
sourcetype=fail2ban | `geoip_location(srcip)`
Таким образом,
мы можем использовать созданный макрос для любого sourcetype.
Комментариев нет:
Отправить комментарий