Каталог расширений

MP SIEM Telegram notification

Отправка инцидентов из MaxPatrol SIEM 10 в Telegram бот.

Запуск

Запуск скрипта возможен как на удаленной машине, так и на машине с SIEM. Скрипт одинаково работает как на Windows, так и на Unix-подобной системе. Работоспособность проверена на Python 3.7 и Python 3.10.

Для запуска по SSH рекомендую использовать следующую команду: nohup python3 mp-siem-tg-bot-notification.py &

При первом запуске файл БД будет создан автоматически по пути, указанному в параметре dbFileName в файле settings.py.

После создания файла БД таблица tg_users_allowed не содержит записей (т.е. оповещения об инцидентах не будут отправлять никому). Когда какой-либо пользователь нажмет кнопку "Старт" в боте или отправит команду /start, администратор получит сообщение вида:

Обнаружены новые пользователи бота: @Nickname (разрешить просмотр логов /accept123456789, игнорировать /deny123456789).

Отправив команду /accept123456789 (где 123456789 это id пользователя Телеграм), администратор добавляет пользователя в список рассылки новых инцидентов.

Отправив команду /deny123456789 (где 123456789 это id пользователя Телеграм), администратор исключает пользователя из списка рассылки новых инцидентов (команда применима в любой момент).

Если администратор не отправил ни одну из команд, пользователь не будет включен в список рассылки новых инцидентов.

Для включения администратора в список рассылки новых инцидентов он тоже должен включить себя в него командой /accept123456789.

Для ускорения этого процесса администратор может просто отправить повторно команду /start, после чего он получит описанное ранее сообщение с возможностью добавить себя в список рассылки.

Работа бота

Бот авторизуется в SIEM и получает токен, с которым осуществляет все дальнейшие обращения к SIEM по API.

Если токен закончится (обычно через 24 часа) и будет получена ошибка 401 (Unauthorised), будет выполнен новый запрос на получение токена.

Если в SIEM появляются новые инциденты, информация о них отправляется пользователям бота. Для исключения неавторизованного доступа к боту, после запуска бот отправляет оповещения только разрешенным администратором пользователям.

Администратором является пользователь, указанный в параметре admin_chat_id в файле settings.py.

Если новый пользователь начинает работу с ботом (команда /start), то администратору бота приходит оповещение о новом пользователе и выбором - разрешить или запретить ему получение оповещений об инцидентах.

В случае добавления бота в чат, администратор так же получит оповещение с выбором, отправлять ли оповещения в новый чат. В связи с особенностью обработки синтаксиса клиентом Телеграм, команду вида /accept-123456789 желательно ввести вручную, не забыв указать знак минуса.

В Telegram боту можно отправить команду /ping для проверки работоспособности бота.

Для отладки и для отображения текущих переменных бота администратор может послать ему команду /debug.

Автор
OXYGEN
Продукт
MaxPatrol SIEM
Категория
Решения
Теги
  • Telegram·
  • bot·

Другие расширения для MaxPatrol SIEM