SIEM с нуля: практическое руководство по внедрению и настройке

О чем этот курс

SIEM (Security Information and Event Management) — это класс систем, которые собирают, анализируют и коррелируют события безопасности со всех уголков вашей ИТ-инфраструктуры. SIEM — это “центральная нервная система” мониторинга ИБ, которая позволяет увидеть лес за деревьями и вовремя обнаружить атаку.

В этом курсе мы пройдем путь от полного нуля до работающей SIEM-системы:

  • Что такое SIEM и зачем он нужен?
  • Как устроена архитектура SIEM?
  • Какие бывают open-source SIEM (Wazuh, ELK, Graylog)?
  • Пошаговая установка и настройка Wazuh (самого популярного open-source SIEM)
  • Подключение агентов на Windows и Linux
  • Написание правил корреляции
  • Создание дашбордов в Kibana
  • Реагирование на инциденты (SOC-процессы)
  • Интеграция с GLPI для тикетов и с Eramba для учета рисков

Курс ориентирован на практику — вы сможете повторить все шаги на своем сервере или локальной машине.


Часть 1. Основы SIEM: теория для практиков

1.1 Что такое SIEM и зачем он нужен?

Представьте, что у вас в компании 100 серверов, 50 сетевых устройств, 10 разных приложений и 300 сотрудников. Каждый день они генерируют миллионы событий: кто куда зашел, кто что скачал, кто пытался подобрать пароль, какой файл изменился, какое соединение было заблокировано.

Без SIEM вы просто тонете в этом потоке. С SIEM вы получаете:

  1. Централизованный сбор логов — все события в одном месте
  2. Нормализацию — приведение событий к единому формату
  3. Корреляцию — связывание событий из разных источников в инциденты
  4. Хранение — архив для расследований и compliance
  5. Дашборды и оповещения — визуализация и уведомления об аномалиях
  6. Расследование — инструменты для поиска и анализа

1.2 Архитектура SIEM

Типовая архитектура SIEM выглядит так:

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│   Источники     │────▶│    Сборщики     │────▶│   Ядро SIEM     │
│   событий       │     │   (агенты)      │     │   (сервер)      │
└─────────────────┘     └─────────────────┘     └─────────────────┘
        │                        │                        │
        ▼                        ▼                        ▼
┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│ Windows-серверы │     │   Filebeat      │     │  Elasticsearch  │
│ Linux-серверы   │     │   Winlogbeat    │     │  Корреляция     │
│ Межсетевые экраны│    │   Syslog        │     │  Хранилище      │
│ Веб-серверы     │     │   Auditbeat     │     │                 │
└─────────────────┘     └─────────────────┘     └─────────────────┘
                                                          │
                                                          ▼
┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│   Реагирование  │◀────│  Визуализация   │◀────│     API         │
│   (SOAR)        │     │   (Kibana)      │     │                 │
└─────────────────┘     └─────────────────┘     └─────────────────┘

1.3 Обзор open-source SIEM решений

РешениеСоставПлюсыМинусыДля кого
WazuhWazuh (форк OSSEC) + ELKГотовое интегрированное решение, активное сообщество, compliance-контроли, FIM, уязвимостиТребователен к ресурсамМалый и средний бизнес, учебные проекты
ELK StackElasticsearch + Logstash + Kibana + BeatsГибкость, мощный поиск, масштабируемость, огромное сообществоТребует сборки, нет готовых правил корреляции “из коробки”Компании с собственными разработчиками
GraylogGraylog + MongoDB + ElasticsearchУдобный интерфейс, pipeline-обработка, enterprise-функцииМеньше готовых парсеровСредний бизнес
OpenSearchOpenSearch + Data PrepperФорк Elasticsearch, полный open-sourceМолодойТе, кто ушел от Elastic

В этом курсе мы сосредоточимся на Wazuh как самом простом для старта, и на ELK как на самом гибком.


Часть 2. Подготовка инфраструктуры

2.1 Требования к оборудованию

Для учебного проекта (до 50 агентов):

КомпонентМинимумРекомендуется
CPU4 ядра8 ядер
RAM8 ГБ16 ГБ
Диск50 ГБ SSD100-200 ГБ SSD
ОСUbuntu 20.04/22.04 LTSUbuntu 22.04 LTS
Сеть1 Гбит/с1 Гбит/с

2.2 Создание виртуальной машины

Вариант 1: Локальная VM (VirtualBox/VMware)

  • Скачайте Ubuntu Server 22.04 LTS
  • Создайте VM с параметрами выше
  • Настройте сеть (NAT + Host-Only для доступа)

Вариант 2: Облачный сервер (VPS)

  • Арендуйте VPS у любого провайдера (минимум 4 ГБ RAM)
  • Установите Ubuntu 22.04

2.3 Базовая настройка сервера

# Обновление системы
sudo apt update && sudo apt upgrade -y

# Установка необходимых пакетов
sudo apt install -y curl wget git vim htop net-tools

# Настройка hostname
sudo hostnamectl set-hostname siem-server

# Настройка времени (для корректной работы логов)
sudo timedatectl set-timezone Europe/Moscow
sudo apt install -y ntp
sudo systemctl enable ntp
sudo systemctl start ntp

# Открытие портов (если используется UFW)
sudo ufw allow 22/tcp        # SSH
sudo ufw allow 443/tcp       # HTTPS для Wazuh
sudo ufw allow 1514:1515/tcp # Wazuh агенты
sudo ufw allow 514/udp       # Syslog
sudo ufw enable

Часть 3. Установка и настройка Wazuh (быстрый старт)

Wazuh состоит из нескольких компонентов:

  • Wazuh Indexer (хранилище данных, форк OpenSearch)
  • Wazuh Server (менеджер, анализ и корреляция)
  • Wazuh Dashboard (визуализация, форк OpenSearch Dashboards)

3.1 Автоматическая установка

Wazuh предоставляет скрипт для быстрой установки всех компонентов на один сервер.

Шаг 1. Скачайте и запустите установщик

curl -sO https://packages.wazuh.com/4.9/wazuh-install.sh
sudo bash wazuh-install.sh --generate-config-files

Шаг 2. Запустите установку

sudo bash wazuh-install.sh --wazuh-indexer node-1
sudo bash wazuh-install.sh --start-cluster
sudo bash wazuh-install.sh --wazuh-server wazuh-1
sudo bash wazuh-install.sh --wazuh-dashboard dashboard

Шаг 3. Получите пароль администратора

sudo tar -O -xvf wazuh-install-files.tar wazuh-install-files/wazuh-passwords.txt

Вы увидите что-то вроде:

admin: admin
kibanaserver: randompassword

Шаг 4. Войдите в веб-интерфейс

  • Откройте браузер: https://ваш-сервер-ip
  • Логин: admin
  • Пароль: (из предыдущего шага)

3.2 Ручная установка

Если хотите понять, как все работает “под капотом”, лучше установить компоненты по отдельности.

3.2.1 Установка Wazuh Indexer

# Добавление репозитория
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo apt-key add -
echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee /etc/apt/sources.list.d/wazuh.list

# Установка
sudo apt update
sudo apt install -y wazuh-indexer

# Настройка
sudo nano /etc/wazuh-indexer/opensearch.yml
# Раскомментируйте и укажите:
# network.host: 0.0.0.0
# discovery.type: single-node

# Запуск
sudo systemctl enable wazuh-indexer
sudo systemctl start wazuh-indexer

3.2.2 Установка Wazuh Server

# Установка Wazuh Manager
sudo apt install -y wazuh-manager

# Установка Filebeat (для отправки логов в Indexer)
sudo apt install -y filebeat
sudo curl -so /etc/filebeat/filebeat.yml https://raw.githubusercontent.com/wazuh/wazuh/v4.9.0/extensions/filebeat/7.x/filebeat.yml
sudo curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/v4.9.0/extensions/elasticsearch/7.x/wazuh-template.json
sudo curl -s https://packages.wazuh.com/4.x/filebeat/filebeat_wazuh_module.tar.gz | sudo tar -xvz -C /usr/share/filebeat/module

# Настройка Filebeat
sudo nano /etc/filebeat/filebeat.yml
# Укажите:
# output.elasticsearch.hosts: ["localhost:9200"]
# output.elasticsearch.username: "admin"
# output.elasticsearch.password: "admin"

# Запуск
sudo systemctl enable wazuh-manager filebeat
sudo systemctl start wazuh-manager filebeat

3.2.3 Установка Wazuh Dashboard

sudo apt install -y wazuh-dashboard

# Настройка
sudo nano /etc/wazuh-dashboard/opensearch_dashboards.yml
# Укажите:
# server.host: "0.0.0.0"
# opensearch.hosts: ["https://localhost:9200"]
# opensearch.ssl.verificationMode: none
# opensearch.username: "admin"
# opensearch.password: "admin"

sudo systemctl enable wazuh-dashboard
sudo systemctl start wazuh-dashboard

Часть 4. Установка агентов Wazuh (сбор данных)

Агенты устанавливаются на хосты, с которых мы хотим собирать логи.

4.1 Установка агента на Linux

Шаг 1. На целевом Linux-сервере выполните:

# Добавление репозитория Wazuh
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo apt-key add -
echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee /etc/apt/sources.list.d/wazuh.list

# Установка агента
sudo apt update
sudo apt install -y wazuh-agent

# Настройка подключения к серверу
sudo nano /var/ossec/etc/ossec.conf
# Найдите и укажите:
# <address>IP-ВАШЕГО-SIEM-СЕРВЕРА</address>
# <protocol>tcp</protocol>

Шаг 2. Запустите агент

sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent

Шаг 3. Добавьте агента на сервере (если не добавился автоматически)

На сервере Wazuh:

sudo /var/ossec/bin/manage_agents
# Выберите опцию "Add an agent" и следуйте инструкциям

4.2 Установка агента на Windows

Шаг 1. Скачайте установщик

  • Перейдите на https://packages.wazuh.com/4.x/windows/
  • Скачайте последнюю версию wazuh-agent-4.x.x-1.msi

Шаг 2. Установите с параметрами

В командной строке (от администратора):

msiexec /i wazuh-agent-4.5.0-1.msi /quiet WAZUH_MANAGER="IP-ВАШЕГО-SIEM-СЕРВЕРА" WAZUH_REGISTRATION_SERVER="IP-ВАШЕГО-SIEM-СЕРВЕРА"

Шаг 3. Проверьте подключение

В службах Windows найдите “Wazuh” — должно быть “Running”.

4.3 Настройка сбора логов

4.3.1 Системные логи Linux

В файле /var/ossec/etc/ossec.conf на агенте убедитесь, что включены:

<localfile>
  <log_format>syslog</log_format>
  <location>/var/log/syslog</location>
</localfile>

<localfile>
  <log_format>syslog</log_format>
  <location>/var/log/auth.log</location>
</localfile>

<localfile>
  <log_format>command</log_format>
  <command>df -h</command>
  <frequency>3600</frequency>
</localfile>

4.3.2 Логи Windows

По умолчанию Windows-агент собирает:

  • Security Event Log
  • Application Event Log
  • System Event Log
  • PowerShell logs (если включено)

4.3.3 Логи веб-сервера (Apache/Nginx)

Для Apache добавьте в ossec.conf:

<localfile>
  <log_format>apache</log_format>
  <location>/var/log/apache2/access.log</location>
</localfile>
<localfile>
  <log_format>apache</log_format>
  <location>/var/log/apache2/error.log</location>
</localfile>

Часть 5. Корреляция и правила

5.1 Что такое правила корреляции?

Правила корреляции — это “мозг” SIEM. Они определяют, при каких условиях набор событий превращается в инцидент.

Пример правила: Если в течение 5 минут с одного IP произошло более 10 неудачных попыток входа (события типа 4625 в Windows) — это атака brute-force.

5.2 Структура правил Wazuh

Правила Wazuh находятся в /var/ossec/ruleset/rules/. Основные файлы:

  • 0005-ssh_rules.xml — правила для SSH
  • 0575-win-base_rules.xml — базовые правила для Windows
  • 0950-web_appsec_rules.xml — веб-атаки

Формат правила:

<rule id="5712" level="5">
  <if_sid>5710</if_sid>
  <match>^Failed password for</match>
  <description>SSH: Failed password attempt</description>
  <group>authentication_failed,pci_dss_10.2.4,pci_dss_10.2.5,</group>
</rule>

Где:

  • id — уникальный номер правила
  • level — уровень критичности (0-15)
  • if_sid — родительское правило (наследование)
  • match — паттерн поиска в логе

5.3 Создание собственного правила

Задача: Создать правило, которое срабатывает при попытке доступа к файлу /etc/shadow на Linux.

Шаг 1. Создайте файл с правилами

sudo nano /var/ossec/etc/rules/local_rules.xml

Шаг 2. Добавьте правило

<group name="local,file_access,">
  <rule id="100001" level="10">
    <if_sid>100000</if_sid>
    <match>/etc/shadow</match>
    <description>Access to /etc/shadow detected</description>
    <group>local,file_integrity,pci_dss_10.5.5,</group>
  </rule>
</group>

Шаг 3. Перезапустите Wazuh

sudo systemctl restart wazuh-manager

5.4 Корреляция по времени

Создадим правило для обнаружения brute-force:

<rule id="100002" level="15" frequency="8" timeframe="120">
  <if_matched_sid>5712</if_matched_sid>
  <same_source_ip />
  <description>SSH Brute-force attack detected</description>
  <group>local,authentication_failed,</group>
</rule>

Здесь:

  • frequency="8" — 8 срабатываний
  • timeframe="120" — за 120 секунд
  • same_source_ip — с одного IP

5.5 Тестирование правил

Сгенерируйте тестовое событие:

На агенте Linux выполните:

cat /etc/shadow

На сервере проверьте, сработало ли правило:

sudo /var/ossec/bin/ossec-logtest
# Введите строку лога вручную или смотрите alerts.log
tail -f /var/ossec/logs/alerts/alerts.log

Часть 6. Визуализация и дашборды в Wazuh

6.1 Обзор интерфейса Wazuh Dashboard

Wazuh Dashboard построен на базе OpenSearch Dashboards (форк Kibana). Основные разделы:

  1. Dashboard — общая статистика
  2. Threat Hunting — поиск угроз
  3. Modules — готовые модули (FIM, Vulnerabilities, PCI DSS, GDPR)
  4. Management — управление правилами, агентами, группами

6.2 Создание кастомного дашборда

Шаг 1. Перейдите в OpenSearch Dashboards

Нажмите на иконку “три точки” в левом меню → OpenSearch Dashboards

Шаг 2. Создайте индекс-паттерн

  • Stack ManagementIndex PatternsCreate index pattern
  • Name: wazuh-alerts-*
  • Time field: @timestamp

Шаг 3. Создайте визуализацию

  • VisualizeCreate visualization
  • Выберите тип (например, Pie, Bar, Line)
  • Выберите индекс wazuh-alerts-*
  • Настройте метрики и сегменты (например, количество алертов по уровням)

Шаг 4. Добавьте визуализацию на дашборд

  • DashboardCreate dashboard
  • Add → выберите созданную визуализацию

6.3 Полезные дашборды

Дашборд “Топ атакующих IP”

ВизуализацияТипПоля
Топ-10 IP по алертамData Tabledata.srcip, count
Алерты по времениLine@timestamp, count
Типы атакPierule.groups

Дашборд “Состояние агентов”

ВизуализацияТипПоля
Статус агентовMetriccount by agent.status
Версии ОСPieagent.os.name
Последняя активностьTableagent.name, @timestamp

Часть 7. Расширенные возможности Wazuh

7.1 Мониторинг целостности файлов

FIM (File Integrity Monitoring) позволяет отслеживать изменения в критичных файлах.

Настройка FIM на агенте:

В /var/ossec/etc/ossec.conf:

