Научная статья на тему 'Поиск зависимости прогнозируемого качества деобфускации от метрик обфусцированного кода*[2]'

Поиск зависимости прогнозируемого качества деобфускации от метрик обфусцированного кода*[2] Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
217
30
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АНАЛИЗ УЯЗВИМОСТЕЙ / АНАЛИЗ КОДА / ОБФУСКАЦИЯ / МЕТРИКИ / ЗАЩИТА ИНФОРМАЦИИ / ANALYSIS OF VULNERABILITIES / ANALYSIS OF A CODE / OBFUSCATION / METRICS / DATA PROTECTION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Сурков В. О., Кузнецов М. А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

RESEARCH OF DEPENDENCE OF THE PREDICTED DEOBFUSCATION QUALITY ON METRICS OF THE OBFUSCATED CODE

The software may contain vulnerabilities. The part of files is exposed to obfuscation, including files of aircraft software. Therefore it is very important to be able to analyze obfuscated files.

Текст научной работы на тему «Поиск зависимости прогнозируемого качества деобфускации от метрик обфусцированного кода*[2]»

УДК 004.056

ПОИСК ЗАВИСИМОСТИ ПРОГНОЗИРУЕМОГО КАЧЕСТВА ДЕОБФУСКАЦИИ ОТ МЕТРИК ОБФУСЦИРОВАННОГО КОДА*

В. О. Сурков1, М. А. Кузнецов

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

Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

1E-mail: [email protected]

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

Ключевые слова: анализ уязвимостей, анализ кода, обфускация, метрики, защита информации.

RESEARCH OF DEPENDENCE OF THE PREDICTED DEOBFUSCATION QUALITY ON METRICS OF THE OBFUSCATED CODE

V. O. Surkov1, M. A. Kuznetsov

Reshetnev Siberian State Aerospace University 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation 1E-mail: [email protected]

The software may contain vulnerabilities. The part offiles is exposed to obfuscation, including files of aircraft software. Therefore it is very important to be able to analyze obfuscated files.

Keywords: analysis of vulnerabilities, analysis of a code, obfuscation, metrics, data protection.

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

Обфускация - это приведение исполняемого кода программы к виду, затрудняющему понимание алгоритмов работы, модификацию при декомпиляции и анализ, но сохраняющему её функциональность.

Существуют автоматизированные анализаторы кода, которые работают с кодом программы и могут найти ошибки, дефекты и уязвимости в нём. Но, вероятнее всего, встретившись с кодом, имеющим запутывающие преобразования [1], анализатор поведёт себя некорректно, и пропустит уязвимые участки кода.

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

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

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

Для эксперимента были взяты 75 исполняемых файлов. С них были сняты различные метрики сложности с помощью плагина idametrics для дизассемблера IDA Pro [4]. Затем, после преобразования обфускаторами The Enigma Protector и VMProtect Demo, с исполняемых файлов были повторно сняты метрики.

2 Работа выполнена в рамках гранта Президента молодым российским ученым - кандидатам наук, договор № 14.Z56.15.6012 от 16.02.2015 г.

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

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

Диаграммы с результатами снятия метрик «Average lines of code in a function» и «Total Halstead» изображены на рис. 1 и 2 соответственно:

Рис. 1. Значение метрики «Average lines of code in a function»

2S00

1 1 1 1 1 1 . . _ . . .

accesschk.exe _i ADExplorer.exe го Bginfo.exe гп 3, disk2vhd.exe UQ 3 DiskView.exe QJ и LoadOrd.exe S- portmon.exe й- procexp.exe PsExec.exe ShellRunas.exe accesschk.exe ADExplorer.exe Bginfo.exe 0 disk2vhd.exe = DiskView.exe 1 LoadOrd.exe Си ь portmon.exe procexp.exe PsExec.exe ShellRunas.exe aeeessehk.exe ADExplorer.exe < Bginfo.exe -o disk2vhd.exe 2- DiskView.exe ro LoadOrd.exe о ro portmon.exe о procexp.exe PsExec.exe ShellRunas.exe

Рис. 2. Значение метрики « Total Halstead»

Было отслежено, что большинство метрик сложности на порядок уменьшились, например, как метрика Холстеда [5]. Однако хаотично изменились метрики «размер файла» и «среднее количество строк в функции».

Полученные метрики Холстеда, снятые с файлов, были структурированы и записаны в таблицу для обнаружения возможных зависимостей (см. таблицу).

Отношение метрик

exe Оригинал (a) The Enigma Protector (b) VMProtect Demo (c) a/b (d) a/c (f) d/f

accesschk.exe 498,89029 0,071915 31,09078 6937,19269 16,04625 432,32493

ADExplorer.exe 931,21173 0,223606 33,23503 4164,51567 28,01899 148,63192

Bginfo.exe 2080,6739 0,491376 0,43245 4234,37869 4811,3543 0,88008

disk2vhd.exe 225,28352 0,307541 78,88393 732,53156 2,85589 256,49886

DiskView.exe 522,45701 0,304017 8,13748 1718,51247 64,20375 26,76654

Окончание таблицы

exe Оригинал (a) The Enigma Protector (b) VMProtect Demo (c) a/b (d) a/c (f) d/f

LoadOrd.exe 10,23059 0,296816 2,99393 34,46783 3,41711 10,08682

portmon.exe 532,83957 0,049871 60,86790 10684,33501 8,75403 1220,50436

procexp.exe 235,86695 0,782298 4,17997 301,50524 56,42796 5,34319

PsExec.exe 274,60963 0,093745 77,02879 2929,31409 3,56503 821,68100

ShellRunas.exe 73,00961 0,097949 86,56457 745,38410 0,84341 883,77207

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

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

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

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

1. Защита программ от исследования [Электронный ресурс]. URL: http://www.itsec.ru/articles2/ Oborandteh/zaschita_progr_ot_issledovaniya (дата обращения: 11.03.2016).

2. Значение метрик кода. [Электронный ресурс]. URL: https://msdn.microsoft.com/ru-ru/library/bb385914%28v=vs.100%29.aspx (дата обращения: 12.03.2016).

3. Аветисян А. И., Белеванцев А. А., Чукляев И. И. Технологии статического и динамического анализа уязвимостей программного обеспечения // Вопросы кибербезопасности. 2014. № 3(4).

4. Шудрак М. О., Золотарев В. В. Модель, алгоритмы и программный комплекс автоматизированного поиска уязвимостей в исполняемом коде // Труды СПИИРАН. 2015. № 42. С. 212-231.

5. Метрики кода и их практическая реализация в Subversion и ClearCase [Электронный ресурс]. URL: http://cmcons.com/articles/CC_CQ/dev_metrics/mertics_part_1/ (дата обращения: 15.03.2016).

6. Шудрак М. О., Золотарев В. В., Лубкин И. А. Методика динамического анализа уязвимостей в бинарном коде / Вестник СибГАУ. 2013. № 4(50). С. 84-87.

© Сурков В. О., Кузнецов М. А., 2016

i Надоели баннеры? Вы всегда можете отключить рекламу.