Тема SIEM решений с открытым исходным кодом постоянно проявляется на просторах сети. Одних интересуют SIEM системы как таковые, и хочется разобраться в решениях данного класса, но при этом не хочется связываться с тяжелыми и запредельно дорогими коммерческими SIEM. Другие не уверены, что им вообще нужен SIEM. Третьи хотят уйти с иностранных, не поддерживаемых официально в России решений. И наконец, множество организаций не располагают достаточным бюджетом для того, чтобы закупить коммерческий SIEM (не забываем, что помимо лицензий на SIEM нам потребуется еще потратиться на лицензии на поддержку и существенно вложиться в железо).   

О системе с открытым кодом Wazuh в русскоязычном интернете написано не так много статей и в большинстве своем они носят общий, описательный характер и не погружаются в технические особенности развертывания и эксплуатации данного решения.

Этой статьей мы начинаем цикл посвященный работе с Wazuh. Сегодня мы рассмотрим различные варианты развертывания Wazuh, а в последующих статьях поговорим о подключении источников под управлением Linux и Windows, о работе с правилами корреляции и другими основными моментами, связанными с использованием данного решения в качестве SIEM.

Требования к софту и железу

Прежде чем начать что-то устанавливать, необходимо ознакомиться с теми требованиями, которые разворачиваемая система предъявляет к операционной системе, прикладному ПО и аппаратной части.

Конечно, тем кому хочется просто что называется “поиграться”, развернув конфигурацию все в одном и подключив пару источников с тестовым набором событий, я бы посоветовал просто развернуть Ubuntu 22.04 с 4 RAM и 100 Гб и не в чем себе не отказывать.

Но промышленное развертывание SIEM предполагает гораздо более ответственный подход к планированию ресурсов. Так требования к оборудованию сильно зависят от количества подключаемых источников, количества событий и времени, в течении которого планируется хранить события.

Если мы хотим развернуть все компоненты SIEM на одном узле, то из таблицы представленной ниже можем узнать, какие аппаратные ресурсы нам потребуются для подключения до 100 источников и хранения собранных событий в течение 90 дней.

 

Однако, 100 источников это не так много, кроме того интенсивность событий может оказаться довольно высокой, и рано или поздно возникнет необходимость в масштабировании. В таком случае давайте сначала посмотрим, из каких компонентов состоит Wazuh.

Архитектура Wazuh основана на агентах, запущенных на контролируемых конечных точках, которые пересылают данные безопасности на центральный сервер. Безагентные устройства, такие как брандмауэры, коммутаторы, маршрутизаторы и точки доступа, поддерживаются и могут активно отправлять данные журнала через системный журнал, SSH или используя свой API. Центральный сервер декодирует и анализирует поступающую информацию и передает результаты в Wazuh indexer для индексации и хранения.

Кластер Wazuh indexer представляет собой набор из одного или нескольких узлов, которые взаимодействуют друг с другом для выполнения операций чтения и записи индексов. Небольшие развертывания Wazuh, которые не требуют обработки больших объемов данных, могут быть легко обработаны одноузловым кластером. Многоузловые кластеры рекомендуются при наличии большого количества отслеживаемых конечных точек, когда ожидается большой объем данных или когда требуется высокая доступность. Для производственных сред рекомендуется развертывать сервер Wazuh и Wazuh indexer на разных хостах.

Wazuh dashboard представляет собой набор дашбордов, которые визуально отображают статистику по срабатыванию алертов, событиям различных типов, диаграммы и прочее.  

На рисунке ниже представлена архитектура развертывания Wazuh. В нем показаны компоненты решения и то, как сервер Wazuh и узлы Wazuh indexer могут быть сконфигурированы как кластеры, обеспечивая балансировку нагрузки и высокую доступность.

  При развертывании решения, состоящего из нескольких узлов, традиционно возникает вопрос по списку сетевых портов, которые необходимо открыть. Ниже представлен список портов, которые необходимо открыть для корректного взаимодействия узлов.

Что касается требований к ОС, то на момент написания статьи на официальном ресурсе предлагалось использовать Amazon Linux 2, CentOS (7, 8), Red Hat Enterprise Linux (7, 8, 9), Ubuntu (16.04, 18.04, 20.04, 22.04).

С требованиями к ресурсам полагаю, все понятно. Далее рассмотрим непосредственно процесс развертывания.

Все в одном

В учебных целях я бы рекомендовал развернуть Wazuh в конфигурации “все в одном”. После ритуального apt-get update apt-get upgrade загрузим и запустим установочный файл.

$ curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh && sudo bash ./wazuh-install.sh -a

Дальше процесс установки пойдет автоматически, но важно после (успешного) завершения установки не забыть сохранить сгенерированный пароль.

INFO: --- Summary ---

INFO: You can access the web interface https://<wazuh-dashboard-ip>

    User: admin

    Password: <ADMIN_PASSWORD>

INFO: Installation finished.

После этого просто открываем браузер по адресу https://имя_узла_Wazuh.

 

Ставим раздельно

Раздельную установку компонентов Wazuh предлагается выполнять в следующем порядке:  Wazuh Indexer, Wazuh server, Wazuh dashboard. Требования для развертывания Indexer будут следующие:

Так как, indexer отвечает за хранение событий, для него критично дисковое пространство. Wazuh при расчете потока событий предлагает считать, что один сервер в среднем отправляет 0,25 событий, рабочая станция 0,1, а сетевое устройство 0,5. Так, например, для среды с 80 рабочими станциями, 10 серверами и 10 сетевыми устройствами объем хранилища, необходимый на сервере Wazuh indexer для 90 дней, составляет 230 ГБ. Но в реальности количество событий может существенно отличаться.

Сначала загрузим необходимые файлы:

curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh

curl -sO https://packages.wazuh.com/4.7/config.yml

Далее отредактируйте ./config.yml и замените имена узлов и значения IP соответствующими именами и IP-адресами. Вам нужно сделать это для всех узлов Wazuh server, Wazuh indexer и Wazuh dashboard. Добавьте столько полей узла, сколько необходимо. Например:

nodes:
  # Wazuh indexer nodes
  indexer:
    - name: node-1
      ip: "<indexer-node-ip>"
    #- name: node-2
    #  ip: "<indexer-node-ip>"
    #- name: node-3
    #  ip: "<indexer-node-ip>"

  # Wazuh server nodes
  # If there is more than one Wazuh server
  # node, each one must have a node_type
  server:
    - name: wazuh-1
      ip: "<wazuh-manager-ip>"
    #  node_type: master
    #- name: wazuh-2
    #  ip: "<wazuh-manager-ip>"
    #  node_type: worker
    #- name: wazuh-3
    #  ip: "<wazuh-manager-ip>"
    #  node_type: worker

  # Wazuh dashboard nodes
  dashboard:
    - name: dashboard
      ip: "<dashboard-node-ip>"

Запустите помощник по установке Wazuh с параметром --generate-config-files, чтобы сгенерировать ключ кластера Wazuh, сертификаты и пароли, необходимые для установки. Вы можете найти эти файлы в ./wazuh-install-files.tar.

bash wazuh-install.sh --generate-config-files

Скопируйте файл wazuh-install-files.tar на все серверы распределенного развертывания, включая сервер Wazuh, Wazuh indexer и узлы панели мониторинга Wazuh.

Далее запустите помощник по установке Wazuh с параметром --wazuh-indexer и именем узла, чтобы установить и настроить Wazuh indexer. Имя узла обязательно должно совпадать с именем, используемым в config.yml для начальной конфигурации, например, node-1. Также, убедитесь, что копия wazuh-install-files.tar, созданная на начальном этапе настройки, помещена в ваш рабочий каталог.

bash wazuh-install.sh --wazuh-indexer node-1

Далее запускаем кластер.

bash wazuh-install.sh --start-cluster

Запустите следующую команду, чтобы проверить успешность установки. Замените <ADMIN_PASSWORD> паролем, полученным в результате выполнения предыдущей команды. Замените <WAZUH_INDEXER_IP> на настроенный IP-адрес Wazuh Indexer:

curl -k -u admin:<ADMIN_PASSWORD> https://<WAZUH_INDEXER_IP>:9200

На выходе мы должны получить что-то похожее:

{
  "name" : "node-1",
  "cluster_name" : "wazuh-cluster",
  "cluster_uuid" : "095jEW-oRJSFKLz5wmo5PA",
  "version" : {
    "number" : "7.10.2",
    "build_type" : "rpm",
    "build_hash" : "db90a415ff2fd428b4f7b3f800a51dc229287cb4",
    "build_date" : "2023-06-03T06:24:25.112415503Z",
    "build_snapshot" : false,
    "lucene_version" : "9.6.0",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Для установки сервера сначала как обычно загрузим установочный файл и затем запустим его, указав правильное имя из config.yml, который мы заполнили ранее.

curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh

bash wazuh-install.sh --wazuh-server wazuh-1

Установка компонента Dashboard также достаточно проста. Запускаем установку с правильным именем Dashboard.

bash wazuh-install.sh --wazuh-dashboard dashboard

В результате успешной установки получим сообщение, содержащее сгенерированный пароль для учетки admin.

Для проверки работы зайдем в консоль Wazuh под этой учеткой.

Заключение

В этой статье мы рассмотрели различные варианты установки Wazuh. Сейчас наш SIEM развернут, но пока к нему не подключены никакие источники и он в значительной степени бесполезен. Но в следующей статье мы это исправим, подключив к нему несколько источников.

 Хочу пригласить вас на бесплатные уроки курса "Специалист по внедрению SIEM". Регистрация на уроки доступна по ссылкам ниже:

Комментарии (0)