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

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

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

Рассмотрим различные методы, использующие сигнатуры
вторжений.


Продукционные / экспертные системы
обнаружении вторжения.

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

Продукционные СОН предназначены для:


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


      
трудность учета последовательности событий, что
заставляет ввести дополнительные проверки данных, определяющие их
последовательность;


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


      
могут быть обнаружены только известные уязвимости;


2. объединения возможных атак для
получения общей картины вторжения
.

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


 


Обнаружение вторжений, основанное на
модели.

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


Вероятность P(Activity /
Behavior) / P(Activity /
ØBehavior)
при вторжении должна быть высока.

Преимуществами данного метода являются:


1. Математическая база поддержки
вывода в условиях неопределенности.


2. Планировщик обеспечивает
независимое представление данных аудита.

Недостатками данного метода являются:


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


2. Поведение описывается
последовательным множеством событий, что затрудняет описание сложных атак.

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


 


 Анализ перехода
системы из состояния в состояние.

Данный подход представлен в системах STAT и USTAT под UNIX. В данных СОН атаки представляются
как последовательность переходов контролируемой системы из состояния в
состояние. Состояние шаблона атаки соответствует состоянию системы и связано с
утверждениями, которые должны быть удовлетворены для последующего перехода из
состояния в состояние. Возможные состояния связаны дугами, представляющими
события необходимые для перехода из состояния в состояние. Типы допустимых
событий встроены в модель. Данная модель может определить только атаку состоящую
из последовательных событий, не позволяя выразить атаки с более сложной их
структурой. Более того, не существует общего целевого механизма в случае
частичного распознавания атак.


 


Контроль нажатия клавиш.

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

 


Изменение состояний и сети
Петри.

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

 


Статистический метод
анализа.

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


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


2. Модель среднего значения и
среднеквадратичного отклонения
базируется на том, что все, что мы знаем о
предыдущих наблюдениях некоторой величины (x1, , xn) это ее среднее значение
(m =
åxi / n) и среднеквадратичное
отклонение s =
sqrt((x12 ++ xn2) /
(n-1) — m2).
Тогда новое наблюдение является анормальным, если оно не укладывается в границах
доверительного интервала  m+d*s.
Модель применима для измерения счетчиков событий, временных интервалов и
используемых ресурсов. Преимуществом модели по сравнению с операционной является
независимость оценки анормальности поведения от априорных знаний. Кроме того,
необходимо отметить, что анормальность поведения зависит от значения
доверительного интервала, и как следствие, понятие анормальности для
пользователей системы может отличаться.


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


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


5. Модель временных серий.
Использует временные периоды вместе со счетчиками событий и измерениями ресурса,
учитывающая как значения наблюдений x1, , xn, так и временные интервалы
между ними. Новое наблюдение является анормальным, если вероятность его
появления с учетом времени низка. Преимуществом данной модели является учет
временного сдвига между событиями, а недостаток накладные расходы по
вычислению по сравнению с моделью среднего значения и среднеквадратичного
отклонения.

Интересный подход был применен при разработке системы NIDES.
Рассмотрим его подробнее.

Аспекты поведения субъекта в NIDES представляются как измерения
(доступ к файлам, использование ЦПУ, время запуска). Для каждого измерения
устанавливается распределение вероятностей для кратковременного и
долговременного поведения. Например, для измерения доступ к файлам
распределение вероятностей долговременного поведения состоит из исторических
вероятностей, описывающих различные файлы, к которым был осуществлен доступ, а
распределение вероятностей кратковременного поведения состоит из недавних
вероятностей, описывающих различные файлы, к которым был осуществлен доступ. В
этом случае категории, к которым присоединены вероятности, являются именами
файлов. В случае измерения непрерывных величин, таких как использование ЦПУ
категории, к которым присоединены вероятности, являются диапазонами значений.
Коллекция измерений и их распределения вероятностей для долговременного
поведения называется профилем субъекта.

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

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

Концепция скорости старения, полураспада и эффективной длины
профиля связаны следующим образом. Скорость старения мультипликативный фактор,
меньше или равный единицы, в соответствии с которым существующая в профиле
информация устаревает. Чем меньше данный фактор, тем быстрее информация
забывается. Полураспад количество записей аудита, которые нужно учесть до
тех пор, пока вклад данных не будет уменьшен наполовину. Например, скорость
старения равна 0.8, третья запись аудита имеет вес 0.8*0.8*0.8=0.512, т.е.
скорость старения 0.8 соответствует кратковременному профилю с полураспадом в
три записи аудита. Эффективная длина профиля соответствует серии сумм всех
степеней скорости старения, которая будет сходиться к 1, если скорость старения
меньше 1. Например, скорость старения 0.8 соответствует эффективной длине
профиля в 5 записей аудита. Как правило, эффективная длина профиля равна 1.5 *
полураспад.

