Система обнаружения вторжений snort
Содержание:
Description
Snorby is a Ruby on Rails based frontend for Snort, Suricata and Sagan. Some of the features:
- Dashboard with Reporting:
- Number of events by severity (high, medium, low)
- event count vs time by sensor
- severity count vs time
- protocol count vs time
- signature distribution graph
- source distribution graph
- destination distribution graph
- My queue: enables to dispatch events for further investigation
- Events: timeline of events with details, including OpenFPC features
- Sensors: list of sensors
- Search: enables to filter events by criteria
- Administration: admin backend of the application

There are two ways to install Snorby:
- Using Insta-Snorby a prepared virtual machine featuring Snorby 2.2.6, Snort, Barnyard, OpenFPC, and Pulled Pork that is configured and ready to use.
- Install Snorby from sources.
This tutorial explains how to install Snorby 2.2.7 from sources on a Debian Squeeze (6.0) box.
Snort версии 2.9.1 RC.
Новая версия система Snort обладает препроцессором оценки репутаций IP адресов, который уже получил множество положительных отзывов от пользователей, испытавших Snort версии 2.9.1 RC.
Новый препроцессор SIP
Препроцессор SIP имеет новые функции предупреждения о следующих видах аномалий:
-
- Недопустимая версия SIP
- Неизвестный метод SIP
- Несоответствие методу SIP
- Отсутствие заголовка пакета данных
- Новые препроцессоры POP3 и IMAP для декодирования вложений электронной почты в форматы Base64, Quoted Printable и UUENCODE
- Добавлена поддержка для чтения больших файлов PCAP
- Новый препроцессор оценки IP репутации
- Новый препроцессор dcerpc2
- Создание отчетов по полученным постовым вложениям и адресам получателей
- Прямой доступ к возможностям декодирования GZIP
- Несколько исправленных ошибок в протоколе Stream5
Регистрация и обновление правил Snort.
После регистрации входим в аккаунт:
Далее щелкаем по вкладке My account —
-Subscriptions and Oinckodes-My
-Oinckodes
-Generate code
Этот сгенерированный код нужно вставить в поле «Oinkmaster code» во вкладке
Global Settings настроек Snort.
Вместе с кодом проставляем все необходимые настройки.
Жмем Save и переходим во вкладку Update rules. Запустится процесс обновления правил. Здесь нужно сделать одно замечание, если вдруг во время скачки у вас произойдет обрыв соединения, следующая попытка скачать правила будет возможна только по истечении 15 минут.
После скачки и распаковки правил, переходим во вкладку Categories. Здесь включаем все правила которые удовлетворят нашим потребностям в безопасности. Но нужно помнить, что чем больше мы включим правил, тем большая нагрузка ложится на систему, поэтому рекомендуется включать отслеживание только того трафика, который представляет опасность, не больше не меньше. Отмечаем нужные правила и жмем Save.
Во вкладке Rules можно настраивать и отключать конкретные правила из разных категорий.
Вкладка Servers содержит IP адреса и порты серверов в вашей сети на которые Snort должен особо акцентировать внимание. Во вкладке Blocked отображаются все заблокированные хосты, любой хост можно исключить из списка бана, просто нажав пиктограмму удаления рядом с IP адресом
Во вкладке Blocked отображаются все заблокированные хосты, любой хост можно исключить из списка бана, просто нажав пиктограмму удаления рядом с IP адресом.
оригинал:
Server side
This is going to be the host where the central snort database will reside. It will be a Ubuntu host launched from AWS Ubuntu-14.04 LTS x86-64 AMI. Being the latest stable Ubuntu LTS release it should have most recent packages so we can try to reduce compiling from sources to minimum.
Snort
We start with installing some dependencies:
After that we can install snort which is on version 2.9.6.0 in the 14.04 repositories and not much behind Snort’s master which is on 2.9.6.2 atm:
Then we can easily configure the package Debian way :
To install the Snort Rules I used the OinkMaster script. But first we need to register on the Snort site and get so called oink code which I can use to download the latest rules for my snort major version (mine is 2.9.6.0, the source is at 2.9.6.2):
We will also use the OinkMaster source scripts to create the sid-msg.map file for Snort:
Barnyard2
First we need to create a MySQL database we gonna use for Barnyard:
Next we move to installing and configuring Barnyard from source:
Now Barnyard2 should be installed and configured and the database tables populated. We can now create a user we gonna use to access and write the snort records in the database:
Next we will update the Barnyard config file as follows :
This tells Barnyard how to connect to the database and were to find the needed files. At the end we create the archive directory where Barnyard will store the processed files:
Snorby
We install some dependencies and build the package from source:
We have already setup the database in the previous steps so we can move to setting up the configuration files:
To finish off the installation we run:
And finally we can start the service:
Just a quick note here on a error I faced. In case we get error message in the console “The Snorby worker is not currently running!” we need to restart it:
Apache
We want to setup Apache SSL proxy as front-end for the Snorby dashboard. We install the needed packages and enable the modules needed by apache proxy:
Now to configure the proxy in file:
Enable the configuration and restart apache:
Now when we navigate to https://server.mydomain.com we will be met with the Snorby Dashboard.
New Rules:
* 1:50795 ENABLED PUA-OTHER Win.Trojan.CoinMiner attempted download (pua-other.rules) * 1:50780 DISABLED POLICY-OTHER InduSoft Web Studio DBProcessCall remote connection open attempt (policy-other.rules) * 1:50779 DISABLED SERVER-WEBAPP Schneider Electric Quantum modicon ethernet module unauthenticated password reset attempt (server-webapp.rules) * 1:50796 ENABLED PUA-OTHER Win.Trojan.CoinMiner attempted download (pua-other.rules) * 1:50781 DISABLED SERVER-OTHER InduSoft Web Studio remote code execution attempt (server-other.rules) * 1:50794 ENABLED PUA-OTHER Unix.Trojan.CoinMiner attempted download (pua-other.rules) * 3:50788 ENABLED PROTOCOL-SCADA TRUFFLEHUNTER TALOS-2019-0862 attack attempt (protocol-scada.rules) * 3:50783 ENABLED SERVER-WEBAPP TRUFFLEHUNTER TALOS-2019-0861 attack attempt (server-webapp.rules) * 3:50787 ENABLED PROTOCOL-SCADA TRUFFLEHUNTER TALOS-2019-0869 attack attempt (protocol-scada.rules) * 3:50791 ENABLED PROTOCOL-SCADA TRUFFLEHUNTER TALOS-2019-0873 attack attempt (protocol-scada.rules) * 3:50790 ENABLED PROTOCOL-SCADA TRUFFLEHUNTER TALOS-2019-0863 attack attempt (protocol-scada.rules) * 3:50792 ENABLED PROTOCOL-SCADA TRUFFLEHUNTER TALOS-2019-0874 attack attempt (protocol-scada.rules) * 3:50785 ENABLED SERVER-WEBAPP TRUFFLEHUNTER TALOS-2019-0861 attack attempt (server-webapp.rules) * 3:50782 ENABLED SERVER-WEBAPP TRUFFLEHUNTER TALOS-2019-0861 attack attempt (server-webapp.rules) * 3:50786 ENABLED PROTOCOL-SCADA TRUFFLEHUNTER TALOS-2019-0872 attack attempt (protocol-scada.rules) * 3:50784 ENABLED SERVER-WEBAPP TRUFFLEHUNTER TALOS-2019-0861 attack attempt (server-webapp.rules) * 3:50797 ENABLED PROTOCOL-SCADA TRUFFLEHUNTER TALOS-2019-0870 attack attempt (protocol-scada.rules) * 3:50793 ENABLED PROTOCOL-SCADA TRUFFLEHUNTER TALOS-2019-0871 attack attempt (protocol-scada.rules) * 3:50789 ENABLED PROTOCOL-SCADA TRUFFLEHUNTER TALOS-2019-0862 attack attempt (protocol-scada.rules)
Создание своих правил в Snort
Установить и проверить на работоспособность — этого мало. Необходимо его еще и просматривать. Вот давай и проверим, на что способна эта IDS с заводскими правилами. У нас есть SSH, Apache и FTP. Значит, минимальный набор правил, которые надо иметь, — это обнаруживать сканирование портов, атаку на учетные записи (brute force), DoS и SQL-инъекции.
Представим, что на этом этапе появился хакер. Он сделал свое дело и пропал, но сразу в логах отобразилась подозрительная активность с одного IP-адреса. У меня отображается 3964 события с пятью разными действиями. Посмотрев внимательнее, можно увидеть нерадужную картину.
Действия подозрительного IP
Невооруженным глазом видно сканирование портов, или, как разработчики это назвали, «разведывательную деятельность». Смотрим дальше.
Атака на 22-й порт
Виден брутфорс SSH-сервиса на 22-м порте. Так же дела обстояли и с FTP-портом (21-м).
Далее ведется расследование, просматриваем логи самой ОС, выявляем слабое звено защиты, откуда он пришел и так далее. Главное, что оповещения сработали и причастность данного IP к противоправным действиям установлена.
Давай пойдем чуть дальше. Поднимаем Kali Linux и пробуем провести DoS-атаку на наш Apache. Так как BASE работает по HTTP, самый легкий способ его «положить», как по мне, это атака Slowloris. Поэтому скачиваем на нашу Kali соответствующий скрипт и запускаем атаку.
DoS Slowloris на Kali Linux
Через 15–30 секунд наш BASE перестает отвечать. И даже после остановки атаки пришлось перезапустить веб-сервер. Сам он за короткий промежуток времени не смог подняться. Упал только BASE. Snort, естественно, продолжал работать и записывать оповещения в базу.
Лог Snort после DoS
Вот так выглядит наш лог после атаки. Следом я попробовал зафлудить SYN-пакетами свой Snort-сервер. Проделано это было при помощи программы hping3.
snort установка и настройка
К сожалению, с текущими настройками Snort не в состоянии был определить такого рода атаку и в логах ничего не показал. Пришлось смотреть через tcpdump, идут ли пакеты на сервер вообще.
Следующим этапом я натравил sqlmap на BASE по запросу http://192.168.1.20/base/base_stat_alerts.php?sensor=1. К сожалению, это тоже не дало результатов: подходящих правил определения атак на базу данных в дефолтной подборке Snort нет. Значит, нужно написать правило самому. В нашем примере оно выглядит следующим образом:
| 1 | alert tcp any any->any any(msg»SQL Injection»;content»GET»;http_method;uricontent»and 1=1″;nocase;sid3000001;rev1;) |
Теперь зайдем на web-интерфейс с компьютера атакующего и попробуем проэксплуатировать данный метод, добавив в конце запроса . В логе отобразилось оповещение с номером правила.
Оповещение Snort об SQL injection
Установка Snort
Куда лучше установить Snort
- Где в сети должен находиться Snort? Конечно, если в сети есть выход в Internet, то можно установить IPS до или после межсетевого экрана. Если Snort будет запщуен до брандмэуера, то можно будет получать все предупреждения о попытках взлома и принять соответствующие меры, если после, то, так как фаервол может отбрасывать интересные пакеты, то будет меньше возможностей для анализа интересного трафика.
- Многие специалисты по сетевой безопасности советуют устанавливать Snort сразу на двух машинах до и после — это обеспечит максимальную надежность получения нужной информации. Также эффективно можно использовать систему обнаружения вторжений с помощью маршрутизаторов, поддерживающих зеркалирование трафика. К примеру, настраиванием IPS на машине и зеркалированием всего трафика с маршрутизатора на машину с IPS. Для менее крупных сетей можно использовать концентратор для того, чтобы прослушивать весь трафик.
Конфигурация установочной программы
Будет рассмотрена установка Snort версии 2.4.3 на Linux
Выполняем:
$ ./configure && make && make install
Важно заметить, что у configure существует множество довольно интересных
опций. Ниже приведены некоторые из них:
Инсталляционные директории:
--prefix=PREFIX префикс к архитектурно-независимым файлам [/usr/local] --exec-prefix=EPREFIX префикс к архитектурно-зависимым файлам
Опции для указания инсталляционных директорий
--bindir=DIR пользовательское исполнение (PREFIX/bin)
--sbindir=DIR исполнение системного администратора (PREFIX/sbin)
--libexecdir=DIR выполнение программ (PREFIX/lib)
--datadir=DIR только для чтения архитектурно-независимый каталог
(PREFIX/share)
--sysconfig=DIR только для чтения конфигурационный каталог
(PREFIX/etc)
--sharedstatedir=DIR изменяемый архитектурно-независимый каталог
(PREFIX/com)
--localstatedir=DIR изменяемый конфигурационный каталог (PREFIX/var)
--includedir=DIR заголовочные файлы C (PREFIX/include)
--oldincludedir=DIR заголовочные файлы не C (/usr/include)
--infodir=DIR документация (PREFIX/info)
--mandir=DIR документация man (PREFIX/man)
Опции пакета
--with-PACKAGE использовать PACKAGE
--without-PACKAGE не использовать PACKAGE
(аналогично --with-PACKAGE=no)
--with-libpcap-includes=DIR директория с вложенными файлами для
библиотеки libpcap
--with-libpcap-libraries=DIR каталог с библиотекой libpcap
--with-libpcre-includes=DIR каталог с вложенными фалами для библиотеки
libpcre
--with-libpcre-libraries=DIR каталог с библиотекой libpcre
--with-libnet-includes=DIR директория с вложенными файлами для
библиотеки libnet
--with-libnet-libraries=DIR каталог с библиотекой libnet
--with-mysql=DIR поддержка mysql
--with-odbc=DIR поддержка odbc
--with-postgresql=DIR поддержка postgresql
--with-pgsql-includes=DIR директория с вложенными файлами postgresql
--with-oracle=DIR поддержка oracle
--with-libprelude-prefix=PFX префикс, куда установлена библиотека
libprelude
--with-libipq-includes=DIR каталог с вложенными файлами для библиотеки
libipq
--with-libipq-libraries=DIR каталог с библиотекой libipq
--enable-perfmonitor включить препроцессор perfmonitor --enable-inline использовать интерфейс libipq для snort inline --enable-ipfw использовать ipfw для snort inline --enable-debug это только для разработчиков, опция для отладки
После завершения установки нужно убедиться, что удовлетворены все зависимости удолетворены и Snort находится в рабочем состоянии (запускаем в режиме sniffer):
$ snort -dev
Запустим любое сетевое приложение и проверим, выводит ли Snort данные о пакетах. Запуск должен осуществляться с правами суперпользователя, так как основа Snort построена на использования библиотеки libpcap. Libpcap и осуществляет прослушивание всего трафика. Библиотека позволяет видеть Snort пакеты до того, как они будут восприняты остальными приложениями, а на этом уровне требуются права суперпользователя. Последнюю версию библиотеки можно найти на : http://www.tcpdump.org. Для Snort под windows потребуется аналог библиотеки libpcap под названием winpcap.
Установка Barnyard2
Barnyard2 — это спулер, который поможет снизить нагрузку на сервер. Для его установки сперва ставим необходимые компоненты:
| 1 | sudo apt-get install-ymysql-server libmysqlclient-dev mysql-client autoconf libtool |
Обрати внимание, что во время установки MySQL попросит ввести пароль для. Поэтому не отходи от компа надолго
Затем ставим сам Barnyard2:
|
1 |
cd~/snort_src wget https//github.com/firnsy/barnyard2/archive/master.tar.gz -O barnyard2-Master.tar.gz tar zxvf barnyard2-Master.tar.gz cd barnyard2-master autoreconf-fvi-I./m4 sudo ln-s/usr/include/dumbnet.h/usr/include/dnet.h sudo ldconfig ./configure—with-mysql—with-mysql-libraries=/usr/lib/i386-linux-gnu make sudo make install |
Проверяем, не отвернулась ли от нас фортуна:
| 1 | /usr/local/bin/barnyard2-V |
Снова копируем файлы из исходного пакета, создаем файлы и раздаем права:
|
1 |
sudo cp~/snort/barnyard2-master/etc/barnyard2.conf/etc/snort/ sudo mkdir/var/log/barnyard2 sudo chown snort.snort/var/log/barnyard2 sudo touch/var/log/snort/barnyard2.waldo sudo chown snort.snort/var/log/snort/barnyard2.waldo |
Теперь придется поработать с MySQL:
|
1 |
mysql-uroot-p mysql>create database snort; mysql>usesnort; mysql>source~/snort/barnyard2-master/schemas/create_mysql mysql>CREATE USER’snort’@’localhost’IDENTIFIED BY’snortpass’; mysql>grant create,insert,select,delete,update on snort.*to’snort’@’localhost’; mysql>exit |
Добавляем в конец файла строку . И снова манипуляция с правами:
| 1 | sudo chmodo-r/etc/snort/barnyard2.conf |
Теперь проверим все, что сделали раньше. В файл добавляем строчку
| 1 | alert icmp any any->$HOME_NET any(msg»ICMP test detected»;GID1;sid10000001;rev001;classtypeicmp-event;) |
Это будет наше правило на проверку пинга (ICMP-пакеты). Дописываем две строки в файл :
|
1 |
`#v2` 1||10000001||001||icmp-event||||ICMP Test detected||url,tools.ietf.org/html/rfc792 |
В описании релиза Barnyard можно прочесть подробнее, что и как.
Запустим Snort в режиме демона (он так и будет работать всегда).
| 1 | sudo/usr/local/bin/snort-q-usnort-gsnort-c/etc/snort/snort.conf-ienp0s3–D |
Потом запустим Barnyard2:
| 1 | sudo barnyard2-c/etc/snort/barnyard2.conf-d/var/log/snort-fsnort.u2-w/var/log/snort/barnyard2.waldo-gsnort-usnort |
Пингуем наш Snort-server и (если все в порядке) получаем предупреждения.
Работа Snort + Barnyard2
Snort 2.9.0
Наиболее важные улучшения:
- Режим предотвращения атак (IPS) включает расширение возможностей подсистемы Stream (обработчик/сборщик TCP-потоков для контроля за отдельными сессиями) для работы в активном inline-режиме (snort выступает в роли шлюза и позволяет принимать решения о дальнейшем прохождении пакетов в момент их получения, а не на основе пассивного анализа трафика). Реакция для всех пакетов теперь задается через единый API, поддерживающий модули Stream, Respond и React. Добавлен новый модуль реакции — respond3, поддерживающий синтаксис как модуля resp, так и resp2, включая возможность блокирования и в конфигурациях с пассивным анализом трафика. В случае, когда Snort запущен в активном inline-режиме, теперь используется новый препроцессор для нормализации пакетов, позволяя интерпретировать пакеты тем же способом, что и получающий эти пакеты хост;
- Задействование модуля DAQ (API для сбора данных, Data Acquisition API), который определяет множество разных методов доступа к получению пакетов, таких как libpcap, netfilterq, IPFW и afpacket. При использовании libpcap теперь требуется как минимум версия 1.0 данной библиотеки. Код DAQ может быть обновлен независимо от Snort, так как теперь является независимым модулем.
- Обновлен код инспектирования HTTP-трафика (HTTP Inspect), который теперь может извлекать и использовать IP-адреса из HTTP-заголовков X-Forward-For и True-Client-IP;
- Новая опция ‘byte_extract’ позволяет использовать извлеченные в текущем правиле значения внутри следом идущих опций isdataat и byte_test, byte_jump, а также в содержимом distance/within/depth/offset;
- В SMTP-препроцессоре реализована поддержка декодирования больших MIME-вложений, требующим передачи более одного сетевого пакета;
- Возможность тестирования правил блокирования пакетов. В режиме Inline Test Mode пакеты не отбрасываются, а только отражаются в логе как подлежащие блокировке;
- Новые опции правил для декодирования и инспектирования base64-блоков данных;
- Улучшена работа кода по декодированию IPv6-пакетов с целью улучшения определения аномалий;
- Добавлен пример создания приложений для обработки данных формате unified2, используемом для компактного хранения логов Snort;
- Добавлен новый обработчик шаблонов, поддерживающий задействования аппаратных акселераторов, совместимых с Intel Quick Assist Technology, для ускорения сопоставления масок.
Дополнительные материалы
FreeBSD
# pkg install snort # cat /usr/local/etc/snort/snort.conf
... ipvar HOME_NET [192.168.X.0/24] ... #################################################################### # Step #6: Configure output plugins ... # syslog output alert_syslog: LOG_AUTH LOG_ALERT ... ################################################### # Step #7: Customize your rule set ... # site specific rules include $RULE_PATH/local.rules include $RULE_PATH/community.rules ... # закомментируйте все правила ниже ...
# fetch --no-verify-peer https://www.snort.org/downloads/community/community-rules.tar.gz # tar -xvf community-rules.tar.gz # cp community-rules/community.rules /usr/local/etc/snort/rules/ # touch /usr/local/etc/snort/rules/local.rules # cp community-rules/sid-msg.map /usr/local/etc/snort/sid-msg.map # mkdir /usr/local/etc/rules/ # touch /usr/local/etc/rules/black_list.rules # touch /usr/local/etc/rules/white_list.rules !!! Раскомментировать правило # cat /usr/local/etc/snort/rules/community.rules
... alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-IIS CodeRed v2 root.exe access"; flow:to_server,established; uricontent:"/root.exe"; nocase; metadata:service http; reference:url,www.cert.org/advisories/CA-2001-19.html; classtype:web-application-attack; sid:1256; rev:11;) ...
# # cd /usr/local/etc/snort/preproc_rules/ # # cp sensitive-data.rules-sample sensitive-data.rules # # cp decoder.rules-sample decoder.rules # # cp preprocessor.rules-sample preprocessor.rules
# snort -T -c /usr/local/etc/snort/snort.conf # snort -A console -i em2 -c /usr/local/etc/snort/snort.conf # service snort rcvar # cat /etc/rc.conf
... snort_enable=YES snort_interface=em2
# service snort start
Настройка и тестирование конфигурации
shell>notepad++ c:\Snort\etc\snort.conf
... var RULE_PATH c:\snort\rules var SO_RULE_PATH c:\snort\rules var PREPROC_RULE_PATH c:\snort\rules ... #my var WHITE_LIST_PATH ../rules #my var BLACK_LIST_PATH ../rules ... config logdir: c:\snort\log ... dynamicpreprocessor directory c:\snort\lib\snort_dynamicpreprocessor ... dynamicengine c:\snort\lib\snort_dynamicengine\sf_engine.dll ... #my dynamicdetection directory /usr/local/lib/snort_dynamicrules ... #my preprocessor normalize_ip4 #my preprocessor normalize_tcp: ips ecn stream #my preprocessor normalize_icmp4 #my preprocessor normalize_ip6 #my preprocessor normalize_icmp6 ... preprocessor http_inspect: global iis_unicode_map c:\snort\etc\unicode.map 1252 compress_depth 65535 decompress_depth 65535 ... #my preprocessor reputation: \ #my memcap 500, \ #my priority whitelist, \ #my nested_ip inner, \ #my whitelist $WHITE_LIST_PATH/white_list.rules, \ #my blacklist $BLACK_LIST_PATH/black_list.rules ... output alert_fast: alert.ids ... include c:\snort\etc\classification.config include c:\snort\etc\reference.config ... include c:\snort\etc\threshold.conf ...
shell>notepad++ C:\Snort\rules\server-iis.rules
... alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"SERVER-IIS CodeRed v2 root.exe access"; flow:to_server,established; content:"/root.exe"; nocase; http_uri; metadata:ruleset community, service http; reference:url,www.cert.org/advisories/CA-2001-19.html; classtype:web-application-attack; sid:1256; rev:20;) ...
admin shell>c:\snort\bin\snort.exe -T -c c:\Snort\etc\snort.conf --daq pcap
Запуск
Выбираем сетевой интерфейс (необходимо отключить ipv6)
shell>c:\snort\bin\snort.exe -W
Запускаем в режиме отладки
admin shell>c:\snort\bin\snort.exe -A console -i 2 -c c:\Snort\etc\snort.conf --daq pcap
Запускаем в режиме службы (консоль заблокирует)
admin shell>c:\snort\bin\snort.exe -q -i 2 -c c:\Snort\etc\snort.conf --daq pcap shell>notepad++ C:\Snort\log\alert.ids
Установка Snort
Просто установить Snort не так уж хлопотно. Можно воспользоваться документацией на сайте. Мы же, как люди, которых не пугают сложности, будем устанавливать с дополнительными плюшками, которые помогут расширить возможности основного продукта.
Помимо собственно Snort, нам понадобится:
- Barnyard2;
- PulledPork;
- Basic Analysis and Security Engine (BASE).
За работу!
Устанавливать я буду октябрьский релиз Snort 2.9.12, так как Snort 3 представлен лишь бета-версией. В качестве ОС выбрана Ubuntu 16.04.1, установка на Ubuntu 16 и 18 ничем не отличаются. Есть разница в установке на Ubuntu 14, но об этом в статье говорить не будем.
Сначала настраиваем сетевой интерфейс.
INFO
Важное замечание для пользователей Ubuntu. С версии 15.10 сетевые интерфейсы уже не следуют стандарту ethХ
Поэтому корректно указывай имя своего интерфейса. Именно тут и возникает большинство проблем с конфигами.
Выбираем тот сетевой интерфейс, который будет мониторить Snort, и в конце настроек interfaces прописываем две строки для отключения Large Receive Offload и Generic Receive Offload. Это желательно сделать для уменьшения нагрузки на процессор:
Перезагружаем настроенный сетевой интерфейс:
Затем по стандарту — update && upgrade и ставим необходимые компоненты:
Далее создаем папку, в которой будем намешивать исходники, солить и перчить их по вкусу. Скачиваем туда систему сбора данных (DAQ — Data AcQuisition). Это библиотека, которая заменяет прямые вызовы на функции libpcap, что облегчает работу на различных аппаратных и программных интерфейсах без необходимости вносить изменения в сам Snort.
Теперь можно поставить сам Snort.
Пробуем вывести версию Snort для того, чтобы убедиться, что все взлетело и работает.
Вывод должен иметь вид, как на скриншоте.
Версия Snort
Установка закончена, погнали дальше!
Настройка в режим IDS
О безопасности необходимо помнить всегда, но мы-то не постоянно за компьютером. Поэтому создадим пользователя для Snort.
Теперь создаем необходимые папки и раздаем права:
Распихаем конфигурационные файлы и файлы настроек по нужным папкам:
В итоге должна получиться вот такая структура папок и файлов.
Дерево папок и файлов /etc/snort
Комментируем все строки с 457-й по 651-ю в файле . Делается это для того, чтобы Snort при запуске не скачивал правила, поскольку для обработки правил у нас будет настройка PulledPork.
Вносим несколько правок в этот же конфигурационный файл вручную:
- Строка 45: указываем нашу сеть.
- Строка 104: меняем на .
- Строка 105: меняем на .
- Строка 106: меняем на .
- Строка 113: меняем на .
- Строка 114: меняем на .
- Строка 546: необходимо раскомментировать для возможности использовать свои правила.
- Строка 521: ниже нее необходимо добавить строку .
- Строка 548: необходимо добавить строку .
Правок много, и в них легко ошибиться. К счастью, Snort умеет проверять файл конфигурации. Рекомендую это делать после каждого ковыряния в конфиге.
Если видишь заветные слова , значит, все в порядке и ничего пока не сломано.
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!
Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя!
Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»
Установка snort на Pfsense
Хотите узнать, как установить Snort на Pfsense? В этом учебнике мы покажем вам все шаги, необходимые для выполнения установки Snort на сервере Pfsense за 5 минут или меньше.
Pfsense 2.4.4-p3
На этой странице мы предлагаем быстрый доступ к списку учебников, связанных с pfSense.
PFSense — Установка snort
Откройте программное обеспечение для браузера, введите IP-адрес брандмауэра Pfsense и получите доступ к веб-интерфейсу.
В нашем примере в браузер был введен следующий URL::
— https://192.168.15.30
Веб-интерфейс Pfsense должен быть представлен.

