Моделирование конфликтных ПОТОКОВ ДАННЫХ В СИСТЕМАХ ЗАЩИТЫ ИНФОРМАЦИИ

25-11-2017

Шитый код один из способов реализации промежуточной виртуальной машины при интерпретации языков программирования (наряду с байткод).

Основное представление программы при использовании шитого кода - массив вызовов подпрограмм (рис. 2). Реализация шитого кода, способ хранения ЭТИХ вызовов может быть различной. Этот код может обрабатываться интерпретатором (за которым утвердилось название адресный интерпретатор), или может быть простой последовательностью машинных инструкций вызова подпрограммы. Некоторый набор базовых подпрограмм виртуальной машины, использующей шитый код, реализуется в виде подпрограмм, написанных на ходе которого сотрудники машинном коде [5].

Таким образом, сохраняется скорость выполнения кода программы, и одновременно с этим повышается его защищенность. Теоретически, выполняя дешифрованию всего одной инструкции за «такт», позволяет обеспечить защиту программного кода с вероятностью p = 100%. Иными словами, в памяти компьютера в данный момент времени t будет находиться одна инструкция kj. Это сделает реверсный инжиниринг кода невозможным.

Применить описанную технологию можно в РАЗЛИчНЫХ вариации. В качестве примера можно рассмотреть такую ​​последовательность действий:

1. В качестве ключа шифрования кода может выступать некоторая лицензия (ключевой файл), выданная пользователю (ограничивается несанкционированное копирование).

2. Весь защищаемый код программы содержит фрагменты защитного кода, рассеянный при помощи генератора псевдослучайной последовательности, Выполняемые ВМ, непосредственно внедренной в основную программу.

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

Информационная безопасность, № 1 (1), 2009

возможным. При этом хотя дизассемблирования машинного кода программы все еще доступно Злоумышленник, но не дает желаемого результата, т.к. отделение оригинального кода от внедренного защитного кода становится очень трудоемкой задачей с не всегда предсказуемым результатам. Для достижения еще более высокой степени защиты возможна частичная реализация программы в виртуальной машине подсистемы защиты, например, взять для этого 510% кода от общего объема программы, занимающего 12% времени выполнения, это не даст проигрыш по скорости, но значительно усилить взлом, сведе его практически на нет (Согласно частному случаю эмпирический закон Парето в течение 80% времени работы процессор выполняет 20% от общего числа реализованных в программе команд).

Выводы

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


Смотрите также:
 ШУМ ПРИ ИМПУЛЬСНОКОДОВОЙ модуляции
 КРИТЕРИИ И МОДЕЛИ ОЦЕНКИ живучести компьютерных СИСТЕМ
 ТРЕБОВАНИЯ К ПОСТРОЕНИЮ МОДЕЛИ УГРОЗ ИНФОРМАЦИОННЫХ СИСТЕМ
 ПОСТРОЕНИЕ КОМПЛЕКСНОЙ многоуровневой защиты ИНФОРМАЦИОННО-ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
 Уязвимости криптоалгоритмов

Добавить комментарий:
Введите ваше имя:

Комментарий:

Защита от спама - решите пример:

Взято с сайта