Анализ сигнатур или анализ протоколов, что
лучше?
Автор (С): Матт Таназ
Анализ сигнатур был первым методом, примененным для обнаружения вторжения. Он базируется на простом понятии совпадения последовательности с образцом. Во входящем пакете просматривается байт за байтом и сравнивается с сигнатурой (подписью) - характерной строкой программы, указывающей на характеристику вредного трафика. Такая подпись может содержать ключевую фразу или команду, которая связана с нападением. Если совпадение найдено, объявляется тревога. В противном случае в пакете отыскивается следующая подпись. Как только все подписи проверены, в память записывается следующий пакет, и процесс начинается снова. Критики анализа подписи часто пренебрежительно называют такой анализ "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 системы, которые, хотя
и выполняют анализ протокола, позволяют пользователю или оператору создавать
сигнатуры для специфических трафиков. В будущем мы можем ожидать появления большего
количества таких систем. Точно так же системы на основе сигнатур используют
прикладные процессоры, чтобы более эффективно распознавать атаки.
В конечном счете, мы движемся к намного более полному проекту, который будет надежно исследовать все происходящее и знать какого клиента и какого ответа сервера следует ожидать в данном месте процесса. Хотелось бы надеяться, что соревнование двух методов анализа скоро принесет плоды для пользователей.
Заключение
На первый взгляд два метода обнаружения вторжения - анализ сигнатур и анализ
протокола, кажутся весьма разными, но философское изучение проблемы показывает
их некоторое сходство. В конце концов, эти инструменты безопасности исследуют
форматированные данные об атаках и аномалиях. Эти два метода, первоначально
казавшиеся несвязанными, постепенно объединяются в современных программных продуктах.
Эксплуатация сильных сторон каждого подхода и удаление слабых приведет, похоже,
к созданию нового продукта, превосходящего все имеющиеся.