Open
Close

Snort установка и настройка на linux. Практика использования IDS SNORT. Структура и функционирование Snort

Сегодня о безопасности беспроводных сетей говорят часто и много, но взлом сети воспринимается как что-то очень далёкое. Мы уже публиковали материал о том, как взломать защиту WEP. Кроме того, через некоторое время вышло продолжение о том, как защитить сеть. Сегодня же наше внимание будет посвящено инструментам проверки защиты беспроводной сети. А также системам обнаружения атак - своеобразной "пожарной сигнализации" вашей WLAN.

Кстати, если уж говорить о взломе WLAN, то особенно уязвимыми нам кажутся пользователи домашних и небольших офисных сетей. Это связано, прежде всего, с тем, что у них есть другие задачи, кроме как защищать свою беспроводную сеть. Да и, в отличие от крупных компаний, у них нет возможности принять на работу профессионалов.

Однако, не всё так печально, как кажется. В природе существуют способы для оценки защищённости беспроводной сети, несмотря на кажущуюся абсурдность сочетания слов "безопасность" и "беспроводная сеть". Системы распознавания атак (Intrusion Detection Systems - IDS) позволяют обнаружить возможные способы вторжения ещё до того, как они произойдут, пока враг ищет лазейку. Конечно, такие системы не могут гарантировать полную защищённость (а что, кстати, может?), но в сочетании с брандмауэрами и другими средствами защиты они могут оказаться весьма полезными. Принято считать, что IDS это своего рода охранная сигнализация: то есть она лишь оповещает об атаке, оставляя работу с атакующим на другие системы и средства (вплоть до физических).

Рис. 1. Snort IDS.


Рис. 3. Linksys WRT54G.

Ниже мы будем приводить примеры на основе WRT54G с прошивкой OpenWRT RC 2 (с кодовым названием "White Russian"). На самом деле существует множество дистрибутивов Linux для беспроводных маршрутизаторов, но мы остановились именно на прошивке OpenWRT, поскольку она простая, "лёгкая" и поставляется в пакетном виде наподобие Debian Linux.


Рис. 4. OpenWRT в работе.

Предупреждение. Загрузка OpenWRT, Snort Wireless или других альтернативных версий прошивки в WRT54G лишает гарантии. Перед тем, как начать прошивку альтернативной версии, рекомендуем скачать копию текущей версии прошивки

Мы не будем детально рассматривать установку OpenWRT, так как на сайте OpenWRT можно найти прекрасное руководство по инсталляции . После завершения установки можно подключиться к маршрутизатору при помощи Telnet () и насладиться результатом.

После установки OpenWRT на маршрутизатор, можно скачивать и устанавливать программу Snort Wireless . Всё это можно сделать через упомянутую пакетную систему OpenWRT - выполнить команду ipkg со следующими параметрами.

ipkg install http://nthill.free.fr/openwrt/ipkg/testing/20041204/snort-wireless_2.1.1-1_mipsel.ipk

Некоторым может не понравиться, что этому пакету уже больше года. Но ничего страшного в этом нет, поскольку все необходимые функции IDS здесь присутствуют, а все более поздние правила Snort можно тоже скачать через ipkg (подробнее: OpenWRT tracker page ). Если вы решили организовать точку доступа на ПК, то можете скачать исходный код Snort Wireless и скомпилировать его прямо на компьютере. Отметим, что при этом следует добавить флаг --enable-wireless , иначе предпроцессоры Wi-Fi не будут работать.

Snort Wireless работает подобно обычному Snort, однако специально предназначен для беспроводных точек доступа, позволяя эффективно защитить их от атак. В частности, он содержит новый протокол правил, названный wifi и позволяющий IDS правильно выделять беспроводной трафик, типичный для распространённых атак на WLAN. Например, тех же атак при помощи Netstumbler или попыток взлома WEP. Использование протокола wifi в Snort Wireless очень похоже на настройку обычных правил для Snort, но с одним исключением: вместо ввода IP-адресов и портов первого и второго узлов, следует использовать их МАС-адреса.

На этом этапе у нас есть работающий Snort Wireless. Переходим к его настройке для использования в выбранной сети. При запуске ipkg Snort устанавливается в каталог /etc/snort на маршрутизаторе. Как и другие программы для Unix, Snort использует редактируемый конфигурационный файл, где можно указать информацию о сетевом окружении и шаблонах различных атак, которые нужно отслеживать. Файл носит название snort.conf (Рис. 5 ) и располагается в каталоге /etc/snort . Его нужно открыть в любом текстовом редакторе (если такового на маршрутизаторе нет, скачайте с помощью ipkg).


Рис. 5. Конфигурационный файл snort.conf.

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

В частности, обратите внимание на предпроцессоры, специфичные для Wi-Fi в Snort Wireless. Они включают предпроцессоры для определения пассивного сканирования сети с помощью программ вроде NetStumbler и попытки подмены MAC-адресов. Мы решили рассмотреть важные предпроцессоры отдельно.


Рис. 6. Предпроцессор AntiStumbler позволяет оповещать об атаке recon.

  • AntiStumbler . Такие программы, как NetStumbler и MacStumbler (Рис. 6 ), используют для обнаружения точек доступа нулевые SSID. Эти SSID работают как широковещательные и заставляют другие точки доступа прислать свои SSID на запросивший узел. Подобная функция полезна при поиске доступных беспроводных сетей. Предпроцессор AntiStumbler распознаёт рассылку слишком большого количества нулевых SSID с одного MAC-адреса и может поднять тревогу.
    Примечание. Этот предпроцессор не позволяет определять такие программы, как Kismet , поскольку те всего лишь пассивно прослушивают кадры 802.11, а не посылают запросы.
  • DeauthFlood . Эта атака была подробно описана в нашем материале о взломе WEP . Используется для отключения хостов от точек доступа и принудительной активации попытки повторного подключения, что даёт дополнительные пакеты для анализа во время взлома WEP. Кроме того, атаку можно использовать для "отказа в обслуживании" (Denial of Service, DoS) точки доступа. Предпроцессор DeauthFlood распознаёт этот тип атаки, подсчитывая количество кадров деаутентификации в единицу времени и, в случае необходимости, поднимает тревогу.
  • AuthFlood . Атака похожа на предыдущую, но предпроцессор AuthFlood определяет слишком частое число попыток аутентификации, то есть попыток подключения клиентов к беспроводной сети, что может использоваться в качестве DoS-атаки на точку доступа.
  • MacSpoof . Один из наиболее эффективных способов ограничения доступа к точке доступа - это создание списка MAC-адресов разрешённых клиентов. К сожалению, атакующий может подделать MAC-адрес своей машины и подключиться к точке доступа. Препроцессор MacSpoof проверяет номера пакетов и при обнаружении каких-либо несоответствий, указывающих на возможную подмену MAC-адреса, поднимает тревогу.
  • RogueAP . Чужие ("вражеские") точки доступа маскируются под обычные для того, чтобы пользователь ошибочно подключался к ним и передавал какие-либо личные данные. Этот предпроцессор пока не реализован , однако в будущих выпусках он сможет сообщать о близости чужих точек доступа.

