Maltrail. Система обнаружения вредоносного трафика

Maltrail это небольшая система обнаружения вредоносного и подозрительного трафика, написанная на Python.
Данная система работает по принципу черных списков. Полезна при анализе трафика локальной сети на аномалии и наличие вредоносного ПО.
Maltrail состоит из двух компонентов (сенсор и сервер), которые могут быть разнесены по разным серверам или виртуальным машинам.
При этом, для более полного сбора информации сенсор лучше устанавливать на SPAN-порт на которых зеркалируется весь трафик или на пограничное оборудование (например пограничный маршрутизатор, если он поддерживает установку стороннего ПО).
Сенсоров может быть несколько и они все будут отправлять информацию на сервер мониторинга Maltrail. При этом сенсоры могут находиться в различных сегментах сети или в разных сетях. Единственный минус — трафик между сервером и сенсорами никак не шифруется, поэтому вопрос безопасности передачи данного трафика стоит рассмотреть отдельно (например отдельный, изолированный VLAN).

Перейдем к настройке системы.
Для начала установим все требуемые пакеты:

Теперь скопируем себе Maltrail с GutHub:

Переместим Maltrail в /opt:

и перейдем в папку с Maltrail:


Далее откроем файл конфигурации maltrail.conf и настроим сервер и сенсоры под себя:

Настройка сервера

Настройки сервера производится в секции [Server].
Первым делом сменим пароль, для этого найдем раздел USERS и изменим пароль у пользователя admin:

Для начала потребуется создать новый хэш пароля, это делается командой:

После создания нового хэша меняем в конфигурационном файле для администратора системы (учетная запись admin с паролем по умолчанию changeme!) на новый.

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

В нем нужно заменить блок:

на хэш нового пароля, который мы создали в предыдущей команде.

Следующим шагом настраиваем адрес, на котором будет работать сервер (актуально, если у сервера несколько интерфейсов, а Web-интерфейс сервера должен работать на каком-то определенном). Для этого в строке:

указываем нужный IP-адрес (0.0.0.0 — на всех IP-адресах, которые имеются в системе).

Так же можем поменять порт, на котором будет Web-интерфейс сервера. Это делается в строке (8338 — порт по умолчанию):

И можем включить сбор событий от сенсоров по UDP с удаленных сенсоров, для этого нужно раскомментировать строки (так же можно изменить UDP порт и адрес по которому будут приниматься события от сенсоров. 0.0.0.0 — на любом адресе и интерфейсе):

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

Настройка сенсоров

Теперь переходим к настройке сенсора (секция [Sensor]).

Для начала укажем на каком интерфейсе сенсор будет следить за трафиком (по умолчанию: any — на всех):

Далее можно изменить имя сенсора, чтобы можно было определять с какого сенсора пришло событие (по умолчанию используется переменная $HOSTNAME — текущее имя сервера)

Если сенсор находится на другом сервере, то нужно указать куда будет отправляться с него информация по UDP:

Так же для удаленного сервера нужно выключить локальное хранения логов:

Можно включить или выключить эвристический анализ:

В данной инструкции описаны основные параметры. Остальные параметры полностью описаны в конфигурационном файле и снабжены комментариями.

Ниже для примера идет конфиг, который использовался для написания данной статьи.
В данном конфигурационном файле предполагалось, что сервер и сенсоры устанавливаются на разных серверах.
Остальное вы сможете доделать самостоятельно, относительно топологии вашей сети и конфигурации серверов.

Запуск Maltrail

Запустим сенсор (при первом запуске будут обновлены все списки и блеклисты). Сенсор нужно запускать от root пользователя:

и запустим сервер (если используются удаленные сенсоры, то тоже нужно запускать от пользователя root, если только локальный сенсор — можно запускать от обычного пользователя):

Встроенного механизма демонизации нет, но как это сделать вручную, описывается в статье: Запуск приложения в режиме «daemon» в Linux.

После запуска сервера и сенсоров автоматически начнется сбор данных.

Для проверки работоспособности системы, можно произвести эхо-запрос на адрес 136.161.101.53 (он есть в блеклистах):

После выполнения этой команды, в списке событий должна появится запись с номером угрозы 61dfc6d5.

Web-интерфейс Maltrail

Результаты мониторинга отображаются в Web-интерфейсе (по умолчанию: http://адрес_сервера:8338).

При подключении к Web-интерфесу, будет запрошено имя пользователя и пароль:

Maltrail. Вход

maltrail_1

Вводим реквизиты пользователя, которого создали ранее, и нажимаем Log In.

Maltrail. Главное окно

maltrail_2

После входа мы попадаем в главное окно. В нем отображаются все события, которые зарегистрируют сенсоры.
Общее описание колонок:
threat — уникальный номер угрозы;
sensor — сенсор, с которого получено событие
events — количество событий;
severity — потенциальный уровень опасности;
first_seen — дата и время первого появления события;
last_seen — дата и время последнего появления события;
sparkline — небольшой график активности событий;
src_ipIP-адрес(а) отправителя;
src_port — порт(ы) с которых был отправлен трафик;
dst_ipIP-адрес(а) получателя;
dst_port — порт(ы) на который был отправлен трафик;
proto — протокол;
type — тип (IP, DNS, URL)
trail — запись, которая инициировала событие;
info — дополнительная информация об угрозе;
reference — источник сигнатуры (в какой базе находится сигнатура);
tags — назначаемые пользователем теги.

Maltrail. Trail

maltrail_3

При удержании курсора мыши над записью в столбце trail — производится поиск по событию в поисковой системе DuckDuckGo.

Maltrail. IP

maltrail_4

При наведении курсора мыши на адрес в колонке dst_ip или src_ip — показывается расширенная информация об адресе (кроме локальных адресов).

Maltrail. Дополнительная информация

maltrail_5

Если в событии участвовало несколько портов или IP-адресов, то они скрываются за значком облачка. Полную информацию можно посмотреть во всплывающем окне при нажатии на облачко.

Maltrail. Графики

maltrail_6

В верхней части окна есть некоторое количество кнопок для графического представления угроз (различные графики и диаграммы) за выбранные 24 часа.
Threats — диаграмма по типам угроз;
Events — график по типу и времени;
Severity — диаграмма по уровню опасности;
Sources — диаграмма по источникам событий;
Trails — диаграмма по типу событий.

Maltrail. Временная шкала

maltrail_7

Если требуется посмотреть предыдущие периоды, то нажатием на дату можно вызвать временную шкалу.

Система довольно простая, но при этом хорошо подходит, как вспомогательная система, для поиска и анализа угроз в трафике ЛВС.

Заказать Аудит Безопасности или Пентест Вашей IT-инфраструктуры

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Заполните форму обратной связи и мы обязательно с вам свяжемся:
Форма обратной связи
Позвоните нам по телефону:
+7(909)952-44-33
Напишите нам на электронную почту:
order@blackdiver.net
Напишите нам в Telegram:
Telegram
Другие способы связи Вы сможете найти в разделе Контакты.