Главная » Статьи » Защита информации


Обнаружение вторжения с помощью Snort

Обнаружение вторжения с помощью Snort

Где требуется NIDS? Системы обнаружения предупредят вас о вторжении в момент осуществления самой попытки. Неоспоримым лидером среди систем обнаружения с открытым исходным кодом является Snort (www.snort.org).

Столь мощной Snort делает возможность расширения с помощью надстроек и препроцессоров. Они позволяют расширять Snort в любом направлении. Следовательно, вы больше ни от кого не зависите в плане определения правил, предотвращающих новые взломы. Имея базовое представление о TCP/IP, вы можете быстро и легко написать собственные правила. Это, пожалуй, самая важная особенность Snort, поскольку новые атаки изобретаются постоянно. Кроме того, Snort имеет очень удобный механизм отчетов, позволяющий отправлять сигналы тревоги в syslogd, в обычные файлы и даже в базы данных. Для компиляции и установки Snort версии «plain-vanilla» загрузите из Сети последнюю версию и распакуйте ее. Запустите сценарий настройки, а затем команду make:$ ./configure && make После этого получите полномочия root и выполните # make install

Обратите внимание на то, что все заголовочные файлы и библиотеки для libpcap (http://www.tcpdump.org) должны быть установлены до компоновки Snort, иначе компиляция завершится неудачей. Кроме того, для указания компилятору местонахождения библиотек и заголовочных файлов необходимо использовать параметры --with-libpcap-includes и --with-libpcap-libraries. Однако их можно применять только в случае нестандартной установки библиотек (не в подкаталоги каталога /usr или /usr/local). Например, если libpcap установлена в /opt, то необходимо использовать следующую команду: $ ./configure --with-1ibpcap-includes=/opt/include\--wi th-1i bpcap-1i bra ri es=/opt/1i b

Snort и гибкий отклик

Snort имеет возможность отвечать узлу, который запустил (активизировал) одно из правил. Эта возможность называется гибким откликом. Чтобы включить ее, необходимо использовать параметр --enable-flexresp, для работы которого требуется библиотека инжекции пакетов (packet injection library) libnet (http://www.packetfactory.net/projects/libnet/). Убедившись в том, что этот пакет установлен, для указания его местоположения воспользуйтесь ключами --with-1 ibnet-includes и --with-libnet-libraries.
Если необходимо добавить возможность отправки предупреждений в БД, необходимо воспользоваться ключами --with-mysql, --with-postgresql либо --with-oracle.

Для просмотра полного списка параметров настройки введите ./configure --help. После установки проверьте работу Snort в режиме анализа (sniffer mode). Вы сразу же увидите следующий трафик: # ./snort -evi ethO Running in packet dump mode HOME_NET can also be automatically set to the network address of a particular interface by setting the variable to $ethO_ADDRESS. In this particular case. $ethO_ADDRESS sets it to the network address of ethO. The EXTERNAL_NET variable allows you to explicitly specify IP addresses and networks that are not a part of HOME_NET. Unless a subset of HOME_NET
is considered hostile, you can just keep the default value, which is any.

Остальные переменные, относящиеся к IP-адресам или сетевым диапазонам (DNS_SERVERS, SMTP_SERVERS, HTTP_SERVERS, SQLJERVERS и TELNET_SERVERS), по умолчанию имеют значение $HOME_NET. Эти переменные используются в наборе правил, который имеется в дистрибутиве Snort, и могут применяться для «тонкой» настройки поведения правил. Например, правила, относящиеся к SMTP-атакам, используют переменную SMTP_SERVERS для фильтрации трафика, который фактически не относится к этому правилу. Подстройка этих переменных не только приводит к более точной генерации сигналов тревоги и уменьшению ложных срабатываний, но и повышает производительность.

Еще одной важной переменной является RULE_PATH, которая используется в конфигурационном файле для добавления наборов правил. Пример конфигурационного файла устанавливает для нее значение ../, но для совместимости с предыдущими примерами она должна иметь значение ./rules, поскольку snort.conf и каталог rules находятся в каталоге /usr/local/etc/snort.

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

Если при компиляции была задана поддержка баз данных, то необходимо разрешить работу надстройки вывода в БД (database output), позволяющей Snort сохранять любые генерируемые сигналы в БД. Включается она в конфигурационном файле подобной строкой:output database: log. mysql, user=snort password=snortpass dbname=SNORT \ host=dbserver output database: alert mysql, user=snort password=snortpass dbname=SNORT \host=dbserver

Первая строка настраивает в Snort отправку в БД сведений, генерируемых правилами, определяющими действия протоколирования (log action). Вторая строка отправляет в БД сведения, генерируемые правилами, определяющими действия по тревоге (alert action). 

Использование Snort совместно с БД

Если вы собираетесь использовать Snort совместно с БД, то необходимо создать новую БД и, может быть, новую учетную запись пользователя этой БД. В каталоге contrib исходного кода Snort имеются сценарии создания баз данных поддерживаемых типов: create_mssql, createjnysql, create_oracle.sql и create_postgresql. При использовании MySQL БД с необходимыми таблицами создается следующей командой:# mysql SNORT -p < ./contrib/createjnysql

Остальная часть конфигурационного файла в основном посвящена правилам «подписей», используемых Snort при наблюдении за трафиком. Эти правила разделены на категории и хранятся в отдельных файлах, а активизируются с помощью директивы include. Для проверки (или в сети с ненапряженным трафиком) вполне достаточно настроек по умолчанию, но желательно просмот-
реть эти правила и решить, какие категории действительно вам нужны, а какие — нет. Теперь, когда вся сложная работа по настройке выполнена, надо проверить файл snort.conf подобной командой:
# snort -T -с /usr/local/etc/snort/snort.conf

В результате ее выполнения будет выведен отчет обо всех обнаруженных ошибках. При отсутствии ошибок запустите Snort командой # snort -Dd -z est -c /usr/local/etc/snort/snort.conf

Два флага (-d и -с) уже использовались ранее (для декодирования пакетов и использования указанного конфигурационного файла соответственно), а два других — новые. Флаг -D заставляет Snort вывести сообщение о запуске, а затем перейти в фоновый режим. Аргумент -z est заставляет надстройку препроцессора streams игнорировать ТСР-пакеты, не относящиеся к установленным сеансам, что
уменьшает чувствительность системы к спуф-атакам и, конечно же, к DoS-атакам.

Полезными являются также параметры -и й'-g, позволяющие Snort сбрасыватьсвои привилегии и запускаться указанным пользователем или группой. Это особенно полезно при совместном использовании с параметром -t, который с помощью вызова chroot() поместит Snort в указанный вами каталог. Теперь можно приступать к просмотру протоколов, появляющихся в /var/log/snort.

источник: Локхарт Э. Антихакинг в сети. Трюки.

Категория: Защита информации | Добавил: george27 (05.10.2014)
Просмотров: 757 | Рейтинг: 5.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:

Последнее в Блоге

Как выбрать ноутбук? На что обратить внимание при выборе ноутбука?Как выбрать ноутбук? На что обратить внимание при выборе ноутбука?
Компактный ноутбук от Lenovo бюджетной серии IdeaPad 100-14Компактный ноутбук от Lenovo бюджетной серии IdeaPad 100-14
Обзор игрового ноутбука Acer Predator 17XОбзор игрового ноутбука Acer Predator 17X
Аркадный симулятор Smashy Road: теперь и Windows может похвастаться игрой WantedАркадный симулятор Smashy Road: теперь и Windows может похвастаться игрой Wanted