25 апреля, 2024

Основы системы обнаружения вторжений Snort. Часть 3 — Запись предупреждений о вторжениях в MySQL

Содержание:

С возвращением, мои хакеры!

Если вы следили за новой серией статей по Snort, то уже знаете, что Snort — это самая широко используемая в мире система обнаружения/защита от вторжений. В настоящее время она является частью крупнейшей в мире компании-производителя сетевого оборудования Cisco, поэтому присутствие Snort можно найти везде в той или иной форме. Это убедительный аргумент в пользу того, что нужно учиться ее использовать, поскольку это, скорее всего, будет обязательным требованием для любой позиции, связанной с безопасностью.

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

У Snort есть множество возможностей и настроек, но нам нужна IDS, которую можно использовать защищенным, профессиональным способом, для получения предупреждений о вторжениях. Для этого нам нужно отправлять наши оповещения в базу данных, где мы сможем их проанализировать. Мы настроим диспетчер очереди печати (spooler), специально предназначенный для работы со Snort, который называется Barnyard2, а затем будем использовать его для отправки данных в базу данных MySQL.

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

Почему Barnyard2?

Преобразование бинарных данных в удобочитаемую форму (бинарные-в-ASCII) — задача, отнимающая очень много процессорного времени в любом приложении. Это особенно справедливо для Snort, и поскольку мы хотим выделять на захват и анализ пакетов как можно больше ресурсов нашего компьютера, то значит, нам нужно убрать как можно больше задач, потребляющих большое количество процессорного времени. Для этого и предназначен Barnyard2.

Читать также:  Обзор шпионской программы «Mobistealth»

В продакшене мы хотим отправлять данные о событиях из Snort в базу данных. Snort способен использовать любую ODBC базу данных, такую как Oracle, Microsoft SQL Server, PostgreSQL и MySQL. Здесь мы будем использовать MySQL, поскольку это самая распространенная опция для Snort. Если мы сможем отправить предупреждения в базу данных, то мы сможем делать запросы к базе данных другими инструментами так, чтобы иметь возможность анализировать эту информацию. Например, мы можем сделать запрос о том, какими правилами были вызваны предупреждения, какие IP-адреса делали атаки, какой уровень серьезности имели эти вторжения.

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

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

Шаг 1. Установите зависимости для Barnyard

Сначала нужно установить некоторые библиотеки и приложения, от которых зависит Barnyard2.

ubuntu> sudo apt-get install -y mysql-server libmysqlclient-dev mysql-client autoconf libtool

ubuntu> sudo apt-get install libpcap-dev libmysql-dev libprelude-dev

Шаг 2. Установите Git

Мы скачаем и установим последнюю версию Barnyard2 с GitHub. Если у вас еще нет git в вашей системе, то вам нужно будет установить его сейчас.

ubuntu> sudo apt-get update
 ubuntu> sudo apt-get install git

Шаг 3. Редактирование конфигурационного файла Snort

