Добро пожаловать обратно, мои хакеры-новички!
Если вы следили за этой новой серией статей о Snort, то знаете, что Snort — самая распространённая в мире система обнаружения и защиты от вторжений. Будучи частью Cisco, крупнейшего в мире производителя сетевого оборудования, она, вероятно, встречается повсюду в той или иной форме. Это весомый аргумент в пользу изучения её использования, поскольку она, вероятно, будет необходима на любой должности, связанной с безопасностью.
В предыдущих уроках этой серии мы установили и настроили Snort на нашей системе Kali. В этом уроке мы сделаем следующий шаг в создании профессиональной системы обнаружения вторжений промышленного уровня — будем получать уведомления о вторжениях, которые можно будет легко анализировать.
У Snort множество возможностей и настроек, но нам нужна система обнаружения вторжений, которую можно использовать безопасно и профессионально для оповещения о вторжениях. Для этого нам потребуется отправлять оповещения в базу данных, где мы сможем их анализировать. Мы настроим диспетчер очереди печати Barnyard2, специально разработанный для Snort, и будем использовать его для отправки данных в базу данных MySQL.
В предыдущих руководствах я использовал Kali в качестве базовой ОС. К сожалению, некоторые библиотеки, необходимые для запуска Barnyard2, некорректно работают в Kali. Поэтому последующие руководства этой серии будут основаны на Ubuntu. Всё, что вы делали до сих пор по настройке Snort, отлично работает в Ubuntu без каких-либо изменений. На самом деле, это гораздо более логично, поскольку вы вряд ли будете использовать атакующую систему, такую как Kali, в качестве сервера для Snort в рабочей среде.
Почему Barnyard2?
Преобразование двоичных данных в удобочитаемый вид (обычно из двоичных в ASCII) очень требовательно к ресурсам процессора для любого приложения. Это особенно актуально для Snort, и поскольку мы хотим выделить как можно больше ресурсов на перехват и анализ пакетов, мы хотели бы максимально снизить нагрузку на эти ресурсоёмкие задачи. Именно для этого и предназначен Barnyard2.
В рабочей среде мы хотим отправлять данные о событиях из Snort в базу данных. Snort может использовать любую базу данных ODBC, такую как Oracle, Microsoft SQL Server, PostgreSQL и MySQL. В данном случае мы будем использовать MySQL, поскольку это наиболее распространённая конфигурация Snort. Если мы можем отправлять оповещения в базу данных, то мы можем запросить эту информацию с помощью другого инструмента. Например, мы можем узнать, по каким правилам были сгенерированы оповещения, с каких IP-адресов были совершены атаки, каков был уровень серьёзности вторжений и т. д.
Здесь мы настроим Snort для обработки оповещений в двоичной форме (это самая простая и наименее ресурсоемкая для процессора форма), а затем воспользуемся Barnyard2 для чтения этих событий, преобразования в удобочитаемую форму и помещения их в базу данных MySQL.
Прежде чем мы продолжим, хочу отметить, что Snort будет работать и без Barnyard2, но это замедлит его работу и, возможно, не позволит обрабатывать и анализировать некоторые пакеты в загруженной среде, что может быть опасно.
Шаг 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 ниже).
Шаг 4: Загрузите Barnyard2
Barnyard2 — это диспетчер печати, который снижает нагрузку на демон Snort по записи оповещений в удобочитаемый формат. Вместо этого он позволяет Snort записывать эти оповещения в гораздо более эффективном двоичном формате, а затем Barnyard2 преобразует эти двоичные файлы в удобочитаемый формат. Затем он помещает их в базу данных MySQL для последующего анализа.
Давайте продолжим и скачаем Barnyard2 с GitHub.
ubuntu > git clone git://github.com/firnsy/barnyard2.git
Теперь давайте проверим, было ли оно загружено и установлено, выполнив длинный список в этом каталоге.
убунту > ls -l
Как видите, создан каталог barnyard2. Давайте перейдём в него и посмотрим его содержимое.
ubuntu > cd barnyard2
убунту > ls -l
Обратите внимание на самый первый файл с именем autogen.sh . Давайте выполним этот скрипт.
убунту > ./autogen.sh
Далее введите следующую строку.
ubuntu > CFLAGS = '-lpthread'
Затем выполните соответствующую команду настройки для вашей системы.
Если вы используете 64-битную архитектуру (а я надеюсь, что так и есть), вот подходящая команда настройки:
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-instal l
Есть ещё одна библиотека, необходимая 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
Теперь мы можем создать Barnyard2.
ubuntu > сделать
Наконец, нам нужно изготовить и установить.
ubuntu > sudo make install
Шаг 5: Настройка Barnyard2
Нам необходимо выполнить базовую настройку Barnyard2, чтобы убедиться в его корректной работе. Для начала скопируем файл конфигурации Barnyard2 в каталог /etc/snort.
ubuntu > sudo cp /snort_source /etc/barnyard2.conf /etc/snort
Теперь нам нужно создать файл, необходимый Barnyard2, в каталоге var/log. Это файл закладок.
ubuntu > коснитесь /var/log/snort/barnyard2.waldo
Шаг 6 : Настройка MySQL
Теперь, когда Barnyard2 установлен, скомпилирован и настроен, нам нужно настроить MySQL для получения оповещений. Для этого необходимо:
ubuntu > sudo mysql -u root -p
При запросе пароля введите snort .
Теперь вы находитесь в системе MySQL и должны получить приглашение MySQL. Давайте создадим базу данных для использования системой Snort.
mysql > создать базу данных snort;
(Обратите внимание, что snort здесь — это просто имя базы данных, в которой мы будем хранить наши оповещения. Ее можно назвать как угодно, но давайте сделаем так, чтобы ее было легко запомнить.)
Затем давайте сообщим системе, что мы хотим использовать эту базу данных.
mysql > использовать snort;
Barnyard2 поставляется со скриптом для создания схемы для базы данных Snort. Он находится по адресу /snort_source/barnyard2/schemas/create_mysql. Запустить скрипт можно, введя:
mysql > /snort_source/barnyard2/schemas/create_mysql
Далее нам необходимо создать пользователя для базы данных snort в MySQL.
mysql > СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'snort'@'localhost' С ИДЕНТИФИКАЦИЕЙ 'snort'
Эта команда создаёт пользователя snort на локальном сервере с паролем snort. Имя пользователя и пароль могут отличаться, но должны соответствовать тем, которые вы указали в файле snort.conf на шаге 3 выше.
Теперь предоставим этому пользователю необходимые разрешения.
mysql > предоставить права на создание, вставку, выбор, удаление, обновление для snort.* для 'snort'@'localhost';
Это дает пользователю snort права на создание объектов, вставку данных, выбор данных, удаление данных и обновление данных в базе данных snort на локальном хосте.
Вот и всё! Теперь мы настроили Snort для отправки оповещений в файл, откуда Barnyard2 будет их собирать, преобразовывать в удобочитаемый вид и помещать в нашу базу данных Snort в MySQL.
Если вы следили за этой новой серией статей о Snort, то знаете, что Snort — самая распространённая в мире система обнаружения и защиты от вторжений. Будучи частью Cisco, крупнейшего в мире производителя сетевого оборудования, она, вероятно, встречается повсюду в той или иной форме. Это весомый аргумент в пользу изучения её использования, поскольку она, вероятно, будет необходима на любой должности, связанной с безопасностью.
В предыдущих уроках этой серии мы установили и настроили Snort на нашей системе Kali. В этом уроке мы сделаем следующий шаг в создании профессиональной системы обнаружения вторжений промышленного уровня — будем получать уведомления о вторжениях, которые можно будет легко анализировать.
У Snort множество возможностей и настроек, но нам нужна система обнаружения вторжений, которую можно использовать безопасно и профессионально для оповещения о вторжениях. Для этого нам потребуется отправлять оповещения в базу данных, где мы сможем их анализировать. Мы настроим диспетчер очереди печати Barnyard2, специально разработанный для Snort, и будем использовать его для отправки данных в базу данных MySQL.
В предыдущих руководствах я использовал Kali в качестве базовой ОС. К сожалению, некоторые библиотеки, необходимые для запуска Barnyard2, некорректно работают в Kali. Поэтому последующие руководства этой серии будут основаны на Ubuntu. Всё, что вы делали до сих пор по настройке Snort, отлично работает в Ubuntu без каких-либо изменений. На самом деле, это гораздо более логично, поскольку вы вряд ли будете использовать атакующую систему, такую как Kali, в качестве сервера для Snort в рабочей среде.
Почему Barnyard2?
Преобразование двоичных данных в удобочитаемый вид (обычно из двоичных в ASCII) очень требовательно к ресурсам процессора для любого приложения. Это особенно актуально для Snort, и поскольку мы хотим выделить как можно больше ресурсов на перехват и анализ пакетов, мы хотели бы максимально снизить нагрузку на эти ресурсоёмкие задачи. Именно для этого и предназначен Barnyard2.
В рабочей среде мы хотим отправлять данные о событиях из Snort в базу данных. Snort может использовать любую базу данных ODBC, такую как Oracle, Microsoft SQL Server, PostgreSQL и MySQL. В данном случае мы будем использовать MySQL, поскольку это наиболее распространённая конфигурация Snort. Если мы можем отправлять оповещения в базу данных, то мы можем запросить эту информацию с помощью другого инструмента. Например, мы можем узнать, по каким правилам были сгенерированы оповещения, с каких IP-адресов были совершены атаки, каков был уровень серьёзности вторжений и т. д.
Здесь мы настроим Snort для обработки оповещений в двоичной форме (это самая простая и наименее ресурсоемкая для процессора форма), а затем воспользуемся Barnyard2 для чтения этих событий, преобразования в удобочитаемую форму и помещения их в базу данных MySQL.
Прежде чем мы продолжим, хочу отметить, что Snort будет работать и без Barnyard2, но это замедлит его работу и, возможно, не позволит обрабатывать и анализировать некоторые пакеты в загруженной среде, что может быть опасно.
Шаг 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 ниже).
Шаг 4: Загрузите Barnyard2
Barnyard2 — это диспетчер печати, который снижает нагрузку на демон Snort по записи оповещений в удобочитаемый формат. Вместо этого он позволяет Snort записывать эти оповещения в гораздо более эффективном двоичном формате, а затем Barnyard2 преобразует эти двоичные файлы в удобочитаемый формат. Затем он помещает их в базу данных MySQL для последующего анализа.
Давайте продолжим и скачаем Barnyard2 с GitHub.
ubuntu > git clone git://github.com/firnsy/barnyard2.git
Теперь давайте проверим, было ли оно загружено и установлено, выполнив длинный список в этом каталоге.
убунту > ls -l
Как видите, создан каталог barnyard2. Давайте перейдём в него и посмотрим его содержимое.
ubuntu > cd barnyard2
убунту > ls -l
Обратите внимание на самый первый файл с именем autogen.sh . Давайте выполним этот скрипт.
убунту > ./autogen.sh
Далее введите следующую строку.
ubuntu > CFLAGS = '-lpthread'
Затем выполните соответствующую команду настройки для вашей системы.
Если вы используете 64-битную архитектуру (а я надеюсь, что так и есть), вот подходящая команда настройки:
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-instal l
Есть ещё одна библиотека, необходимая 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
Теперь мы можем создать Barnyard2.
ubuntu > сделать
Наконец, нам нужно изготовить и установить.
ubuntu > sudo make install
Шаг 5: Настройка Barnyard2
Нам необходимо выполнить базовую настройку Barnyard2, чтобы убедиться в его корректной работе. Для начала скопируем файл конфигурации Barnyard2 в каталог /etc/snort.
ubuntu > sudo cp /snort_source /etc/barnyard2.conf /etc/snort
Теперь нам нужно создать файл, необходимый Barnyard2, в каталоге var/log. Это файл закладок.
ubuntu > коснитесь /var/log/snort/barnyard2.waldo
Шаг 6 : Настройка MySQL
Теперь, когда Barnyard2 установлен, скомпилирован и настроен, нам нужно настроить MySQL для получения оповещений. Для этого необходимо:
- создать базу данных
- создать схему базы данных для оповещений
- создать пользователя
- предоставить пользователю соответствующие привилегии
ubuntu > sudo mysql -u root -p
При запросе пароля введите snort .
Теперь вы находитесь в системе MySQL и должны получить приглашение MySQL. Давайте создадим базу данных для использования системой Snort.
mysql > создать базу данных snort;
(Обратите внимание, что snort здесь — это просто имя базы данных, в которой мы будем хранить наши оповещения. Ее можно назвать как угодно, но давайте сделаем так, чтобы ее было легко запомнить.)
Затем давайте сообщим системе, что мы хотим использовать эту базу данных.
mysql > использовать snort;
Barnyard2 поставляется со скриптом для создания схемы для базы данных Snort. Он находится по адресу /snort_source/barnyard2/schemas/create_mysql. Запустить скрипт можно, введя:
mysql > /snort_source/barnyard2/schemas/create_mysql
Далее нам необходимо создать пользователя для базы данных snort в MySQL.
mysql > СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'snort'@'localhost' С ИДЕНТИФИКАЦИЕЙ 'snort'
Эта команда создаёт пользователя snort на локальном сервере с паролем snort. Имя пользователя и пароль могут отличаться, но должны соответствовать тем, которые вы указали в файле snort.conf на шаге 3 выше.
Теперь предоставим этому пользователю необходимые разрешения.
mysql > предоставить права на создание, вставку, выбор, удаление, обновление для snort.* для 'snort'@'localhost';
Это дает пользователю snort права на создание объектов, вставку данных, выбор данных, удаление данных и обновление данных в базе данных snort на локальном хосте.
Вот и всё! Теперь мы настроили Snort для отправки оповещений в файл, откуда Barnyard2 будет их собирать, преобразовывать в удобочитаемый вид и помещать в нашу базу данных Snort в MySQL.