Классификация
компьютерных вирусов
Вирусы можно разделить на классы по следующим
основным признакам:
-
среда обитания;
-
операционная система (ОС);
-
особенности алгоритма работы;
-
деструктивные возможности.
В зависимости от среды обитания вирусы
можно разделить на:
-
файловые;
-
загрузочные;
-
макровирусы;
-
сетевые.
Файловые вирусы либо различными способами
внедряются в выполняемые файлы (наиболее распространенный тип вирусов), либо
создают файлы-двойники (вирусы-компаньоны), либо используют особенности
организации файловой системы (link-вирусы).
Загрузочные вирусы записывают себя либо в
загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный
загрузчик винчестера (Master Boot Record), либо меняют указатель на активный
boot-сектор.
Макровирусы заражают файлы-документы и
электронные таблицы нескольких популярных редакторов.
Сетевые вирусы используют для своего
распространения протоколы или команды компьютерных сетей и электронной почты.
Существует большое количество сочетаний, например
файлово-загрузоч-ные вирусы, заражающие как файлы, так и загрузочные сектора
дисков. Такие вирусы, как правило, имеют довольно сложный алгоритм работы,
часто применяют оригинальные методы проникновения в систему, используют
"стеле-" и полиморфик-технологии. Другой пример такого сочетания —
сетевой макровирус, который не только заражает редактируемые документы, но и
рассылает свои копии по электронной почте.
Заражаемая операционная система (вернее,
ОС, объекты которой подвержены заражению) является вторым уровнем деления
вирусов на классы. Каждый файловый или сетевой вирус заражает файлы какой-либо
одной или нескольких ОС — DOS, Windows, Win95/NT, OS/2 и т. д. Макровирусы
заражают файлы форматов Word, Excel, Office 97. Загрузочные вирусы также ориентированы
на конкретные форматы расположения системных данных в загрузочных секторах
дисков.
Среди особенностей алгоритма работы
вирусов выделяются следующие:
-
резидентность;
-
использование "стелс"-алгоритмов;
-
само шифрование и полиморфичность;
-
использование нестандартных приемов.
Резидентный вирус при инфицировании
компьютера оставляет в оперативной памяти свою резидентную часть, которая затем
перехватывает обращения ОС к объектам заражения и внедряется в них. Резидентные
вирусы находятся в памяти и являются активными вплоть до выключения компьютера
или перезагрузки ОС. Нерезидентные вирусы не заражают память компьютера и
сохраняют активность ограниченное время. Некоторые вирусы оставляют в
оперативной памяти небольшие резидентные программы, которые не распространяют
вирус. Такие вирусы считаются нерезидентными.
Резидентными можно считать макровирусы, поскольку
они также присутствуют в памяти компьютера в течение всего времени работы
зараженного редактора. При этом роль ОС берет на себя редактор, а понятие
"перезагрузка операционной системы" трактуется как выход из
редактора.
В многозадачных ОС время "жизни"
резидентного DOS-вируса также может быть ограничено моментом закрытия
зараженного DOS-окна, а активность загрузочных вирусов в некоторых операционных
системах ограничивается моментом инсталляции дисковых драйверов ОС.
Использование "стеле"-алгоритмов
позволяет вирусам полностью или частично скрыть себя в системе. Наиболее
распространенным "стелс"-алго-ритмом является перехват запросов ОС на
чтение-запись зараженных объектов и затем "стелс"-вирусы либо
временно лечат их, либо подставляют вместо себя незараженные участки
информации. В случае макровирусов наиболее популярный способ — запрет вызовов
меню просмотра макросов. Один из первых файловых "стелс"-вирусов —
вирус Frodo, первый загрузочный "стелс"-вирус — Brain.
Самошифрование и полиморфичность
используются практически всеми типами вирусов для того, чтобы максимально
усложнить процедуру обнаружения вируса. Полиморфик-вирусы (polymorphic) достаточно
трудно поддаются обнаружению; они не имеют сигнатур, т. е. не содержат ни
одного постоянного участка кода. В большинстве случаев два образца одного и
того же полиморфик-вируса не будут иметь ни одного совпадения. Это достигается
шифрованием основного тела вируса и модификациями программы-расшифровщика.
Различные нестандартные приемы часто
используются в вирусах для того, чтобы как можно глубже спрятать себя в ядре ОС
(как это делает вирус "ЗАРАЗА"), защитить от обнаружения свою
резидентную копию (вирусы TPVO, Trout2), затруднить лечение от вируса
(например, помещают свою копию в Flash-BIOS) и т. д.
По деструктивным возможностям вирусы можно
разделить на:
-
безвредные, т. е. никак не влияющие на работу
компьютера (кроме уменьшения свободной памяти на диске в результате своего
распространения);
-
неопасные, влияние которых ограничивается уменьшением
свободной памяти на диске и графическими, звуковыми и прочими эффектами;
-
опасные вирусы, которые могут привести к серьезным
сбоям в работе компьютера;
-
очень опасные — в алгоритм их работы заведомо заложены
процедуры, которые могут вызвать потерю программ, уничтожить данные, стереть
необходимую для работы компьютера информацию, записанную в системных областях
памяти, и даже, как гласит одна из непроверенных компьютерных легенд,
способствовать быстрому износу движущихся частей механизмов — вводить в
резонанс и разрушать головки некоторых типов винчестеров.
Но даже если в алгоритме вируса не найдено
ветвей, наносящих ущерб системе, этот вирус нельзя с полной уверенностью
назвать безвредным, так как проникновение его в компьютер может вызвать
непредсказуемые и порой катастрофические последствия. Ведь вирус, как и всякая
программа, имеет ошибки, в результате которых могут быть испорчены как файлы,
так и сектора дисков (например, вполне безобидный на первый взгляд вирус DenZuk
довольно корректно работает с 360-килобайтовыми дискетами, но может уничтожить
информацию на дискетах большего объема). До сих пор попадаются вирусы,
определяющие СОМ или ЕХЕ не по внутреннему формату файла, а по его расширению.
Естественно, что при несовпадении формата и расширения имени файл после
заражения оказывается неработоспособным. Возможно также
"заклинивание" резидентного вируса и системы при использовании новых
версий DOS, при работе в Windows или с другими мощными программными системами.
И так далее.
Файловые
вирусы
К данной группе относятся вирусы, которые при
своем размножении тем или иным способом используют файловую систему какой-либо
(или каких-либо) ОС.
Файловые вирусы могут внедряться практически во
все исполняемые файлы всех популярных ОС. На сегодняшний день известны вирусы,
поражающие все типы выполняемых объектов стандартной DOS: командные файлы
(ВАТ), загружаемые .драйверы (SYS, в том числе специальные файлы IO.SYS и MSDOS.SYS)
и выполняемые двоичные файлы (ЕХЕ, СОМ). Существуют вирусы, поражающие
исполняемые файлы других ОС — Windows З.х, Windows 95/NT, OS/2, Macintosh,
Unix, включая VxD-драйверы Windows З.х и Windows 95.
Имеются вирусы, заражающие файлы, которые содержат
исходные тексты программ, библиотечные или объектные модули. Возможна запись
вируса и в файлы данных, но это случается либо в результате ошибки в вирусе,
либо при проявлении его агрессивных свойств. Макровирусы также записывают свой
код в файлы данных — документы или электронные таблицы, однако эти вирусы
настолько специфичны, что вынесены в отдельную группу.
По способу заражения файлов вирусы делятся на
overwriting, паразитические (parasitic), компаньон-вирусы (companion),
link-вирусы, вирусы-черви и вирусы, заражающие объектные модули (OBJ),
библиотеки компиляторов (LIB) и исходные тексты программ.
Overwriting-вирусы
Данный метод заражения является наиболее простым
: вирус записывает свой код вместо кода заражаемого файла, уничтожая его
содержимое. Естественно, что при этом файл перестает работать и не
восстанавливается. Такие вирусы очень быстро обнаруживают себя, так как ОС и
приложения довольно быстро перестают работать. Мне не известно ни одного
случая, когда подобного типа вирусы были бы обнаружены "в живом виде"
и стали причиной эпидемии.
К разновидности overwriting-вирусов относятся
вирусы, записывающиеся вместо DOS-заголовка NewEXE-файлов. Основная часть файла
при этом остается без изменений и продолжает нормально работать в
соответствующей ОС, однако DOS-заголовок оказывается испорченным.
Parasitic-вирусы
К паразитическим относятся все файловые вирусы,
которые при распространении своих копий обязательно изменяют содержимое файлов,
оставляя сами файлы при этом полностью или частично работоспособными. Основными
типами таких вирусов являются вирусы, записывающиеся в начало файлов
(prepending), в конец файлов (appending) и в середину файлов (inserting). В
свою очередь, внедрение вирусов в середину файлов происходит различными
методами — путем переноса части файла в его конец или внедрения в заведомо
неиспользуемые данные файла (cavity-вирусы).
Файловые черви
Файловые черви (worms) являются в некотором
смысле разновидностью компаньон-вирусов, но при этом никоим образом не
связывают свое присутствие с каким-либо выполняемым файлом. При размножении они
всего лишь копируют свой код в какие-либо каталоги дисков в надежде, что эти
новые копии будут когда-либо запущены пользователем. Иногда эти вирусы дают
своим копиям "специальные" имена, чтобы подтолкнуть пользователя на
запуск своей копии, например INSTALL.EXE или WINSTART.BAT.
Существуют вирусы-черви, использующие довольно
необычные приемы, например, записывающие свои копии в архивы (ARJ, ZIP и пр.).
К таким вирусам относятся "ArjVirus" и "Winstart".
Некоторые вирусы записывают команду запуска зараженного файла в ВАТ-файлы (см.,
например, "Worm.Info").
Не следует путать файловые вирусы-черви с
сетевыми червями. Первые используют только файловые функции какой-либо
операционной системы, вторые же при своем размножении пользуются сетевыми
протоколами.
OBJ-, LIB-вирусы и вирусы в исходных текстах
Вирусы, заражающие библиотеки компиляторов,
объектные модули и исходные тексты программ, достаточно экзотичны и практически
не распространены. Всего их около десятка. Вирусы, заражающие OBJ- и ЫВ-файлы,
записывают в них свой код в формате объектного модуля или библиотеки.
Зараженный файл при этом не является выполняемым
и не способен на дальнейшее распространение вируса в своем текущем состоянии.
Носителем же "живого" вируса становится СОМ- или ЕХЕ-файл, получаемый
в процессе компоновки зараженного OBJ/LIB-файла с другими объектными модулями и
библиотеками. Таким образом, вирус распространяется в два этапа: на первом
заражаются OBJ/LIB-файлы, на втором (компоновка) получается работоспособный
вирус.
Заражение исходных текстов программ является
логическим продолжением предыдущего метода размножения. При этом вирус
добавляет к исходным текстам свой исходный код (в этом случае он должен
содержать его) или свой шестнадцатеричный дамп (что технически легче).
Зараженный файл способен на дальнейшее распространение вируса только после
компиляции и компоновки (см., например, вирусы SrcVir, Urphin).
Алгоритм работы файлового вируса
Получив управление, вирус совершает следующие
действия (приводим список наиболее общих действий вируса при его выполнении;
для конкретного вируса список может быть дополнен, пункты могут поменяться
местами и значительно расшириться) :
-
резидентный вирус проверяет оперативную память на
наличие своей копии и инфицирует память компьютера, если копия вируса не
найдена; нерезидентный вирус ищет незараженные файлы в текущем и (или) корневом
каталогах, в каталогах, отмеченных командой PATH, сканирует дерево каталогов
логических дисков, а затем заражает обнаруженные файлы;
-
выполняет, если они есть, дополнительные функции:
деструктивные действия, графические или звуковые эффекты и т. д.
(дополнительные функции резидентного вируса могут вызываться спустя некоторое
время после активизации в зависимости от текущего времени, конфигурации
системы, внутренних счетчиков вируса или других условий; в этом случае вирус
при активизации обрабатывает состояние системных часов, устанавливает свои
счетчики и т. д.);
-
возвращает управление основной программе (если она есть).
Паразитические вирусы при этом либо восстанавливают программу (но не файл) в
исходном виде (например, у СОМ-программы восстанавливается несколько первых
байтов, у ЕХЕ-программы вычисляется истинный стартовый адрес, у драйвера
восстанавливаются значения адресов программ стратегии и прерывания), либо лечат
файл, выполняют его, а затем снова заражают. Компаньон-вирусы запускают на
выполнение своего "хозяина", вирусы-черви и overwriting-вирусы
возвращают управление DOS.
Метод восстановления программы в первоначальном
виде зависит от способа заражения файла. Если вирус внедряется в начало файла,
то он либо сдвигает коды зараженной программы на число байтов, равное длине
вируса, либо перемещает часть кода программы из ее конца в начало, либо
восстанавливает файл на диске, а затем запускает его. Если вирус записался в
конец файла, то при восстановлении программы он использует информацию,
сохраненную в своем теле при заражении файла. Это может быть длина файла,
несколько байтов начала файла в случае СОМ-файла или несколько байтов заголовка
в случае ЕХЕ-файла. Если же вирус записывается в середину файла специальным
образом, то при восстановлении файла он использует еще и специальные алгоритмы.
Особые случаи
Внедрение вируса в DOS СОМ- и ЕХЕ-файлы.
Выполняемые двоичные файлы DOS имеют форматы СОМ или ЕХЕ, различающиеся
заголовком и способом запуска программ на выполнение. Расширение имени файла
(.СОМ или .ЕХЕ) не всегда соответствует действительному формату файла, что,
правда, никак не влияет на работу программы. Файлы СОМ и ЕХЕ заражаются
по-разному, следовательно, вирус должен отличать файлы одного формата от
другого. Вирусы решают эту задачу двумя способами: одни анализируют расширение
имени файла (.СОМ, .ЕХЕ), другие — заголовок файла. Первый способ далее будет
называться заражением .СОМ-файлов (или .ЕХЕ-файлов), второй — заражением
СОМ-файлов (или ЕХЕ-файлов).
В большинстве случаев вирус инфицирует файл
корректно, т. е. по информации, содержащейся в теле вируса, можно полностью
восстановить зараженный файл. Но, как и большинство программ, они часто
содержат незаметные с первого взгляда ошибки. Из-за этого даже вполне корректно
написанный вирус может необратимо испортить файл при его заражении. Например,
вирусы, различающие типы файлов по расширению имени (.СОМ, .ЕХЕ), очень опасны,
так как портят файлы, у которых расширение имени не соответствует внутреннему
формату.
Один из наиболее часто встречающихся примеров
некорректного заражения файла — COMMAND.СОМ в Windows 95. Этот файл, по сути,
является ЕХЕ-файлом, более того, имеет размер более 90 Кб, что невозможно для
СОМ-файла. Поэтому вирусы, которые различают СОМ/ЕХЕ-файлы по расширению имени
и не проверяют длины заражаемых СОМ-файлов (например, Junkie), портят такой
COMMAND.СОМ, и он становится неработоспособным.
Примитивная маскировка. При инфицировании
файла вирус может производить ряд действий, маскирующих и ускоряющих его
распространение. К подобным действиям можно отнести обработку атрибута
read-only, снятие его перед заражением и восстановление после. Многие файловые
вирусы считывают дату последней модификации файла и восстанавливают ее после
заражения. Для маскировки своего распространения некоторые вирусы перехватывают
прерывание DOS, возникающее при обращении к защищенному от записи диску (INT
24h), и самостоятельно обрабатывают его.
Скорость распространения. Говоря про
файловые вирусы, необходимо отметить такую их черту, как скорость
распространения. Чем быстрее распространяется вирус, тем вероятнее
возникновение эпидемии этого вируса. Чем медленнее распространяется вирус, тем
сложнее его обнаружить (если, конечно, этот вирус пока неизвестен антивирусным
программам). Понятия "быстрого" и "медленного" вируса (Fast
infector, Slow infector) являются достаточно относительными и используются
только как характеристика вируса при его описании.
Нерезидентные вирусы часто являются медленными —
большинство из них при запуске заражает один или два-три файла и не успевает
заполонить компьютер до запуска антивирусной программы (или появления новой
версии антивируса, настроенной на данный вирус). Существуют, конечно,
нерезидентные быстрые вирусы, которые при запуске ищут и заражают все
выполняемые файлы, однако такие вирусы очень заметны: при запуске каждого
зараженного файла компьютер некоторое (иногда достаточно длительное) время
активно работает с винчестером, что демаскирует вирус.
Скорость резидентных вирусов обычно выше, чем у
нерезидентных, — они заражают файлы при каких-либо обращениях к ним. В
результате на диске оказываются зараженными все или почти все файлы, которые
постоянно используются в работе.
Скорость распространения резидентных файловых
вирусов, заражающих файлы только при их запуске на выполнение, будет ниже, чем
у вирусов, заражающих файлы и при их открытии, переименовании, изменении
атрибутов файла и т. д. Многие вирусы при создании своей копии в оперативной
памяти компьютера пытаются занять область памяти с самыми старшими адресами,
разрушая временную часть командного интерпретатора COMMAND.COM. По окончании
работы зараженной программы временная часть интерпретатора восстанавливается,
при этом происходит открытие файла COMMAND.COM и, если вирус заражает файлы при
их открытии, его заражение. Таким образом, при запуске подобного вируса первым
будет заражен файл COMMAND.COM.
Загрузочные
вирусы
Загрузочные вирусы заражают загрузочный (boot)
сектор гибкого диска и boot-сектор или Master Boot Record (MBR) винчестера.
Принцип действия загрузочных вирусов основан на алгоритмах запуска ОС при
включении или перезагрузке компьютера: после необходимых тестов установленного
оборудования (памяти, дисков и т. д.) программа системной загрузки считывает
первый физический сектор загрузочного диска и передает управление на А:, С: или
CD-ROM, в зависимости от параметров, установленных в BIOS Setup.
В случае дискеты или CD-диска управление получает
boot-сектор диска, который анализирует таблицу параметров диска (ВРВ — BIOS
Parameter Block), высчитывает адреса системных файлов ОС, считывает их в память
и запускает на выполнение. Системными файлами обычно являются MSDOS.SYS и
IO.SYS, либо IBMDOS.COM и IBMBIO.COM, либо другие в зависимости от
установленной версии DOS, и/или Windows, или других ОС. Если же на загрузочном
диске отсутствуют файлы операционной системы, программа, расположенная в
boot-секторе диска, выдает сообщение об ошибке и предлагает заменить
загрузочный диск.
В случае винчестера управление получает
программа, расположенная в MBR винчестера. Она анализирует таблицу разбиения
диска (Disk Partition Table), вычисляет адрес активного boot-сектора (обычно
этим сектором является boot-сектор диска С:), загружает его в память и передает
на него управление. Получив управление, активный boot-сектор винчестера
проделывает те же действия, что и boot-сектор дискеты.
При заражении дисков загрузочные вирусы подставляют
свой код вместо какой-либо программы, получающей управление при загрузке
системы. Принцип заражения, таким образом, одинаков во всех описанных выше
способах: вирус "заставляет" систему при ее перезапуске считать в
память и отдать управление не оригинальному коду загрузчика, а коду вируса.
Макровирусы
Макровирусы (macro viruses) являются программами
на языках (макроязыках), встроенных в некоторые системы обработки данных
(текстовые редакторы, электронные таблицы и т. д.). Для своего размножения
такие вирусы используют возможности макроязыков и при их помощи переносят себя
из одного зараженного файла (документа или таблицы) в другие. Наибольшее
распространение получили макровирусы для Microsoft Word, Excel и Office 97.
Для существования вирусов в конкретной системе
необходимо наличие встроенного в систему макроязыка с возможностями:
1) привязки программы на макроязыке к конкретному
файлу;
2) копирования макропрограмм из одного файла в
другой;
3) получения управления макропрограммой без
вмешательства пользователя (автоматические или стандартные макросы).
Данным условиям удовлетворяют редакторы Microsoft
Word, Office 97 и AmiPro, а также электронная таблица Excel. Эти системы
содержат в себе макроязыки (Word — Word Basic, Excel и Office 97 — Visual Basic),
a также:
1) макропрограммы привязаны к конкретному файлу
(AmiPro) или находятся внутри файла (Word, Excel, Office 97);
2) макроязык позволяет копировать файлы (AmiPro)
или перемещать макропрограммы в служебные файлы системы и редактируемые файлы
(Word, Excel, Office 97);
3) при работе с файлом при определенных условиях
(открытие, закрытие и т. д.) вызываются макропрограммы (если таковые есть),
которые определены специальным образом (AmiPro) или имеют стандартные имена
(Word, Excel, Office 97).
Эта особенность макроязыков предназначена для
автоматической обработки данных в больших организациях или в глобальных сетях и
позволяет организовать так называемый "автоматизированный
документооборот". С другой стороны, возможности макроязыков таких систем
позволяют вирусу переносить свой код в другие файлы и заражать их.
На сегодняшний день известны четыре системы, для
которых существуют вирусы, — Microsoft Word, Excel, Office 97 и AmiPro. В этих
системах вирусы получают управление при открытии или закрытии зараженного
файла, перехватывают стандартные файловые функции и затем заражают файлы, к
которым каким-либо образом идет обращение. По аналогии с MS-DOS можно сказать,
что большинство макровирусов являются резидентными: они активны не только в
момент открытия/закрытия файла, но до тех пор, пока активен сам редактор.
Word-, Excel-, Office 97-вирусы
Общие сведения. Физическое расположение
вируса внутри файла зависит от его формата, который в случае продуктов
Microsoft чрезвычайно сложен. Все файлы-документы Word, Office 97 или таблицы
Excel представляют собой последовательность блоков данных (каждый из которых
также имеет свой формат), объединенных между собой при помощи большого
количества служебных данных. Этот формат носит название OLE2 —
Object Linking and Embedding. Структура файлов Word, Excel и Office 97
напоминает усложненную дисковую файловую систему DOS: "корневой
каталог" файла-документа или таблицы указывает на основные подкаталоги
различных блоков данных, несколько таблиц FAT содержат информацию о расположении
блоков данных в документе и т. д.
Более того, система Office Binder, поддерживающая
стандарты Word и Excel позволяет создавать файлы, одновременно содержащие один
или несколько документов в формате Word и одну или несколько таблиц в формате Excel.
При этом Word-вирусы способны поражать Word-документы, a Excel-вирусы —
Excel-таблицы, и все это возможно в пределах одного дискового файла. То же
справедливо и для Office 97. Вирусы для Word могут заражать компьютеры любого
класса, а не только IBM PC. Заражение возможно в том случае, если на данном
компьютере установлен текстовый редактор, полностью совместимый с Microsoft
Word версии 6 или 7 (например, MS Word for Macintosh). To же справедливо для
Excel и Office 97.
Следует также отметить, что сложные форматы
документов Word, таблиц Excel и особенно Office 97 имеют следующую особенность:
в файлах-документах и таблицах присутствуют "лишние" блоки данных, т.
е. данные, которые никак не связаны с редактируемым текстом или таблицами либо
являются случайно оказавшимися там копиями прочих данныу файла. Причиной
возникновения таких блоков данных является кластерная организация данных в
ОЕЕ2-документах и таблицах, так как даже если введен всего один символ текста,
то под него выделяется один, а иногда и несколько кластеров данных. При
сохранении документов и таблиц в кластерах, не заполненных
"полезными" данными, остается "мусор", который попадает в
файл вместе с прочими данными. Количество "мусора" в файлах может
быть уменьшено отменой пункта настройки в Word и Excel "Allow Fast
Save", однако это лишь уменьшает общее количество "мусора", но
не убирает его полностью.
Следствием этого является тот факт, что при
редактировании документа его размер изменяется вне зависимости от производимых
с ним действий: при добавлении нового текста размер файла может уменьшиться, а
при удалении части текста — увеличиться. То же и с макровирусами: при заражении
файла его размер может уменьшиться, увеличиться или остаться неизменным.
Следует также отметить тот факт, что некоторые
версии OLE2.DLL содержат небольшой недочет, в результате которого при работе с
документами Word, Excel и особенно Office 97 в блоки "мусора" могут
попасть случайные данные с диска, включая конфиденциальные (удаленные файлы,
каталоги и т. д.).
Принципы работы. При работе с документом
Word версий 6 и 7 выполняет различные действия: открывает документ, сохраняет,
печатает, закрывает и т. д. При этом Word ищет и выполняет соответствующие
"встроенные макросы": при сохранении файла по команде File/Save вызывается
макрос FileSave, при сохранении по команде File/SaveAs — File-SaveAs, при
печати документов — FilePrint и т. д., если, конечно, таковые макросы
определены.
Существует также несколько автомакросов,
автоматически вызываемых при различных условиях. Например, при открытии
документа Word проверяет его на наличие макроса AutoOpen. Если такой макрос
присутствует, то Word выполняет его. При закрытии документа Word выполняет
макрос AutoClose, при запуске Word вызывается макрос AutoExec, при завершении
работы — AutoExit, при создании нового документа — AutoNew.
Похожие механизмы (но с другими именами макросов
и функций) используются в Excel и Office 97, в которых роль авто- и встроенных
макросов выполняют авто- и встроенные функции, имеющиеся в каком-либо макросе
или макросах, причем в одном макросе может присутствовать несколько встроенных
и автофункций.
Таким образом, к автоматическим макросам/функциям
относятся:
Word
|
Excel
|
Office 97
|
AutuOpen AutoClose
|
Auto0pen Auto Close
|
Document0pen Document Close
|
AutoExec
|
|
|
AutoExit
|
|
|
AutoNew
|
Document New
|
|
|
|
AutoDeactivate
|
Имена некоторых стандартных макросов Word (даны
имена в различных локализованных версиях Word) приведены ниже:
Английский
|
Датский
|
Голландский
|
Финский
|
Fik'New FileOpen FileClose
FilcSave FileSaveAs FilcTemplates ToolsMacro
|
FilerNyt Filer+bn FilerLuk
FilerGem FilerGemSom FilerSkabeloner FunkMakro
|
BestandNieuw BestandOpenen
BestandSluiten BestandOpslaan BestandOpslaanAls BestandSjablonen ExtraMacro
|
TiedostoUusi TiedostoAvaa
TiedostoSulje TiedostoTallenna TiedostoTallennaNimellf TiedostoMallit
TyJkalutMakro
|
Французский
|
Немецкий
|
Итальянский
|
|
FichierNouveau FichierOuvrir
FichierFermer FichierEnregistrer FichierEnregistrerSous FichierModules
OutilsMacro
|
DateiNeu Dateiffnen
DateiSchlie-en DateiSpeichern DateiSpeichernUnter DateiDokVorlagen
ExtrasMakro
|
FileNuovo FileApri FileChiudi
FileSalva FileSalvaConNome FileModelli Strum Macro
|
|
Португальский
|
Испанский
|
Шведский
|
Бразильский
|
FicheiroNovo , FicheiroAbrir FicheiroFechar FicheiroGuardar
FicheiroGuardarComo FicheiroModelos FerrameiitasMacro
|
ArchivoNuevo ArchivoAbrir
ArchivoCerrar ArchivoGuardar ArchivoGuardarComo ArchivoPlantillas HerramMacro
|
ArkivNytt Arkivrppna ArkivStфпg
ArkivSpara ArkivSparaSom ArkivMallar VerktygMakro
|
ArquivoNovo ArquivoAbrir
ArquivoFechar ArquivoSalvar ArquivoSalvarComo ArquivoModelos FerramMacro
|
Автоматически (т. е. без участия пользователя)
выполняются также макросы/функции, ассоциированные с какой-либо клавишей либо
моментом времени или датой, т. е. Word и Excel вызывают макрос-функцию при
нажатии на конкретную клавишу (или комбинацию клавиш) либо при достижении
какого-либо момента времени. В Office 97 возможности по перехвату событий
несколько расширены, но принцип используется тот же.
Макровирусы, поражающие файлы Word, Excel или
Office 97, как правило, пользуются одним из трех приемов, перечисленных выше: в
вирусе либо присутствует автомакрос (автофункция), либо переопределен один из
стандартных системных макросов (ассоциированный с каким-либо пунктом меню),
либо макрос вируса вызывается автоматически при нажатии на какую-либо клавишу
или комбинацию клавиш. Существуют также полувирусы, которые не используют всех
этих приемов и размножаются, только когда пользователь самостоятельно запускает
их на выполнение.
Таким образом, если документ заражен, при его
открытии Word вызывает зараженный автоматический макрос AutoOpen (или AutoClose
при закрытии документа) и запускает код вируса, если это не запрещено системной
переменной DisableAutoMacros. Если вирус содержит макросы со стандартными
именами, они получают управление при вызове соответствующего пункта меню (File/Open, File/Close,
File/SaveAs). Если же переопределен какой-либо символ клавиатуры, то
вирус активизируется только после нажатия на соответствующую клавишу.
Большинство макровирусов содержат все свои
функции в виде стандартных макросов Word, Excel, Office 97. Существуют, однако,
вирусы, скрывающие свой код и хранящие его в виде немакросов. Известно три
подобных приема, все они используют возможность макросов создавать,
редактировать и исполнять другие макросы. Как правило, подобные вирусы имеют
небольшой (иногда — полиморфный) макрос — загрузчик вируса, который вызывает
встроенный редактор макросов, создает новый макрос, заполняет его основным
кодом вируса, выполняет и затем, как правило, уничтожает (чтобы скрыть следы
присутствия вируса). Основной код таких вирусов находится либо в самом макросе
вируса в виде текстовых строк (иногда — зашифрованных), либо хранится в области
переменных документа или в области Auto-text.
Алгоритм работы Word-макровирусов
Большинство известных Word-вирусов (версий 6, 7 и
Word 97) при запуске переносят свой код (макросы) в область глобальных макросов
документа ("общие" макросы), для этого они используют команды
копирования макросов MacroCopy, Organizer. Сору либо при помощи редактора макросов.
Вирус вызывает его, создает новый макрос, вставляет в него свой код, который и
сохраняет в документе.
При выходе из Word глобальные макросы (включая
макросы вируса) автоматически записываются в DOT-файл глобальных макросов
(обычно это NORMAL.DOT). Таким образом, при следующем запуске Word вирус
активизируется в тот момент, когда WinWord грузит глобальные макросы, т. е.
сразу.
Затем вирус переопределяет (или уже содержит в
себе) один или несколько стандартных макросов (например, FileOpen, FileSave,
FileSaveAs, FilePrint) и перехватывает команды работы с файлами. При вызове
этих команд вирус заражает файл, к которому идет обращение. Для этого вирус
конвертирует файл в формат Template (что делает невозможным дальнейшие
изменения формата файла, т. е. конвертирование в какой-либо не-Template-формат)
и записывает в файл свои макросы, включая автомакрос.
Таким образом, если вирус перехватывает макрос
FileSaveAs, то заражается каждый DOC-файл, сохраняемый через перехваченный
вирусом макрос. Если перехвачен макрос FileOpen, то вирус записывается в файл
при его считывании с диска.
Второй способ внедрения вируса в систему
используется значительно реже. Он базируется на так называемых Add-in-файлах,
т. е. файлах, являющихся служебными дополнениями к Word. В этом случае
NORMAL.DOT не изменяется, a Word при запуске загружает макросы вируса из файла
(или файлов), определенного как Add-in. Этот способ практически полностью
повторяет заражение глобальных макросов за тем исключением, что макросы вируса
хранятся не в NORMAL.DOT, а в каком-либо другом файле.
Возможно также внедрение вируса в файлы,
расположенные в каталоге STARTUP. Word автоматически подгружает файлы-темплейты
из этого каталога, но такие вирусы пока не встречались.
Рассмотренные выше способы внедрения в систему
представляют собой некоторый аналог внедрения резидентных DOS-вирусов.
Макровирусы, которые не переносят свой код в область системных макросов можно
рассматривать аналогом нерезидентных вирусов. Для заражения других
файлов-документов они либо ищут их при помощи встроенных в Word функций работы
с файлами, либо обращаются к списку последних редактированных файлов (Recently
used file list). Затем такие вирусы открывают документ, заражают его и
закрывают.
продолжение следует...
Источник: i-net |