Уровни полиморфизма

Существует деление полиморфик-вирусов на уровни в зависимости от сложности кода, который встречается в расшифровщиках этих вирусов. Такое деление впервые предложил д-р. Алан Соломон, через некоторое время Вессе-лин Бончев расширил его.

Уровень 1. Вирусы, которые имеют некоторый набор расшифровщиков с постоянным кодом и при заражении выбирают один из них. Такие вирусы являются полуполиморфиками и носят также название олигоморфик (oligomorphic).

Примеры: Cheeba, Slovakia, Whale.

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

Уровень 3. Расшифровщик содержит неиспользуемые инструкции — мусор типа NOP, CLI, STI и т. д.

Уровень 4. В расшифровщике используются взаимозаменяемые инструкции и изменение порядка следования (перемешивание) инструкций. Алгоритм расшифровки при этом не изменяется.

Уровень 5. Используются все перечисленные выше приемы, алгоритм расшифровки непостоянен, возможно повторное шифрование кода вируса и даже частичное шифрование самого кода расшифровщика.

Уровень 6. Permutating-вирусы. Изменению подлежит основной код вируса — делится на блоки, которые при заражении переставляются в произвольном порядке. Вирус при этом остается работоспособным. Подобные вирусы могут быть не зашифрованы.

Приведенное выше деление не свободно от недостатков, поскольку производится по единственному критерию — возможности обнаруживать вирус по коду расшифровщика при помощи стандартного приема вирусных масок:

Уровень 1. Для обнаружения вируса достаточно иметь несколько масок.

Уровень 2. Обнаружение по маске с использованием wildcards.

Уровень 3. Обнаружение по маске после удаления инструкций-"мусора".

Уровень 4. Маска содержит несколько вариантов возможного кода, т. е. становится алгоритмической.

Уровень 5. Невозможность детектирования вируса по маске.

Недостаточность такого деления продемонстрирована в вирусе 3-го уровня полиморфичности, который так и называется — Level3. Этот вирус, являясь одним из наиболее сложных полиморфик-вирусов, по приведенному выше делению попадает в уровень 3, поскольку имеет постоянный алгоритм расшифровки, перед которым стоит большое количество команд-"мусора". Однако в этом вирусе алгоритм генерирования "мусора" доведен до совершенства: в коде расшифровщика могут встретиться практически все инструкции процессора i8086.

Если произвести деление на уровни с точки зрения антивирусов, использующих системы автоматического расшифрования кода вируса (эмуляторы), то деление на уровни будет зависеть от сложности эмуляции кода вируса. Возможно определение вируса и другими приемами, например расшифрова-ние при помощи элементарных математических законов и т. д. Поэтому мне кажется более объективным деление, в котором помимо критерия вирусных масок участвуют и другие параметры:

1. Степень сложности полиморфик-кода (процент от всех инструкций процессора, которые могут встретиться в коде расшифровщика).

2. Использование антиэмуляторных приемов.

3. Постоянство алгоритма расшифровщика.

4. Постоянство длины расшифровщика.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: