Система обнаружения вторжений 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
2
3
4
5
6
7
8
9
10

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
2
3
4
5

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
2
3
4
5
6
7

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
2

`#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.

Вносим несколько правок в этот же конфигурационный файл вручную:

  1. Строка 45: указываем нашу сеть.
  2. Строка 104: меняем на .
  3. Строка 105: меняем на .
  4. Строка 106: меняем на .
  5. Строка 113: меняем на .
  6. Строка 114: меняем на .
  7. Строка 546: необходимо раскомментировать для возможности использовать свои правила.
  8. Строка 521: ниже нее необходимо добавить строку .
  9. Строка 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 запускается ненастроенной, с большим количеством включенных правил, что вызывает море ложных срабатываний. Да и установка (если по уму делать) не из самых простых. Дорабатывать ее надо конкретно под свои задачи.

Зато после всех донастроек и написания своих правил она становится довольно мощным инструментом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *