Snort: часть 2. установка snort

Установка Barnyard2

Barnyard2 является интерпретатором с открытым исходным кодом для двоичных файлов unified2, создаваемых Snort. Основная задача Barnyard2 — это позволить Snort писать выходные файлы на диск эффективным способом, оставляя задачу парсинга двоичных данных в различные форматы другому процессу, что с большей вероятностью не позволит Snort пропустить сетевой трафик.

Установка пререквизитов

Сперва установим необходимые пререквизиты для Barnyard2:

Во время установки MySQL будет предложено ввести пароль для root-пользователя. Для примера вводим MYSQLROOTPASSWORD.

Сборка и установка Barnyard2

Далее установим и сконфигурируем Barnyard2. Для этого скачаем исходный код Barnyard2 и сконфигурируем его:

Для Barnyard2 необходима библиотека , которую мы установили ранее вместе с пакетом . Однако Barnyard2 ожидает другое имя для библиотеки, поэтому нам нужно создать символьную ссылку на библиотеку

В зависимости от архитектуры системы (32 или 64 разрядная) нужно выбрать одну из следующих команд для конфигурации Barnyard2, указав путь к библиотеке MySQL. Разрядность ОС можно узнать, например, с помощью команды или . Вывод соответствует 64-разрядной система, а или — 32-х.

  • Для 64-разрядной:

  • Для 32-разрядной:

После чего продолжить установку:

Barnyard2, по идее, установлен по следующему пути . И теперь можно проверить, так ли это на самом деле с помощью команды:

Должен быть примерно следующий вывод на терминал:

Конфигурирование Snort для работы с Barnyard2

Открываем конфигурационный файл (например, ) и добавляем строку с настройками, в которой указываем Snort писать выходные события в двоичный файл, так что Barnyard2 сможет читать их. Для этого вместо строки или сразу после неё:

вставляем следующую строку:

Данная строка указывает Snort писать данные в двоичный формат unified2, что для Snort гораздо быстрее, чем писать в человекочитаемый формат.

Для того чтобы сконфигурировать Snort для использования Barnyard2 нам необходимо скопировать некоторые файлы из каталога с исходным кодом:

Конфигурация БД MySQL

Так как Barnyard2 сохраняет предупреждения в БД MySQL, нам необходимо создать эту БД и пользователя snort для доступа к БД. Подключаемся к БД MySQL:

Вводим пароль MYSQLROOTPASSWORD и выполняем на сервере MySQL следующие команды для создания БД и MySQL пользователя:

MYSQLSNORTPASSWORD — пароль для пользователя snort. После sql-команды мы должны были получить следующий вывод:

После того как БД Snort была создана необходимо сообщить Barnyard2 о её деталях, для этого открываем конфигурационный файл Barnyard2 (например, ). И добавляем строку с настройками в конце файла в раздел :

Так как пароль хранится в открытом виде в , то следует запретить другим пользователям читать данный файл:

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

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

Поскольку файлы скачиваются в заархивированном виде, то используем команду «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 командой:

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

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

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

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

На экране отобразится список:

-* Snort! *-Version 1.7By Martin Roesch (roesch@clark.net, www.snort.org)USAGE: snort  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  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.

Подборка для вас

Комментарии (0)

Бизнес и финансы

БанкиБогатство и благосостояниеКоррупция(Преступность)МаркетингМенеджментИнвестицииЦенные бумагиУправлениеОткрытые акционерные обществаПроектыДокументыЦенные бумаги — контрольЦенные бумаги — оценкиОблигацииДолгиВалютаНедвижимость(Аренда)ПрофессииРаботаТорговляУслугиФинансыСтрахованиеБюджетФинансовые услугиКредитыКомпанииГосударственные предприятияЭкономикаМакроэкономикаМикроэкономикаНалогиАудитМеталлургияНефтьСельское хозяйствоЭнергетикаАрхитектураИнтерьерПолы и перекрытияПроцесс строительстваСтроительные материалыТеплоизоляцияЭкстерьерОрганизация и управление производством

Архитектура Snort

