Введение
Системы
обнаружения сетевых вторжений
и выявления признаков компьютерных
атак на информационные системы уже
давно применяются как один из
необходимых рубежей обороны
информационных систем. Разработчиками
систем защиты информации и консультантами
в этой области активно применяются
такие понятия (перенесенные из направления
обеспечения физической и промышленной
безопасности), как защита "по периметру",
"стационарная" и "динамическая"
защита, стали появляться собственные
термины, например, "проактивные"
средства защиты.
Исследования
в области обнаружения атак на
компьютерные сети и системы на самом
деле ведутся за рубежом уже больше
четверти века. Исследуются признаки
атак, разрабатываются и эксплуатируются
методы и средства обнаружения попыток
несанкционированного проникновения
через системы защиты, как межсетевой,
так и локальной — на логическом
и даже на физическом уровнях. В действительности,
сюда можно отнести даже исследования
в области ПЭМИН[1], поскольку
электромагнитный тамперинг имеет свои
прямые аналоги в уже ставшей обычной
для рядового компьютерного пользователя
сетевой среде. На российском рынке широко
представлены коммерческие системы обнаружения
вторжений и атак (СОА) иностранных компаний
(ISS RealSecure, NetPatrol, Snort, Cisco и т.д.) и в тоже время
практически не представлены комплексные
решения российских разработчиков. Это
вызвано тем, что многие отечественные
исследователи и разработчики реализуют
СОА, сохраняя аналогии архитектур и типовых
решений уже известных систем, не особенно
стараясь увеличить эффективность превентивного
обнаружения атак и реагирования на них.
Конкурентные преимущества в этом сегменте
российского рынка достигаются обычно
за счет существенного снижения цены и
упования на "поддержку отечественного
производителя".
[1] ПЭМИН — побочные
электромагнитные излучения и наводки.
На
сегодня системы обнаружения
вторжений и атак обычно представляют
собой программные или аппаратно-программные
решения, которые автоматизируют процесс
контроля событий, протекающих в
компьютерной системе или сети, а
также самостоятельно анализируют
эти события в поисках признаков
проблем безопасности. Поскольку
количество различных типов и
способов организации несанкционированных
проникновений в чужие компьютерные
сети за последние годы значительно
увеличилось, СОА стали необходимым
компонентом инфраструктуры безопасности
большинства организаций. Этому
способствуют и огромное количество
литературы по данному вопросу, которую
потенциальные злоумышленники внимательно
изучают, и все более изощренные
методы и сложные и подходы
к обнаружению попыток взлома
информационных систем.
Современные
системы обнаружения вторжений
имеют различную архитектуру. Классификации
СОА следует уделить отдельное
внимание, поскольку зачастую, используя
общепринятую классификацию СОА, специалисты
принимают решение о том, какой из программных
продуктов применить в той или иной ситуации.
На
данный момент можно разделить все
системы на сетевые и локальные. Сетевые
системы обычно устанавливаются на выделенных
для этих целей компьютерах и анализируют
трафик, циркулирующий в локальной вычислительной
сети. Системные СОА размещаются на отдельных
компьютерах, нуждающихся в защите, и анализируют
различные события (действия пользователя
или программные вызовы). Также различают
методики обнаружения аномального поведения
и обнаружения злоумышленного поведения
пользователей.
Системы
обнаружения аномального поведения
(от англ. anomaly detection) основаны на том, что
СОА известны некоторые признаки, характеризующие
правильное или допустимое поведение
объекта наблюдения. Под "нормальным"
или "правильным" поведением понимаются
действия, выполняемые объектом и не противоречащие
политике безопасности. Системы обнаружения
злоумышленного поведения (misuse detection) основаны
на том, что заранее известны некоторые
признаки, характеризующие поведение
злоумышленника. Наиболее распространенной
реализацией технологии обнаружения злоумышленного
поведения являются экспертные системы.
Представительным западным аналогом такой
системы является бесплатно распространяемая
и наиболее популярная система Snort [7].
Классификация
компьютерных атак и
систем их обнаружения
Эффективная
защита от потенциальных сетевых
атак невозможна без их детальной
классификации, облегчающей их выявление
и задачу противодействия им. В
настоящее время известно большое
количество различных типов классификационных
признаков. В качестве таких признаков
может быть выбрано, например, разделение
на пассивные и активные, внешние
и внутренние атаки, умышленные и
неумышленные и т.д. [1]. К сожалению,
несмотря на то, что некоторые из существующих
классификаций мало применимы на практике,
их активно используют при выборе СОА
и их эксплуатации.
Рассмотрение
существующих классификаций начнем
с работы Питера Мелла "Компьютерные
атаки: что это и как им противостоять"
(см. [3]). В ней все
возможные сетевые атаки делятся на следующие
типы (c детальным описанием атак, приводимых
в качестве примеров, можно ознакомиться
в книгах "Обнаружение атак", "Атака
через Internet", "Атака на Internet", "Атака
из Internet" [1], [14], [15], [16]):
- удаленное
проникновение (от англ. remote penetration) — это
тип атак, которые позволяют реализовать
удаленное управление компьютером через
сеть; например, атаки с использованием
программ NetBus или BackOrifice;
- локальное
проникновение (от англ. local penetration) — это
тип атак, которые приводят к получению
несанкционированного доступа к узлу,
на который они направлены; примером такой
атаки является атака с использованием
программы GetAdmin;
- удаленный
отказ в обслуживании (от англ. remote denial
of service) — тип атак, которые позволяют нарушить
функционирование системы в рамках глобальной
сети; пример такой атаки — Teardrop или trinOO;
- локальный
отказ в обслуживании (от англ. local denial
of service) — тип атак, позволяющих нарушить
функционирование системы в рамках локальной
сети. В качестве примера такой атаки можно
привести внедрение и запуск враждебной
программы, которая загружает центральный
процессор бесконечным циклом, что приводит
к невозможности обработки запросов других
приложений;
- атаки
с использованием сетевых сканеров (от
англ. network scanners) — это тип атак, основанных
на использовании сетевых сканеров —
программ, которые анализируют топологию
сети и обнаруживают сервисы, доступные
для атаки; пример: атака с использованием
утилиты nmap;
- атаки
с использованием сканеров уязвимостей
(от англ. vulnerability scanners) — тип атак, основанных
на использовании сканеров уязвимостей
— программ, осуществляющих поиск уязвимостей
на узлах сети, которые в дальнейшем могут
быть применены для реализации сетевых
атак; примерами сетевых сканеров могут
служить системы SATAN и Shadow Security Scanner;
- атаки
с использованием взломщиков паролей
(от англ. password crackers) — это тип атак, которые
основаны на использовании взломщиков
паролей — программ, подбирающих пароли
пользователей; например, программа LOphtCrack
для ОС Windows или программа Crack для ОС Unix;
- атаки
с использованием анализаторов протоколов
(от англ. sniffers) — это тип атак, основанных
на использовании анализаторов протоколов
— программах, "прослушивающих сетевой
трафик. С их помощью можно автоматизировать
поиск в сетевом трафике такой информации,
как идентификаторы и пароли пользователей,
информацию о кредитных картах и т. д. Примерами
анализаторов сетевых протоколов являются
программы Microsoft Network Monitor, NetXRay компании
Network Associates или Lan Explorer.
Приведенная
классификация является достаточно
полной с практической точки зрения,
так как она охватывает почти
все возможные действия злоумышленника.
Однако для противодействия сетевым
атакам этого недостаточно, так как
ее использование в данном виде не
позволяет определять элементы сети,
подверженные воздействию той или
иной атаки, а также последствия,
к которым может привести успешная
реализация атак. В таком случае
мы не включаем в анализ самый важный
компонент, а именно — модель угроз
безопасности, с построения которой
должны начинаться все мероприятия
по обеспечению защиты информации.
Аналогичным
недостатком страдает и более
компактная классификация, предложенная
компанией Internet Security Systems, Inc., в которой
содержится всего лишь пять типов атак:
- сбор
информации (от англ. information gathering);
- попытки
несанкционированного доступа (от англ.
unauthorized access attempts);
- отказ
в обслуживании (от англ. denial of service);
- подозрительная
активность (от англ. suspicious activity);
- системные
атаки (от англ. system attack).
В
своих продуктах, предназначенных
для защиты сетей, серверов и рабочих
станций (таких как, например, Real Secure,
System scanner и др.) компания Internet Security Systems
использует несколько других классификационных
признаков возможных сетевых атак, они
более эффективны с точки зрения защиты
от вторжений. Опишем их подробнее.
- По степени
риска (от англ. Risk Factor); имеет большое
практическое значение, так как позволяет
ранжировать опасность атак по следующим
классам:
- высокий
(High) — атаки, успешная реализация которых
позволяет атакующему немедленно получить
доступ к машине, получить права администратора
или обойти межсетевые экраны (например,
атака, основанная на использовании ошибки
в ПО Sendmail версии 8.6.5, позволяет атакующему
исполнять любую команду на сервере);
- средний
(Medium) — атаки, успешная реализация которых
потенциально может дать атакующему доступ
к машине. Например, ошибки в сервере NIS,
позволяющие атакующему получить файл
с гостевым паролем;
- низкий
(Low) — атаки, при успешной реализации которых
атакующий может получить сведения, облегчающие
ему задачу взлома данной машины. Например,
используя сервис finger, атакующий может
определить список пользователей сервера
и, используя атаку по словарю, попытаться
получить доступ к машине.
- По типу
атаки (Attack Type); позволяет судить о том,
может ли атака быть осуществлена удаленно,
или только локально:
- осуществляемые
локально (Host Based);
- осуществляемые
удаленно (Network Based)
- По подверженному
данной атаке программному
обеспечению (в англ. варианте Platforms Affected).
Например: Microsoft Internet Explorer 5.01, Microsoft Internet
Explorer 5.5, Microsoft Internet Explorer 6.
Кроме
того, существует классификация по
характеру действий, используемых в
атаке:
- "черные
ходы" (Backdoors) — атаки, основанные на
использовании недокументированных разработчиками
возможностях ПО, которые могут привести
к выполнению пользователем несанкционированных
операций на атакуемом сервере;
- атаки
типа "отказ в обслуживании" (Denial
of Service, или DoS) — атаки, основанные на использовании
ошибок, позволяющие атакующему сделать
какой-либо сервер недоступным для легитимных
пользователей;
- распределенные
атаки типа "отказ в обслуживании"
(Distributed Denial of Service) — несколько пользователей
(или программ) посылают большое количество
фиктивных запросов на сервер, приводя
последний в нерабочее состояние;
- потенциально
незащищенная операционная система (OS
Sensor);
- неавторизованный
доступ (Unauthorized Access Attempts).
К
недостаткам приведенных классификационных
признаков можно отнести то, что
они не позволяют описать цель
атаки, а также ее последствия. Например,
классификационный признак "по характеру
действий" содержит два класса атак
типа "отказ в обслуживании",
но в то же время не содержит классов,
описывающих атак, направленных на
перехват трафика.
Другой
подход был применен в классификации,
использованной в достаточно известном
программном продукте Nessus, предназначенном
для анализа безопасности серверов. Здесь
используется классификация "по характеру
уязвимости", используемой для реализации
атаки:
- "черные
ходы" (Backdoors);
- ошибки
в CGI скриптах (CGI abuses);
- атаки
типа "отказ в обслуживании" (Denial
of Service);
- ошибки
в программах — FTP-серверах (FTP);
- наличие
на компьютере сервиса Finger или ошибки
в программах, реализующих этот сервис
(Finger abuses);
- ошибки
в реализации межсетевых экранов (Firewalls);
- ошибки,
позволяющие пользователю, имеющему терминальный
вход на данный сервер, получить права
администратора (Gain a shell remotely);
- ошибки,
позволяющие атакующему удаленно получить
права администратора (Gain root remotely);
- прочие
ошибки, не вошедшие в другие категории
(Misc);
- ошибки
в программах — NIS-серверах (NIS);
- ошибки
в программах — RPC-серверах (RPC);
- уязвимости,
позволяющие атакующему удаленно получить
любой файл с сервера (Remote file access);
- ошибки
в программах — SMTP-серверах (SMTP problems);
- неиспользуемые
сервисы (Useless services).