IDS Snort – свободно распространяемая программа (www.snort.org). Snort может работать, как обычный анализатор сетевых пакетов, перехватывая все пакеты сетевого трафика. Чтобы Snort работал как система обнаружения атак, нужно настроить файл правил регистрации пакетов (по умолчанию Snort.conf ). Тогда Snort будет регистрировать только те пакеты, которые соответствуют правилам. Правила должны описывать признаки, по которым мы можем считать, что происходит атака. Таким признаком чаще всего является некоторая последовательность данных, которая должна быть обнаружена в сетевом пакете.
Инсталляция и запуск системы
Для нормальной работы системы Snort необходима предварительная установка свободно распространяемой библиотеки WinPCap. По умолчанию система инсталлируется в каталог C:\Snort. Исполняемый модуль находится в C:\Snort\bin. Программа не имеет графического интерфейса, вся работа происходит в режиме командной строки. Общий формат команды Snort:
Snort [-options] <filter options>
Список опций можно посмотреть командой snort -?
Режимы работы программы Snort
Программа работает в трех режимах:
Для запуска программы в режиме простого сниффинга нужно задать команду:
Snort –v
Для запуска программы в режиме записи в файл нужно задать команду с указанием имени каталога, в который будем помещать файлы с протоколом трафика:
Snort –dev -l <имя каталога>
В указанном каталоге программа создаст отдельный файл протокола для каждого IP-адреса, пакеты с которого будут перехвачены. Если указанного в команде каталога не существует, программа выдаст сообщение об ошибке.
Для запуска программы в режиме NIDS нужно задать команду с указанием выходного каталога и имени файла конфигурации, например:
Snort –dev -l c:\temp -c c:\snort\etc\snort.conf
Файл c:\snort\etc\snort.conf создается по умолчанию при установке системы, и содержит стандартный набор правил фильтрации. В указанном каталоге программа создаст отдельный файл для протоколов каждого IP-адреса, и общий файл предупреждений Alert.ids.
Настройка вида выходного протокола в режиме NIDS
По умолчанию выходной протокол выводит содержимое сетевых пакетов в виде символов ASCII, и использует формат полного предупреждения (full alerts). Программа дает возможность выводить предупреждения в 6 различных форматах. Формат предупреждений задается в командной строке опцией –A:
-A fast - «быстрый» формат, выдает необходимый минимум информации
-A full - формат по умолчанию
-A unsock - посылает предупреждения на сокет UNIX-системы, на которой его прослушивает другая программа
-A none - режим отсутствия (отключения) предупреждений
-A console - выводит «быстрые» предупреждения на экран
-A cmg - выводит предупреждения в специальном формате cmg
Например:
Snort –dev -l c:\temp -c snort.conf -A fast
Задание маски подсети в Snort
Маска подсети в Snort указывается числом, следующим за IP-адресом и отделенным знаком “/”. Число 24 указывает на сеть класса С, число 16 – на сеть класса В, число 32 означает задание точного IP-адреса. Например:
192.168.5.0/24
- задает подсеть класса С, т.е. адреса в диапазоне от 192.168.5.1 до 192.168.5.255.
Определение переменных в Snort
В программе Snort могут быть определены переменные. Это делает команда var:
Var MY_NET [192.168.5.0/24]
Приведенная команда определяет переменную MY_NET, задающую адрес сети (число 24 указывает количество битов, отведенных под адрес сети). Применяется переменная с символом $, например:
Alert tcp any any -> $MY_NET any
Правила системы Snort
Правила системы Snort похожи на правила для пакетных фильтров. Они могут отбирать пакеты, основываясь на IP-адресах, портах, данных заголовка, флагах, и на содержании пакета. Snort имеет три вида правил:
· Правила предупреждений – пакеты, которые удовлетворяют этим правилам, будут зарегистрированы в указанном вами формате и будет послано предупреждение.
· Правила пропуска - пакеты, которые удовлетворяют этим правилам, будут пропущены и игнорированы.
· Правила регистрации - пакеты, которые удовлетворяют этим правилам, будут зарегистрированы, но без предупреждения.
Snort поставляется со стандартным набором правил. Стандартный набор правил не включает никаких правил пропуска и регистрации. Если запустить Snort с этим набором, скорее всего вы будете завалены ложными предупреждениями.
Правила содержатся (по умолчанию) в файле snort.conf, в котором командой include могут быть подключены другие файлы правил (файлы с расширением .rules). Это позволяет разбивать правила на логические разделы.
Синтаксис правил Snort
Правила Snort состоят из двух частей: заголовка и опций. Заголовок содержит:
· тип правила (предупреждение, регистрация, пропуск – alert, log, pass)
· протокол (tcp, ip, udp, icmp). Протоколы только эти (перечисленные) !
· оператор направления (-> определяет направление от отправителя к получателю, <> определяет пакеты обоих направлений)
· IP-адрес и порт отправителя и получателя.
Диапазоны портов могут быть указаны с помощью двоеточия ( :1024 означает все порты от 1 до 1024, 1024: означает 1024 и выше, 1024:6000 означает порты от 1024 до 6000). Ключевое слово any указывает все IP-адреса и порты.
Например:
Alert tcp any any -> 192.168.1.0/24 111
Log udp any any -> 192.168.1.0/24 1:1024
Если нужно указать несколько IP-адресов, они перечисляются через запятую в квадратных скобках:
Alert tcp any any -> [192.168.1.0/24,192.168.5.0/24] 111
Опции правил заключаются в круглые скобки и могут содержать:
· Предупреждающее сообщение
· Информацию о том, какую часть пакета нужно проверять, если правило будет применено.
Например:
Alert tcp any any -> any 21 (msg: “FTP root”; content: “USER root”)
В этом примере опция msg указывает сообщение, которое надо выводить, а опция content указывает строку символов, которую нужно искать в пакете.
Применение опций не обязательно ! Их добавляют, только если есть необходимость.
Правила записывают в виде текста в файлы с расширением .rules, а файл конфигурации snort.conf содержит ссылки на эти файлы правил.
Пример предупреждения:
Alert:
[**] IDS024 - RPC - portmap-request-ttdbserv [**]
07/27-13:33:58.314512 10.0.0.69 : 896 -> 192.168.38.15 : 111
UDP TTL:64 TOS:0x0 ID:33481
Len: 64
Здесь: IDS024 - RPC - portmap-request-ttdbserv – имя предупреждения
07/27-13:33:58.314512 - дата и время
10.0.0.69 : 896 - IP-адрес и порт отправителя
-> - направление трафика
192.168.38.15 : 111 - IP-адрес и порт получателя
UDP - тип протокола
TTL:64 - время жизни (Time To Live)
TOS:0x0 - тип службы (Type Of Service)
ID:33481 - идентификатор сеанса
1. Запустить программу Snort в режиме снифера. Программа должна перехватывать весь трафик, направленный на ваш компьютер, и выводить протокол в указанный каталог. Команду на запуск программы и часть полученного протокола поместить в отчет по лабораторной работе.
2. Запустить программу Snort в режиме обнаружения атак с использованием стандартного файла конфигурации. Программа должна перехватывать весь трафик, направленный на ваш компьютер, и выводить протокол и предупреждения в указанный каталог.
3. Сделать анализ полученного протокола предупреждений. Команду на запуск программы и часть полученного протокола поместить в отчет по лабораторной работе. В отчете по лабораторной работе указать, какие виды нарушений безопасности или подозрительных действий обнаружены программой Snort.
4. Создать свой собственный файл конфигурации, в котором указать ссылку только на правила обнаружения сканирования вашего компьютера scan.rules. Запустить Snort с этим файлом конфигурации. На соседнем компьютере запустить сканер Superscan, сканирующий ваш компьютер. Правильно настроенный Snort должен обнаружить сканирование. Полученные предупреждения о сканировании должны быть приведены в отчете по лабораторной работе.
5. Создать свой собственный файл конфигурации, в котором указать ссылку только на правила обнаружения подозрительного ICMP-трафика icmp.rules. Проверить, предупреждает ли программа Snort об исследовании маршрута к вашему компьютеру с помощью утилиты traceroute.
6. Создать свой собственный файл правил проверки трафика student.rules. Указать его в файле конфигурации. Файл должен содержать следующие правила:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.