Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

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

Метод защиты программных средств на основе запутывающих преобразований
<
Метод защиты программных средств на основе запутывающих преобразований Метод защиты программных средств на основе запутывающих преобразований Метод защиты программных средств на основе запутывающих преобразований Метод защиты программных средств на основе запутывающих преобразований Метод защиты программных средств на основе запутывающих преобразований Метод защиты программных средств на основе запутывающих преобразований Метод защиты программных средств на основе запутывающих преобразований Метод защиты программных средств на основе запутывающих преобразований Метод защиты программных средств на основе запутывающих преобразований
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Буинцев, Дмитрий Николаевич. Метод защиты программных средств на основе запутывающих преобразований : диссертация ... кандидата технических наук : 05.13.19. - Томск, 2006. - 121 с.

Содержание к диссертации

Введение

Глава 1. Анализ методов защиты программных средств 11

1.1 Методы защиты информации с помощью аппаратных средств 12

1.2 Программные средства защиты информации 16

1.3 Анализ программных средств как объекта защиты 21

1.4 Анализ структуры программных систем защиты информации 24

1.5 Выводы 26

Глава 2. Построение методов защиты программных средств с помощью, запутывающих преобразований 28

2.1 Понятие запутывающих преобразований для реализации защиты программных средств вне доверенной вычислительной среды 29

2.2 Классификация запутывающих преобразований 32

2.2.1 Преобразования форматирования 32

2.2.2 Преобразования структур данных 33

2.2.3 Преобразования потока управления .34

2.3 Классификация методов анализа программ .44

2.3.1 Методы статического анализа .45

2.3.2 Методы статистического и динамического анализа 47

2.4 Классификация способов запутывания к применяемым методам анализа и распутывания программ 48

2.5 Оценка эффективности применения запутывающих преобразований 50

2.6 Выводы .51

Глава З. Построение метода защиты программных средств с помощью запутывающих преобразований ;.53

3.1 Построение графа потока управления 56

3.2 Преобразование графа потока управления 60

3.5 Теоретическое обоснование устойчивости метода 68

3.6 Практическое обоснование устойчивости мето да 71

3.7 Выводы 72

Глава 4. Решение практических задач защиты программных средств 74

4.1 Анализ характеристик методов защиты программных средств 74

4.2 Выбор объектов тестирования 74

4.3 Методика оценки эффективности защиты 75

4.3.1 Оценка эффективности программных средств 80

4.4 Оценка устойчивости метода к ручному анализу и дизассемблированию85

4.4.1 Подготовка эксперимента 85

4.4.2 Описание результатов эксперимента 86

4.4.3 Результаты дизассемблирования 90

4.5 Определение размера требуемых ресурсов вычислительной системы 91

4.6 Показатели применимости разработанного метода защиты программных средств 99

4.7 Выводы 101

Заключение 103

Список использованной литературы

Введение к работе

Актуальность работы. Многие направления науки и техники, имеющие отношение к получению, обработке, хранению и передаче информации, в значительной степени ориентируются на развитие современных компьютерных систем (КС) [30]. Такие системы представляют разнообразную и весьма сложную совокупность вычислительных устройств, систем обработки информации, телекоммуникационных технологий, программного обеспечения и высокоэффективных средств его проектирования и в общем случае представляющие гетерогенную программно-аппаратную среду.

Применяемые компьютерные информационные технологии решают огромный круг проблем в различных областях человеческой деятельности, от простого решения задач до управления сложными технологическими процессами. Чем сложнее задача автоматизации и чем ответственнее область, в которой используются компьютерные информационные технологии, тем все более критичными становятся такие свойства как надежность и безопасность информационных ресурсов [41, 59], задействованных в процессе сбора, накопления, обработки, передачи и хранения компьютерных данных. Вредоносные воздействия на информацию в процессе функционирования КС различного назначения осуществляются с целью нарушения ее конфиденциальности, целостности и доступности. Решение задач, связанных с предотвращением воздействия непосредственно на информацию, осуществляется в рамках комплексной проблемы обеспечения безопасности информации и имеет достаточно развитую научно-методическую базу. Следует отметить, что исследования по обеспечению информационной безопасности включены в перечень приоритетных направлений развития науки и техники и критических технологий РФ. При этом, рассматривая информацию как активный эксплуатируемый ресурс, можно говорить о том, что процесс обеспечения безопасности информа-

5 ции включает в себя и обеспечение безопасности программного обеспечения или программных средств (ПС) компьютерных систем. Данный аспект обеспечения безопасности информации и средств ее обработки именуется эксплуатационной безопасностью, так как соответствует этапу применения КС.

Очевидно, что функциональные и надежностные характеристики КС определяются качеством и надежностью программного обеспечения, входящего в их состав. Кроме проблем качества и надежности ПС при создании КС фундаментальная проблема обеспечения их безопасности приобретает все большую актуальность. При этом в рамках данной проблемы на первый план выдвигается безопасность технологий создания программного обеспечения [19, 24, 45, 46, 60, 62, 65]. Данный аспект проблемы безопасности программных комплексов является сравнительно новым и связан с возможностью внедрения в тело программных средств на этапе их разработки (или модификации в ходе авторского сопровождения) так называемых "программных закладок" [44] или преобразование кода программы таким образом, что он становится технически сложным для анализа и модификации и экономически нецелесообразным.

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

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

В настоящее время активно ведутся работы по разработке методов защиты ПС от несанкционированного доступа с целью сокрытия их логики и структуры [83, 86, 102, 103]. Большинство существующих методов защиты ПС решают проблему защиты в составе доверенной вычислительной среды, где доверенные аппаратные средства предоставляют общую защитную физическую оболочку для всех компонент информационной системы.

Доверенная вычислительная среда - это интегрированная среда с совокупностью защитных механизмов, использующих достаточные аппаратные и программные средства, чтобы обеспечить одновременную обработку информации разной степени секретности группой пользователей без нарушения прав доступа согласно политики безопасности [72, 73].

Задача защиты ПС вне доверенной вычислительной среды, определяется тем, что применение вспомогательных аппаратных средств является нежелательным, а часто невозможным.

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

Проблемы защиты ПС в том числе и вне доверенной вычислительной среды рассматриваются в работах ряда авторов: СП. Расторгуева, А.В. Чернова, П.Д. Зегжды, А.А. Шелупанова, В.А. Захарова, Г.Н. Чижу-хина, А.А. Малюка и др., а так же зарубежных исследователей: В. Barak, С. Collberg, С. Wang. В тоже время эта проблема далека от окончательного решения, т.к. предложенные методы защиты либо не достаточно универсальны и подразумевают использование вспомогательных аппаратных

7 средств, либо не достаточно формализованы, и остается открытым вопрос определения эффективности защиты.

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

[3].

Эти методы защиты ПС относятся к классу запутывающих преобразований (obfuscating transformations) (маскировки программ), т.е. в результате применения к исходной незапутанной программе таких преобразований получается запутанная программа (obfuscated), которая более трудна для анализа, понимания и модификации[70].

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

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

  1. Проведение оценки эффективности запутывающих преобразований.

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

8 повышения уровня защищенности исходного или дизассемблиро-ванного текста.

  1. Разработка метода защиты ПС на основе запутывающих преобразований.

  2. Проведение оценки величины требуемых ресурсов вычислительной системы для реализации метода.

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

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

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

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

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

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

Научная новизна работы заключается в следующем:

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

разработан метод защиты ПС вне доверенной вычислительной среды с использованием комбинирования запутывающих преобразований потока управления, форматирования и структур данных;

предложены критерии и проведена оценка эффективности метода запутывающих преобразований;

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

Публикация и апробация работы. Основные научные результаты опубликованы в 12 работах.

Материалы работы обсуждались на научно-методических семинарах кафедры комплексной информационной безопасности электронно-вычислительных систем ТУСУР, Отдела проблем информатизации Томского научного центра СО РАН, Томской группы инженеров по электротехнике и радиоэлектроники (ШЕЕ) и докладывались на научных конференциях:

1. XI Международная научно-методическая конференция (посвященная 15-летию образования системы Центров НИТ в России) «Новые информационные технологии в университетском образовании» (2006, Кемерово).

  1. V Всероссийская научно-практическая конференция (посвященная 15-летию образования системы Центров НИТ в России) «Недра Кузбасса. Инновации» (2006, Кемерово).

  2. XIV общероссийская научно-техническая конференция «Методы и технические средства обеспечения безопасности информации» (2005, Санкт-Петербург).

  3. Всероссийская научно-техническая конференция «Научная сессия ТУ СУР» (2005, Томск).

  4. Всероссийская научно-техническая конференция «Научная сессия ТУ СУР» (2004, Томск).

  5. Всероссийский конкурс студентов и аспирантов по информационной безопасности «SIBINFO-2004».

  6. Международная научно-практическая конференция «Электронные средства и системы управления» (2004, Томск).

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

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы из 105 наименований и 4 приложений. Общий объем работы составляет 121 страницу, в том числе 28 рисунков и 9 таблиц.

Программные средства защиты информации

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

Особенностью этой задачи является отсутствие доверия к вычислительной среде, в которой выполняется ПС, поскольку ее собственник является потенциальным нарушителем.

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

Под программными методами защиты информации понимается комплекс специальных алгоритмов и компонентов общего программного обес печения вычислительных систем, предназначенных для выполнения функций контроля, разграничения доступа и исключения несанкционированного доступа [48, 57]. Они являются распространёнными для защиты ПС вследствие их универсальности, гибкости, простоты реализации, возможности развития и адаптации к изменяющимся условиям эксплуатации вычислительных систем и т.д. [79, 80] Однако они также имеют ряд недостатков, таких, как расходование ресурсов центрального процессора вычислительной системы на их функционирование, возможность .несанкционированного изменения. Программная защита, как правило, применяется там, где введение и использование других методов и средств защиты информации затруднено. К программным методам защиты ПС относится использование водяных знаков (software watermark), отпечаток пальца (software fingerprint), установка подлинности кода (tamper-proofing), шифрование программного кода (enciphering) и запутывание программ (obfuscated program). [6, 8, 38]

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

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

Отпечаток пальца (software fingerprint) основывается на записи в каждую копию программы уникального идентификационного кода, присваиваемого каждому покупателю программы, что позволяет в последствии быстро отследить нарушителя авторского права.

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

Установка подлинности кода (tamper-proofing) заключается в том, что в программу помещается процедура проверки целостности самой программы, что позволяет определить, была ли программа изменена (были ли внесены какие либо изменения в ее код). Если эта процедура обнаруживает, что в программу внесены изменения, она делает ее не функциональной. Это позволяет защитить программный продукт, от изменений со стороны злоумышленника.

Недостаток этого метода состоит в том, что достаточно определить точку вызова процедуры проверки, изменить условие проверки или обойти его.

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

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

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

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

Анализ структуры программных систем защиты информации

Программная система защиты от несанкционированного доступа [26] представляет собой комплекс средств, предназначенный для затруднения несанкционированного доступа. Структурная схема программной системы защиты от несанкционированного доступа [17, 42, 48, 49, 74] приведена на рисунке 1.1.

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

Внедряемый защитный код - это программный модуль для противодействия попыткам нелегального доступа.

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

Блок защиты логики работы от анализа предназначен для противодействия применяемым для анализа системы защиты средствам исследования.

Блок установки характеристик среды устанавливает факт легальности доступа к защищаемой программе.

Блок сравнения характеристик среды проверяет наличие оригинальной для ЭВМ информации.

Блок ответной реакции реализует ответные действия системы защиты на попытки несанкционированного доступа.

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

Согласно оценочной модели надежности программных средств защиты, предложенной СП. Расторгуевым [48], если время снятия программных средств защиты равно или больше времени, которое затрачено на раз работку и реализацию защищенных алгоритмов, то можно говорить об эффективной защите ПС. Так же, чем больше времени затрачено на разработку защищенного ПС, тем больше вероятность того, что защита будет преодолена.

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

Для защиты ПС с высокой стоимостью следует применять программные средства защиты совместно с аппаратными средствами.

