Скрытые атаки проникают за брандмауэры; бдительные системы выявления атак позволяют укрепить защиту.

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

Конечно, это не то, на чем можно сделать фильм о Джеймсе Бонде, но результаты могут оказаться столь же драматичными. В ежегодном опросе по поводу компьютерных преступлений и проблем безопасности Института компьютерной защиты (Computer Security Institute, CSI) 273 тех респондентов, кто указал размер ущерба от компьютерных вторжений, понесли убытки в сумме на 265 млн долларов. Это составляет в среднем по 970 тыс. долларов на компанию, что почти на 28% больше по сравнению с 760 тыс. долларов — именно таким, согласно опросу, был в среднем убыток от подобных преступлений в 1999 г.

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

Суть систем выявления атак проста и состоит в установке агентов для проверки сетевого трафика и поиска «сигнатур» известных сетевых атак. Однако с развитием сетевых вычислений и пугающим распространением Internet эта идея несколько усложнилась. С появлением распределенных атак по типу «отказ в обслуживании» (Distributed Denial of Service, DDoS), часто инициируемых из сотен различных источников, адрес отправителя трафика больше не может служить надежным свидетельством того, что против вас организована атака. Хуже того, адекватно реагировать на такие атаки становится все труднее из-за разнообразия исходных систем, особенно из-за того, что большинство атак по своей природе являются географически распределенными.

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

ОСНОВЫ ВЫЯВЛЕНИЯ АТАК

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

Большинство имеющихся на рынке инструментальных средств выявления атак использует две фундаментальные методики — выявление злоупотреблений и выявление аномалий.

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

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

Выявление аномалий, вторая методика выявления атак, будет наиболее полезной в стабильных сетевых средах, где администратор может легко определить «нормальное» (или основное) состояние сети в таких терминах, как уровень трафика, отказ протокола и типичный размер пакета. Детекторы аномального поведения можно настроить таким образом, чтобы они периодически проводили мониторинг сетевых сегментов и определенного числа сетевых серверов и сравнивали их состояние с основным. Если эти состояния значительно различаются, то могут быть предприняты соответствующие действия. Например, если в два часа дня в воскресенье уровень загруженности вашего сегмента в демилитаризованной зоне (Demilitarized Zone, DMZ) внезапно увеличивается до 80%, причем 90% пакетов этого трафика являются эхопакетами протокола управляющих сообщений Internet Control Message Protocol (ICMP) на запросы от различных источников, весьма вероятно, что ваша сеть подверглась атаке DDoS.

Большая часть систем выявления атак использует сочетание обеих методик, и они часто устанавливаются в сети, на конкретном хосте или даже для конкретного приложения на хосте (см. Рисунок).

НАДЕЖНАЯ ЗАЩИТА

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

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

Кроме того, обслуживание всего сегмента одной системой выявления атак делает ее уязвимой для атаки DoS. Если злоумышленник сможет вывести из строя сам детектор, то он получает полную свободу действий и может проникнуть в подсеть, не опасаясь быть обнаруженным. Об этой опасности всегда следует помнить при проектировании и установке хоста для своей системы выявления атак. Как и брандмауэр, такая система не должна содержать никаких пользовательских бюджетов, за исключением привилегированного пользователя (root/Administrator), не должна поддерживать никаких необязательных сетевых служб, не должна предлагать никакой вид интерактивного сетевого доступа (доступ возможен только через консоль) и не должна работать под управлением малоизвестной, нестандартной операционной системы.

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

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

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

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

УВЕЛИЧЕНИЕ МАСШТАБА

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

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

Однако и в деле выявления атак на хост тоже не все гладко. Поскольку эти системы тесно связаны с операционной системой, они становятся еще одним приложением, которое необходимо обслуживать и переносить. Это весьма важный момент в среде, где операционные системы часто обновляются, поскольку система выявления атак может работать эффективно, только если она имеет все последние данные. Кроме того, сама по себе установка детекторов на хосты не защитит вашу компанию от базовых атак DoS на сетевом уровне (SYN flooding, ping of death, land attack и т. д.). Но, несмотря на эти ограничения, система выявления атак на хосты должна стать неотъемлемой частью вашей общей защиты от вторжений.

СИСТЕМЫ РАННЕГО ПРЕДУПРЕЖДЕНИЯ

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

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

КОНТРОЛЕРЫ НА ВЫХОДЕ

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

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

Это позволяет фильтровать потенциально подделанный трафик, обычно наблюдаемый, когда злоумышленники захватывают ничего не подозревающий хост и отправляют с него пакеты на выбранную ими цель где-нибудь в Internet. Многие провайдеры Internet стали реализовывать выходные фильтры на всем управляемом ими оборудовании в помещениях заказчика (Customer Premises Equipment, CPE).

ПРОЕКТ ПРОТИВОДЕЙСТВИЯ АТАКАМ

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

Во-первых, это отдельные сетевые сегменты (к примеру, от маршрутизатора к маршрутизатору) вместе со списком сетевых протоколов и типичной нагрузкой, которая, по вашему мнению, будет характерна для каждого сегмента. Изобразите на гистограмме (отложив по оси X время дня) типичную для каждого из этих сегментов сетевую нагрузку. Во-вторых, это границы сегментов, такие, как маршрутизаторы, коммутаторы и брандмауэры. В-третьих, это заслуживающие и не заслуживающие доверия объекты, такие, как известные локальные и удаленные пользователи, партнеры по бизнесу, анонимные пользователи и потенциальные клиенты электронной коммерции. В-четвертых, все серверы (хосты) и службы (демоны, работающие на каждом хосте). Наконец, в-пятых, списки контроля доступа (Access Control List, ACL) на границе каждого сегмента и на каждом сервере.

Основная идея состоит в максимально подробном описании вашей сети. Вооруженные этой информацией, вы сможете затем составить план реализации всеобъемлющей системы выявления атак. (Смотрите врезку «План действий для выявления атак» с подробным описанием десяти основных шагов.)

АВТОМАТИЧЕСКИЙ ОТВЕТ: ШПИОНАЖ ВМЕСТО ВОЗМЕЗДИЯ

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

Распространенная ошибка при проектировании автоматизированных систем реакции на атаку состоит в том, что такие системы часто делают именно то, на что рассчитывает злоумышленник. К примеру, рассмотрим политику защиты, при которой система выявления атак отфильтровывает адрес отправителя, с которого, по имеющейся информации, производится сканирование портов хостов в вашей сети. В действительности, злоумышленник достаточно просто может выдать себя за другой хост (подделав IP-адрес), что, в конечном итоге, приведет к фильтрации пакетов ни в чем не повинного хоста (возможно, одного из ваших партнеров по бизнесу или, хуже того, потенциального заказчика). В этом случае злоумышленник, по сути, использует вашу автоматизированную систему противодействия для проведения атаки по типу «отказ в обслуживании» и против вашей сети, и против хоста, за который он себя выдает.

Вместо того чтобы отказывать в доступе подозреваемому в организации атаки, часто оказывается полезнее попытаться получить как можно больше информации о хосте, с которого производится атака. Для этого можно попытаться отследить маршрут до хоста организатора атаки, провести обратный поиск DNS по IP-адресу злоумышленника, постараться выяснить тип хоста (определить тип ОС) и установить провайдера Internet инициатора вторжения.

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

Целостность журналов (и других критически важных системных файлов) может быть гарантирована с помощью инструментальных средств обеспечения целостности системных файлов. Этот инструментарий периодически вычисляет контрольные суммы для данных, находящихся в журналах регистрации, хранимых в безопасном месте. Контрольные суммы затем регулярно пересчитываются и сравниваются с оригиналом, гарантируя таким образом неповрежденность журнальных файлов.

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

РАЗДЕЛЯЙ И ВЛАСТВУЙ: МАСКИРОВКА И ВСТАВКА

При реализации технологии выявления атак администраторы систем защиты должны помнить о двух основных ее недостатках.

Первую потенциальную проблему обычно называют маскировкой (evasion). Сетевые детекторы используют стандартные или определенные пользователями сигнатуры, которые они пытаются обнаружить в передаваемых по сети пакетах. Однако опытный злоумышленник может замаскировать сигнатуру своей атаки, разбив один TCP-пакет на несколько IP-пакетов. Чтобы не попасться на эту удочку, убедитесь, что детектор атак в состоянии собирать фрагменты пакетов для анализа сигнатур в реальном времени.

Вторая проблема называется вставка (insertion), поскольку она состоит в добавлении злоумышленником ложных пакетов в TCP-диалог, имея в виду тот факт, что, несмотря на то что конечный хост просто отвергнет лишний пакет, детектор атак попытается его проанализировать. Если конечный хост проверяет порядковый номер TCP, дабы убедиться, что пакеты транспортного уровня прибывают в правильном порядке, то детектор вторжений, как правило, эту последовательность не отслеживает и примет фальшивые пакеты, такие, как запрос на прерывание соединения, за реальные. При получении фальшивого запроса на закрытие (типа TCP FIN), детектор будет игнорировать все остальные пакеты в данном потоке, поскольку он будет уверен в том, что конечный хост тоже их игнорирует. (Он считает, что соединение уже было закрыто.)

ТРУДНАЯ ДОРОГА ВПЕРЕД

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

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

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

Рамон Дж. Онтаньон — менеджер по разработке продуктов для глобальных виртуальных частных сетей в UUNET. С ним можно связаться по адресу: hontanon@uu.net.


План действий по выявлению атак

1. Убедитесь, что каждый сетевой сегмент контролируется одним (или несколькими) детекторами атак на сеть, установив детектор в самом сегменте или в устройстве на границе сегмента так, чтобы он мог проверять все пакеты в подсети.

2. Составьте список всех серверов, критически важных для вашего предприятия. Установите механизм выявления атак на хост на каждом из них.

3. На каждом критически важном сервере укажите все критически важные сетевые приложения и установите системы выявления атак для каждого из них.

4. Получите актуальный список сигнатур атак от всех своих производителей и установите его должным образом. Используйте инструментарий управления конфигурацией для отслеживания информации из файла с сигнатурами во всех системах.

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

6. Дополните разработанную политику заранее составленным списком контроля доступа (Access Control List, ACL). Убедитесь, что ваши правила выявления аномалий отражают гистограммы сетевой нагрузки, составленные для каждого сетевого сегмента.

7. Укрепите и защитите все детекторы вторжений.

8. Установите правила ротации журналов, копии которых всегда должны быть записаны на удаленных сменных носителях.

9. Введите правила мониторинга этих систем. Используйте агентов SNMP и генерируемые устройствами прерывания SNMP, когда это возможно.

10. Регулярно анализируйте все ваши правила и файлы с признаками атак.


Ресурсы Internet

Библиотека Network Security Library содержит обширный перечень ресурсов по технологии выявления атак. См. http://secinf.net/iidse.html.

Ответы на часто задаваемые вопросы о выявлении атак находятся на http://www.ticm.com/K8/fag/idsfag.html/.

CERT Coordination Center предлагает полезный список «Intrusion Detection Checklist» по адресу: ftp://ftp.cert.org/pub/tech_tips/intruder_detection_checklist/.

Подразделение Computer Incident Advisory Capability министерства энергетики США предлагает информационные бюллетени по вопросам возможных изъянов в системе защиты. См. http://www.ciac.org.

Computer Security Institute (CSI) публикует информацию, касающуюся выбора систем выявления атак. См. http://www.gocsi.com/intrusion.htm.

Результаты опроса 2000 CSI/FBI Computer Crime and Security можно найти по адресу: http://www.gocsi.com/fbi_survey.htm.