Институт системного программирования им. В.П. Иванникова РАН


О применении методов деобфускации программ для обнаружения сложных компьютерных вирусов.

Авторы

Варновский Н.П., Захаров В.А., Кузюрин Н.Н., Подловченко Р.И., Шокуров А.В., Щербина В.Л.

Аннотация

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

При разработке перспективных методов обнаружения полиморфных и метаморфных вирусов целесообразно воспользоваться следующим фактом: как бы ни изменялась структура программы-вируса в результате обфускации, ее функциональность остается неизменной. Именно функциональные характеристики вируса являются его подлинной «подписью», неизменно сохраняющейся при репликации. Таким образом, задача обнаружения вируса может быть представлена как задача поиска фрагмента кода $P'$, функционально эквивалентного заданному (эталонному) фрагменту $P$. В настоящей заметке описаны основные принципы устройства алгебраических моделей программ, выделены те классы моделей, которые могут быть связаны с простейшими обфускирующими преобразованиями, применяемыми при репликации полиморфных и метаморфных вирусов, и представлены оценки сложности распознавания эквивалентности программ в таких моделях.

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

Издание

Известия Южного федерального университета. Технические науки, том 2, № 7, с. 18-27.

Научная группа

Теоретическая информатика

Все публикации за 2007 год Все публикации