На оперативном экране введите информацию о входе в систему Pfsense Default Password.
Имя пользователя: Админ
Пароль: pfsense
После успешного входа, вы будете отправлены в панель мониторинга Pfsense.

Получите доступ к меню Системы Pfsense и выберите опцию менеджера пакета.
На экране менеджера пакетов получите доступ к вкладке «Доступные пакеты».
На вкладке «Доступные пакеты» ищите SNORT и установите пакет Snort.

В нашем примере мы установили версию пакета Snort 3.2.9.10.
Подождите, пока установка Snort завершится.
Получите доступ к меню Pfsense Services и выберите опцию Snort.
На вкладке «Глобальные настройки» найдите правила подписчика Snort и выполните следующую конфигурацию:
Включить Snort VRT — Да
— Код Snort Oinkmaster — Введите OikCode
Если у вас нет Oinkcode, доступ к веб-сайту Snort,создайте учетную запись и получите бесплатный Oinkcode.

Найдите область настройки правил и выполните следующую конфигурацию:
Интервал обновления — Выберите желаемый интервал обновления
— Обновление Время начала — Установите нужное время для обновления правил Snort

Найдите область общих настроек и выполните следующую конфигурацию:
Удалите блокированные хосты Интервал — 1 час
Удаление заблокированных хостов после деinstall — Нет
— Храните настройки snort после deinstall — Да
— Запуск/Закрытие Регистрационный Интервал — нет

