Доклады о будущих и современных технологиях
ПОЛИМОРФИЗМ КОМПЬЮТЕРНЫХ ВИРУСОВ
А. А. Шавитов
Научный руководитель - Д. В. Наумов, канд. техн. наук, доцент Ярославский государственный технический университет
Полиморфизм — специальная техника, используемая авторами вредоносного программного обеспечения для снижения уровня детектирования вредоносной программы классическими антивирусными продуктами. Заключается в формировании кода исполняемой программы на лету, а так же в изменении самого тела программы от одной стадии репликации к другой.
В классификации СЛЯОполиморфные вирусы делятся на шесть категорий. И если вирусы первой категории даже не считаются полиморфными (их называют олигоморфными и они просто шифруют часть вируса специальным ключом), то вирусы самых высоких уровней (5 и 6) используют так же сложные алгоритмы шифрования основного тела программы, добавление «мусорных» команд в код, замену некоторых команд на команды-аналоги, а так же механизмы пермутации. Для детектирования таких вирусов очень сложно использовать сигнатурный метод, так как размер, структура и содержимое одной копии вируса может заметно отличаться от другой.
«Мусорные» команды добавляются в код, чтобы запутать эксперта или сделать невозможным или затруднительным сигнатурный анализ для антивирусного программного обеспечения и таким образом отдалить момент детектирования вируса. Они могут быть самыми различными: от простых арифметических операций и ложных переходов до вызовов процедур, обращениям к жесткому диску, или это могут быть даже куски алгоритмов, не относящиеся к работе самого вируса. Важно понимать, что «мусорные» командные должны каким-либо образом влиять на работу самого вируса и уж тем более приводить к ошибкам. Этот метод часто используется в части вируса, отвечающей за раскодирование основного тела вируса. Команды - аналоги представляют собой взаимозаменяемые инструкции, например: «MOV AX, BX» можно заменить на«Ри8Н BX POP AX». Таким образом, функциональность программы не меняется, а сигнатура, разработанная для версии вируса с командой MOV, уже будет недействительной.
Механизм пермутации заключается в том, что тело вируса, состоящее из модулей-подпрограмм, как бы перемешивается при перезаписи - меняются адреса функций, переменных и так далее. Таким образом, программа не меняется функционально, но ее функционал «перемещается» по телу программы от копии к копии.