snort exe что это
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Установка и настройка утилиты для обнаружения вторжений в сети – Snort
Хрюн в поисках вторжений
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Snort не имеет графической оболочки (GUI), в связи с чем любая работа с программой возможна только посредством командной строки. Ничего сложного здесь нет, и в этой статье мы подробно рассмотрим процесс установки и настройки Snort на Windows и на Linux. На различных дистрибутивах она устанавливается примерно одинаково за небольшой разницей в указании путей папок в командах и других мелочах.
Пошаговая инструкция для Windows
Первым делом переходим на официальный сайт разработчика Snort.org. Поскольку программа является полностью бесплатной, то никаких проблем с лицензией, пробной версией не появляется
Нажимаем Get Started.
Открывается окно с текстовыми командами, там выбираем в верхних вкладках нашу операционную систему (в данном случае Windows) и загружаем файл загрузчика (Installer.exe).
Устанавливаем его в режиме «прощелкивания», то есть, ни снимая никакие флажки, поставленные разработчиком по умолчанию.
Установка вспомогательных утилит
После установки Snort никаких изменений на компьютере не произошло и работать с программой нет возможности, потому что не установлены специальные утилиты и драйвера, которые обеспечат запуск приложения.
В завершающем окне Snort для Windows попросит вас установить хорошо известную сетевым администраторам утилиту Winpcap. Это драйвер, который позволит вашей сетевой карте перейти в мониторный режим, то есть передавать и получать пакеты, обходя стеки протоколов. Данная утилита тоже бесплатная, поэтому ее скачиваем с сайта разработчика www.winpcap.org и также устанавливаем в режиме «прощелкивания».
Итак, установщик загружен и установлен, вспомогательные утилиты тоже поставлены. Но поскольку, графической оболочки нет, нам надо загрузить специальные правила, по которым Snort будет работать. Возвращаемся на официальный сайт Snort.org и нажимаем на кнопку «Rules» (правила). Из открывшегося списка берем файл, список правил (rules), соответствующий нашей версии (они рассортированы по версиям Snort, а не по операционным системам). На начало 2020 г. для Windows актуальна версия 2.9.15.1, которую мы инсталлируем и настроим в качестве примера.
Для Linux есть и более новая версия Snort 3.0.
Скачанный файл правил (называется community-rules.tar.gz) находим в папке и открываем с помощью только что установленного архиватора 7-zip. Интерфейс этого архиватора очень похож на WinRar или WinZip.
Все файлы разархивируем, копируем и переносим в папку Snort, которую создал наш установщик. В дальнейшем, это значительно упростит указание путей.
Теперь находим и открываем файл snort.conf (параметры конфигурации для запуска приложения) в NotePad++ или другом текстовом редакторе.
Где-то на 103 строчке (она может немного отличаться по мере того, как разработчик вносит изменения в обновления) находим, установленную разработчиком по умолчанию строчку, указатель пути: c:\snort\rules. Она совпадает с расположением файла на нашей машине. Если у вас путь другой, то припишите именно его. Там, где надо редактировать пути, разработчик ставит две точки.
Теперь нам надо указать путь для папки Log-файлов, куда наш Snort будет записывать все логи, доступные для просмотра и изучения. Редактируем пути к лог-файлам.
В папке C:/snort уже есть папка log, для этого предназначенная, поэтому мы прописываем путь C:\snort\log.
На строчке 182 прописываем в config logdir: c:\snort\log, причем первая часть config logdir уже есть и строку можно найти по ней. Незабываем удалить символ «#», который выбрасывает строки из исполняемого файла, превращая их в комментарий. Результат:
Дальнейшее редактирование файла конфигурации проводим по списку по ссылке. Ищем по первой части строк и прописываем правильные пути. Я просто заменил строки 242-249 на этот блок.
Продолжаем редактирование. Теперь комментируем, добавляя знаки комментария «#» к строкам 259-265. В отредактированном варианте это выглядит так:
1.Редактирум пути к правилам правил Snort
# such as: c:\snort\rules
var RULE_PATH c:\Snort\rules
var SO_RULE_PATH c:\Snort\so_rules
var PREPROC_RULE_PATH c:\Snort\preproc_rules
# If you are using reputation preprocessor set these
var WHITE_LIST_PATH c:\Snort\rules
var BLACK_LIST_PATH c:\Snort\rules
2.Прописываем путь к папке лог
config logdir: c:\Snort\log
3. Редактируем пути для libraries
5. Иправляем пути правил
7. Чтобы узнать поддерживаемые интерфейсы необходимо выполнить команду:
8. Добавляем нужные вам правила
Краткое содержание данной инструкции:
Нормально установленный и запущенный Snort (IDS консоль) на Windows выглядит вот так (открыт с помощью Internet Explorer, но для примера указана очень старая версия 2004 года):
Установка Snort на Linux дистрибутивах
Поскольку, Snort изначально разрабатывался на Linux его установка там значительно проще, так как он изначально предназначен для этого семейства ОС. Открываем терминал, и набираем первую команду, которая начнет загрузку файлов Snort с официального сервера:
Поскольку файлы скачиваются в заархивированном виде, то используем команду «tar», чтобы запустить встроенный архиватор и разархивировать только что скаченные файлы с его помощью.
На этом этапе все необходимые файлы скачаны, теперь можно приступить к настройке программы. Snort имеет тонкие настройки, позволяющие осуществлять мониторинг с минимальным потреблением сетевых ресурсов. На практике это означает значительную экономию энергии и стоимости железа при круглосуточной работе.
Проверяем, где установился Snort командой:
Для управления Snort используются нетипичные символы в командах, но не стоит этого пугаться, так как самих команд немного. Сам Snort состоит из трех основных программных модулей.
Мониторинг с помощью Snort
Итак, на Windows или на Linux сначала открываем окно (через терминал, или exe файл из папки GUI). Введем первую команду, чтобы получить справку, отобразить список всех основных команд (имя компьютера, Someone, замените на ваше):
На экране отобразится список:
С помощью команд из этого списка программу можно перевести в один из трех режимов работы, рассмотренных ниже.
Сниффер пакетов
Функция аналогичная многим известным снифферам, например WireShark. Пакеты дешифруются и выводятся на экран (заголовки пакетов). Режим очень удобно использовать для проверки правильности указания IP-адресов и всех настроек программы. Для запуска сниффера введите:
Сниффер с записью
На экране отображаются не только заголовки пакетов, но и происходит запись содержимого на диск. Для сетей со значительным трафиком такой режим использовать невозможно ввиду огромного объема данных. Пакеты сохраняются на диске в ASCII формате. Путь папки для записи прописывается в команде.
Режим обнаружения вторжения
Основной режим работы Snort. Он не потребляет много ресурсов, и запускается на машине в фоновом режиме для постоянного мониторинга. Для того чтобы Snort понял, что нужно регистрировать, ему предварительно указывают допустимые и недопустимые адреса. Дополнительная информация (на английском языке) представлена на официальном сайте www.snort.org.
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Программные комплексы, контролирующие содержимое трафика, называются сетевыми системами обнаружения вторжения (Network Intrusion Detection System, сокращенно — NIDS). Они функционируют на сетевом уровне по модели OSI и проводят контроль устанавливаемых соединений, анализ структуры и содержимого сетевых пакетов. Система NIDS анализирует весь проходящий трафик как на отдельном компьютере, так и на выделенном сервере (шлюз, маршрутизатор, зонд). При обнаружении атаки NIDS включает механизм реагирования на данный тип угрозы. Спектр ее возможностей довольно широк: от передачи предупредительных сообщений на рабочую консоль (e-mail, пейджер, телефон, факс) до блокировки учетной записи, разрыва соединения, реконфигурации брандмауэра или маршрутизатора.
Механизм контроля и анализа статистики устанавливаемых соединений позволяет выявить попытку сканирования системы или проведения атаки вида «отказ в обслуживании» (одновременно открывается множество соединений с каким-либо сервисом). Контроль за содержимым трафика реализуется путем поиска определенных последовательностей данных (сигнатур), передаваемых в сетевом пакете. Например, если во время соединения, установленного с Microsoft SQL-сервером, перехвачен пакет, содержащий последовательность данных «81 F1 03 01 04 9B 81 F1 01», а также строки «sock» и «send», то имеет место попытка эксплуатации «переполнения буфера». Это уязвимое место обнаружено в Microsoft SQL Server 2000 Resolution Service и Microsoft Desktop Engine (MSDE) 2000. Хотя она известна довольно давно и уже выпущены специальные программные «заплатки», дебют 25 января 2003 г. сетевого вируса Slammer, использующего его, оказался успешным.
Системы обнаружения вторжения имеют собственную базу знаний, где собраны известные типы сетевых атак. Они также позволяют пользователям разрабатывать и включать новые описания сетевых инцидентов.
Потенциально скользкий момент в работе NIDS — достоверность определения IP-адреса нападающего. Злоумышленнику несложно имитировать атаку со стороны посторонних хостов. Далее по сценарию развития ситуации NIDS определит IP-адреса из сфальсифицированных злоумышленником сетевых пакетов, и в результате будут предприняты карательные действия против «невиновных» хостов. Для повышения надежности защиты необходимо контролировать всю архитектуру сети, размещая зонды (компьютеры с NIDS) в каждом сегменте сети (рис. 1).
|
Рис. 1. Схема размещения зондов в сети |
Зонд 1 расположен в зоне максимальной потенциальной сетевой опасности. Здесь анализируется весь входящий и исходящий трафик и велика вероятность большого числа ложных срабатываний. При повышенной нагрузке на сеть возможно возникновение такой ситуации, когда NIDS не сумеет обработать весь поток трафика и произойдет огрубление методов анализа, например, за счет уменьшения числа проверяемых сигнатур.
Зонд 2 анализирует серверный трафик. Здесь входящий трафик отфильтрован межсетевым экраном. При корректно настроенном брандмауэре это более безопасная зона сети. Из-за уменьшения величины трафика число ложных срабатываний сокращается. Зонд 2 должен быть настроен с учетом специфики серверов.
Зонд 3 анализирует трафик локальной сети, теоретически являющейся наиболее защищенной зоной. Следует обращать внимание на любую сетевую активность, отличную от обычной. Число ложных срабатываний в этой зоне должно быть наименьшим, и потому следует уделять большее внимание сообщениям зонда 3.
Продолжим знакомство с сетевыми системами обнаружения вторжений на примере проекта Snort.
Проект Snort
В рамках проекта Snort происходят разработка, распространение и поддержка одноименной сетевой системы обнаружения вторжений, предназначенной для мониторинга небольших сетей. Система Snort распространяется свободно в исходных текстах или в откомпилированном двоичном формате при условии соблюдения лицензии GNU GPL (General Public License).
Snort позволяет в режиме реального времени анализировать сетевой трафик, проверяя корректность структуры сетевых пакетов и соответствие содержимого определенным правилам. Для описания сетевых инцидентов и определения реакции системы используется гибкий язык сценариев. Встроенная база знаний позволяет определить распространенные типы сетевых нападений: «скрытое» сканирование (использующее установленные в сетевых пакетах флаги FIN, ASK), сбор баннеров сетевых сервисов (Services & OS fingerprinting), переполнение буфера различных сервисов, атаки, использующие преднамеренное нарушение структуры сетевых пакетов (ping of death), атаки вида «отказ в обслуживании» (DOS). Включено описание множества атак, эксплуатирующих определенные «дыры» в различных сетевых сервисах.
При фиксировании системой Snort описанного сетевого инцидента можно, конфигурируя брандмауэр, предотвратить сетевую атаку или передать предупреждающее сообщение через syslog-сервер, определенный пользовательский файл, Unix-сокет или службу Windows WinPopup.
Система Snort способна работать:
Список поддерживаемых системой Snort операционных систем и аппаратных платформ приведен в табл. 1.
Установка
Рассмотрим установку и настройки Snort для Unix-систем. Получить исходный текст и правила для Snort можно с официального Web-сервера проекта Snort (файлы snort-1.9.1.tar.gz и snortrule.tar.gz). Последняя версия системы на момент написания статьи — 1.9.1. Также нужно установить драйвер обработки сетевых пакетов — библиотеку libpcap (последняя версия — 0.7.2). Получить ее можно с официального Web-сервера проекта Tcpdump. Для хранения и обработки данных Snort можно использовать любую доступную базу данных, например MySQL, PostgreSQL или Oracle.
Сборка и установка библиотеки libpcap
Перед инсталляцией Snort необходимо установить базу данных, в частности MySQL.
Затем приступим к сборке Snort из исходников.
Основные параметры конфигурации сборки Snort:
(Включает механизм передачи WinPopup-сообщений через сервис Samba.)
(Включает механизм передачи сообщений по SNMP.)
(Включает поддержку базы данных MySQL, где DIR — путь к ядру базы данных.)
(Включает поддержку подключения к базам данных через ODBC.)
(Включает поддержку базы данных PostgreSQL.)
(Включает поддержку базы данных Oracle.)
(Включает поддержку ssl.)
(Указывает путь к заголовочным файлам библиотеки libpcap.)
(Указывает путь к библиотечным файлам libpcap.)
Приступим к установке правил:
После установки Snort создадим каталог для хранения логов системы:
Для автоматизации управления Snort напишем управляющий скрипт (для Linux-систем):
Можно получить краткую справку о работе Snort:
Режимы работы Snort
При работе в режиме снифера (рис. 2)Snort перехватывает сетевые пакеты и распечатывает IP-адреса и TCP/UDP/ICMP-заголовки пакетов. Режим устанавливается командой:
|
Рис. 2. Работа Snort в режиме снифера |
Если необходимо увидеть передаваемые в сетевом пакете данные, используйте ключ d (показать структуру декодированных данных прикладного уровня).
Более подробную информацию можно получить с ключом e (показать декодированные Ethernet-заголовки):
Завершить работу после получения определенного числа пакетов (например, 10):
Ключи вызова для Snort можно задать и таким образом:
Как и при работе с Tcpdump, разрешается отображать данные только по определенным пакетам. Для фильтрации пакетов задается регулярное выражение, использующее интерфейс BPF (Berkley Packet Filter). Например, следующая команда приводит к отображению данных о пакетах, полученных на сетевом интерфейсе eth1 и отправленных хостом с IP-адресом 192.168.1.5:
При работе со сложными фильтрами можно записать BPF-выражение в файл, а затем, при вызове Snort, указать этот файл c ключом F:
Режим сохранения информации от предыдущего отличается только тем, что записывает данные о переданных/полученных пакетах на диск. Включается вызовом с ключом l и указанием пути к каталогу для записываемых данных:
Допускается отсортировать данные относительно IP-адресов локальной сети (например, сеть 192.168.1.0 маска 255.255.255.0), задав ключ h:
Если необходимо сохранить информацию о перехваченных пакетах в более компактной форме, используйте следующий вызов:
В указанном каталоге создается один файл, где сохраняются данные в двоичном виде в формате tcpdump. Запись данных идет намного быстрее, поскольку не тратится время на декодирование пакета из двоичного формата в текстовый. Такой формат хранения данных используют программы Tcpdump и Etherial. По умолчанию запись ведется в файл вида snort.log.[временная_метка]. Можно изменить имя файла, указав его с ключом L.
Прочитать данные из файла помогает вызов с ключом r. Так, допустимо считать из файла данные только о udp-пакетах:
Для перевода Snort в режим обнаружения вторжения (NIDS) необходимо указать конфигурационный файл, описывающий набор правил (по умолчанию используется файл
user/.snortrc). Данные правила применяются ко всем анализируемым пакетам. В этом режиме стоит отказаться от вывода данных на дисплей. Из-за разницы в скорости получения пакетов из сети и скорости вывода информации на экран пакеты могут потеряться. Также лучше записывать данные о пакетах в двоичном формате. Таким образом, строка запуска Snort в режиме NIDS будет выглядеть так:
При работе Snort в режиме NIDS следует определить механизм передачи сообщений, генерируемых при выполнении какого-либо правила. Механизм передачи сообщений определяется либо через конфигурационный файл, либо через следующие параметры вызова в командной строке:
(Сделать запись в лог-файл. Формат записи: время, сообщение, IP адрес/порт источника и получателя пакета.)
(Запись в лог-файл, как и в предыдущем вызове. Добавляются данные о заголовке пакета. Этот способ используется по умолчанию.)
(Передать сообщение в Unix-сокет.)
(Отключить передачу сообщений.)
(Передать сообщение в syslog. В зависимости от платформы будет сделана запись /var/log/secure или /var/log/messages.);
Например, вести запись в двоичный файл и передавать сообщения на Windows-машины:
Для запуска Snort в режиме системного демона применяется ключ D.
Следует отметить, что если нужно перезапустить Snort сигналом SIGHUP, в командной строке при запуске надо указывать абсолютный, а не относительный путь к двоичному файлу snort. Это условие добавлено из соображений безопасности.
Правила
Для правил Snort используется простой описательный язык, являющийся достаточно гибким и мощным средством. Правило делится на две логические части: заголовок и тело. Заголовок содержит указание на действие, выполняемое при совпадении условий правила, тип протокола, IP-адреса и информацию о портах источника и получателя пакета. В теле правила содержатся предупреждающее сообщение и информация о том, какую часть пакета необходимо проверить. Рассмотрим правило:
Расшифруем тело правила (content: «|00 01 86 a5|»; msg: «mountd access»;):
Как видим, все довольно просто и логично. Узнать более подробно о разработке правил можно из документа Мартина Рейча (Martin Roesch) «Writing Snort Rules» и документации, поставляемой с системой.
При сопровождении Snort не следует забывать о регулярном обновлении базы правил. Новые списки правил постоянно выкладываются на Web-сервере Snort.
Snort для Windows
Установка Snort для Win 32 более тривиальна. Достаточно просто запустить установочный exe-файл. Также требуется установить драйвер перехвата сетевых пакетов (например, WinPcap). Командный интерфейс системы не отличается от интерфейса Unix-версии.
Необходимо учитывать, что ведение журналов приводит к сильной фрагментации дискового пространства. Это, в свою очередь, замедляет работу системы. При дефрагментации диска Snort придется отключить. Следовательно, на время дефрагментации сетевой контроль над системой будет утрачен. Возможный выход — поочередное использование двух дисковых разделов для ведения журналов.
Поддержка
Проект Snort имеет хорошее информационное сопровождение. На его Web-сервере размещено большое количество справочных материалов по установке и настройке Snort на различных ОС. Ведутся несколько почтовых рассылок (для разработчиков, новости проекта, общая дискуссия, база знаний по сигнатурам). В общем, ваши вопросы не останутся без ответа. Единственный недостаток информационного сопровождения — большинство материалов представлено на английском языке. Впрочем, следует напомнить, что это некоммерческий проект и развивается он энтузиастами.
Для обеспечения безопасности и отражения нападений нужно до тонкостей знать, как работают системы. Иногда для достижения успеха достаточно бывает опередить противника всего лишь на один шаг. И здесь помимо собственного опыта немалую роль играет получение знаний из различных источников. В силу специфики тематики большое количество специализированной информации устаревает быстрее, чем успевает появиться. Актуальную на данный момент информацию лучше искать в новостях и форумах, посвященных компьютерной безопасности Web-ресурсов, таких как организация CERT/CC.
Дополнительные утилиты для системы Snort
Analysis Console for Intrusion Databases (ACID) — аналитическая система, предоставляющая Web-интерфейс (используется PHP) для просмотра результатов анализа лог-файлов брандмауэров, NIDS, сетевых диагностирующих программ. Версия 0.9.6. работает в среде всех ОС, поддерживающих PHP (Linux, *BSD, Windows, Solaris). Лицензия — GNU GPL.
Intrusion Detection Exchange Architecture (IDEA) — система распределенного контроля безопасности сети. Текущая версия — 1.0.2. Используя архитектуру клиент—сервер, она связывает множество NIDS-систем, объединяя их данные в информационный базис и обеспечивая анализ в режиме реального времени. IDEA реализована как системонезависимая программа, применяющая технологию Java. Распространяется по лицензии GNU GPL.
RazorBack — программа, работающая совместно со Snort и обеспечивающая при обнаружении вторжения предупреждение в режиме реального времени. Текущая версия — 1.0.3. Операционные системы: Unix, Windows NT. Лицензия — GNU GPL.
SnortConf — графическая оболочка для Snort. Разработанная на основе библиотеки Curses, программа SnortConf предоставляет простой и интуитивно понятный интерфейс — меню по администрированию Snort. Версия — 0.4.2-1. Предназначена для POSIX-совместимых систем (Solaris, *BSD, Linux и т.д.). Лицензия — GNU GPL.
IDScenter — графическая оболочка Snort-Win32 (рекомендуется использовать Windows NT4/2000/XP). Текущая версия — 1.1. IDScenter значительно облегчает задачи управления, контроля и мониторинга Snort IDS. Включает функции диагностики конфигурации, поддерживает сигналы тревоги Snort. При определении атаки можно запустить внешнее приложение. Распространяется по лицензии Freeware.
IDS Policy Manager — инструмент изменения конфигурации и правил Snort. Легко добавляются новые сигнатуры. Может использовать популярные базы данных сигнатур: CVE, BugTraq, Mcafee. Версия — 1.3.1. Операционные системы — Windows 2000/XP. Лицензия — Freeware.