Russian-speaking
 Python & Zope User Group

Главная |  Python |  Zope  

Python
Zope
Новости
Copyright
Ответственность  

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

И что вы будете делать, когда получите сигнал тревоги? Поучительные сообщения общего вида «вы подвергаетесь нападению» бесполезны, если у вас нет какого-нибудь способа защиты или даже нет времени, чтобы с этим разобраться. В 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, где хакер знает, какая защита установлена, сигнализации и приманки специально разработаны для сетей, подвергающихся нападению.

Сканеры уязвимостей

Назначение сканеров, определяющих слабые места защиты, – автоматически сканировать сеть (или компьютер) на предмет обнаружения известных недостатков. Они делают свое дело и затем выдают точный отчет о том, какие уязвимые точки имеет сеть. Обладая этой информацией, вы можете решить – усилить защиту или пользоваться сетью, несмотря на обнаруженные недостатки.

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

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

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

Страницы:
 
 
Copyright © 2000-2024, Russian-speaking Python & Zope User Group Ответственность