Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 50072.doc
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
1.46 Mб
Скачать

1.2.4. Метод разметки (предиката)

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

Для переменных, являющихся параметрами команд передачи управления, набор таких утверждений на момент вызова команды передачи управления должен приводится к виду: переменная = значение1 или переменная = значение2 или … переменная = значение N, причем количество значений должно быть в разумных пределах.

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

1.2.5. Дизассемблер автоматизированного анализа

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

Рис. 1.2. Структура дизассемблера автоматизированного

анализа

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

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

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

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

1.3. Методы и средства системного обнаружения потенциально опасных фрагментов унитарного кода

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

1.3.1. Метод статистического анализа

В основе данного метода лежат различные математические модели, которые могут применяться при статистическом анализе безопасности поведения программ и в системах обнаружения нарушителя [11, 15, 18]. К ним относятся:

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

2. Модель среднего значения и среднеквадратичного отклонения базируется на том, что все, что мы знаем о предыдущих наблюдениях некоторой величины (x1, …, xn) это ее среднее значение (m = åxi / n) и среднеквадратичное отклонение

s = sqrt((x12 +…+ xn2) / (n-1) - m2).

Тогда новое наблюдение является анормальным, если оно не укладывается в границах доверительного интервала m+d*s. Модель применима для измерения счетчиков событий, временных интервалов и используемых ресурсов.

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

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

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

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