Методы защиты программного обеспечения от исследования

Автор работы: Пользователь скрыл имя, 07 Мая 2013 в 21:13, доклад

Краткое описание

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

Прикрепленные файлы: 1 файл

доклад.docx

— 17.21 Кб (Скачать документ)

Министерство  образования и науки Российской Федерации

Федеральное Государственное бюджетное образовательное

учреждение высшего профессионального  образования

«Сибирская государственная геодезическая  академия»

(ФГБОУ ВПО «СГГА»)

 

 

ИКиП



           Кафедра  «Безопасности жизнедеятельности»

 

 

 

 

 

Доклад

 

По дисциплине: «Безопасность информации»

 

Тема: «Методы защиты программного обеспечения от исследования»

 

 

 

 

 

                                         

 

 

 

 

 

 

 

 

 

 

Новосибирск 2012 г

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

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

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

-       инициализатор;

-       зашифрованную секретную часть;

-       деструктор (деициниализатор).

Инициализатор должен обеспечивать выполнение следующих  функций:

-       сохранение параметров операционной среды функционирования (векторов прерываний, содержимого регистров процессора и т.д.);

-       запрет всех внутренних и внешних прерываний, обработка которых не может быть запротоколирована в защищаемой программе;

-       загрузка в оперативную память и дешифрование кода секретной части

-       программы;

-       передача управления секретной части программы.

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

Деструктор  после выполнения секретной части  программы должен выполнить следующие  действия:

-       обнуление секретного кода программы в оперативной памяти;

-       восстановление параметров операционной системы (векторов прерываний, содержимого регистров процессора и т.д.), которые были установлены до запрета неконтролируемых прерываний;

-       выполнение операций, которые невозможно было выполнить при запрете неконтролируемых прерываний;

-       освобождение всех незадействованных ресурсов компьютера и завершение работы программы.

Для большей  надежности инициализатор может  быть частично зашифрован и по мере выполнения может дешифровать сам  себя.

Дешифроваться по мере выполнения может и секретная  часть программы.

Такое дешифрование называется динамическим дешифрованием  исполняемого кода. В этом случае очередные  участки программ перед непосредственным исполнением расшифровываются, а  после исполнения сразу уничтожаются.

Для повышения  эффективности защиты программ от исследования необходимо внесение в программу  дополнительных функций безопасности, направленных на защиту от трассировки. К таким функциям можно отнести:

-       периодический подсчет контрольной суммы области оперативной памяти, занимаемой защищаемым исходным кодом; сравнение текущей контрольной суммы с предварительно сформированной эталонной и принятие необходимых мер в случае несовпадения;

-       проверку количества занимаемой защищаемой программой оперативной памяти; сравнение с объемом, к которому программа адаптирована, и принятие необходимых мер в случае несоответствия;

-       контроль времени выполнения отдельных частей программы;

-       блокировку клавиатуры на время отработки особо секретных алгоритмов.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список использованной литературы

 

  1. Девянин П. Н. и др. Теоретические основы компьютерной безопасности: Учеб. пособие для вузов. - М.: Радио и связь, 2000. - 192 с. 
  2. Тимченко А.А., Колесников К.В., Шадхин В.Е. Системный анализ критериев и параметров проектирования системы защиты – 2006. – №2. – С.63-65.

Информация о работе Методы защиты программного обеспечения от исследования