Основу Snort составляет движок, состоящий из пяти модулей:

  • Снифер пакетов: данный модуль отвечает за захват передаваемых по сети данных для последующей их передаче на декодер. Делает он это с помощью библиотеки DAQ (Data AcQuisition). Работать данный снифер может “в разрыв” (inline), в пассивном режиме (passive) или читать сетевые данные из заранее подготовленного файла.

  • Декодер пакетов: данный модуль занимается разбором заголовков захваченных пакетов, их разбором, поиском аномалий и отклонений от RFC, анализом TCP-флагов, исключением отдельных протоколов из дальнейшего анализа и другой аналогичной работой. Фокусируется данный декодер на стеке TCP/IP.

  • Препроцессоры: если декодер разбирал трафик на 2-м и 3-м уровне эталонной модели, то препроцессоры предназначены для более детального анализа и нормализации протоколов на 3-м, 4-м и 7-м уровнях. Среди самых популярных препроцессоров можно назвать frag3 (работа с фрагментированным трафиком), stream5 (реконструкция TCP-потоков), http_inspect_ (нормализация HTTP-трафика), DCE/RPC2, sfPortscan (применяется для обнаружения сканирования портов) и различные декодеры для протоколов Telnet, FTP, SMTP, SIP, SSL, SSH, IMAP и т.п. Некоторые российские разработчики пишут свои препроцессоры (например, для промышленных протоколов) и добавляют в собственные системы обнаружения вторжений (IDS), построенные на базе Snort.

  • Движок обнаружения атак: данный движок состоит из двух частей. Конструктор правил собирает множество различных решающих правил (сигнатур атак) в единый набор, оптимизированный для последующего применения подсистемой инспекции захваченного и обработанного трафика в поисках тех или иных нарушений.

  • Модуль вывода: по факту обнаружения атаки Snort может выдать (записать или отобразить) соответствующее сообщение в различных форматах — файл, syslog, ASCII, PCAP, Unified2 (двоичный формат для ускоренной и облегченный обработки).

Рассмотрим простое графическое представление прохождения данных через Snort:

Режим журналирования пакетов

Режим журналирования пакетов позволяет записывать поток информации на диск. Это полезно при проведении анализа за определенный интервал времени или проверки изменений в настройках и политике безопасности.Необходимо создать и указать каталог для логов, а Snort автоматически перейдет в режим журналирования пакетов.

Пример: создаем каталог logs и запускаем:

snort — dev — l../log

В результате операции /куда, где его искать, как указать желательное место?/ запишется файл snort. log.. Цифры в конце новых имен файлов являются временными метками, что позволяет избегать конфликтов при создании файлов. /желателен пример лог-файла/

General Setup and Notes

  • A Snort setup that sniffs WAN <-> LAN is more difficult to use. It does not show you which computer triggered the alert, and it requires you to set HOME_NET as your WAN IP address, which can change if your modem uses DHCP.
  • Snort will bridge the two interfaces for you, you will not need to configure this.

You can use Snort to sniff wireless traffic with two routers. For simplicity the router with DHCP on and wireless off will be called «router A» and the router with wireless on and DHCP off «router B».

  • Ensure the routers do not have the same IP address, but are on the same subnet.
  • If the machine running Snort is configured for inline mode, you will need 3 network interface cards. One for management, one for incoming traffic, and one for outgoing traffic.
  • Connect a ethernet cord from router B to a spare NIC on the Snort machine.
  • Connect another ethernet cord from router A to a spare NIC on the Snort machine.
  • Once Snort is running traffic should flow from router B <-> Snort machine <-> router A <-> internet.
  • If you are not using inline mode, then the traffic will need to be forwarded to the Snort machine, see: Port Mirroring

Возможности

Данная IPS выявляет следующее:

  • Плохой трафик
  • Использование эксплоитов (выявление Shellcode)
  • Сканирование системы (порты, ОС, пользователи и т.д.)
  • Атаки на такие службы как Telnet, FTP, DNS, и т.д.
  • Атаки DoS/DDoS
  • Атаки связанные с Web серверами (cgi, php, frontpage, iss и т.д.)
  • Атаки на базы данных SQL, Oracle и т.д.
  • Атаки по протоколам SNMP, NetBios, ICMP
  • Атаки на SMTP, IMAP, pop2, pop3
  • Различные Backdoors
  • Web-фильтры (порнография)
  • Вирусы

Помимо всего прочего Snort имеет:

  • Возможность написания собственных правил
  • Расширение функциональности, используя возможность подключения модулей
  • Гибкую систему оповещения об атаках (Log файлы, устройства вывода, БД и.д.)

Snort поддерживает следующие интерфейсы для прослушивания:

  • Ethernet
  • SLIP
  • PPP

IPS Snort может работать на многих операционных системах: Linux, Windows, IRIX, SunOS, *BSD и др.
Также сушествует отличное расширение функциональности для Snort под названием inline, которое позволяет связать firewall с действиями правил. К примеру, можно передать firewall’у IP адрес того хоста, с которого пришел подозрительный пакет и дать команду игнорировать весь трафик с этого IP. Часто это применяется при DDoS атаках. В свою очередь Snort получает пакеты не от библиотеки libpcap, а от iptables. Но существует и обратная сторона. Рассмотрим ситуацию, когда злоумышленник поймет, как происходит блокирование и сможет воспользоваться этим, подделывая пакеты и присылая их с важных серверов, вызывая тем самым состояние DDoS. Поэтому специалисты по безопасности крайне не рекомендуют реализовывать данную возможность или же использовать ее только в исключительных случаях.

Установка и первичная настройка Snort для ОС Debian

Установка необходимых пререквизитов для Snort

В данной статье разберём подробно установку из исходных кодов и первичную настройку Snort в ОС Debian.

Для начала устанавливаем обновления для ОС:

  • apt-get update — обновление индекса пакетов
  • apt-get upgrade — обновление пакетов

Устанавливаем обязательные пререквизиты для Snort:

  • build-essential — предоставляет инструменты, необходимых для сборки пакетов Debian;
  • libpcap-dev — библиотека для захвата сетевого трафика, необходима для Snort;
  • libpcre3-dev — библиотека функций для поддержки регулярных выражений, необходима для Snort;
  • libdumbnet-dev — библиотека, ещё известная как libdnet-dev, предоставляющая упрощённый, портативный интерфейс для различных низкоуровневых (interface to several low-level networking routines);
  • zlib1g-dev — библиотека, реализующая метод сжатия deflate, необходима для Snort.

Устанавливаем необходимые для DAQ парсеры:

  • bison — генератор анализаторов синтаксиса (parser) выражений;
  • flex — инструмент для генерации программ, распознающих заданные образцы в тексте.

Устанавливаем дополнительные (рекомендуемые) программы:

Для сборки документации (не является обязательным) понадобиться установить следующие пакеты:

Для поддержки HTTP/2 траффика необходимо установить библиотеку Nghttp2: HTTP/2 C библиотека, которая реализует алгоритм сжатия заголовков HPAC.

Устанавливаем её из исходного кода:

Сборка DAQ и Snort из исходного кода

Создадим каталог snort_src, куда сохраним загружаемые архивы с программами: Snort использует библиотеку Data Acquisition library (DAQ), которую можно скачать с официального сайта Snort. Скачиваем архив с исходным кодом, создаём бинарный пакет с помощью checkinstall и устанавливаем его:

Обновляем пути для разделяемых библиотек:

Далее устанавливаем Snort из исходного кода:

В случае каких-либо ошибок во время сборки необходимо их устранить прежде чем двигаться дальше.

И создаём символьную ссылку

Следует проверить, правильно ли установился Snort. Для этого достаточно запустить команду . Если вывод команды будет примерно следующий (номер версии может отличаться), то это будет означать, что Snort успешно установлен:

Также с помощью команды можно посмотреть список доступным DAQ-модулей.

Устранение возможных ошибок

Во время выполнения команды checkinstall могут возникнуть ошибки вида:

, которые можно исправить, одним из следующих способов:

  • Установкой и удалением программы при помощи make:

  • Добавлением вручную каталогов, необходимых для сборки и установки пакета, которые не может создать checkinstall самостоятельно:

    После чего вновь собираем и устанавливаем Snort:

Конфигурация сетевого интерфейса, рекомендуемая для Snort

Согласно рекомендациям из руководства Snort следует убедиться, что сетевая карта не обрезает слишком большие пакеты (в сетях Ethernet длина которых превышает 1518 байт). Для этого произведём оптимизацию сетевых интерфейсов с помощью утилиты ethtool. Если нужно, устанавливаем ethtool () и для настройки параметров выполняет в терминале следующие команды:

  • — освобождение ОС от расчёт контрольных суммы TCP/IP (rx-checksumming) для входящих пакетов;
  • — освобождение ОС от расчёт контрольных суммы TCP/IP (tx-checksumming) для исходящих пакетов;
  • — отключение функции (generic-segmentation-offload) фрагментации пакетов без участия CPU;
  • — отключение функции (generic-receive-offload) сборки пакетов сетевым интерфейсом без участия CPU;
  • — отключение функции (large-receive-offload) сборки пакетов сетевым интерфейсом без участия CPU.

Но в данном случае настройки будут оставаться в силе только до перезагрузки ОС, поэтому лучшим вариантом будет добавить команды настройки сетевого интерфейса одним из следующих способов:

  • Открываем файл /etc/network/interfaces () с настройками конфигурации сети Ethernet и добавляем в конец файла следующие команды для сетевого интерфейса eth0, который Snort будет слушать:

  • Либо открываем файл /etc/rc.local () с автозагрузками и добавляем следующие строчки до “exit 0”:

Текущие значения параметров можно посмотреть с помощью команды . Если параметр обозначен как , то это означает, что значение параметра нельзя изменить с помощью ethtool. Часто многие параметры обозначены , когда ОС запушена в виртуальной машине (например, VMWare или VirtualBox) и гостевая ОС не в состоянии изменить параметры хостовой ОС.

Конфигурация ниже не рабочая:

Структура и функционирование Snort

Систему обнаружения вторжений Snort по способу мониторинга системы можно отнести как к узловой, так и к сетевой системе в зависимости от параметров настройки. Обычно она защищает определённый сегмент локальной сети от внешних атак из интернета. Система Snort выполняет протоколирование, анализ, поиск по содержимому, а также широко используется для активного блокирования или пассивного обнаружения целого ряда нападений и зондирований. Snort способен выявлять:

  • Плохой трафик
  • Использование эксплойтов (выявление Shellcode)
  • Сканирование системы (порты, ОС, пользователи и т.д.)
  • Атаки на такие службы как Telnet, FTP, DNS, и т.д.
  • Атаки DoS/DDoS
  • Атаки связанные с Web серверами (cgi, php, frontpage, iss и т.д.)
  • Атаки на базы данных SQL, Oracle и т.д.
  • Атаки по протоколам SNMP, NetBios, ICMP
  • Атаки на SMTP, imap, pop2, pop3
  • Различные Backdoors
  • Web-фильтры (чаще используетя для блокировки порно контента)
  • Вирусы

Вы можете настроить Snort для работы в нескольких различных режимах — режим анализа пакетов, режим журналирования пакетов, режим обнаружения сетевых вторжений и встраиваемым (inline) режим. Snort может быть сконфигурирован для работы в этих режимах:

Режиме анализа пакетов (Sniffer mode)

Snort просто читает пакеты приходящие из сети и выводит их на экран. В этом режиме Snort действует просто как анализатор, показывая нефильтрованное содержимое среды передачи. Конечно, если вам требуется только анализатор, можно применить Tcpdump или Ethereal, однако данный режим позволяет убедиться, что все работает правильно и Snort видит пакеты.

Опции Snort:

Опция Описание
-v Выводит на экран IP и TCP/UDP/ICMP заголовки пакетов. (verbose mode) Пример вывода Snort, запущенного с ключом , на команду :
-d Отображает данные прикладного уровня, используется в подробном режиме вывода (опция -v) или в режиме журналирования пакетов. Пример вывода Snort, запущенного с ключами , на команду :
-e Включает вывод заголовков канального уровня. Пример вывода Snort, запущенного с ключами , на команду :

