Описание и изучение IDS приложения Snort
Введение
Основная цель данной работы заключается в описании и изучении популярного
IDS приложения Snort. Snort
является крупным проектом с открытым исходным кодом, который используется
многими сетевыми администраторами для фиксирования вредоносных сигнатур и
оповещения о атаке на сеть. Snort
перехватывает от сетевых интерфейсов весь трафик, проверяя пакеты на наличие
подозрительных запросов, попыток вторжения.
Основным его плюсом является доступность, и возможность редактировать его
работу под свою конкретную рабочую сеть. Программа предназначена для работы как
в малых, так и больших организациях. Так же не маловажна возможность
редактирования собственных уникальных правил исходя из требований безопасности
конкретной организации (например, запрет на доступ персонала к социальным
сетям).
Из минусов можно выделить неудобность настройки и установки на некоторых
ОС (например, Windows), отсутствие единого достаточно
полного и подробного описания настройки и разработки собственного набора
правил.
Также, очень тяжело отсечь ложные тревоги, так как не редко на разных
предприятиях разные ограничения, и требуется достаточно тонкая настройка
правил. Множество режимов запуска приложения с помощью ключей чувствительных к
регистру очень сложно запоминаемы и могут привести к ошибочному выводу.
Основная задача этой работы состоит в том, что бы разобраться с
функциональными особенностями работы IDS Snort, проверить
работу приложения производя на него разного рода сетевые атаки. Выяснить есть
ли аналогичные IDS в более
удобном формате. Как Snort
взаимодействует с базами данных. Разработать несколько уникальных правил и
проверить их на работоспособность.
1. Установка
и настройка IDS Snort
1.1 Snort:
Установка на ОС Windows
XP
При установке Snort на
операционную систему Windows
могут возникнуть некоторые сложности. Поэтому в этой работе уделяется
достаточно подробная часть установки и возможностей настройки. Для начала нужно
скачать требуемые программы на рабочий компьютер.
winpcap.
Snort
правила для Snort.
Все вышеуказанное скачивается с официальных сайтов этих приложений.
Winpcap
- приложение, которое перехватывает и фильтрует пакеты на уровне ядра. Это
аналог встроенному драйверу Unix
систем libpcap. Установка
не доставит особых не удобств, запускается через обычный инсталлятор. После
этого требуется скачать с официального сайта саму IDS, после этого мы скачиваем оттуда же свежий архив с
правилами. Следующим шагом станет полное
копирование всех папок, которые находились в архиве с правилами в корневой
каталог приложения с полной заменой содержимого, где это требуется. Затем для
правильной работы программы потребуется провести важные изменения в
конфигурационном файле.
var RULE_PATH c:\snort\rulesSO_RULE_PATH
c:\snort\so_rulesPREPROC_RULE_PATH c:\snort\preproc_rulesdirectory c:\snort\lib\snort_dynamicpreprocessorc:\snort\lib\snort_dynamicengine\sf_engine.dll
#dynamicdetection directory /usr/local/lib/snort_dynamicrules
Находим подобные строчки в конфигурационном файле и заменяем теми которые
предоставлены выше. После этого пробуем протестировать приложение. Запускаем
командную строку и переходим к каталогу приложения в раздел "bin". Введем команду "snort -W"
Рис. 1.1. Проверка работы
Этой командой мы проверяем работоспособность приложения просматривать
наши интерфейсы. Убедившись что их более одного, выбираем тот который подключен
к рабочей сети, что бы приступить к перехвату пакетов и отслеживанию работы IDS.
С:\Snort\bin\snort
-i 3 -c C:\snort\etc\snort.conf -l C:\snort\log -A console
Разберем теперь команду которую мы ввели. "- i 3" означает что мы будем
просматривать интерфейс который имеет ID= 3 в списке наших интерфейсов. Затем мы указали путь до файла
конфигурации и путь до каталога куда следует записывать "log" перехваченных пакетов. "-A console" обозначает что тревожные пакеты будут
выявляться у нас в консоли. Если во время обработки возникают какие либо
неполадки устраняем их по ходу выявления. Snort указывает строку и вид ошибки при сборке. Если все
сработало, то мы ничего не увидим до тех пор пока не сработает одно из
запущенных правил. Что бы задействовать одно из них попробуем имитировать
сетевую атаку и запустим подозрительный пакет по нашей локальной сети. Для
этого к примеру откроем командную строку и введем следующее: "Ping 192.168.1.16". Snort перехватит попытку прослушать хост
под адресом 192.168.1.16\24 и выведет сообщение и информацию об подозрительном
действии в сети. К сожалению у подобных IDS систем есть сильный недостаток -это ложные
срабатывания. В связи с этим для того что бы Snort был полезным и не вводил в заблуждение, нужно
достаточно емко и четко прописывать правила и разграничивать просматриваемые
сети, что бы избежать этих ложных срабатываний.
Рис. 1.2. Вывод Alert сообщений
Сейчас в консоли, где работает наш IDS, появятся сообщения о подозрительном пакете, который
напоминает "прослушивание". Это задействованное правило показало, что
Snort полностью работоспособен. Рассмотрим
режимы его работы и синтаксис правил для дальнейшей работы.
1.2 Режим анализа пакетов
Режим который используется скорее для проверки работы нежели для
фиксирования атак. В этом режиме Snort
показывает абсолютно все пакеты и в зависимости от опций будет показывать либо
подробную информацию или более общую. Обязательный ключ к написанию является -v. Если он не будет указан, то Snort по умолчанию будет запускаться в
других режимах и выдавать ошибки в ожидании других ключей. В таблице указаны
возможные ключи режима анализа пакетов.
Таблица.1.1. Опции режима анализа пакетов
Опция
|
Описание
|
-v
|
Выдает на экран заголовки
пакетов TCP/IP в сети Ethernet
|
-d
|
Аналогично предыдущей
опции, но отображаются также данные прикладного уровня
|
-e
|
Аналогично предыдущей
опции, но выдаются также заголовки канального уровня
|
Рассмотрим пример использования этого режима на практике и введем
команду:
"Snort -vde -i3",
где -i3 -номер интерфейса с которого
следует считывать пакеты. Snort
начинает быстро передавать на командную строку множество пакетов, что бы
отключить режим нажмите "ctrl+x".
Рис. 1.3. Режим анализа пакетов
На рисунке изображена достаточно подробная информация заложенная в
пакете, а именно информация канального и прикладного уровня.
.3 Режим протоколирования пакетов
Режим подобный анализатору. Единственная отличительная черта, это
занесения информации на свободное место жесткого диска.Snort протоколирует информацию о пакетах, которые были
перехвачены и обработаны согласно требованиям введенных ключей администратора.
Чтобы запустить Snort в режиме протоколирования, следует ввести аналогичные
ключи, такие как в режиме анализа(-v ,d, e ), и дополнительный ключ -l, задающего маршрутное имя
каталога логов, в которые Snort будет записывать пакеты.
snort -vde -l /snort/log/
Эта команда создаст файлы журналов в каталоге /snort/log/.
Убедитесь, что указанный каталог существует, иначе программа не будет
загружаться правильно. Так как приложение фиксирует абсолютно все перехваченные
пакеты со всех возможных IP
адресов, такое может происходить в сети большой организации, можно сузить
диапазон. Это делается с помощью команды -h HOME_NET,
где HOME_NET - диапазон IP -адресов локальной сети в нотации с
косой чертой, за которой следует префикс сети. В этом случае Snort будет
помещать пакеты в каталоги на основе нелокального IP-адреса в пакете, что
позволяет легко распознавать "не местный" трафик. Если оба хоста,
целевой и исходный, являются локальными, Snort помещает пакет в каталог,
соответствующий стороне с большим номером порта, как бы отдавая предпочтение
подключающемуся хосту перед серверным. В случае равенства номеров портов Snort
по умолчанию использует исходный адрес в качестве каталога для размещения
данных пакета. Сейчас это может показаться несущественным, но если
протоколировать сигналы о вторжении, важно быстро определить, откуда исходит
подозрительный трафик.
Учитывая приведенные соображения, командной строке для режима
протоколирования пакетов целесообразно придать следующий вид:
snort -vde -l /snort/log/ -h 192.168.1.0/24
Тем самым внутренняя сеть задается диапазоном 192.168.1.1-254.
Можно также применить опцию -b для протоколирования всех данных в одном
бинарном файле, пригодном для последующего чтения с помощью анализатора
пакетов. При протоколировании с опцией -b нет необходимости определять домашнюю
сеть, так как данные будут записываться последовательно в один большой файл.
Этот метод намного быстрее для протоколирования работы активно используемых
сетей или на медленных машинах. Он также облегчает анализ с помощью более
развитых средств, которые приходится применять при просмотре больших объемов
перехваченных сетевых данных.
1.4 Режим
обнаружения вторжений
Данный режим используется для фиксирования подозрительных и вредных
пакетов, с последующим занесением в лог Snort’а. Отличительная особенность данного режима
заключается в добавлении ключа -с , который определяет путь до
конфигурационного файла Snort.
В этом файле содержится самая важная и нужная информация, которая используется
для редактирования работы приложения. Там указываются адреса сети, которую
следует протоколировать и искать вторжения, подключаемые порты, разрешенные
файлы правил пути к базам данных куда можно будет заносить данные работы Snort. Так же многочисленные тонкие
настройки конфигурации.
snort -de -l /snort/log -h 192.168.1.0/24 -c
/snort/etc/snort.conf
мы запустим Snort в режиме обнаружения вторжений с использованием
подразумеваемого конфигурационного файла snort.conf.
1.5 Режимы
сигнализации Snort
При протоколировании пакетов, вызывающих сигналы тревоги, необходимо
выбрать подходящий уровень детализации и формат "тревожных" данных. В
табл. 2 перечислены опции, которые можно задавать в командной строке после
ключа -A.
Таблица 1.2. Опции режима сигнализации Snort
Опция
|
Описание
|
-A full
|
Полная информация о
сигнале, включая прикладные данные. Это подразумеваемый режим сигнализации.
Он будет использоваться при отсутствии спецификаций
|
-A fast
|
Быстрый режим.
Протоколируются только заголовки пакетов и тип сигналов. Это полезно в очень
быстрых сетях, но если требуется дополнительная судебная информация,
необходимо использовать опцию full
|
-A unsock
|
Посылает сигнал в
UNIX-сокет с указанным номером, на котором может слушать другая программа
|
-A none
|
Отключает сигналы тревоги
|
Эти опции следует конфигурировать во время компиляции при помощи ключей
инструкции configure. К примеру, попробуем прописать создание файла в который
будут заноситься враждебные пакеты или подозрительные. В файле конфигурации
создадим строку в месте где прописывается "Step 6 : Output",
и дописываем строчку "output alert_fast : alert.ids",
сохраняем и запускаем в режиме обнаружения или сигнализации, в папке \snort\log\alert.ids теперь будут записываться данные о
подозрительных пакетах. Можно также вписать ключ "-A console " тогда подозрительные пакеты будут
дублироваться в консоли, так сказать нагляднее продемонстрированы
администратору. Информация о режимах работы Snort предоставлена на сайте: #"551308.files/image004.gif">
Рис. 2.1. Результат работы правила на vkontakte
Правило не обязательно в себе должно содержать контент какого либо сайта
или сетевого приложения. Существуют целые сборники информации о написании
правил, для этой сетевой IDS,
начиная от возможности ограничения определенных портов, заканчивая проверкой на
наличие определенных сегментов в пакете.
Есть один минус подробного и четко сформулированного правила, оно будет
сильно нагружать сеть и каждый пакет, соответственно для загруженных крупных
локальных сетей это может вызывать некоторые затруднения.
2.5 Написание plug-in для Snort
Для того что бы написать plug -in для Snort потребуется скачать исходный код с официального сайта
www.snort.org,
затем нужно разархивировать полученный пакет и попасть в каталог \templates , где содержится четыре файла: sp_template.c, sp_template.h, spp_template.c, spp_template.h. Первые два файла используются для составления дополнения, а
следующие два файла для препроцессоров. После создания дополнения нужно его
интегрировать в Snort, чтобы он
использовал его после компиляции. Интеграция состоит из трех шагов.
)Изменить plugbase.h и вставить строку
#include <sp_template.h>
)Открыть файл Makefile.am и добавить имена файлов в список
имен в строку "snort_sources". После этого выполняем "Automake".
Аналогичные действия производим для файлов препроцессоров. Если после
сделанных изменений Snort заработал и
дополнение успешно запущено, следовательно, оно интегрировано.
2.6 Дополнительные утилиты для системы Snort
Analysis Console for Intrusion Databases (ACID) - аналитическая система,
предоставляющая Web-интерфейс (используется PHP) для просмотра результатов
анализа лог-файлов брандмауэров, NIDS, сетевых диагностирующих программ. Версия
0.9.6. работает в среде всех ОС, поддерживающих PHP (Linux, *BSD, Windows,
Solaris). Лицензия - GNU GPL.
Рис. 2.2. Интерфейс программы ACID
Detection Exchange Architecture (IDEA) - система распределенного контроля безопасности
сети. Текущая версия - 1.0.2. Используя архитектуру клиент-сервер, она
связывает множество NIDS-систем, объединяя их данные в информационный базис и
обеспечивая анализ в режиме реального времени. IDEA реализована как
системонезависимая программа, применяющая технологию Java. Распространяется по
лицензии GNU GPL.
Рис. 2.3. Интерфейс программы IDEA
- программа, работающая совместно со Snort и обеспечивающая при
обнаружении вторжения предупреждение в режиме реального времени. Текущая версия
- 1.0.3. Операционные системы: Unix, Windows NT. Лицензия - GNU GPL.
Рис. 2.4. Интерфейс программы RazorBack
SnortConf - графическая оболочка для Snort. Разработанная на основе
библиотеки Curses, программа SnortConf предоставляет простой и интуитивно
понятный интерфейс - меню по администрированию Snort. Версия - 0.4.2-1.
Предназначена для POSIX-совместимых систем (Solaris, *BSD, Linux и т.д.).
Лицензия - GNU GPL.
Рис.
2.5. Интерфейс программы SnortConf
- графическая оболочка Snort-Win32 (рекомендуется использовать Windows NT4/2000/XP).
Текущая версия - 1.1. IDScenter значительно облегчает задачи управления,
контроля и мониторинга Snort IDS. Включает функции диагностики конфигурации,
поддерживает сигналы тревоги Snort. При определении атаки можно запустить
внешнее приложение. Распространяется по лицензии Freeware.
Рис. 2.6. Интерфейс программы IDScenter
IDS Policy Manager - инструмент изменения конфигурации и правил Snort.
Легко добавляются новые сигнатуры. Может использовать популярные базы данных
сигнатур: CVE, BugTraq, Mcafee. Версия -1.3.1. Операционные системы -Windows
2000/XP. Лицензия - Freeware.
Рис. 2.7. IDS Policy Manager
Информация об утилитах была получена с интернет ресурса:
http://www.compdoc.ru/network/local/snort/.
Заключение
Таким образом, исходя из полученных сведений и проделанной работы по
изучению одной из IDS системы с
открытым исходным кодом Snort,
можно сделать вывод что для осуществления правильной работы приложения
требуется определенные знания, так как разработка правил осуществляется по
уникальному синтаксису. Вообще IDS
система Snort является сильным перехватчиком и
анализатором, который может оказать помощь в организации безопасности в сети и
выявлению уязвимостей.
После проделанной работы по изучению конфигурации, синтаксиса написания
правил и режимов работы, следует вывод, что подобной системе требуется более
простой и понятный интерфейс, для облегчения изучения и конфигурации программы.
Так как Snort является приложением свободным в
распространении и его исходный код доступен каждому у кого есть доступ в
интернет.
Литература
. Обнаружение сетевых атак - Snort [Электронный ресурс]. - Режим доступа: URL:
http://www.compdoc.ru/network/local/snort/ (дата обращения 25.05.11)
. Энциклопедия сетевых протоколов [Электронный
ресурс]. - Режим доступа: URL:
http://www.protocols.ru/ (дата обращения 15.04.11)
. Атаки на сеть [Электронный ресурс]. - Режим доступа:
URL: http://big-bro.info/ataki-na-set/
(дата обращения 22.05.11)
. Русская группа Snort [Электронный ресурс]. - Режим доступа: URL: http://www.snortgroup.ru/node/25
(дата обращения 27.05.11)
. Ищейка по имени Snort [Электронный ресурс]. - Режим доступа: URL:
http://www.osp.ru/win2000/2004/05/177049/ (дата обращения 29.05.11)
6. Snort установка и минимальная настройка [Электронный ресурс]. -
Режим доступа: http://www.kanava.biz.nf/mod/pub/article.php?art=710 (дата
обращения 25.05.11)
. Учи IT
[Электронный ресурс] - Режим доступа: URL: http://www.uchi-it.ru/2/1/7.html (дата обращения 10.04.11)