Чтобы направлять наши предупреждения в базу данных, нам нужно отредактировать файл snort.conf. Откройте его с помощью любого текстового редактора и перейдите в раздел вывода (раздел #6). Там мы скажем Snort использовать нашу базу данных MySQL (которую мы создадим позже в этой статье с указанием имени пользователя и пароля, которые вы выберете).

В этом примере мы выбрали простые названия для имени базы данных, пользователя и пароля — все snort. Конечно, вы замените их на собственные имена (см. Шаг 6 ниже).

Читать также:  Как набрать Æ, €, #, @, © и другие специальные символы на компьютерах Mac

Шаг 4. Скачайте Barnyard2

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

Давайте продолжим и скачаем Barnyard2 с GitHub.

ubuntu> git clone git://github.com/firnsy/barnyard2.git

Теперь проверим, скачался и установился ли он, выполнив следующую команду в этом каталоге

ubuntu> ls -l

Как вы можете видеть, он создал каталог с именем barnyard2. Перейдем в него и посмотрим на его содержимое.

ubuntu> cd barnyard2
 ubuntu> ls -l

Обратите внимание на первый файл с именем autogen.sh. Давайте выполним этот скрипт

ubuntu> ./autogen.sh

Затем введите в консоли следующую строку

ubuntu> CFLAGS = '-lpthread'

Затем запустите соответствующую команду configure для вашей системы.

Если вы используете 64-битную архитектуру (мы надеемся на это), то команда configure будет выглядеть следующим образом:

ubuntu> ./configure --with-mysql-libraries=/usr/lib/x86_64-linux-gnu --prefix=$HOME/barnyard2-install

Если вы используете 32-битную архитектуру, то команда configure немного изменится на такую:

ubuntu > ./configure --with-mysql-libraries=/usr/lib/i386-linux-gnu --prefix=$HOME/barnyard2-install

Есть еще одна библиотека, которая нужна Ubuntu для запуска Barnyard2, она называется libdumbnet-dev. Давайте возьмем ее из репозиториев.

sudo apt-get install libdumbnet-dev

Поскольку скрипт make для Barnyard2 ожидает, что у нас есть файл зависимости с именем dnet.h, нам нужно создать символическую ссылку на dumbnet.h, которую мы назовем dnet.h (с момента написания скрипта имена файлов были изменены).

ubuntu> ln -s /usr/include/dumbnet.h /usr/include/dnet.h

Затем обновите библиотеки.

ubuntu> sudo ldconfig

Теперь мы можем выполнить команду make для Barnyard2.

ubuntu> make

Наконец, нам нужно выполнить команды make и install.

ubuntu> sudo make install

Шаг 5. Конфигурирование Barnyard2

Нам нужно сделать базовую конфигурацию Barnyard2, чтобы убедиться, что он работает правильно. Сначала скопируем файл конфигурации Barnyard2 в директорию /etc/snort

ubuntu > sudo cp /snort_source /etc/barnyard2.conf /etc/snort

Теперь создадим файл, который будет нужен Barnyard2 в каталоге /var/log. Это файл закладок

ubuntu > touch /var/log/snort/barnyard2.waldo

Шаг 6. Установка MySQL

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

  • создать базу данных
  • создать схему базы данных для предупреждений
  • создать пользователя
  • предоставить пользователю соответствующие права
Читать также:  Как использовать SQL-инъекции для выполнения команд ОС и для получения шелла

Начнем с входа в систему базы данных MySQL

ubuntu> sudo mysql -u root -p

При запросе пароля введите snort.

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

mysql > create database snort;

(Обратите внимание, что snort здесь просто имя базы данных, в которой мы будем хранить полученные предупреждения. Ее можно назвать как угодно, но давайте назовем ее так, чтобы было просто запомнить).

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

mysql > use snort;

Barnyard2 поставляется вместе со скриптом для создания схемы базы данных для Snort. Он находится в /snort_source/barnyard2/schemas/create_mysql. Мы можем запустить этот скрипт, набрав:

mysql > /snort_source/barnyard2/schemas/create_mysql

Затем нам нужно создать в MySQL пользователя базы данных snort.

mysql > CREATE USER 'snort'@'localhost' IDENTIFIED BY 'snort';

Эта команда создает пользователя snort на сервере localhost, который использует пароль snort. Имя пользователя и пароль могут отличаться, но они должны соответствовать тому, что вы ввели в файле snort.conf на шаге 3 (выше).

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

mysql > grant create, insert, select, delete, update on snort.* to 'snort'@'localhost';

Это дает пользователю snort права на создание (create) объектов, вставку (insert) данных, выбор (select) данных, удаление (delete) данных и обновление (update) данных в базе данных snort на локальном сервере (localhost).

Ну, вот и все! Мы настроили Snort на отправку его предупреждений в файл, который Barnyard2 возьмет и преобразует в удобочитаемую форму, а затем запишет в нашу базу данных Snort в MySQL.

В следующих статьях этой серии мы будем отправлять предупреждения в базу данных и затем анализировать их, так что обязательно возвращайтесь!

Предыдущие статьи
( 1 , 2 ).

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