С чего начать

Вводный раздел для тех, кто впервые сталкивается с системами обнаружения вторжений. Здесь мы разберём, что такое IDS, как устроен сетевой трафик, почему сигнатуры не спасают от целевых атак и какие метрики определяют качество детектора.

~ 25 минут чтения Для начинающих

1. Что такое IDS и зачем он нужен

Система обнаружения вторжений (Intrusion Detection System, IDS) — это программно-аппаратный комплекс, который анализирует сетевой трафик или события внутри компьютера, чтобы найти признаки вредоносной активности. IDS не предотвращает атаку напрямую — она её обнаруживает и сообщает администратору или в систему реагирования.

Родственный класс систем — IPS (Intrusion Prevention System). IPS стоит в разрыве сети и может блокировать пакет или сессию сразу, а IDS обычно получает копию трафика и работает пассивно. Подробнее об этом — в главе [[vol1-ch02|Архитектура систем защиты]].

💡

Аналогия

IDS — это охранник с камерами: он видит всё, но может только вызвать подмогу. IPS — охранник с оружием: он может остановить нарушителя на месте, но ошибка может обернуться против своих.

2. Как устроен сетевой трафик

Сеть передаёт данные пакетами — небольшими блоками, каждый из которых содержит заголовок и полезную нагрузку. Заголовок описывает, откуда и куда идёт пакет, какой у него протокол, сколько в нём байт.

  • Пакет — единица передачи данных. Имеет заголовки L2 (Ethernet), L3 (IP), L4 (TCP/UDP).
  • Поток (flow) — последовательность пакетов с общим 5-кортежем: (src_ip, dst_ip, src_port, dst_port, protocol).
  • Сессия — логически завершённый обмен «запрос → ответ» (например, один HTTP-запрос).

Именно на этих уровнях оперируют инструменты обнаружения: одни смотрят на отдельные пакеты, другие — на потоки, третьи — на поведение хоста целиком.

3. Что такое сигнатура и почему её недостаточно

Классический IDS ищет в трафике сигнатуры — заранее известные «отпечатки» атак: строки, регулярные выражения, последовательности байт. Пример правила Suricata для червя CodeRed:

codered.rules
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (
  msg:"WEB-IIS CodeRed v2 root.exe access";
  content:"/root.exe?"; nocase;
  sid:1002; rev:1;
)

Сигнатура находит известную атаку безошибочно и мгновенно, но не работает против нулевого дня (zero-day) и легко обходится обфускацией — достаточно изменить регистр или разбить строку на два пакета. Поэтому современные системы комбинируют сигнатуры с аномальным и поведенческим анализом (глава [[vol1-ch06|Методы обнаружения]]).

4. Матрица ошибок: базовые метрики

Любой детектор ошибается. Ошибки делятся на четыре категории, которые образуют матрицу ошибок:

Реальная атака Реальная норма
Детектор сказал «атака» TP FP
Детектор сказал «норма» FN TN

Из них выводятся две ключевые метрики, которые всегда находятся в конфликте:

(1) Precision = TP / (TP + FP)
TP
истинно-положительные: атаки, которые детектор нашёл
FP
ложные срабатывания: норма, ошибочно принятая за атаку
(2) Recall = TP / (TP + FN)
FN
пропущенные атаки: детектор их не увидел

Увеличение чувствительности поднимает Recall, но снижает Precision — и наоборот. Это фундаментальный компромисс, подробно разобранный в главах [[vol1-ch06|6]] и [[vol2-ch22|22]].

5. Почему 100% обнаружения не существует

Есть три фундаментальные причины, из-за которых идеальный детектор невозможен:

  1. Теоретико-вычислительная. Задача «определить, является ли произвольный код вредоносным» сводится к проблеме останова Тьюринга, которая алгоритмически неразрешима.
  2. Информационная. Асимметрия знаний: защитник должен закрыть всё, злоумышленнику достаточно одной дыры.
  3. Статистическая. Компромисс Precision–Recall неустраним: снижение порога повышает Recall за счёт роста FP.

6. Что делать дальше

Теперь вы готовы перейти к систематическому курсу. Рекомендуемый маршрут:

  • Глава [[vol1-ch01|1. Эволюция кибератак]] — общий ландшафт угроз.
  • Глава [[vol1-ch02|2. Архитектура систем защиты]] — карта всех инструментов.
  • Глава [[vol1-ch03|3. MITRE ATT&CK]] — язык описания атак.
  • Лабораторная [[lab01|1. Анализ PCAP]] — первые шаги с реальным трафиком.

Если вы предпочитаете учиться на практике — откройте [[lab01|первую лабораторную]] и вернитесь к теории по мере необходимости. Каждая лабораторная содержит теоретическую выжимку с ссылками на соответствующие главы.

📖

Том 1: Фундамент

18 глав от истории атак до Detection as Code.

Семестр 1→
🧪

Лабораторный практикум

8 работ: PCAP, Suricata, Zeek, Wazuh, Elastic, ATT&CK, ML, эвазия.

Практика→
🛰️

Демонстрации

27 интерактивных визуализаций и симуляций.

Интерактив→