Archive

Posts Tagged ‘snort’

Oinkmaster – автоматизация обновления правил Snort

May 5th, 2009 No comments

Установка:

1
2
3
4
5
$ cd /usr/ports/security/oinkmaster
$ make install clean
$ cd /usr/local/etc/
$ cp oinkmaster.conf.sample oinkmaster.conf
$ chmod 644 oinkmaster.conf

В файле oinkmaster.conf указываем расположение правил для snort’a, а так же добавляем отключенные правила:

1
2
3
4
url = file:///tmp/snortrules.tar.gz
disablesid 1
disablesid 2
disablesid 3

Заходим на snort.org, регистрируемся и скачиваем бесплатные правила месячной давности.

1
$ wget -O /tmp/snortrules.tar.gz http://www.snort.org/pub-bin/downloads.cgi/Download/vrt_os/snortrules-snapshot-2.8.tar.gz

Запускаем oinkmaster:

1
$ oinkmaster -o /usr/local/etc/snort/rules/

Получим большой лог чего добавлено и удалено из правил.

Если делать по хорошему – то конечно же нужна платная подписка на правила + автоматизация процесса обновления.

Tags: ,

Sneeze – генератор ложных срабатывания для Snort

May 3rd, 2009 No comments

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

Установка:

1
2
$ wget http://xgu.ru/downloads/sneeze.pl
$ chmod +x sneeze.pl

Необходим так же модуль p5-Net-RawIP:

1
2
$ cd /usr/ports/net/p5-Net-RawIP
$ make install clean

Если запустить sneeze.pl без параметров, будет показано сообщение с информацией об использовании:

1
2
3
4
5
6
7
8
9
$ ./sneeze.pl
Must have EUID == 0 to use Net::RawIP, currently you are seen with EUID=1001 at ./sneeze.pl line 20
Usage ./sneeze.pl -d <dest host> -f <rule file> [options]
        -c count        Loop X times. -1 == forever. Default is 1.
        -s ip           Spoof this IP as source. Default is your IP.
        -p port         Force use of this source port.
        -i interface    Outbound interface. Default is eth0.
        -x debug        Turn on debugging information.
        -h help         Duh? This is it.

Берём описание сигнатур атак Snort и выполним имитацию DNS-атак:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$ sudo ./sneeze.pl -i vlan3 -d case.net.ru -f /usr/local/etc/snort/rules/dns.rules
ATTACK:
 case.net.ru:20068 -> case.net.ru:34164
 
ATTACK:
 case.net.ru:26296 -> case.net.ru:54516
 
ATTACK:
 case.net.ru:21436 -> case.net.ru:43523
 
ATTACK: DNS named authors attempt
ATTACK TYPE: attempted-recon
tcp case.net.ru:44905 -> case.net.ru:53
Reference => 10728
Reference => http://www.whitehats.com/info/IDS480
 
ATTACK: DNS named authors attempt
ATTACK TYPE: attempted-recon
udp case.net.ru:65328 -> case.net.ru:53
Reference => 10728
Reference => http://www.whitehats.com/info/IDS480
 
...
 
ATTACK: DNS Windows NAT helper components tcp denial of service attempt
ATTACK TYPE: misc-attack
tcp case.net.ru:17587 -> case.net.ru:53
Reference => http://cve.mitre.org/cgi-bin/cvename.cgi?name=2006-5614

В логах snort’а видим:

1
2
3
4
5
6
7
8
9
10
05/03-18:47:16.154161  [**] [1:1616:10] DNS named version attempt [**] [Classification: Attempted Information Leak] [Priority: 2] {UDP} 213.79.110.123:39151 -> 213.79.110.123:53
05/03-18:47:16.156684  [**] [1:256:9] DNS named authors attempt [**] [Classification: Attempted Information Leak] [Priority: 2] {UDP} 213.79.110.123:28828 -> 213.79.110.123:53
05/03-18:47:16.156684  [**] [1:1616:10] DNS named version attempt [**] [Classification: Attempted Information Leak] [Priority: 2] {UDP} 213.79.110.123:28828 -> 213.79.110.123:53
05/03-18:47:16.157034  [**] [1:256:9] DNS named authors attempt [**] [Classification: Attempted Information Leak] [Priority: 2] {UDP} 213.79.110.123:28828 -> 213.79.110.123:53
05/03-18:47:16.157034  [**] [1:1616:10] DNS named version attempt [**] [Classification: Attempted Information Leak] [Priority: 2] {UDP} 213.79.110.123:28828 -> 213.79.110.123:53
 
...
 
05/03-18:47:16.159283  [**] [1:253:7] DNS SPOOF query response PTR with TTL of 1 min. and no authority [**] [Classification: Potentially Bad Traffic] [Priority: 2] {UDP} 213.79.110.123:53 -> 213.79.110.123:42884
05/03-18:47:16.159283  [**] [1:254:7] DNS SPOOF query response with TTL of 1 min. and no authority [**] [Classification: Potentially Bad Traffic] [Priority: 2] {UDP} 213.79.110.123:53 -> 213.79.110.123:42884

Скрипт sneeze.pl

Оригинал статьи: http://xgu.ru/wiki/Sneeze

Tags: ,

Snort

February 27th, 2009 No comments

snort Собственно Snort – the de facto standard for intrusion detection/prevention. Установка особых проблем не вызывает:

# cd /usr/ports/security/snort
# make config
[ ] DYNAMIC     Enable dynamic plugin support
[ ] FLEXRESP    Flexible response to events
[ ] FLEXRESP2   Flexible response to events (version 2)
[X] MYSQL       Enable MySQL support
[ ] ODBC        Enable ODBC support
[ ] POSTGRESQL  Enable PostgreSQL support
[ ] PRELUDE     Enable Prelude NIDS integration
[ ] PERPROFILE  Enable Performance Profiling
[ ] SNORTSAM    Enable output plugin to SnortSam
# make install clean

Прописываем в rc.conf:

snort_enable="YES"
snort_interface="em0"

После установки регистрируется на оффициальном сайте, для того что бы скачать наборы правил под свою версию snort’а. Я скачал файлик snortrules-snapshot-2.8.tar.gz размером порядка 80 мегабайт. Создаем каталог /usr/local/etc/snort/rules и распаковываем туда содержимое скачанного архива. Настройка производится в файле /usr/local/etc/snort/snort.conf.

Настройка MySQL: Добавляем пользователя:

mysql&gt; grant all on snort.* to snort@localhost identified by 'snort';

Создаем таблицы:

$ mysql -u snort -p snort &lt; /usr/ports/security/snort/work/snort-2.8.2.2/schemas/create_mysql

Включаем вывод в базу в файле snort.conf:

output database: log, mysql, user=snort password=password dbname=snort host=localhost

Snort умеет работать в 3-х режимах:

  • Анализатор пакетов – аналог tcpdump
  • Регистратор пакетов – записывает траффик в файл
  • Сетевая система обнаружения вторжений

Опции командной строки характерные для всех режимов работы:

-i     Listen on interface 
-p         Disable promiscuous mode sniffing
<h1></h1>
Опции командной строки характерные для режима анализатора пакетов:
<pre lang="cli">-d         Dump the Application Layer
-e         Display the second layer header info
-v         Be verbose
-q         Quiet. Don't show banner and status report
-r     Read and process tcpdump file Пример - чтение траффика с интерфейса:
<pre lang="cli">$ snort -q -i vlan3 -p -d -e -v -n 10 port 80

Пример – чтение траффика из файла:

$ snort -v -r ~/traffic/

Опции командной строки характерные для режима регистрации пакетов:

-l     Log to directory Пример - запись траффика в файл:
<pre lang="cli">$ snort -i vlan3 -p -l ~/traffic/

Опции командной строки характерные для режима NDIS:

-I         Add Interface name to alert output
-A         Set alert mode: fast, full, console, test or none  (alert file alerts only) "unsock" enables UNIX socket logging (experimental).

Пример:

$ snort -i vlan3 -p -A console

Установка BASE (Basic Analysis and Security Engine)

 Use 'make config' to modify these settings
$ make install clean

Программа устанавливается в /usr/local/www/base. Делаем алиас или симлинк для веб-сервера и открывает в браузере. Начинаем инсталяцию. Особенности: – делаем каталог base доступным для записи веб-сервером; – в качестве “Path to ADODB” вводим /usr/local/share/adodb.

 

Ссылки:

  • http://www.ibm.com/developerworks/web/library/wa-snort1/
  • http://www.emergingthreats.net/ – сообщество, разрабатывающее правила

 

Иллюстрация с сайта snortattack.org – Snort в режиме работы Inline:
snort_inline

Tags: ,