КАРПОВ А.Е. ДИФФЕРЕНЦИАЦИЯ ИНТЕРВАЛОВ ПРОВЕРКИ ЦЕЛОСТНОСТИ КОДА НА ОСНОВЕ ОЦЕНКИ ВАЖНОСТИ ОБЪЕКТОВ


КАРПОВ А.Е. ДИФФЕРЕНЦИАЦИЯ ИНТЕРВАЛОВ ПРОВЕРКИ ЦЕЛОСТНОСТИ КОДА НА ОСНОВЕ ОЦЕНКИ ВАЖНОСТИ ОБЪЕКТОВ


Библиографическая ссылка на статью:
// Современная техника и технологии. 2012. № 6 [Электронный ресурс]. URL: http://technology.snauka.ru/2012/06/1101 (дата обращения: 27.05.2017).

Автор – Карпов А.Е., магистрант 2-го курса

Научный руководитель – Макарычев П.П., д.т.н., профессор

Пензенский государственный университет

 

В настоящее время одной из тенденций в обеспечении безопасной среды является разработка средств, контролирующих целостность кода, посредством его проверки. Одним из видов контроля целостности кода, наряду с контролем времени загрузки, является контроль целостности времени выполнения. Контроль времени выполнения подразумевает периодическую проверку целостности уже загруженного в память кода. При таком виде контроля большую возможность имеет частота проверки целостности. Как отмечается в работе [1] «требуется поддерживать разумный компромисс между уровнем защищённости информации и эффективностью функционирования системы по прямому назначению».

В данной статье уделяется внимание снижению накладных расходов по процессорному времени.

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

Самым простым методом выполнения периодической проверки является проверка всех объектов через фиксированные интервалы времени.

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

Один цикл проверки состоит из времени проверки всех объектов и времени ожидания следующей проверки (интервала проверки):

,

где – время проверки целостности всех объектов, – ожидания следующей проверки – интервал между проверками, N – общее количество проверяемых объектов, – время выполнения проверки объекта i.

Пусть входным параметром системы контроля целостности кода является коэффициент частоты выполнения проверок:

. (1)

Тогда интервал между проверками можно получить из следующего соотношения:

. (2)

Интервал же между выполнением проверки целостности каждого объекта:

. (3)

В данной работе в отличие от вышеуказанного метода и метода, основанного на оценке критериев качества функционирования программной системы [1; 2; 3; 5; 6], предлагается подход, основанный на установке различных интервалов проверки, в зависимости от важности объекта проверки (модуля режима ядра или процесса).

