
- •I Среда обитания
- •II Способы заражения
- •III Деструктивные возможности
- •IV Особенности алгоритма
- •Обилие вирусов позволяет говорить о более подробной их классификации:
- •Особенности алгоритмов работы вирусов
- •Классификация антивирусных программ
- •Алгоритм «сравнение с эталоном»
- •Алгоритм «контрольной суммы»
- •Методы определения полиморфик-вирусов
- •Эвристический анализ
- •Тестирование Doctor Web для ms-dos
- •Для малого и среднего бизнеса
Алгоритм «сравнение с эталоном»
Самый старый алгоритм — это алгоритм, в котором вирус определяется классическим ядром по некоторой маске. Смысл данного алгоритма заключается в использовании статистических методов. Маска должна быть, с одной стороны, маленькой, чтобы объем файла был приемлемых размеров, с другой стороны — настолько большой, чтобы избежать ложных срабатываний (когда «свой» воспринимается как «чужой», и наоборот).
Алгоритм «контрольной суммы»
Алгоритм контрольной суммы предполагает, что действия вируса изменяют контрольную сумму. Однако синхронные изменения в двух разных сегментах могут привести к тому, что контрольная сумма останется неизменной при изменении файла. Основная задача построения алгоритма состоит в том, чтобы изменения в файле гарантированно приводили к изменению контрольной суммы.
Рис. 6 Схемы работы программы, инфицированной незашифрованным вирусом, и программы,
инфицированной зашифрованным вирусом
Методы определения полиморфик-вирусов
На рис. 6 показана работа программы, инфицированной вирусом (а), и программы, инфицированной зашифрованным вирусом (б). В первом случае схема работы вируса выглядит следующим образом, идет выполнение программы, в какой-то момент начинает выполняться код вируса и затем опять идет выполнение программы. В случае с зашифрованной программой все сложнее.
Идет выполнение программы, потом включается дешифратор, который расшифровывает вирус, затем отрабатывает вирус и опять идет исполнение кода основной программы. Код вируса в каждом случае зашифрован по-разному. Если в случае нешифрованного вируса эталонное сравнение позволяет «узнать» вирус по некоторой постоянной сигнатуре, то в зашифрованном виде сигнатура не видна. При этом искать дешифратор практически невозможно, поскольку он очень маленький и детектировать такой компактный элемент бесполезно, потому что резко увеличивается количество ложных срабатываний.
В подобном случае прибегают к технологии эмуляции процессора (антивирусная программа эмулирует работу процессора для того, чтобы проанализировать исполняемый код вируса). Если обычно условная цепочка состоит из трех основных элементов: ЦПУ ОС Программа (рис. 7),— то при эмуляции процессора в такую цепочку добавляется эмулятор, о котором программа ничего не знает и, условно говоря, «считает», что она работает с центральной операционной системой. Таким образом, эмулятор как бы воспроизводит работу программы в некотором виртуальном пространстве или реконструирует ее оригинальное содержимое. Эмулятор всегда способен прервать выполнение программы, контролирует ее действия, не давая ничего испортить, и вызывает антивирусное сканирующее ядро.
Рис. 7 Схема работы эмулятора процессора
Эвристический анализ
Для того чтобы размножаться, вирус должен совершать какие-то конкретные действия, копирование в память, запись в сектора и т. д. Эвристический анализатор (который является частью антивирусного ядра) содержит список таких действий, просматривая выполняемый код программы, определяет, что она делает, исходя из этого приходит к выводу, является ли данная программа вирусом или нет. Принципиальное отличие эвристического анализатора от поведенческого блокиратора состоит в том, что последний не рассматривает программу как набор команд. Блокиратор отслеживает действия программы в процессе ее работы, а эвристический анализатор начинает работу до выполнения программы. Первый эвристический анализатор появился в начале 90-х годов.