Вирусы, заражающие библиотеки компиляторов, объектные модули и исходные тексты программ. Вирусы, заражающие OBJ - и LIB - файлы, записывают в них свой код в формате объектного модуля или библиотеки. Зараженный файл не является выполняемым и не способен на дальнейшее распространение вируса в текущем состоянии. Носителем же «живого» вируса становится COM - или EXE - файл, получаемый в процессе линковки зараженного OBJ / LIB - файла с другими объектными модулями и библиотеками. Таким образом, вирус распространяется в два этапа: на первом заражаются OBJ /LIB - файлы, на втором этапе (линковка) получается работоспособный вирус.
Загрузочные вирусы
Макровирусы являются программами на макроязыках, встроенных в некоторые системы обработки данных ( текстовые редакторы, электронные таблицы и т. д.). Они заражают документы и электронные таблицы ряда офисных редакторов.
Для размножения они используют возможности макроязыков и при их помощи переносят себя из одного зараженного файла в другие. Наибольшее распространение получили макровирусы для Microsoft Word, Excel и Office 97. Вирусы этого типа получают управление при открытии зараженного файла и инфицируют файлы, к которым в последствии идет обращение из соответствующего офисного приложения – Word, Excel и пр.
Скрипт – вирусы
Visual Basic Script, java Script и др .Они в свою очередь ,делятся на вирусы для DOS, для Windows, для других систем . Помимо описанных классов существует большое количество сочетаний: например файлово – загрузачный вирус, заражающий файлы, так и загрузочные сектора дисков, или сетевой макровирус, который заражает редактируемые документы, но и рассылает свои электронные копии по электронной почте.
Разнообразие вирусов классифицировать их также по особенностям работы их алгоритмов. Об этом стоит поговорить отдельно.
Резидентные вирусы
Вирус находится в оперативной памяти и перехватывает сообщения ОС. Если нерезидентные вирусы активны только в момент запуска зараженной программы, то резидентные вирусы находятся в памяти и остаются активными вплоть до выключения компъютера или перезагрузки операционной системы. Резидентные вирусы находятся в оперативной памяти , перехватывают обращения операционной системы к тем или иным объектам и внедряются в них. Такие вирусы активны не только в момент работы зараженной программы, но и после завершения ее работы.
Стелс – вирусы
Стелс-вирусы (невидимки) скрывают факт своего присутствия в системе. Ониизменяют информацию таким образом , что файл появляется перед ползователем в незараженном виде , например временно лечат зараженные файлы.
Полиморфик – вирусы
Полиморфик – вирусы используют шифрование для усложнения процедуры определения вируса. Данные вирусы не содержат постоянных участков кода ,что достигается шифрованием основного тела вируса и модификациями программы-расшифровщика. В большинстве случаев два образца одного итого же полиморфик-вируса не будут иметь ни одного совпадения. Именно поэтому полиморфик-вирус невозможно обнаружить при помощи выявления участков постоянного кода ,специфичных для конкретного вируса. Полиморфизм встречается в вирусах всех типов – от загрузочных и
файловых DOS - вирусов до Windows – вирусов и даже макровирусов.
Классификация антивирусных программ
Все антивирусы можно разделить на два больших класса: чистые антивирусы и антивирусы двойного назначения.
Чистые антивирусы
Чистый вирус-отличается наличием антивирусного ядра , которое выполняет функцию сканирования по образцам. Принципиальная особенность в этом случае заключается в возможности лечения. Если вирус известен , значит возможно лечение. Далее чистые антивирусы подразделяются по типу доступа к файлам на две категории – on access и on demand, которые соответственно осуществляет контроль по доступу или проверку по требованию. Например, в терминологоии продуктов « Лаборатории Касперского» on access - продукт – это «Монитор », а on demand - продукт – это «Сканер». On demand –продукт работает по следующей схеме: пользователь хочет что- либо проверить и выдает запрос ( demand ), после чего осуществляется проверка. On access –продукт – это резидентная программа, которая отслеживает доступ и в момент доступа осуществляет проверку. Кроме того, антивирусные программы, также как и вирусы, можно разделить по платформе. Понятие «Платформа» в антивирусной терминологии немного отличается от общепринятого в компьютерной индустрии. В антивирусной индустрии SW – платформа – это тот продукт, внутри которого работает антивирус. То есть на ряду с Windows или Linux к платформам могут быть отнесены Microsoft Exchange Server, Microsoft Office, Lotus Notes.
Программы двойного назначения - это программы, используемы и в антивирусах, и в ПО, которое не является антивирусом. Например, - ревизор изменений на основе контрольных сумм, может использоваться не только для ловли вирусов. В «Лаборатории Касперского» ревизор реализован под коммерческим названием «Инспектор»
( «Сканер», «Монитор», «Инспектор» - это коммерческие названия соответствующих модулей «Лаборатории Касперского» )
Разновидностью программ двойного назначения являются поведенческие блокираторы, которые анализируют поведение других программ и при обнаружении подозрительных действий блокируют их.
От классического антивируса с антивирусным ядром, «узнающим» и лечащим от вирусов, которые анализировались в лаборатории и к которым был прописан алгоритм лечения, поведенческие блокираторы отличаются тем, что лечить от вирусов не умеют, поскольку ничего о них не знают. Это свойство блокираторов полезно тем, что они могут работать с любыми вирусами, в том числе и с неизвестными. Это сегодня особенно актуально, поскольку распространители вирусов и антивирусов используют одни и те же каналы передачи данных, то есть Интернет. При этом вирус всегда имеет некоторую форму (время задержки), поскольку антивирусной компании всегда нужно время на то, чтобы получить сам вирус, проанализировать его и написать соответствующие лечебные модули. Программы из группы двойного назначения как раз и позволяют блокировать распространение вируса до того момента, пока компания не напишет лечебный модуль.
Основные методы определения вирусов
Алгоритм «сравнение с эталоном»
Самый старый алгоритм – это алгоритм, в котором вирус определяется классическим ядром по некоторой маске. Смысл данного алгоритма заключается в использовании статистических методов. Маска должна быть, с одной стороны, маленькой, чтобы объем файла был приемлемых размеров, с другой стороны – настолько большой, чтобы избежать ложных срабатываний (когда «свой» воспринимается как «чужой», и наоборот) .
Рис. 1. Схемы работы программы, инфицированной незашифрованным
вирусом, и программы, инфицированной зашифрованным вирусом
Рис. 2. Схема работы эмулятора процессораАлгоритм контрольной суммы предполагает, что действия вируса изменяют контрольную сумму. Однако синхронные изменения в двух разных сегментах могут привести к тому, что контрольная сумма останется неизменной при изменении файла. Основная задача построения алгоритма состоит в том, чтобы изменения в файле гарантированно приводили к изменению контрольной суммы.
На рис. 1 показана работа программы, информированной вирусом (а), и программы, информированной зашифрованным вирусом (б). В первом случае схема работы вируса выглядит следующим образом: идет выполнение программы, в какой –то момент начинает выполнятся код вируса и затем опять идет выполнение программы. В случае с зашифрованной программой все сложнее.
Идет выполнение программы, потом включается дешифратор, который расшифровывает вирус, затем отбрасывает вирус и опять идет исполнение кода основной программы. Код вируса в каждом случае зашифрован по разному. Если в случае нешифрованного вируса эталонное сравнение позволяет «узнать» вирус по некоторой постоянной сигнатуре, то в зашифрованном виде сигнатура не видна. При этом искать дешифратор практически невозможно, поскольку он очень маленький и детектировать такой компактный элемент бесполезно, потому что резко увеличивается количество ложных срабатываний.
В подобном случае прибегают к технологии эмуляции процессора (антивирусная программа эмулирует работу процессора для того, чтобы проанализировать исполняемый код вируса). Если обычно условная цепочка состоит из трех основных элементов: ЦПУ ОС . Программа (рис.2), - то при эмуляции процессора в такую цепочку добавляется эмулятор, о котором программа ничего не знает и, условно говоря, «считает», что она работает с центральной оперативной системой. Таким образом, эмулятор как бы воспроизводит работу программы в некотором виртуальном пространстве или реконструирует ее оригинальное содержимое. Эмулятор всегда способен прервать выполнение программы, контролирует ее действия, не давая ничего испортить, и вызывает антивирусное сканирующее ядро.