Следим за изменением файлов с помощью Alerting OpenDistro for Elasticsearch

Сегодня возникла потребность в мониторинге изменений определенных файлов на сервере, существует много разных способов например osquery от facebook, но так как недавно я начал пользоваться Open Distro for Elasticsearch решил мониторить файлы эластиком, одним из его beat’ов.

Установку Elastics stack и Auditbeat описывать не буду, все по мануалам, единственное, после установки отредактируйте файл auditbeat.yml, в модуль file_integrity добавьте путь к отслеживаемому файлу.

После настройки и запуска в kibana появится индекс auditbeat-*

_vchisvguysfxsrreltz4doi9am.png

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

rqmrnza6s4v2oegdcwutdtsf13k.png

в Define extraction query пишем следующее:


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 и проверяем запрос, должно появиться вот такое:

wevtqa-ee8sjr-qlfcbdub9fty0.png

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

tzorssruusjbtsl1ng-34mbuxj0.png

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

kukutmc1rziafsbdemb7ogalj_g.png

Оставляем все, как на картинке.

Далее можно настроить уведомления в slack или другой мессенджер.

© Habrahabr.ru