Pull to refresh

Host IPS что это? и с чем его едят?

Host-based IDS — OSSEC
Так получилось, что в организации, где я работаю в настоящее время, вопросами обеспечения информационной безопасности до недавнего времени мало уделялось внимания. В последнее время случилось несколько инцидентов, связанных со взломом почтового сервера, сайта. Было принято решение проработать возможные решения по повышению уровня ИБ. Помимо других средств и мер защиты, решено было внедрить Host-Based IDS.
Что такое HIPS?
— система, которая анализирует текущие событий определенного хоста(сервера), выявляет подозрительные/злоумышленные действия и предупреждает администратора об этом либо самостоятельно пытается их предотвратить.
Так как бюджет на нужды ИБ, как всегда, небольшой, решено было проработать open source решения, и выбор после недолгих поисков выбор пал продукт под названием ossec.
Что есть ossec? OSSEC — HIDS-системой (Система обнаружения вторжений, инсталлируемая на хосты сети). Возможны несколько вариантов установки данной системы:
— локальный – вы устанавливаете ossec на локальном сервере(хосте) и продукт мониторит подозрительную активность на нем.
— сетевой – вы устанавливаете сервер ossec, на которые будут стекаться информация от агентов или по syslog.
Подробнее с данной системой можно ознакомиться на официальном сайте проекта
В этой статье я хотел бы остановиться на установке и настройке сервера ossec, web-интерфейса для него, а также устаноки агентов на сервера под управлением ОС семейства Linux. Установку ossec проводил на x86 сервер под управлением CentOS release 6.4.
1. Установка и настройка сервера:
Я устанавливал ossec из скаченных rpm-файлов с
Можно также подключить rpm-репозиторий (как подключить, указано на сайте проекта) и менеджером пакетов скачать и установить ossec.
yum install inotify-tools-devel inotify-tools – необходимые для установки ossec пакеты.
rpm -ivh ossec-hids-2.6-5.el6.art.i686.rpm – установка ossec
rpm -ivh ossec-hids-server-2.6-5.el6.art.i686.rpm – установка ossec-сервера
2. Файлы настройки и бинарники, а также файлы логирования продукта по умолчанию располагаются в директории /var/ossec.
Редактируем конфиг/var/ossec/etc/ossec.conf:
Указываем, параметры smtp:
<email_notification>yes</email_notification>
<email_to>aib@example.com</email_to>
<smtp_server>smtp.example.com</smtp_server>
<email_from>ossecm@example.com</email_from>

Уменьшаем частоту сканирования файлов:

7200
Редактируем список адресов, к которым возможно применение функции active responce:
<white_list>127.0.0.1</white_list>
<white_list>192.168.2.1</white_list>
……….

Описываем, оповещения какого уровня записывать в файл лога, а какие отсылать по email.
<log_alert_level>1</log_alert_level>
<email_alert_level>5</email_alert_level>

Остальные настройки остаются по умолчанию, в дальнейшем их можно расширять и дополнять, изменять и экспериментировать.
Запускаем ossec — Service ossec-hids start или /var/ossec/bin/ossec-control start. Не забываем добавить ossec в автозапуск.
3. На серверах, на которых предполагается установка клиентов:
yum install inotify-tools
Из rpm-пакетов установить агента ossec не удалось (постоянно не хватало каких-то библиотек, которые при серверной установке почему-то не требовались). Подключением репозитория atomic тоже не удалось решить проблему, так как в репозиториях почему-то не удалось обнаружить ossec-agent, а вот установка из исходников, скаченных с сайта проекта, установка прошла на ура.
tar xzvf ossec-hids-2.6.tar.gz
cd ossec-hids-2.6
./install.sh. Выводится интерактивный терминал, где можно выбрать русский язык и установить агент, указав в процессе установки ip-адрес сервера.
/var/ossec/bin/ossec-control start
4. Каждый агент для получения доступа к серверу должен указать свой уникальный ключ. Для создания такого ключа или удаления агента, на сервере используется менеджер агентов.
/var/ossec/bin/manage-agents.
В интерактивном режиме выбираем «А», следуя инструкциям добавляем агента. Чтобы просмотреть сгенерированный криптографический ключ в конце вводим «Е» и указываем id-агента, присвоенный агенту на предыдущих шагах. Копируем с окна терминального подключения полученный ключ.
На клиенте:
/var/ossec/bin/manage-agents, выбираем «I» и вставляем ключ агента.
Перезапускаем демон: /var/ossec/bin/ossec-control start
5. Не забываем открыть доступ к серверу ossec по udp 1514.
iptables -I INPUT 3 -s 10.200.0.0/16 -p udp --dport 1514 -m state --state NEW -j ACCEPT
Проверяем на сервере список активных агентов:
bin/list_agents –c – должен быть указан ранее добавленный агент(ы).

6. Можно после этого посмотреть файл лога ossec, так уже должны появиться оповещения о контрольных суммах файлов, которые включены в проверку и так далее.
Файл текущего лога располагается в /var/ossec/logs/logs/alerts/alerts.log
7. Перейдем к настройке web-интерфейса, так как смотреть через консоль не особо удобно. Но хочу отметить, что web-интерфейс, достаточно простенький и не реализует кучу функций для просмотра и поиска. Установку производим из исходников.
tar xzvf ossec-wui-0.3.tar.gz
Проверяем наличие Apache и php (>= 4.1 или >= 5.0)
mv ossec-wui-0.3 /var/www/- копируем в дефолтную директорию Apache
Запускаем скрипт ossec-wui-0.3/setup.sh. Логин и пароль, которые будут введены, будут в дальнейшем использоваться для доступа к web-интерфейсу.
cd ossec-wui-0.3/
Добавлям в /etc/group пользователя apache в группу ossec.
Меняем разрешения на папку ossec-wui-0.3/tmp: chmod 770 tmp/ -R и группу имеющую доступ к каталогу chgrp apache tmp/ -R.
Разрешаем доступ по http к серверу.
iptables -I INPUT 3 -s 10.200.16.54 -p tcp --dport 80 -m state --state NEW -j ACCEPT.
В /etc/httpd/conf/httpd.conf добавляем:
Alias /ossec "/var/www/ossec-wui-0.3/"
<Directory /var/www/ossec-wui-0.3/>
Options none
AllowOverride All
Order Deny,Allow
Allow from all

8. Стоит отметить, что система ossec относится к системам безопасности, но при этом, на официальном сайте продукта написано, что необходимо отключить или настроить selinux для работы WUI, но при этом параметры настройки selinux не приводятся.
Естественно я решил настроить selinux и вообще не являюсь сторонником того, что selinux стоит отключать.
restorecon -R ossec-wui-0.3/
проверить ls –Z ossec-wui-0.3/
В разрешениях selinux должен быть следующий вывод: unconfined_u:object_r:httpd_sys_content_t:s0
Для доступа с web-страницы к алертам, собираемым ossec, изменяем метки selinux следующих файлов.
chcon --type=httpd_sys_content_t -R /var/ossec/logs/alerts/2012/
chcon --type=httpd_sys_content_t -R /var/ossec/queue/syscheck/
chcon --type=httpd_sys_content_t -R /var/ossec/stats/
Запускаем Apache: service httpd start.
Проверяем доступность WUI: http:///ossec/.
Кстати, в ossec-wui-0.3.tar.gz, есть скрипт setup.sh, который при выполнении задать ограничение по доступу к WUI с использованием .htaccess.
9. При перезапуске ossec-сервера выскакивала ошибка, и сервисы не запускались. В логах была информация, что ossec-analysisd не может прочитать файл etc/internal_options.conf.
Изменил группу, владеющую файлом на ossec: chgrp ossec etc/internal_options.conf, ошибка исчезла, демон запустился.
10. Чтобы проверить исправность отправки почты ossec целесообразно уменьшить уровень сообщений, отправляемых ossec с дефолтного 7 на 3 или 2. Затем лучше вернуть уровень на делфотный, так как количество отрпавляемых сообщений может быть избыточным.

В ходе работы OSSEC периодически могут возникать ситуации, когда OSSEC реагирует на события, которые не являются злоумышленными. Для этих случаев есть local_rules, в которые можно внести необходимые правила фильтрации, чтобы OSSEC не присылал сообщения по этим событиям.
Кроме того, на мой взгляд полезной функцией OSSEC является возможность отсылки информации на SIEM Arcsight, причем в сразу понятном Arcsight формате.
Данная статья не претендует на полное и всеобъемлемущее описание ossec как продукта, но думаю поможет в установке и настройке системы тем, кто планирует делать это с нуля. В следующей статье опишу порядок сбора alert по syslog с активного сетевого оборудование, возможности ossec по активному противодействию угрозам.
PS: буду благодарен за комментарии и критику (это моя первая статья)
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.