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

Автор: Пользователь скрыл имя, 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 Мб (Скачать)

2500     5000     7500    10000   12500   15000   17500   20000   22500   25000   27500   30000

Количество операций

Рисунок 4.8 - Отношение количества операций для метода «выборки»

Количество элементов для метода «вставки» изменялось в интервале от 1 000 - 30 000. При этом время выполнения исходной программы - от 0 до 4,8 сек. Количество операций в зависимости от числа использованных элементов

лежит в интервале от 70 * 106 - 1 500* 106.

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

-              время выполнения изменялось в пределах 0 - 11,48 сек;

-              количество операций изменялось в пределах 300 * 106- 2 500* 106.
Результаты сравнения исходной программы и измененной преобразо­
ваниями по этим критериям представлены на рис 4.9 и в таблице 4.3.



96 Таблица 4.3 - Сравнительные данные для программы сортировки мето-

дом «вставки»

 

Кол-во элементов

Время вы­полнения исходной программы, сек.

N\, число

операций

исходной

программы,

*106

Время вы­полнения запутанной программы, сек.

N2, число

операций

запутанной

программы,

*106

Отношение

N2IN\

1000

0,001

70

0,0017

300

4,28571429

5000

0,16

120

0,32

360

3

9000

0,43

130

1,04

500

3,84615385

13000

0,87

255

2,14

720

2,82352941

17000

1,48

430

3,57

1016

2,3627907

21000

2,36

660

5,54

1400

2,12121212

25000

3,3

1000

7,85

1856

1,856

30000

4,8

1500

11,48

2550

1,7



 



 



fff

Л? <£§> # Л? # ^ # -#

<§>     &    &    &    q>°    eft    f§P

Количество элементов


\5   к-   <у   <х?   <др

Количество элементов



 



• полученное


исходное


■ полученное


исходное



Рисунок 4.9 -Зависимость критериев анализа от количества элементов для

сортировки для метода «вставки»



97 Отношение количества операций преобразованной программы к исход­ной приведено на рис.4.10.



 



 



1000              5000              9000              13000              17000

Количество элементов


21000


25000


30000



Рисунок 4.10- Отношение количества операций для метода «вставки»

Количество элементов для метода «шелла» изменялось в интервале от 10 000 - 120 000. При этом время выполнения исходной программы - от 0 до 1,4 сек. Количество операций в зависимости от числа использованных эле­ментов лежит в интервале от 1,5 * 106 - 193 * 106.

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

-              время выполнения изменялось в пределах 0,001 - 1,5 сек;

-              количество операций изменялось в пределах 4,5 * 106- 520* 106.
Результаты сравнения исходной программы и измененной преобразо­
ваниями по этим критериям представлены на рис 4.11 ив таблице 4.4.



98 Таблица 4.4.- Сравнительные данные для программы сортировки ме-

тодом «шелла».

 

Кол-во элементов

Время вы­полнения исходной

программы,

сек.

N\, число

операций

исходной

программы,

*106

Время вы­полнения запутанной программы, сек.

N2, число

операций

запутанной

программы,

*106

Отношение Ni/N\

10000

0,001

1,5

0,05

4,5

3

20000

0,05

5,6

0,109

14

2,5

30000

0,1

14

0,2

38

2,714286

40000

0,16

22

0,38

58

2,636364

50000

0,21

34

0,65

91

2,676471

60000

0,34

50

0,9

140

2,8

70000

0,43

64

1,208

174

2,71875

80000

0,54

84

1,645

225

2,678571

90000

0,7

114

2,1

296

2,596491

100000

0,87

130

2,52

348

2,676923

110000

1,06

158

3,1

420

2,658228

120000

1,4

193

3,79

520

2,694301



<5^ о*'

Л

04¾              Г©

rfP    &>    fp1    ^    jff    <$-

N^   „£>   «$$>  ЛФ   «|? ^00

Количество элементов


ID

< о

з-го

О.

ф

с о

о

CQ

н о ф

т

5

I


©

^

Л

# # #

су

ч^

<р   Л?

Количество элементов



 



■ исходное


полученное


■ исходное


полученное



Рисунок 4.11 -Зависимость критериев анализа от количества элементов для

сортировки для метода «Шелла»



99 Отношение количества операций преобразованной программы к исход­ной приведено на рис.4.12.

 

3,5 -і             

_-—-•-

3   ^ «     2,5   -   ^-^--""^

І              2 -

g      1,5   -

(5     і-

0,5   -

0 -I———Н              Ч—

#     #     #     #      #     #     #      #      #      #     &     & Ф     rf     ф     (Р8     <Р*     &     л*     <ъ°      <F    N<9     ч^     <F

Количество элементов

Рисунок 4.12 - Отношение количества операций для метода «Шелла» В результате проведенного анализа были получены следующие обоб­щенные результаты:

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

—    В используемых примерах для сортировки массива из 20 000 значений отношение количества операций запутанной программы к количеству операций исходной программы изменяется от 2.2 до 2.7.

—    Увеличение отношения времени работы запутанной программы ко вре­мени работы исходной программы для сортировки массива из 20 000 значений составляет от 1.5 до 2.8.

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

программных средств

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



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

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

Метод применим для языков высокого уровня и технологией объектно-ориентированного программирования. Область применения метода защиты ПС следующая:

-         защита от средств динамического анализа;

-         защита от средств статического анализа;

-         защита от детального ручного анализа.

Применение программной реализации метода ограничено областью ис­пользования операционных систем Windows.

Практическая реализация метода выполнена на языке программирования Visual С.

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

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

Результаты исследований, проведенных автором в данной работе, носят комплексный характер. Они направлены на повышение надежности защиты ПС в пользовательском режиме.



101 Предложенные решения дают возможность успешно противодейство­вать средствам анализа программного кода.

Положительные аспекты при внедрении разработанного метода сле­дующие:

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

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

-         низкая стоимость;

-         затруднение несанкционированного изучения и модификации ПС.

4.7 Выводы

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

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

Подтверждена оценка достоверности результатов проделанной работы. Проведенный автором расчет показал, что вероятность того, что защита за­путанного текста ПС не будет снята, равна 0.87 в момент времени t, когда данная вероятность для исходного текста равна 0. Из этого следует, что для анализа исходного текста ПС будет затрачено времени в среднем в 8 раз меньше, чем на анализ запутанного текста. Среднее время на анализ исход­ного текста в момент времени ґ(при p(t) = 0) составляет 4 часа. Среднее

время на анализ запутанного текста в момент времени t (при p(t) = 0) состав­ляет 24 час.



102 Для оценки адекватности разработанного метода был проведен сравни­тельный расчет для алгоритма запутывания C.Wang's. Выполненный расчет показал, что эффективность защиты ПС предложенным методом выше на 56.7%. Сравнение полученных результатов позволяет судить об адекватности разработанного метода. Время на анализ запутанного текста ПС методом C.Wang's в момент времени г (при p{t) = 0) составило 12.5 час. Время на ана­лиз запутанного текста программы предложенным автором методом в мо­мент времени /(при p(t) = 0) составило 32.5 час. Вероятность того, что за­щита запутанного текста ПС разработанным методом не будет снята, равна 0.79 (/7(/) = 0.79) в момент времени t, когда вероятность для запутанного

текста программы методом C.Wang's равна 0 (p(t) = 0).

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



103

Заключение

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

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

В результате проведенных исследований получены следующие ос­новные научные и практические результаты:

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

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

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

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