Вирусы модифицирующие свой код

Введение в полиморфизм

Как известно, первые вирусы появились давно. Они заражали древние компьютеры, и ничто не могло их остановить, кроме бдительного пользователя машины. Затем были придуманы антивирусы, определяющие их по характерным симптомам. Но через какое-то время вирус перестал быть тупой мишенью для антивируса. Теперь вирус был наделен специальными возможностями, что позволяло ему быть незамеченным в системе. Одним из вариантов защиты от определения является полиморфизм. В далеком 1990 году он чуть было не погубил всю антивирусную индустрию. Только благодаря профессионализму работников лаборатории были внедрены сложные методы, направленные на уничтожение полиморфных вирусов.

Как же они работают? Вообще, полиморфизм - высококлассная техника, позволяющая вирусу быть незамеченным по стандартной сигнатуре (или, попросту, маске). Обычно детекторы определяют вирус по характерным кускам его кода. В случае с полиморфным вирусом такое не пройдет. Два файла, зараженные одним и тем же вирусом, всегда будут иметь разный размер. Засечь такой вирус очень сложно.

Все полиморфные вирусы обязательно снабжаются расшифровщиком кода, который по определенному принципу преобразует переданный ему код, вызывая при этом стандартные функции и процедуры операционной системы. Сами методы шифрования могут быть разными, но, как правило, каждая операция имеет свою зеркальную пару. В ассемблере это реализуется очень просто, и таких пар может быть много - ADD/SUB, XOR/XOR, ROL/ROR и т.п. Подобные операции проводятся для расшифровки ячеек памяти.

Немаловажной особенностью полиморфного вируса является то, что вирус содержит мусор, то есть операнды, функции и процедуры, которые служат лишь для запутывания кода. При этом реализуются две цели:

1. Сложность изучения кода при трассировке файла. Эта цель актуальна лишь для новичка, профессионал, который изучением вирусов занимался многие годы, сразу во всем разберется.

2. Увеличение элемента случайности в расшифровщике. Место их вставки имеет огромное влияние на размер кода. С мусором же появляются новые варианты компоновки кода. Размер при каждом из них будет разным.

Ассемблер дает безграничные возможности по вставке мусора, поэтому вставки могут быть различными. Вот некоторые их виды:

1. Регистровые операции. Как правило, арифметические и логические. Примером могут служить следующие команды: inc ax; mov ax,[si+bx-04]; add ax,1234h и др.

2. Зеркальные команды. Такие, как add/sub, inc/dec и прочие.

3. Ложные переходы, а также вызов подпрограмм, содержащих мусор (jmp $+10h; call XXXXh).

4. Простой мусор из одиночных операндов (daa; nop; cld и т.д.).

Выделяют несколько уровней полиморфизма, используемых в вирусе. Каждый из них по-разному реализует неодинаковый размер файлов, которые были заражены.

Уровень 1. Самые простые олигоморфные вирусы. Они используют постоянные значения для своих расшифровщиков, поэтому легко определяются антивирусами. Из за этого такие вирусы прозвали "не очень полиморфными". Примеры таких вирусов: Cheeba, December_3, Slovakia, V-Sign, Whale.

Уровень 2. Вирусы, имеющие одну или две постоянные инструкции, которые используются в расшифровщике. Также определяются по сигнатуре, но имеют более сложное строение, чем представители первого уровня. Примеры : ABC, DM, Flip, Jerusalem, Ontario, PC-Flu, Phoenix, Seat, Stasi, Suomi.

Уровень 3. Вирусы, использующие в своем коде команды-мусор. Это, в своем роде, ловушка от детектирования, помогает запутать собственный код. Но такой вирус может быть засечен с помощью предварительного отсеивания мусора антивирусом. Вирусы Tequila, StarShip, V2Px, DrWhite принадлежат к третьему уровню полиморфизма.

Уровень 4. Использование взаимозаменяемых инструкций с перемешиванием в коде, без дополнительного изменения алгоритма расшифровки, помогает полностью запутать антивирус. При этом невозможно "поймать" вирус по стандартной маске. Приходится выполнять перебор, после которого нужная сигнатура будет найдена. Так были написаны вирусы Uruguay, CLME, APE.

Уровень 5. Реализация всех вышеизложенных уровней с поддержкой различных алгоритмов в расшифровщике помогает достичь высокого уровня полиморфизма. При этом может существовать несколько параллельных процессов расшифровки, когда один будет преобразовывать код другого или наоборот. Распознавание таких вирусов - очень сложный процесс. Для этого необходимо произвести тщательный анализ кода самого расшифровщика. С лечением сложнее - приходится трассировать не только генератор, но и тело самого вируса для выявления полной информации о зараженном файле. Эта процедура занимает довольно продолжительное время и может закончиться неудачно. Лечить вирусы этого уровня может лишь DrWeb, в остальных программах это попросту не реализовано. К представителям уровня относятся DAME и др.

Уровень 6 (неизлечимый). И, наконец, существуют вирусы, которые состоят из программных единиц-частей. Они постоянно меняются в теле и перемещают свои подпрограммы. Лечение таких вирусов пока не производится, но и для написания нужно очень хорошо разбираться в ассемблере. Характерной особенностью такой заразы являются пятна. При этом в различные места файла записывается несколько блоков кода, что обуславливает название метода. Такие пятна в целом образуют полиморфный расшифровщик, который работает с кодом в конце файла. Для реализации метода даже не нужно использовать команды-мусор - подобрать сигнатуру будет все равно невозможно. Такой алгоритм используют вирусы BadBoy, CommanderBomber, Leech и т.п.

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

Любой может написать хороший полиморфный вирус. Необходимо лишь немного разбираться в ассемблере. На создание среднего полиморфного вируса тратится не более шести часов.

Очень проста реализация поиска зеркальных команд. Для этого необходимо создать сводную таблицу с операндами. К ней должна прилагаться дополнительная информация: наличие зеркала, необходимость замены команды и прочее. Если человек немного понимает в вирусологии и ассемблере, то составить подобную таблицу ему будет несложно. С командами-мусором можно поступить аналогичным образом, как и с зеркалами.

Кстати о мусоре. К таким инструкциям прилагается ряд ограничений, которые должен исполнять каждый вирусописатель, чтобы его творение работало как следует. Итак, команда не должна:

1. Передавать управление за внешнюю программу. То есть управлять кодом может лишь расшифровщик и никто другой. Если нарушить это правило - вирус будет замечен.

2. Изменять регистры, которые используют рабочие команды. Мусор есть мусор и он никоим образом не должен пересекаться с правильным кодом.

3. Вызывать фатальные ошибки, а также генерировать исключения, так как это остановит работу расшифровщика, либо сделает ее неверной.

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

Еще надо ставить нерабочую команду после цикла, но перед шифрованным кодом - это избавит от некоторых проблем с конвейером у процессоров Pentium.

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

Вирусописатели прежде всего акцентируют внимание на трех главных вещах в своем творении:

1. Маскировка. Цель каждого полиморфного вируса - как можно дольше продержаться в системе до детектировании антивирусом.

2. Защита. После обнаружения заразы происходит вызов исключающего кода.

3. Сложность. Код вируса должен быть очень запутанным, содержать в себе инструкции-зеркала, команды-мусор и прочее. Это обычно работает против новичка, но профессионал в течение нескольких часов изучения кода при трассировке, проследит за алгоритмом вируса.

Первый полиморфный вирус появился в 1990 году и назывался Chameleon. Он вписывал свой код в конец COM-файлов, а также использовал два алгоритма шифрования. Первый шифрует тело по таймеру в зависимости от значения заданного ключа. Второй использует динамическое шифрование и при этом активно мешает трассировке вируса. Существовала и модификация Chameleon. Вторая версия 1 апреля форматировала диск A: (учитывая объемы того времени, это было весьма неприятно).

После этого эволюция полиморфов завершилась. Только через три года вышел вирус Phantom1, который добрался и до русских компьютеров. Он не был опасен, хотя содержал в коде ряд ошибок, из-за которых генератор не мог расшифровать тело вируса. При этом исполняемый файл переставал функционировать. После длительного простоя системы фантом выводил на экран видеоизображение с надписью. Она гласила, что компьютер находится под наблюдением опасного вируса.

Параллельно вирусам появлялись и полиморфик-генераторы, одним из которым был MtE, открывший целое вирусное семейство. Он уже использовал зеркальные функции, чем затруднял свое детектирование. Теперь вирусологу не нужно было писать свой дешифратор, а лишь воспользоваться MtE, в результате чего мир узнал о новом семействе вирусов. Что интересно, первый MtE-вирус был перехвачен антивирусной лабораторией, поэтому быстрый выход защиты от первого серьезного полиморфного вируса защитил множество рабочих станций от заразы.

На 1993 год пришлось очень много полиморфных вирусов. При этом программисты, видимо, соревновались между собой и решали, чей вирус окажется круче всех. Появлялись все новые дешифраторы, которые использовались другими вирусописателями для своих грязных целей. Одним из таких опасных вирусов был Predator, который перехватывал прерывания 13h и 21h и записывал себя в конец всех COM-файлов. Используя int 13h, вирь проверял сектора, считываемые с дисков, и изменял в них один бит в определенное время.

Другое семейство вирусов Daemaen записывает себя в COM, EXE и SYS-файлы. При этом бинарники, начинающиеся на SC, VF и F-, не заражаются. С виду эти вирусы выглядят вполне безопасно, но на самом деле происходит запись в MBR винчестера и в boot-сектора дискет, а тело заразы хранится в последних секторах. Вирь содержит в себе ряд ошибок, которые вполне могут разрушить FAT.

Вирусописатели обычно оставляют вместе с вирусом какую-либо информацию. Так, например, полиморфный вирус Invisible записывается в конец исполняемых файлов. В зависимости от времени зараза заменяет файл другой программой, при запуске которой юзер слышит музыку и видит перед собой текст песни I'm the invisible man (хит тех времен). Еще один пример - вирус Seat. После заражения вирус перехватывает 21h, записывает себя в исполняемые файлы. Время от времени на экране компьютера появляется визульные эффекты, а при нажатии на клавиши раздаются звуки ;).

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

При запуске Тодора происходит расшифровка его тела. Для этого используется довольно простой алгоритм, основанный на XOR. С каждым шагом слово вируса XOR’ится с непостоянным ключом. После активации перехватывается адрес 24h и происходит заражение файла command.com. В довершение вирус поражает 5 файлов с расширением COM или EXE.

Особенностью вируса является то, что он проверяет носитель на возможность записи. Перед заражением каждого бинарника создается временный файл (затем удаляется). Когда это невозможно (адрес 24h нужен для возврата именно таких ошибок), зараза прекращает свою деятельность, считая, что носитель защищен от записи. Атрибуты и дата файла после заражения становятся прежними. Лишь значение секунд становится равным 22. Это сделано для того, чтобы не инфицировать бинарник повторно (вирус проверяет дату во время поиска). К тому же, 15 числа каждого месяца, вирус случайным образом шифрует сектор жесткого диска. Это делает полиморфного вируса довольно опасным, так как сектором может являться и Root Directory.

Не обошлось и без ошибок. Todor некорректно проверяет длину файла. Точнее, если она будет более 64 Кб, заразить файл не удастся, а компьютер зависнет. Вторая ошибка заключается в том, что в теле расшифровщика содержится лишняя команда POP. Файл, в который она попадет, неминуемо повиснет после запуска. И напоследок, заражая бинарник, вирус сначала изменяет заголовок файла, а затем записывает себя в его конец. При ошибке записи либо переполнении носителя исполняемый файл будет испорчен, и восстановить его уже не удастся.