Кроме того, Snort Wireless включает множество предопределённых правил для огромного количества ситуаций. В зависимости от конфигурации сети, некоторые из правил могут оказаться очень удобными. Например, все правила web, если в вашей сети работает web-сервер. Для активации правила достаточно просто убрать комментарий с соответствующей строки в конфигурационном файле Snort. Отдельные наборы правил по умолчанию сохраняются в каталоге /etc/snort/rules , причём любые из них можно просмотреть при помощи текстового редактора. Правила в наборах заданы точно так же, как и в самом Snort. Кстати, следуя примерам, можно легко написать правило самостоятельно.


Рис. 7. Правило Snort обнаружило машину, сканирующую порты.

В работе

Когда файл snort.conf готов, можно запускать Snort. При запуске можно указать множество параметров, которые определяют всё, начиная от вывода и заканчивая режимом работы. Для начала давайте запустим Snort со следующими параметрами (в строек Telnet).

snort -D -A full

Эта команда запускает Snort в виде фонового процесса, так что вы можете и дальше спокойно работать с оболочкой. Во время срабатывания тревоги в журнал будет заноситься полная информация.

Теперь, когда Snort работает, можно подумать над дополнительными способами защиты беспроводной сети. Скажем, можно обратиться к Kismet - утилите, подобной Snort, которую можно развернуть в качестве дополнительной системы обнаружения атак. Snort работает лишь на третьем уровне модели OSI - сетевом, отвечающем за IP и другой трафик. А Kismet работает на втором уровне - канальном, ответственном за кадры Ethernet. Таким образом, развёртывание обеих систем в паре позволит существенно повысить общую защищённость.


Рис. 8. Kismet в работе.

Можно настроить Snort на запись журналов в базу данных, что упрощает дальнейший анализ. Дэниэл Уолтер (Daniel Walther) написал руководство о том, как настроить запись в базы MySQL и PostgreSQL. Если вы используете Gentoo Linux на машине, работающей в качестве точки доступа, то можно пойти дальше: установить Apache и настроить отображение журналов через web. На сайте Gentoo Wiki можно найти подробное описание подобной настройки.


Рис. 9. Просмотр журналов Snort через MySQL, ACID и Apache.

Заключение

Мы затронули лишь основные принципы работы Snort. В принципе, по материалам статьи вы сможете настроить систему на точке доступа. Однако у Snort гораздо больше возможностей, чем описано в статье. В частности, вы можете заняться созданием правил самостоятельно , что поможет глубже интегрировать Snort в сеть.

Наконец, не забывайте, что для эффективной защиты беспроводной сети необходимо постоянно обновлять как Snort, так и правила. Не забывайте регулярно посещать Snort Wireless , а также ipkg package tracker (для инсталляций OpenWRT) или Snort rules page (для остальных).

Как и другие средства обеспечения безопасности, Snort не является панацеей для защиты сети. Это всего лишь один из бастионов вашей крепости. Но в комплексе защиты он работает очень даже неплохо.


Дата публикации: 21 сентября 2009г.
Перевод: С.Владимирский
Дата перевода: 2 октября 2009г.

Данное руководство описывает, как установить и настроить систему обнаружения вторжения (IDS) с пакетами Snort, ACIDBASE (основной модуль анализа и обеспечения безопасности), MySQL и Apache2 в Ubuntu 9.04 с помощью менеджера пакетов Synaptic Ubuntu. Snort поможет вам в мониторинге вашей сети и предупредит о возможных угрозах. При этом Snort сформирует файлы протоколов для базы данных MySQL, а ACIDBASE позволит отобразить их в графическом интерфейсе в веб-браузере.

1. Подготовка системы и установка программного обеспечения.

1.1 Установка.

Загрузите 32-битную или 64-битную версию Desktop Ubuntu 9.04 отсюда: http://www.ubuntu.com/getubuntu/download

1.2 Системные и сетевые настройки

Подключите ваш компьютер к сети. Хотя система может работать с самыми разными настройками, предпочтительна следующая конфигурация:

  • Размещение в демилитаризованной зоне (DMZ).
  • Статический IP-адрес, скрытый с помощью NAT за файерволом.
  • Подключение к порту мониторинга на сетевом коммутаторе (SWITCH).

Создайте нового администратора с именем <ваше_имя> и паролем <ваш_пароль> .

1.3 Установка программного обеспечения.

Первое, что необходимо сделать после завершения установки, - установить все рекомендованные Ubuntu обновления. Для доступа к обновлениям перейдите в меню: System > Administration > Update Manager (Система > Администрирование > Менеджер обновлений). Введите свой пароль и выберите Check (Проверить) . Выберите Install Updates (Установить обновления) .

С рабочего стола перейдите в System > Administration > Synaptic Package Manager (Система > Администрирование > Менеджер пакетов Synaptic) . Введите свой пароль и выберите Search (Поиск) .

Найдите и установите следующие пакеты:

  • Acidbase со всеми зависимыми пакетами
  • Snort-MySQL со всеми зависимыми пакетами
  • MySql-server-5.0 со всеми зависимыми пакетами
  • Libpcap0.8-dev
  • libmysqlclient15-dev
  • MySql-client-5.0
  • Bison
  • Apache2
  • Libapache2-mod-php5
  • Php5-gd
  • Php5-mysql
  • Libphp-adodb
  • Php-pear

2. Получите права суперпользователя

С рабочего стола перейдите в меню: Applications > Accessories > Terminal (Приложения > Дополнения > Терминал) и введите команду:

$ sudo -i
$ введите пароль

3. Настройка Snort

Для того, чтобы установить индивидуальные настройки, необходимо изменить файл настроек snort.conf .

С помощью текcтового редактора (nano, vi, vim или другого) откройте файл /etc/snort/snort.conf .

# vim /etc/snort/snort.conf

Измените переменную var HOME_NET any на var HOME_NET 192.168.1.0/24 (адрес вашей домашней сети может отличаться от адреса 192.168.1.0). Если вы ведете мониторинг нескольких сетей, необходимо указать все эти сети следующим образом: var HOME_NET . Измените var EXTERNAL_NET any на var EXTERNAL_NET !$HOME_NET (устанавливаются все переменные, кроме внешней переменной HOME_NET).

Измените var RULE_PATH ../rules на var RULE_PATH /etc/snort/rules . Прокрутите список до того места, где указана строка # output database: log, mysql, user= , удалите знак # из начала строки.

Пример: output database: log, mysql, user= password= dbname=snort host=localhost

(смотрите выше, когда создавался новый пользователь).

Запишите имя пользователя, пароль и название базы данных (dbname). При установке базы данных MySQL вам потребуются эти данные. Сохраните изменения и выйдите.

