- •Редакционная коллегия:
- •Введение
- •Выполнение алгоритмов цифровой обработки сигналов в базисе программируемых логических интегральных схем
- •Е.А. Азарова анализ лазерных устройств хранения информации
- •Параметры синтезируемых процессорных ip-модулей
- •Исправляющая способность кода Рида-Маллера
- •Преимущества и недостатки кодов
- •О.Ю. Макаров, д.А. Кабанов
- •Д.А. Кабанов
- •Р.Р. Абулханов, и.И. Застрожнов, о.Ю. Макаров
- •Р.Р. Абулханов, и.И. Застрожнов
- •Р.Р. Абулханов, и.И. Застрожнов
- •Р.Р. Абулханов
- •Р.Р. Абулханов
Р.Р. Абулханов, и.И. Застрожнов
АЛГОРИТМ КОНТРОЛЯ «ЗАЩИЩЕННОСТИ» ПРИКЛАДНЫХ ПРОГРАММ В ОПЕРАЦИОННОЙ СИСТЕМЕ
Рассматривается алгоритмическая реализация процедуры контроля «защищенности» прикладных программ в операционной системе
Наиболее эффективным, с точки зрения полноты степени контроля, является алгоритм идентификации динамического образа прикладных программ, разработанный на основании трехуровневой модели контроля «защищенности» прикладных программ. На рис. 1 показана обобщенная структура подсистемы контроля выполнения прикладных программ.
Рис. 1. Обобщенная структура подсистемы контроля выполнения прикладных программ
На вход подсистемы контроля подаются исходные данные, в качестве которых выступают команды процессора, идентификатор выполняемого в настоящее время потока и идентификатор выполняемой в настоящее время функции. Эти данные предоставляются подсистеме контроля выполнения прикладных программ операционной системы (ОС).
Блок управления предназначен для подготовки полученных исходных данных к дальнейшему использованию и распределения преобразованных исходных данных по блокам, реализующим функции вычисления потока с максимальной вероятностью для всех трех уровней контроля данной модели.
Блоки вычисления потока с максимальной вероятностью для данного состояния представляют реализацию трех уровней контроля выполнения прикладных программ, оформленных в виде Марковской модели (ММ) и скрытой Марковской модели (СММ). Исходными данными, подаваемыми на вход этих блоков, являются данные, прошедшие обработку в блоке управления. На вход каждого блока попадают данные как текущие, так и задержанные на один такт. Задержка осуществляется в специальных линиях задержки, включенных в тракт подачи исходных данных.
В каждом блоке производится поиск эталонной модели , для которой вероятность появления последовательности наблюдаемых событий максимальна. Таким образом, выходным значением каждого из трех блоков является индекс потока, для которого вероятность появления данной последовательности наблюдений максимальна. В свою очередь, эти индексы являются входными данными для блоков получения кумулятивной суммы и принятия решения.
Таких блоков три, по числу уровней контроля. Это обусловлено тем, что каждый уровень контроля, представленный в виде ММ или СММ, имеет свои пороговые значения. Эти пороговые значения получаются в результате предварительного расчета и также подаются на вход блоков в качестве исходных данных. В каждом из этих блоков происходит сравнение индекса потока, полученного после вычисления максимальной вероятности появления текущей последовательности наблюдений, с индексом текущего потока, полученного в качестве исходных данных от оперативной памяти (ОП). Затем осуществляется подсчет кумулятивной суммы и сравнение со значением порога .
Результатом вычислений является сигнал, способный принимать два состояния – 0, в случае, когда выполняемый поток не отклоняется от нормы и 1, когда в контексте потока выполняются несанкционированные действия. Этот сигнал подается на блок формирования сигнала ошибки, который в случае получения подтверждения выполнения несанкционированных действий в контексте текущего потока, формирует код ошибки, содержащий информацию о том, на каком уровне контроля обнаружена активизация «враждебного кода».
Алгоритм контроля «защищенности» прикладных программ представлен на рис. 2.
Рис. 2. Алгоритм контроля «защищенности» прикладных программ в многозадачной ОС
Работу данного алгоритма можно описать следующим способом. После получения исходных данных, блоком 2 производится анализ текущей команды процессора. Если текущая команда, является командой вызова библиотечной функции (call), то в дальнейшем, происходит выполнение части алгоритма, реализующей ММ, в которой в качестве состояний используются факты вызова функций. В противном случае, осуществляется проверка, не является ли команда, командой возврата из библиотечной функции (ret).
Это необходимо для того, чтобы определить, в контексте какой из двух моделей необходимо рассматривать поступающие на вход команды процессора. Для этого в алгоритм введена переменная «Флаг», которая служит для выбора необходимой ветви алгоритма. Если переменная равна 0, то выполняется ветвь алгоритма, реализующая ММ с командами процессора в качестве состояний. Если же переменная равна 1, то выполняется ветвь алгоритма, реализующая СММ.
Дальнейшая последовательность действий в каждой из трех ветвей алгоритма одинакова. Блоки 4 – 9, 10 – 15, 19 – 24 реализуют выбор потока с максимальной вероятностью появления текущей последовательности наблюдений.
Это осуществляется путем перебора в матрицах переходных вероятностей для всех моделей потоков, входящих в множество санкционированных потоков, всех элементов с индексами, соответствующими текущему и предыдущему состоянию. В результате выполнения такого перебора получаем индекс потока в массиве санкционированных потоков.
Блок 25 предназначен для получения кумулятивной суммы. Кумулятивная сумма увеличивается в том случае, когда в процессе нахождения потока с максимальной вероятностью появления текущей последовательности наблюдений, будет принято решение не в пользу выполняемого в настоящий момент потока. В случае совпадений индексов потоков, накопленная в предыдущих итерациях кумулятивная сумма будет обнуляться.
Следующий шаг алгоритма (блок 26) заключается в сравнении кумулятивной суммы, полученной на предыдущем шаге с пороговым значением. В случае превышения порогового значения, на выходе алгоритма вырабатывается сигнал «ошибка». В противном случае, на выходе всегда присутствует сигнал «норма».
Таким образом, разработан алгоритм контроля «защищенности» прикладных программ позволяющий обеспечить безопасность выполнения прикладных программ в многозадачной операционной системе.
Воронежский государственный технический университет
УДК 621.3