После выхода Тодора мир узнал о новом полиморфик- генераторе TPE (Trident Polymorphic Engine), который распространялся в архивах BBS с подробным кодом и документацией по использованию. Благодаря этому, стали появляться вирусы (семейство TPE),использующие этот модуль.

К концу 1993 года генераторов стало выпускаться очень много. Антивирусы не справлялись с таким потоком, это также обуславливалось улучшением технологии полиморфизма.

Рассмотрим примеры. Дешифратор SPE позволял записывать код вируса в исполняемые файлы и организовывал специальный счетчик. При его определенных значениях, вирус стирал содержимое MBR винчестера и перезагружал компьютер. Некоторые генераторы реагировали на команды, введенные пользователем. Например, VICE заражал файлы в каталоге лишь тогда, когда пользователь в него входил. Также дешифратор умел удалять базы антивируса.

Генератор SMEG был очень опасен. Этот расшифровщик умел вписывать свой код в исполняемые файлы, а также стирать CMOS и сектора дисков. Процесс происходил каждый понедельник. После экзекуции вирус показывал надпись, сообщающую, что жесткий диск был поврежден.

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

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

Такие вирусы не только шифруют свой код, используя различные пути шифрования, но и содержат код генерации шифровщика и расшифровщика, что отличает их от обычных шифровальных вирусов, которые также могут шифровать участки своего кода, но имеют при этом постоянный код шифровальщика и расшифровщика. Полиморфные вирусы - это вирусы с самомодифицирующимися расшифровщиками. Цель такого шифрования: имея зараженный и оригинальный файлы вы все равно не сможете проанализировать его код с помощью обычного дизассемблирования. Этот код зашифрован и представляет собой бессмысленный набор команд. Расшифровка производится самим вирусом уже непосредственно во время выполнения.

16.4. Пути проникновения вирусов в компьютер и механизм распределения вирусных программ

Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке программы с дискеты, содержащей вирус. Заразить дискету гораздо проще. На нее вирус может попасть, даже если дискету просто вставили в дисковод зараженного компьютера и, например, прочитали ее оглавление.

Вирус, как правило, внедряется в рабочую программу таким образом, чтобы при ее запуске управление сначала передалось ему и только после выполнения всех его команд снова вернулось к рабочей программе. Получив доступ к управлению, вирус прежде всего переписывает сам себя в другую рабочую программу и заражает ее. После запуска программы, содержащей вирус, становится возможным заражение других файлов. Наиболее часто вирусом заражаются загрузочный сектор диска и исполняемые файлы, имеющие расширения EXE,COM,SYS,BAT. Крайне редко заражаются текстовые файлы.

16.5 Признаки появления вирусов

При заражении компьютера вирусом важно его обнаружить. Для этого следует знать об основных признаках проявления вирусов:

прекращение работы или неправильная работа ранее успешно функционировавших программ

медленная работа компьютера

невозможность загрузки операционной системы

исчезновение файлов и каталогов или искажение их содержимого

изменение даты и времени модификации файлов

изменение размеров файлов

неожиданное значительное увеличение количества файлов на диске

существенное уменьшение размера свободной оперативной памяти

вывод на экран непредусмотренных сообщений или изображений

подача непредусмотренных звуковых сигналов

частые зависания и сбои в работе компьютера

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

16.6 Программы обнаружения и защиты от вирусов

Для обнаружения, удаления и защиты от компьютерных вирусов разработано несколько видов специальных программ, которые позволяют обнаруживать и уничтожать вирусы. Такие программы называются антивирусными. Различают следующие виды антивирусных программ:

программы-доктора или фаги