4. Установка баз данных Snort и Archive в MySQL

4.1 Установка MySQL

Войдите на сервер MySQL.

# mysql -u root -p

Иногда бывает так, что пароль не установлен, так что просто нажмите "Enter".

Если вход не выполняется, попробуйте еще раз набрать указанную выше команду и введите ВАШ_ПАРОЛЬ.

Если пароль отсутствует, вам необходимо установить пароль для учетной записи суперпользователя.

Примечание: Когда вы на сервере MySQL, в приглашении вместо символа "#" отображается группа символов "mysql>"

mysql> create user @localhost;
mysql> SET PASSWORD FOR r@localhost=PASSWORD();
mysql> SET PASSWORD FOR root@localhost=PASSWORD();

4.2 Создание базы данных Snort

mysql> create database snort; mysql> grant INSERT,SELECT on root.* to snort@localhost; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to @localhost; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to snort;

4.3 Создание базы данных Archive

mysql> create database archive; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on archive.* to @localhost; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on archive.* to archive; mysql> exit

4.4 Создание таблиц в базах данных Snort и Archive

Мы будем использовать схему Snort для компоновки баз данных Snort и Archive.

# cd /usr/share/doc/snort-mysql # zcat create_mysql.gz | mysql -u -h localhost -p snort # zcat create_mysql.gz | mysql -u -h localhost -p archive

4.5 Подтверждение создания баз данных и вновь созданных таблиц.

Войдите на сервер MySQL и проверьте базы данных, которые мы только что создали, и таблицы, размещенные в этих базах данных. Если все было успешно создано, вы увидите четыре (4) базы данных (mysql, test, snort и archive) в базах данных mysql и приблизительно по 16 таблиц в каждой базе данных.

# mysql -u root -p mysql> show databases; mysql> use snort; mysql> show tables; mysql> use archive; mysql> show tables; mysql> exit

4.6 Тестирование Snort

В режиме терминала наберите команду: # snort -c /etc/snort/snort.conf

Если все прошло успешно, вы должны увидеть ответ в кодах ascii.

Для завершения теста нажмите ctrl + c

5. Настройка Apache2

На компьютере должен быть уже установлен пакет Apache2.

С помощью вашего любимого текстового редактора создайте файл с именем test.php в папке /var/www/ .

# vim /var/www/test.php

Запишите в нем:

Сохраните изменения и закройте этот файл.

Отредактируйте файлt /etc/php5/apache2/php.ini

# vim /etc/php5/apache2/php.ini

Под строкой "Dynamic Extensions" добавьте следующее:

Extension=mysql.so extension=gd.so

Перезагрузите Apache2.

# /etc/init.d/apache2 restart

Получите IP-адрес вашего рабочего компьютера.

# ifconfig -a

Откройте веб-браузер и перейдите по адресу http://ВАШ_IP_АДРЕС/test.php .

Если все прошло успешно, отобразится информация по РНР.

6. Конфигурирование папок

Переместите ADOdb в папку /var/www .

# mv /usr/share/php/adodb /var/www/

Создайте папку с именем web в www и переместите в нее ACIDBASE.

# mkdir /var/www/web # mv /usr/share/acidbase /var/www/web/

Временно разрешите запись в папку базы acidbase для ее установки.

# chmod 777 /var/www/web/acidbase

# cd /var/www/web/acidbase # mv base_conf.php base_conf.old

Для работы в ACIDBASE выполните команду:

# pear install Image_Color

7. Установка ACIDBASE для баз данных Snort и Archive

7.1 Установка базы данных Snort через веб-браузер

Шаг 1 из 5:

Введите путь к ADODB. Это /var/www/adodb .

Шаг 2 из 5:

Main Database type = MySQL (Тип основной базы данных),
Database name = snort (База данных Snort),
Database Host = localhost (Локальное расположение базы данных Snort),
Database username = <ваше_имя_пользователя> (Имя пользователя базой данных Snort),
Database Password = <ваш_пароль> (Пароль для базы данных Snort)

Archive Database type = MySQL (Тип базы данных Archive),


Database username = <ваше_имя_пользователя>
Database Password = <ваш_пароль>

Шаг 3 из 5:

Если вы хотите использовать аутентификацию, введите имя пользователя и пароль (user: <ваше_имя> , password: <ваш_пароль>).

Шаг 4 из 5:

Щелкните мышкой Create BASE AG (Создать BASE AG).

Шаг 5 из 5:

Когда шаг 4 выполнен, в нижней части щелкните: Now continue to step 5 (Теперь переходите к шагу 5) .

Добавьте эту страницу в закладки.

7.2 Создайте папку для базы данных Archive ACIDBASE

Чтобы архивная база данных корректно работала, в папке ACIDBASE должна быть создана папка archive .

# mkdir /var/www/web/acidbase/archive # cd /var/www/web/acidbase # cp -R * /var/www/web/acidbase/archive # chmod 777 /var/www/web/acidbase/archive

Переименуйте существующий файл base_conf.php в base_conf.old .

# cd /var/www/web/acidbase/archive # mv base_conf.php base_conf.old

7.3 Установка базы данных Archive через веб-браузер.

Откройте веб-браузер и перейдите по адресу http://ВАШ_IP_АДРЕС/web/acidbase/archive/setup .

На первой странице щелкните "Продолжить".

Шаг 1 из 5:

Введите путь к ADODB. Это /var/www/adodb. >

Шаг 2 из 5:

Archive Database type = MySQL (Тип базы данных),
Database name = archive (База данных Archive),
Database Host = localhost (Локальное расположение базы данных Archive),
Database username = <ваше_имя_пользователя> (Имя пользователя базой данных Archive),
Database Password = <ваш_пароль> (Пароль для базы данных Archive)

Шаг 3 из 5:

Если вы хотите использовать аутентификацию, введите имя пользователя и пароль(user: <ваше_имя_пользователя> , password: <ваш_пароль>).

Шаг 4 из 5:

Щелкните на Create BASE AG (Создать BASE AG) .

Шаг 5 из 5:

Когда шаг 4 пройден, внизу щелкните: Now continue to step 5 (Теперь переходите к шагу 5).

8. Запуск Snort и проверка статуса сервисов.

Чтобы запустить Snort наберите в режиме терминала:

# snort -c /etc/snort/snort.conf -i eth0 -D

Эта команда запускает snort с использованием интерфейса eth0 в демо-режиме.

Вы можете убедиться, что сервис запущен, с помощью следующей команды:

# ps aux | grep snort

Если сервис работает, вы увидите что-то, похожее на следующее snort -c /etc/snort/snort.conf -i eth0 -D .

Убедитесь, что все необходимые сервисы работают путем выполнения следующих команд:

# /etc/init.d/mysql status # /etc/init.d/apache2 status # /etc/init.d/snort status

Если сервисы работают, вы увидите ответное сообщение .

Если нужно, запустите команду
# /etc/init.d/ restart
для каждого из сервисов, который должен быть перезапущен.

Введение

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

Основным его плюсом является доступность, и возможность редактировать его работу под свою конкретную рабочую сеть. Программа предназначена для работы как в малых, так и больших организациях. Так же не маловажна возможность редактирования собственных уникальных правил исходя из требований безопасности конкретной организации (например, запрет на доступ персонала к социальным сетям).

Из минусов можно выделить неудобность настройки и установки на некоторых ОС (например, Windows), отсутствие единого достаточно полного и подробного описания настройки и разработки собственного набора правил.

Также, очень тяжело отсечь ложные тревоги, так как не редко на разных предприятиях разные ограничения, и требуется достаточно тонкая настройка правил. Множество режимов запуска приложения с помощью ключей чувствительных к регистру очень сложно запоминаемы и могут привести к ошибочному выводу.

Основная задача этой работы состоит в том, что бы разобраться с функциональными особенностями работы IDS Snort, проверить работу приложения производя на него разного рода сетевые атаки. Выяснить есть ли аналогичные IDS в более удобном формате. Как Snort взаимодействует с базами данных. Разработать несколько уникальных правил и проверить их на работоспособность.

Установка и настройка IDS Snort

Snort: Установка на ОС Windows XP

При установке Snort на операционную систему Windows могут возникнуть некоторые сложности. Поэтому в этой работе уделяется достаточно подробная часть установки и возможностей настройки. Для начала нужно скачать требуемые программы на рабочий компьютер.

Правила для Snort.

Все вышеуказанное скачивается с официальных сайтов этих приложений.

Winpcap - приложение, которое перехватывает и фильтрует пакеты на уровне ядра. Это аналог встроенному драйверу Unix систем libpcap. Установка не доставит особых не удобств, запускается через обычный инсталлятор. После этого требуется скачать с официального сайта саму IDS, после этого мы скачиваем оттуда же свежий архив с правилами. Следующим шагом станет полное копирование всех папок, которые находились в архиве с правилами в корневой каталог приложения с полной заменой содержимого, где это требуется. Затем для правильной работы программы потребуется провести важные изменения в конфигурационном файле.

var RULE_PATH c:snort ules

var SO_RULE_PATH c:snortso_rules

var PREPROC_RULE_PATH c:snortpreproc_rules

dynamicpreprocessor directory c:snortlibsnort_dynamicpreprocessor

dynamicengine c:snortlibsnort_dynamicenginesf_engine.dll

#dynamicdetection directory /usr/local/lib/snort_dynamicrules

Находим подобные строчки в конфигурационном файле и заменяем теми которые предоставлены выше. После этого пробуем протестировать приложение. Запускаем командную строку и переходим к каталогу приложения в раздел "bin". Введем команду "snort -W"

Рис. 1.1.

Этой командой мы проверяем работоспособность приложения просматривать наши интерфейсы. Убедившись что их более одного, выбираем тот который подключен к рабочей сети, что бы приступить к перехвату пакетов и отслеживанию работы IDS.

С:Snortinsnort -i 3 -c C:snortetcsnort.conf -l C:snortlog -A console

Разберем теперь команду которую мы ввели. "- i 3" означает что мы будем просматривать интерфейс который имеет ID= 3 в списке наших интерфейсов. Затем мы указали путь до файла конфигурации и путь до каталога куда следует записывать "log" перехваченных пакетов. "-A console" обозначает что тревожные пакеты будут выявляться у нас в консоли. Если во время обработки возникают какие либо неполадки устраняем их по ходу выявления. Snort указывает строку и вид ошибки при сборке. Если все сработало, то мы ничего не увидим до тех пор пока не сработает одно из запущенных правил. Что бы задействовать одно из них попробуем имитировать сетевую атаку и запустим подозрительный пакет по нашей локальной сети. Для этого к примеру откроем командную строку и введем следующее: "Ping 192.168.1.16". Snort перехватит попытку прослушать хост под адресом 192.168.1.1624 и выведет сообщение и информацию об подозрительном действии в сети. К сожалению у подобных IDS систем есть сильный недостаток -это ложные срабатывания. В связи с этим для того что бы Snort был полезным и не вводил в заблуждение, нужно достаточно емко и четко прописывать правила и разграничивать просматриваемые сети, что бы избежать этих ложных срабатываний.


Рис. 1.2.

Сейчас в консоли, где работает наш IDS, появятся сообщения о подозрительном пакете, который напоминает "прослушивание". Это задействованное правило показало, что Snort полностью работоспособен. Рассмотрим режимы его работы и синтаксис правил для дальнейшей работы.

Ежедневно по корпоративным сетям передаются миллиарды пакетов данных. Некоторые из них опасны; авторы таких пакетов приняли специальные меры, чтобы обойти брандмауэры и пробиться через линии обороны по периметру сетей, нарушая работу всех встреченных на пути систем. Разрушительное действие таких проведенных с использованием пакетов атак, как Code Red, Nimda, SQL Slammer и MSBlaster, хорошо известно. Все эти вредоносные программы используют в своих целях доверенные протоколы (например, HTTP) или сетевой трафик систем Microsoft. Такие протоколы нельзя просто взять и блокировать, поэтому администраторы обычно стараются как можно быстрее зафиксировать опасный трафик с помощью систем обнаружения несанкционированного доступа, Network Intrusion Detection System (NIDS), чтобы вовремя среагировать на угрозу.

В продаже имеется несколько NIDS, разнообразных по возможностям и стоимости. В целом все они работают успешно. Все коммерческие пакеты, с которыми мне пришлось столкнуться, произвели отличное впечатление. Но что делать организациям со скромным бюджетом, если обнаружение несанкционированного доступа не относится к числу приоритетных задач? На такой случай существует Snort - мощный бесплатный пакет NIDS. В отличие от многих пакетов с открытым кодом, он совместим с Windows.

Знакомство с Snort

Первый разработчик Snort Мартин Реш предоставил программу открытому сообществу на условиях лицензии GNU General Public License (GPL). История этого пакета началась в 1998 г., и с тех пор он не раз доказал свою надежность. Благодаря вкладу членов открытого сообщества и сетевых администраторов во всем мире Snort превратился в очень мощный продукт. Текущая версия обеспечивает анализ сетевого трафика в реальном времени и регистрацию IP-трафика со скоростями Fast Ethernet и Gigabit Ethernet.

Майкл Дэвис перенес Snort 1.7 на платформу Win32, сделав его доступным для сообщества Windows. Затем Крис Рейд взял на себя задачу компиляции новых версий Snort в готовые исполняемые файлы, которые можно без труда развернуть в среде Windows.

Администраторы, незнакомые с NIDS, могут считать инструмент особой разновидностью сетевого анализатора. NIDS проверяет каждый пакет, проходящий через интерфейс, в поисках известных последовательностей в информационном наполнении, где обычно скрыт вредоносный программный код. С помощью Snort можно выполнять операции поиска и сопоставления над каждым пакетом, проходящим через сеть организации, и обнаруживать множество типов атак и нелегитимного трафика в реальном времени.

Требования Snort

Для работы Snort необходим компьютер Windows, оснащенный по крайней мере одним сетевым адаптером. Лучше иметь два сетевых адаптера, один из которых подключен к контролируемой сети, а другой - к производственной сети; последний пересылает отчеты. Snort совместим не только с Windows 2000 Server и более поздними версиями, но и с Windows XP Professional Edition, XP Home Edition и Windows 2000 Professional. Лицензии для сервера не требуется. Ежедневно я подключаю ноутбук XP Pro ко многим сетям клиентов и обычно запускаю Snort в качестве службы. Таким образом, программа работает в фоновом режиме, обнаруживая любые атаки на мою систему, исходящие из данной клиентской сети. Я использую Snort как переносной сенсор - программа играет роль NIDS для любого порта, к которому подключается ноутбук.

В небольших сетях развернуть Snort можно на сервере начального уровня. Для обнаружения попыток несанкционированного доступа выделенная машина большой мощности не нужна. Например, мне приходилось слышать об узлах Snort на платформе FreeBSD с процессорами на 1 ГГц и оперативной памятью объемом 1 Гбайт, которые успешно обслуживали сети с 15 000 пользователей и несколькими соединениями T-3 каналов WAN. Благодаря эффективности исходного текста Snort для работы программы очень мощная машина не требуется.

В каком месте сети лучше расположить NIDS? Первая мысль - поместить устройство перед брандмауэром. В этом месте NIDS обнаружит больше всего нападений, но и число ложных срабатываний будет наиболее велико, и администратор получит массу бесполезных предупреждений об опасности. Не следует беспокоиться об угрозах, остановленных брандмауэром, гораздо важнее обнаружить опасные программы, проникшие за него. Поэтому в любом случае лучше разместить Snort позади брандмауэра.

Однако если пользователи подключаются к сети через соединение VPN (по Internet или беспроводной линии связи), имеет смысл разместить NIDS еще дальше за брандмауэром, например за VPN-сервером или концентратором, где пакеты расшифровываются на выходе из туннеля VPN. В противном случае NIDS не сможет противостоять вредоносным программам, встроенным в трафик VPN, так как анализируемые пакеты будут зашифрованы. То же относится и к зашифрованному SMTP-трафику, зашифрованным.zip-файлам, вложенным в сообщения электронной почты, и зашифрованным данным других типов.

В идеале NIDS следует разместить достаточно далеко за любыми компонентами, шифрующими трафик, и довольно близко к периметру сети для анализа трафика в максимальном количестве сегментов и подсетей. В коммутируемой сетевой среде коммутатору, как правило, требуется диагностический порт, в котором собираются все пакеты, проходящие через сеть. В результате NIDS получает удобный доступ ко всему сетевому трафику.

Теперь, познакомившись с Snort и зная требования к его размещению, можно установить и протестировать NIDS. Более подробную информацию о Snort можно получить из документов, ссылки на которые приведены во врезке «Ресурсы в Web». Данный процесс состоит из семи этапов:

  1. Установка WinPcap
  2. Установка Snort
  3. Тестирование Snort
  4. Настройка Snort
  5. Задание правил
  6. Настройка предупреждений и журналов
  7. Запуск в качестве службы

Этап 1. Установка WinPcap

В сущности, Snort представляет собой сетевой анализатор, работающий в режиме приема всех пакетов (promiscuous-mode), поэтому ему необходима поддержка на уровне драйверов. Эту поддержку обеспечивает WinPcap. Лорис Диджиоанни создал WinPcap, перенеся в среду Windows широко распространенный среди пользователей Unix драйвер перехвата пакетов libpcap. В состав WinPcap входят фильтр пакетов на уровне ядра, низкоуровневая DLL (packet.dll) и высокоуровневая системно-независимая библиотека (wpcap.dll, на базе libpcap 0.6.2).

WinPcap можно загрузить по адресу http://winpcap.polito.it . Драйвер совместим с Windows Server 2003, XP, Windows 2000, Windows NT, Windows Me и Windows 9x. WinPcap также поддерживает открытый анализатор пакетов Ethereal, который можно получить по адресу . С помощью Ethereal можно убедиться в корректности установки Snort.

Загрузив из сети установочный файл WinPcap, достаточно пройти по нескольким экранам процедуры инсталляции. Самых больших усилий со стороны пользователя требует экран, на котором необходимо выразить согласие с условиями лицензии.

Этап 2. Установка Snort

