Индекс процессов Windows - ESGuardian/LittleBeat GitHub Wiki

В LittleBeat есть такой специальный индекс win-proc-list он содержит документы с полями proc_name, severity, comment. Как он используется?
При поступлении в Logstash события от winlogbeat, проверяется наличие в нем поля NewProcessName, в этом поле содержится полный путь к файлу программы запуск которой зафиксирован в журнале аудита. Если такое поле есть в событии, logstash создает три новых поля: NewProcessBareName, NewProcessSeverity, NewProcessSeverityComment. В значение первого поля записывается имя исполняемого файла программы (без пути), остальные поля устанавливаются в значения Неизвестный и Авто соответственно. Затем logstash обращается к elasticsearch с просьбой найти в индексе win-proc-list документ у которого поле proc_name содержит только что полученное значение NewProcessBareName. Если документ есть, то поля NewProcessSeverity и NewProcessSeverityComment записываются значениями соответствующих полей из найденного документа, иначе остаются как есть. И вот это дополненное событие отправляется на запись в elasticsearch. Таким образом события о запуске новых процессов оказываются "раскрашенными".

Код в файле конфигурации logstash выглядит вот так:

if [event_data][NewProcessName] {
    mutate {
        add_field => {
            "[event_data][NewProcessBareName]" => "NewProcessBareName"
            "[event_data][NewProcessSeverity]" => "Неизвестный"
            "[event_data][NewProcessSeverityComment]" => "Авто"
        }
    }
    ruby {
        code => "s=event.get('[event_data][NewProcessName]').split('\\')[-1].downcase; event.set('[event_data][NewProcessBareName]', s);"            
    }
    elasticsearch {
        index => "win-proc-list"
        query => "proc_name:%{[event_data][NewProcessBareName]}"

        fields => ["severity","[event_data][NewProcessSeverity]"], ["comment","[event_data][NewProcessSeverityComment]"](/ESGuardian/LittleBeat/wiki/"severity","[event_data][NewProcessSeverity]"],-["comment","[event_data][NewProcessSeverityComment]")
    }            
}

Изначально индекс win-proc-list содержит некий авторский список процессов, однако в вашем окружении могут встречаться совершенно другие процессы, или вы можете иначе к ним относиться. Например, считать какие-то процессы необычными или недопустимыми. В LittleBeat предусмотрено очень простое средство внесения правок в индекс процессов. С помощью консоли LittleBeat вы можете выгрузить из elasticsearch список зарегистрированных процессов за последние N дней в текстовый файл в формате: name:severity:comment, затем отредактировать его в любом текстовом редакторе и загрузить в индекс win-proc-list. При этом измененные документы в индексе будут перезаписаны, а новые добавятся.

В консоли есть два способа выгрузки данных о процессах: Выгрузить неизвестные процессы и Выгрузить все процессы. Первый способ используется чаще и служит для пополнения индекса. Второй способ служит для исправления данных о процессах в индексе. При выполнении этих операций в /opt/littlebeat/data записывается файл proc_list.txt, который и надо отредактировать. Выглядит файл вот так:

awesomiumprocess:Неизвестный:Авто
git-rev-parse.exe:Неизвестный:Авто
markdownpad2.exe:Неизвестный:Авто

Теперь нужно заменить Неизвестный и Авто на что-то разумное и комментарий. Что разумно, вы можете определять сами. Я пользуюсь, например, такими обозначениями Системный, Обычный, Специальный (для приложений, встречающихся на специфических компьютерах, например, специальных криптопровайдеров), Неопределенный (для приложений вроде install.exe), Требует внимания (например, для приложений удаленного управления, таких как radmin). Вы можете использовать свои обозначения, например, Требуется лицензия. На дашборде процессов Windows в Kibana вы будете видеть информацию о процессах агрегированную по этим названиям. Это очень удобно. После редактирования файл может выглядеть, например, так:

awesomiumprocess:Обычный:HTML парсер awesom, оболочка для поддержки локальных HTML-приложений, например, редакторов HTML с WYSYWYG
git-rev-parse.exe:Специальный:Компонент настольного клиента git
markdownpad2.exe:Обычный:Редактор файлов в формате markdown

Самый удобный способ выяснить что за процесс вы видите - google. Теперь с консоли LittleBeat вы можете загрузить этот файл в индекс win-proc-list. Помните, что названия severity регистрозависимые. Символ : используется как разделитель полей и не должен встречаться в тексте.

Процедура, конечно, ручная, но очень надежная и эффективная. Первое время ее лучше проделывать по крайней мере раз в неделю. Вы достаточно быстро соберете собственную базу используемых в вашем окружении программ, а заодно узнаете что тут у вас делается. И еще. Помните, что новая раскраска будет применяться только к новым событиям winlogbeat, старые события не поменяются.

Home