Сегодня возникла потребность в мониторинге изменений определенных файлов на сервере, существует много разных способов например osquery от facebook, но так как недавно я начал пользоваться Open Distro for Elasticsearch решил мониторить файлы эластиком, одним из его beat’ов.
Установку Elastics stack и Auditbeat описывать не буду, все по мануалам, единственное, после установки отредактируйте файл auditbeat.yml, в модуль file_integrity добавьте путь к отслеживаемому файлу.
После настройки и запуска в kibana появится индекс auditbeat-*

Далее создаем мониторинг, указываем имя мониторинга, интервал проверки, а так же тип мониторинга и файл индекса:

в Define extraction query пишем следующее:
{ "query": { "bool": { "must": [ { "match_phrase": { "file.path": { "query": "<путь/к отслеживаемому файлу>" } } } ], "filter": [ { "term": { "event.action": { "value": "attributes_modified" #изменения атрибутов, возможно created или deleted } } }, { "range": { "@timestamp": { "from": "now-1m" #период за который отслеживаем изменение } } } ], "adjust_pure_negative": true, "boost": 1 } } }
После нажимаем кнопку Run и проверяем запрос, должно появиться вот такое:

Пробуем изменить целевой файл и опять запустить запрос:

как видите hits изменился на 2, нажимаем update и создаем тригер на изменение значения:

Оставляем все, как на картинке.
Далее можно настроить уведомления в slack или другой мессенджер.
ссылка на оригинал статьи https://habr.com/ru/post/459554/
Добавить комментарий