Следующий шаг - установка Snort. Новейшую версию можно найти на Web-узлах CodeCraft Consultants (http://www.codecraftconsultants.com/snort.aspx ) или Snort.org (http://www.snort.org ). Я рекомендую загрузить Snort из CodeCraft Consultants, так как с этого сайта можно получить саморазворачивающийся исполняемый файл. Программа даже проводит пользователя по элементарным операциям установки Snort на компьютере. При подготовке данной статьи использовалась последняя версия Snort 2.1.1, сборка 18. С тех пор были выпущены обновленные версии.

При запуске программы установки в первом диалоговом окне необходимо выбрать режим настройки базы данных для хранения результатов. Если используется MySQL или ODBC-совместимая база данных, можно согласиться на режим, выбираемый по умолчанию (экран 1). Но если предстоит хранить протоколы в базе данных Microsoft SQL Server или Oracle, то необходимо выбрать соответствующий режим и убедиться, что на машине имеется нужная клиентская программа. При подготовке данной статьи использовался режим по умолчанию.

На следующем шаге следует определить компоненты Snort, которые требуется установить. Стандартный набор (экран 2) вполне приемлем, поэтому я рекомендую принять его и щелкнуть на кнопке Next. В диалоговом окне Choose Install Location необходимо указать каталог, в котором будет развернут Snort. Введя имя каталога, следует щелкнуть на кнопке Next, чтобы завершить процесс установки.

Экран 2. Выбор компонентов установки

Этап 3. Тестирование установки Snort

Завершив процесс установки, Snort требуется протестировать. По умолчанию исполняемому файлу Snort необходимо сообщить два адреса: куда записывать журналы и где найти файл конфигурации (snort.conf). Эту информацию предоставляет пользователь при запуске Snort из командной строки с помощью ключей -l и -c соответственно. Например, команда

Snort -l F:snortlog -c F:snortetcsnort.conf -A console

указывает программе, что журналы следует записывать в каталог F:snortlog, а snort.conf находится в каталоге F:snortetc. Ключ -A задает способ передачи генерируемых программой предупреждений. В данном примере предупреждения выводятся на экран консоли, и администратор может убедиться, что Snort работает корректно. Обратите внимание, что в статье команда напечатана на нескольких строках, но в командном окне ее необходимо вводить в одной строке. То же самое относится и к другим многострочным командам в данной статье. Многие ключи командной строки Snort чувствительны к регистру символов, поэтому вводить команды следует именно так, как они напечатаны.

Если система располагает несколькими сетевыми интерфейсами, то по умолчанию Snort прослушивает первый обнаруженный интерфейс. Если порядок сетевых интерфейсов на машине неизвестен, можно выполнить команду Snort с одним ключом -W. Snort выдает список имен и номеров сетевых интерфейсов в том порядке, в котором их обнаруживает программа. Чтобы заставить Snort использовать определенный сетевой интерфейс, необходимо ввести ключ -i с номером интерфейса при запуске Snort. После выполнения Snort на экране появится информация, подобная приведенной на экране 3 .

Запустив Snort, можно проверить его чувствительность, направив в NIDS специально подготовленный трафик. Один из самых простых способов вызвать предупреждение об опасности - обратиться к командному интерпретатору (cmd.exe) на удаленной машине в рамках запроса HTTP URL (типичный прием «червей» Code Red и Nimda). Чтобы имитировать эту фазу нападения, следует обратиться к любому URL и добавить в конце запроса символы /cmd.exe. Например, в ответ на обращение к http://www.a-website-that-I-can-trust.com/cmd.exe Snort должен вывести предупреждение в командном окне, по виду напоминающее первые три предупреждения на экране 4 . Эти сообщения и записываются в журнал F:snortlog.

Целевые Web-узлы для тестирования следует выбирать с осторожностью. С технической точки зрения большинство администраторов Web-узлов будут рассматривать подобные действия как попытку взлома. Такая попытка не приведет к успеху (если только в конфигурации сервера не допущены серьезные ошибки), но я рекомендую проводить тестирование только с собственным сервером или доверенным сервером, администраторам которого известно о проведении испытаний.

Если тестирование сделать невозможно, существует другой способ проверить Snort - послать через сеть необычайно длинный эхо-запрос на сервер или компьютер с активной программой Snort. Например, можно воспользоваться командой Ping

Ping -l 32767 ip_address

где ip_address - IP-адрес целевого сервера или Snort-компьютера. Данная команда должна послать очень длинный пакет (точная длина - 32 Кбайт), что явно необычно для команды Ping. Snort должен обнаружить этот пакет, как видно на примере нижних восьми предупреждений на экране 4 .

Если предупреждения получены, можно приступать к настройке Snort для конкретных условий. В противном случае необходимо вернуться к процедуре установки и проверить, не был ли пропущен какой-нибудь этап.

Этап 4. Настройка Snort

Основные данные о конфигурации Snort хранятся в файле snort.conf, который по умолчанию располагается в каталоге %systemdrive%snortetc. Файл можно оставить в этой папке или переместить в другую, если указать программе путь в командной строке.

Детальное описание всех параметров, представленных в snort.conf, может заполнить весь номер журнала, так как Snort - удивительно мощная программа. Мы пока рассмотрим лишь основные ее параметры.

Чтобы отличить входящий трафик от исходящего, необходимо сообщить Snort узлы и IP-адреса сети предприятия. Для ввода этой информации в файле snort.conf должна быть задана переменная HOME_NET. Следует отыскать строку

Var HOME_NET any

и заменить ее диапазоном IP-адресов. Можно задать один диапазон, например

Var HOME_NET 192.168.0.1/24

или несколько диапазонов. Указывая несколько диапазонов, необходимо заключить набор диапазонов в квадратные скобки и отделить каждый диапазон запятой. Вводить пробелы между диапазонами IP-адресов нельзя. Например, строка

Var HOME_NET

указывает Snort, что подсети 10.0.1.0/24, 10.0.2.0/24 и 10.0.3.0/24 относятся к сети предприятия. По умолчанию Snort воспринимает все остальные адреса как внешние. Можно явно указать сети, которые следует считать внешними, задав переменную EXTERNAL_NET. В файле snort.config необходимо отыскать строку

Var EXTERNAL_NET any

и заменить ее IP-адресом сети, которую следует считать внешней. Однако, как правило, для начала лучше оставить переменную EXTERNAL_NET со значением any.

Потратив некоторое время, можно указать типы серверов, имеющиеся на предприятии, и их местоположение. Эта информация содержится в переменных DNS_SERVERS, SMTP_SERVERS, HTTP_SERVERS, SQL_SERVERS и TELNET_SERVERS в следующих строках файла snort.conf:

Var DNS_SERVERS $HOME_NET var SMTP_SERVERS $HOME_NET var HTTP_SERVERS $HOME_NET var SQL_SERVERS $HOME_NET var TELNET_SERVERS $HOME_NET var SNMP_SERVERS $HOME_NET

По умолчанию всем шести серверным переменным присвоено значение $HOME_NET; это означает, что Snort будет контролировать все типы нападений на все системы в диапазоне HOME_NET. Такая конфигурация вполне приемлема для небольшой сети, администраторы которой допускают некоторое число ложных предупреждений. Но для мониторинга интенсивного трафика желательно выполнить более тонкую настройку Snort для проверки только части сигнатур для определенных узлов. Не имеет смысла защищать Web-сервер, работающий только с Microsoft IIS, от атак с переполнением буфера SQL. Чтобы определить особый класс узлов, необходимо заменить $HOME_NET диапазоном IP-адресов целевых серверов в соответствии с форматом, использованным для переменной HOME_NET. Например, для переменной DNS_SERVERS вместо $HOME_NET следует подставить диапазон IP-адресов DNS-серверов.

Точность настройки можно повысить, если определить порты, используемые серверами для конкретных приложений. Например, если Web-серверы задействуют специальный порт 8080 для трафика HTTP вместо порта 80 (этот порт обычно применяется для Web-серверов и браузеров), то можно настроить Snort на отслеживание порта 8080, изменив переменную HTTP_PORTS. В snort.conf следует отыскать строку

Var HTTP_PORTS 80

и заменить ее строкой

Var HTTP_PORTS 8080

Точно так же можно изменить порты для Oracle (определяемые переменной ORACLE_PORTS) и других приложений. Как и переменная HTTP_PORTS, по умолчанию ORACLE_PORTS имеет значение 80. Если сервер использует вместо него порт 1521, то строка будет иметь вид

Var ORACLE_PORTS 1521

Таким образом, в файле snort.conf можно настроить много параметров. Следует просмотреть snort.conf, отыскать параметры, наиболее важные для конкретной среды, и соответствующим образом настроить их.

Этап 5. Задание правил

В одной из строк snort.conf встречается переменная RULE_PATH. Примерный вид этой строки:

Var RULE_PATH ../rules

Параметр../rules указывает, что правила (т. е. сигнатуры) можно найти в каталоге rules, который находится в структуре каталогов на одном уровне с двоичными файлами Snort. Поэтому, например, если установить Snort в типовой папке F:snort, двоичные файлы Snort находятся в F:snortin, а правила - в F:snort ules. При желании можно изменить переменную RULE_PATH, но вполне приемлем и вариант, выбираемый по умолчанию.

Правила - основа Snort. Они представляют собой последовательности байтов, сигнатуры нападений и данные других типов, при обнаружении которых генерируется предупреждение. Snort располагает более чем 1500 готовых сигнатур.

Как выглядит правило? Правило для cmd.exe, которое было нарушено при проведении теста Snort, имеет следующий вид: alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:»WEB-IIS cmd.exe access»; flow:to_server, established; content:»cmd.exe»; nocase; classtype:web-application-attack; sid:1002; rev:5;). Рассмотрим основные компоненты правила. Ссылка $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS указывает, что следует анализировать только трафик, поступающий в сеть извне (как определено переменной EXTERNAL_NET). Параметр content: задает поиск последовательности символов cmd.exe в потоке данных. Обнаружив такую последовательность, Snort генерирует предупреждение, задаваемое параметром msg:.

