ELK SIEM Open Distro: ELK stack — установка и настройка. В этой главе будет описана установка и настройка ELK стека. Можно было бы эту главу пропустить и не переводить, но тогда потеряется нить между оригинальными главами. Оглавление всех постов. 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 с помощью этой команды: Предупреждение: установка network.bind_host to 0.0.0.0 не рекомендуется из-за проблем с безопасностью и не должна использоваться на производственном уровне. Мы пока находимся на этапе создания прототипа. Конфигурация B-Kibana: Все настройки были внесены в файл kibana.yml, расположенный в /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: Этот файл содержит необходимую конфигурацию для 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 с соответствующим файлом конфигурации: IV. Проверьте текущую конфигурацию:  Настройте шаблон индекса, информационные панели и шаблон индекса: 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, для чего вы можете проверить эту ссылку. Телеграм чат по Elasticsearch DevOps-инженер