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

Автор: Пользователь скрыл имя, 23 Марта 2012 в 03:04, дипломная работа

Краткое описание

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

Оглавление

Введение 4
Глава 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
Список использованной литературы 106

Файлы: 1 файл

диссер.doc

— 2.60 Мб (Скачать)


ИЗ ФОНДОВ РОССИЙСКОЙ ГОСУДАРСТВЕННОЙ БИБЛИОТЕКИ

Буинцев, Дмитрий Николаевич

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

Москва

Российская государственная библиотека

diss.rsl.ru 2006



Буинцев, Дмитрий Николаевич

Метод защиты программных средств на основе запутывающих преобразований : [Электронный ресурс]: Дис. ... канд. техн. наук: 05.13.19. - Томск: РГБ, 2006 (Из фондов Российской Государственной Библиотеки)

Методы и системы защиты информации, информационная безопасность

Полный текст: http://diss.rsl.ru/diss/06/0282/060282037.pdf



Текст воспроизводится по экземпляру, находящемуся в

фонде РГБ:

Буинцев, Дмитрий Николаевич

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

Томск 2006

Российская государственная библиотека, 2006 (электронный текст)



61:06-5/1633

Томский государственный университет систем управления и

радиоэлектроники

На правах рукописи

Буинцев Дмитрий Николаевич

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

преобразований

Специальность 05.13.19 - Методы и системы защиты информации,

информационная безопасность

диссертация на соискание ученой степени кандидата технических наук

Научный руководитель - доктор технических наук,

профессор А.А. Шелупанов

Томск - 2006



2

Содержание

Введение              4

Глава 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

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



4

Введение

Актуальность работы. Многие направления науки и техники, имеющие отношение к получению, обработке, хранению и передаче ин­формации, в значительной степени ориентируются на развитие современ­ных компьютерных систем (КС) [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.     Развитие методологии запутывающих преобразований применитель­но к программному обеспечению вне доверенной вычислительной среды, а так же программным системам защиты информации в бло­ках защиты логики работы.

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

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



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

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

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

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

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

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

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

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



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

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

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

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

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

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