OSSIM (Open Source Security Information Management) — система управления, контроля и обеспечения информационной безопасности.
OSSIM «из коробки» включает в себя такой функционал как:
- Сбор, анализ и корреляция событий — SIEM
- Хостовая система обнаружения вторжений (HIDS) — OSSEC
- Сетевая система обнаружения вторжений (NIDS) — Suricata
- Беспроводная система обнаружения вторжений (WIDS) — Kismet
- Мониторинг узлов сети- Nagios
- Анализ сетевых аномалий – P0f, PADS, FProbe, Arpwatch и др.
- Сканер уязвимостей – OpenVAS
- Мощнейшая система обмена информацией об угрозах между пользователями OSSIM — OTX
- Более 200 плагинов для парсинга и корреляции логов со всевозможных внешних устройств и служб
Предисловие
В данной статье речь пойдёт в первую очередь об установке, первичной настройке и конфигурации OSSIM, всю информацию о возможностях и функционале можно взять с официального сайта, или посмотреть в этом ролике:
Стоит заметить, у AlienVault есть 2 продукта, бесплатный OSSIM и более продвинутая версия — USM, различия можно посмотреть по этой ссылке.
В качестве бонуса последней главой статьи выложил информацию об интеграции OSSIM с SIEM системой ArcSight.
Оглавление
Установка OSSIM
Настройка OSSIM
- Мастер настройки
- Настройка почтовых уведомлений
- Настройка HIDS
- Настройка WIDS
- Настройка сбора системных логов
- Интеграция с ArcSight
Использованные источники
Установка OSSIM
Установка open source SIEM системы осуществляется с помощью готового установочного образа, содержащего в себе операционную систему Debian и все необходимые предустановленные компоненты и модули.
Для установки OSSIM, необходимо открыть ссылку, после чего сразу-же начнётся загрузка последней версии дистрибутива OSSIM.
Установку мы будем проводить на VMware ESXi.
Настройка ESXi
Для начала необходимо сконфигурировать сам ESXi, а именно настроить интерфейс, работающий в «неразборчивом» режиме (Promiscuous mode). Данный режим нам нужен для настройки мониторинга сети. В OSSIM эту роль выполняет Suricata.
Для этого откроем настройки хоста, и делаем всё, как на анимации ниже:
На этом настройка закончена, теперь добавим виртуальную машину. На скриншотах ниже только те пункты настройки, которые мы меняем.
Многие службы в OSSIM умеют работать в многопоточном режиме, поэтому желательно установить несколько ядер.
Оперативной памяти, желательно, поставить больше. Минимальный размер, до которого всё работает более-менее стабильно и без подтормаживаний – 3GB.
1 интерфейс для управления OSSIM, 1 для Network IDS Suricata, один для OpenVAS (не обязательный).
На этом конфигурация виртуальной машины закончена.
Установка
Включим виртуальную машину и подключим к ней, загруженный нами ранее, установочный образ OSSIM.
Теперь установим OSSIM. Установка ничем не отличается от установки Debian, только пунктов в установке гораздо меньше.
Настройка совсем проста, поэтому для краткости некоторые скриншоты в анимации опущены.
После ввода всех настроек начнётся установка.
На этапе «Запуск cdsetup…» установка может зависнуть на некоторое время, так и должно быть.
По окончанию появится консоль:
Заходим по ссылке, указанной в консоли и вводим учётные данные:
На этом установка закончена.
Настройка OSSIM
Для настройки OSSIM были сконфигурированы 3 операционные системы: Windows server 2008 R2, Windows 7 SP1, Ubuntu 14.04 LTS, которые мы, непосредственно и будем подключать к мониторингу. Помимо этого, мы настроим беспроводную IDS систему, основанную на Kismet, используя в качестве «сенсора» хост с предустановленной ОС Debian 6.
Мастер настройки
Вводим учётные данные, указанные в предыдущем пункте настройки:
И перед нами открывается окно мастера настройки:
Конфигурируем интерфейсы:
На следующем пункте OSSIM автоматически просканирует сеть и предложит указать тип найденных узлов, в нашем случае удалено всё, что не относится к тестовому стенду:
На следующем этапе можно автоматически установить хостовую систему обнаружения вторжений (OSSEC). Попробуем установить её для Windows Server. Вводим учётные данные и нажимаем «DEPLOY»:
Производить то же самое для Linux не рекомендую, т.к. в этом случае OSSEC будет работать без агента (Agentless).
На следующем этапе нам предлагают настроить мониторинг логов, этот пункт мы пропускаем и вернёмся к нему позже, в соответствующей главе:
На последнем пункте нам предложат присоедениться к OTX, если есть желание, регистрируемся по ссылке www.alienvault.com/my-account/customer/signup и вводим токен:
Далее видим всплывающее окно следующего содержания:
Нажимаем Explore Alienvault OSSIM и на этом работа менеджера настройки закончена.
Настройка почтовых уведомлений
В OSSIM есть раздел «Alarm», в котором отображены скоррелированные события безопасности, однако по таким событиям получать уведомления не получится. Зато в системе есть раздел «Tickets», в котором по каждому событию или событиям можно открыть задачу.
«Тикеты» могут создаваться вручную специалистом или автоматически при попадании событий из логов «Security Events (SIEM)» в «Alarms», в случае автоматического открытия «тикета», OSSIM может автоматически отправлять уведомления, чего мы сейчас и настроим.
Настройка почтовых уведомлений проходит в 2 этапа, во первых необходимо настроить postfix, во вторых включить отправку уведомлений.
Открываем SSH и подключаемся к OSSIM:
Выбираем пункт Jailbreak System и попадаем в консоль, вводим:
sed -i -e "s@mailserver_relay=no@mailserver_relay=my.corporate.mail.server@" /etc/ossim/ossim_setup.conf
echo relayhost = my.corporate.mail.server:25 >> /etc/postfix/main.cf
service postfix restart
Примечание: вместо my.corporate.mail.server укажите свой почтовый сервер, при необходимости настройки любых других параметров postfix (авторизвция, защищённое соединение и т.п.) – смотрите документацию по postfix.
Теперь открываем настройки и в разделе администрирования включаем автоматическую отправку уведомлений:
После данной манипуляции, любое скоррелированное событие будет автоматически создавать тикет и уведомлять администратора.
Настройка HIDS
В роли хостовой системы предотвращения вторжений в OSSIM выступает не безызвестный OSSEC, настройку которого мы разберём далее.
Для настройки HIDS переходим в Environment -> Detection -> HIDS -> Agents и видим 2 хоста, первый непосредственно сам AlienVault, второй – Windows Server, который мы установили на пункте «Deploy HIDS» в разделе «Мастера настройки». Заходим в меню агентов HIDS:
Добавим Windows 7 и Ubuntu:
Windows
Для установки HIDS можно использовать режим автоматической установки или скачать готовый exe файл .
Установка в автоматическом режиме не отличается от той, что мы уже делали:
При установке в ручном режиме, с помощью exe файла, OSSEC агент установится в «1 клик», без ввода каких-либо дополнительных параметров:
В случае успеха мы увидим:
Ubuntu
Теперь настроим Ubuntu, подключаемся по SSH и установим OSSEC:
sudo -s
apt-get install curl
curl --header 'Host: www.ossec.net' --header 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: en-US,en;q=0.5' --header 'DNT: 1' --header 'Referer: http://www.ossec.net/?page_id=19' --header 'Connection: keep-alive' 'http://www.ossec.net/files/ossec-hids-2.8.tar.gz' -o 'ossec-hids-2.8.1.tar.gz' –L
Примечание: через wget загрузка не работает, на стороне сервера ossec.net проверяется User-Agent.
tar xzf ossec-hids-2.8.1.tar.gz
cd ossec-hids-2.8/
/bin/bash ./install.sh
Примечание: пункт 3.4, режим активной защиты (IPS вместо IDS) включайте осторожно, в данном случае мы используем только режим детектирования, поэтому оставляет «n» вместо «y».
Теперь получим ключ, для этого возвращаемся обратно в меню агентов HIDS и кликаем на :
Запустим настройку с помощью утилиты /var/ossec/bin/manage_agents, нажимаем I, вводим ключ и выходим(Q):
Перезагрузим OSSEC:
service ossec restart
В случае успеха мы увидим «Active» напротив хоста:
Если какой-либо агент не появился, как активный в списке, можно перезагрузить OSSEC, для этого подключаемся по SSH к OSSIM и производим следующие действия:
На этом установка HIDS закончена, теперь на закладке Environment -> Detection можно увидеть логи OSSEC:
Настройка WIDS
Установку WIDS мы будем осуществлять следующим образом:
- Создадим хост с ОС Debian 6
- Подключим к нему и настроим Wi-Fi карту
- Установим и настроим kismet
- Настроим на OSSIM OpenVPN сервер
- Сконфигурируем связь между OSSIM и Debian 6
- Настроим отправку и запись логов в rsyslog
- Включим плагин kismet
- Настроим импорт по крону логов в формате XML из kismet-а
- Добавим новый сенсор в OSSIM
- Проверим работоспособность решения
Настройка виртуальной машины
Для установки беспроводной IDS системы нам потребуется хост с предустановленным Debian 6.
Создаём новую виртуальную машину на ESXi и добавляем туда USB контроллер и USB Wi-Fi карту:
В данном примере используется USB Wi-Fi карта TOTOLink N500UD.
Установка и настройка Debian
Устанавливаем Debian 6. Все настройки на своё усмотрение, установка Debian стандартная, поэтому в этом мануале опущена.
После установки ОС, подключаемся к SSH и установим драйвера сетевой карты:
wget http://totolink.ru/files/soft/N500UD_Linux_V2.6.1.3.zip
apt-get install unzip
unzip N500UD_Linux_V2.6.1.3.zip
apt-get install build-essential
apt-get install linux-headers-$(uname -r)
make
make install
aptitude install wireless-tools
apt-get install ssh openvpn kismet ntp
reboot
После этого проверяем наличие нового интерфейса в iwconfig:
Настроим отправку логов из Debian в OSSIM:
echo "*.* @10.67.68.1" > /etc/rsyslog.d/wids_alienvault.conf
IP адрес не меняйте, он таким и должен быть. Это IP адрес OpenVPN сервера, который будет впоследствии поднят в OSSIM.
Теперь создадим скрипт /etc/init.d/wids_alienvault.sh следующего содержания:
#!/bin/sh
/usr/bin/kismet_server -l xml -t kismet -f /etc/kismet/kismet.conf 2>&1 | logger -t kismet -p local7.1
Дадим ему права на запуск:
chmod 755 /etc/init.d/wids_alienvault.sh
И впишем его на автозагрузку в /etc/rc.local до exit 0:
Теперь настроим kismet.
В файле /etc/kismet/kismet.conf
Сначала настроим адаптер:
source=rt2500,ra0,ra0-wids
Название чипсета можно посмотреть командой:
lsmod | grep ^usbcore
Настроим время создания XML отчёта:
logexpiry=3600
Настроим имя создаваемых логов, для того, чтобы OSSIM правильно определил, какие файлы нужно импортировать и чистить:
logdefault=10.67.68.10
logtemplate=/var/log/kismet/%n_%D-%i.%l
После перезагрузимся:
reboot
Настройка OpenVPN
Подключаемся к OSSIM по SSH, выбираем пункт «Jailbreak system» и вводим комманду:
alienvault-reconfig --add_vpnnode=WIDS-Sensor
Возвращаемся к Debian и копируем сконфигурированный архив OpenVPN с настройками:
scp root@10.1.193.123:/etc/openvpn/nodes/WIDS-Sensor.tar.gz ~
Применим конфиг:
tar xzf WIDS-Sensor.tar.gz
rm -f WIDS-Sensor.tar.gz
mv * /etc/openvpn/
Проверим OpenVPN:
/etc/init.d/openvpn restart
Ifconfig tun0
Настройка Kismet
Переходим обратно в OSSIM.
Настроим rsyslog:
echo if \$programname contains \'ismet\' then /var/log/kismet.log >> /etc/rsyslog.d/kismet.conf
echo \& \~ >> /etc/rsyslog.d/kismet.conf
service rsyslog restart
Изменим путь к файлу, из которого плагин будет забирать логи:
sed –i –e "s@/var/log/syslog@/var/log/kismet.log@" /etc/ossim/agent/plugins/kismet.cfg
Теперь включим плагин, который будет обрабатывать логи kismet, для этого командой exit выходим в меню OSSIM и включаем плагин:
Если всё сделано верно, мы увидим логи в «Analysis -> Security Events (SIEM)»:
Настройка импорта XML логов
Теперь осталось настроить импорт логов формата XML из Debian.
Это необходимо для того, чтобы OSSIM мог получить не только алерты, а все доступные данные о Wi-Fi клиентах и сетях по близости, которые в последствии будут отражены в Environment -> Detection -> Wireless IDS.
Настроим авторизацию SSH без пароля, для того, чтобы скрипт, получающий XML отчёты и чистящий их с сенсора правильно работал.
В OSSIM выполним:
ssh-keygen
ssh-copy-id root@10.67.68.10
Теперь создадим файл /etc/cron.hourly/kismet следующего содержания:
#!/bin/bash
/usr/bin/perl /usr/share/ossim/www/wireless/fetch_kismet.pl
Cкопируем сам скрипт:
cp /usr/share/ossim/www/wireless/kismet_sites.pl /var/ossim/kismet/kismet_sites.pl
И поправим в нём адрес:
echo \$sites{\'10.67.68.10\'}=\'/var/log/kismet\'\; >> /var/ossim/kismet/kismet_sites.pl
Настройка сенсора
Теперь перейдём в веб интерфейс:
Добавим новый сенсор:
Статус сенсора будет с красным крестиком, так и должно быть:
Теперь переходим в Environment -> Detection -> Wireless IDS и добавляем расположение и сенсор:
После выполним команду:
/usr/bin/perl /usr/share/ossim/www/wireless/fetch_kismet.pl
И в случае успеха получим:
И после этого действия в пункте Environment -> Detection -> Wireless IDS появятся данные:
Настройка сбора системных логов
Настроим сбор логов с VMware ESXi, Windows сервера и Ubuntu.
Для сбора логов нам необходимо произвести следующие действия:
- Настроить отправку логов с хостов в OSSIM
- Посмотреть, из какого файла плагин OSSIM, обрабатывающий события, считывает логи
- Настроить запись логов с хостов в отдельные файлы, через конфигурацию rsyslog
- Включить плагин
- Проверить работоспособность
VMware
Сначала настроим отправку логов в ESXi, для этого открываем расширенные настройки:
И включаем отправку логов по UDP:
После посмотрим, откуда плагин ESXi будет забирать логи
cat /etc/ossim/agent/plugins/vmware-esxi.cfg | grep location
Настроим rsyslog:
echo if \$fromhost-ip == \'10.1.193.76\' then -/var/log/vmware-esxi.log >> /etc/rsyslog.d/esxi.conf
service rsyslog restart
Теперь включим плагин, подключаемся по SSH к OSSIM:
Открываем Analysis -> Security Events (SIEM) и проверяем:
Windows Server
Для отправки логов с Windows, нам потребуется программа Snare, которая позволяет отправлять системные логи в формате syslog-а.
Скачиваем и запускаем:
Включаем web доступ:
Завершаем установку:
Открываем в браузере адрес: localhost:6161
Вводим логин snare, пароль тот, который указывали во время установки, переходим в «Network configuration» и указываем:
После сохраняем настройки, открываем консоль и перезагружаем snare:
net stop snare
net start snare
Проверяем, откуда плагин получает логи:
cat /etc/ossim/agent/plugins/snare.cfg | grep location
Теперь настроим rsyslog. В настройках rsyslog уже есть предустановленный конфиг snare(zzzzz_snare.conf), который мы сейчас немного исправим, руководствуясь форумом OSSIM, заменив всего 1 параметр:
sed -i -e "s@msg@rawmsg@" /etc/rsyslog.d/zzzzz_snare.conf
service rsyslog restart
Теперь настроим плагин, по аналогии с настройкой VMware, за исключением выбора самого плагина:
После перезапуска проверим в Analysis -> Security Events (SIEM):
Ubuntu
Для настройки Ubuntu мы будем использовать rsyslog. Подключаемся к Ubuntu по SSH и настраиваем отправку логов в OSSIM:
echo *.* @10.1.193.123 > /etc/rsyslog.d/alienvault.conf
service rsyslog restart
Проверяем, откуда плагин берёт логи:
cat /etc/ossim/agent/plugins/syslog.cfg
Меняем путь к файлу логов:
sed –i –e "s@/var/log/syslog@/var/log/ubuntusyslog.log@" /etc/ossim/agent/plugins/syslog.cfg
Теперь настроим rsyslog в OSSIM:
echo if \$fromhost-ip == \'10.1.193.77\' then -/var/log/ubuntusyslog.log >> /etc/rsyslog.d/ubuntu.conf
service rsyslog restart
Включаем плагин, по аналогии с предыдущими пунктами, только в списке плагинов выбираем нужный:
Применяем и проверяем:
Примечание
Если после выбора пункта «Apply changes» вы не увидели окно «AlienVault Reconfig»
Перезагрузите OSSIM (в последней версии 4.15.2 периодически появляется такой баг)
Для решения проблем с парсингом логов в кодировке cp1251 (кириллица) необходимо выполнить следующее:
В файле /usr/share/alienvault/ossim-agent/ParserDatabase.py в строку 288 после:
if len(ret) > 0:
#We have to think about event order when processing
cVal = ret[len(ret) - 1][ref]
for e in ret:
Вставить:
e=list(e)
x=[x.decode('cp1251').encode('utf8') if isinstance(x, basestring) else x for x in e] ## change for encoding cp1251
e=x
e=tuple(e)
В файле /usr/share/alienvault/ossim-agent/TailFollowBookmark.py в строку 163 после:
def _open_file(self, fromrotate=False):
"""
Opens the file and seeks to the specified position based on
the keyword arguments: offset and whence. Furthermore, the
_current_file attribute is set as a side-effect.
fromrotate: Indicates if the file is opened when a
log rotation is detected
"""
Вставить:
if «alerts.log» in self.filename:
self.encode='cp1251'
else:
self.encode='utf8'
Ссылка на форум, где велось обсуждение проблемы с кодировкой.
За информацию о решении данного бага большое спасибо пользователю dolph2005
Интеграция с ArcSight
Теперь попробуем настроить интеграцию OSSIM с SIEM системой ArcSight.
Подобная связка может сэкономить десятки миллионов на лицензиях ArcSight, если кроме основного офиса у компании есть десятки небольших филиалов, которые необходимо защищать и мониторить.
Цель данного раздела – отправлять в ArcSight уже скоррелированные OSSIM-ом логи, а не коррелировать их на стороне ArcSight, увеличивая нагрузку.
Для этого необходимо установить коннектор (тип коннектора Syslog), добавить следующий FlexAgent:
# FlexAgent Regex Configuration File
do.unparsed.events=true
regex=\\D+ AV-FREE-FEED (\\D+) DST_IP -- SRC_IP: (\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}) , DST_IP: (\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}), Alarm: directive_event: AV-FREE-FEED \\D+ (\\d) (.*)
token.count=5
token[0].name=Event_Name
token[0].type=String
token[1].name=SRC_IP
token[1].type=IPAddress
token[2].name=DST_IP
token[2].type=IPAddress
token[3].name=Dev_Severity
token[3].type=String
token[4].name=Event_Message
token[4].type=String
event.name=Event_Name
event.sourceAddress=SRC_IP
event.destinationAddress=DST_IP
event.deviceSeverity=Dev_Severity
event.message=Event_Message
event.deviceVendor=__getVendor(AlienVault)
event.deviceProduct=__stringConstant(OSSIM)
В папку коннектора и далее в «user\agent\flexagent\syslog». Название файла сделать «ossim.sdkrfilereader.properties»
В файле agent.properties изменить строчку agents[0].customsubagentlist, дописав туда «ossim», пример:
agents[0].customsubagentlist= ossim|ciscopix_syslog|netscreen_syslog|…
И строчку agents[0].usecustomsubagentlist поставить true.
Далее зайти в настройки OSSIM:
И включить отправку alarm в syslog:
После настроить отправку логов в rsyslog OSSIM.
В файле /etc/rsyslog.conf добавить строчку:
*.* ip.вашего.Flex.агента
После этого в коннекторе ArcSight появится уже распарсенные, скоррелированные логи: