Методика и программное средство защиты кода от несанкционированного анализа

Методы и средства защиты информации

УДК 004.056

М. О. Шудрак, И. А. Лубкин

Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Россия, Красноярск

МЕТОДИКА И ПРОГРАММНОЕ СРЕДСТВО ЗАЩИТЫ КОДА ОТ НЕСАНКЦИОНИРОВАННОГО АНАЛИЗА

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

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

- проанализировать существующие методики защиты программного кода;

- разработать алгоритм анализа машинных инструкций;

- спроектировать промежуточный язык представления машинных инструкций;

- разработать прототип программного средства, способного к полиморфной генерации кода.

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

Процесс полиморфной генерации бинарного кода можно условно разделить на два этапа:

- анализ запутываемого кода;

- генерацию инструкций на основе проведенного анализа.

Анализ бинарного кода является нетривиальной задачей, в силу того что в процессе компиляции исход-

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

Соответствующий уровень абстракции может быть получен путем декомпиляции программного кода. Алгоритм работы декомпилятора представлен на рис. 1.

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

На этапе генерации кода производится выбор инструкции из множества поддерживаемых генератором инструкций, выбор приемника информации и источника информации, где приемник формируется исходя из данных о задействованных регистрах или ресурсов памяти [2].

Для реализации полиморфного генератора были использованы как уже существующие [3], так и оригинальные разработки. Для оценки качества полиморфного генератора и визуализации был разработан интерфейс программного обеспечения, включивший в себя дизассемблер и оригинальный декомпилятор, позволяющий наглядно продемонстрировать те действия, которые реализует полиморфный генератор в бинарном коде защищаемого объекта.

Рис. 1. Алгоритм генерации полиморфного кода

Решетневскце чтения

Представляя разработанный по вышеуказанной методике программный комплекс, необходимо отметить, что он имеет модульную архитектуру с учетом возможности использования модулей отдельно друг от друга (рис. 2). Также помимо самого программного средства была разработана и заполнена база данных, а также реализована система управления базой данных (СУБД) для решения задачи поддержки новых инструкций.

Дим с се« Информация

Рис. 2. Структура программного средства

Таким образом, реализованное программное средство представляет собой анализатор программного кода, полиморфный генератор кода, СУБД и базу данных, устанавливающую соответствие инструкций их алгоритмам.

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

Библиографические ссылки

1. Золотарев В. В. Метод исследования программных средств защиты информации на основе компонентной модели информационной среды / Изв. Юж. федер. ун-та. Таганрог, 2008. Вып. 8. С. 87-94.

2. Кукарцев А. М., Лубкин И. А. Методика защиты программного кода от несанкционированной модификации и исследования посредством его хеширования // Вестник СибГАУ. Красноярск, 2008. Вып. 1. С. 56-60.

3. Hacker Disassembler Engine [Электронный ресурс]. URL: http://vx.netlux.org (дата обращения: 13.11.2011).

M. O. Shudrak, I. A. Lubkin Siberian State Aerospace University named after academician M. F. Reshetnev, Russia, Krasnoyarsk

METHOD AND SOFTWARE OF BINARY CODE PROTECTION

This article considers the method and software of binary code protection by making obfuscation in the protected site of code. To inject code the authors developed an original technique for decompiling binary code.

© mygpaK M. O., ^yÔEHH H. A., 2011

УДК 004.724

К. Е. Шудрова, В. Ю. Почкаенко

Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Россия, Красноярск

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕТОДИКИ ВСТРАИВАНИЯ СКРЫТОЙ ИНФОРМАЦИИ В ВИДЕОПОТОК

Рассматривается программная реализация методики встраивания скрытой информации. Данная методика базируется на алгоритме «Метка привилегий», который заключается в добавлении информации в опциональное поле ТСР-заголовков.

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

Предложена методика передачи конфиденциальной информации путем встраивания ее видеопоток.

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

Клиент при помощи клиентской части приложения и аутентификатора авторизуется в системе и получает доступ к видеоконференции, в ходе которой передает и получает конфиденциальную информацию. Не име-