Анализ вредоносных объектов методом декомпиляции программного кода

Секция «Методы и средства зашиты информации»

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

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

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

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

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

подходящих вариантов средств защиты, пока их не останется достаточное для выбора количество.

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

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

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

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

© Хохоля А. С., Золотарев В. В., 2011

УДК 004.056

М. О. Шудрак Научный руководитель - Л. А. Лубкин Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

АНАЛИЗ ВРЕДОНОСНЫХ ОБЪЕКТОВ МЕТОДОМ ДЕКОМПИЛЯЦИИ

ПРОГРАММНОГО КОДА

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

На сегодняшний день, существует и развивается широкий спектр методов обнаружения и анализа вредоносного кода, но наряду с этим развитием, совершенствуются методы защиты от исследования и детектирования вирусной активности. Чаще всего виру-сописатели для реализации защиты от исследования своих разработок применяют технологии полиморфизма, «обфускации» (запутывающие преобразования) и шифрования бинарного кода [1].

Цель данной работы состоит в повышении эффективности анализа запутывающих преобразований в бинарном коде вредоносных объектов.

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

Актуальные проблемы авиации и космонавтики. Информационные технологии

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

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

(1) mov eax, offset dword_40FCC2

(2) mov edx, offset dword_40FCC2+4

(3) mov ebx,eax

(4) mul ebx

(5) sub eax,1

(6) cmp eax,edx

(7) je condition_1

(8) jmp condition 2_

(1) mov eax,offset dword_40FCC2

(2) mov edx,offset dword_40FCC2+4

(3) mov ecx,0

(4) sub ecx,72h

(5) shl edx,eax

(6) cmp edx,ecx

(7) sub eax,1

(8) add ebx,1

(9) mul ebx

(10) cmp eax,edx

(11) je condition_1

(12) jmp condition_2

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

Итерация 3: Анализ.

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

Листинг 1. Тривиальный пример хеширования ключа.

Программный код в листинге 1 выполняет хеширование ключа на основе алгоритма, который можно представить в виде функции у = х2 - 1. Далее происходит его сравнение с ключом, содержащимся по адресу 0040БСС6, после чего операции 7 и 8 выполняют переход в тот или иной блок программы в зависимости от значения ключа. Теперь применим к программному коду в листинге 1, простейший полиморфный генератор.

Листинг 2. Тривиальный пример хеширования ключа с использованием полиморфного генератора.

Таким образом, алгоритм программного кода не изменился, поменялось лишь его представление в машинном коде (у = (х - 1)(х + 1)).

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

Итерация 1: Дизассемблирование.

На данном этапе происходит дизассемблирование полученного бинарного кода.

Итерация 2: Интерпретация инструкций.

На данном этапе происходит процесс преобразования одной процессорной инструкции в промежу-

Алгоритм работы декомпилятора

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

Таким образом, результаты данной работы позволяют:

а) оптимизировать детектирование и анализ вредоносных объектов;

б) разработанная методика позволяет не только анализировать программный код вируса, но и предоставляет возможность выделения кода вируса, не несущего определённый функционал.

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

1. URL: http://www.tadviser.ru. Статья о полиморфизме компьютерных вирусов.

2. Собейкс В. Л. Компьютерная вирусология. М. : Майор, 2006.

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