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



Позволяющих защитить ИТ-инфраструктуру компании продвинутых средств существует множество. Сегодня мы поговорим о системах обнаружения и предупреждения вторжений с открытым исходным кодом, внедрить которые можно без покупки дорогостоящего оборудования и программных лицензий.

Классификация IDS/IPS


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

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

Изначально IDS классифицировались по месту расположения: они могли быть ориентированы на защиту отдельных узлов (host-based или Host Intrusion Detection System — HIDS) или защищать всю корпоративную сеть (network-based или Network Intrusion Detection System — NIDS). Стоит упомянуть т.н. APIDS (Application protocol-based IDS): они отслеживают ограниченный набор протоколов прикладного уровня для выявления специфических атак и не занимаются глубоким анализом сетевых пакетов. Такие продукты обычно напоминают прокси и используются для защиты конкретных сервисов: веб-сервера и веб-приложений (например, написанных на PHP), сервера баз данных и т.д. Типичный представитель этого класса — mod_security для веб-сервера Apache.

Нас больше интересуют универсальные NIDS, поддерживающие широкий набор коммуникационных протоколов и технологии глубокого анализа пакетов DPI (Deep Packet Inspection). Они мониторят весь проходящий трафик, начиная с?канального уровня, и выявляют широкий спектр сетевых атак, а также попытки неавторизованного доступа к информации. Часто такие системы отличаются распределенной архитектурой и могут взаимодействовать с различным активным сетевым оборудованием. Отметим, что многие современные NIDS являются гибридными и объединяют несколько подходов. В зависимости от конфигурации и настроек они могут решать различные задачи — например, защиту одного узла или всей сети. К тому же функции IDS для рабочих станций взяли на себя антивирусные пакеты, которые из-за распространения направленных на кражу информации троянов превратились в многофункциональные брандмауэры, решающие в том числе задачи распознавания и блокирования подозрительного трафика.

Изначально IDS могли только обнаруживать действия вредоносного ПО, работу сканеров портов, или, скажем, нарушения пользователями корпоративных политик безопасности. При наступлении определенного события они уведомляли администратора, но довольно быстро стало понятно, что просто распознать атаку недостаточно — ее нужно заблокировать. Так IDS трансформировались в IPS (Intrusion Prevention Systems) — системы предотвращения вторжений, способные взаимодействовать с сетевыми экранами.

Методы обнаружения


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

  • Сигнатурные IDS/IPS выявляют в трафике некие шаблоны или отслеживают изменения состояния систем для определения сетевой атаки или попытки заражения. Они практически не дают осечек и ложных срабатываний, но не способны выявить неизвестные угрозы;
  • Выявляющие аномалии IDS не используют сигнатуры атак. Они распознают отличающееся от нормального поведение информационных систем (включая аномалии в сетевом трафике) и могут определить даже неизвестные атаки. Такие системы дают довольно много ложных срабатываний и при неграмотном использовании парализуют работу локальной сети;
  • Основанные на правилах IDS работают по принципу: if ФАКТ then ДЕЙСТВИЕ. По сути дела это экспертные системы с базами знаний — совокупностью фактов и правил логического вывода. Такие решения трудоемки в настройке и требуют от администратора детального понимания работы сети. 

История развития IDS


Эпоха бурного развития Интернета и корпоративных сетей началась в 90-е годы прошлого века, однако продвинутыми технологиями сетевой безопасности специалисты озадачились чуть раньше. В 1986 году Дороти Деннинг и Питер Нейман опубликовали модель IDES (Intrusion detection expert system), ставшую основой большинства современных систем обнаружения вторжений. Она использовала экспертную систему для определения известных видов атак, а также статистические методы и профили пользователей/систем. IDES запускалась на рабочих станциях Sun, проверяя сетевой трафик и данные приложений. В 1993 году вышла NIDES (Next-generation Intrusion Detection Expert System) — экспертная система обнаружения вторжений нового поколения.

На основе работ Деннинга и Неймана в 1988 году появилась экспертная система MIDAS (Multics intrusion detection and alerting system), использующая P-BEST и LISP. Тогда же была создана основанная на статистических методах система Haystack. Еще один статистический детектор аномалий W&S (Wisdom & Sense) годом позже разработали в Лос-Аламосской Национальной лаборатории. Развитие отрасли шло быстрыми темпами. К примеру, в 1990 году в системе TIM (Time-based inductive machine) уже было реализовано обнаружение аномалий с использованием индуктивного обучения на последовательных паттернах пользователя (язык Common LISP). NSM (Network Security Monitor) для обнаружения аномалий сравнивал матрицы доступа, а ISOA (Information Security Officer’s Assistant) поддерживал различные стратегии обнаружения: статистические методы, проверку профиля и экспертную систему. Созданная в AT&T Bell Labs система ComputerWatch использовала для проверки и статистические методы и правила, а первый прототип распределенной IDS разработчики Университета Калифорнии получили еще в 1991 году — DIDS (Distributed intrusion detection system) по совместительству являлась и экспертной системой.

Поначалу IDS были проприетарными, но уже в 1998 году Национальная лаборатория им. Лоуренса в Беркли выпустила Bro (в 2018 году она была переименована в Zeek) — систему с открытым исходным кодом, использующую собственный язык правил для анализа данных libpcap. В ноябре того же года появился использующий libpcap сниффер пакетов APE, который через месяц был переименован в Snort, а позднее стал полноценной IDS/IPS. Тогда же начали появляться и многочисленные проприетарные решения.

Snort и Suricata


Во многих компаниях отдают предпочтение бесплатным IDS/IPS с открытым исходным кодом. Долгое время стандартным решением считалась уже упомянутая нами Snort, но сейчас ее потеснила система Suricata. Рассмотрим их преимущества и недостатки чуть подробнее. Snort комбинирует преимущества сигнатурного метода с возможностью обнаружения аномалий в реальном времени. Suricata также позволяет использовать другие методы помимо распознавания атак по сигнатурам. Система была создана отделившейся от проекта Snort группой разработчиков и поддерживает функции IPS, начиная с версии 1.4, а в Snort возможность предотвращения вторжений появилась позднее.

Основное различие между двумя популярными продуктами заключается в наличии у Suricata возможности использования GPU для вычислений в режиме IDS, а также в более продвинутой IPS. Система изначально рассчитана на многопоточность, в то время как Snort — продукт однопоточный. Из-за своей давней истории и унаследованного кода он не оптимально использует многопроцессорные/многоядерные аппаратные платформы, тогда как Suricata на обычных компьютерах общего назначения позволяет обрабатывать трафик до 10 Гбит/сек. О сходствах и различиях двух систем можно рассуждать долго, но хотя движок Suricata и работает быстрее, для не слишком широких каналов это не имеет принципиального значения.

Варианты развертывания


IPS необходимо разместить таким образом, чтобы система могла наблюдать за подконтрольными ей сегментами сети. Чаще всего это выделенный компьютер, один интерфейс которого подключается после пограничных устройств и «смотрит» через них в незащищенные сети общего пользования (Интернет). Другой интерфейс IPS подключается на вход защищаемого сегмента, чтобы весь трафик проходил через систему и анализировался. В более сложных случаях защищаемых сегментов может быть несколько: скажем, в корпоративных сетях часто выделяют демилитаризованную зону (DMZ) с доступными из Интернета сервисами.

image

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

Часто корпоративные сети подвергаются распределенным атакам, направленным на отказ в обслуживании (DDoS). Хотя современные IDS умеют с ними бороться, приведенный выше вариант развертывания здесь едва ли поможет. Система распознает вредоносную активность и заблокирует паразитный трафик, но для этого пакеты должны пройти через внешнее интернет-подключение и попасть на ее сетевой интерфейс. В зависимости от интенсивности атаки, канал передачи данных может не справиться с нагрузкой и цель злоумышленников будет достигнута. Для таких случаев мы рекомендуем разворачивать IDS на виртуальном сервере с заведомо более производительным интернет-соединением. Подключить VPS к локальной сети можно через VPN, а затем потребуется настроить через него маршрутизацию всего внешнего трафика. Тогда в случае DDoS-атаки не придется гонять пакеты через подключение к провайдеру, они будут заблокированы на внешнем узле.

image

Проблема выбора


Выявить лидера среди бесплатных систем очень сложно. Выбор IDS/IPS определяется топологией сети, нужными функциями защиты, а также личными предпочтениями админа и его желанием возиться с настройками. Snort имеет более давнюю историю и лучше документирован, хотя и по Suricata информацию также нетрудно найти в сети. В любом случае для освоения системы придется приложить определенные усилия, которые в итоге окупятся — коммерческие аппаратные и аппаратно-программные IDS/IPS стоят достаточно дорого и не всегда помещаются в бюджет. Жалеть о потраченном времени не стоит, потому что хороший админ всегда повышает квалификацию за счет работодателя. В этой ситуации все остаются в выигрыше. В следующей статье мы рассмотрим некоторые варианты развертывания Suricata и на практике сравним более современную систему с классической IDS/IPS Snort.