<syscheck>
  <disabled>no</disabled>
  <frequency>7200</frequency>
  <directories check_all="yes" realtime="yes">/etc,/usr/bin,/usr/sbin</directories>
  <directories check_all="yes">/home/*/bin</directories>
  <ignore>/etc/mtab</ignore>
  <ignore>/etc/hosts.deny</ignore>
</syscheck>

После изменения конфига перезапустите агент:

sudo systemctl restart wazuh-agent

7.2 Сканирование уязвимостей

Wazuh может детектировать уязвимости в ПО на агентах.

Включение модуля на сервере:

В /var/ossec/etc/ossec.conf на сервере:

<wodle name="vulnerability-detector">
  <disabled>no</disabled>
  <interval>5m</interval>
  <run_on_start>yes</run_on_start>
  <provider name="canonical">enabled</provider>
  <provider name="redhat">enabled</provider>
  <provider name="debian">enabled</provider>
</wodle>

7.3 Активное реагирование

Можно настроить автоматическую блокировку IP при обнаружении атаки.

Шаг 1. Создайте скрипт реагирования

sudo nano /var/ossec/active-response/bin/block-ip.sh
#!/bin/bash
IP=$1
iptables -A INPUT -s $IP -j DROP
sudo chmod +x /var/ossec/active-response/bin/block-ip.sh

Шаг 2. Настройте правило в ossec.conf

<command>
  <name>block-ip</name>
  <executable>block-ip.sh</executable>
  <timeout_allowed>yes</timeout_allowed>
</command>

<active-response>
  <command>block-ip</command>
  <location>local</location>
  <rules_id>100002</rules_id>
  <timeout>600</timeout>
</active-response>

Часть 8. Альтернатива: ELK Stack с нуля

Если Wazuh кажется слишком “коробочным”, можно собрать свой SIEM на базе ELK.

8.1 Установка Elasticsearch

# Добавление репозитория
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

# Установка
sudo apt update
sudo apt install -y elasticsearch

# Настройка
sudo nano /etc/elasticsearch/elasticsearch.yml
# Укажите:
# network.host: 0.0.0.0
# discovery.type: single-node
# xpack.security.enabled: true

# Установка паролей
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

# Запуск
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

8.2 Установка Kibana

sudo apt install -y kibana

# Настройка
sudo nano /etc/kibana/kibana.yml
# Укажите:
# server.host: "0.0.0.0"
# elasticsearch.hosts: ["http://localhost:9200"]
# elasticsearch.username: "kibana_system"
# elasticsearch.password: "установленный-пароль"

sudo systemctl enable kibana
sudo systemctl start kibana

8.3 Установка Logstash

sudo apt install -y logstash

# Создание конфигурации для парсинга логов
sudo nano /etc/logstash/conf.d/beats.conf
input {
  beats {
    port => 5044
  }
}

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGLINE}" }
    }
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    user => "elastic"
    password => "установленный-пароль"
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
  }
}
sudo systemctl enable logstash
sudo systemctl start logstash

8.4 Установка Filebeat на агента

# На агенте
sudo apt install -y filebeat

# Настройка
sudo nano /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/syslog
    - /var/log/auth.log
  fields:
    type: syslog

output.logstash:
  hosts: ["SIEM-СЕРВЕР:5044"]
sudo systemctl enable filebeat
sudo systemctl start filebeat

Часть 9. Интеграция SIEM с GRC-процессами

9.1 Интеграция Wazuh с GLPI (создание тикетов)

Шаг 1. Установите плагин GLPI для вебхуков

В GLPI: КонфигурацияПлагины → установите WebServices или GLPI REST API

Шаг 2. Создайте скрипт для отправки алертов в GLPI

sudo nano /var/ossec/active-response/bin/create-glpi-ticket.py
#!/usr/bin/env python3
import requests
import json
import sys
import datetime

# Конфигурация GLPI
GLPI_URL = "https://glpi.example.com/apirest.php"
APP_TOKEN = "ваш-app-token"
USER_TOKEN = "ваш-user-token"

# Получение данных алерта из аргументов (зависит от вызова)
alert_data = sys.argv[1]  # упрощенно

# Авторизация в GLPI
session = requests.Session()
session.headers.update({
    'Content-Type': 'application/json',
    'Authorization': f'user_token {USER_TOKEN}',
    'App-Token': APP_TOKEN
})

# Создание тикета
ticket = {
    "input": {
        "name": f"Security Alert: {alert_data.get('rule.description', 'Unknown')}",
        "content": f"Source IP: {alert_data.get('data.srcip')}\nAgent: {alert_data.get('agent.name')}",
        "urgency": 3,  # Высокая
        "priority": 4,
        "entities_id": 1
    }
}

response = session.post(f"{GLPI_URL}/Ticket", json=ticket)
print(response.json())

Шаг 3. Настройте активное реагирование для вызова скрипта

В ossec.conf на сервере:

<command>
  <name>create-ticket</name>
  <executable>create-glpi-ticket.py</executable>
</command>

<active-response>
  <command>create-ticket</command>
  <location>server</location>
  <rules_id>100002</rules_id>
</active-response>

9.2 Интеграция с Eramba (учет инцидентов как рисков)

Шаг 1. Экспорт алертов из Wazuh в Eramba

Создайте скрипт для периодического экспорта:

sudo nano /usr/local/bin/export-alerts-to-eramba.py
#!/usr/bin/env python3
import requests
import json
import datetime
from elasticsearch import Elasticsearch

# Подключение к Elasticsearch (Wazuh использует его)
es = Elasticsearch(["localhost:9200"], http_auth=('admin', 'admin'), verify_certs=False)

# Поиск алертов за последние 24 часа
query = {
    "query": {
        "range": {
            "timestamp": {
                "gte": "now-1d"
            }
        }
    },
    "size": 1000
}

result = es.search(index="wazuh-alerts-*", body=query)

# Конвертация в формат Eramba
risks = []
for hit in result['hits']['hits']:
    alert = hit['_source']
    risk = {
        "title": f"SIEM Alert: {alert.get('rule.description', 'Unknown')}",
        "description": json.dumps(alert, indent=2),
        "category": "Information Security",
        "inherent_score": alert.get('rule.level', 5) * 3,  # Условная оценка
        "source": "wazuh"
    }
    risks.append(risk)

# Здесь должен быть код для отправки в Eramba API
# (аналогично предыдущему примеру с GLPI)

print(f"Экспортировано {len(risks)} рисков")

9.3 Полный цикл: от события до риска

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│   Агент Wazuh   │────▶│   Сервер Wazuh  │────▶│  Elasticsearch  │
│  (событие)      │     │  (корреляция)   │     │  (хранение)     │
└─────────────────┘     └─────────────────┘     └─────────────────┘
                                                          │
                                                          ▼
┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│     GLPI        │◀────│  Active Response│────▶│     Kibana      │
│  (тикет)        │     │  (скрипт)       │     │  (дашборд)      │
└─────────────────┘     └─────────────────┘     └─────────────────┘
                                                          │
                                                          ▼
┌─────────────────┐     ┌─────────────────┐
│    Eramba       │◀────│  Ежедневный     │
│  (риск)         │     │  экспорт        │
└─────────────────┘     └─────────────────┘

Часть 10. Мониторинг соответствия требованиям ФСТЭК

10.1 Требования к регистрации событий

ФСТЭК требует регистрировать события безопасности (Приказ ФСТЭК №17, №21, №31). SIEM помогает это автоматизировать.

Что нужно регистрировать:

КатегорияСобытияWazuh-правила
Вход/выходУспешные/неуспешные логины5500, 5712
Действия администраторовИзменения прав, создание пользователей5020, 5130
Доступ к ресурсамОткрытие файлов, запуск программFIM, 100001
Изменения конфигурацииИзменение настроек безопасности5900
События СЗИСрабатывания антивируса, МЭ87100+

10.2 Создание отчета для ФСТЭК

Шаг 1. Создайте дашборд “Compliance ФСТЭК”

В Kibana создайте дашборд со следующими визуализациями:

  1. Metric — общее количество событий за период
  2. Pie chart — распределение по типам событий (аутентификация, доступ, администрирование)
  3. Data table — список критичных событий (level >= 10)
  4. Line chart — динамика событий по часам

Шаг 2. Экспортируйте отчет в PDF

  • Откройте дашборд
  • Нажмите SharePDF Reports
  • Выберите период (месяц, квартал)
  • Скачайте PDF для предоставления регулятору

Шаг 3. Автоматизируйте отправку отчетов

sudo nano /usr/local/bin/send-fstek-report.sh
#!/bin/bash
# Генерация отчета через API Kibana
curl -X POST "http://localhost:5601/api/reporting/generate/pdf" \
  -H "kbn-xsrf: true" \
  -u admin:password \
  -H "Content-Type: application/json" \
  -d '{
    "jobParams": {
      "browserTimezone": "Europe/Moscow",
      "layout": {
        "id": "preserve_layout"
      },
      "relativeUrls": ["/app/dashboards#/view/fstek-dashboard"],
      "title": "ФСТЭК-отчет"
    }
  }' > /tmp/report.pdf

# Отправка по email
echo "Отчет по безопасности за месяц" | mail -s "ФСТЭК-отчет" -a /tmp/report.pdf fstek@company.ru

Часть 11. Процессы SOC (Security Operations Center)

11.1 Триаж инцидентов

Не все алерты требуют реагирования. Введем уровни критичности:

УровеньWazuh levelОписаниеДействие
Информационный0-3Редкие, но нормальные событияТолько логирование
Низкий4-6Подозрительные, но не опасныеПроверка в рабочем порядке
Средний7-9Явные признаки разведкиРасследование в течение дня
Высокий10-12Успешная атака или ее попыткаНемедленное реагирование
Критический13-15Компрометация критичных системРеагирование 24/7, эскалация руководству

11.2 Расследование инцидента

Шаг 1. Сбор данных

В Kibana найдите все события по индикатору (IP, пользователь, хост):

data.srcip: "192.168.1.100" OR user.name: "admin"

Шаг 2. Построение хронологии

Создайте дашборд с временной шкалой (timeline) для визуализации последовательности событий.

Шаг 3. Документирование

Создайте карточку инцидента в GLPI или отдельном трекере:

# Инцидент INC-2026-001
**Дата:** 2026-03-10
**Обнаружен:** Wazuh rule 100002 (SSH brute-force)
**Актив:** web-server-01
**IP атакующего:** 185.130.5.xxx
**Действия:**
- 02:15:00 - начало brute-force (50 попыток)
- 02:17:30 - сработало правило корреляции
- 02:17:35 - активное реагирование (блокировка IP)
- 02:18:00 - уведомление администратора
**Статус:** Закрыт

11.3 Поиск угроз

Задача: Найти следы атаки, которая могла остаться незамеченной.

Пример гипотезы: “Возможно, злоумышленник использовал PowerShell для загрузки вредоносного ПО”

Запрос в Kibana:

event_id: 4104 AND powershell.command: "*Invoke-WebRequest*" AND powershell.command: "*http*"

Часть 12. Заключение и дальнейшие шаги

12.1 Что мы построили

Мы создали полноценную SIEM-систему, которая:

  1. Собирает логи со всех серверов (Windows, Linux)
  2. Коррелирует события и генерирует алерты
  3. Визуализирует данные в дашбордах
  4. Интегрируется с GLPI для создания тикетов
  5. Экспортирует данные в Eramba для учета рисков
  6. Помогает соответствовать требованиям ФСТЭК
  7. Автоматизирует реагирование на инциденты

12.2 Чек-лист внедрения SIEM

  • Развернут сервер Wazuh/ELK
  • Настроены агенты на всех критичных серверах
  • Созданы правила корреляции для основных атак
  • Настроен мониторинг целостности файлов (FIM)
  • Включено сканирование уязвимостей
  • Созданы дашборды для руководства и операторов
  • Настроена интеграция с GLPI/Eramba
  • Написаны инструкции по реагированию
  • Проведено обучение персонала

12.3 Рекомендации по развитию

  1. Добавьте Threat Intelligence — подключите фиды с индикаторами компрометации (MISP, AlienVault OTX)
  2. Внедрите SOAR — автоматизируйте реагирование (Shuffle, n8n, Wazuh уже имеет базовые возможности)
  3. Перейдите на кластер — для отказоустойчивости разверните несколько нод Elasticsearch
  4. Настройте долгосрочное хранение — используйте горячее/холодное хранение данных (hot/warm/cold)
  5. Добавьте анализ поведения — UEBA (User and Entity Behavior Analytics) модули

Практическое задание

  1. Разверните Wazuh на сервере (по инструкции из Части 3)
  2. Установите агенты на 2-3 тестовые машины (Linux и Windows)
  3. Создайте собственное правило корреляции для любого события
  4. Настройте дашборд в Kibana с ключевыми метриками
  5. Попробуйте сымитировать атаку (например, перебор паролей) и убедитесь, что SIEM сработал
  6. Настройте отправку уведомлений в Telegram или email

Нужна помощь?

Если вам нужно внедрить SIEM в продуктовую среду, не хватает экспертизы или вы хотите передать эту сложную задачу профессионалам — обратитесь в компанию «Стратегия Ра». Мы поможем спроектировать архитектуру, развернуть и настроить SIEM (как на базе open-source, так и коммерческие решения), интегрировать с существующими системами и обучить вашу команду. Мы также проводим аудит текущей системы мониторинга и помогаем подготовиться к проверкам ФСТЭК.