На основании проведенного в данной главе анализа методов и подходов к защите информации можно сделать выводы об ограниченном количестве способов реализации защиты ПС.

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

Классификация запутывающих преобразований

К преобразованиям форматирования относятся удаление комментариев, переформатирование программы, удаление отладочной информации, изменение имён идентификаторов [70, 71, 82].

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

При переформатировании программы исходное форматирование теряется, но программа всегда может быть переформатирована с использованием какого-либо инструмента для автоматического форматирования программ (indent, для программ на языке Си [34]).

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

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

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

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

Преобразования потока управления изменяют граф потока управления одной функции. Они могут приводить к созданию в программе новых функций. В работе [71, 86] приведено описание преобразований потока управления.

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

Вынос группы операторов (function outlining). Данное преобразование является обратным к предыдущему и хорошо дополняет его. Некоторая группа операторов исходной программы выделяется в отдельную функцию. При необходимости создаются формальные параметры. Преобразование может быть легко обращено компилятором, который может подставлять тела функций в точки их вызова.

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

Непрозрачные предикаты (opaque predicates). Данные преобразования основываются на введении непрозрачных переменных и предикатов. Сложность анализа непрозрачных предикатов и переменных обеспечивает устойчивость таких преобразований к анализу.

Практическое обоснование устойчивости мето да

Существующие методики оценки эффективности защиты информации, учитывают особенности и целевое назначение программных средств защиты. В [48] приведена аналитическая модель, учитывающая особенность построения ПС защиты и позволяет получать, количественные оценки надежности в зависимости от времени, затраченного на анализ программы.

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

В ряде случаев их можно интерпретировать случайными числами, которые оцениваются по результатам тестирования (статистическая оценка), либо экспертными оценками. При этом методика, которая рассматривает два способа «снятия» защиты - автоматическое и ручное, использует следующие понятия: множество средств исследования программного кода, позволяющих автоматически снимать защиту с программ, защищенных с помощью исследуемой защиты; множество средств исследования программного кода, облегчающих анализ защищенной программы; вероятность наличия у пользователя средства на момент времени t множества средств автоматического снятия защиты; вероятность наличия у пользователя средства на момент времени t множества средств, облегчающих анализ; вероятность того, что пользователь опробует имеющиеся у него средства для автоматического снятия защиты с защищаемой программы; вероятность того, что пользователь опробует имеющиеся у него средства для исследования защитного механизма защищенной программы; объем защитного механизма (число команд и операндов); популярность защищаемой программы (тираж) на момент времени t; популярность метода защиты (тираж) на момент времени t. Вероятность того, что защита не будет снята с одной копии защищенной программы ни одним из средств автоматического снятия на момент времени /, будет определяться по формуле: л(0 = 1-/1(0+1(0-0-А). (4Л) где rx{t) - вероятность наличия у пользователя средства на момент времени t из множества средств снятия защиты; ly - вероятность, что пользователь опробует имеющиеся у него средства для автоматического снятия защиты с защищаемой программы. С учетом количества выпущенных копий защищенной программы -m\{t) соответственно: px{t,m,) = {\-rx(t)-LxT(t) (4.2)

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

Для получения численной экспертной оценки надежности защитного механизма автор методики вводит качественные понятия «Уровень Понимания Программного Продукта (УППП)» исследователем - U.

УППП отражает знание и понимание исследователем назначения команд и операндов программы. Единица измерения УППП - число машинных команд, операндов. Считаем, что уровень понимания программного продукта конкретным исследователем равен N, если эксперт в состоянии «откомментировать» назначение каждой команды и каждого операнда применительно к функциям, которые решает данный программный продукт. В общем случае процесс исследования защитного механизма на предмет его преодоления носит вероятностный характер. Вероятность, что за время t один эксперт не сможет разобраться с защитным механизмом будет определяться через отношение УППП к объему программы: где L2 - вероятность, что пользователь опробует имеющиеся у него средства для исследования ПСЗИ защищенной программы; U{t) - УППП на момент времени t;

Похожие диссертации на Метод защиты программных средств на основе запутывающих преобразований