logo search
Лекции_Информационная безопасность

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

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

1: вирусы, которые имеют некоторый набор расшифровщиков с постоянным кодом и при заражении выбирают один из них. Такие вирусы являются "полу-полиморфиками" и носят также название "олигоморфик". Примеры: "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.Постоянство длины расшифровщика