- •Классификация именований вирусов по «Доктор Веб»
- •2.1. Файловые вирусы
- •2.1.1. Overwriting-вирусы
- •2.1.2. Parasitic-вирусы
- •2.1.3. Companion-вирусы
- •2.1.4. Link-вирусы
- •2.1.5. Файловые черви
- •2.1.7. Алгоритм работы файлового вируса
- •2.1.8. Особые случаи
- •2. 2. Загрузочные вирусы
- •2.3 Макровирусы
- •2.3.1. Word-, Excel-, Office 97-вирусы
- •2.3.2. Алгоритм работы Word-макровирусов
- •2.3.3. Алгоритм работы Excel-макровирусов
- •2.3.4. AmiPro-вирусы
- •2.4. Сетевые вирусы
- •2.5. Прочие вредные программы
- •2.5.1. "Троянские кони" (логические бомбы)
- •2.5.2. Intended-вирусы
- •2.5.3. Конструкторы вирусов
- •2.5.4. Полиморфные генераторы
- •2.6. Резидентные вирусы
- •2.6.2. Загрузочные вирусы
- •2.6.3. Windows-вирусы
- •2.6.4. Макровирусы
- •2.7. "Стелс"-вирусы
- •2.7.1. Загрузочные вирусы
- •2.7.2. Файловые вирусы
- •2.7.3. Макровирусы
- •2.8. Полиморфик-вирусы
- •2.8.1. Полиморфные расшифровщики
- •2.8.2. Уровни полиморфизма
- •2.8.3. Изменение выполняемого кода
- •Глава 3 Методы обнаружения и удаления компьютерных вирусов
- •3.1 Профилактика заражения компьютера
- •3.2. Откуда берутся вирусы
- •3.2.1. Глобальные сети — электронная почта
- •3.2.2. Электронные конференции, файл-серверы ftp и bbs
- •3.2.3. Локальные сети
- •3.2.4. Пиратское программное обеспечение
- •3.2.5. Персональные компьютеры общего пользования
- •3.2.6. Ремонтные службы
- •3.3. Основные правила защиты
- •3.4.2. Типы антивирусов
- •3.4.3. Антивирусные программы, наиболее известные в России
- •3.4.4. Методика использования антивирусных программ
- •3.5. Обнаружение неизвестного вируса
- •3.6. Обнаружение загрузочного вируса
- •3.7. Обнаружение файлового вируса
- •3.8. Обнаружение макровируса
- •3.9. Обнаружение резидентного вируса
- •3.9.2. Windows-вирусы
- •3.10. Анализ алгоритма вируса
- •3.11. Восстановление пораженных объектов
- •3.11.1. Восстановление файлов-документов и таблиц
- •3.11.2. Восстановление загрузочных секторов
- •3.11.3. Восстановление файлов
- •3.11.4. Дезактивация оперативной памяти
2.8.2. Уровни полиморфизма
Существует деление полиморфик-вирусов на уровни в зависимости от сложности кода, который встречается в расшифровщиках этих вирусов. Такое деление впервые предложил д-р. Алан Соломон, через некоторое время Вессе-лин Бончев расширил его.
Уровень 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. Постоянство длины расшифровщика.
Мне не хотелось бы излагать эти пункты подробнее, поскольку это может подтолкнуть вирусописателей к созданию подобных монстров.