OSSIM — разворачиваем комплексную open source систему управления безопасностью


OSSIM (Open Source Security Information Management) — система управления, контроля и обеспечения информационной безопасности.  OSSIM «из коробки» включает в себя такой функционал как:

  • Сбор, анализ и корреляция событий — SIEM
  • Хостовая система обнаружения вторжений (HIDS) — OSSEC
  • Сетевая система обнаружения вторжений (NIDS) — Suricata
  • Беспроводная система обнаружения вторжений (WIDS) — Kismet
  • Мониторинг узлов сети- Nagios
  • Анализ сетевых аномалий – P0fPADSFProbeArpwatch и др.
  • Сканер уязвимостей – OpenVAS
  • Мощнейшая система обмена информацией об угрозах между пользователями OSSIM — OTX
  • Более 200 плагинов для парсинга и корреляции логов со всевозможных внешних устройств и служб

Предисловие

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

Стоит заметить, у AlienVault есть 2 продукта, бесплатный OSSIM и более продвинутая версия — USM, различия можно посмотреть по этой ссылке.
В качестве бонуса последней главой статьи выложил информацию об интеграции OSSIM с SIEM системой ArcSight.

Оглавление

Установка OSSIM

Настройка OSSIM

Использованные источники

Установка 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 мы будем осуществлять следующим образом:

  1. Создадим хост с ОС Debian 6
  2. Подключим к нему и настроим Wi-Fi карту
  3. Установим и настроим kismet
  4. Настроим на OSSIM OpenVPN сервер
  5. Сконфигурируем связь между OSSIM и Debian 6
  6. Настроим отправку и запись логов в rsyslog
  7. Включим плагин kismet
  8. Настроим импорт по крону логов в формате XML из kismet-а
  9. Добавим новый сенсор в OSSIM
  10. Проверим работоспособность решения
Настройка виртуальной машины

Для установки беспроводной 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 [email protected]:/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 [email protected]


Теперь создадим файл /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.
Для сбора логов нам необходимо произвести следующие действия:

  1. Настроить отправку логов с хостов в OSSIM
  2. Посмотреть, из какого файла плагин OSSIM, обрабатывающий события, считывает логи
  3. Настроить запись логов с хостов в отдельные файлы, через конфигурацию rsyslog
  4. Включить плагин
  5. Проверить работоспособность
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 появится уже распарсенные, скоррелированные логи:

Использованные источники

Поделитесь с друзьями

Добавить комментарий

0 комментариев
Новіші
Старіші Найпопулярніші
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x