Режиме журналирования (протоколирования) пакетов (Packet Logger mode)

Позволяет записывать пакеты на диск для последующего анализа. Это полезно при проведении анализа за определенный интервал времени или проверки изменений в настройках и политике безопасности.
Чтобы запустить Snort в режиме журналирования, воспользуйтесь той же командой, что и для режима анализа ( -v, -d и/или -e ), но с добавлением ключа -l каталог_журналов, задающего маршрутное имя каталога журналов, в которые Snort будет записывать пакеты. Пример:

Эта команда создаст файлы журналов в каталоге /var/log/snort.

Режиме обнаружения сетевых вторжений (Network Intrusion Detection System (NIDS) mode)

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

Встраиваемым режим (inline mode)

Режим работы совместно с файерволом iptables.
Для того, чтобы запустить в этом режиме, необходимо добавить дополнительный ключ Q:

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

Базовая конфигурация

По соображениям безопасности, чтобы не запускать Snort из-под суперпользователя, создадим непривилегированного системного пользователя и группу:

Далее создаём ряд файлов и каталогов, необходимых для работы Snort, и устанавливаем права доступа для этих файлов:

После чего копируем следующие конфигурационные файлы из извлечённого архива Snort в каталог /etc/snort:

  • classification.config описывает типы категории атак, которые предустановленны в Snort.
  • file_magic.conf описываем файловые сигнатуры («магические числа») для определения типа файла.
  • reference.config содержит ссылки на системы идентификации атак.
  • snort.conf конфигурационный файл Snort, в котором хранятся переменные с настройками и путями к различными ресурсам.
  • threshold.conf позволяет настроить количество событий, необходимых для генерации оповещений (алертов), что может быть полезно в случае «шумных» правил.
  • attribute_table.dtd позволяет Snort использовать внешнюю информацию для определения протоколов и политик.
  • gen-msg.map указывает Snort какой препроцессор используется каким правилом.
  • unicode.map предоставляет соответствие между кодировками.

Для этого выполняем следующие команды:

Структура каталогов и файлов Snort должна выглядеть следующим образом, для её вывода на экран следует выполнить команду (если утилита tree не установлена, то её можно установить следующим образом ):

Update the rules: Oinkmaster

AUR is available as AUR package.

Oinkmaster setup

Edit and look for the URL section and uncomment the 2.4 line. Make sure to replace <oinkcode> by the Oink code you generated after logging into your Snort account. For Bleeding Snort rules, uncomment the appropriate line.

When you log into your new account, create an «Oink code».
Another thing to change is

use_external_bins=1 # 1 uses wget, tar, gzip instead of Perl modules

The rest of the configuration file is fine.

Oinkmaster usage

oinkmaster.pl -o /etc/snort/rules

Create an executable script with the exact command and place it in /etc/cron.daily to update the rules daily automatically.

Установка, настройка, запуск сервиса

Debian/Ubuntu

root@server:~# apt install snort

root@server:~# cat /etc/snort/snort.debian.conf
...
DEBIAN_SNORT_INTERFACE="eth2"
DEBIAN_SNORT_HOME_NET="192.168.0.0/16"
#DEBIAN_SNORT_HOME_NET="any"
...
root@server:~# cat /etc/snort/snort.conf
...
####################################################################
# Step #6: Configure output plugins
...
output alert_syslog: LOG_AUTH LOG_ALERT
...
root@server:~# snort -T -S HOME_NET=[192.168.0.0/16] -c /etc/snort/snort.conf

root@server:~# service snort stop

root@server:~# snort -A console -i eth2 -S HOME_NET=[192.168.0.0/16] -c /etc/snort/snort.conf

root@server:~# service snort start

Построение отчета о работе snort

snortsnarf (FreeBSD)

 # pkg_add -r snortsnarf
 # cat /usr/local/etc/scripts/snortsnarf.sh