программы-вакцины или иммунизаторы

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

Учитывая, что постоянно появляются новые вирусы, программы-детекторы и программы-доктора быстро устаревают, и требуется регулярное обновление версий.

Программы-ревизорыотносятся к самым надежным средствам защиты от вирусов. Ревизоры запоминают исходное состояние программ, каталогов и системных областей диска тогда, когда компьютер не заражен вирусом, а затем периодически или по желанию пользователя сравнивают текущее состояние с исходным. Обнаруженные изменения выводятся на экран монитора. Как правило, сравнение состояний производят сразу после загрузки операционной системы. При сравнении проверяются длина файла, код циклического контроля (контрольная сумма файла), дата и время модификации, другие параметры. К числу программ-ревизоровAdinf.

попытки коррекции файлов с расширениями COM,EXE

изменение атрибутов файла

прямая запись на диск по абсолютному адресу

запись в загрузочные сектора диска

загрузка резидентной программы

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

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

Прежде всего компьютерный вирус - это программа, обладающая способностью к самовоспроизведению. Такая способность является единственным средством, присущим всем типам вирусов.

Компьютерный вирус - специально написанная программа, способная самопроизвольно присоединяться к другим программам, создавать свои копии и внедрять их в файлы, системные области компьютера и в вычислительные сети с целью нарушения работы программ, порчи файлов и каталогов, создания всевозможных помех в работе компьютера.

В настоящее время известны тысячи компьютерных вирусов, их можно классифицировать по следующим признакам:

· способу заражения среды обитания;

В зависимости от среды обитания вирусы можно разделить на сетевые, файловые, загрузочные и файлово-загрузочные. Сетевые вирусы распространяются по различным компьютерным сетям. Файловые вирусы внедряются главным образом в исполняемые модули, т. е. в файлы, имеющие расширения СОМ и ЕХЕ. Файловые вирусы могут внедряться и в другие типы файлов, но, как правило, записанные в таких файлах, они никогда не получают управление и, следовательно, теряют способность к размножению. Загрузочные вирусы внедряются в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий программу загрузки системного диска (Master Boot Record). Файлово-загрузочные вирусы заражают как файлы, так и загрузочные сектора дисков.

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

По степени воздействия вирусы можно разделить на следующие виды:

· неопасные , не мешающие работе компьютера, но уменьшающие объем свободной оперативной памяти и памяти на дисках, действия таких вирусов проявляются в каких-либо графических или звуковых эффектах;

· опасные вирусы , которые могут привести к различным нарушениям в работе компьютера;

· очень опасные , воздействие которых может привести к потере программ, уничтожению данных, стиранию информации в системных областях диска.

По особенностям алгоритма вирусы трудно классифицировать из-за большого разнообразия. Простейшие вирусы - паразитические, они изменяют содержимое файлов и секторов диска и могут быть достаточно легко обнаружены и уничтожены. Можно отметить вирусы-репликаторы, называемые червями, которые распространяются по компьютерным сетям, вычисляют адреса сетевых компьютеров и записывают по этим адресам свои копии. Известны вирусы-невидимки, называемые стелс-вирусами, которые очень трудно обнаружить и обезвредить, так как они перехватывают обращения операционной системы к пораженным файлам и секторам дисков и подставляют вместо своего тела незараженные участки диска. Наиболее трудно обнаружить вирусы-мутанты, содержащие алгоритмы шифровки-расшифровки, благодаря которым копии одного и того же вируса не имеют ни одной повторяющейся цепочки байтов. Имеются и так называемые квазивирусные, или троянские программы, которые хотя и не способны к самораспространению, но очень опасны, так как, маскируясь под полезную программу, разрушают загрузочный сектор и файловую систему дисков.

Загрузочные вирусы

Рассмотрим схему функционирования очень простого загрузочного вируса, заражающего дискеты. Мы сознательно обойдем все многочисленные тонкости, которые неизбежно встретились бы при строгом разборе алгоритма его функционирования.

