Система обнаружения вторжения для Чайников. Установка и Конфигурирование SNORT.

Система обнаружения вторжения для Чайников. Установка и Конфигурирование SNORT.

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

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

Платформа:
Linux 2.2.* ,
Snort 1.7(http://www.snort.org/)
Sparc: SunOS 4.1.x, Solaris, Linux, and OpenBSD
x86: Linux, OpenBSD, FreeBSD, NetBSD, and Solaris
M68k/PPC: Linux, OpenBSD, NetBSD, Mac OS X Server

Требования:
Tcpdump (www.tcpdump.org)
Libpcap (Snort основан на библиотеке libpcap, обычно используемой в большинстве TCP/IP сниферов и анализаторов) – скачать можно отсюда: ftp://ftp.ee.lbl.gov/libpcap.tar.Z


Компилирование и Установка SNORT


Основной сайт для Snort - http://www.snort.org. Snort распространяется согласно лицензии GNU GPL автором Мартином Роешом. После загрузки архива, разархивируем его в каталог snort-1.7:
root @lord]# tar -zxvf snort-1.7.tar.gz

После загрузки libpcap, разархивируйте его подобным образом. Войдите в каталог libpacp, и выполните следующие шаги:  
root @lord]# ./configure root @lord]# make

Теперь, мы компилируем Snort. Войдите в каталог, в котором находится Snort, и выполните следующие команду:
root @lord]# ./configure --with-libpcap-includes=/path/to/libpcap/ {* in my case it was : root@lord ./configure --with-libpcap-includes=/home/dood/libpcap }
root @lord]# make root @lord]# make install

Snort теперь установлен на вашей машине.
Создайте директорию, в которой Snort будет хранить файлы регистрации:

root @lord]#mkdir /var/log/snort

И как всегда, выполните:

root @lord]# whereis snort

чтобы подтвердить, где установлен Snort.      

Основы структуры Snort

Архитектура Snort состоит из трех основных компонентов, которые могут быть описаны как:
1. Дешифратор пакетов : готовит перехваченные пакеты в форму типа данных, которые затем могут быть обработаны механизмом обнаружения. Дешифратор пакетов может регистрировать Ethernet, SLIP и PPP пакеты.
2. Механизм Обнаружения : анализирует и обрабатывает пакеты, поданные к нему “Дешифратором”, основываясь на правилах Snort. Сменные модули могут быть включены в механизм обнаружения, чтобы увеличить функциональные возможности Snort.
3. Logger/Alerter: Регистратор позволяет вам регистрировать информацию, собранную дешифратором пакетов в удобочитаемом формате. По умолчанию файлы регистрации сохранены в каталоге :/var/log/Snort.  

Механизм предупреждения посылает предупреждения к syslog, файлу, Unix sockets или базе данных. По умолчанию, все предупреждения сохранены в файле: /var/log/Snort/alerts.  

          
Использование SNORT и его режимы

В этом разделе мы обсудим концепции и команды SNORT в подробностях. Начнем с простой команды, которая отображает все ключи программы:

root@lord snort -?

Команда выдаст следующее:
-*> Snort! <*-
Version 1.7
By Martin Roesch (roesch@clark.net, www.snort.org)
USAGE: snort [-options]
Options:
-A Set alert mode: fast, full, or none (alert file alerts only)
'unsock' enables UNIX socket logging (experimental).
-a Display ARP packets
-b Log packets in tcpdump format (much faster!)
-c Use Rules File
-C Print out payloads with character data only (no hex)
-d Dump the Application Layer
-D Run Snort in background (daemon) mode
-e Display the second layer header info
-F Read BPF filters from file
-g Run snort gid as 'gname' user or uid after initialization
-h Home network =
-i Listen on interface
-l Log to directory
-n Exit after receiving packets
-N Turn off logging (alerts still work)
-o Change the rule testing order to Pass|Alert|Log
-O Obfuscate the logged IP addresses
-p Disable promiscuous mode sniffing
-P set explicit snaplen [sp? -ed.] of packet (default: 1514)
-q Quiet. Don't show banner and status report
-r Read and process tcpdump file
-s Log alert messages to syslog
-S