Степень различия между кратковременным и долговременным
профилем для измерения определяется с использованием c-квадрат
статистики, в которой долговременный профиль играет роль истинного распределения
вероятностей, а кратковременный профиль играет роль наблюдения. Результирующее
числовое значение называется Q (различное для каждого измерения). Большое
значение Q означает, что кратковременный и долговременный профиль для измерения
отличаются сильно и, следовательно, кратковременный профиль подозрителен.
Значение Q равное 0 означает, что профили совершенно согласуются.

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

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

Как и все долговременные распределения в NIDES,
долговременное распределение Q категоризируется в соответствии с областями
значений. Из этого распределения можно получить хвост вероятности для значения
Q  больше или равного наблюдаемого
значения. Хвост вероятности преобразуется, преобразованное значение обозначается
как S, и определяет такое преобразование, что S имеет половину нормального
распределения (правая сторона нормального распределения, при удвоении высоты
распределения вероятности для сохранения единичной площади под кривой).
Например, если Q-статистика равна 80% (хвост 20%), то S=1.28 (как для 90%
нормального распределения); если Q-статистика равна 90% (хвост 10%), то S=1.65
(как для 95% нормального распределения).

При получении каждой записи аудита можно генерировать
соответствующий вектор S значений. Высокие значения S соответствуют относительно
необычным измерениям по отношению к обычному различию между кратковременным и
долговременным профилем. Малые значения S соответствуют относительно обычным
измерениям по отношению к обычному различию между кратковременным и
долговременным профилем. S значения можно объединять для получения общей
статистики — T2. T2-статистика есть суммарное выражение
аномальности многих измерений (сумма квадратов S-статистик)
S12+ S22++
Sm2 (где m число измерений).

Т.к. каждая S-статистика имеет одинаковое полунормальное
распределение, T2-статистика распределение выглядит примерно как
c-квадрат
с m степенями свободы. Однако, Si могут быть зависимыми..

IS статистика показывает суммарную аномальность многих
измерений. Предположим есть много измерений, Si, 1 £ i
£n,
Cik корреляция между измерениями Si и Sk,
Cii=1.0. Тогда


IS = ( S1, S2,,
Sn) C-1 ( S1, S2,,
Sn)T,
где:


C-1 инверсия
корреляционной матрицы вектора ( S1, S2,, Sn),
а ( S1, S2,, Sn)T
транспонированный вектор.

При этом Si выбираются так, что они положительны,
так же как и большинство элементов корреляционной матрицы больше или равны 0 (по
техническим соображениям значения корреляционной матрицы не превышают 0.9). Если
все измерения независимы, то IS = S12 +
S22 ++ Sn2. Непосредственно данная
статистика не показывает, какое измерение является аномальным. Однако, если
данное значение велико нетрудно обнаружить, какое значение оказывает наибольшее
влияние на IS.

 


Таблица 1-1. Параметры,
измеряемые в системе NIDES.








































































































Обозначение


Тип


Определение


UCPU


непрерывное


Использование ЦПУ
пользователем


SCPU


Непрерывное


Использование ЦПУ
системой


IO


Непрерывное


Количество символов ввода /
вывода во время исполнения приложения


MEMCB


Непрерывное


Максимальный размер процесса
во время исполнения


MEMUSE


Непрерывное


Общий объем использованной во
время исполнения памяти


TEXTSZ


Непрерывное


Виртуальный размер сегмента
текст


OPENF


Непрерывное


Количество открытых файлов во
время исполнения


PGFLT


Непрерывное


Количество сбоев
страниц


PGIN


Непрерывное


Количество считанной с диска
информации


PRCTIME


Непрерывное


Время исполнения
процесса


SIGNAL


Непрерывное


Количество сигналов полученных
во время исполнения приложения


UID


Категориальное


Имя пользователя изменяющееся
во время исполнения приложения


UIDB


Бинарное


Изменялось ли имя пользователя
во время исполнения приложения


HOUR


Категориальное


Время, в которое началось
исполнение приложения


RNET


Бинарное


Исполнялось ли приложение на
удаленной станции


RNETHOST


Категориальное


Имя удаленной станции, на
которой исполнялось приложение


RNETTYPE


Категориальное


Имя приложения,
использованного на удаленной станции


LNET


Бинарное


