ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопасность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

10 минут чтени€

Snort - утилита дл€ обнаружени€ вторжений в сети (IDS - Intrusion Detection System). ќна совместима с ќ— Windows и Linux. ¬се вы€вленные угрозы (список параметров подачи тревоги имеет тонкие настройки), записываютс€ в лог-файл. Snort работает по принципу анализа пакетов транспортного уровн€, поэтому дл€ его использовани€, требуетс€ перевод сетевой карты в специальный мониторный режим. –азработчики учитывали проблему потреблени€ системных ресурсов системами класса IDS, поэтому Snort нетребовательна к железу и работает в фоновом режиме.

’рюн - логотип Snort

Snort не имеет графической оболочки (GUI), в св€зи с чем люба€ работа с программой возможна только посредством командной строки. Ќичего сложного здесь нет, и в этой статье мы подробно рассмотрим процесс установки и настройки Snort на Windows и на Linux. Ќа различных дистрибутивах она устанавливаетс€ примерно одинаково за небольшой разницей в указании путей папок в командах и других мелочах.


ѕошагова€ инструкци€ дл€ Windows

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

Ќажимаем Get Started.

Ќачало процесса установки Snort

ќткрываетс€ окно с текстовыми командами, там выбираем в верхних вкладках нашу операционную систему (в данном случае Windows) и загружаем файл загрузчика (Installer.exe).

«агрузка инсталлера дл€ нужной ќ—

”станавливаем его в режиме "прощелкивани€", то есть, ни снима€ никакие флажки, поставленные разработчиком по умолчанию.


”становка вспомогательных утилит

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

¬ завершающем окне Snort дл€ Windows попросит вас установить хорошо известную сетевым администраторам утилиту Winpcap. Ёто драйвер, который позволит вашей сетевой карте перейти в мониторный режим, то есть передавать и получать пакеты, обход€ стеки протоколов. ƒанна€ утилита тоже бесплатна€, поэтому ее скачиваем с сайта разработчика www.winpcap.org и также устанавливаем в режиме "прощелкивани€".

—качиваем WinPcap

¬тора€ вспомогательна€ утилита - специальный архиватор с высокой степенью сжати€, который нужен, чтобы распаковать файлы. —качиваем и устанавливаем архиватор 7-Zip с официального сайта 7-zip.org.

»так, установщик загружен и установлен, вспомогательные утилиты тоже поставлены. Ќо поскольку, графической оболочки нет, нам надо загрузить специальные правила, по которым Snort будет работать. ¬озвращаемс€ на официальный сайт Snort.org и нажимаем на кнопку "Rules" (правила). »з открывшегос€ списка берем файл, список правил (rules), соответствующий нашей версии (они рассортированы по верси€м Snort, а не по операционным системам). Ќа начало 2020 г. дл€ Windows актуальна верси€ 2.9.15.1, которую мы инсталлируем и настроим в качестве примера.

¬ерсии Snort

ƒл€ Linux есть и более нова€ верси€ Snort 3.0.

—качанный файл правил (называетс€ community-rules.tar.gz) находим в папке и открываем с помощью только что установленного архиватора 7-zip. »нтерфейс этого архиватора очень похож на WinRar или WinZip.

¬се файлы разархивируем, копируем и переносим в папку Snort, которую создал наш установщик. ¬ дальнейшем, это значительно упростит указание путей.

“еперь находим и открываем файл snort.conf (параметры конфигурации дл€ запуска приложени€) в NotePad++ или другом текстовом редакторе.

√де-то на 103 строчке (она может немного отличатьс€ по мере того, как разработчик вносит изменени€ в обновлени€) находим, установленную разработчиком по умолчанию строчку, указатель пути: c:\snort\rules. ќна совпадает с расположением файла на нашей машине. ≈сли у вас путь другой, то припишите именно его. “ам, где надо редактировать пути, разработчик ставит две точки.

“еперь нам надо указать путь дл€ папки Log-файлов, куда наш Snort будет записывать все логи, доступные дл€ просмотра и изучени€. –едактируем пути к лог-файлам.

¬ папке C:/snort уже есть папка log, дл€ этого предназначенна€, поэтому мы прописываем путь C:\snort\log.

Ќа строчке 182 прописываем в config logdir: c:\snort\log, причем перва€ часть config logdir уже есть и строку можно найти по ней. Ќезабываем удалить символ "#", который выбрасывает строки из исполн€емого файла, превраща€ их в комментарий. –езультат:

ѕример отредактированного конфига

ƒальнейшее редактирование файла конфигурации проводим по списку по ссылке. »щем по первой части строк и прописываем правильные пути. я просто заменил строки 242-249 на этот блок.

# path to dynamic preprocessor libraries
dynamicpreprocessor directory c:\Snort\lib\snort_dynamicpreprocessor
# path to base preprocessor engine
dynamicengine c:\Snort\lib\snort_dynamicengine\sf_engine.dll
# path to dynamic rules libraries
#dynamicdetection directory c:\Snort\lib\snort_dynamicrules

ѕродолжаем редактирование. “еперь комментируем, добавл€€ знаки комментари€ "#" к строкам 259-265. ¬ отредактированном варианте это выгл€дит так:

# Inline packet normalization. For more information, see README.normalize
Does nothing in IDS mode
#preprocessor normalize_ip4
#preprocessor normalize_tcp: block, rsv, pad, urp, req_urg, req_pay, req_urp, ips, ecn stream
#preprocessor normalize_icmp4
#preprocessor normalize_ip6
#preprocessor

»нструкци€:

1.–едактирум пути к правилам правил Snort

# such as: c:\snort\rules

var RULE_PATH c:\Snort\rules

var SO_RULE_PATH c:\Snort\so_rules

var PREPROC_RULE_PATH c:\Snort\preproc_rules

# If you are using reputation preprocessor set these

var WHITE_LIST_PATH c:\Snort\rules

var BLACK_LIST_PATH c:\Snort\rules

2.ѕрописываем путь к папке лог

config logdir: c:\Snort\log

3. –едактируем пути дл€ libraries

# path to dynamic preprocessor libraries

dynamicpreprocessor directory c:\Snort\lib\snort_dynamicpreprocessor

# path to base preprocessor engine

dynamicengine c:\Snort\lib\snort_dynamicengine\sf_engine.dll

# path to dynamic rules libraries

#dynamicdetection directory c:\Snort\lib\snort_dynamicrules

4.  омментируем

# Inline packet normalization. For more information, see README.normalize

# Does nothing in IDS mode

# preprocessor normalize_ip4

# preprocessor normalize_tcp: block, rsv, pad, urp, req_urg, req_pay, req_urp, ips, ecn stream

# preprocessor normalize_icmp4

# preprocessor normalize_ip6

# preprocessor normalize_icmp6

# Back Orifice detection.

# preprocessor bo

# Portscan detection. For more information, see README.sfportscan

preprocessor sfportscan: proto { all } memcap { 10000000 } sense_level { low }

whitelist $WHITE_LIST_PATH\white.list, \

blacklist $BLACK_LIST_PATH\black.list

5. »правл€ем пути правил

6.ќпредел€ем сетевую карту snort -W

7. “естируем конфиг snort -T -c c:\snort\etc\snort.conf -l c:\snort\log -i 2

  • ключ -T указывает, что нужно протестировать текущую конфигурацию Snort
  • ключ означает, что включен режим IDS
  • далее следует путь к конфигурационному файлу snort.conf
  • ключ -l включает режим записи на жесткий диск с указанием пути к файлу
  • ключ -A показывает что все предупрежлени€(alerts) будут дублтроватьс€ выводом на консоль
  • ключ -i указывает на пор€дковый номер(index) интересующего нас интерфейса

7. „тобы узнать поддерживаемые интерфейсы необходимо выполнить команду:

snort -W

8. ƒобавл€ем нужные вам правила

9. «апускаем –ежим IDS: snort -A console -c c:\snort\etc\snort.conf -l c:\snort\log -i 2


 раткое содержание данной инструкции:

  • исправление ошибок в файле конфигурации (в новых верси€х почти не требуетс€, см инструкцию на сайте разработчика);
  • указание пути правил (rules);
  • указание нужных правил из каталога;
  • добавление корректных данных сетевой карты;
  • указание Log-папки на жестком диске;

”казание правил идет на собственном простом €зыке. ¬ыучивать его не нужно, так как правила берутс€ из списка правил. «авершающий этап настройки - определение сетевой карты из командной строки. ѕосле этого Snort запуститс€ (из папки Bin файл с расширением .exe). ѕример запуска (выдаетс€ ошибка - не задан препроцессор):

ѕример ошибки при незаданном препроцесоре
  • ¬нимание, данна€ часть руководства не €вл€етс€ об€зательной дл€ повторени€. –азработчик уже выпустил несколько вариантов новых правил Snort, где исправлены многие ошибки. ¬ этом случае редактирование файла конфигурации исключает этап самосто€тельного их исправлени€.

Ќормально установленный и запущенный Snort (IDS консоль) на Windows выгл€дит вот так (открыт с помощью Internet Explorer, но дл€ примера указана очень стара€ верси€ 2004 года):

ќчень старый Snort

”становка Snort на Linux дистрибутивах

ѕоскольку, Snort изначально разрабатывалс€ на Linux его установка там значительно проще, так как он изначально предназначен дл€ этого семейства ќ—. ќткрываем терминал, и набираем первую команду, котора€ начнет загрузку файлов Snort с официального сервера:

wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz

wget https://www.snort.org/downloads/snort/snort-2.9.15.1.tar.gz

ѕоскольку файлы скачиваютс€ в заархивированном виде, то используем команду "tar", чтобы запустить встроенный архиватор и разархивировать только что скаченные файлы с его помощью.

tar xvzf daq-2.0.6.tar.gz
cd daq-2.0.6
./configure make sudo make install
tar xvzf snort-2.9.15.1.tar.gz
cd snort-2.9.15.1
./configure --enable-sourcefire make sudo make install

Ќа этом этапе все необходимые файлы скачаны, теперь можно приступить к настройке программы. Snort имеет тонкие настройки, позвол€ющие осуществл€ть мониторинг с минимальным потреблением сетевых ресурсов. Ќа практике это означает значительную экономию энергии и стоимости железа при круглосуточной работе.

ѕровер€ем, где установилс€ Snort командой:

whereis snort

ƒл€ управлени€ Snort используютс€ нетипичные символы в командах, но не стоит этого пугатьс€, так как самих команд немного. —ам Snort состоит из трех основных программных модулей.

  1. ƒешифратор сетевых пакетов: после перевода сетевой карты в мониторный режим из общего трафика, который имеет весьма значительный объем, необходимо выкачать "транспортные" данные, то есть сведени€ об адресах. »менно за счет этих данных легко обнаруживаютс€ вторжени€.
  2. —истема обнаружени€ вторжени€: на основе дешифрованных пакетов в соответствии с rules (правилами).
  3. Logger/Alerter: конвертирует информацию с дешифрованных транспортных пакетов в удобный вид, дл€ него указываетс€ папка дл€ хранени€ фалов регистрации :/var/log/Snort (логи сервера).

ћониторинг с помощью Snort

»так, на Windows или на Linux сначала открываем окно (через терминал, или exe файл из папки GUI). ¬ведем первую команду, чтобы получить справку, отобразить список всех основных команд (им€ компьютера, Someone, замените на ваше):

@someone 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

— помощью команд из этого списка программу можно перевести в один из трех режимов работы, рассмотренных ниже.


—ниффер пакетов

‘ункци€ аналогична€ многим известным снифферам, например WireShark. ѕакеты дешифруютс€ и вывод€тс€ на экран (заголовки пакетов). –ежим очень удобно использовать дл€ проверки правильности указани€ IP-адресов и всех настроек программы. ƒл€ запуска сниффера введите:

root @someone# ./snort -v

—ниффер с записью

Ќа экране отображаютс€ не только заголовки пакетов, но и происходит запись содержимого на диск. ƒл€ сетей со значительным трафиком такой режим использовать невозможно ввиду огромного объема данных. ѕакеты сохран€ютс€ на диске в ASCII формате. ѕуть папки дл€ записи прописываетс€ в команде.


–ежим обнаружени€ вторжени€

ќсновной режим работы Snort. ќн не потребл€ет много ресурсов, и запускаетс€ на машине в фоновом режиме дл€ посто€нного мониторинга. ƒл€ того чтобы Snort пон€л, что нужно регистрировать, ему предварительно указывают допустимые и недопустимые адреса. ƒополнительна€ информаци€ (на английском €зыке) представлена на официальном сайте www.snort.org.