Защита от хакеров корпоративных сетей
Шрифт:
В самом общем смысле вычислительные системы можно определить как машину с конечным числом состояний. Буквально это означает, что существует предопределенное число специфических состояний машины, в которые она может перейти. Препятствующее работе систем обнаружения вторжений ограничение состоит в том, что они встретят во всеоружии известную им атаку, и только один раз (другими словами, эффективность их применения зависит от размера базы данных сигнатур, с которой работает система). Объясняется это следующим. Во-первых, как можно предвидеть внутренние характеристики вторжения, если оно еще не произошло? Нельзя предупредить о нападениях, которые еще никто никогда прежде не видел. Во-вторых, можно только оттачивать механизмы обнаружения вторжений на уже свершившихся атаках, поскольку в будущем детали этих нападений могут проясниться. Можно создать сигнатуру прошлого нападения после его свершения, но нет никакой гарантии, что атака, проведенная в прошлом, когда-либо встретится еще раз. В-третьих, системы обнаружения вторжения могут
Пытаясь избежать обнаружения, злоумышленник преследует двойную цель: полностью уклониться от обнаружения или, используя специальные методы и способы, существенно увеличить нагрузку на систему обнаружения вторжений. В целом чем больше методов широкомасштабно использует злоумышленник, тем больше производителей вынуждены оснащать свои системы обнаружения вторжений все более сложными средствами анализа пакетов и поиска соответствия характерных признаков атак с сигнатурами из базы данных. Несомненно, что сложные системы обладают меньшей производительностью и предоставляют злоумышленнику больше возможностей для уклонения от обнаружения. Парадокс состоит в том, что чем сложнее система, тем она уязвимее! Некоторые специалисты считают, что отношение числа ошибок к числу машинных команд может достигать соотношения 1: 1000. Даже консерваторы говорят, что это отношение может принимать значение 1: 10000. Принимая это во внимание, можно полагать, что рост сложности систем ведет к повышению уровня ее ненадежности.
Ложные срабатывания и упущения
Для того чтобы стать эффективной, система обнаружения вторжения должна своевременно усваивать доступную ей информацию и сообщать о ней. Ложные срабатывания (false positive) – это реакция на событие, которое на самом деле не произошло и которое может быть столь же безопасным, как и загрузка базы данных сигнатур по каналу связи или своеобразный сетевой трафик при запуске сетевой игры. Загрузка базы данных сигнатур системы обнаружения вторжения может стать источником любого из описанных сигналов тревоги. Это хотя и раздражает, но обычно не имеет больших последствий. Подобное легко может произойти и обычно является результатом неверной настройки конфигурации сетевой системы обнаружения вторжений (NIDS) в начале ее эксплуатации или при ее обкатке. Большую опасность представляют так называемые упущения (false negatives). Упущения – это отказ в работе системы обнаружения вторжения, заключающийся в пропуске атаки. Упущение может произойти в результате отказа отдельных функциональных модулей системы. Упущение как ошибочный пропуск атаки является результатом модификации злоумышленником ее кода, для того чтобы перехитрить средства обнаружения атаки системой обнаружения вторжения. Упущение существенно влияет на эффективность работы системы обнаружения вторжения. Если читатель постоянно контролирует работу системы обнаружения вторжения, то вскоре он привыкнет к ее типичному поведению. В случае недопустимого большого числа случаев ложного срабатывания системы можно уменьшить число анализируемых признаков, совокупность которых приводит к ложному срабатыванию и охоте за диким гусем, и признать факт существования многочисленных повседневных событий. В конечном итоге управлять всеми возможностями системы обнаружения вторжения можно, приняв единственное основополагающее решение: принимать или не принимать меры по выявленной ситуации.
Оповещение о лавинообразном процессе
Эта проблема имеет смысл из-за выдачи системами обнаружения вторжения настолько частых повторных отчетов, что это напоминает сценарий лавинообразного процесса. Шквал отчетов является процессом придания системе обнаружения вторжения новых свойств, вызванных ее перегрузкой и потопом предупреждений. Для злоумышленника подобная атака сулит ряд преимуществ. Если огневая мощь злоумышленника достаточна для превышения пропускной способности сети, то вполне возможна атака типа «отказ в обслуживании» (DoS).
Для большинства датчиков систем обнаружения вторжения критичным является условие, получившее название парадокса первого (или многократного) соответствия. Согласно ему датчик должен принять важное решение: подавать сигнал тревоги при первом же найденном соответствии характерных признаков атаки сигнатуре из базы данных сигнатур или предпринять попытку поиска дальнейших соответствий. Проблема заключается в том, что сначала злоумышленник может определить низкоприоритетную или благоприятную для него сигнатуру, записанную во многие базы данных сигнатур системы обнаружения вторжения, а затем попытаться воспроизвести ее в ходе более разрушительной атаки. В результате при настройке датчика на выдачу сигнала тревоги
Кроме желательного для злоумышленника отказа датчика системы обнаружения вторжения, он может получить дополнительную выгоду в результате генерации чрезмерного количества предупреждений (сгенерировать более 10 000 предупреждений для него особого труда не составит), которые администратор должен будет как-то осмыслить. Выбранный для атаки компьютер может полностью потеряться среди выводимых на монитор сообщений, гудков и красных флажков, которые могут поставить в тупик кого угодно. Администратор может просто запутаться, воспринимая огромное количество различных звуковых и графических сообщений об атаках. В лучшем случае попытка идентификации реального вторжения в таких условиях будет сильно затруднена. Также не стоит забывать о психологическом воздействии на оператора, которое часто воспринимается им как тотальная атака всего Интернета на оборудование защищаемой сети. Насколько эффективной окажется система обнаружения вторжением, если подобные атаки станут обычным делом?
Уклонение на уровне пакетов
На сетевые системы обнаружения вторжения возложена малопонятная задача выявления смысла из буквально миллионов ежесекундно поступающих кусочков информации при обеспечении приемлемого времени реакции (обычно желательно обеспечить время реакции настолько близко к реальному масштабу времени, насколько это возможно). Для устранения возможных ошибок анализа данных сетевая система обнаружения вторжения работает на различных уровнях стека сетевых протоколов. При его исследовании в первую очередь следует обратить внимание на сетевой и транспортный уровни, где у злоумышленника большие возможности запутать, уклониться или вывести из строя датчик системы обнаружения вторжения. Если перед злоумышленником стоит задача найти способ уклонения от обнаружения, то идеальной точкой начала исследования являются именно эти два уровня, поскольку все прочие возможности идентификации атаки системой обнаружения вторжения, впрочем, как и атакуемого хоста, зависят от возможности правильной интерпретации сетевого трафика на этих двух уровнях.
К сожалению, в силу технических особенностей протоколов IP и TCP, у лиц, ответственных за защиту данных, нет возможности четко контролировать их работу. Работу этих протоколов в динамической среде описывают стандарты, в которых оговорены два утверждения: «НЕ ПЛОХО БЫ» и «МОЖНО». Утверждение «ДОЛЖЕН» зарезервировано только для наиболее важных запросов. Подобное определение стандарта протоколов ведет ко многим осложнениям при попытке интерпретировать сетевые средства связи. Таким образом, у злоумышленника сохраняется возможность десинхронизации состояний системы обнаружения вторжения. Из-за этого она не сможет правильно скомпоновать сетевой трафик в единое целое тем же способом, что и атакуемый хост. Например, если сигнатура системы обнаружения вторжения задает поиск строки символов «CODE-RED» в любом HTTP-запросе, то атакующий может фрагментировать трафик таким образом, чтобы пакеты приходили к системе обнаружения вторжения в ином, чем для хоста получателя пакетов, порядке. Таким образом, злоумышленник может добраться до интересующего его хоста, в то время как система обнаружения вторжения не сможет правильно проинтерпретировать происходящие события.
Приоткрывая завесу
Интерпретация спецификаций протоколов TCP/IP
Определенные трудности, свойственные интерпретации спецификаций протоколов TCP/IP, предоставляют разнообразные возможности идентификации. Для идентификации удаленной операционной системы может быть использовано все, что угодно, начиная от начального порядкового номера пакета TCP и заканчивая опциями обработки символов. Подобная уникальность реализации операционных систем (в базе данных утилиты nmap содержится описание более 300 характерных признаков операционных систем) является источником некоторых из наиболее критичных и сложных проблем разработки систем обнаружения вторжения. Попытка декодирования потока данных, направляемого в адрес какого-либо хоста, без глубокого знания особенностей внутренней работы его стека протокола является чрезвычайно сложным занятием.
Несколько лет назад была написана статья, посвященная обсуждению многих проблем развития сетевых систем обнаружения вторжения. Важно, что рассмотренные в 1998 году Томасом Птасеком (Thomas Ptacek) и Тимоти Невшамом (Timothy Newsham) в статье «Вставка, уклонение и отказ в обслуживании: ускользание от обнаружения вторжения в сеть» (Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection),атаки принадлежат широкому диапазону: от вставки нужных злоумышленнику данных в передаваемый поток данных до уклонения от обнаружения. Вставка и уклонение составляют основу противодействия проверке на соответствие сигнатур.