Приветствую, уважаемый читатель!
Сегодня я хочу
продолжить тему выявления вредоносной и подозрительной активности с помощью
различных «чёрных» списков. Применение данного способа совместно с сигнатурными
методами бывает совсем не лишним. Поможет нам в этом небольшая IDS Maltrail.
Помнится,
меня посетила идея периодически собирать списки публичный прокси-серверов и
выходных нод TOR-сети для выявления идущих с них активностей. Данная идея и
реализация описана тут - http://unitybas.blogspot.ru/2016/06/splunk-proxy-tor-1.html.
Но как оказалось данная задача и множество аналогичных задач уже решены и мне
порекомендовали воспользоваться IDS
Maltrail.
Об этом инструменте и пойдет речь.
Пару слов об
архитектуре Maltrail
Особенность
Maltrail
в
том, что она целиком написана на python
и при желании можно ознакомиться с логикой работы всей системы. Архитектура
данной IDS
клиент-серверная, т.е. имеется 2 основных компонента:
- сенсор, который анализирует трафик и ищет подозрительные активности;
- сервер, который используется для анализа данных от сенсоров.
Подключение к серверу
осуществляется через web-интерфейс.
В конфигурации по умолчанию, и сервер и сенсор находятся на одном устройстве,
но это совсем не обязательно. Сервер может (и по идее должен) быть расположен
на отельном устройстве, а в конфигах сенсоров просто указывается, куда слать
алерты. Эту возможность сенсоров мы будем использовать для подключения к Splunk.
Установка
Maltrail
Подробно установка
системы описана тут - https://defcon.ru/malware-analysis/3223/
и повторять не имеет смысла. Если коротко, то вот всё что нужно:
apt-get install python-pcapy git
git clone https://github.com/stamparm/maltrail.git
cd maltrail/
python sensor.py (стартуем сенсор)
python server.py
(стартуем сервер)
Работа с Maltrail
Источников trail’s система
подтягивает очень много, для чего используются различные python-скрипты, которые можно найти тут -
.../maltrail/trails/feeds
Сенсор
и сервер Maltrail
делят
на двоих общий конфигурационный файл – maltrail.conf,
который разделен на секции [Server] и [Sensor].
[Server]
Для
сервера, на мой взгляд, полезны следующие параметры:
USERS
В
данном разделе указана учетная запись admin с хэшем(sha256) пароля по умолчанию (changeme!). Естественно, пароль
надо изменить и указать новый хэш, разработчики Maltrail в комментариях заботливо
написали, как это можно сделать:
echo -n 'password' |
sha256sum | cut -d " " -f 1
Можно
создать несколько учетных записей, просто перечислив их через запятую.
HTTP_ADDRESS и HTTP_PORT
В
данном разделе указываются ip-адрес
и порт, на которых поднимется web-интерфейс
панели администрирования сервера.
UDP_ADDRESS и UDP_PORT
В
данном разделе можно задать ip-адрес
и порт, которые будет слушать сервер для получения алертов от других (не
установленных локально) сенсоров Maltrail.
[Sensor]
Для
сенсора, считаю полезными следующие параметры:
MONITOR_INTERFACE
В
данном разделе указывается, с какого интерфейса анализировать трафик, по
умолчанию стоит «any»,
т.е. со всех.
CAPTURE_FILTER
В
данном разделе указываются правила захвата трафика (читай ключи утилиты tcpdump) с помощью которых
можно задать какой трафик, приходящий на интерфейс, анализировать. Я выставил
себе следующее правило:
ip
or ip6 (что соответствует tcpdump –i eth0 ip or ip6)
Сделано
это, по видимости, для того, чтобы у администратора была возможность ограничить
область анализа и снизить нагрузку на вычислительные мощности. Например, мы
хотим прикрыть IDS
только
обращение к web-серверу
на 80/tcp
порту,
зачем нам анализировать все пакеты?
SYSLOG_SERVER
В
данном разделе указывается адрес сервера, куда слать syslog-сообщения об алертах в формате CEF. Если для сбора используется Splunk, указываем его ip и
порт.
Администрирование
Maltrail
После
запуска сервера Maltrail
необходимо
зайти на web-интерфейс
панели администрирования (по умолчанию порт 8338/tcp) и ввести учетные данные. Появится
главный дашборд, на котором можно изучить информацию о выявленных алертах. Есть
несколько предустановленных способов визуализации данных (5 больших иконок), по
нажатию на которые появляются диаграммы и графики.
В целом всё просто и сложностей в понимании интерфейс
не вызывает. Мне понравилась возможность при наведении мыши на IP-адрес получить по нему
дополнительную информацию.
Интегрируем со Splunk
Для
начала необходимо на Splunk-сервере
создать слушающий udp-сокет
и указать, что приходить будет syslog-сообщения.
В настройках сенсора Maltrail(SYSLOG_SERVER)
необходимо вписать соответствующий сокет.
После
создания нового Data
Input’s алерты
начнут поступать в sourcetype
«Maltrail». CEF неплохо
парсится Splunk,
и почти все значащие поля достаются.
Чтобы
вытащить недостающие поля можно воспользоваться «Extract new fields» и выбрать способ «Delimiter», в котором в качестве
разделителя установить «Pipe».
Теперь
можно получить результаты, вбив следующий запрос:
source=Maltrail
| table _time,alert_date,src,spt,dst,dpt,trail,info
Собственно, теперь можно получать события от данной IDS и визуализировать их средствами Splunk.
Комментариев нет:
Отправить комментарий