IDS: анализ сигнатур или анализ протоколов, что лучше?

Системы обнаружения вторжения (IDS) очень быстро стали ключевым компонентом любой стратегии сетевой защиты. За последние несколько лет их популярность значительно возросла, поскольку продавцы средств защиты значительно улучшили качество и совместимость своих программ. Основой систем обнаружения вторжения является анализ. В процессе анализа просматривается каждый пакет, определяется, является ли он вредным, и объявляется тревога в случае необходимости, что является основными задачами IDS. В настоящее время появились два различных метода определения атак. Оба метода имеют своих поклонников, используют для своего продвижения обильный маркетинговый материал с выгодными для себя примерами. Но, несмотря на это, каждый метод имеет и свои слабые стороны. В этой статье мы исследуем их и сравним два различных метода: анализ сигнатур и анализ протоколов.

традиционный анализ сигнатур и анализ протоколов

Прежде чем исследовать методики сигнатур и анализа протоколов, давайте кратко рассмотрим основные понятия IDS. Эти устройства (программные комплексы), подобно firewall, проверяют весь входящий и исходящий сетевой трафик. Принципиальным отличием от firewall является то, что они не изменяют поток трафика, скорее, они ищут злонамеренный трафик, который может означать возможное нападение или неправомерное использование, и объявляют тревогу для системного администратора. Мы сосредоточимся на методах, которые используют IDS для выявления злонамеренных трафиков.
Анализ сигнатур был первым методом, примененным для обнаружения вторжения. Он базируется на простом понятии совпадения последовательности с образцом. Во входящем пакете просматривается байт за байтом и сравнивается с сигнатурой (подписью) – характерной строкой программы, указывающей на характеристику вредного трафика. Такая подпись может содержать ключевую фразу или команду, которая связана с нападением. Если совпадение найдено, объявляется тревога. В противном случае в пакете отыскивается следующая подпись. Как только все подписи проверены, в память записывается следующий пакет, и процесс начинается снова. Критики анализа подписи часто пренебрежительно называют такой анализ "packet grepping" (от названия инструмента определения совпадений grep в Unix). Они считают такой инструмент IDS крайне примитивным: в большинстве случаев он может быть дублирован при помощи простых Unix команд.
Второй метод анализа состоит в рассмотрении строго форматированных данных трафика сети, известных как протоколы. Авторы IDS, зная это, внедрили инструменты, которые разворачивают и осматривают эти протоколы, согласно стандартам или RFC. Каждый протокол имеет несколько полей с ожидаемыми или нормальными значениями. Если что-нибудь нарушает эти стандарты, то вероятна злонамеренность. IDS просматривает каждое поле всех протоколов входящих пакетов: IP, TCP, и UDP. Если имеются нарушения протокола, например, если он содержит неожиданное значение в одном из полей, объявляется тревога. Анализ протокола использует детальное знание об ожидаемых или нормальных значениях в полях пакета, для того чтобы обнаружить вредоносный трафик. Первые версии таких IDS были крайне примитивны и обманывались элементарно. Анализ протокола очень отличается от анализа подписи, который использует известные характеристики атак для объявления тревоги.

современные сигнатуры и анализ протокола

Основные понятия, описанные выше — это элементарные сигнатуры и модели анализа протокола. Эти методы в настоящее время значительно развились. Большинство программных продуктов, использующих анализ сигнатур, также используют основной анализ протокола. Всегда проверяются протоколы 3-го (сетевого) и 4-го (транспортного) уровней в модели OSI, которые содержат IP-, TCP- и UDP-пакеты. IDS понимает эти протоколы и знает ожидаемые значения соответствующих полей. Сигнатуры, используемые в настоящее время, часто проверяют большое количество полей различных протоколов, таких, как исходный адрес, порт назначения или TCP-флаги. Кроме того, эти системы, основанные на расшифрованных результатах протокола, знают, где и что искать, что выгружается из пакета, который проверяется на наличие особых последовательностей символов, свидетельствующих о возможной атаке. Такие последовательности могут включать программу эксплоита или другую команду, указывающую на злонамеренность атаки. Например, snort управляет отказами входа в систему в Telnet:

alert tcp $HOME_NET 23 -> $EXTERNAL_NET any (msg:"TELNET Bad Login"; content: "Login failed"; nocase;
flow:from_server,established; classtype:bad-unknown; sid:492; rev:5;)

Важно отметить, что этот инструмент фактически ищет последовательность “Login failed”. Если такая последовательность найдена, объявляется тревога.
IDS, основанные на анализе протокола, также весьма развились. Кроме расшифровки протоколов 3-го и 4-го уровней, о которых мы говорили выше, они также производят детальный анализ протоколов уровня 7 (уровень приложения). Программисты также ввели несколько наиболее популярных протоколов, типа HTTP, SMTP, и telnet, каждый из которых тоже может быть детально исследован на наличие отклонений. Поэтому, каждая из аномалий, типа неожиданных значений в полях протоколов, необычно больших или маленьких пакетов или странные опции, которые могут свидетельствовать об атаке, будут обнаружены.

сила и слабость: анализ сигнатуры

Системы анализа сигнатуры имеют несколько важных сильных сторон. Во-первых, они очень быстры, так как полный анализ пакета — относительно тяжелая задача. Правила легко написать, понять и настроить. Кроме того, имеется просто фантастическая поддержка компьютерного сообщества в быстром производстве сигнатур для новых опасностей. Эти системы превосходят все другие при отлове хакеров на первичном этапе: простые атаки имеют привычку использовать некие предварительные действия, которые легко распознать. Наконец, анализ, основанный на сигнатуре, точно и быстро сообщает, что в системе все нормально (если это действительно так), поскольку должны произойти некие особые события для объявления тревоги.
С другой стороны IDS, основывающаяся только на анализе сигнатур, имеет определенные слабости. Являясь первоначально очень быстрой, со временем скорость ее работы будет замедляться, поскольку возрастает число проверяемых сигнатур. Это — существенная проблема, поскольку число проверяемых сигнатур может расти очень быстро. Фактически, каждая новая атака или действие, придуманное атакующим, увеличивает список проверяемых сигнатур. Не помогут даже эффективные методы работы с данными и пакетами: огромное количество слегка измененных атак могут проскользнуть через такую систему. Атаки на уровне приложений типа Unicode, большое количество вариаций на эту тему, которые можно найти в SNMP и программы уклонения типа ADMutate могут вызвать серьезные проблемы для любой системы анализа сигнатур. Даже малейшего изменения в атаке достаточно, чтобы система анализа сигнатур не сработала. Единственное решение — увеличение списка проверяемых сигнатур, но оно делает работу сложной и неэффективной. Любой администратор IDS может подтвердить, что системы анализа сигнатур производят огромное количество ложных тревог из-за упрощенного подхода к оценке пакетов и строго заданного списка проверяемых сигнатур. Имеется и другая сторона проблемы: так как система работает, сравнивая список имеющихся сигнатур с данными пакета, такая IDS может выявить только уже известные атаки, сигнатуры которых имеются.

сила и слабость: анализ протокола

В случае анализа протоколов имеем аналогичную ситуацию: эта система тоже имеет свои положительные и отрицательные стороны, но совершенно другие. Из-за предпроцессов, требующих тщательной экспертизы протоколов, анализ протокола может быть довольно медленным. Кроме того, правила проверки для системы протокола трудно написать и понять. Можно даже сказать, что в этом случае приходится уповать на добросовестность производителя программы, так как правила относительно сложны и трудны для самостоятельной настройки. Более того, правила становятся все более и более сложными, часто игнорирующими общепринятые стандарты, протоколы и RFC, что создает дополнительную проблему разработчикам IDS и дает шанс для злоумышленника.
На первый взгляд, IDS на основе анализа протокола работают медленнее, чем системы на основе сигнатуры, они, более «основательны» в смысле масштабности и результатов. Кроме того, эти системы ищут «генетические нарушения» и часто могут отлавливать свежайшие “эксплоиты нулевого дня”, что в принципе не могут делать системы на основе анализа сигнатур. К сожалению, подобные системы могут иногда пропускать, очевидно, ненормативные события, типа root telnet session, которые не нарушают никакого протокола. Системы на основе протокола сводят ложные тревоги к минимуму, так как они регистрируют реальные нарушения. К сожалению, они часто не обеспечивают достаточное количество информации. Вместо этого, они просто перекладывают бремя ответственности за возникшую аномалию на администратора.

окружающая среда IDS

Конечно, эффективность IDS зависит от окружающей среды, в которой система будет использоваться. Контроль над большой разветвленной сетью очень отличается от контроля над меньшей однородной окружающей средой. Модели анализа сигнатур лучше всего подходят для сетей среднего размера и рассчитаны на стандартные угрозы. Администраторы могут рассчитывать на огромную поддержку сообщества для обновления списка сигнатур, а способ работы в данном случае не имеет решающего значения. Однако для большой, постоянно изменяющейся сети, вероятно, более выгодно использовать некоторые сильные стороны системы анализа протокола: способ работы, минимальное количество ложных тревог и полное отсутствие всеобщих тревог. Лучшим, но более дорогим решением, было бы создание IDS, содержащей две машины, использующие различные модели. К сожалению, очень немногие могут позволить себе такую роскошь.

будущее: дополнительная модель?

Без сомнения, выбирая IDS, базирующуюся на одном из этих методов, нужно иметь ввиду несколько моментов. Каждая модель превосходит другие в своей области. К счастью, нас как бы поставили во главе направления по согласования этих двух методов. Инженеры и программисты признают очевидные сильные и слабые стороны каждого подхода. Как и ожидалось, разработчики пытаются объединить лучшие компоненты этих подходов, чтобы сделать более сильный продукт. Этот очевидный факт содержится в нескольких последних предложениях IDS. В настоящее время, почти все программные продукты на основе анализа протокола, в некотором смысле, производят сравнения с образцами на прикладном уровне дешифровки. Имеются IDS системы, которые, хотя и выполняют анализ протокола, позволяют пользователю или оператору создавать сигнатуры для специфических трафиков. В будущем мы можем ожидать появления большего количества таких систем. Точно так же системы на основе сигнатур используют прикладные процессоры, чтобы более эффективно распознавать атаки.
В конечном счете, мы движемся к намного более полному проекту, который будет надежно исследовать все происходящее и знать какого клиента и какого ответа сервера следует ожидать в данном месте процесса. Хотелось бы надеяться, что соревнование двух методов анализа скоро принесет плоды для пользователей.

заключение

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

Матт Таназ
обсуждение статьи



Сетевые решения. Статья была опубликована в номере 04 за 2003 год в рубрике save ass…

©1999-2024 Сетевые решения