#!/bin/sh

D=`date -v-1d '+%Y.%m.%d'`

/usr/local/etc/rc.d/snort stop
/bin/mv /var/log/snort/alert /var/log/snort/alert.
/usr/local/etc/rc.d/snort start

for i in /var/log/snort/alert.*
do
  cat ${i} >> /var/log/snort/alert${D}
  rm ${i}
done
/usr/local/bin/snortsnarf -d /usr/local/www/apache22/data/snortsnarf/${D}/ -minprio=1 /var/log/snort/alert${D} 

rm /var/log/snort/alert${D}

/usr/bin/find /usr/local/www/apache22/data/snortsnarf/ -mtime +60 -type d -exec rm -r {} \;

Метод 2. Установка Snort из исходников

Установка Snort из исходников — задача более сложная и трудоемкая, но преимущество этого способа заключается в том, что Snort будет скомпилирован специально для вашей конкретной конфигурации оборудования и программного обеспечения.

Это обеспечит вам лучшую общую производительность. Как и при работе с любой IDS, производительность имеет решающее значение. Более низкая производительность IDS либо замедлит вашу общую способность работать с сетью, либо приведет к появлению drop-пакетов. В первом случае у вас будут недовольны клиенты или пользователи, а во втором вы подвергаете риску безопасность сети.

При использовании Snort в защищенной среде на продакшене установка из исходников является крайне предпочтительной. Кроме того, установка из исходников гарантирует, что вы устанавливаете последнюю версию Snort. Многие из репозиториев содержат более старые версии. Текущая версия Snort — 2.9.8, а в репозиториях — 2.9.2. Небольшая разница, но когда мы пытаемся защитить «сокровище», то каждая деталь будет полезной.

Начнем с создания директории в Kali, куда загрузим исходный код.

kali> mkdir snort_source

Затем перейдем в эту директорию

kali> cd snort_source

Прежде чем скачать Snort, необходимо установить Data Acquisition library (библиотеку сбора данных) или DAQ. У DAQ есть несколько зависимостей, которые нам необходимо установить.

kali> apt-get install -y bison flex

Теперь мы можем скачать и установить DAQ с сайта Snort.

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

Затем перейдем в каталог daq.

kali> cd daq-2.0.6

Наконец, сконфигурируем DAQ и вызовем команду make.

kali> ./configure
kali> make
kali> install

Чтобы скачать исходный код Snort непосредственно с сайта Cisco/Snort, мы можем использовать команду wget следующим образом (ссылки на новую версию можно найти здесь https://www.snort.org/).

kali> wget  "https://snort.org/snort/snort-2.9.8.0.tar.gz"https://snort.org/snort/snort-2.9.8.0.tar.gz

После того, как он скачается, нужно будет его распаковать. (Для получения дополнительной информации о команде tar, можно ознакомиться с нашей статьей по Основам Linux).

kali> tar -xvzf snort-2.9.8.0.tar.gz

Перейдем в ту директорию, где находятся новые файлы Snort.

kali> cd /snort-2.9.8.0

Нужно сконфигурировать его.

kali> ./configure --enable-sourcefire

После этого нам нужно использовать команду make, которая определяет, какие из компонентов исходного кода должны быть перекомпилированы, а затем дает команду это сделать.

kali> make

И, наконец, мы делаем установку (make install). Эта команда берет перекомпилированные компоненты программы и размещает их в соответствующих директориях.

kali> make install

Поскольку мы в процессе установки установили новые файлы библиотеки, нам нужно обновить общие библиотеки. Для этого введем в консоли следующую команду:

kali> ldconfig

Чтобы запускать Snort из любого каталога, можно сделать символическую ссылку на бинарные (исполняемые) файлы в /usr/local/bin/snort и поместить ее в директорию /usr/sbin, назвав snort. Поскольку /usr/sbin находится в нашей переменной PATH, мы можем ввести Snort в любом месте операционной системы, чтобы начать использовать IDS.

kali > ln -s /usr/local/bin/snort /usr/sbin/snort

Давайте проверим, нормально ли установился Snort. Для этого наберем в консоли:

kali> snort

Как мы видим, Snort запустился и успешно работает в режиме дампа пакетов или так называемом режиме сниффера.

Теперь, когда мы успешно установили Snort, продолжим его настройку для обнаружения вредоносного программного обеспечения. Это будет в нашей следующей статье этой серии, так что обязательно возвращайтесь!

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

Остался всего один небольшой шаг — установить графический визуализатор, дабы лицезреть обстановку сети в человеческом виде. Приступаем.

1
2
3
4

sudo add-apt-repository ppaondrej/php

sudo apt-get update

sudo apt-get install-yapache2 libapache2-mod-php5.6php5.6-mysql php5.6-cli php5.6php5.6-common php5.6-gd php5.6-cli php-pear php5.6-xml

sudo pear install-f—alldeps Image_Graph

Загружаем библиотеку ADODB:

1
2
3
4
5

cd~/snort

wget https//sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-520-for-php5/adodb-5.20.8.tar.gz

tar-xvzf adodb-5.20.8.tar.gz

sudo mv adodb5/var/adodb

sudo chmod-R755/var/adodb

Загружаем BASE:

1
2
3
4

cd~/snort

wget http//sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz

tar xzvf base-1.4.5.tar.gz

sudo mv base-1.4.5/var/www/html/base/

Копируем конфигурационный файл:

1
2

cd/var/www/html/base

sudo cp base_conf.php.dist base_conf.php

И приводим некоторые строки в файле к образцам:

1
2
3
4
5
6
7

$BASE_urlpath=’/base’;

$DBlib_path=’/var/adodb/’;

$alert_dbname=’snort’;

$alert_host=’localhost’;

$alert_port=»;

$alert_user=’snort’;

$alert_password=’snortpass’;

Естественно, необходимо изменить права, чтобы никто не увидел пароль в файле:

1
2

sudo chown-Rwww-datawww-data/var/www/html/base

sudo chown-Rwww-datawww-data/var/www/html/base

Перезапускаем Apache. Открываем браузер и идем по адресу (айпишник указывай свой) . Нажимаем кнопку Create BASE AG в правом верхнем углу. В случае успеха будут созданы базовые таблицы, роли и все, что необходимо для дальнейшей работы.

Заключение

Snort не умеет работать с SSL трафиком в нативном режиме. Для контроля SSL-соединений можно использовать дополнение к Snort в виде viewssld.

OSSEC достаточно гибкий инструмент, позволяющий обрабатывать события из различных источников и различного содержания, а также реализовать гибкую политику парсинга событий. К OSSEC-серверу можно подключать как управляемые агенты, так и agentless-устройства, такие как коммутаторы и прочие сетевые устройства, не поддерживающие OSSEC-агенты. Кроме этого, сервер OSSEC можно использовать для удаленного хранения log-файлов. Помимо анализа и обработки событий, OSSEC умеет работать в режиме IPS (используя «active response»): блокировать доступ или же выполнять иные действия.

Prelude SIEM позволяет организовать прием, обработку и мониторинг событий с удобным веб-интерфейсом. В случае необходимости можно подключать дополнительные модули, такие как Prelude-LML, позволяющих обрабатывать расширенные журналы событий.

Существует множество бесплатных решений, способных обеспечить безопасность корпоративных сетей и систем, однако основной проблемой, на мой взгляд, является правильность обработки событий — минимизировать поток обрабатываемой информации, при этом не упустив важные события.

Заключение

С моей точки зрения, NIDS необходима на предприятии. Мне встречались крупные компании, которые не утруждали себя установкой подобного звена защиты. На вопрос: «Как вы хакера обнаружите?» — я получал невнятные ответы вроде «Мне DLP скажет…».

Snort всего лишь система обнаружения сетевых атак. В связке с нерадивым администратором она просто бесполезна. Сразу после установки Snort запускается ненастроенной, с большим количеством включенных правил, что вызывает море ложных срабатываний. Да и установка (если по уму делать) не из самых простых. Дорабатывать ее надо конкретно под свои задачи.

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

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий