D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Автор: NomadSP
Источник: XSS.is
Сетевая безопасность это важный аспект любой инфраструктуры, так как связь с внешним миром это как преимущество в работоспособности, так и уязвимость, которая без должного внимания со стороны безопасника, является критической брешью.
Однако, многие, концентрируясь на сетевой безопасности, забывают о том, что потенциальные угрозы возникают и на уровне аппаратном, то есть - отдельных устройств. Поэтому, я считаю необходимым разобрать HIDS и методы обеспечения защиты от угроз.
Для начала, что такое HIDS.
HIDS, Host-based Intrusion Detection Systems - это инструменты безопасности, которые устанавливаются на отдельных устройствах (хостах) для мониторинга и анализа их активности. Основная цель HIDS - выявление подозрительных действий и потенциальных угроз на уровне конкретного устройства.
Поэтому, сегодня мы разберём несколько инструментов и научимся их настраивать для получения максимальной отдачи.
OSSEC.
OSSEC - это мощная система обнаружения вторжений, которая поддерживает множество платформ и предлагает функции мониторинга логов, проверки целостности файлов и анализа.
Именно с ней мы и будем работать, так как этот инструмент свободно доступен на GitHub.
Шаг 1. Установка.
Bash: Скопировать в буфер обмена
Установщик предложит нам 2 разных типа:
1. Локальный.
2. Серверный.
Исходя из ваших требований, вы можете выбрать удобный вариант.
Шаг 2. Конфигурация.
Обычно файл конфигурации находится по пути: /var/ossec/etc/ossec.conf, поэтому предлагаю настроить правила, агенты и другие параметры.
Открываем файл конфигурации.
Bash: Скопировать в буфер обмена
Шаг 3. Настраиваем основные параметры.
В файле вы можете настраивать разные параметры, такие как:
1. Логи.
2. Правила мониторинга.
3. Агенты.
Пример базовой конфигурации выглядит примерно следующим образом:
XML: Скопировать в буфер обмена
Сохраняем изменения и выходим из редактора(Ctrl+0, Ctrl+X).
Шаг 4. Перезапускаем OSSEC.
Для применения изменений необходимо перезапустить сервис:
Bash: Скопировать в буфер обмена
Шаг 5. Установка агента.
Для того, чтобы получать данные о каждом агенте(клиенте) необходимо установить OSSEC на целевом устройстве с помощью команды из Шаг 1.
Шаг 6. Выбор типа установки.
Во время установки выбираем "Agent".
Шаг 7. Настраиваем агента.
Открываем конфигурационный файл с помощью:
Bash: Скопировать в буфер обмена
Нам необходимо указать IP или имя хоста вашего сервера, на котором установлен OSSEC:
XML: Скопировать в буфер обмена
После добавления, так же сохраняем и выходим из редактора.
Шаг 8. Перезапускаем агент.
Bash: Скопировать в буфер обмена
Шаг 9. Добавляем агента в мастер клиент на сервере.
На сервере, где установлен OSSEC необходимо выполнить следующую команду для добавления нового агента:
Bash: Скопировать в буфер обмена
Выбираем "А"(add agent) и вводим его имя + IP.
Далее сохраняем изменения и закрываем утилиту управления агентами.
Шаг 10. Настраиваем ключ клиента.
После добавления агента, нам так же стоит получить ключ для него, выбрав в клиенте опцию "E"(extract key). Копируем сгенерированный ключ к себе.
Далее снова выполняем команду по открытию утилиты управления агентами и выбираем опцию "I"(import keys) и вставляем туда наш созданный ключ.
Шаг 11. Перезапускаем агент и проверяем статус.
Перезагружаем агента командой:
Bash: Скопировать в буфер обмена
Проверяем статус подключения агента на сервере:
Bash: Скопировать в буфер обмена
К слову, это покажет список всех активированных агентов и их статусы.
Таким образом мы получаем настроенный OSSEC на сервере, который так же будет проводить мониторинг активности на устройстве, куда он был установлен.
Правила, логгирование, агенты это всё настраиваемо, например, создадим файл правил local_rules.xml в директории /var/ossec/etc/rules/, чтобы правила срабатывали при попытке входа через SSH(правило 10001), несанкционированном подключении через IP(правило 10002) и использовании команды sudo на устройстве(правило 10003).
XML: Скопировать в буфер обмена
Так же мы проставили уровни важности, исходя из приоритетов(5, 7 и 10).
Не забываем, что нам необходимо применить правила в файле конфигурации /var/ossec/etc/ossec.conf
Выглядят необходимые строки в файле как:
XML: Скопировать в буфер обмена
Далее перезапускаем OSSEC для применения нововведений.
В целом, нам бы хватило и этого, но получаемые выводы надо так же связать с системами мониторинга и реагирования, поэтому рассмотрим подобную опцию.
Интеграция OSSEC с Samhain и Zabbix Sender.
Данная интеграция - отличный способ обеспечить многоуровневую защиту.
Samhain - является инструментом для мониторинга целостности файлов и обнаружения вторжений, который поддерживает ещё и сетевой мониторинг, как, собственно, и Zabbix. Приступим к настройке нашей связки.
Шаг 1. Устанавливаем Samhain.
Bash: Скопировать в буфер обмена
Шаг 2. Настраиваем файл конфигурации.
Откроем файл:
Bash: Скопировать в буфер обмена
Пример:
Код: Скопировать в буфер обмена
Пояснения:
- log_level: Указывает уровень детализации логирования. Чем выше число, тем больше информации будет записано.
- ossec_log_path: Путь к логам OSSEC, которые будут отслеживаться Samhain.
- track_events: Включает или отключает отслеживание событий.
- monitor_files: Указывает директории, которые будут мониториться на изменения.
- notify_on_event: Включает уведомления при возникновении событий.
- notify_email: Указывает адрес электронной почты для отправки уведомлений.
- sensitivity_level: Уровень чувствительности для мониторинга изменений. Более высокий уровень означает более строгие проверки.
- check_interval: Интервал между проверками целостности файловой системы в секундах.
- exclude_paths: Список путей, которые не будут отслеживаться.
Я привёл в пример довольно базовые настройки, поэтому адаптировать их необходимо под ваши нужды.
Шаг 3. Интегрируем с OSSEC.
Для отправки уведомлений нам необходимо в нашем файле конфигурации на сервере /var/ossec/etc/ossec.conf добавить секцию уведомлений:
XML: Скопировать в буфер обмена
Где your_custom_script.sh - скрипт, вызываемый при срабатывании тригера.
Шаг 4. Создаём скрипт для передачи данных.
Нам необходимо обрабатывать уведомление от OSSEC и передавать их в Samhain, поэтому выполняем команду:
Bash: Скопировать в буфер обмена
Добавляем содержимое, например:
Bash: Скопировать в буфер обмена
Сохраняем и не забываем сделать скрипт исполняемым:
Bash: Скопировать в буфер обмена
Итак, мы получили связь OSSEC и Samhain, однако для отправки уведомлений нам понадобится Zabbix Sender, поэтому перейдём прямиком к нему.
Интеграция Samhain и Zabbix Sender.
Шаг 1. Установка Zabbix.
На нашем сервере с остальными утилитами устанавливаем Zabbix Sender:
Bash: Скопировать в буфер обмена
Шаг 2. Создаём скрипт алертов.
Bash: Скопировать в буфер обмена
В скрипте можно прописать, например:
Bash: Скопировать в буфер обмена
Значения YOUR_ZABBIX_SERVER_IP и YOUR_HOSTNAME необходимо заменить на релевантные.
Шаг 3. Настройка cron.
Для периодической отправки алертов Zabbix, настроим так же задачу в cron через:
Bash: Скопировать в буфер обмена
К примеру, можно использовать такое правило:
Bash: Скопировать в буфер обмена
Таким образом, вся строка говорит о том, что скрипт /usr/local/bin/samhain_to_zabbix.sh будет запускаться каждые 5 минут, независимо от времени суток, дня месяца, месяца и дня недели.
Теперь ваши алерты так же связаны с Zabbix, что позволит своевременно реагировать на какие-либо попытки проникновения.
Zabbix + Grafana.
Как нам уже известно, Grafana позволяет нам визуализировать дашборды, а, беря данные из Zabbix, мы так же можем отслеживать данный из созданного нами контура.
Предполагаем, что Grafana у нас уже установлена, поэтому мы переходим в Web-интерфейс через: http://<ваш_IP>:3000
Далее нажимаем на "+" и выбираем "Dashboard" -> "Add panel" -> Выбираем тип панели(например, "Graph").
Нажимаем на выбор "Data sources" -> "Add data source" -> Zabbix.
В разделе "Metric" выберите нужный элемент (например, host, item, trigger).
Укажите параметры, такие как:
- Host: Выберите хост, данные с которого вы хотите отображать.
- Key: Укажите ключ элемента, который вы хотите визуализировать.
- Time Range: Настройте временной диапазон для отображения данных.
После всех настроек мы получим настроенную связку для определения проникновений, мониторинга, реагирования и отслеживания метрик в виде OSSEC + Samhain + Zabbix Sender + Grafana.
Заключение.
Подобная настройка не раз использовалась в отслеживании каких-то посторонних действий, на которые необходимо обратить внимание. Покрывая потребность всего цикла обеспечение безопасности хоста, это не является панацеей, а так же требует довольно тонкой настройки на нужные вам параметры, но однозначно добавит определённый уровень безопасности вашей инфраструктуры. Я настоятельно рекомендую потратить время на всевозможные процедуры определения векторов угроз и конфигурирования ваших правил отслеживания подобных уязвимостей.
До скорых встреч!
Источник: XSS.is
Сетевая безопасность это важный аспект любой инфраструктуры, так как связь с внешним миром это как преимущество в работоспособности, так и уязвимость, которая без должного внимания со стороны безопасника, является критической брешью.
Однако, многие, концентрируясь на сетевой безопасности, забывают о том, что потенциальные угрозы возникают и на уровне аппаратном, то есть - отдельных устройств. Поэтому, я считаю необходимым разобрать HIDS и методы обеспечения защиты от угроз.
Для начала, что такое HIDS.
HIDS, Host-based Intrusion Detection Systems - это инструменты безопасности, которые устанавливаются на отдельных устройствах (хостах) для мониторинга и анализа их активности. Основная цель HIDS - выявление подозрительных действий и потенциальных угроз на уровне конкретного устройства.
Поэтому, сегодня мы разберём несколько инструментов и научимся их настраивать для получения максимальной отдачи.
OSSEC.
OSSEC - это мощная система обнаружения вторжений, которая поддерживает множество платформ и предлагает функции мониторинга логов, проверки целостности файлов и анализа.
Именно с ней мы и будем работать, так как этот инструмент свободно доступен на GitHub.
Шаг 1. Установка.
Bash: Скопировать в буфер обмена
Код:
wget https://github.com/ossec/ossec-hids/archive/refs/tags/3.6.0.tar.gz
tar -zxvf 3.6.0.tar.gz
cd ossec-hids-3.6.0
./install.sh
Установщик предложит нам 2 разных типа:
1. Локальный.
2. Серверный.
Исходя из ваших требований, вы можете выбрать удобный вариант.
Шаг 2. Конфигурация.
Обычно файл конфигурации находится по пути: /var/ossec/etc/ossec.conf, поэтому предлагаю настроить правила, агенты и другие параметры.
Открываем файл конфигурации.
Bash: Скопировать в буфер обмена
sudo nano /var/ossec/etc/ossec.conf
Шаг 3. Настраиваем основные параметры.
В файле вы можете настраивать разные параметры, такие как:
1. Логи.
2. Правила мониторинга.
3. Агенты.
Пример базовой конфигурации выглядит примерно следующим образом:
XML: Скопировать в буфер обмена
Код:
<ossec_config>
<global>
<email_notification>yes</email_notification>
<email_to>example1@xss.is</email_to>
<email_from>example2@xss.is</email_from>
<smtp_server>smtp.example.com</smtp_server>
<log_level>3</log_level>
</global>
<localfile>
<location>/var/log/auth.log</location>
</localfile>
<rules>
<include>rules_config.xml</include>
</rules>
</ossec_config>
Сохраняем изменения и выходим из редактора(Ctrl+0, Ctrl+X).
Шаг 4. Перезапускаем OSSEC.
Для применения изменений необходимо перезапустить сервис:
Bash: Скопировать в буфер обмена
sudo systemctl restart ossec
Шаг 5. Установка агента.
Для того, чтобы получать данные о каждом агенте(клиенте) необходимо установить OSSEC на целевом устройстве с помощью команды из Шаг 1.
Шаг 6. Выбор типа установки.
Во время установки выбираем "Agent".
Шаг 7. Настраиваем агента.
Открываем конфигурационный файл с помощью:
Bash: Скопировать в буфер обмена
sudo nano /var/ossec/etc/ossec.conf
Нам необходимо указать IP или имя хоста вашего сервера, на котором установлен OSSEC:
XML: Скопировать в буфер обмена
Код:
<client>
<server-ip>YOUR_SERVER_IP</server-ip>
</client>
После добавления, так же сохраняем и выходим из редактора.
Шаг 8. Перезапускаем агент.
Bash: Скопировать в буфер обмена
sudo systemctl restart ossec
Шаг 9. Добавляем агента в мастер клиент на сервере.
На сервере, где установлен OSSEC необходимо выполнить следующую команду для добавления нового агента:
Bash: Скопировать в буфер обмена
sudo /var/ossec/bin/manage_agents
Выбираем "А"(add agent) и вводим его имя + IP.
Далее сохраняем изменения и закрываем утилиту управления агентами.
Шаг 10. Настраиваем ключ клиента.
После добавления агента, нам так же стоит получить ключ для него, выбрав в клиенте опцию "E"(extract key). Копируем сгенерированный ключ к себе.
Далее снова выполняем команду по открытию утилиты управления агентами и выбираем опцию "I"(import keys) и вставляем туда наш созданный ключ.
Шаг 11. Перезапускаем агент и проверяем статус.
Перезагружаем агента командой:
Bash: Скопировать в буфер обмена
sudo systemctl restart ossec
Проверяем статус подключения агента на сервере:
Bash: Скопировать в буфер обмена
sudo /var/ossec/bin/agent_control -l
К слову, это покажет список всех активированных агентов и их статусы.
Таким образом мы получаем настроенный OSSEC на сервере, который так же будет проводить мониторинг активности на устройстве, куда он был установлен.
Правила, логгирование, агенты это всё настраиваемо, например, создадим файл правил local_rules.xml в директории /var/ossec/etc/rules/, чтобы правила срабатывали при попытке входа через SSH(правило 10001), несанкционированном подключении через IP(правило 10002) и использовании команды sudo на устройстве(правило 10003).
XML: Скопировать в буфер обмена
Код:
<?xml version="1.0"?>
<group name="local,">
<rule id="100001" level="5">
<decoded_as>syslog</decoded_as>
<field name="program">sshd</field>
<description>Попытка входа через SSH</description>
<options>no_full_log</options>
</rule>
<rule id="100002" level="10">
<decoded_as>syslog</decoded_as>
<field name="srcip">192.168.1.100</field>
<description>Подозрительный IP-адрес</description>
<options>no_full_log</options>
</rule>
<rule id="100003" level="7">
<decoded_as>syslog</decoded_as>
<field name="program">sudo</field>
<description>Использование sudo</description>
<options>no_full_log</options>
</rule>
</group>
Так же мы проставили уровни важности, исходя из приоритетов(5, 7 и 10).
Не забываем, что нам необходимо применить правила в файле конфигурации /var/ossec/etc/ossec.conf
Выглядят необходимые строки в файле как:
XML: Скопировать в буфер обмена
Код:
<rules>
<include>rules/local_rules.xml</include>
</rules>
Далее перезапускаем OSSEC для применения нововведений.
В целом, нам бы хватило и этого, но получаемые выводы надо так же связать с системами мониторинга и реагирования, поэтому рассмотрим подобную опцию.
Интеграция OSSEC с Samhain и Zabbix Sender.
Данная интеграция - отличный способ обеспечить многоуровневую защиту.
Samhain - является инструментом для мониторинга целостности файлов и обнаружения вторжений, который поддерживает ещё и сетевой мониторинг, как, собственно, и Zabbix. Приступим к настройке нашей связки.
Шаг 1. Устанавливаем Samhain.
Bash: Скопировать в буфер обмена
sudo apt install samhain
Шаг 2. Настраиваем файл конфигурации.
Откроем файл:
Bash: Скопировать в буфер обмена
sudo nano /etc/samhain/samhain.conf
Пример:
Код: Скопировать в буфер обмена
Код:
# Уровень отчетности
log_level = 3 # 0 - только ошибки, 1 - предупреждения, 2 - информация, 3 - отладка
# Путь к логам OSSEC
ossec_log_path = "/var/ossec/logs/ossec.log"
# Настройки отслеживания событий
track_events = yes
# Конфигурация мониторинга файловой системы
monitor_files = (
"/etc",
"/usr/bin",
"/usr/sbin",
"/var/log",
"/var/ossec/logs"
)
# Настройки уведомлений
notify_on_event = yes
notify_email = "example@xss.is"
# Уровень чувствительности
sensitivity_level = 5 # 1 - низкий, 5 - высокий
# Параметры проверки целостности
check_interval = 600 # Проверять каждые 10 минут
# Настройки для исключений
exclude_paths = (
"/var/log/lastlog",
"/var/run",
"/tmp"
)
Пояснения:
- log_level: Указывает уровень детализации логирования. Чем выше число, тем больше информации будет записано.
- ossec_log_path: Путь к логам OSSEC, которые будут отслеживаться Samhain.
- track_events: Включает или отключает отслеживание событий.
- monitor_files: Указывает директории, которые будут мониториться на изменения.
- notify_on_event: Включает уведомления при возникновении событий.
- notify_email: Указывает адрес электронной почты для отправки уведомлений.
- sensitivity_level: Уровень чувствительности для мониторинга изменений. Более высокий уровень означает более строгие проверки.
- check_interval: Интервал между проверками целостности файловой системы в секундах.
- exclude_paths: Список путей, которые не будут отслеживаться.
Я привёл в пример довольно базовые настройки, поэтому адаптировать их необходимо под ваши нужды.
Шаг 3. Интегрируем с OSSEC.
Для отправки уведомлений нам необходимо в нашем файле конфигурации на сервере /var/ossec/etc/ossec.conf добавить секцию уведомлений:
XML: Скопировать в буфер обмена
Код:
<alerts>
<command>your_custom_script.sh</command>
</alerts>
Где your_custom_script.sh - скрипт, вызываемый при срабатывании тригера.
Шаг 4. Создаём скрипт для передачи данных.
Нам необходимо обрабатывать уведомление от OSSEC и передавать их в Samhain, поэтому выполняем команду:
Bash: Скопировать в буфер обмена
sudo nano /usr/local/bin/ossec_to_samhain.sh
Добавляем содержимое, например:
Bash: Скопировать в буфер обмена
echo "$1" >> /var/log/samhain/ossec_alerts.log
Сохраняем и не забываем сделать скрипт исполняемым:
Bash: Скопировать в буфер обмена
sudo chmod +x /usr/local/bin/ossec_to_samhain.sh
Итак, мы получили связь OSSEC и Samhain, однако для отправки уведомлений нам понадобится Zabbix Sender, поэтому перейдём прямиком к нему.
Интеграция Samhain и Zabbix Sender.
Шаг 1. Установка Zabbix.
На нашем сервере с остальными утилитами устанавливаем Zabbix Sender:
Bash: Скопировать в буфер обмена
sudo apt install zabbix-sender
Шаг 2. Создаём скрипт алертов.
Bash: Скопировать в буфер обмена
sudo nano /usr/local/bin/samhain_to_zabbix.sh
В скрипте можно прописать, например:
Bash: Скопировать в буфер обмена
Код:
while IFS= read -r line; do
zabbix_sender -z YOUR_ZABBIX_SERVER_IP -s "YOUR_HOSTNAME" -k "samhain.alert" -o "$line"
done < /var/log/samhain/ossec_alerts.log
Значения YOUR_ZABBIX_SERVER_IP и YOUR_HOSTNAME необходимо заменить на релевантные.
Шаг 3. Настройка cron.
Для периодической отправки алертов Zabbix, настроим так же задачу в cron через:
Bash: Скопировать в буфер обмена
crontab -e
К примеру, можно использовать такое правило:
Bash: Скопировать в буфер обмена
*/5 * * * * /usr/local/bin/samhain_to_zabbix.sh
Таким образом, вся строка говорит о том, что скрипт /usr/local/bin/samhain_to_zabbix.sh будет запускаться каждые 5 минут, независимо от времени суток, дня месяца, месяца и дня недели.
Теперь ваши алерты так же связаны с Zabbix, что позволит своевременно реагировать на какие-либо попытки проникновения.
Zabbix + Grafana.
Как нам уже известно, Grafana позволяет нам визуализировать дашборды, а, беря данные из Zabbix, мы так же можем отслеживать данный из созданного нами контура.
Предполагаем, что Grafana у нас уже установлена, поэтому мы переходим в Web-интерфейс через: http://<ваш_IP>:3000
Далее нажимаем на "+" и выбираем "Dashboard" -> "Add panel" -> Выбираем тип панели(например, "Graph").
Нажимаем на выбор "Data sources" -> "Add data source" -> Zabbix.
В разделе "Metric" выберите нужный элемент (например, host, item, trigger).
Укажите параметры, такие как:
- Host: Выберите хост, данные с которого вы хотите отображать.
- Key: Укажите ключ элемента, который вы хотите визуализировать.
- Time Range: Настройте временной диапазон для отображения данных.
После всех настроек мы получим настроенную связку для определения проникновений, мониторинга, реагирования и отслеживания метрик в виде OSSEC + Samhain + Zabbix Sender + Grafana.
Заключение.
Подобная настройка не раз использовалась в отслеживании каких-то посторонних действий, на которые необходимо обратить внимание. Покрывая потребность всего цикла обеспечение безопасности хоста, это не является панацеей, а так же требует довольно тонкой настройки на нужные вам параметры, но однозначно добавит определённый уровень безопасности вашей инфраструктуры. Я настоятельно рекомендую потратить время на всевозможные процедуры определения векторов угроз и конфигурирования ваших правил отслеживания подобных уязвимостей.
До скорых встреч!