Автор: Пользователь скрыл имя, 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
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. Разработан метод запутывания программ, который обладает следующими отличительными особенностями:
Информация о работе Метод защиты программных средств на основе запутывающих преобразований