Поиск по сайту:

Как использовать систему обнаружения вторжений Snort в Linux


Запустите Snort в Linux и защитите свою сеть с помощью анализа трафика в реальном времени и обнаружения угроз. Безопасность — это все, и Snort — это решение мирового класса. Эта свинья может просто спасти ваш бекон.

Что такое снорт?

Snort — одна из самых известных и широко используемых систем обнаружения сетевых вторжений (NIDS). Его называют одним из самых важных проектов с открытым исходным кодом всех времен. Первоначально разработанный Sourcefire, он поддерживается группой Cisco Talos Security Intelligence and Research Group с тех пор, как Cisco приобрела Sourcefire в 2013 году.

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

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

Правила фырканья

Существует три набора правил:

  • Правила сообщества. Это бесплатные наборы правил, созданные сообществом пользователей Snort.
  • Зарегистрированные правила. Эти наборы правил предоставляются Talos. Они также находятся в свободном доступе, но для их получения необходимо зарегистрироваться. Регистрация бесплатна и займет всего минуту. Вы получите личный oinkcode , который необходимо указать в запросе на скачивание.
  • Правила подписки. Это те же правила, что и зарегистрированные правила. Однако подписчики получают правила примерно за месяц до их выпуска в виде бесплатных наборов правил для зарегистрированных пользователей. На момент написания статьи 12-месячная подписка начиналась с 29 долларов США для личного использования и 399 долларов США для коммерческого использования.

Установка Снорта

Когда-то установка Snort была длительным ручным процессом. Это было несложно, но было много шагов, и было легко пропустить один. Основные дистрибутивы Linux упростили задачу, сделав Snort доступным в своих репозиториях программного обеспечения.

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

Для исследования этой статьи мы установили Snort на Ubuntu 20.04, Fedora 32 и Manjaro 20.0.1.

Чтобы установить Snort на Ubuntu, используйте эту команду:

sudo apt-get install snort

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

ip  addr

Обратите внимание на имя вашего сетевого интерфейса. На этом исследовательском компьютере это enp0s3.

Также проверьте свой IP-адрес. Этот компьютер имеет IP-адрес 192.168.1.24. Дополнительный «/24» — это нотация бесклассовой междоменной маршрутизации (CIDR). Это говорит нам о диапазоне сетевых адресов. Это означает, что эта сеть имеет маску подсети 255.255.255.0, которая имеет три начальных набора из восьми битов (и 3 x 8=24). Вам не нужно слишком беспокоиться об этом, просто запишите любой ваш IP-адрес, включая нотацию CIDR. Вам нужно предоставить это как ответ на один из вопросов, с последним октетом IP-адреса, измененным на ноль. В нашем примере это 192.168.1.0/24.

Нажмите «Tab», чтобы выделить кнопку «ОК», и нажмите «Ввод».

Введите имя сетевого интерфейса и нажмите «Tab», чтобы выделить кнопку «ОК», и нажмите «Ввод».

Введите диапазон сетевых адресов в формате CIDR, нажмите «Tab», чтобы выделить кнопку «ОК», и нажмите «Ввод».

Чтобы установить Snort в Fedora, вам нужно использовать две команды:

rpm -Uvh https://forensics.cert.org/cert-forensics-tools-release-32.rpm
sudo dnf install snort

В Manjaro нам нужна не обычная команда pacman, а pamac. И нам не нужно использовать sudo:

pamac install snort

Когда вас спросят, хотите ли вы собрать Snort из AUR (архивный пользовательский репозиторий), нажмите «Y» и нажмите «Enter». Мы не хотим редактировать файлы сборки, поэтому ответьте на этот вопрос, нажав «N» и нажав «Enter». Нажмите «Y» и нажмите «Enter», когда вас спросят, следует ли применить транзакцию.

Вам будет предложено ввести пароль.

Были установлены следующие версии Snort:

  • Убунту: 2.9.7.0
  • Fedora: 2.9.16.1
  • Манджаро: 2.9.16.1

Вы можете проверить свою версию, используя:

snort --version

Настройка Snort

Прежде чем мы сможем запустить Snort, необходимо выполнить несколько шагов. Нам нужно отредактировать файл «snort.conf».

sudo gedit /etc/snort/snort.conf

Найдите строку «ipvar HOME_NET any» и отредактируйте ее, заменив «любой» диапазоном адресов в нотации CIDR вашей сети.

Сохраните изменения и закройте файл.

Обновление правил Snort

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

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

Загрузите набор правил для установленной версии Snort. Мы загружаем версию 2.9.8.3, которая наиболее близка к версии Snort 2.9.7.0, которая была в репозитории Ubuntu.

wget https://www.snort.org/rules/snortrules-snapshot-2983.tar.gz?oinkcode=<your oink code goes here> -O snortrules-snapshot-2983.tar.gz

После завершения загрузки используйте эту команду, чтобы извлечь правила и установить их в каталог «/etc/snort/rules».

sudo tar -xvzf snortrules-snapshot-2983.tar.gc -C /etc/snort/rules

Беспорядочный режим

Карты сетевого интерфейса обычно игнорируют трафик, который не предназначен для их IP-адреса. Мы хотим, чтобы Snort обнаруживал подозрительный сетевой трафик, адресованный любому устройству в сети, а не только сетевой трафик, который отправляется на компьютер, на котором установлен Snort.

Чтобы сетевой интерфейс компьютера Snort прослушивал весь сетевой трафик, нам нужно установить его в неразборчивый режим. Следующая команда заставит сетевой интерфейс enp0s3 работать в неразборчивом режиме. Замените enp0s3 на имя сетевого интерфейса, который вы используете на своем компьютере.

sudo ip link set enp0s3 promisc on

Если вы используете Snort на виртуальной машине, не забудьте также настроить параметры гипервизора для виртуальной сетевой карты, используемой вашей виртуальной машиной. Например, в VirtualBox вам нужно перейти в Настройки> Сеть> Дополнительно и изменить раскрывающийся список «Неразборчивый режим» на «Разрешить все».

Бегущий фырканье

Теперь вы можете запустить Snort. Формат команды:

sudo snort -d -l /var/log/snort/ -h 192.168.1.0/24 -A console -c /etc/snort/snort.conf

Подставьте диапазон IP-адресов своей сети вместо 192.168.1.0/24.

Параметры командной строки, используемые в этой команде:

  • -d: фильтрует пакеты прикладного уровня.
  • -l /var/log/snort/: устанавливает каталог ведения журнала.
  • -h 192.168.1.0/24: не устанавливает домашнюю сеть, указанную в файле snort.conf. Если для этого параметра задано то же значение, что и для домашней сети, журналы структурируются таким образом, что содержимое подозрительных удаленных компьютеров регистрируется в каталогах, названных в честь каждого удаленного компьютера.
  • -Консоль: отправляет оповещения в окно консоли.
  • -c /etc/snort/snort.conf: указывает, какой файл конфигурации Snort использовать.

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

С другого компьютера мы начали генерировать вредоносную активность, направленную непосредственно на наш тестовый компьютер, на котором работал Snort.

Snort идентифицирует сетевой трафик как потенциально вредоносный, отправляет оповещения в окно консоли и записывает записи в журналы.

Атаки, классифицируемые как атаки «Утечки информации», указывают на то, что была предпринята попытка запросить на вашем компьютере некоторую информацию, которая может помочь злоумышленнику. Вероятно, это указывает на то, что кто-то проводит разведку вашей системы.

Атаки, классифицируемые как атаки типа «отказ в обслуживании», указывают на попытку залить ваш компьютер ложным сетевым трафиком. Атака пытается перегрузить ваш компьютер до такой степени, что он не может продолжать предоставлять свои услуги.

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

Активность обнаружена и зарегистрирована, и мы видим, что эта атака была направлена против другого компьютера с IP-адресом 192.168.1.26. Snort отслеживает весь диапазон адресов этой сети.

Следующие шаги

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

У Snort нет интерфейса или графического пользовательского интерфейса. Сторонние проекты создали несколько, и вы можете изучить некоторые из них, такие как Snorby и Squil.