В.П. Мельников и др. - Информационная безопасность и защита информации (1022816), страница 48
Текст из файла (страница 48)
В качестве примеров можно привести изменения стандартного алгоритма подсчета контрольной суммы и работы системы позиционирования накопителей на гибких магнитных дисках. В контроллерах накопителей подсчитывается и записывается контрольная сумма данных сектора. Если изменить алгоритм под- 216 счета контрольной суммы, то прочитать информацию на стандартном накопителе будет невозможно из-за сбоев.
Способы, препятствующие использованию скопированной информаяии, предназначены для затруднения или невозможности использования полученных копированием данных. Скопированная информация может быть программой или данными. Данные и программы могут быть защищены, если они хранятся на ВЗУ в преобразованном криптографическими методами виде. Программы, кроме того, могут защищаться от несанкционированного исполнения и тиражирования, а также от исследования.
Наиболее действенным (после криптографического преобразования) методом противодействия несанкционированному выполнению скопированных программ является использование блока контроля среды размещения программы. Блок контроля среды размещения является дополнительной частью программ. Он создается при инсталляции (установке) программ. В него включаются характеристики среды, в которой размещается программа, а также средства получения и сравнения характеристик. В качестве характеристик используются характеристики ЭВМ и носителя информации — особенности архитектуры ЭВМ: тип и частота центрального процессора, номер процессора (если он есть), состав и характеристики внешних устройств, особенности их подключения, режимы работы блоков и устройств и т.д. Приведенные средства защиты от несанкционированного использования дискет эффективны против стандартных способов создания копий (СОРУ, ХСОРУ, Р!ексору, Рс1оо!з, 1чопоп Ш!1!г)ез в МБ РОЯ и др.).
Однако существуют программные срелства (СОРУ%%ТЕ, Р!ЯК ЕХР( ОКЕК), позволяющие создавать полностью идентичные копии дискет с воспроизведением всех уникальных характеристик. Приведенный метод защиты нельзя считать абсолютно неэффективным, так как трудоемкость преодоления защиты велика и требования, предъявляемые к квалификации взломщика, высоки. Общий алгоритм механизма зашиты от несанкционированного использования программ в «чужой» среде размещения сводится к выполнению следующей последовательности действий, 1.
Запоминание множества индивидуальных контрольных характеристик ЭВМ и (или) съемного носителя информации на этапе инсталляции защищаемой программы. 2. При запуске защищенной программы управление передается на блок контроля среды размещения. Блок осуществляет сбор и сравнение характеристик срелы размещения с контрольными характеристиками. 3.
Если сравнение прошло успешно, то программа выполняется, в противном случае следует отказ в выполнении, который может быть дополнен выполнением деструктивных действий в 217 отношении этой программы, приводящих к невозможности выполнения этой программы, если такую самоликвидацию дозволяет выцолнить ОС. Привязка программ к среде размещения требует повторной их инсталляции после проведения модернизации, изменения структуры или ремонта КС с заменой устройств.
Для зашиты от несанкционированного использования программ могут применяться и электронные ключи. Электронный ключ НАБР имеет размеры со спичечный коробок и подключается к параллельному порту принтера. Принтер подключается к компьютеру через электронный ключ. На работу принтера ключ не оказывает никакого влияния. Ключ распространяется с защищаемой программой.
Программа в начале и в ходе выиолнения считывает контрольную информацию из ключа. При отсутствии ключа выполнение программы блокируется. Защита программных средств от исследования производится на основе методологии изучения логики работы программы. Она может реализоваться в одном из двух режимов: стати чсском и динамическом. Сущность статического режима заключается в изучении исходного текста программы. Для получения листингов исходного текста выполняемый программный модуль дизассемблируют, т.е. получают из программы на машинном языке программу на языке Ассемблер.
Динамический режим изучения алгоритма программы предполагает выполнение трассировки программы — выполнение программы на ЭВМ с использованием специальных средств, позволяющих выполнять программу в пошаговом режиме, получать достуц к регистрам, областям памяти, производить остановку программы по определенным адресам и т.д. Изучение алгоритма работы црограммы осуществляется либо в процессе трассировки, либо по данным трассировки, которые записаны в запоминающем устройстве. Средства противодействия дизассемблированию не могут защитить программу от трассировки, и наоборот: программы, защищенные только от трассировки, могут быть дизассемблированы. Поэтому для защиты программ от изучения необходимо иметь средства противодействия как дизассемблированию, так и трассировке. Существует несколько методов противодействия дизассемблированию: ° шифрование; ° архивация; ° использование самогенерируемых кодов; ° «обман» дизассемблера.
Шыфрование предусматривает преобразование исходного текста программы в зашифрованный. Зашифрованную программу 2!8 невозможно дизассемблировать без расшифрования. Зашифрование (расшифрование) программ может осуществляться аппаратными средствами или отдельными программами. Такое шифрование используется перед передачей программы по каналам связи или при хранении ее на ВЗУ. Дизассемблирование программ в этом случае возможно только при получении доступа к расшифрованной программе, находящейся в ОП перед ее выполнением ~если считается, что преодолеть криптографическую защиту невозможно).
Другой подход к защите от дизассемблирования связан с совмещением процесса расшифрования с процессом выполнения программ. Если расшифрование всей программы осуществляется блоком, получающим управление первым, то такую программу расшифровать довольно просто. Гораздо сложнее расшифровать и дизассемблировать программу, которая поэтапно расшифровывает информацию, а этапы разнесены по ходу выполнения программы. Задача становится еще более сложной„если процесс расшифрования разнесен по тексту программы. Архивация — это процесс сжатия информации. Она может быть объединена с шифрованием.
Комбинация таких методов позволяет получать надежно закрытые компактные программы. Сущность метода, основанного на использовании самогелерируемых кодов, заключается в том, что исполняемые коды программы получаются самой программой в процессе ее выполнения. Самогенерируемые колы получаются в результате определенных действий над специально выбранным массивом данных.
В качестве исходных данных могут использоваться исполняемые коды самой программы или специально подготовленный массив данных. Данный метод показал свою высокую эффективность, но он сложен в реализации. Под обманом дизассемблера понимают такой стиль программирования, который вызывает нарушение правильной работы стандартного дизассемблера за счет нестандартных приемов использования отдельных команл, нарушения общепринятых соглашений.
«Обман» дизассемблера осуществляется следующими способами: ° нестандартная структура программы; ° скрытые переходы, вызовы процедур, возвраты из них и из прерываний; ° переходы и вызовы подпрограмм по линамически изменяемым адресам; ° модификация исполняемых кодов. Для дезориентации дизассемблера часто используются скрытые переходы, вызовы и возвраты за счет применения нестандартных возможностей команд. Маскировка скрытых действий часто осуществляется с применением стеков.
219 Трассировка программ обычно осуществляется с помощью программных продуктов, называемых отладчиками. Основное их назначение — выявление оц|ибок в программах. При анализе алгоритмов программ используются такие возможности отлалчиков, как пошаговое (покомандное) выполнение программ, возможность останова в контрольной точке. При наличии современных средств отладки программ полностью исключить возможность изучения алгоритма программы невозможно, но существенно затруднить трассировку можно.
Основной задачей противодействия трассировке является увеличение числа и сложности ручных операций, которые необходимо выполнить программисту-аналитику. Для противодействия трассировке программы при се построении используются следующие приемы и способы: ° изменение среды функционирования; ° модификация кодов программы; ° случайные переходы. Под изменением среды функционирования понимается запрет или переопределение прерываний (если это возможно), изменение режимов работы, состояния управляющих регистров, триггеров и т.д. Такие изменения вынуждают аналитика отслеживать изменения и вручную восстанавливать среду функционирования. Модификация кодов программ, например в процедурах, приводит к тому, что каждое выполнение процедуры выполняется по различным ветвям алгоритма.
Случайные лереходы выполняются за счет вычисления адресов переходов. Исходными данными для этого служат характеристики среды функционирования, контрольные суммы процедур (модифицируемых) и т.д. Включение таких механизмов в текст программ существенно усложняет изучение алгоритмов программ путем их трассировки. 5.2.