Установка:
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/ |
Получим большой лог чего добавлено и удалено из правил.
Если делать по хорошему – то конечно же нужна платная подписка на правила + автоматизация процесса обновления.
Написан на языке 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
Собственно 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> grant all on snort.* to snort@localhost identified by 'snort';
Создаем таблицы:
$ mysql -u snort -p snort < /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
Пример – чтение траффика из файла:
Опции командной строки характерные для режима регистрации пакетов:
-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:
