ELK SIEM Open Distro: ELK stack — установка и настройка.
В этой главе будет описана установка и настройка ELK стека. Можно было бы эту главу пропустить и не переводить, но тогда потеряется нить между оригинальными главами.
Оглавление всех постов.
- Введение. Развертывание инфраструктуры и технологий для SOC как Service (SOCasS)
- ELK stack — установка и настройка
- Прогулка по open Distro
- Визуализация Dashboards и ELK SIEM
- Интеграция с WAZUH
- Оповещение (Alerting)
- Отчетность
- Case Management
1- Установка и настройка ELK STACK
1.1- Введение в ELK
A- Что такое ELK?
B- Разница между ELK Basic и ELK Oss?
1.2- Установка ELK
В нашем проекте мы приступили к настройке ELK Stack Basic (7.6.1) и сослались на официальное руководство, предоставленное elastic.co:
https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html
1.3- Конфигурация ELK
В этом разделе мы предоставим вам конфигурацию, которую мы сделали для стека ELK.
A- Конфигурация Elasticsearch
Все настройки были внесены в файл elasticsearch.yml, расположенный в /etc/elasticsearch/elasticsearch.yml
Чтобы открыть его, используйте следующую команду: sudo nano /etc/elasticsearch/elasticsearch.yml
Это пути по умолчанию для данных и журналов для elasticsearch.
Затем перейдите в сетевой раздел файла. Сетевым разделом пользоваться очень просто, вам даже не нужно упоминать порт, если вы используете порт по умолчанию. Но вы должны изменить http.port и отменить комментарий. если вы собираетесь использовать другой порт.
network.bind_host: 0.0.0.0 включит удаленный доступ к серверу Elasticsearch, который поможет нам позже подключить биты к стеку ELK.
Как только это будет установлено, нам нужно перезапустить службу ElasticSearch с помощью этой команды:
sudo systemctl restart elasticsearch
Предупреждение: установка network.bind_host to 0.0.0.0 не рекомендуется из-за проблем с безопасностью и не должна использоваться на производственном уровне. Мы пока находимся на этапе создания прототипа.
Конфигурация B-Kibana:
Все настройки были внесены в файл kibana.yml, расположенный в /etc/kibana/kibana.yml. Чтобы открыть его, используйте следующую команду:
sudo nano /etc/kibana/kibana.yml
Чтобы сделать Kibana доступным удаленно, мы должны установить server.host: "0.0.0.0". Нет никаких ограничений, когда дело доходит до порта, который должен быть включен. Итак, оставим настройку по умолчанию, равную 5601. Теперь перезапустите Kibana: sudo systemctl restart kibana
Теперь у вас должна быть возможность получить доступ к своей Kibana из браузера. Http://your_Server_IP: 5601
Пока вы занимаетесь этим, наслаждайтесь потрясающим пользовательским интерфейсом, который он предоставляет, и пробуйте некоторые образцы панелей мониторинга и предоставляемые данные.
Предупреждение: установка server.host на 0.0.0.0 не рекомендуется из-за серьезных проблем с безопасностью и не должна использоваться на производственном уровне. Мы пока находимся на этапе создания прототипа.
Конфигурация C-Logstash:
Теперь займемся настройкой logstash:
sudo cat /etc/logstash/logstash-sample.conf
Этот файл содержит необходимую конфигурацию для Logstash. Итак, нам нужно скопировать его в каталог /etc/logstash/conf.d/ и изменить его имя на logstash.conf
Не забудьте перезапустить службу: sudo systemctl restart logstash
D-Проверка сервисов:**
После правильной настройки файлов конфигурации logstash, kibana и elasticsearch. вы можете запустить свои сервисы и проверить их:
Вы можете проверить, прослушивают ли эти службы свои порты. Неважно, используете ли вы tcp6 вместо tcp.
Kibana: 5601
Elasticsearch: 9200
Logstash: 5044
Конфигурация 2-Beats и доставка данных:
A- Загрузка и установка Winlogbeat:
Скачать URL:
https://www.elastic.co/fr/downloads/beats/winlogbeat
Установка:
https://www.elastic.co/guide/en/beats/winlogbeat/current/winlogbeat-installation.html
B- Конфигурация Winlogbeat:
В нашем проекте мы использовали такую конфигурацию winlogbeat.yml:
Разбираемся в winlogbeat.event_logs:
Раздел winlogbeat в winlogbeat.yml определяет все параметры, специфичные для Winlogbeat. Самое главное, он содержит список журналов событий, которые нужно отслеживать. Мы видим, что модуль Sysmon включен по умолчанию.
Чтобы добавить больше модулей, вы можете изучить информацию по ссылке.
Разбираемся в нужном количестве шардов и количестве реплик:
— index.number_of_shards:
Индекс потенциально может хранить большой объем данных, который может превышать аппаратные ограничения одного узла. Чтобы решить эту проблему, Elasticsearch предоставляет возможность разбить ваш индекс на несколько частей, называемых осколками, каждая из которых сохраняется на разных машинах.
— index.number_of_replicas:
Эта команда задает количество копий, которое Elasticsearch будет хранить. Эта функция полезна, если у вас есть сеть компьютеров, на которых работает Elasticsearch. Если одна машина выходит из строя, данные не теряются.
Выходы:
Для вывода Elasticsearch и вывода Logstash только один из них должен быть включен при запуске службы или проверке конфигурации.
Настройки процессоров и журналирования:
Этот раздел содержит процессоры по умолчанию, используемые winlogbeat, и пример настроек журналирования:
Управление жизненным циклом индекса (ILM):
Наконец, нам пришлось отключить ILM. ILM или Index Lifecycle Manager — это бесплатная функция x-pack, интегрированная с базовым стеком ELK, но не с версией ELK oss. Вы можете использовать ILM для автоматического управления индексами в соответствии с вашими требованиями к производительности, отказоустойчивости и срокам хранения. Например: создавайте новый индекс каждый день, неделю или месяц и архивируйте предыдущие, запускайте новый индекс, когда индекс достигает определенного размера, или удаляет устаревшие индексы, чтобы обеспечить соблюдение стандартов хранения данных.
Функция ILM включена по умолчанию для базовой версии стека ELK, но требует дополнительной настройки, особенно если ваши биты не подключены напрямую к Elasticsearch. Функция ILM выходит за рамки этой статьи, поэтому мы отключим ее.
Конфигурация и интеграция Sysmon с MITER ATT & CK:
Мы настроим и сделаем новую конфигурацию Sysmon перед загрузкой шаблонов индекса, чтобы убедиться, что новые поля и конфигурация sysmon правильно загружены в стек ELK.
Системный монитор (Sysmon) — это системная служба Windows и драйвер устройства, который, будучи установленным в системе, остается резидентным при перезагрузке системы для отслеживания и регистрации активности системы в журнале событий Windows. Он предоставляет подробную информацию о создании процессов, сетевых подключениях и изменениях времени создания файлов. Собирая события, которые он генерирует с помощью Windows Event Collection или агентов SIEM, а затем анализируя их, вы можете определить вредоносную или аномальную активность и понять, как злоумышленники и вредоносные программы действуют в вашей сети.
MITER ATT & CK — это глобально доступная база знаний о тактике и методах противодействия, основанная на реальных наблюдениях. База знаний ATT & CK используется в качестве основы для разработки конкретных моделей угроз и методологий в частном секторе, в правительстве, а также в сообществе продуктов и услуг кибербезопасности.
I. Загрузите Sysmon:
https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon
II. Загрузите xml-конфигурацию для sysmon, содержащую ссылки MITER ATT и CK: https://raw.githubusercontent.com/ion-storm/sysmon-config/master/sysmonconfig-export.xml
III. Установите Sysmon с соответствующим файлом конфигурации:
sysmon64 -accepteula -i sysmonconfig-export.xml
IV. Проверьте текущую конфигурацию:
sysmon64 –c
Настройте шаблон индекса, информационные панели и шаблон индекса:
I. Шаблон индекса загрузки:
Шаблоны индексов позволяют определять шаблоны, которые будут автоматически применяться при создании новых индексов. Шаблоны включают как настройки, так и сопоставления, а также простой шаблон шаблона, который определяет, следует ли применять шаблон к новому индексу.
Для загрузки шаблона индекса требуется подключение к Elasticsearch. Если вывод не является Elasticsearch, вы должны загрузить шаблон вручную. В нашем случае winlogbeat не будет напрямую подключен к Elasticsearch, поэтому нам придется вручную настроить шаблон индекса перед запуском службы.
Требуется отключить вывод Logstash и временно включить вывод Elasticsearch.
II. Загрузка информационных панелей и шаблонов индекса:
https://www.elastic.co/guide/en/beats/winlogbeat/current/load-kibana-dashboards.html
Изменение вывода:
После правильной загрузки шаблона индекса, шаблона индекса и информационных панелей вы можете проверить их в интерфейсе Kibana.
Шаблон индекса и панели мониторинга загружены успешно:
Теперь, что мы делаем после открытия файла конфигурации. Мы отключим вывод Elasticsearch, комментируя его, затем включим вывод Logstash, удалив комментарий.
Доставляем данные в стек ELK:
Теперь мы можем запустить службы winlogbeat и sysmon из PowerShell или с помощью интерфейса services.msc, а также проверить данные в интерфейсе Kibana.
При запуске winlogbeat. ELK STACK будет использовать конфигурацию в Logstash для создания индекса, который позволит хранить данные.
Это панель управления по умолчанию для winlogbeat:
В разделе Discover мы можем проверить журналы sysmon с новой конфигурацией (ссылки MITER):
В остальном биты не сильно отличаются от winlogbeat ни по настройке, ни по установке.
Биты, которые мы использовали:
Winlogbeat
Filebeat
Packetbeat
Metricbeat
Мы хотим упомянуть, что некоторые биты, такие как metricbeat или filebeat, имеют несколько модулей, которые вы можете использовать.
Например, мы использовали модульную систему в filebeat для мониторинга аутентификации ssh, команды sudo на машине ubuntu и мы использовали модуль Suricata для сбора журналов из Suricata IDS.
Включение модуля Suricata:
Мы использовали эту команду для включения модуля Suricata в filebeat:
sudo filebeat modules enable Suricata
чтобы увидеть модули, доступные в filebeat, вы можете проверить каталог /etc/filebeat/modules.d/
Чтобы увидеть активные модули, используйте эту команду:
filebeat modules list
Это ссылка, которую мы использовали для установки Suricata на наше устройство: https://www.alibabacloud.com/blog/594941
Вы должны получить панель инструментов, примерно похожую на эту. Не беспокойтесь, если вы не получите именно такой результат, мы будем работать с дашбордом в следующих статьях.
Также можно интегрировать интерфейс Suricata в стек ELK, для чего вы можете проверить эту ссылку.