Библиотека Интернет Индустрии I2R.ru |
|||
|
Сигнатуры систем обнаружения вторжения, часть перваяЭто первая часть из цикла статей, посвященных пониманию и развитию сигнатур для систем обнаружения вторжения. В этой статье мы обсудим основы IDS сигнатур и подробнее остановимся на сигнатурах, использующих значение IP, TCP, UDP и ICMP заголовков. Такие сигнатуры игнорируют содержание пакетов и вместо этого ищут некоторые значения поля заголовка или комбинацию таких. Изучение сетевых IDS сигнатур поможет вам понять принцип работы систем IDS и создать основу для написания собственных сигнатур.
Основы сигнатурСетевая IDS сигнатура - набор данных, которые мы хотим найти в трафике. Рассмотрим некоторые примеры и методы, которые позволяют их идентифицировать:
Для чего вообще нужны сигнатуры?Ответ на этот вопрос на первый взгляд кажется очевидным, но если вдуматься, какова цель сигнатуры обнаружения вторжения? Ответ - различные сигнатуры служат для различных целей. В глобальном смысле, их общая задача - предупреждать нас при попытках вторжения. Возможно, вы наблюдали какой-то подозрительный трафик в вашей сети, и хотите в случае повторения чего-либо подобного быть начеку. А может быть, вы заметили какие то необычные характеристики заголовка, и хотите записать сигнатуру, которая будет искать соответствия этому подозрительному шаблону. Или, возможно, вы занимаетесь конфигурированием вашего IDS, настраивая ее на идентификацию различных типов нестандартного или подозрительный трафика, а не только на отражение известных типов нападения. Некоторые сигнатуры могут сообщить вам, что происходит попытка определенного типа нападения или кто-то пытается эксплуатировать известные уязвимости в программных продуктах, в то время как другие сигнатуры могут только выявлять необычное поведение, при этом не обязательно должна проходить идентификация типа нападения. Некоторые сигнатуры способны, при определенной затрате времени и программных ресурсов, идентифицировать инструмент, которым нападающий пытается вызвать злонамеренное действие, и это даст вам подробную информацию относительно того, как, кем и почему вы атакованы, и каковы дальнейшие намерения злоумышленника.
Значения заголовковТеперь давайте рассмотрим простую характеристику сигнатуры: значение заголовка. Некоторые значения заголовка ясно подозрительные, так что они и будут первыми кандидатами на сигнатуру. Классическим примером этого является TCP пакет с набором флажков SYN и FIN. Это - явное нарушение RFC 793 (которым определяется TCP стандарт), что и используется во многих инструментальных средствах атаки для прохождения межсетевых защит, маршрутизаторов или систем обнаружения вторжения. Многие эксплоиты включают значения заголовка, преднамеренно нарушающее правила RFC, так как многие операционные системы и прикладные программы написаны при условии, что законы RFC соблюдаются, поэтому и не исполняют надлежащей обработки ошибок трафика. Также, некоторые инструментальные средства могут содержать случайные или преднамеренные ошибки кодирования так, чтобы пакеты, произведенные ими, содержали значения заголовков, нарушающих законы RFC. И плохо написанные программы, и различные методы вторжения содержат расхождение характеристик заголовков, что может использоваться для создания сигнатуры.Эти звучит красиво и просто, но в данном вопросе существует множество подводных камней. Так, не все операционные системы и прикладные программы твердо придерживаются правил RFC. Фактически, многие программы имеют какие-то аспекты поведения, нарушающие RFC. Также, со временем протоколы могут изменяться и получать новые возможности, ранее не включенные в RFC. И новые стандарты появляются время от времени, что также может "легализовать" действия, которые ранее были запрещены. Так RFC 3168 в разделе Explicit Congestion Notification (ECN), является хорошим примером этого. Так что сигнатура IDS, основанная на устаревших правилах RFC, может производить множество сигналов ложной тревоги. Тем не менее, RFC могут являться неплохим базисом для развития сигнатур, потому что множество злонамеренных действий явно нарушают RFC. Так как периодически правила RFC обновляются, кроме того, существует ряд других факторов, которые мы рассмотрим дальше, поэтому важно периодически пересматривать и модифицировать существующие сигнатуры. Хотя некорректные значения заголовка, конечно, основная составляющая сигнатур, законные, но подозрительные значения заголовка, по крайней мере, так же важны. Например, определение готовности к подключениям к подозрительным номерам портов типа 31337 или 27374 (обычно связываемых с троянами) может служить быстрым путем идентификации троянов. К сожалению, часть нормального, безопасного трафика может использовать те же самые числа портов. Поэтому без более детальной сигнатуры, включающей другие характеристики трафика, мы не сможем определить истинную природу этого трафика. Подозрительные, но законные значения заголовков, как в примере с номерами портов, лучшие проверять в комбинации с другими характеристиками.
Идентификация возможных компонентов сигнатурыЛучший способ понять проблемы разработки сигнатур, основанных на значениях заголовков - рассмотреть конкретный пример. Так, synscan - инструмент, широко используемый в исследовании систем. Активность synscan в Internet в начале 2001 определялась на очень высоком уровне, потому что его код использовался для создания червя Ramen первой волны. Пакеты имели лишь несколько различающихся характеристик. Примеры из части IP и TCP заголовка, которые существовали в пакетах червя Ramen. (Обратите внимание, что блок сконфигурирован так, чтобы тихо остановить незапрашиваемый трафик, так что мы видим первый пакет каждой попытки.)
Некоторые характеристики synscan пакетов аномальные и могли бы использоваться в сигнатурах:
Выбор сигнатурыПоскольку мы идентифицировали пять потенциальных элементов сигнатуры, у нас может быть множество различных вариантов для разработки сигнатуры на основе заголовка, так как сигнатура может включать любой выбранный элемент или их комбинацию. Простая сигнатура основывалась бы на пакетах с набором SYN и FIN флажков. Хотя это и является хорошим индикатором вероятного злонамеренного действия, он не даст нам ответа, почему это опасное действие стало возможным. Понятно, что SYN и FIN традиционно используются вместе, чтобы обойти межсетевые защиты и другие защитные устройства, но их присутствие может означать, что проводится просто сканирование нашей защиты, идет сбор информации или началось нападение. Так что сигнатура, основанная только на SYN и FIN, может быть слишком проста, чтобы быть действительно полезной.С другой стороны, сигнатура, основанная на всех пяти выбранных подозрительных характеристиках, должна быть более определенной. Да, она обеспечит нас гораздо более точной информацией об источнике нападения, но будет гораздо менее эффективной, чем сигнатура, проверяющая только одно значение заголовка. Развитые сигнатуры - всегда компромисс между эффективностью и точностью. В большинстве случаев, простые сигнатуры более склонны к ложным тревогам, чем более сложные сигнатуры, из-за своей прямолинейности. Но тут, правда, стоит учитывать, что более сложные сигнатуры чаще могут устаревать и становиться склонным к фальшивым тревогам, из-за того, что какая-то одна из характеристик инструмента или методологии может измениться со временем. Давайте предположим, что одна из целей нашей сигнатуры состоит в том, чтобы определить используемый инструмент атаки. Так, помимо определения SYN и FIN, какие параметры из отобранных нами стоит анализировать? Допустим, рефлексивные портовые числа подозрительны, но они не обеспечивают достаточно определенную сигнатуру, так как много средств атаки используют их, также как и некоторый законный трафик. Набор значения ACK без флажка ACK, бесспорно, недопустим и мог бы использоваться в сигнатуре как сам по себе, так и в комплекте с соединением SYN и FIN. window size 1028, хотя и является немного подозрительным, но может происходить естественно. Также, как и IP identification number 39426. Мы можем разработать несколько сигнатур, которые используют различные комбинации этих характеристик. В ряде случаев не бывает единого мнения, что будет лучшей сигнатурой, особенно из-за того, что оптимальная сигнатура быть разной в разных операционных средах, а также меняться со временем. Но все эти примеры и случаи мы рассмотрим далее. Karen Kent Frederick |
|
2000-2008 г. Все авторские права соблюдены. |
|