Изменить стиль страницы

Есть и другие проблемы. Первая из них – это своевременное предупреждение. Я упомянул медленное нападение в предыдущем подразделе. Когда система обнаружения вторжений решит, что было произведено нападение, и уведомит вас об этом? Что, если она подумает, что это лишь отчасти выглядит как нападение? Уведомит ли она вас об этом? Когда? Опять-таки, вспомните о проблеме ложного срабатывания. Если система ошибается слишком часто, вы перестанете прислушиваться к ней.

И что вы будете делать, когда получите сигнал тревоги? Поучительные сообщения общего вида «вы подвергаетесь нападению» бесполезны, если у вас нет какого-нибудь способа защиты или даже нет времени, чтобы с этим разобраться. В 1999 году в eBay отключили электричество на 22 часа, и в течение всего этого времени система обнаружения вторжений постоянно подавала сигнал тревоги, но все были слишком заняты, чтобы ответить. В этом величайшая проблема IDS: разумно реагировать на их выводы.

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

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

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

Другим принципом работы системы обнаружения вторжений является обнаружение аномалии. IDS осуществляет некоторое статистическое моделирование вашей сети и вычисляет, что является нормой. Затем, если происходит какое-либо отклонение от нормы, она подает звуки тревоги. Здесь все может быть сделано по правилам (система знает, что нормально, и сигнализирует обо всем остальном), с использованием статистики (система статистически вычисляет, что нормально, и сигнализирует обо всем остальном) или с применением методов искусственного интеллекта.

Существует множество проблем и здесь. Что, если вас атакуют во время обучения системы? Тогда атака рассматривается как норма. Новые вещи случаются в компьютерных сетях постоянно. Знает ли система обнаружения вторжений разницу между безобидной аномалией и аномалией, указывающей на нападение? И если все, что она знает, является нормой, как же она тогда собирается категоризировать нападения? Для этого вида систем вероятность ложной тревоги намного выше, и нападение на такой вид IDS включает выяснение возможности не бить в набат.

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

Другие идеи IDS так или иначе основываются на одном из описанных выше принципов. Система обнаружения вторжения непрерывного действия (inline) может работать с сетевыми данными в реальном времени, тогда как проверяющая система использует контрольную информацию, сохранившуюся после совершения нападения. Есть IDS, базирующиеся на хостах (host-based IDS), и есть распределенные по сети IDS (network-based IDS).

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

То, что в конечном счете вы можете найти на рынке, – чаще всего гибридные системы: они являются комбинацией систем обнаружения вторжения, базирующихся на главной машине и распределенных по сети, производящих обнаружение аномалии, основанное на ожидании в совокупности с выявлением «неправильного» кода. Вы также можете найти компании, занимающиеся проверкой систем защиты, которые анализируют результаты использования этих продуктов и отвечают на подаваемые ими сигналы тревоги. Подобно брандмауэрам, системы обнаружения вторжения будут становиться все лучше и лучше, поскольку разработчики получают все больше опыта при их проектировании. И так же как у брандмауэров, их надежность в конечном итоге будет зависеть от того, насколько хорошо они конфигурированы и насколько современны их версии. И всегда будут существовать нападения, которые пройдут через них.

Приманки и сигнализации

Сетевые сигнализации и приманки – это разновидности систем обнаружения вторжения, но они заслуживают отдельного раздела. Сигнализации – это особые системы в вашей сети, предназначенные для срабатывания в случае атаки. Приманки – это замаскированные сигнализации, которые выглядят особенно привлекательно для хакеров. Легко понять, что представляют собой сигнализации: особую сетевую команду или фиктивную сеть, про которую никто не думает, что она включает звуковой сигнал тревоги. Маркус Ранум развил эту идею дальше и предположил, что если обнаружено уязвимое место в программе, необходимо также выдавать сигнал предупреждения об опасности.

Приманки используются чаще: целые фиктивные компьютеры и фрагменты сети проектируются для привлечения нападающих. Вы можете получить от этого большое удовольствие: присвойте компьютерам такие имена, как transactions bigcompany com или accounting bank com, маскируя их под производящие впечатление счета и файлы, и используйте их для защиты вашей сети. Когда хакер проникнет в сеть, приманка будет притягивать его, поскольку она выглядит как интересное место для исследования. Затем выдается сигнал тревоги, и приманка начинает следить за активностью хакера и собирать сведения для последующего обращения в суд. Некоторые компании продают заранее сделанные приманки, просто добавляя привлекательные имена.

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