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

Сигнатура атаки содержит несколько компонентов, которые однозначно ее идентифицируют. Идеальная сигнатура - это такая сигнатура, которая, с одной стороны, полностью определяет атаку, а с другой - настолько проста, насколько это возможно (большие сложные сигнатуры могут стать причиной серьезных накладных расходов на их обработку). Поскольку существуют различные типы атак, то должны быть различные типы сигнатур. Некоторые сигнатуры можно получить, изучая уникальные характеристики отдельных режимов работы протокола 1Р. Возможно, что таким образом можно будет идентифицировать сканирование порта утилитой пшар. Другие сигнатуры получают в результате анализа программного кода атаки.

Большинство сигнатур было создано путем многократного выполнения известного программного кода атаки с контролем сопутствующих ему данных в сети и поиском в них уникальной последовательности двоичных кодов, повторяющихся при каждом выполнении. Этот способ создания сигнатур хорошо зарекомендовал себя в случае последовательных попыток известных типов атак на сеть. Автору приходилось иметь дело с некачественными сигнатурами. Некоторые из них были настолько примитивны, что оказались бесполезными против агрессивного злоумышленника, быстро просматривающего несколько \УеЬ-сайтов. Тем не менее помните, что идея заключается в уникальной идентификации атаки, а не просто в ее обнаружении.

Инструментарий и ловушки Компоненты сигнатуры

Ниже приводится пример сигнатур, описанных на языке описания сигнатур, который используется системой обнаружения вторжения Snort:

alert tcp $EXTERNAL_NET any -> $HOME_NET 8080 (msg:“SCAN Proxy attempt”;flags:S; classtype:attempted-recon; sid:620; rev:l;)
alert ip $EXTERNAL_NET any -> $HOME_NET :1023 (msg:“SHELLCODE
linux shellcode”; content:“90 90 90 e8 cO ff ff ff/bin
/sh”; classtype:attempted-admin; sid:652; rev:2;)
alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:“FTP CWD
flags:A+; content:“CWD classtype:bad-unknown; sid:1229
; rev:l;)
alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:“ICMP traceroute ipopts”; ipopts: rr; itype: 0; classtype: attempted-recon; sid:475; rev:l;)
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:“WEBATTACKS chgrp command attempt”; flags:A+; content:“/usr/bin/ chgrp”;nocase; sid: 1337; rev:l; classtype:web-application -attack;)

Язык описания сигнатур системы Snort является описательным языком, используемым для создания любых правил. Чтобы не запутаться в сложных деталях написания собственных сигнатур, давайте пробежимся по примеру слева направо и попытаемся его понять. Можно увидеть, что в примере определяются различные виды предупреждений об опасности. Предупреждения группируются по протоколам с указанием особенностей производимых действий. Например, для ограничения возможных действий в правилах указывается 1Р-адрес и номера портов. IP-адрес задается переменными $EXTERNAL_NET и $HOME_NET, обычно определяемыми с использованием стиля бесклассовой междоменной маршрутизации СПЖ как 10.10.10.0/24. Стиль СПЖ является описанием над сети единственной строкой в таблице маршрутизации с использованием укороченной маски подсети. Надсеть включает в себя несколько сетей одного класса. Ключевое слово msg определяет сообщение, которое будет отправлено при активизации правила после нахождения заданной сигнатуры.

Параметр flags определяет, какие из установленных флажков режимов работы протокола TCP используются для анализа потока данных. Ключевое слово Ipopts задает анализируемые параметры пакетов протокола ГР. А слово content используется для определения уникальной последовательности данных, содержащейся в пакете. Значение ключевого слова content задается в шестнадцатеричном формате между двумя вертикальными полосами, в то время как значения остальных слов - в формате ASCII. Первое правило отслеживает любую попытку подключения к внутреннему хосту извне по номеру порта 8080 протокола TCP. Этот порт часто используется проксимодулями доступа к сети Интернет. Второе правило ищет в каждом IP-пакете часто используемую последовательность команд командного процессора shell, передаваемую по номеру порта, который меньше, чем 1024. (Запись :1023 является сокращенной формой записи номеров портов между 0 и 1023 включительно.) Третье правило задает проверку наличия команды «CWD...», которая передается через порт 21 протокола TCP. Порт 21 по умолчанию используется протоколом передачи файлов FTP. Четвертое правило контролирует пакеты IP с установленной опцией маршрутизации записи rr (Record Route). Последнее правило контролирует прохождение строки /usr/bln/chgrp через порт 80 протокола передачи гипертекстовых файлов HTTP.

В самом общем смысле вычислительные системы можно определить как машину с конечным числом состояний. Буквально это означает, что существует предопределенное число специфических состояний машины, в которые она может перейти. Препятствующее работе систем обнаружения вторжений ограничение состоит в том, что они встретят во всеоружии известную им атаку, и только один раз (другими словами, эффективность их применения зависит от размера базы данных сигнатур, с которой работает система). Объясняется это следующим. Во-первых, как можно предвидеть внутренние характеристики вторжения, если оно еще не произошло? Нельзя предупредить о нападениях, которые еще никто никогда прежде не видел. Во-вторых, можно только оттачивать механизмы обнаружения вторжений на уже свершившихся атаках, поскольку в будущем детали этих нападений могут проясниться. Можно создать сигнатуру прошлого нападения после его свершения, но нет никакой гарантии, что атака, проведенная в прошлом, когда-либо встретится еще раз. В-третьих, системы обнаружения вторжения могут оказаться неспособными распознать новое нападение, не отличив его от присутствующего в любой сети фонового белого шума. Слишком интенсивное использование сети или большое количество ошибочных результатов ее контроля может привести к блокировке правил оповещения об атаке. И наконец, системы обнаружения вторжений могут быть обмануты даже небольшой модификацией известной атаки. Это является следствием или ограниченности принципа поиска соответствий сигнатуре характерных признаков атаки, или, что более существенно, недостатками в работе средств анализа пакета. И то, и другое может исключить всякую возможность обнаружения атаки.

Пытаясь избежать обнаружения, злоумышленник преследует двойную цель: полностью уклониться от обнаружения или, используя специальные методы и способы, существенно увеличить нагрузку на систему обнаружения вторжений. В целом чем больше методов широкомасштабно использует злоумышленник, тем больше производителей вынуждены оснащать свои системы обнаружения вторжений все более сложными средствами анализа пакетов и поиска соответствия характерных признаков атак с сигнатурами из базы данных. Несомненно, что сложные системы обладают меньшей производительностью и предоставляют злоумышленнику больше возможностей для уклонения от обнаружения. Парадокс состоит в том, что чем сложнее система, тем она уязвимее! Некоторые специалисты считают, что отношение числа ошибок к числу машинных команд может достигать соотношения 1: 1000. Даже консерваторы говорят, что это отношение может принимать значение 1: 10000. Принимая это во внимание, можно полагать, что рост сложности систем ведет к повышению уровня ее ненадежности.

Ложные срабатывания и упущения

Для того чтобы стать эффективной, система обнаружения вторжения должна своевременно усваивать доступную ей информацию и сообщать о ней. Ложные срабатывания (false positive) - это реакция на событие, которое на самом деле не произошло и которое может быть столь же безопасным, как и загрузка базы данных сигнатур по каналу связи или своеобразный сетевой трафик при запуске сетевой игры. Загрузка базы данных сигнатур системы обнаружения вторжения может стать источником любого из описанных сигналов тревоги. Это хотя и раздражает, но обычно не имеет больших последствий. Подобное легко может произойти и обычно является результатом неверной настройки конфигурации сетевой системы обнаружения вторжений (NIDS) в начале ее эксплуатации или при ее обкатке. Большую опасность представляют так называемые упущения (false negatives). Упущения - это отказ в работе системы обнаружения вторжения, заключающийся в пропуске атаки. Упущение может произойти в результате отказа отдельных функциональных модулей системы. Упущение как ошибочный пропуск атаки является результатом модификации злоумышленником ее кода, для того чтобы перехитрить средства обнаружения атаки системой обнаружения вторжения. Упущение существенно влияет на эффективность работы системы обнаружения вторжения. Если читатель постоянно контролирует работу системы обнаружения вторжения, то вскоре он привыкнет к ее типичному поведению. В случае недопустимого большого числа случаев ложного срабатывания системы можно уменьшить число анализируемых признаков, совокупность которых приводит к ложному срабатыванию и охоте за диким гусем, и признать факт существования многочисленных повседневных событий. В конечном итоге управлять всеми возможностями системы обнаружения вторжения можно, приняв единственное основополагающее решение: принимать или не принимать меры по выявленной ситуации.

Оповещение о лавинообразном процессе

Эта проблема имеет смысл из-за выдачи системами обнаружения вторжения настолько частых повторных отчетов, что это напоминает сценарий лавинообразного процесса. Шквал отчетов является процессом придания системе обнаружения вторжения новых свойств, вызванных ее перегрузкой и потопом предупреждений. Для злоумышленника подобная атака сулит ряд преимуществ. Если огневая мощь злоумышленника достаточна для превышения пропускной способности сети, то вполне возможна атака типа «отказ в обслуживании» (DoS).

Для большинства датчиков систем обнаружения вторжения критичным является условие, получившее название парадокса первого (или многократного) соответствия. Согласно ему датчик должен принять важное решение: подавать сигнал тревоги при первом же найденном соответствии характерных признаков атаки сигнатуре из базы данных сигнатур или предпринять попытку поиска дальнейших соответствий. Проблема заключается в том, что сначала злоумышленник может определить низкоприоритетную или благоприятную для него сигнатуру, записанную во многие базы данных сигнатур системы обнаружения вторжения, а затем попытаться воспроизвести ее в ходе более разрушительной атаки. В результате при настройке датчика на выдачу сигнала тревоги при первом же найденном соответствии характерных признаков атаки сигнатуре из базы данных может получиться так, что будет обнаружена менее опасная атака и пропущено действительно опасное вторжение. С другой стороны, система обнаружения вторжения при поиске многократных соответствий становится уязвимой к выдаче шкалы предупреждений об атаках. Кроме того, атакующий может сформировать такой трафик в сети, который будет содержать весь спектр сигнатур, содержащихся в базе данных сигнатур системы обнаружения вторжения, который приведет к разрушению ее датчика.

Кроме желательного для злоумышленника отказа датчика системы обнаружения вторжения, он может получить дополнительную выгоду в результате генерации чрезмерного количества предупреждений (сгенерировать более 10 ООО предупреждений для него особого труда не составит), которые администратор должен будет как-то осмыслить. Выбранный для атаки компьютер может полностью потеряться среди выводимых на монитор сообщений, гудков и красных флажков, которые могут поставить в тупик кого угодно. Администратор может просто запутаться, воспринимая огромное количество различных звуковых и графических сообщений об атаках. В лучшем случае попытка идентификации реального вторжения в таких условиях будет сильно затруднена. Также не стоит забывать о психологическом воздействии на оператора, которое часто воспринимается им как тотальная атака всего Интернета на оборудование защищаемой сети. Насколько эффективной окажется система обнаружения вторжением, если подобные атаки станут обычным делом?

Уклонения от системы обнаружения вторжения | Защита от хакеров корпоративных сетей | Уклонение на уровне пакетов


Защита от хакеров корпоративных сетей



Новости за месяц

  • Август
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс