@ Карта сайта News Автора!

Bog BOS: Snort - система обнаружения и предупреждения вторжений (IDS)

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL

Последнее изменение файла: 2008.04.10
Скопировано с www.bog.pp.ru: 2024.11.23

Bog BOS: Snort - система обнаружения и предупреждения вторжений (IDS)

Snort - система обнаружения и предупреждения вторжений (IDS).

Системы обнаружения вторжений

Вторжение - нежелательный и неправомочный доступ к сетевым ресурсам. IDS (intrusion detection system) анализирует сетевые пакеты и сравнивает результат с имеющейся базой шаблонов (сигнатур, signature) известных сетевых атак. Обнаружив совпадение IDS может поднять тревогу, выполнить автоматические защитные действия (отключить сетевой интерфейс), запустить специализированную систему сбора доказательств. По типу мониторинга IDS разделяются на

По типу анализа IDS делятся на

Пространство событий делится на наблюдаемую и ненаблюдаемую области в зависимости от архитектуры сети и архитектуры IDS (коммутаторы, VLAN), проблем с производительностью, отказами и распознаваемыми протоколами. Не все наблюдаемые события попадают в категорию собираемых данных. Не все собираемые данные относятся к значимым событиям. В значимые события попадают также ложные срабатывания (false positives) и пропущенные атаки (false negative). Без тонкой настройки IDS создаёт столько ложных срабатываний, что становится бесполезной. Значимые события ранжируются по уровню серьёзности: важность цели, вероятность ущерба, наличие защитных мер на уровне сети и системы.

Проблемы с наблюдаемостью в современных сетях: коммутаторы, VLAN.

Требования к консоли управления:

Сетевые и распределённые IDS:

Хостовые IDS и агенты DIDS:

Общее описание Snort

Snort - сетевая IDS с анализом по шаблонам (правилам) и обнаружением аномалий (некоторые модули препроцессора). Система с открытыми текстами (GNU, компания Sourcefire, 2.8.1 на 10 апреля 2008). Доступ к базе шаблонов ограничен (желающие могут писать свои шаблоны или искать их в Интернет). Пользователи делятся на:

Может работать в режимах прослушивания сети, журналирования сетевой активности и IDS. Шаблоны определяются набором правил обработки пакетов и программ препроцессирования (дефрагментация, сборка TCP потока). Новые шаблоны (правила) поддерживаются только в новой версии. Правила делятся на типы и нумеруются (SID - Sensor ID). Возможно написание своих подключаемых модулей. Графический интерфейс - Demarc/Puresecure (Unix) и IDScenter (MS Windows).

Для работы требуется большой и быстрый диск (RAID) - 100GB; много оперативной памяти (170MB на интерфейс для x86; 250MB - для x86-64); быстрая сетевая карта (zero copy transfer, подсчёт контрольных сумм, опрос вместо обработки прерываний, NAPI), желательно отдельная сетевая карта. Поддерживаемые ОС (требуется libcap): Linux, FreeBSD, NetBSD, OpenBSD, MS Windows, Sparc Solaris, x86 Mac OS X, PowerPC Mac OS X, PA-RISC HP-UX. Входит в состав некоторых Live CD: Auditor, Trinux, Bootable Snort Project, NST (Network Security Toolkit, сконфигурированный Snort, MySQL и веб-интерфейс). Snort - однопоточная система, для использования нескольких процессоров можно запускать несколько копия с соответствующими фильтрами захвата. Желательно привязать процесс и обработчик прерываний к одному и тому же процессору.

Основные архитектурные компоненты (отражают путь пакета, являются встраиваемыми модулями, кроме захвата):

Установка Snort 2.8.1 на CentOS 5 (x86_64) из исходных текстов и базовая настройка

Последовательность установки (в /usr/local)

Установка Snort 2.7.0.1 на CentOS 5 (4.5) из исходных текстов и базовая настройка

Последовательность установки (в /usr/local)

Настройка Snort

Имя файла настройки задаётся ключом "-c". По умолчанию ищется файл snort.conf в текущем каталоге. Каждая директива располагается в отдельной строке. Комментарии начинаются с символа '#'. Директива "include" включает указанный файл в обработку.

Директива "var" задаёт имя и значение переменной, которые будут использоваться в дальнейшем. Для использования переменной необходимо добавить символ "$" перед именем переменной (как в bash). В поставляемом файле настройки используется некоторое количество переменных:

Директива "config".

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

Директива "preprocessor" позволяет задавать параметры модулей препроцессора. Модуль flow реализует отслеживание состояний соединений. Соединение характеризуется набором из IP адресов и портов отправителя и получателя. Параметры: timeout, memcap (размер буфера для frag2), min_ttl, ttl_limit (позволяет предупреждать при изменении TTL пакетов в потоке). Модуль frag3 собирает пакеты из фрагментов, позволяет моделировать алгоритм дефрагментации клиентского хоста. Модуль stream4 собирает и просматривает TCP поток. Модуль sfPortscan позволяет обнаружить сканирование портов. Модуль perfmonitor позволяет собирать статистику загрузки и пропущенных пакетов.

Директива "output" задаёт параметры модулей вывода. Типы вывода:

Директива "ruletype" позволяет задать новый тип правила и привязать его к модулю (модулям) вывода. Формат:

ruletype имя-нового-типа-правил
{
  type тип-правила
  output ...
  output ...
  ...
}

Предопределённые типы правил (действия):

Директива "действие" задаёт правило обработки. По обычаю, такие директивы группируются по типу атаки в файлы в подкаталоге "rules" и вставляются директивой "include".

Файл sid-msg.map содержит соответствие между номерами сообщений (SID) и текстами сообщений.

Файл threshold.conf позволяет ограничить величину потока предупреждений по количеству предупреждений за единицу времени или по IP и прореживать сообщения.

Файл gen-msg.map содержит список соответствия между сообщением (см. строки вида '[119:4:1]') и компонентами Snort.

Файл classification.config задать классификацию и приоритет (low, medium, high) каждому сообщению.

Запуск Snort

Ключи запуска (перебивают настройки в snort.conf; в качестве параметра можно использовать выражение в формате Berkeley Packet Filter (BPF), фильтрация пакетов на уровне ядра как в tcpdump):

Сигнал SIGHUP вызывает перезапуск программы. Сигнал SIGUSR1 вызывает выдачу статистики (на консоль или syslog - в daemon).

Отличия версий

Ссылки

@ Карта сайта News Автора!

Bog BOS: Snort - система обнаружения и предупреждения вторжений (IDS)

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL



Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru