Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вирусы.doc
Скачиваний:
15
Добавлен:
04.09.2019
Размер:
3.53 Mб
Скачать

3.8. Обнаружение макровируса

Характерными проявлениями макровирусов являются:

• в документах Word:

— невозможность конвертирования зараженного документа Word в другой формат;

— зараженные файлы имеют формат Template (шаблон), поскольку при заражении Word-вирусы конвертируют файлы из формата Word Document в Template;

• только в Word 6:

— невозможность записи документа в другой каталог/на другой диск по команде Save As;

• в Excel/Word:

— в STARTUP-каталоге присутствуют чужие файлы;

• в таблицах Excel версий 5 и 7:

— наличие в Книге (Book) лишних и скрытых Листов (Sheets). Для проверки системы на наличие вируса можно использовать пункт меню Tools/Macro. Если обнаружены чужие макросы, то они могут принадлежать вирусу. Однако этот метод не работает в случае "стелс"-вирусов, которые запрещают работу этого пункта меню, что, в свою очередь, является достаточным основанием считать систему зараженной.

Многие вирусы имеют ошибки или некорректно работают в различных версиях Word и Excel, в результате чего программы выдают сообщения об ошибке, например:

WordBasic Err = номер ошибки Если такое сообщение появляется при редактировании нового документа или таблицы и при этом заведомо не используются какие-либо пользовательские макросы, то это также может служить признаком заражения системы.

Сигналом о вирусе являются и изменения в файлах и системной конфигурации Word, Excel и Windows. Многие вирусы тем или иным образом меняют пункты меню Tools/Options: разрешают или запрещают функции Prompt to Save Normal Template, Allow Fast Save, Virus Protection. Некоторые вирусы устанавливают на файлы пароль при их заражении. Большое количество вирусов создает новые секции и/или опции в файле конфигурации Windows (WIN.INI).

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

3.9. Обнаружение резидентного вируса

Если в компьютере обнаружены следы деятельности вируса, но видимых изменений в файлах и системных секторах дисков не наблюдается, то вполне возможно, что компьютер поражен одним из "стелс"-вирусов. В этом случае необходимо загрузить DOS с заведомо не имеющей вирусов дискеты, содержащей резервную копию DOS, и действовать, как и при поражении нерезидентным вирусом. Однако иногда это нежелательно, а в ряде случаев невозможно (известны, например, случаи покупки новых компьютеров, зараженных вирусом). Тогда придется обнаружить и нейтрализовать резидентную часть вируса, выполненную по технологии "стеле". Возникает вопрос: где в памяти и как искать вирус или его резидентную часть? Существует несколько способов инфицирования памяти.

3.9.1. DOS-вирусы

1. Вирус может проникнуть в таблицу векторов прерываний. Лучший способ обнаружить такой вирус — просмотреть карту распределения памяти, содержащую список резидентных программ (пример такой карты приведен в табл. 3.1). Подробная карта памяти сообщает информацию обо всех блоках, на которые разбита память: адрес блока управления памятью МСВ, имя программы — владельца блока, адрес ее префикса программного сегмента (PSP) и список перехватываемых блоком векторов прерываний.

При наличии вируса в таблице векторов прерываний (табл. 3.2) утилиты, отображающие карту распределения памяти (например, AVPTSR.COM, AVPUTIL.COM), начинают "шуметь".

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

2. Вирус может несколькими способами встроиться в DOS: в произвольный системный драйвер, в системный буфер, в другие рабочие области DOS (например, в область системного стека или в свободные места таблиц DOS и BIOS).

Наиболее "популярный" способ инфицирования вирусом произвольного системного драйвера — прикрепление тела вируса к файлу, содержащему драйвер, и модификация заголовка поражаемого драйвера. Если при этом вирус оформляет себя как отдельный драйвер', то его можно обнаружить при просмотре карты распределения памяти, содержащей список системных драйверов. Если при этом в списке присутствует драйвер, который не описан в файле CONFIG.SYS, то он и может быть вирусом. Если же вирус "приклеивается" к расположенному перед ним драйверу, не выделяя свои коды как отдельную программу-драйвер, то обнаружить его можно методами, описанными ниже.

Вирус, встраивающийся в системный буфер, должен уменьшать общее число буферов; в противном случае он будет уничтожен последующими операциями считывания с диска. Совсем не сложно написать программу, которая подсчитывает число буферов, реально присутствующих в системе, и сравнивает полученный результат со значением команды BUFFERS, расположенной в файле CONFIG.SYS (если команда BUFFERS отсутствует, то со значением, устанавливаемым DOS по умолчанию)

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

3. Вирус может проникнуть в область программ в виде-

— отдельной резидентной программы или отдельного блока памяти (МСВ);

— внутри или "приклеившись" к какой-либо резидентной программе. Если вирус внедряется в отведенную для прикладных программ область памяти в виде нового блока, создавая для себя собственный МСВ, или как отдельная резидентная программа, его можно обнаружить при просмотре подробной карты распределения памяти, отображающей адреса всех блоков МСВ. Обычно такой вирус выглядит как отдельный блок памяти (табл. 3.3, 3.4), не имеющий имени и перехватывающий один или несколько векторов прерываний (например, INT 8, 13h, ICh, 21h). Следует отметить, что вирус может выделить себе блок памяти как в обычной (conventional), так и в верхней памяти (UMB).

Адрес блока МСВ

Адрес

и»

JRnaq» блок» МСВ(Кб)

Имя программы владельца блока МСВ

Номера векторов прерываний ;

ОЕ9А

ОЕ9В

3,20К

COMMAND СОМ

22,24,2Е

OF6E

OF6F

0.04К

блок свободен

OF72

ОЕ9В

0.15К

COMMAND СОМ

10D1

10DA

23.20К

AVPTSR СОМ

10,1В,23,26,27,28

2F.40

17AF

17ВО

1.70К

•?

08 (вирус Yankee)

1820

ОЕ9В

539.30К

COMMAND СОМ

30,31

9F04

0000

3.90К

?

1С.21 (вирус Jerusalem)

 

 

 

 

 

 

 

 

Таблица 3.3 Вирус в области пользовательских программ

Таблица 3.4 Вирус в области пользовательских программ (UMB)

Адрес блока

мсв

Адрес »»SP

Размер блока МСВ<Кб)

Имяврограммы владельца блока МСВ

Номера векторов прерывают

03 D8

03D8

262К

COMMAND СОМ

22 24 2Е

047 D

0000

006К

блок свободен

0482

03D8

025К

COMMAND СОМ

0493

0493

1890К

AVPTSR СОМ

10 1В 23 26,27 28

2F40

08F5

03D8

618 64К

COMMAND СОМ

30

АООО

0008

136 09К

DOS

С13А

120К

DOS

вирус Tremor маскирую щиися под блок DOS

С186

5496К

блок свободен

4 Вирус может проникнуть за границу памяти, выделенной под DOS Практически все загрузочные и некоторые файловые вирусы располага ются за пределами памяти, выделенной для DOS, уменьшая значение слова, расположенного по адресу [0040 0013] Первый мегабайт памяти компьютера в этом случае выглядит, как показано на рис 3 5

Рис. 3.5

Первый мегабайт зараженной памяти

Обнаружить такие вирусы очень просто — достаточно узнать емкость оперативной памяти и сравнить ее с реальной Если вместо 640 Кб (на неко торых старых ПК 512 Кб) система сообщит меньшее значение, то следует просмотреть дизассемблером "отрезанный" участок памяти Если на этом участке будут обнаружены коды какой-то программы, то, скорее всего, вирус найден.

Внимание! Емкость оперативной памяти может уменьшиться на один или несколько килобайтов и в результате использования расширенной памяти или некоторых типов контроллеров. При этом типичной является следующая картина: в "отрезанном" участке содержимое большинства байтов нулевое.

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

Возможно инфицирование вирусом файлов DOS, которые являются резидентными (например, IO.SYS, MSDOS.SYS, COMMAND.COM), загружаемых драйверов (ANSY.SYS, COUNTRY.SYS, RAMDRIVE.SYS) и др. Обнаружить такой вирус гораздо сложнее вследствие малой скорости его распространения, но, однако, вероятность атаки подобного вируса значительно меньше. Все чаще стали встречаться "хитрые" вирусы, которые корректируют заголовки блоков памяти или "обманывают" DOS, представляя блок с кодами вируса одним целым с предыдущим блоком памяти.

В этом случае обнаружить вирус гораздо сложнее, необходимо знать реальную длину программ, размещенных в памяти, и список прерываний, которые они перехватывают. Но этот способ не очень удобен и иногда не срабатывает. Поэтому рекомендуется использовать другой метод, который может облегчить выявление вируса в подобной ситуации. Он основан на следующем свойстве: подавляющее большинство вирусов для обнаружения незараженных файлов или секторов дисков перехватывает прерывания 13h или 21h, встраиваясь в обработчик прерывания. В таком случае для обнаружения вируса достаточно просмотреть текст (команды ассемблера) обработчиков указанных прерываний (например, при помощи программы AVPUTIL.COM). Правда, для того чтобы отличить вирус от обычных программ, требуется достаточный опыт работы с вирусами и некоторое представление о структуре обработчика на незараженном компьютере. К тому же надо быть осторожным:

существует несколько вирусов, которые "завешивают" систему при попытке трассировки их кодов.

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

Конечно, существуют и другие, достаточно экзотические, способы ин-фицирования памяти вирусом, например внедрение вируса в видеопамять, в High Memory Area (HMA) или в расширенную память (EMS, XMS), но подобные вирусы встречаются достаточно редко, и они всегда проявлялись хотя бы одним из перечисленных выше признаков. Существуют также монстры, использующие защищенный режим процессоров i386 и выше. К счастью, известные вирусы такого типа либо "не живут" вместе с современными ОС и поэтому слишком заметны, либо не используют "стелс"-приемов. Однако появление полноценного "стелс"-вируса, для DOS работающего в защищенном режиме, вполне реально. Такой вирус будет невидим для DOS-задач, и обнаружить его будет возможно, только либо перенеся зараженные файлы на незараженный компьютер, либо после перезагрузки DOS с чистой дискеты.