Энциклопедия компьютерных вирусов

         

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


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

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

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

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

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

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

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

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

Уровень 1: для детектирования вируса достаточно иметь несколько масок Уровень 2: детектирование по маске с использованием "wildcards" Уровень 3: детектирование по маске после удаления инструкций-"мусора" Уровень 4: маска содержит несколько вариантов возможного кода, т.е. становится алгоритмической Уровень 5: невозможность детектирования вируса по маске

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

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

Поэтому мне кажется более объективным деление, в котором помимо критерия вирусных масок участвуют и другие параметры.

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


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


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


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


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


    Содержание раздела