Инструкция: внедряем HIDS OSSEC / Хабр

您所在的位置:网站首页 ossec Инструкция: внедряем HIDS OSSEC / Хабр

Инструкция: внедряем HIDS OSSEC / Хабр

2024-07-01 14:11| 来源: 网络整理| 查看: 265

OSSEC (Open Source Host-based Intrusion Detection System) – это хостовая система обнаружения вторжений. Если у вас появилась задача проверки контроля целостности файлов на ваших серверах, логирования различных действий на серверах, получения событий безопасности с ваших серверов (а также любых других) и оповещений об этих событиях, вывода различных отчетов и многое другое, то HIDS OSSEC — отличное решение под эти задачи. OSSEC может работать локально, по схеме агент + сервер и в гибридном режиме (агент->сервер->сервер). Мы будем рассматривать схему агент + сервер и работу в гибридном режиме.

Содержание Установка OSSEC Настройка конфигурационного файла OSSEC Добавление агентов Настройка конфигурационного файла для агентов Email оповещения Работа с агентами и получение отчетов Вывод данных в другие системы Работа OSSEC в гибридном режиме Установка OSSEC Установим на ОС Ubuntu 14.04 Установим необходимые пакеты для установки OSSEC: apt-get install make gcc libssl-dev Скачиваем OSSEC с офф.сайта:

http://www.ossec.net/files/ossec-hids-2.8.2.tar.gz tar -xvf ossec-hids-2.8.2.tar.gz cd ossec-hids-2.8.2 Запустим установочный скрипт ./install.sh. Выбираем язык (en). Отвечаем на вопросы:

1) What kind of installation do you want (server, agent, local, hybrid or help)? Выбираем server. 2) Выбираем путь установки. 3) Do you want e-mail notification? (y/n) [y]: Указываем параметры smtp сервера для получения email оповещений. 4) Do you want to run the integrity check daemon? (y/n) [y]: Включаем демон проверки целостности файлов. 5) Do you want to run the rootkit detection engine? (y/n) [y]: Включаем проверку руткитов. 6) Do you want to enable active response? (y/n) [n]: Включаем режим IPS. Работу этого режима в этом примере рассматривать не будем. 7) Do you want to enable remote syslog (port 514 udp)? (y/n) [y]: y Ждем завершения установки.

По умолчанию OSSEC установится в каталог /var/ossec/. Директории с бинарными файлами — /var/ossec/bin/. Директории с конфигурационными файлами — /var/ossec/etc/. Директории с логами — /var/ossec/logs/. Для работы агентов с сервером необходимо открыть порт 1514udp.

Настройка конфигурационного файла OSSEC Откроем конфиг файл. nano /var/ossec/etc/ossec.conf.

Секция global. В этой секции мы настроим email оповещения:

yes Включено оповещение по почте [email protected] Кому отправлять оповещения mail.ossec.ru Ваш SMTP Сервер [email protected] От кого отправляем 100 Максимальное количество писем отправляемых за час Секция syscheck. В этой секции находятся параметры проверки целостности файлов:

18000 Периодичность запуска проверки в секундах /etc,/usr/bin,/usr/sbin,/boot,/opt,/lib,/lib64 Каталоги для проверки /etc/mtab Указываем файлы которые нужно игнорировать Разберем дополнительные параметры проверки целостности файлов. Если нам необходимо запускать проверку в определенное время, то можно воспользоваться параметром scan_time или scan_day:

Пример 04:00 # запуск проверки в 4 утра Если нам необходим постоянный контроль целостности, каких-либо файлов, на этот случай существует параметр realtime:

/etc,/usr/bin,/usr/sbin Постоянный контроль конкретных файлов включить нельзя, необходимо указать каталог, где этот файл находится. Также можно включить запуск проверки при старте ОС:

yes Если нам потребуется включить оповещения о появлении новых фалов в каталогах, можно воспользоваться параметром alert_new_files:

yes В секции rootcheck указываются файлы с сигнатурами руткитов.

В секциях localfile указывается лог файлы, которые ossec будет мониторить.

На основе декодеров и правил, которые находятся в /var/ossec/etc/decoders.xml и /var/ossec/rules/, OSSEC будет обрабатывать события из этих лог файлов. По умолчанию OSSEC имеет довольно большое количество правил, подключать/отключать их можно в секции rules. Если этих правил вам не хватает или некоторые из них устарели, никто вам не мешает изменять их или писать свои.

В секциях command и active-response находятся конфигурации режима IPS. Можно настроить реагирование на какое-либо событие. В /var/ossec/active-response/bin/ находятся дефолтные скрипты, которые можно применить при наступлении какого-либо события. При нехватке этих скриптов можно добавить свои.

Добавление агентов apt-get install make gcc libssl-dev Установим OSSEC агент из этого же дистрибутива, только при установке выберем режим agent. 3.1- What's the IP Address or hostname of the OSSEC HIDS server? Укажем IP-адрес нашего OSSEC сервера. Снова включим модуль проверки целостности и поиска руткитов. Ждем завершения установки.Теперь необходимо связать ossec агент с нашим сервером. Для этого существует два способа.

1-й способ Идем на сервер и запускаем менеджер работы с агентами:

/var/ossec/bin/manage_agents Выбираем A (A)dd an agent (A). Далее пишем имя нашего агента. Указываем ip адрес нашего агента. Выбираем идентификатор агента, можно оставить id который предлагает OSSEC. Confirm adding it?(y/n):y Подтверждаем добавление агента. Далее выбираем (E)xtract key for an agent. Указываем id нашего нового агента. Копируем base64 строку и нажимаем Enter. Выбираем Q выход из менеджера работы с агентами. Рестартим сервер для успешного добавления агента:

/etc/init.d/ossec restart Далее идем на наш агент и заходим в менеджер работы с агентами:

/var/ossec/bin/manage_agents Выбираем (I)mport key from the server для добавления ключа который мы скопировали. Вставляем ключ и подверждаем добавление агента и выходим. Далее можно запускать наш агент.

/etc/init.d/ossec start Должно прийти уведомление по почте о том, что новый агент подключен. Идем на сервер, чтобы проверить подключился ли агент.

Запускаем /var/ossec/bin/agent_control –l Мы должны увидеть в списке ваш агент со статусом Active. Также в /var/ossec/logs/alerts.alerts.log мы должны увидеть событие. New ossec agent connected. Агент успешно добавлен.

2-й способ Идем на сервер. Генерируем сертификат для нашего сервера:

# openssl genrsa -out /var/ossec/etc/sslmanager.key 2048 # openssl req -new -x509 -key /var/ossec/etc/sslmanager.key -out /var/ossec/etc/sslmanager.cert -days 365 Запускаем демон, который будет ожидать регистрации агентов по порту 1515:

/var/ossec/bin/ossec-authd -p 1515 >/dev/null 2>&1 & Переходим на машину с агентом:

Добавляем агент

/var/ossec/bin/agent-auth -m 192.168.1.113(ip адрес сервера) -p 1515 Стартуем агент /etc/init.d/ossec start. Переходим обратно на сервер и смотрим, появился ли наш агент:

/var/ossec/bin/agent_control –l Мы должны увидеть нового агента, имя агента будет совпадать с hostname. Для успешного подключения агента необходимо рестартнуть OSSEC сервер. Этот способ добавления очень удобен, т.к не требует от администратора сервера OSSEC многих действий по работе с ключами. Для работы этого режима, как на сервере, так и на агенте, необходимо производить установку OSSEC с пакетом libssl-dev.

Настройка конфигурационного файла агентов Настройка конфигурационного файла для агентов мало чем отличается от настройки этого файла для сервера. Там также есть секции syschek, rootkit, localfile и прочие. Но удобнее держать один конфигурационный файл для агентов на сервере, а агенты будут сами подхватывать этот конфиг.файл и его изменения.

Для этого нам необходимо на сервере в /var/ossec/etc/shared/ создать файл agent.conf – это и будет наш общий конфигурационный файл. В этом файле можно делать разные конфигурации для наших агентов, которые можно разбить по нескольким типам: — Имя агента. Можно сделать конфигурацию для нескольких агентов и перечислить их имена.

настройки проверки контроля целостности настройки проверки руткитов настройки просмотра файлов — Профиль сервера. Можно сделать конфиграции для групп серверов(например веб-серверы, базы данных и т.д):

настройки проверки контроля целостности настройки проверки руткитов настройки просмотра файлов — Тип ОС. Можно сделать конфигурации в зависимости от типа ОС:

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

/var/ossec/bin/verify-agent-conf В итоге в /var/ossec/etc/ossec.conf на агенте можно оставить несколько строк:

dns_имя_нашего сервера #или ip_сервера наш_профиль, lowmemory Остальную часть конфигурации агент подхватит с сервера.

Email оповещения Настройки для работы email оповещений мы уже указали в секции global конфигурационного файла OSSEC сервера. В каждом событии из правил ossec есть уровень критичности, если мы хотим получать email оповещения не ниже какого-то определенного уровня, мы можем это настроить в секции alerts:

1 7 Также мы можем настроить email оповещения для событий из каких-либо определенных групп сообщений(группы указаны в правилах ossec).

[email protected] apache Если мы захотим получать sms сообщения, то в ossec для этого есть спец формат.

[email protected] 7 sms

Работа с агентами и получение отчетов /var/ossec/bin/agent_control –l Получения списка всех агентов:

/var/ossec/bin/agent_control –i id_агента Получение информации о агенте, интересна здесь контрольная сумма файла конфигурации. Ее можно сравнить с конфигурацией на сервере:

md5sum /var/ossec/etc/shared/agent.conf Если контрольные суммы не совпадают, значит агент не подхватил конфиг с сервера.

/var/ossec/bin/agent_control –R id_агента Перезапуск агента, обычно необходимо для применения изменений в конфиге для агентов.

/var/ossec/bin/agent_control -r –a Принудительный запуск проверки целостности и поиска руткитов на всех агентах:

/var/ossec/bin/agent_control -r –u id_агента Тоже самое, но только для определенного агента:

/var/ossec/bin/syscheck_update -h Обнуление счетчиков контрольных сумм файлов:

/var/ossec/bin/syscheck_update -h -l List available agents. -a Update (clear) syscheck database for all agents. -u Update (clear) syscheck database for a specific agent. -u local Update (clear) syscheck database locally. Для получения отчетов в консоли можно пользоваться этим:

/var/ossec/bin/ossec-reportd Примеры:

Вывод всех алертов за сегодняшнего дня - cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd -s Вывод всех алертов за определенный день - zcat /var/ossec/logs/alerts/2014/Dec/ossec-alerts-29.log.gz | /var/ossec/bin/ossec-reportd -s Вывод всех алертов о смене конторльных сумм за день - cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd -s -f group syscheck Вывод всех неудачных попыток авторизации за день - cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd -s -f rule 5503 Вывод всех неудачных попыток авторизации по ssh за день - cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd -s -f rule 5716 Вывод всех установленных пакетов за день - cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd -s -f rule 2902 Вывод всех удаленных пакетов за день - cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd -s -f rule 2903 Вывод попыток брутфорса ssh за день - cat /var/ossec/logs/alerts/alerts.log | /var/ossec/bin/ossec-reportd -s -f rule 5712 Вывод данных за месяц - zcat /var/ossec/logs/alerts/2009/Jul/*.gz | /var/ossec/bin/ossec-reportd -s Можно получать отчеты о смене контрольных сумм файлов определенного агента или какого либо файла. /var/ossec/bin/syscheck_control Вывод данных в другие системы Кроме вывода событий в файлы alerts и в виде email оповещений, в OSSEC можно настроить вывод событий в другие системы или в БД.

Вывод в SIEM Prelude Для вывода событий в SIEM Prelude необходимо перед установкой OSSEC server установить пакет libprelude-dev и и добавить поддержку prelude

cd ossec-hids-2.8.2/src/ # make setprelude cd .. ./install.sh Сделаем вывод из ossec в PreludeManager. Для этого откроем /var/ossec/etc/ossec.conf. В секцию global добавляем строку yes.

Теперь подключим OSSEC к prelude. Запускаем в одном терминале:

prelude-admin registration-server prelude-manager The «p9dfqy34» password will be requested by «prelude-admin register» in order to connect. Please remove the quotes before using it.

Generating 1024 bits Diffie-Hellman key for anonymous authentication… Waiting for peers install request on 0.0.0.0:5553… Waiting for peers install request on :::5553...

В другом терминале добавляем OSSEC командой:

# prelude-admin register OSSEC "idmef:w" 127.0.0.1 --uid ossec --gid ossec Generating 2048 bits RSA private key… This might take a very long time. [Increasing system activity will speed-up the process]. Generation in progress… X

Теперь запустим оба демона.

/etc/init.d/prelude-manager start /etc/init.d/ossec restart Теперь можем наблюдать события из OSSEC в Prelude.

Вывод событий в БД Для вывода событий событий в БД необходимо добавить поддержку БД перед установкой OSSEC:

cd ossec-hids-2.8.2/src/ # make setdb cd .. ./install.sh Позже добавить параметры подключения к БД в конфигурационном файле. Пример:

192.168.2.32 db_test db_pass1 ossecdb mysql Поддерживаемые БД: MySQL и PostgreSQL. Схемы баз данных есть в офф.документации.

Далее необходимо включить вывод в БД:

/var/ossec/bin/ossec-control enable database /var/ossec/bin/ossec-control restart Вывод в другие системы через syslog Необходимо добавить в конфиг.файл следующие строки:

ip_address 514 default Включить вывод:

/var/ossec/bin/ossec-control enable client-syslog Часто через syslog из OSSEC выводят события в SPLUNK, Logstash, различные SIEM.

Работа OSSEC в гибридном режиме Гибридный режим в OSSEC служит для того, чтобы построить схему Агент -> Сервер -> Основной сервер, иными словами для форварда событий на головной OSSEC сервер. В этом режиме на сервере работает как OSSEC агент, так и OSSEC сервер.

Чтобы установить OSSEC в гибридном режиме необходимо запустить установочный скрипт и выбрать режим установки hybrid, ответить на все вопросы и в процессе установке указать ip адрес основного сервера.

Все файлы от агента находятся в каталоге /var/ossec/ossec-agent/. Запуск, Стоп, Рестарт агента производится с помощью:

/var/ossec/ossec-agent/bin/ossec-control start|stop|restart Чтобы добавить этого агента к основному серверу необходимо также установить ключ, созданный на основном сервере.

/var/ossec/ossec-agent/bin/manage_agents Теперь этот агент будет читать файл /var/ossec/logs/alerts/alerts.log и передавать эти события на основной сервер.

У меня при работе этого режима агент через некоторое время переставал читать этот лог. С проблемой помогла установка этого патча: github.com/ddpbsd/ossec-hids/tree/ossecalert

Сейчас на моем OSSEC сервере подключено 135 агентов, есть как сервера на Windows, так и на Linux (Ubuntu, Debian, CentOS).

Ссылки — www.ossec.net — Книга OSSEC HIDS Host-Based Intrusion Detection Guide


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3