26 апреля, 2024

Как читать и писать правила Snort для обхода систем обнаружения сетевых вторжений

Содержание:

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

Наши последние статьи были посвящены тому, как НЕ попасться. Некоторые люди называют это антикриминалистикой — способностью не оставлять следов, по которым вас или ваши хаки могут выследить системные администраторы или правоохранительные органы.

Один из наиболее распространенных способов, который уведомляет системных администраторов о вторжениях в сеть — это использование систем обнаружения сетевых вторжений (NIDS). Самой распространенной из них является Snort.

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

Шаг 1. Найдите правила Snort

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

Мы можем найти все правила Snort, перейдя в директорию /etc/snort/rules нашего BackTrack. Перейдем и посмотрим на ее содержимое.

cd /etc/snort/rules

Теперь выведем список файлов этой директории.

ls -l

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

Шаг 2. Просмотр правил Snort

Файлы правил Snort являются простыми текстовыми файлами, поэтому мы можем открывать и редактировать их с помощью любого текстового редактора. Мы будем использовать редактор Kwrite. Откроем файл porn.rules. Этот набор правил предназначен для обнаружения порно, проходящего по проводному соединению. Это довольно старый набор правил и большинство системных администраторов больше его не использует.

kwrite /etc/snort/porn.rules

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

Читать также:  Как исправить Wi-Fi на компьютерах Mac

Шаг 3. Изучение правила

Давайте возьмем какое-нибудь простое правило и проанализируем его. Откроем файл scan.rules.

kwrite /etc/snort/scan.rules

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

Шаг 4. Анализ правила SF-сканирования

Это правило предназначено для обнаружения сканирований, выполняемых с помощью различных инструментов для сканирования, таких как nmap и hping. Один из этих сканеров называется SYN-FIN. Этот сканер отправляет TCP-пакеты с установленными флагами SYN и FIN для того, чтобы попробовать определить, какие порты открыты на целевой системе.

Этот тип пакетов никогда нельзя встретить при анализе естественного трафика, поскольку пакет с одновременно включенными флагами SYN и FIN запрашивает у системы открытие соединения (SYN) и одновременное закрытие соединения (FIN).

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

Шаг 5. Заголовок правила

Начнем с изучения первой части правила с начала и до первой скобки. Начальная часть правила называется заголовком и наш заголовок выглядит вот так:

Разбивка заголовка правила на элементы

  • alert — это действие. Это может быть предупреждение, запись в лог (журнал) или пропуск.
  • Tcp — это протокол трафика, который ищет правило. Это могут быть tcp, udp и icmp.
  • $EXTERNAL_NET — это исходный IP-адрес или сеть вредоносных пакетов. Его можно установить как переменную в файле snort.conf.
  • any — это исходный порт вредоносного трафика. Этот параметр можно установить как в один порт, так и в несколько или ряд портов.
  • -> — это направление трафика. В этом случае мы ищем трафик, идущий из EXTERNAL_NET во внутренний или HOME_NET.
  • $HOME_NET — это IP-адрес назначения, к которому идет трафик. Как и в случае с EXTERNAL_NET, его можно установить как переменную в файле snort.conf.
  • any — это порт назначения. Этот параметр также может указывать на определенные порты, например 80, или на переменную, содержащую список портов.
Читать также:  Тонкая настройка Ubuntu. Часть 4 (Аудит, антивирусы и мониторинг)

Шаг 6. Параметры правил Snort

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

ключевое слово: аргументы

Наш пример правила выглядят вот так:

Разбивка параметров правила

  • msg — это сообщение, которое отсылается системному администратору, если это правило вызывается. В этом случае Snort сообщает системному администратору «SCAN SYN FIN».
  • flow — этот параметр позволяет правилу проверять поток трафика. Он может иметь несколько значений, включая established (TCP-соединение установлено), not established (TCP-соединение не установлено), stateless (установленные или не установленные соединения) и т.д. В нашем примере правило вызывается при трафике с установленным TCP-соединением или без него.
  • flags — эта пара проверяет флаги TCP. Как вы знаете, флаги TCP могут быть SYN, FIN, PSH, URG, RST или ACK. Это правило ищет трафик, в котором установлены флаги SYN и FIN (SF), и, кроме того, имеет два зарезервированных бита в наборе байтов флагов (12).
  • reference — этот раздел предназначен для ссылки на базу данных безопасности для получения дополнительной информации об атаке. В нашем примере мы можем найти дополнительную информацию об этой атаке в базе данных arachnids, атака 198.
  • classtype — все правила подразделяются на многочисленные категории, которые призваны помочь администратору понять, какой тип атаки был предпринят. В нашем примере мы видим, что он классифицируется как «попытка анализа».

Шаг 7. Обход и Отключение

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

Читать также:  Как скрыть порт от сканирования?

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

Один комментарий к “Как читать и писать правила Snort для обхода систем обнаружения сетевых вторжений

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