┌──┌─┐┌──
──┘├─┘──┘ Presents
┐ ┌┐┐┌─┤ VMag, Issue 3, 1 January 1999
└─┘┘ ┘└─┘ ─────────────────────────────
Классификация полиморфных вирусов.
(c) И.Данилов
Полиморфными вирусами называются вирусы, шифрующие свой код
различными способами (обычно, использующие различные ключи шифрования)
во время заражения файлов или программ. Обычно, такие вирусы содержат
код генерации шифровщика и расшифровщика. Как правило, создаваемые
данным генератором шифровщики и соответствующие им расшифровщики,
отличаются друг от друга в различные моменты времени. Для зашифрованной
части вирусного кода обязательно должна существовать подпрограмма
правильного расшифрования - расшифровщик или декриптор (decryptor).
В полиморфных вирусах расшифровщик не является постоянным - он
изменяется для каждого инфицированного файла. Данная особенность не
позволяет детектировать инфицированный файл по характерной для данного
вируса строке (маске или сигнатуре).
Существуют определенные уровни вирусного полиморфизма. Они были
определены Alan Solomon, Mechanism of Stealth, Proceedings Fifth
International Computer Virus and Security Conference, New York, March
1992, pp. 232-238.
Коротко об уровнях.
Уровень 1. Вирусы используют постоянные значения для разных своих
расшифровщиков. Такие вирусы можно определить по некоторым постоянным
участкам кода в расшифровщике. Такие вирусы, иногда, называют не очень
полиморфными или олигоморфными (oligomorphic).
Вирусы: Cheeba.A (2 decryptors), Cheeba.B (2), December_3rd (2),
Slovakia.2_00 (8), Slovakia.2_02 (8), Slovakia.3_0 (8), V-Sign (6),
Whale (34).
Уровень 2. Расшифровщик имеет постоянной одну или несколько
инструкций. Hапример, использует различные регистры, некоторые
альтернативные инструкции в расшифровщике. Такие вирусы также можно
определить по маске - сочетаниям определенных байт в декрипторе.
Вирусы: ABC, DM.330, Flip, Jerusalem.Moctezuma, Ontario.1024, PC-Flu,
Phoenix.1226, Phoenix.2000, Phoenix.Evil, Phoenix.Phoenix,
Phoenix.Proud, Seat, Stasi, Suomi, Virus-101, VS.3900, VS.4000, ...
Уровень 3. Вирусы, использующие в расшифровщике команды, не
участвующие в расшифровании вирусного кода, или команды-мусор. Это такие
команды, как NOP, MOV AX,AX, STI, CLD, CLI, ... Данные вирусы также
можно детектировать с помощью маски, если произвести отсеивание всех
мусорных команд.
Вирусы: Tequila, StarShip, V2Px.V2P1, V2Px.V2P1.Casper, V2Px.V2P2,
V2Px.V2P6, DrWhite, ...
Уровень 4. Использование в расшифровщике взамозаменяемых инструкций и
перемешивание инструкций между собой без изменения алгоритма
расшифрования. Hапример, команда MOV AX,BX имеет взаимозаменяемые
инструкции: PUSH BX - POP AX; XCHG AX,BX; MOV CX,BX - MOV AX,CX; .... В
принципе, возможно детектирование данных вирусов с помощью некоторой
перебираемой маски.
Уровень 5. Включает в себя использование всех перечисленных выше
уровней, а также расшифровщик может использовать различные алгоритмы
расшифрования вирусного кода. Также возможно использование, для
расшифрования основного вирусного кода, расшифровки части самого же
декриптора или нескольких расшифровщиков, поочередно расшифровывающих
друг друга, либо, непосредственно, вирусный код. Как правило,
детектирование вирусов данного уровня полиморфизма с помощью сигнатуры
невозможно. Процесс детектирования и, особенно, лечения такого вируса -
очень сложная задача и, может быть, довольно продолжительна по времени
(difficult and time-consuming task). Если для детектирования такого
вируса возможен серьезный анализ кода только самого расшифровщика, то
для лечения необходимо произвести частичную или полную расшифровку тела
вируса, для извлечения оригинальной информации о зараженном файле. Из
известных мне антивирусов лечение вирусов последнего уровня полиморфизма
производят -V и Dr. Web. SMEG-вирусы, по крайней мере, больше лечить
никто не берется.
Вирусы 4 и 5 уровней: MtE, TPE, APE, DAME, DSME, DSCE, NED, MGEN,
CLME, SMEG-based, Uruguay, ...
И в заключение, существует еще 6 группа полиморфных вирусов. Это
нешифрованные вирусы, - это вирусы, состоящие из программных
единиц-частей, которые перемешиваются внутри тела вируса. Данные вирусы,
как кубики тасуют свои подпрограммы (инсталляции, заражения, обработчика
прерывания, анализа файла и т.д.). Такие вирусы называются
пермутирующими (permutating).
К данным вирусам относятся: BadBoy, BadBoy.Worthless,
CommanderBomber, Leech, SN.1444, ...
При подготовке данного сообщения была использована статья Vesselin
Bontchev 'Known Polymorphic Viruses', Secure Computing January 1994 pp.
60-63.