Что происходит, когда вы включаете компьютер? Первым делом управление передается программе начальной загрузки (ПНЗ), которая хранится в постоянно запоминающем устройстве (ПЗУ).

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

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

Таким образом, нормальная схема начальной загрузки следующая:

Теперь рассмотрим вирус. В загрузочных вирусах выделяют две части - голову и хвост. Хвост, вообще говоря, может быть пустым. Пусть у вас имеются чистая дискета и зараженный компьютер, под которым мы понимаем компьютер с активным резидентным вирусом. Как только этот вирус обнаружит, что в дисководе

появилась подходящая жертва - в нашем случае не защищенная от записи и еще не зараженная дискета, он приступает к заражению. Заражая дискету, вирус производит следующие действия:

· выделяет некоторую область диска и помечает ее как недоступную операционной системе. Это можно сделать по-разному, в простейшем и традиционном случае занятые вирусом секторы помечаются как сбойные (bad);

· копирует в выделенную область диска свой хвост и оригинальный (здоровый) загрузочный сектор;

· замещает программу начальной загрузки в загрузочном секторе (настоящем) своей головой;

· организует цепочку передачи управления согласно схеме.

Таким образом, голова вируса теперь первой получает управление, вирус устанавливается в память и передает управление оригинальному загрузочному сектору.

В цепочке ПНЗ (ПЗУ) ® ПНЗ (диск) ® СИСТЕМА появляется новое звено: ПНЗ (ПЗУ) ® ВИРУС ® ПНЗ (диск) ® СИСТЕМА .

Поэтому никогда не оставляйте (случайно) дискет в дисководе А.

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

При загрузке компьютера с винчестера первой берет на себя управление программа начальной загрузки в MBR (Master Boot Record - главная загрузочная запись). Если ваш жесткий диск разбит на несколько разделов, то лишь один из них помечен как загрузочный (boot). Программа начальной загрузки в MBR находит загрузочный раздел винчестера и передает управление на программу начальной загрузки этого раздела. Код последней совпадает с кодом программы начальной загрузки, содержащейся на обычных дискетах, а соответствующие загрузочные сектора отличаются только таблицами параметров. Таким образом, на винчестере имеются два объекта атаки загрузочных вирусов - программа начальной загрузки в MBR и программа начальной загрузки в boot-секторе загрузочного диска.

Файловые вирусы

Если файловый вирус резидентный, то он установится в память и получит возможность заражать файлы и проявлять прочие способности не только во время работы зараженного файла.

Заражая исполняемый файл, вирус всегда изменяет его код -следовательно, заражение исполняемого файла всегда можно обнаружить. Но, изменяя код файла, вирус не обязательно вносит другие изменения: он не всегда изменяет длину файла, может не менять начало файла.

Основная проблема при лечении данного вируса состоит в том, что недостаточно просто удалить вирус из MBR и файлов, надо расшифровать зашифрованную им информацию. Наиболее радикальное действие - просто переписать новый здоровый MBR.

Полиморфные вирусы

Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке программы с дискеты, содержащей вирус. Такое заражение может быть и случайным, например, если дискету не вынули из дисковода А: и перезагрузили компьютер, при этом дискета может быть и не системной. Заразить дискету гораздо проще. На нее вирус может попасть, даже если дискету просто вставили в дисковод зараженного компьютера и, например, прочитали ее оглавление.

Примечание . Чтобы исключить заражение дискеты компьютерным вирусом, запретите запись на диск. Режим запрета записи на дискете 3,5’’ устанавливается специальным переключателем, расположенным в одном из углов дискеты. Для запрета записи на дискету, манипулируя этим переключателем, откройте прорезь в дискете.

