СПОСОБ КОЛИЧЕСТВЕННОГО СРАВНЕНИЯ ОБФУСЦИРУЮЩИХ ПРЕОБРАЗОВАНИЙ (2024)

В работе рассматривается задача количественного сравнения эффективности и стойкости практически применяемых обфусцирующих преобразований программного кода. Предлагается способ нахождения эффективности и стойкости преобразований путем вычисления «понятности» соответственно обфусцированной и деобфусцированной версий программы. В качестве меры понятности программы предлагается использовать похожесть этой программы на аппроксимацию ее «самой понятной» версии. На основе предложенного способа построена модель оценки эффективности и стойкости, основными элементами которой являются: набор исследуемых обфусцирующих преобразований, функция похожести, способ аппроксимации самой понятной версии программы и деобфускатор. Для реализации этой модели 1) выбраны обфусцирующие преобразования, предоставляемые обфускатором Hikari; 2) методами машинного обучения по статическим характеристикам программ из наборов CoreUtils, PolyBench и HashCat построено 8 функций похожести; 3) в качестве аппроксимации самой понятной версии программы выбрана наименьшая по размеру версия программы, найденная среди версий, полученных с помощью опций оптимизации компиляторов GCC, Clang и AOCC; 4) построена и реализована схема деобфускации программ на основе оптимизирующего компилятора из состава LLVM. В работе экспериментально получены результаты оценки эффективности и стойкости для последовательностей преобразований длины один, два и три. Эти результаты показали согласованность с результатами независимых оценок эффективности и стойкости, полученных другими способами. В частности, получено, что наибольшую эффективность и стойкость демонстрируют последовательности преобразований, начинающиеся с преобразований графа потока управления, а наименьшей стойкостью и эффективностью - как правило, последовательности, не содержащие таких преобразований.

Тип: Статья
Автор (ы): Косолапов Юрий Владимирович, Борисов Петр Дмитриевич
Ключевые фразы: ОБФУСКАЦИЯ, ИСПОЛНЯЕМЫЙ КОД, эффективность, СТОЙКОСТЬ, ПОХОЖЕСТЬ

Идентификаторы и классификаторы

УДК
004.056. Безопасность, защищённость данных
eLIBRARY ID
67916609
Текстовый фрагмент статьи