Система обнаружения

Введение

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

Исследования  в области обнаружения атак на компьютерные сети и системы на самом  деле ведутся за рубежом уже больше четверти века. Исследуются признаки атак, разрабатываются и эксплуатируются  методы и средства обнаружения попыток  несанкционированного проникновения  через системы защиты, как межсетевой, так и локальной — на логическом и даже на физическом уровнях. В действительности, сюда можно отнести даже исследования в области ПЭМИН[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 использует несколько других классификационных признаков возможных сетевых атак, они более эффективны с точки зрения защиты от вторжений. Опишем их подробнее.

  1. По степени риска (от англ. Risk Factor); имеет большое практическое значение, так как позволяет ранжировать опасность атак по следующим классам:
    • высокий (High) — атаки, успешная реализация которых позволяет атакующему немедленно получить доступ к машине, получить права администратора или обойти межсетевые экраны (например, атака, основанная на использовании ошибки в ПО Sendmail версии 8.6.5, позволяет атакующему исполнять любую команду на сервере);
    • средний (Medium) — атаки, успешная реализация которых потенциально может дать атакующему доступ к машине. Например, ошибки в сервере NIS, позволяющие атакующему получить файл с гостевым паролем;
    • низкий (Low) — атаки, при успешной реализации которых атакующий может получить сведения, облегчающие ему задачу взлома данной машины. Например, используя сервис finger, атакующий может определить список пользователей сервера и, используя атаку по словарю, попытаться получить доступ к машине.
  2. По типу атаки (Attack Type); позволяет судить о том, может ли атака быть осуществлена удаленно, или только локально:
    • осуществляемые локально (Host Based);
    • осуществляемые удаленно (Network Based)
  3. По подверженному данной атаке программному обеспечению (в англ. варианте 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).

Кроме того, по типу программной среды  они подразделяются на уязвимости в  операционной системе, уязвимости в  определенном сервисе и уязвимости в определенном программном обеспечении. Для определения уязвимости в  операционной системе используется параметр Host/OS, уязвимости в конкретных сервисах и в определенном программном обеспечении классифицируются по группам.

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

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

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

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

Из  отечественных вариантов наиболее информативная и краткая классификация  приведена в книге Милославской и Толстого [3]. В ней все СОА делятся на минимальное количество классов — по поведению после обнаружения (на активные и пассивные), по расположению источника результатов аудита (регистрационные файлы хоста либо сетевые пакеты), по методу обнаружения (поведенческие либо интеллектуальные).

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

Технологии  построения систем обнаружения  атак

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

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

Системы обнаружения аномального поведения (anomaly detection) основаны на том, что СОА известны некоторые признаки, характеризующие правильное или допустимое поведение объекта наблюдения. Под нормальным или правильным поведением понимаются действия, выполняемые объектом и не противоречащие политике безопасности.

Системы обнаружения злоумышленного поведения (misuse detection) основаны на том, что СОА известны некоторые признаки, характеризующие поведение злоумышленника. Наиболее распространенной реализацией технологии обнаружения злоумышленного поведения являются экспертные системы (например, системы Snort, RealSecure IDS, Enterasys Advanced Dragon IDS).

Краткая схема, приведенная в статье [9], обобщает эти сведения (см. Рис. 1). Все остальные подходы являются подмножествами этих технологий.

Рисунок 1. Существующие технологии СОА

Технологии  обнаружения аномальной деятельности

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

Меры  и методы, обычно используемые в  обнаружении аномалии, включают в  себя следующие (согласно [11]):

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

В современных СОА в основном используют первые два метода. Следует заметить, что существуют две крайности  при использовании данной технологии:

  • обнаружение аномального поведения, которое не является атакой, и отнесение его к классу атак (ошибка второго рода);
  • пропуск атаки, которая не подпадает под определение аномального поведения (ошибка первого рода). Этот случай гораздо более опасен, чем ложное причисление аномального поведения к классу атак.

Поэтому при инсталляции и эксплуатации систем такой категории обычные  пользователи и специалисты сталкиваются с двумя довольно нетривиальными задачами:

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

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

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

Недостатками  систем на основе технологии обнаружения  аномального поведения являются следующие:

  • системы требуют длительного и качественного обучения;
  • системы генерируют много ошибок второго рода;
  • системы обычно слишком медленны в работе и требуют большого количества вычислительных ресурсов.

Статистический  анализ компьютерных атак

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

После того как профиль сформирован, действия объекта сравниваются с соответствующими параметрами и при обнаружении  существенных отклонений подается сигнал о начале атаки. Параметры, которые  включаются в профиль системы, могут  быть отнесены к следующим распространенным группам [12], [13]:

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

Профили также должны иметь механизмы  динамического изменения, для того чтобы более полно описывать  изменяющееся поведение объекта. Системы, применяющие статистические методы, обладают целым рядом достоинств:

  • не требуют постоянного обновления базы сигнатур атак. Это значительно облегчает задачу сопровождения данных систем;
  • могут обнаруживать неизвестные атаки, сигнатуры для которых еще не написаны. Могут являться своеобразным сдерживающим буфером, пока не будет разработан соответствующий шаблон для экспертных систем;
  • позволяют обнаруживать более сложные атаки, чем другие методы. Они могут обнаруживать атаки, распределенные во времени или по объектам нападения;
  • могут адаптироваться к изменению поведения пользователя и поэтому являются более чувствительными к попыткам вторжения, чем люди [7].

Среди недостатков систем обнаружения  вторжений можно отметить следующие:

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