Как уже говорилось, SNORT выполняется в трех различных режимах:
1. Режим пакетного снифера : Когда Snort работает в этом режиме, он читает и дешифрует все сетевые пакеты и формирует дамп к stdout (ваш экран).
Для перевода Snort в режим сниффера используйте ключ –v:
root @lord]# ./snort –v

Примечание: В этом режиме он показывает только заголовки пакетов.
Для просмотра заголовка + содержания пакета выполните:
root @lord]# ./snort -X
2. Режим регистрации пакетов : Этот режим записывает пакеты на диск и декодирует их в ASCII формат.
root @lord]# Snort -l < directory to log packets to >
2. Режим обнаружения вторжения :

Сигнальные данные регистрируются механизмом обнаружения (по умолчанию файл называемый " alert"  в каталоге регистрации, но можно через syslog, Winpop сообщения и т.д.) Каталог регистрации по умолчанию -/var/log/snort , может быть изменен, используя ключ "-l".  
Теперь рассмотрим типичную команду Snort для анализа пакета:  
root @lord]# snort -v -d -e -i eth0 -h 192.168.3.0/24
Здесь, мы рассматриваем подсеть класса C в пределах от 192.168.3.0-192.168.3.255 (маска подсети: 255.255.255.0). Сделаем подробный разбор вышеупомянутой команды, чтобы понять, что она означает: 
'-v ' : посылает подробный ответ на вашу консоль.
'-d ': формирует дамп декодированных данных прикладного уровня
'-e ': показывает декодированные Ethernet заголовки.
'-i ': определяет интерфейс, который будет проверен для анализа пакета.
'-h ': определяет сеть, которой нужно управлять

В следующем примере мы заставим Snort генерировать предупреждения:
Режимы предупреждения Snort состоят из трех основных групп (можно задавать свои):
a. Быстрый: записывает предупреждения в файл 'alert' в одну строку, так же как и в syslog.
b. Полный: записывает предупреждения в файл 'alert' c полным декодированным заголовком.
c. None: - не выдает предупреждения.
Команда тогда изменится на следующую:
root @lord]# snort -v -d -e -i eth0 -h 192.168.3.0/24 -A fast
Чтобы посылать аварийные сообщения syslog, используйте ключ '-s' вместо этого. Предупреждения появятся в /var/log/secure или /var/log/messages :
             root @lord]# snort -v -d -e -i eth0 -h 192.168.3.0/24 -s
До сих пор все перехваченные и проанализированные пакеты показывались на вашем экране. Если вы хотите, чтобы Snort записывал их в ваш файл регистрации, вы должны использовать опцию "-l" и указать имя директории для записи логов (например /var/log/snort ):
root @lord]#snort -v -d -e -i eth0 -h 192.168.3.0/24 -A full -l /var/log/snort
Чтобы регистрировать пакеты в формате tcpdump и производить минимальные предупреждения, используйте  ключ '-b ':
root @lord]#snort -b -i eth0 -A fast -h 192.168.3.0/24 -s -l /var/log/snort
В вышеупомянутых командах, Snort регистрирует все пакеты в вашем сегменте сети. Если вы хотите регистрировать только некоторые типы пакетов в зависимости от правил, используете ключ '-c '.    
root @lord]# snort -b -i eth0 -A fast -h 192.168.5.0/24 -s -l /var/log/snort -c /snort-rule-file.

Дополнительную информацию можно получить здесь:

www.snort.org
www.silicondefence.com
www.whitehats.com
project.honeynet.org

 

 

Ищем темную материю и подписчиков!

Одно найти легче, чем другое. Спойлер: это не темная материя

Станьте частью научной Вселенной — подпишитесь