Автор: Пользователь скрыл имя, 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
ИЗ ФОНДОВ РОССИЙСКОЙ ГОСУДАРСТВЕННОЙ БИБЛИОТЕКИ
Буинцев, Дмитрий Николаевич
Метод защиты программных средств на основе запутывающих преобразований
Москва
Российская государственная библиотека
diss.rsl.ru 2006
Буинцев, Дмитрий Николаевич
Метод защиты программных средств на основе запутывающих преобразований : [Электронный ресурс]: Дис. ... канд. техн. наук: 05.13.19. - Томск: РГБ, 2006 (Из фондов Российской Государственной Библиотеки)
Методы и системы защиты информации, информационная безопасность
Полный текст: http://diss.rsl.ru/diss/06/
Текст воспроизводится по экземпляру, находящемуся в
фонде РГБ:
Буинцев, Дмитрий Николаевич
Метод защиты программных средств на основе запутывающих преобразований
Томск 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 Результаты дизассемблирования
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 тационной работы обеспечивается качественным и количественным сопоставлением полученных результатов с имеющимися современными теоретическими и экспериментальными данными.
Научная новизна работы заключается в следующем:
- обоснована и предложена методология запутывающих преобразований кода программного продукта, повышающая степень защиты исходного или дизассемблированного текста программного обеспечения;
- разработан метод защиты ПС вне доверенной вычислительной среды с использованием комбинирования запутывающих преобразований потока управления, форматирования и структур данных;
- предложены критерии и проведена оценка эффективности метода запутывающих преобразований;
Информация о работе Метод защиты программных средств на основе запутывающих преобразований