Анализ защищенности программного обеспечения

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

?ды, особенности их выполнения, результаты ввода/вывода в/из несуществующих аппаратных портов. Такие особенности эмуляторов, как и у обычных отладчиков, специфичны для каждого конкретного эмулятора. Поэтому защита от них может работать только против известных ей эмулирующих отладчиков.

Система защиты от эмулирующих отладчиков строится аналогично системе защиты от обычных отладчиков с тем отличием, что из-за самого характера эмуляции блок ответной реакции ограничен в возможностях. Он не может ни выгрузить эмулирующий отладчик, ни нейтрализовать его, хотя существуют специфичные для различных эмуляторов приемы, использующие ошибки в их реализации и вызывающие их аварийное завершение или зависание, например, из-за переполнения стека.

Как и в случае с обычными отладчиками, главный недостаток систем защиты от эмулирующих отладчиков - их узкая специализация, требование индивидуального подхода к каждому из регистрируемых системой защиты эмуляторов. Все вышеописанные способы защиты от эмуляторов не являются корректным стилем программирования и могут быть потенциальными причинами сбоев при работе защищенного ПО.

Защита от дизассемблеров.

Дизассемблеры - это средства статического анализа исполняемого кода. Их применение угрожает системе защиты ПО тем, что с их помощью злоумышленник, изучив полученный дизассемблером листинг, может раскрыть алгоритм ее работы. Современные дизассемблеры снабжены широким диапазоном средств для полноценного изучения кода человеком в полуавтоматическом режиме. Наиболее ярким представителем инструмента такого рода является дизассемблер IDA.[13] Некоторые способы защиты кода, рассмотренные ранее при анализе способов защиты кода от исследования, эффективно действуют против дизассемблеров. В первую очередь, это шифрование исполняемых модулей. Очевидно, что при шифровании исполняемого модуля у исследователя не будет возможности корректно дизассемблировать и проанализировать код и данные до тех пор, пока модуль не будет расшифрован.

Существуют также специфические средства защиты от дизассемблеров, использующие ошибки реализации в конкретных дизассемблерах. Это, например, применение в реализации защиты ПО недокументированных машинных команд, которые распознаются процессором при работе ПО, но могут не распознаваться некоторыми дизассемблерами и т.д.

Как правило, такие способы защиты не являются корректным стилем программирования и имеют свою оборотную сторону, снижая корректность работы системы защиты ПО в целом. Так, например, применение недокументированные машинных команд может привести к неработоспособности системы защиты ПО, а следовательно, и всего защищенного ПО на совместимых процессорах других производителей или на будущих версиях этого же процессора из-за отсутствия недокументированной команды.

 

.3 Правовая поддержка процессов разработки и применения ПО

 

Рассмотрим непосредственно правовую защиту программного обеспечения.

Программное обеспечение состоит из трех компонент:

замысла (основания, подосновы);

собственно программ;

сопровождающей документации.

Замысел - это идеи, концепции, алгоритмы, соображения по реализации и т.п.

Программа может выступать в одной из трех форм: исходный, объектный или исполняемый коды.

К документации относятся: руководство по использованию, блок диаграммы, книги по обучению; иногда сложное программное изделие, такое, как операционная система, сопровождается специальным аудиовизуальным курсом обучения.

Правовая защита программного обеспечения по своей проблематике во многом совпадает с более широкой задачей - правовой защитой интеллектуальной собственности.

В настоящее время имеется пять основных правовых механизмов защиты программного обеспечения: авторское право; патентное право; право промышленных тайн; право, относящееся к недобросовестным методам конкуренции; контрактное право.

Два основных механизма - это авторское и патентное право.

Сменяемость компьютерных систем составляет характерную для рынка аппаратных средств величину: 40 месяцев. Но никто не проводил анализа сменяемости программных изделий. Можно предположить, что это примерно 24-30 месяцев. Эта оценка важна потому, что срок патентования составляет несколько лет (до 5 и более). Так что даже если бы не было никаких правовых трудностей с патентованием программного обеспечения, механизм патентной защиты плохо подходил бы к программному обеспечению.

Рассмотрим вопрос о защите программного обеспечения авторским правом. Основные положения авторского права устанавливают баланс между общественным интересом и защитой прав автора. С одной стороны общество нуждается в новых разработках, идеях, с другой - права автора должны быть защищены для того, чтобы поощрить его к дальнейшей работе.

Авторское право обеспечивает автоматическую защиту. Защита авторским правом возникает вместе с созданием произведения независимо от того, предоставил ли автор копию произведения в Бюро по авторскому праву для регистрации. Однако без регистрации держатель авторского права не может реализовать свои права. Например, он не может возбудить иск о нарушении его права и не может получить возмещение.

Авторское право защищает произведение от копирования, но не защищает независимого создания эквивалентов. Таким образом, риск монополизации знания при использовании авторского права существенно меньше, чем при использ