Следующая новость
Предыдущая новость

Сети для акулы. Разворачиваем Snort и пишем правила

14.11.2018 16:02
Сети для акулы. Разворачиваем Snort и пишем правила

Содержание статьи

  • Почему Snort?
  • Установка Snort
  • Настройка в режим IDS
  • Установка Barnyard2
  • Установка PulledPork
  • Установка Basic Analysis and Security Engine
  • Создаем службы
  • Отслеживаем действия в сети
  • Тестируем Snort и пишем свои правила
  • Заключение

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

Почему Snort?

Snort — это опенсорсная система обнаружения вторжений, IDS. Она может работать как сниффер или логгер, но нас интересует именно NIDS (Network Intrusion Detection System). В таком режиме Snort проверяет все входящие пакеты на признаки известных видов сетевых атак (DDoS, сканирование портов, попытки авторизации брутфорсом и так далее).

Аналогия здесь следующая: владельцы магазинов ставят камеры, чтобы обезопасить себя от кражи. Они не помешают вскрыть замки, но зафиксируют действия воришек и помогут их поймать. Примерно так же обстоит дело с системами обнаружения вторжений, которые существуют в виде отдельных решений или компонентов систем класса Internet Security. Они не могут отразить нападение, но оповещают об атаке и помогают в расследовании инцидентов.

Долго останавливаться на описании этого продукта я не буду, так как на страницах журнала можно найти много информации о ней. Например, в статье Даниила Светлова Snort рассматривается как часть опенсорсной SIEM. Скажу лишь, почему я выбрал Snort. Этому способствовали три фактора:

  • простота в написании своих правил;
  • хорошая поддержка с информативной почтовой рассылкой;
  • частые обновления.

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

Установка 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. Это желательно сделать для уменьшения нагрузки на процессор:

post-up ethtool -K eth0 gro off post-up ethtool -K eth0 lro off 

Перезагружаем настроенный сетевой интерфейс:

sudo ifconfig enp0s3 down && sudo ifconfig enp0s3 up 

Затем по стандарту — update && upgrade и ставим необходимые компоненты:

sudo apt-get install -y build-essential libpcap-dev libpcre3-dev libdumbnet-dev bison flex zlib1g-dev liblzma-dev openssl libssl-dev libnghttp2-dev. 

Далее создаем папку, в которой будем намешивать исходники, солить и перчить их по вкусу. Скачиваем туда систему сбора данных (DAQ — Data AcQuisition). Это библиотека, которая заменяет прямые вызовы на функции libpcap, что облегчает работу на различных аппаратных и программных интерфейсах без необходимости вносить изменения в сам Snort.

mkdir snort cd snort wget https://snort.org/downloads/snort/daq-2.0.6.tar.gz tar -xvzf daq-2.0.6.tar.gz cd daq-2.0.6 ./configure make sudo make install 

Теперь можно поставить сам Snort.

cd ~/snort_src wget https://www.snort.org/downloads/snort/snort-2.9.12.tar.gz tar -xvzf snort-2.9.12.tar.gz cd snort-2.9.12 ./configure --enable-sourcefire --disable-open-appid make sudo make install sudo ldconfig sudo ln -s /usr/local/bin/snort /usr/sbin/snort 

Пробуем вывести версию Snort для того, чтобы убедиться, что все взлетело и работает.

/usr/sbin/snort –V 

Вывод должен иметь вид, как на скриншоте.

Сети для акулы. Разворачиваем Snort и пишем правила
Версия Snort

Установка закончена, погнали дальше!

Настройка в режим IDS

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

sudo groupadd snort sudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort 

Теперь создаем необходимые папки и раздаем права:

sudo mkdir /etc/snort sudo mkdir /etc/snort/rules sudo mkdir /etc/snort/rules/iplists sudo mkdir /etc/snort/preproc_rules sudo mkdir /usr/local/lib/snort_dynamicrules sudo mkdir /etc/snort/so_rules sudo touch /etc/snort/rules/iplists/black_list.rules sudo touch /etc/snort/rules/iplists/white_list.rules sudo touch /etc/snort/rules/local.rules sudo touch /etc/snort/sid-msg.map sudo mkdir /var/log/snort sudo mkdir /var/log/snort/archived_logs sudo chmod -R 5775 /etc/snort sudo chmod -R 5775 /var/log/snort sudo chmod -R 5775 /var/log/snort/archived_logs sudo chmod -R 5775 /etc/snort/so_rules sudo chmod -R 5775 /usr/local/lib/snort_dynamicrules sudo chown -R snort:snort /etc/snort sudo chown -R snort:snort /var/log/snort sudo chown -R snort:snort /usr/local/lib/snort_dynamicrules 

Распихаем конфигурационные файлы и файлы настроек по нужным папкам:

cd ~/snort/snort-2.9.12/etc/ sudo cp *.conf* /etc/snort sudo cp *.map /etc/snort sudo cp *.dtd /etc/snort cd ~/snort/snort-2.9.12/src/dynamic-preprocessors/build/usr/local/lib/snort_dynamicpreprocessor/ sudo cp * /usr/local/lib/snort_dynamicpreprocessor/ 

В итоге должна получиться вот такая структура папок и файлов.

Сети для акулы. Разворачиваем Snort и пишем правила
Дерево папок и файлов /etc/snort

Комментируем все строки с 457-й по 651-ю в файле /etc/snort/snort.conf. Делается это для того, чтобы Snort при запуске не скачивал правила, поскольку для обработки правил у нас будет настройка PulledPork.

sudo sed -i 's/include $RULE_PATH/#include $RULE_PATH/' /etc/snort/snort.conf 

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

  1. Строка 45: указываем нашу сеть.
  2. Строка 104: меняем на var RULE_PATH /etc/snort/rules.
  3. Строка 105: меняем на var SO_RULE_PATH /etc/snort/so_rules.
  4. Строка 106: меняем на var PREPROC_RULE_PATH /etc/snort/preproc_rules.
  5. Строка 113: меняем на var WHITE_LIST_PATH /etc/snort/rules/iplists.
  6. Строка 114: меняем на var BLACK_LIST_PATH /etc/snort/rules/iplists.
  7. Строка 546: необходимо раскомментировать include $RULE_PATH/local.rules для возможности использовать свои правила.
  8. Строка 521: ниже нее необходимо добавить строку output unified2: filename snort.u2, limit 128.
  9. Строка 548: необходимо добавить строку include $RULE_PATH/snort.rules.

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

sudo snort -T -c /etc/snort/snort.conf -i enp0s3 

Если видишь заветные слова Snort successfully validated the configuration! Snort exiting, значит, все в порядке и ничего пока не сломано.

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

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

Подпишись на «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

1 год

7190 р.

Экономия 1400 рублей!

1 месяц

720 р.

25-30 статей в месяц

Уже подписан?

Источник

Последние новости