пятница, 19 августа 2016 г.

Splunk. Urldecode в props.conf

Привет, читатель!

В этом небольшом посте, хочу рассказать о полезной возможности Splunk, а именно об автоматическом выполнении преобразований значений полей с помощью eval. Это позволит немного упростить запросы, а логику преобразований вынести в конфигурационный файл props.conf.






Итак, проверяя в очередной раз журнал Apache с целью найти попытки эксплуатации shellshock, увидел ряд кодированных URL.

sourcetype=Apache_access "bin"

| table clientip,useragent,uri



Естественно, стало интересно, что собственно запрашивают. Для преобразования закодированных URL в человекочитаемый вид у оператора eval есть функция urldecode. Её и используем:

sourcetype=Apache_access "bin"
| eval urldec = urldecode(uri)
| table clientip,useragent,urldec,uri



Теперь стало понятнее, директория /cgi-bin/ у меня всё равно пустая. Но что если раскодировку URL автоматизировать и поручить Splunk'у. Для этого необходимо внести изменения в конфигурационный файл props.conf.

Для этого необходимо добавить в props.conf (по-умолчанию живет тут -/opt/splunk/etc/apps/search/local/props.conf) следующую строку:

[Apache_access]
EVAL-uriDecode = urldecode(uri)


Немного поясню:
[Apache_access] - новое преобразование будет выполняться для sourcetype, имеющего имя Apache_access. Вообще, назначить преобразование можно для Host, Source, Sourcetype, указав их имена или значения.
EVAL-uriDecode - объявление нового преобразования с сохранением значения в поле uriDecode.
urldecode(uri) - само преобразование над существующим полем uri.

Чтобы всё работало, необходимо запомнить 2 вещи:
  1. Поле, над которым выполняется преобразование должно существовать в sourcetype.
  2. Функция преобразования должна поддерживаться оператором eval.

Перезапускаем Splunk (/opt/splunk/bin/splunk restart) и теперь можем использовать в запросах новое поле.

sourcetype=Apache_access "bin"
| table clientip,useragent,uriDecode,uri


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


Комментариев нет:

Отправить комментарий