На вкладке Обновления нажмите на кнопку правил обновления, чтобы загрузить правила Snort.

На вкладке Snort Interfaces нажмите на кнопку Добавить и выполните следующую конфигурацию.
Включить — Да
Интерфейс — Выберите нужный интерфейс для мониторинга

Найдите область настроек оповещения и выполните следующую конфигурацию:
— Отправить оповещения в журнал системы — Да
Блок правонарушителей — Включить, если вы хотите, чтобы блокировать правонарушителей
— Убить государства — Да
Какой IP блокировать — ОБА

После завершения конфигурации нажмите на кнопку «Сохранить».
На экране интерфейсов Snort отодвинете конфигурацию интерфейса.

Получите доступ к вкладке категорий Wan и выполните следующую конфигурацию:
— Решение Flowbits — Да
Использование политики IPS — Да
Выбор политики IPS — Подключение

В нашем примере мы включили функцию IPS и выбрали политику под названием Connectivity.
После завершения конфигурации нажмите на кнопку Сохранить и запустите службу Snort на интерфейсе.

Поздравляю! Вы закончили установку Snort на сервере Pfsense.
2020-02-20T18:40:16-03:00
Заключение
С моей точки зрения, NIDS необходима на предприятии. Мне встречались крупные компании, которые не утруждали себя установкой подобного звена защиты. На вопрос: «Как вы хакера обнаружите?» — я получал невнятные ответы вроде «Мне DLP скажет…».
Snort всего лишь система обнаружения сетевых атак. В связке с нерадивым администратором она просто бесполезна. Сразу после установки Snort запускается ненастроенной, с большим количеством включенных правил, что вызывает море ложных срабатываний. Да и установка (если по уму делать) не из самых простых. Дорабатывать ее надо конкретно под свои задачи.
Зато после всех донастроек и написания своих правил она становится довольно мощным инструментом.