Выбрать главу

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

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

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

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

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

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

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

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