Вирус, как правило, внедряется в рабочую программу таким образом, чтобы при ее запуске управление сначала передалось ему и только после выполнения всех его команд снова вернулось к рабочей программе. Получив доступ к управлению, вирус прежде всего переписывает сам себя в другую рабочую программу и заражает ее. После запуска программы, содержащей вирус, становится возможным заражение других файлов. Наиболее часто вирусом заражаются загрузочный сектор диска и исполняемые файлы, имеющие расширения EXE, COM, SYS, ВАТ. Крайне редко заражаются текстовые файлы.

После заражения программы вирус может выполнить какую-нибудь диверсию, не слишком серьезную, чтобы не привлечь внимания и, наконец, не забывает возвратить управление той программе, из которой был запущен. Каждое выполнение зараженной программы переносит вирус в следующую. Таким образом, заразится все программное обеспечение.

При заражении компьютера вирусом важно его обнаружить. Для этого следует знать об основных признаках проявления вирусов. К ним можно отнести следующие:

· прекращение работы или неправильная работа ранее успешно функционировавших программ;

· медленная работа компьютера;

· невозможность загрузки операционной системы;

· исчезновение файлов и каталогов или искажение их содержимого;

· изменение даты и времени модификации файлов;

· изменение размеров файлов;

· неожиданное значительное увеличение количества файлов на диске;

· существенное уменьшение размера свободной оперативной памяти;

· вывод на экран непредусмотренных сообщений или изображений;

· подача непредусмотренных звуковых сигналов;

· частые зависания и сбои в работе компьютера.

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

· как обнаружить вирус, для этого уточняются методы поиска сигнатур в потенциальных объектах вирусной атаки – файлах и/или загрузочных секторах;

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

Для обнаружения, удаления вирусов и защиты от них разработано несколько видов специальных программ, которые позволяют обнаруживать и уничтожать вирусы. Такие программы называются антивирусными. Различают следующие виды антивирусных программ:

· программы-доктора, или фаги;

· программы-вакцины, или иммунизаторы.

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

Учитывая, что постоянно появляются новые вирусы, программы-детекторы и программы-доктора быстро устаревают, и требуется регулярное обновление версий.

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

· попытки коррекции файлов с расширениями СОМ, ЕХЕ;

· изменение атрибутов файла;

· прямая запись на диск по абсолютному адресу;

· запись в загрузочные сектора диска;

· загрузка резидентной программы.

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

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

1. Оснастите свой компьютер современными антивирусными программами, например Doctor Web, AVP, и постоянно возобновляйте их версии.

2. Перед считыванием с дискет информации, записанной на других компьютерах, всегда проверяйте эти дискеты на наличие вирусов, запуская антивирусные программы своего компьютера.

3. При переносе на свой компьютер файлов в архивированном виде проверяйте их сразу же после разархивации на жестком диске, ограничивая область проверки только вновь записанными файлами.

4. Периодически проверяйте на наличие вирусов жесткие диски компьютера, запуская антивирусные программы для тестирования файлов, памяти и системных областей дисков с защищенной от записи дискеты, предварительно загрузив операционную систему с защищенной от записи системной дискеты.

5. Всегда защищайте свои дискеты от записи при работе на других компьютерах, если на них не будет производиться запись информации.

6. Обязательно делайте архивные копии на дискетах ценной для вас информации.

7. Не оставляйте в кармане дисковода А: дискеты при включении или перезагрузке операционной системы, чтобы исключить заражение компьютера загрузочными вирусами.

8. Используйте антивирусные программы для входного контроля всех исполняемых файлов, получаемых из компьютерных сетей.

9. Для обеспечения большей безопасности применения необходимо сочетать доктора и ревизоры, например, DrWeb и ADinf.

Aidstest - это антивирусная программа-полифаг, способная сейчас обнаружить и уничтожить более 1700 вирусов. В настоящее время Aidstest поставляется как бесплатное приложение к программе Dr. Web, дополняя вирусную базу Dr. Web.

Рассмотрим использование программы DrWeb32, которая предназначена для использования в 32-битных операционных системах семейства Windows (т.е. Windows 95/98/Me/NT/2000/XP) и для краткости названа Dr.Web for Windows 95-XP, или просто DrWeb32W.

Важнейшим новшеством программы DrWeb32 является модульный принцип ее построения. Еще в версии DrWeb 4.0 основная вирусная база была выделена в отдельный файл и подгружалась после старта программы аналогично файлам-дополнениям, что позволило решить проблему нехватки основной памяти. Теперь в DrWeb32 произошло разделение программы на оболочку, ориентированную на работу в конкретной среде (в данном случае, Windows 95/98/NT), и ядро, не зависящее от среды. Такая организация антивирусной программы позволяет:

· использовать одни и те же файлы вирусной базы DrWeb для разных платформ - DOS, Windows 95/98/ME/NT/2000/XP, OS/2,Novell Netware;

· подключать ядро к различным оболочкам и приложениям, что дает возможность простой интеграции антивирусной проверки со многими прикладными задачами;

· реализовать механизм автоматического пополнения вирусных баз и обновления версий оболочки и ядра через сеть Интернет.

К важным особенностям программы относятся:

· наглядные и гибкие средства выбора объектов тестирования путем просмотра дерева подкаталогов любых дисков вплоть до уровня отдельных файлов;

· отсутствие ряда ограничений традиционной версии;

· полная проверка всей системной памяти Windows 95/98/ME;

· автоматическое обновление через Интернет;

· резидентный антивирусный контроль файлов (сторож SpIDer);

· интеллектуальная технология контроля вирусной активности SpIDer-Netting.

Программа DrWeb32 для Windows выпущена в двух вариантах: с графическим интерфейсом (DrWeb32W) и без него (DrWebWCL). Оба варианта поддерживают одинаковый набор параметров (ключей) командной строки. Для разового нерегулярного применения более удобен первый режим, но для регулярного применения с целью систематического входного контроля дискет лучше применять второй режим. При использовании второго режима соответствующая команда запуска DrWeb должна быть включена либо в меню пользователя операционной оболочки Total Commander, либо в специальный командный файл.

Командная строка для запуска DrWeb выглядит следующим образом:

X: - логическое устройство жесткого диска или физическое устройство гибкого диска, например F: или А:,

* - все логические устройства на жестком диске, путь - это путь или маска требуемых файлов.

Наиболее важные ключи:

· / AL -диагностика всех файлов на заданном устройстве;

· P - удаление вирусов с подтверждением пользователя;

· / DL - удаление файлов, корректное лечение которых невозможно;

· / HA [уровень] - эвристический анализ файлов и поиск в них неизвестных вирусов, где уровень может принимать значения 0, 1,2;

· /КР[имя файла] - запись протокола работы в файл (по умолчанию в файл REPORT.WEB);

· / CL - запуск программы в режиме командной строки, при тестировании файлов и системных областей не используется полноэкранный интерфейс;

· / QU - выход в DOS сразу после тестирования;

· /? - вывод на экран краткой справки.

Если в командной строке DrWeb не указано ни одного ключа, то вся информация для текущего запуска будет считываться из файла конфигурации DRWEB.INI, расположенного в том же каталоге, что и файл DRWEB.EXE. Файл конфигурации создается в процессе работы с программой DrWeb с помощью команды сохранения параметров, необходимых для тестирования.

По умолчанию (при отсутствии файла конфигурации DRWEB.INI) основные режимы сканирования соответствуют следующей командной строке:

DRWEB.EXE /AR /FM / НА /HI /RPREPORT.DWB /RV /SO /UP

На рис.1. показана проверка компьютера на наличие вирусов в окне DrWeb.


Рис. 1. Проверка диска C : на наличие вирусов в окне DrWeb.

Читайте также:

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.

Copyright © Иммунитет и инфекции