Для определения важности модулей были выбраны следующие критерии оценки:

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

    Первые три критерия оценивают модули, как «чёрный ящик», в отличие от последнего, учитывающего внутреннюю структуру модуля.

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

  • функции должны быть простыми, быстро вычислимыми;
  • значения функций должны быть нормированными и лежать в промежутке [0; 1].

    Функция оценки критерия порядка загрузки:

    ,

    где – операция усечённой разности: , m- порядковый номер модуля при загрузке, а M – среднее количество модулей, загружаемых до входа в систему.

    Функция – линейная, непрерывно убывающая на интервале , , на интервале .

    Функция оценки критерия частоты использования:

    ,

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

    Функция оценки критерия нарушений целостности:

    где H – множество отметок времени, когда было зафиксировано нарушение целостности модуля, t – текущий момент времени, T – длина максимального интервала времени, за который оценивается частота модификаций, A – подмножество множества H, включающее только те отметки времени, которые входят во временной интервал. При этом на любом временном интервале единичной длины количество зафиксированных нарушений целостности не превышает единицы, следовательно, для интервала длиной T , и значит, значение функции всегда принадлежит интервалу . Для любого T функция является линейной, непрерывно возрастающей.

    Функция оценки критерия использования важных системных функций:

    . ,

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

    Для выделения множества важных системных функций был проанализирован, как API пользовательского режима, так и API режима ядра. Анализ проводился на основе данных о функциях, представленных в [4; 7; 8; 9; 10]. Во множество вошли следующие функции:

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

    Множество выделенных функций пересекается с множеством важных функций, выделенных в [11].

     

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

    где p – значение оценки важности объекта.

     

    Рисунок 1 – Зависимость интервала проверки объекта от значения оценки его важности

     

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

    Для нахождения минимального и максимального интервалов проверки можно использовать соотношения аналогичные (2, 3):

     

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

    Проведены следующие эксперименты:

  • формирование списка значений хеш-функции (ГОСТ Р 34.11-94) от секций кода всех исполняемых модулей в системе (т.н. каталога безопасности);
  • сжатие файлов;
  • распаковка файлов.

     

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

    Параметры аппаратного обеспечения, использованного для проведения экспериментов:

  • модель процессора – Intel Core i5-2410M;
  • тактовая частота – 2.3 GHz;
  • размер оперативной памяти – 2 ГБ.

    Параметры программного обеспечения:

  • операционная система – 32-битная версия Windows 7 Ultimate с пакетом обновления Service Pack 1;
  • пакет офисных программ – Microsoft Office 2010;
  • разработанная подсистема контроля целостности кода;
  • файловый архиватор 7-zip 9.20.

    Используемая для экспериментов операционная система – 32-битная версия Windows 7 Ultimate с пакетом обновления Service Pack 1.

    Параметры подсистемы контроля целостности кода при выполнении проверки с фиксированным интервалом:

  • время проверки целостности всех объектов ;
  • коэффициент частоты выполнения проверок .

    Параметры подсистемы контроля целостности кода при выполнении проверки с дифференциацией интервалов в зависимости от важности объектов:

  • начальное время проверки целостности всех объектов ;
  • максимальный коэффициент частоты выполнения проверок ;
  • минимальный коэффициент частоты выполнения проверок .

     

    Эксперимент 1. Формирование каталога безопасности.

    Параметры:

  • размер системного диска – 28 ГБ;
  • количество исполняемых файлов – 11706 (из них операционная система – 10673, Microsoft Office – 835, остальные файлы – 198);

    Эксперимент 2. Сжатие файлов.

    Параметры:

  • размер директории подлежащей сжатию – 840 МБ;
  • формат сжатия – 7z;
  • уровень сжатия – нормальный;
  • метод сжатия – LZMA.
  • размер словаря – 16 МБ;
  • размер слова – 32.

    Эксперимент 3. Распаковка файлов.

    Параметры: архив, полученный при выполнении эксперимента № 2, размером 346 МБ.

     

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

     

    Таблица 1 – Результаты экспериментов

    Эксперимент

    Время выполнения без проверки

    целостности, с

    С проверкой целостности

    Фиксированные интервалы

    Интервалы зависят от важности

    Время, с

    Затраты на проверку, %

    Время, с

    Затраты на проверку, %

    Формирование каталога безопасности

    1500

    2100

    40

    1845

    23

    Сжатие файлов

    720

    900

    25

    840

    17

    Распаковка файлов

    200

    260

    30

    240

    20

     

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

     

    Рисунок 2 – Результаты экспериментов

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

    Результаты экспериментов подтверждают эффективность предложенного подхода.

    Список использованных источников

     

  1. Дубровин, А.С. Методы и средства автоматизированного управления подсистемой контроля целостности в системах защиты информации : автореф. дис. канд. техн. наук : 05.13.18, 05.13.19 / А.С. Дубравин; Воронеж. гос. техн. ун-т. – Воронеж, 2003
  2. Дубровин, А.С. Методы и средства автоматизированного управления подсистемой контроля целостности в системах защиты информации: Монография / А.С. Дубровин, О.Ю. Макаров, Е.А. Рогозин, В.И. Сумин, В.В. Обухов, Ю.А. Мещеряков Ю.А. – Воронеж: Воронеж. гос. техн. ун-т, 2003
  3. Дубровин, А.С. Модели и методы обеспечения надежности и безопасности информационных процессов в системах обработки данных критического применения : автореф. дис. док. техн. наук: 05.13.17, 05.13.19 / А.С. Дубравин; Воронеж. гос. техн. ун-т.. – Воронеж, 2010
  4. Рихтер, Дж. Windows via C/C++. Программирование на языке Visual C++ / Дж. Рихтер, К. Назар. – М.: Русская Редакция; СПб.: Питер, 2008
  5. Родин, С.В. Моделирование систем защиты информации в информационных системах вневедомственной охраны : автореф. дис. канд. техн. наук. : 05.13.18, 05.13.19 / С.В. Родин; Воронеж ин-т МВД России. – Воронеж, 2009
  6. Сумин, В.И. Управление контролем целостности эталонной автоматизированной системы вневедомственной охраны / В.И. Сумин, С.А. Лебедев, С.В. Родин // Научные ведомости Белгородского государственного университета. Серия: История. Политология. Экономика. Информатика. № 1 (72) 2010, Выпуск 13/1
  7. Ховард, М. Защищённый код для Windows Vista. / М. Ховард, Д. Лебланк. – М.: Русская редакция, 2008
  8. Хоглунд, Г. Руткиты: внедрение в ядро Windows / Г. Хоглунд, Дж. Батлер. – СПб.: Питер, 2007
  9. Perla, E. A Guide to Kernel Exploitation. Attacking the Core / E. Perla, M. Oldani. Syngress, 2011
  10. Russinovich, M. Windows Internals, 5th edition. / M. E. Russinovich, D. A. Solomon, A. Ionescu. – Redmond, Washington: Microsoft Press, 2009
  11. Sikorski, M. Practical Malware Analysis / M. Sikorski, A. Honig. – San Francisco: No starch Press, 2012


Все статьи автора «Андрей Карпов»


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

Связь с автором (комментарии/рецензии к статье)

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

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: