Автор: Пользователь скрыл имя, 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
Для проведения статистического анализа результатов эксперимента, вве-
дем критерий уровня выполнения задания [39]:
1-й уровень - задача выполнена, т.е. респондент справился с заданием;
2-й уровень - задача выполнена частично, т.е. респондент получил промежуточные результаты, но с заданием не справился;
3-й уровень - задача не выполнена, т.е. респондент не справился с заданием.
Тогда результаты эксперимента можно представить в следующем виде (таб. 4.2, рис. 4.6).
Таблица 4.2. - Результаты эксперимента по порядковой шкале.
Уровень выполнения задания | Задача№1 | Задача№2 | Задача№3 | Задача№4 | Задача№5 |
1 | 6 чел. | 9 чел. | 6 чел. | 12 чел. | - |
2 | 12 чел. | - | 21 чел. | - | 6 чел. |
3 | 12 чел. | 21 чел. | 3 чел. | 18 чел. | 24 чел. |
90
* 0
□ Задача №1
■ Задача №2
□ Задача №3
□ Задача №4
■ Задача №5
1
Уровень выполнения задания
Рисунок 4.6 - Гистограмма результатов выполнения задания. Из проведенного эксперимента можно сделать следующие выводы:
- большая трудность восприятия текстов программ;
- трудность восприятия меток и переменных;
- большое количество затрачиваемого времени на анализ программ. Среднее время, затрачиваемое на анализ, составляет 3.5 часа, при этом
не получено ни каких данных о программе (переменных и участков программы, в которых заключены основные алгоритмы).
4.4.3 Результаты дизассемблирования
Для дизассемблирования использовалась программа WinHexl2.3. В результате полученный размер текста программы обычных сортировок в ассемблерном виде [32] составил несколько тысяч строк ассемблерного кода.
При проведении анализа ассемблерного кода запутанных и исходных программ получены следующие результаты:
увеличение количества строк в запутанных программах по сравнению с исходными тексами в среднем на 15 091 строк;
увеличение количества переходов в среднем в 4 раза (использование внутренних меток) и уменьшение длинны участков программы между метками и, как следствие, большое ветвление запутанной программы;
91 увеличение количества команд по работе с памятью и данными пересылок в среднем в 2 раза, в результате больше работы со стеком.
Проведение данного анализа показало, что при компиляции программ не весь «мертвый код» определяется компилятором, использование массивов приводит к увеличению операций при работе с памятью. Использование большого числа операций и использование лишних сравнений приводит к большому ветвлению программы. В результате, даже при удачной декомпи-ляции, в тексте программы сохраняется «мертвый код», лишние сравнения и дополнительные переходы. Следовательно, декомпиляция и анализ полученных результатов не эффективны и очень трудоемки.
4.5 Определение размера требуемых ресурсов вычислительной системы
Критериями при выполнении численных экспериментов для сравнения и анализа запутывающих преобразований были взяты: среднее время обработки и среднее количество операций, выполняемых в программе, количество элементов для сортировки менялось в заданном интервале, массив элементов заполнялся случайными числами [9]. Запутанные программы тестировались на ПК с характеристиками: процессор Intel Pentium М/ Celeron М 1,3 ГГц, оперативная память 256 МБ.
Для программ были применены все преобразования, описанные выше (добавление «мертвого кода» в программу путем внесения 100 переприсваиваний, добавление 15 меток и т.д.).
Количество элементов для метода «пузырька» изменялось в интервале от 2 500 - 25 000. При этом время выполнения исходной программы - от 0,05 до 9,12 сек. Количество операций в зависимости от числа использованных элементов лежит в интервале от 60 * 106- 1 523* 106.
В результате преобразований при том же диапазоне изменения количества элементов, были получены следующие результаты:
- время выполнения изменялось в пределах 0,16 - 14,23 сек;
92 - количество операций изменялось в пределах 60 * 106 - 3 460* 106. Результаты сравнения исходной программы и измененной преобразованиями по этим критериям представлены на рис 4.5 и в таблице 4.1.
Таблица 4.1 - Сравнительные данные для программы сортировки методом «пузырька»
Кол-во элементов | Время выполнения исходной программы, сек. | N\, число операций исходной программы, *106 | Время выполнения запутанной программы, сек. | N2, число операций запутанной программы, *106 | Отношение N2IN\ |
2500 | 0,05 | 60 | 0,16 | 60 | 1 |
5000 | 0,32 | 120 | 0,54 | 130 | 0,923077 |
7500 | 0,82 | 243 | 1,2 | 270 | 1,111111 |
10000 | 1,48 | 342 | 2,25 | 483 | 1,412281 |
12500 | 2,25 | 468 | 3,4 | 758 | 1,619658 |
15000 | 3,29 | 622 | 5 | 1096 | 1,762058 |
17500 | 4,45 | 807 | 6,86 | 1496 | 1,853779 |
20100 | 5,82 | 1015 | 8,95 | 2030 | 2 |
22500 | 7,41 | 1255 | 11,42 | 2640 | 2,103586 |
25000 | 9,12 | 1523 | 14,23 | 3460 | 2,271832 |
о о о о
о о о о
О Ю О 1Л
ю г-» о см
см m см см
*
ф о
к
5 X
ф
I с; о
с
А СО
К
ф О.
ш
оооооооооо оооооооооо
ЮОЮОЮОЮт-ЮО
смтг-осмюг^осмю
т- т- т- т- CM CN СМ
Количество элементов
4000
Количество элементов
• исходное
измененое
• исходное
измененое
Рисунок 4.5 -Зависимость критериев анализа от количества элементов для сортировки для метода «пузырька»
93 Отношение количества операций преобразованной программы к исходной приведено на рис.4.6.
2500 5000 7500 10000 12500 15000 17500 20100 22500 25000
Количество элементов
Рисунок 4.6 - Отношение количества операций для метода «пузырька»
Количество элементов для метода «выборки» изменялось в интервале от 2 500 - 30 000. При этом время выполнения исходной программы - от 0,05 до 4,2 сек. Количество операций в зависимости от числа использованных элементов лежит в интервале от 9 * 106- 1 350* 106.
В результате преобразований при том же диапазоне изменения количества элементов, были получены следующие результаты:
- время выполнения изменялось в диапазоне 0,109 - 9,4 сек;
- количество операций в диапазоне 19 * 106 - 2 702* 106.
Результаты сравнения исходной программы и измененной преобразова
ниями по этим критериям представлены на рис 4.7 и в таблице 4.2.
94 Таблица 4.2 - Сравнительные данные для программы сортировки методом «выборки»
Кол-во элементов | Время выполнения исходной программы, сек. | Ni, число операций исходной программы, *106 | Время выполнения запутанной программы, сек. | Л^2, число операций запутанной программы, *106 | Отношение N2INX |
2500 | 0,05 | 9 | 0,109 | 19 | 2,111111 |
5000 | 0,109 | 37 | 0,219 | 75 | 2,027027 |
7500 | 0,27 | 84 | 0,604 | 169 | 2,011905 |
10000 | 0,49 | 150 | 1,04 | 300 | 2 |
12500 | 0,715 | 234 | 1,65 | 469 | 2,004274 |
15000 | 1,04 | 337 | 2,36 | 676 | 2,005935 |
17500 | 1,428 | 459 | 3,24 | 920 | 2,004357 |
20000 | 1,86 | 600 | 4,17 | 1200 | 2 |
22500 | 2,362 | 760 | 5,32 | 1520 | 2 |
25000 | 2,91 | 938 | 6,53 | 1877 | 2,001066 |
27500 | 3,51 | 1135 | 7,91 | 2271 | 2,000881 |
30000 | 4,2 | 1350 | 9,4 | 2702 | 2,001481 |
I
і
m
0)
Q. СО
f 3000
о
L- 2500
Количество элементов
Количество операций
■ полученное
исходное
■полученное
исходное
Рисунок 4.7 -Зависимость критериев анализа от количества элементов для
сортировки для метода «выборки»
95 Отношение количества операций преобразованной программы к исходной приведено на рис.4.8.
2,1 • |
|
|
|
|
| -I-::.. |
2,08 J |
|
|
|
|
|
|
g 2,06 -І 2,04 J о 2,02 | —_, r_^ —• | • | •— |
|
| '\ |
О 2 1,98 |
|
| —• | • |
|
|
1,96 |
|
|
|
|
|
|
1.94 J | 1— 1 1 1 | 1 | 1 1 | f— | 1 | 1 |
Информация о работе Метод защиты программных средств на основе запутывающих преобразований