Исполнялось ли приложение на
локальной станции


LNETHOST


Категориальное


Имя локальной станции, на
которой исполнялось приложение


LNETTYPE


Категориальное


Имя приложения,
использованного на локальной станции


INATTR


Непрерывное


Количество секунд после
генерации последней записи аудита


I60


Непрерывное /
интенсивность


Скорость записи аудита (каждую
минуту)


I600


Непрерывное /
интенсивность


Скорость записи аудита (каждые
10 минут)


I3600


Непрерывное /
интенсивность


Скорость записи аудита (каждый
час)


 

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

Рассмотрим настройки системы NIDES.


Полураспад кратковременного профиля
измеряется в количестве записей аудита (в NIDES установлен равным 250 записей
аудита; Полураспад кратковременного профиля должен быть сравним с единичной
активностью субъекта в понятиях NIDES).


Полураспад долговременного профиля
измеряется в количестве дней.


Отклонение в процентах (желтое, красное)
отражает относительную опасность и критическое отклонение, при котором
возникает сообщение об аномальной активности.


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


Дни тренировки количество дней для
тренировки долговременного профиля.


Q Max значения используются для оценки
Q значений для всех измерений.


Режим операций тренировка или
тестирование.


 


Статистический анализ последовательности
системных вызовов.

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

Собранные данные можно охарактеризовать следующим
графиком.

 


 

 

 

Данные, собранные в последовательности системных
вызовов.



Рисунок 1-1.

 

В работе рассматриваются следующие методы анализа данных:

1. простая нумерация последовательностей;

2. относительная частота последовательностей;

3. информационный анализ;

4. машина конечных состояний (скрытая модель Маркова).

Рассмотрим их подробнее.


Простая нумерация
последовательностей.

Метод состоит в нумерации последовательностей системных
вызовов, обнаруженных в трасе программы при нормальном исполнении и вторжении.
Возможно две вариации данного метода.

Первая вариация (вероятные пары) состоит в поддержании БД
нормальных шаблонов, состоящих из списка (составляемого для каждого из системных
вызовов) системных вызовов, следуемого за ним на расстоянии 0, 1, , k системных вызовов.

Второй вариант заключается в том, что в БД хранятся
последовательности некоторой фиксированной длины k. Данный метод является более
предпочтительным для вычислений.

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

Во время тестирования каждая не обнаруженная в БД
последовательность именовалась пропущенной и могла обозначать как аномальное
поведение, так и последовательность, не включенную в нормальную БД. Сигнал об
анормальности вырабатывался на основании количества пропущенных
последовательностей за участок времени (локальный фрейм). В работе длина
фрейма состояла из 20 системных вызовов. В каждой точке тестовой трасы  проверялось, является ли данная траса
пропущенной, и отслеживалось, как много из 20 последних последовательностей было
пропущено. Это значение является настраиваемым пороговым параметром для
обнаружения нарушителя  (определяет
точность обнаружения и ложные срабатывания) и может изменяться от 1 до 20.


 


Относительная частота
последовательностей.

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

К недостаткам данного метода можно отнести:


      
невозможность сделать вывод о нормальности поведения
программы до ее завершения;


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

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

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

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

 


Информационный анализ

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

Для реализации данного метода использовалась система RIPPER (Repeated Incremental
Pruning to Produce
Error Reduction) система, построенная на
основании обучающих правил и используемая для решения задач классификации.
Тренировка состоит в определении образцов, состоящих из множества атрибутов,
описывающих классифицируемый объект, и целевого класса, к которому принадлежит
объект. На основании многих примеров, RIPPER выделяет правила в форме:


ClassA:- attrib1 = x, attrib5 =
y


ClassB:- attrib2 = z


Classzzz- true (по умолчанию)

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

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

Для каждого правила RIPPER определяет оценку нарушения на
основе количества ситуаций, в которых правило было применено корректно в
тренировочных данных. Например, для правила, чьи условия были удовлетворены
M раз во время
тренировки, и предсказание было сделано корректно T раз, оценку нарушения можно определить
как 100*M/T. Среднее значение оценки
нарушений может быть использовано для вычисления ранга трасы (это не применимо
для online обнаружения
вторжений). Следовательно, целесообразно использовать отклонение от вероятной
трасы (использовалось значение 80%) как пропуск с использованием механизма,
описанного для других методов.

 


Машина конечных состояний

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

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