Как видно на примере cmd.exe, правила в основном просты. Можно составить собственные правила для трафика любых типов. Например, если требуется обнаружить несанкционированные попытки удаленного доступа к каталогу на машине через командный интерпретатор, то можно провести поиск строки volume in drive или volume serial number в портах, где они бывают редко, таких как порты для передачи исходящего трафика. Благодаря гибкому подходу к назначению правил, администраторам предоставляются широкие возможности конфигурирования Snort.

1500 правил Snort хранятся в различных файлах в соответствии с типами анализируемых данных. Например, правило для cmd.exe находится в файле web-iis.rules. Если на предприятии IIS не применяется, то программе не нужно обнаруживать атаки IIS. Файл web-iis.rules легко удалить из конфигурации целиком, отыскав и обозначив как комментарий строку

Include $RULE_PATH/web-iis.rules

в файле snort.conf. Чтобы сделать строку комментарием, нужно поставить перед ней символ (#):

# include $RULE_PATH/web-iis.rules

По умолчанию файлы правил некоторых типов (например, icmp-info.rules, chat.rules) представлены комментариями в snort.conf. Используемая по умолчанию конфигурация правил в snort.conf вполне удачна. После активизации блокированных правил программа, как правило, генерирует много лишних предупреждений.

В некоторых файлах содержится ряд полезных правил, но несколько правил генерируют слишком много ненужных предупреждений. Чтобы отключить то или иное правило, нужно обозначить как комментарий соответствующую строку в файле правил. В дальнейшем Snort будет игнорировать это правило при работе с файлом.

При появлении новых источников угрозы файл правил необходимо обновить. Лучший ресурс для новых правил - Web-узел Snort.org. На этом Web-узле нет службы автоматического обновления, поэтому администратору придется регулярно обращаться к нему за обновлениями при возникновении очередной опасности.

Этап 6. Настройка предупреждений и журналов

Как уже отмечалось, Snort обеспечивает запись информации в MySQL, SQL Server, Oracle и ODBC-совместимых базах данных. Достаточно выбрать подходящий тип базы данных в процессе установки Snort. Чтобы чрезмерно не увеличивать объем статьи, рассмотрим стандартные режимы протоколирования с использованием текстового файла и функции записи сообщений в журнал событий Windows.

При запуске NIDS с помощью команды Snort ключ консоли -A обеспечивает вывод предупреждений на экран. Чтобы пересылать сообщения в текстовый файл, следует заменить этот ключ на -A fast или -A full, в зависимости от предпочтительного режима протоколирования. Параметр full выводит подробное описание угрозы в нескольких строках текстового файла с именем alerts.ids каталоге, путь к которому указывает ключ -l. Такой тип протоколирования сообщает исчерпывающие детали, но в них трудно разобраться, если в сети отмечается много событий. В таких «шумных» сетях рекомендуется использовать режим fast для внесения в alerts.ids однострочных записей, содержащих основные характеристики подозрительного трафика. На мой взгляд, работать с текстовым файлом в режиме fast проще, чем в режиме full.

Текущая версия Snort обеспечивает протоколирование в журнале событий Windows. Многие организации уже приобрели инструменты централизованного мониторинга событий, протоколирования и сбора данных, и данная функция будет отличным дополнением для среды Windows.

Для записи предупреждений в журнал событий Application системы, на которой работает Snort, вместо ключа -A используется ключ -E (параметры не обязательны). На экране 5 показано, как выглядит событие Snort (в данном случае попытка обращения к cmd.exe), опубликованное в журнале Application. Событие Windows обеспечивает такую же детальную информацию, как экран консоли.

NIDS бесполезен, если администратор заглядывает в журналы событий (или текстовые журналы) раз в неделю. Если что-то случается в сети, администратор должен узнать об этом незамедлительно. Централизованная система мониторинга и обработки событий может посылать сообщения по электронной почте, на пейджер и другие устройства связи. Но если такой системы нет, это не повод для беспокойства. Компания NETIKUS.NET предлагает бесплатный пакет EventSentry Light, с помощью которого можно посылать предупреждения.

EventSentry Light - ознакомительная версия EventSentry, ее можно загрузить по адресу http://www.netikus.net/products_downloads.html . С помощью EventSentry Light можно настроить систему на мониторинг журналов событий и автоматическую рассылку по электронной почте подробных сообщений о любых событиях Snort, записанных в журнал. На экране 6 показано почтовое сообщение о попытках нападения на cmd.exe. Я получил это сообщение от EventSentry Light спустя несколько секунд после проведения атаки.

Как упоминалось выше, обычно Snort генерирует массу ненужных сообщений, которые быстро переполняют журналы событий. Об этом следует помнить при выборе размеров файлов для журналов событий и метода их ротации. Чтобы EventSentry Light не переполнял почтовый ящик сообщениями о незначительных событиях, можно создать фильтр для поиска ключевых строк. Например, я организовал фильтр поиска строки в тексте сообщений.

Этап 7. Запуск в качестве службы

Завершив все приготовления, можно задействовать Snort в качестве службы, вместо того чтобы регистрироваться на настольном компьютере всякий раз, когда требуется запустить программу. Если запустить Snort с параметрами /SERVICE и /INSTALL (наряду с другими параметрами командной строки), то Snort настраивается на работу в качестве службы Windows и автоматически запускается вместе с Windows без вмешательства пользователя.

Следующий уровень: модули расширения

Snort представляет собой полнофункциональное приложение. Однако в некоторых случаях программа нуждается в расширении. Например, если в разных участках сети развернуто несколько NIDS, то управлять Snort удобно из графического интерфейса. Такие возможности реализованы в модулях расширения IDScenter фирмы Engage Security и IDS Policy Manager компании Activeworx. Иногда бывает необходимо проанализировать информацию, которая содержится в сообщениях. Просмотреть и проанализировать сохраненные данные можно с помощью модуля Analysis Console for Intrusion Databases (ACID), разработанного в Университете Карнеги - Меллона.

Надежная защита

Snort - полнофункциональная программа, которая не нанесет ущерба бюджету компании. Объединив Snort с мощным приложением мониторинга событий, таким как EventSentry Light, можно своевременно предупреждать атаки против сети.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное образовательное учреждение высшего профессионального образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КУРСОВАЯ РАБОТА (ПРОЕКТ)
ЗАЩИЩЕНА С ОЦЕНКОЙ отлично

РУКОВОДИТЕЛЬ

доц., к. т.н., доц.

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ (ПРОЕКТУ)

Практика использования IDS SNORT

по дисциплине: инженерно-техническая защита информации

РАБОТУ ВЫПОЛНИЛ(А)

СТУДЕНТ(КА) ГР.

подпись, дата

инициалы, фамилия

Санкт-Петербург 2011

1.. Что такое Snort?. 2

2. Режим сниффера : 2

3. Режим журналирования пакетов . 6

4. Режим обнаружения сетевых вторжений. 6

1. Что такое Snort?

Snort – облегченная система обнаружения вторжения. Snort обычно называют “облегченным” NIDS /расшифровать, перевести/, - потому что это он разработан прежде всего для маленьких сетей. Программа может исполнять анализ протокола и может использоваться, чтобы обнаружить разнообразные нападения.

Snort использует "правила" (указанные в файлах "правила"), чтобы знать какой трафик пропустить а какой задержать. Инструмент гибок, позволяя записывать новые правила и соблюдать их.

Snort может работать в 3 основных режимах:

· Режим сниффера: позволяет просто ловить пакеты из сети и отображать их на экране(как правило консоли)

· Режим журналирования пакетов: позволяет сохранять пакеты на жесткий диск


· Режим системы обнаружения вторжений (NIDS) - наиболее сложная и настраиваемая конфигурация, которая позволяет анализировать сетевой трафик на основе определяемых пользователем набора правил.

2. Режим сниффера :

В режиме анализа пакетов, Snort просто читает пакеты, приходящие из сети, и выводит их на экран. Для вывода заголовков пакетовов TCP/IP необходимо выполнить:

snort –v

Эта команда выводит заголовки IP - и TCP/UDP/ICMP-пакетов. Можно увидеть откуда отсылались пакеты, куда, во сколько /адресов?/. На рисунке /рисунки надо нумеровать, чтобы ссылаться. Ссылки нет – значит рисунок не нужен/ видно, что исходящих адреса два./откуда видно? Расшифруйте форматы записей на рисунке или хоть по номеру строки сошлитесь/

Чтобы понять, что это за адреса - достаточно выполнить команду

systeminfo


Из снимка /уже - снимки. а не рисунки? В пределах документа должно соблюдаться единообразие! Или это – нечто другое?/ становится понятно, что это за исходящие адреса. /ну и перечислите – или по крайней мере укажите. что их номера приведены в квадратных скобках/

Для того чтобы увидеть данные, содержащиеся в пакетах, необходимо ввести:

snort - vd

https://pandia.ru/text/78/320/images/image004_112.jpg" alt="подробный_вывод.jpg" width="589" height="338">

Ключи могут быть заданы в любой форме, например: "snort - vde", "snort - d - ev" и "snort - e - v -d".

Snort будет собирать информацию до тех пор, пока его не прервать. Для завершения захвата пакетов необходимо нажать Ctrl-C. После нажатия Ctrl-C будет выведен отчет о захваченных пакетах. Ниже показан отчет, полученный после работы Snort в течение приблизительно минуты.

Из снимка видно, что большинство проанализированных пакетов являются пакетами TCP/IP. Также были захвачены и UDP пакеты.

3. Режим журналирования пакетов

Режим журналирования пакетов позволяет записывать поток информации на диск. Это полезно при проведении анализа за определенный интервал времени или проверки изменений в настройках и политике безопасности.
Необходимо создать и указать каталог для логов, а Snort автоматически перейдет в режим журналирования пакетов.

Пример: создаем каталог logs и запускаем:

snort - dev - l../log

В результате операции /куда, где его искать, как указать желательное место?/ запишется файл snort. log.. Цифры в конце новых имен файлов являются временными метками, что позволяет избегать конфликтов при создании файлов. /желателен пример лог-файла/

4. Режим обнаружения сетевых вторжений

Третий режим Snort, это режим обнаружения сетевых вторжений (Network Intrusion Detection, NIDS).

В своей базовой форме правило Snort /где они хранятся?/ имеет две части: заголовок и параметры. Ниже представлен пример правила.

alert tcp any any -> any any (content: "www. "; msg: "Someone is visiting youtube now"; sid:1000002; rev:1)

Модель структуры правил можно представить /она жестко задана или может изменяться? то, что элементы в квадратных скобках – необязательны, надеемся. известно. Но есть ли между ними спецразделители?/ по следующей схеме:

<действие_правила> <протокол> <порт> <оператор_направления>


<порт> ([мета_данные] [даные_о_содержимом_пакета]

[данные_в_заголовке] [действие_после_обнаружения])

Действия правил делятся на следующие категории:

1. alert - Создать предупреждение, используя выбранный метод, и передать информацию системе журналирования.

2. log - Использовать систему журналирования для записи информации о пакете.

3. pass - Игнорировать пакет.

4. activate - Использовать другое динамическое правило.

5. dynamic - После того, как выполнится активное правило, задействуется правило с процедурой журналирования.

6. drop - Отбросить пакет, используя программный брандмэуер, и передать информацию системе журналирования

7. sdrop - Отбросить пакет при помощи программного брандмэуера и не использовать систему журналирования.

8. reject - Используя брандмэуер, отбросить пакет в том случае, если протокол TCP, или же записать в файл журнала сообщение: ICMP порт недоступен, если пакет приходит по протоколу UDP

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

sid – уникальная метка, идентифицирующая правило. Эта опция должна использоваться с опцией rev .

<100 зарезервировано для дальнейшего использования

100-999,999 уже зарезервированные правила

>=1,000,000 правила, задаваемые пользователем

rev - значение версии правила. С помощью rev интерпретатор правил

Snort определяет версию написанного правила.

Запуск Snort в режиме IDS можно осуществить командой:

snort - c "D:\Program Files\Snort\etc\snort. conf" - l " D:\Program Files\Snort\log" - A console - i 1

ключ –с означает, что включен режим IDS

ключ l включает режим записи на жесткий диск с указанием пути к файлу

ключ A показывает что все предупрежления(alerts) будут дублтроваться выводом на консоль

ключ i указывает на порядковый номер(index) интересующего нас интерфейса

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

snort W

Содержимое файла snort. conf

Содержимое файла *****les:

В файл snort. conf можно подсоединять правила использую ключевое слово include .

Результат выполнения команды:

Видно, что Snort зафиксировал попытку попасть на “опасный” сайт.

Нет информации об источнике, откуда был взят дистрибутив, об ОС, на которой велось исследование

В целом работа весьма интересна. /