Настройка отправки событий в SIEM-систему¶
Настройка отправки событий в SIEM-систему — пошаговая инструкция по интеграции RuDesktop с внешним SIEM через протокол Syslog в формате CEF (Common Event Format)
Описание¶
Сервер RuDesktop отправляет события аудита по сети в локальный syslog-демон (rsyslog или syslog-ng). Локальный демон, в свою очередь, либо записывает события в системный журнал, либо пересылает их в SIEM-систему
Важно
RuDesktop отправляет события в syslog-демон по протоколу TCP на порт, указанный в параметре SYSLOG_PORT. Это означает, что локальный демон должен принимать TCP-соединения
Настройка локального syslog-демона¶
Процесс настройки состоит из двух этапов: конфигурация системного логгера (rsyslog или syslog-ng) на приём событий от RuDesktop, и настройка самого RuDesktop для отправки логов
Раскомментируйте в файле
/etc/rsyslog.confстроки для включения модуля приёма TCP-соединений:module(load="imtcp") input(type="imtcp" port="514")
При необходимости добавьте в конец файла правило для пересылки событий в SIEM. Например, чтобы отправлять все события, содержащие ключевое слово
ADT(логи аудита RuDesktop), на сервер с IP-адресом192.168.11.75по протоколу UDP, используйте следующее правило:if ($msg contains 'ADT') then @192.168.11.75Примечание
Символ
@означает отправку по протоколу UDP. Для отправки по TCP используйте@@Важно
Перед внесением изменений в файл
/etc/rsyslog.confрекомендуется сделать его резервную копию. Ошибка при редактировании файла может привести к некорректной работе системыПерезапустите сервис rsyslog:
systemctl restart rsyslog
Создайте новый файл по пути
/etc/syslog-ng/conf.d/remote-514.confи добавьте в него следующее содержимое для приёма логов по TCP:source s_remote_514 { tcp(ip("0.0.0.0") port(514)); }; log { source(s_remote_514); destination(d_syslog); };
При необходимости добавьте пересылку на удалённый SIEM-сервер. Например, чтобы отправлять все события, содержащие ключевое слово
ADT(логи аудита RuDesktop), на сервер с IP-адресом192.168.11.75по протоколу UDP, используйте следующую конфигурацию:# Источник для приёма логов от RuDesktop source s_remote_514 { tcp(ip("0.0.0.0") port(514)); }; # Назначение для локальной записи в системный журнал destination d_local { file("/var/log/syslog"); }; # Назначение для отправки на удалённый SIEM-сервер destination d_siem { udp("192.168.11.75" port(514)); }; # Фильтр для отбора событий с ключевым словом ADT filter f_adt { message("ADT"); }; # Логика обработки: всё, что приходит от RuDesktop, пишем локально log { source(s_remote_514); destination(d_local); }; # Отдельное правило: если в сообщении есть ADT, отправляем ещё и в SIEM log { source(s_remote_514); filter(f_adt); destination(d_siem); };
Примечание
Для отправки по протоколу TCP используйте
tcp("192.168.11.75" port(514))вместоudp(...)Перезапустите сервис syslog-ng:
systemctl restart syslog-ng
Настройка RuDesktop¶
Внесите в файл
/etc/rudesktop/settingsпараметры подключения к syslog-приёмнику. Файл написан на синтаксисе Python:SYSLOG_HOST = 'localhost' SYSLOG_PORT = 514
Примечание
Если syslog-демон работает на той же машине, что и RuDesktop, используйте
localhost. Для подключения к внешнему серверу укажите его IP-адрес или DNS-имяПерезапустите сервер RuDesktop для применения настроек:
rude restartВключите отправку нужных групп событий в админ-панели
Перейдите в блок «Настройки логов» на странице Настройки и активируйте тумблеры тех событий, которые требуются по политике аудита:
Записывать статус подключений в syslog — события удалённых сессий (группа SESSIONS)
Записывать результаты запуска политик в syslog — результаты выполнения задач и политик (группа POLICY)
Записывать события аутентификации админ панели в syslog — входы в веб-интерфейс (группа AUTH)
Записывать события HTTP запросов в syslog — все HTTP-запросы к веб-интерфейсу (группа HTTP)
Записывать события CRUD (изменения объектов) в syslog — создание, изменение и удаление объектов (группа CRUD)
Записывать события Экспорта в syslog — экспорт данных из любых страниц (группа COLLECTOR)
Важно
До включения хотя бы одного из тумблеров RuDesktop не отправляет в syslog ни одного события, даже если
SYSLOG_HOSTуказан корректно
Дополнительная настройка¶
В примерах выше для rsyslog и syslog-ng была показана фильтрация по содержимому сообщения. Это особенно полезно, если вы хотите отправлять в SIEM только значимые события (например, только события аудита с тегом ADT), а не весь системный лог
Подсказка
Как работает фильтрация:
rsyslog: Строка
if $msg contains 'ADT' then @192.168.11.75означает, что если сообщение содержит подстрокуADT, оно будет отправлено на удалённый хост192.168.11.75по UDPsyslog-ng: Создаётся фильтр
filter f_adt { message("ADT"); };, который отбирает сообщения с ключевым словомADT. Затем отдельное правилоlogотправляет отфильтрованные сообщения на назначениеd_siem
Все события RuDesktop, содержащие ключевое слово ADT (которое добавляется в логи безопасности), будут автоматически дублироваться на ваш SIEM-сервер для централизованного сбора и корреляции, при этом продолжая записываться в локальные логи сервера