Описание и изучение IDS приложения Snort

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

оге с правом на запись копию программы cmd.exe - командного интерпретатора Windows, используя переполнение буфера в модуле IIS, называемом Internet Server API (ISAPI). В случае успеха хакер или червь получает доступ к командной строке на этой машине и может произвести значительные разрушения. Однако команда для копирования этого файла является очевидной, и нет причины для ее легального выполнения пользователями через сеть с помощью IIS. Поэтому, если вы видите подобную активность, то весьма вероятно, что это попытка вторжения. Проверяя полезную нагрузку пакета и разыскивая слова cmd.exe, сетевая система обнаружения вторжений может идентифицировать данную атаку. На листинге показан один из таких пакетов. Шестнадцатеричное представление содержимого находится слева, а перевод в текст - справа.

= 55

: 47 45 54 20 2F 73 63 72 69 70 74 73 2F 2E 2E 25 GET / scripts/..%

: 35 63 25 35 63 2E 2E 2F 77 69 6E 6E 74 2F 73 79 5c../winnt/sy

: 73 74 65 6D 33 32 2F 63 6D 64 2E 65 78 65 3F 2F stem32/cmd.exe?/

030 : 63 2B 64 69 72 0D 0A c+dir..

 

.4 Синтаксис формирования правил в Snort

 

Перед тем как начать писать правила для отслеживания трафика, следует научиться правильно их составлять и ознакомиться с синтаксическими особенностями. Лучше всего будет разобрать как формируется правило на примере.

tcp any any>192.168.0.0/24 80

(content:"|11 01 b6 a2|"; msg:"example rule";)

- генерировать сигнал с использованием выбранного метода и записать информацию о пакеты в журнальный файл;

Tcp - протокол, который следует проверять на наличие условий.

Далее по порядку вводится IP адрес и порт отправителя через стрелочку адрес и порт получателя, то есть кому направлен пакет. В скобочках указываются модули которые следует учитывать при фильтрации пакета. В нашем примере будут помечаться пакеты в которых будет найдено совпадение в 16-ричном коде "00 01 86 a5" , и при совпадении с условиями пакет будет помечаться сообщением "mount access".

Заголовок правила имеет вид

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

Попробуем написать правило, которое может отследить посещение пользователем какой-нибудь социальной сети, например "vkontakte.ru". Для этого откроем любой из файлов папки \snort\rules\ и впишем туда правило

alert tcp any any > any any (msg:"ACCESS in Social web";content:"vkontakte";sid:1;)

Разберем это правило по командам. Это правило гласит что если в пакете передается параметр "vkontakte", то пакет фиксируется как тип alert и заносится в соответствующий файл отчета. Просматривается протокол tcp адреса сетей любые. В отчете такие пакеты будут помечаться сообщением "ACCESS in social web", что говорит нам о попытке доступа в социальную сеть. Теперь администратор при рассмотрения отчетов может подметить откуда и когда происходил выход, на не согласованный политикой безопасности сайт. Так же следует отметить наличие опции "sid1", она требуется для присвоения правилу определенного порядкового номера.

 

Рис. 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

)Изменить plugbase.c файл и в функции InitPlugins() добавить название функции после остальных.

)Открыть файл 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

- программа, работающая сов?/p>