Метод защиты программных средств на основе запутывающих преобразований
ИЗ ФОНДОВ РОССИЙСКОЙ ГОСУДАРСТВЕННОЙ БИБЛИОТЕКИ
Буинцев, Дмитрий Николаевич
Метод защиты программных средств на основе запутывающих преобразований
Москва
Российская государственная библиотека
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 тационной работы обеспечивается качественным и количественным сопоставлением полученных результатов с имеющимися современными теоретическими и экспериментальными данными.
Научная новизна работы заключается в следующем:
- обоснована и предложена методология запутывающих преобразований кода программного продукта, повышающая степень защиты исходного или дизассемблированного текста программного обеспечения;
- разработан метод защиты ПС вне доверенной вычислительной среды с использованием комбинирования запутывающих преобразований потока управления, форматирования и структур данных;
- предложены критерии и проведена оценка эффективности метода запутывающих преобразований;
- сделана оценка требуемых вычислительных ресурсов (памяти, процессорного времени) для выполнения запутанной программы и верификация полученных данных с выполнением исходной программы.
Публикация и апробация работы. Основные научные результаты опубликованы в 12 работах.
Материалы работы обсуждались на научно-методических семинарах кафедры комплексной информационной безопасности электронно-вычислительных систем ТУСУР, Отдела проблем информатизации Томского научного центра СО РАН, Томской группы инженеров по электротехнике и радиоэлектроники (ШЕЕ) и докладывались на научных конференциях:
1. XI Международная научно-методическая конференция (посвященная 15-летию образования системы Центров НИТ в России) «Новые информационные технологии в университетском образовании» (2006, Кемерово).
10
2. V Всероссийская научно-практическая конференция (посвященная 15-летию образования системы Центров НИТ в России) «Недра Кузбасса. Инновации» (2006, Кемерово).
3. XIV общероссийская научно-техническая конференция «Методы и технические средства обеспечения безопасности информации» (2005, Санкт-Петербург).
4. Всероссийская научно-техническая конференция «Научная сессия ТУ СУР» (2005, Томск).
5. Всероссийская научно-техническая конференция «Научная сессия ТУ СУР» (2004, Томск).
6. Всероссийский конкурс студентов и аспирантов по информационной безопасности «SIBINFO-2004».
7. Международная научно-практическая конференция «Электронные средства и системы управления» (2004, Томск).
Личный вклад. В диссертации использованы только те результаты, в которых автору принадлежит определяющая роль. Опубликованные работы написаны в соавторстве с сотрудниками научной группы. В совместных работах диссертант принимал участие в непосредственной разработке алгоритмов, теоретических расчетах и вычислительных экспериментах, в интерпретации результатов. Постановка задачи исследований осуществлялась научным руководителем, д.т.н., профессором А.А. Шелупановым.
Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы из 105 наименований и 4 приложений. Общий объем работы составляет 121 страницу, в том числе 28 рисунков и 9 таблиц.
11 Глава 1. Анализ методов защиты программных средств
Необходимость использования защиты ПС обусловлена рядом факторов, среди которых следует выделить: незаконное использование алгоритмов программного обеспечения (ПО), являющихся интеллектуальной собственностью автора [40, 64], при написании аналогов программного продукта (промышленный шпионаж), несанкционированное использование ПС (кража и копирование), несанкционированный доступ [1, 4, 25, 26, 27, 33, 56], использование и модификация ПС, незаконное распространение и сбыт ПС («пиратство») [53].
Сохраняющаяся тенденция роста уровня пиратства [37, 45, 50, 58] увеличивает финансовые потери производителей ПС.
В связи с этим разработка эффективных методов защиты для того или иного программного продукта в настоящее время остается одной из важных и актуальных задач при разработке специализированных ПС, так как это позволяет исключить возможность его нелегального использования. Затраты производителей на создание эффективного метода защиты их программных продуктов становятся экономически целесообразными и компенсируют потенциальный ущерб, наносимый нелегальным копированием и использованием программ.
Существующие способы защиты ПС можно разделить на способы, реализуемые с помощью программных и аппаратных средств защиты [5, 47, 72].
К аппаратным относятся средства, использующие специальное оборудование (например, электронные ключи, подключаемые к портам компьютера) [6] или физические особенности носителей информации (CD,DVD, CD-RW и т.д.), чтобы идентифицировать оригинальную версию программы и защитить продукт от нелегального использования. Такие методы наиболее удобны для производителя программного обеспечения, так как
12 легко можно защитить уже полностью готовый и оттестированный продукт.
Программные средства защиты реализуются программным путем без использования физических характеристик носителей информации, специального оборудования и т.п.
1.1 Методы защиты информации с помощью аппаратных средств
В последнее время все большую популярность среди производителей программного обеспечения приобретают аппаратные средства защиты ПС от несанкционированного доступа и копирования (НСД).
С 90-х годов 20 столетия активно развивается технология применения аппаратной защиты [72]. В настоящее время основные идеи этого подхода не изменились и широко используются в реализации аппаратных средств защиты информации.
Основные идеи состоят в следующем:
- комплексный подход к решению вопросов защиты информации;
- отказ от программных методов контроля и перенос наиболее критичных контрольных процедур на аппаратный уровень;
- максимально возможное разделение условно-постоянных и условно-переменных элементов контрольных операций;
- построение средств защиты информации от несанкционированного доступа, максимально независимых от операционных и файловых систем. Это выполнение процедур идентификации/аутентификации, контроля целостности аппаратных и программных средств до загрузки операционной системы, администрирования и т.д.
Вышеперечисленные принципы аппаратной защиты были реализованы в некоторых комплексах средств защиты информации от несанкционированного доступа, таких как: «SekretNet» (НИП «Информационная защи-
13 та»), «Dallas Lock» (OOO «Конфидент»), «Соболь» («Информзащита»), «Страж» (ЗАО «НИИ У ИМ АВН») и др., а так же в комплексах семейства «Аккорд» [47, 73], обеспечивающих режим доверенной загрузки в различных операционных средах [54]: MS DOS, Windows 3.x, Windows 9.x, Windows NT/2000/XP, OS/2, Unix, Linux.
Основным принципом работы комплекса является выполнение процедур, реализующих основные функции системы защиты информации до загрузки операционной системы.
Процедуры идентификации/аутентификации пользователя, контроля целостности аппаратных и программных средств, администрирование, блокировка загрузки операционной системы с внешних носителей информации размещены во внутренней памяти микроконтроллера платы «Аккорд». Таким образом, пользователь не имеет возможности изменения процедур, которые влияют на функциональность системы защиты информации. В энергонезависимой памяти контроллера «Аккорд» хранится информация о персональных данных пользователей, данные для контроля целостности программных и аппаратных средств, журнал регистрации и учета системных событий и действий пользователя. Эти данные могут быть изменены только авторизованным администратором безопасности информации, так как доступ к энергонезависимой памяти полностью определяется логикой работы программного обеспечения, размещенного в микроконтроллере платы.
В последнее время используются аппаратные средства криптографической защиты информации (АСКЗИ) [14, 15, 16, 47, 73, 90, 94, 96-98]. Это обусловлено, прежде всего, простотой и оперативностью их внедрения. Для этого достаточно у абонентов на передающей и приемной сторонах иметь аппаратуру АСКЗИ и комплект ключевых документов, чтобы гарантировать конфиденциальность информации.
14
Современные АСКЗИ строятся на модульном принципе, что дает возможность различной комплектации структуры АСКЗИ. Для нахождения обобщенного критерия оценки оптимальности структуры современной АСКЗИ достаточно рассмотреть основную цепь прохождения информации: адаптеры ввода, входные устройства, состоящие из клавиатуры, трансмиттера или фотосчитывателя, шифратора, устройства преобразования и устройство вывода. Остальные узлы и блоки не оказывают существенного влияния на прохождение информации.
Применение аппаратной поддержки в комплексах средств защиты информации от несанкционированного доступа (СЗИ НСД) семейства «Аккорд» и АСКЗИ позволило выйти на новый уровень в развитии средств защиты информации. Однако большинство систем до сих пор не способны защитить данные, "вышедшие за ее пределы", например в случае использования сетевого информационного обмена или при попытке доступа к дисковым накопителям путем загрузки альтернативной незащищенной вычислительной среды.
Так же, по методу установки аппаратные системы защиты можно подразделить на системы, устанавливаемые на скомпилированные модули ПС и системы, встраиваемые в исходный код ПС до компиляции, а также комбинированные [51, 52].
Системы первого типа удобны для производителя программного обеспечения, так как они легко могут защитить уже полностью готовое и оттестированное ПО. В то же время стойкость этих систем достаточно низка, так как для обхода защиты достаточно определить точку завершения работы «конверта» защиты и передачи управления защищенной программе, а затем принудительно ее сохранить в незащищенном виде.
Системы второго типа неудобны для производителя ПО, так как возникает необходимость обучать персонал работе с программным интерфейсом API (интерфейс API является важным программным посредником ме-
15 жду приложениями - компьютерными программами высокого уровня, которые указывают, как предоставлять ту или иную услугу, - и низкоуровневым ПО, применяемым на конкретных платформах) системы защиты с вытекающими отсюда материальными и временными затратами. Кроме того, усложняется процесс тестирования ПО и снижается его надежность, так как кроме самого ПО ошибки может содержать и API системы защиты или процедуры, его использующие.
Проведенный анализ существующих аппаратных средств защиты показал, что они имеют ряд существенных недостатков. С точки зрения производителя ПО аппаратные средства защиты обладают определенными отрицательными качествами, в том числе:
- дополнительные затраты на приобретение системы защиты и обучение персонала;
- замедление продаж, из-за необходимости физической передачи аппаратной части;
- повышение системных требований из-за защиты (совместимость, драйверы);
- снижение доверия пользователей при некорректной реализации защиты.
С точки зрения пользователя ПО так же имеются некоторые отрицательные факторы:
- снижение отказоустойчивости ПО;
- ограничения из-за несовместимости системы защиты с системным или прикладным ПО пользователя;
- ограничения из-за несовместимости системы защиты с аппаратными средствами пользователя;
- снижение расширяемости компьютерной системы (заняты слоты);
- затруднения или невозможность использования защищенного ПО в переносных и блокнотных ПК (габариты, энергозатраты);
16
- угроза кражи аппаратного ключа (в этом случае пользователь полностью теряет возможность использования законно купленного ПО, в отличие от пользователя ПО с защитой других типов). Необходимо отметить, что, если отрицательные стороны аппаратных средств защиты явно ощущаются пользователем, то их положительные стороны его практически не касаются. В свою очередь производители ПС рассматривают только относящиеся к ним «плюсы» и «минусы» систем защиты и практически не принимают во внимание факторы, относящиеся к пользователю. Естественно предположить, что наличие большого числа отрицательных факторов у применяемых производителем систем защиты может вызвать снижение спроса на программный продукт и постепенный переход пользователей на его аналоги от других фирм.
1.2 Программные средства защиты информации
В отношении обеспечения безопасности программные средства имеют ряд свойств, невыгодно отличающих их от аппаратных средств. В отличие от аппаратных средств ПС не имеют защитной физической оболочки, вследствие чего они оказываются уязвимыми для угроз конфиденциальности, модификации и копирования.
Особенностью этой задачи является отсутствие доверия к вычислительной среде, в которой выполняется ПС, поскольку ее собственник является потенциальным нарушителем.
Среди различных методов защиты информации предпочтительны методы, связанные с физическим ограничением доступа к информации, например путем хранения ее в строго защищенном пространстве. Однако, как только осуществляется переход к обработке и передаче информации, такие методы становятся малоэффективными, а порой и невозможными.
Под программными методами защиты информации понимается комплекс специальных алгоритмов и компонентов общего программного обес-
17 печения вычислительных систем, предназначенных для выполнения функций контроля, разграничения доступа и исключения несанкционированного доступа [48, 57]. Они являются распространёнными для защиты ПС вследствие их универсальности, гибкости, простоты реализации, возможности развития и адаптации к изменяющимся условиям эксплуатации вычислительных систем и т.д. [79, 80] Однако они также имеют ряд недостатков, таких, как расходование ресурсов центрального процессора вычислительной системы на их функционирование, возможность .несанкционированного изменения. Программная защита, как правило, применяется там, где введение и использование других методов и средств защиты информации затруднено. К программным методам защиты ПС относится использование водяных знаков (software watermark), отпечаток пальца (software fingerprint), установка подлинности кода (tamper-proofing), шифрование программного кода (enciphering) и запутывание программ (obfuscated program). [6, 8, 38]
Использование водяных знаков (software watermark), основывается на записи в код программы скрытой информации (кому принадлежат авторские права и т.д.), которая позволяет истинному автору программы доказать то, что она является именно его интеллектуальной собственностью.
Такая скрытая информация должна быть записана в программу, таким образом, чтобы она могла быть впоследствии извлечена, без каких либо изменений (повреждений) и не влияла на работу программы.
Отпечаток пальца (software fingerprint) основывается на записи в каждую копию программы уникального идентификационного кода, присваиваемого каждому покупателю программы, что позволяет в последствии быстро отследить нарушителя авторского права.

- Метод золотого сечения
- Методи діяльності ймовірності банкрутства
- Методи зниження кредитного ризику комерційного банку в період ринкової нестабільності
- Методи і механізми регулювання конфліктних ситуацій
- Методика анализа валютных операций
- Методика анализа вероятности банкротсва на предприятии
- Методика аналізу розрахунків оплати праці
- Метафора и метонимия в английских рекламных текстах
- Метафора «спорт» в современных английских газетно-публицистических текстах
- Метафорическое варьирование качественных прилагательных в английском языке…
- Метафоры в современном английском языке
- Метод бажаної точки при прийнятті рішень в умовах визначеності та його програмна реалізація
- Метод ближайших соседей в задаче классификации
- Метод бухгалтерского учета