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

Р.Р. Абулханов, и.И. Застрожнов

АЛГОРИТМ КОНТРОЛЯ «ЗАЩИЩЕННОСТИ» ПРИКЛАДНЫХ ПРОГРАММ В ОПЕРАЦИОННОЙ СИСТЕМЕ

Рассматривается алгоритмическая реализация процедуры контроля «защищенности» прикладных программ в операционной системе

Наиболее эффективным, с точки зрения полноты степени контроля, является алгоритм идентификации динамического образа прикладных программ, разработанный на основании трехуровневой модели контроля «защищенности» прикладных программ. На рис. 1 показана обобщенная структура подсистемы контроля выполнения прикладных программ.

Рис. 1. Обобщенная структура подсистемы контроля выполнения прикладных программ

На вход подсистемы контроля подаются исходные данные, в качестве которых выступают команды процессора, идентификатор выполняемого в настоящее время потока и идентификатор выполняемой в настоящее время функции. Эти данные предоставляются подсистеме контроля выполнения прикладных программ операционной системы (ОС).

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

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

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

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

Результатом вычислений является сигнал, способный принимать два состояния – 0, в случае, когда выполняемый поток не отклоняется от нормы и 1, когда в контексте потока выполняются несанкционированные действия. Этот сигнал подается на блок формирования сигнала ошибки, который в случае получения подтверждения выполнения несанкционированных действий в контексте текущего потока, формирует код ошибки, содержащий информацию о том, на каком уровне контроля обнаружена активизация «враждебного кода».

Алгоритм контроля «защищенности» прикладных программ представлен на рис. 2.

Рис. 2. Алгоритм контроля «защищенности» прикладных программ в многозадачной ОС

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

Это необходимо для того, чтобы определить, в контексте какой из двух моделей необходимо рассматривать поступающие на вход команды процессора. Для этого в алгоритм введена переменная «Флаг», которая служит для выбора необходимой ветви алгоритма. Если переменная равна 0, то выполняется ветвь алгоритма, реализующая ММ с командами процессора в качестве состояний. Если же переменная равна 1, то выполняется ветвь алгоритма, реализующая СММ.

Дальнейшая последовательность действий в каждой из трех ветвей алгоритма одинакова. Блоки 4 – 9, 10 – 15, 19 – 24 реализуют выбор потока с максимальной вероятностью появления текущей последовательности наблюдений.

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

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

Следующий шаг алгоритма (блок 26) заключается в сравнении кумулятивной суммы, полученной на предыдущем шаге с пороговым значением. В случае превышения порогового значения, на выходе алгоритма вырабатывается сигнал «ошибка». В противном случае, на выходе всегда присутствует сигнал «норма».

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

Воронежский государственный технический университет

УДК 621.3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]