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