Для применения СММ необходимо, в первую очередь, определить
размер модели (СММ работает с фиксированным количеством состояний). На основании
исследования анализируемого ПО было обнаружено, что большинство программ
использует 40 уникальных системных вызовов (т.е. используется СММ с 40
состояниями). Состояния являются полностью связанными (переходы возможны из
каждого состояния в каждое). Для каждого состояния необходимо хранить
вероятность перехода в каждое состояние и вероятность выполнения каждого
системного вызова. Таким образом, для программы, использующей S системных
вызовов требуется модель с S состояниями и хранящая 2S2 значений.
Обычно все значения инициализируются случайным образом и тренируются с
использованием алгоритма BaumWelch (однако, при инициализации
желательно использовать априорные знания).

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

Вычисления для каждой трасы для каждого прохода при
тренировке занимают O(TS2), где T длина трасы. Промежуточные
переменные при этом занимают T*(2*S+1) значений с плавающей точкой.
Тестирование является более эффективным. Стандартным способом тестирования
является проверка вероятности неизвестной трасы.

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

В некоторый момент времени t существует список возможных состояний.
Выбор самого вероятного состояния для любого системного вызова не совместим с
лучшим путем для СММ для последовательности системных вызовов, так что
необходимо хранить все возможные пути. Управляемым параметром является уровень
(в экспериментах варьируется от 0.01 до 0.0000001), свидетельствующий о
нормальном переходе и выходной вероятности. Если в трасе встречается системный
вызов, на основании которого образуются системные переходы ниже определенного
уровня, то он рассматривается как пропуск. Необходимо отметить, что СММ делает
оценку для отдельных системных вызовов, а не для их последовательностей. Для
каждого системного вызова оценка осуществляется за время O(S2).

 


Сравнение результатов.

Сводные результаты приведены ниже.

 

 

 

 

 


Сравнение результатов.

 


 


 


 


 


 


 


 


 


 


 


 


Рисунок 1-2.

 

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

 


Обучение в системах обнаружения
нарушителя.

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

 


Обучение в системах обнаружения нарушителя
основанное на классификации примеров.

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

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

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

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

Недостатками подхода являются:


      
необходимость тщательной настройки для того, чтобы СОН
работала с максимальной эффективностью; оптимальные параметры при этом не всегда
очевидны;


      
процесс обучения может потребовать больших
вычислительных ресурсов, особенно, если он не может быть произведен
инкрементально;


      
для обучения СОН может потребоваться большой объем
данных, которые гарантировано должны не содержать атак; это усложняется тем, что
нормальное поведение может зависеть от времени и места.


 


Обучение с помощью
нейросетей.

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


      
если для обучения используется небольшое множество
примеров, результаты обнаружения являются приемлемыми; большое множество
примеров значительно расширяет пространство решений, что приводит к
неприемлемому уровню ошибок в распознавании;


      
даже если решения адекватны, время на тренировку при
больших множествах примеров неприемлемо велико;


      
нейросети не позволяют увидеть логику принятия
решения;


      
нейросети требуют четкой настройки топологии и
параметров сети, что во многом является искусством;


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

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


 


Обучение с помощью генетических
алгоритмов.

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

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

Многие положения, рассмотренные для нейросетей справедливы
для генетических алгоритмов.

 


Выводы.

В данной главе проведен обзорный анализ существующих методов
анализа безопасности ПО. На основании обзора можно сделать следующие выводы.


1. Средства статического анализа
безопасности программного обеспечения, обладая своими неоспоримыми
достоинствами, часто не позволяют провести адекватный анализ безопасности
программного обеспечения.


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


3. Сигнатурный метод имеет следующие
преимущества:


      
количество и тип событий которые необходимо
контролировать ограничены данными, определенными в сигнатурах;


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


4. К недостаткам сигнатурного
анализа можно отнести:


      
зависимость масштабируемости и производительности от
размера базы данных сигнатур;


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


      
обновление базы данных сигнатур требуется при
обнаружении нового типа атак, период обновления базы должен быть невелик;

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


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


5. К преимуществам статистических
методов относится:


      
использование для обнаружения атак классических
статистических методов с хорошо развитой теорией;


      
множество контролируемых переменных не требует большого
объема памяти при хранении;


      
статистические методы могут использовать время как
параметр при анализе;


      
легко обнаруживаемо простое отклонение в поведении
пользователей;


6. К недостаткам статистических
методов относится:


      
трудно сформулировать нормальное понятие нормального
поведения для многих пользователей системы;


      
трудно сформулировать статистические критерии
нормального поведения для многих пользователей системы;


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


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


      
порядок событий не влияет на анализ;

7. Использование традиционных методов обучения при построении
СОН не лишено недостатков.

 

Оставит комментарий