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

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

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

Публикация и апробация работы. Основные научные результаты опубликованы в 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) основывается на записи в каждую копию программы уникального идентификационного кода, присваиваемого каждому покупателю программы, что позволяет в последствии быстро отсле­дить нарушителя авторского права.

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