- •Обнаружение вторжений на основе анализа фрагментов унитарного кода
- •1. Методы обнаружения вредоносных фрагментов унитарного кода в телекоммуникационных системах
- •1.1.1. Логическое моделирование цифровых схем с помощью эвм
- •1.1.2. Моделирование неисправностей цифровых схем
- •1.1.3. Моделирование процесса тестовой диагностики цифровых схем
- •1.1.5. Одноканальный сигнатурный анализатор
- •1.1.6. Методы, использующие сигнатуры вторжений
- •1.2. Методы и средства структурного обнаружения потенциально опасных фрагментов унитарного кода
- •1.2.1. Метод неинтеллектуального дизассемблирования
- •1.2.2. Метод интеллектуального дизассемблирования от точки входа
- •1.2.3. Метод потокового анализа
- •1.2.4. Метод разметки (предиката)
- •1.2.5. Дизассемблер автоматизированного анализа
- •1.3. Методы и средства системного обнаружения потенциально опасных фрагментов унитарного кода
- •1.3.1. Метод статистического анализа
- •1.3.2. Метод эвристического анализа
- •1.4. Этапы проведения анализа потоков унитарного кода
- •2. Программно-аппаратный комплекс обнаружения вредоносных фрагментов унитарного кода в телекоммуникационных системах
- •2.1. Методика оценки потенциальной опасности фрагментов унитарного кода
- •2.2. Алгоритм оценки потенциальной опасности фрагментов унитарного кода
- •2.3. Структурно-функциональная схема программно-аппаратного комплекса анализа фрагментов унитарного кода
- •2.4. Риск-анализ использования технологий обнаружения информационных воздействий
- •394026 Воронеж, Московский просп., 14
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, так и временные интервалы между ними. Новое наблюдение является анормальным, если вероятность его появления с учетом времени низка. Преимуществом данной модели является учет временного сдвига между событиями, а недостаток – накладные расходы по вычислению по сравнению с моделью среднего значения и среднеквадратичного отклонения.