Лекция

доцента кафедры ИВТ Гродненского госуниверситета

канд. техн. наук  Ливак Елены Николаевны

Современные компьютерные вирусы

Конспект подготовлен по материалам

1.      Е. Касперский. Компьютерные вирусы // www.viruslist.com/viruslistbooks.html

2.      Большая вирусная энциклопедия // www.viruslist.com/viruslist.html

 

Макровирусы

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

1)     привязка программы на макроязыке к конкретному файлу;

2)     копирование макропрограмм (далее макросов) из одного файла в другой;

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

Данным условиям удовлетворяют редакторы Microsoft Word и AmiPro, а также редактор электронных таблиц Excel. Эти системы содержат в себе макроязыки (Word - Word Basic, Excel - Visual Basic).

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

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

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

Макровирусы активны не только в момент открытия/закрытия файла, но до тех пор, пока активен сам редактор.

Word/Excel-вирусы

При работе с документом Word (так же как и Excel) выполняет различные действия - открывает документ, сохраняет, печатает, закрывает и т.д. При этом Word ищет и выполняет соответствующие макросы - при сохранении файла вызывается макрос FileSave, при сохранении по команде File/SaveAs - FileSaveAs, при печати документов - FilePrint и т.д. если, конечно, таковые макросы определены. При открытии документа Word проверяет его на наличие макроса AutoOpen. Если такой макрос присутствует, то Word выполняет его. При закрытии документа Word выполняет макрос AutoClose.

Вирусы семейства Macro.Word содержат в себе как минимум один из автоматических макросов (AutoOpen, AutoClose, AutoExec, AutoExit, AutoNew) или один из стандартных макросов (FileOpen, FileClose, FileSaveAs и т.д.). Если документ заражен, то при открытии документа Word вызывает зараженный автоматический макрос AutoOpen (или AutoClose при закрытии документа) и, таким образом, запускает код вируса, если это не запрещено системной переменной DisableAutoMacros. Если же вирус содержит макросы со стандартными именами, то они получают управление при вызове соответствующего пункта меню (File/Open, File/Close, File/SaveAs).

Во всех известных вирусах семейства Macro.Word макросы AutoOpen/AutoClose и (или) макросы со стандартными именами содержат команды переноса макросов вируса в область глобальных (общих) макросов Word, т.е. при запуске Auto-макроса или при вызове соответствующей стандартной функции вирус заражает область глобальных макросов. При выходе из Word глобальные макросы (включая макросы вируса) автоматически записываются в DOT-файл глобальных макросов (обычно таким файлом является NORMAL.DOT). Таким образом, при следующем запуске Word’а вирус активизируется в тот момент, когда Word грузит глобальные макросы, т.е. сразу.

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

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

Следует отметить, что Word позволяет шифровать присутствующие в документе макросы. Таким образом, некоторые Macro.Word-вирусы присутствуют в зараженных документах в зашифрованном виде.

Характерными проявлениями вирусов семейства Macro.Word являются следующие.

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

2.      Невозможность записи документа в другой каталог/на другой диск командой "Save As".

3.      Зараженные файлы имеют формат Template. При заражении вирусы WinWord конвертируют файлы из формата Word Document в Template.

Защита от макровирусов

Существует несколько приемов и встроенных в Word/Excel функций, направленных на предотвращение запуска вируса. Наиболее действенной из них является защита от вирусов, встроенная в Word и Excel (начиная с версий 7.0a). Эта защита при открытии файла, содержащего любой макрос, сообщает о его присутствии и предлагает запретить этот макрос. В результате макрос не только не выполняется, но и не виден средствами Word/Excel.

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

Частично защититься от вирусов Macro.Word можно при помощи системного макроса DisableAutoMacros, который запрещает автоматический запуск Auto-макросов при работе с файлами. Однако при этом не запрещается макрос AutoExec и не запрещается запуск макросов со стандартными именами. И поэтому DisableAutoMacros блокирует только те вирусы, которые для своего распространения используют один из авто-макросов.

Запуск Word с опцией /M (или с нажатой клавишей Shift) отключает только один макрос AutoExec и таким образом также не может служить надежной защитой от вируса.

Java-вирусы

Написаны на языке программирования Java и представляют из себя стандартные Java-программы. Заражают приложения Java (Java applications).  Размножаются, если зараженный файл запустить как дисковую Java-программу (application) при помощи Java-машины.

Первый известный вирус, заражающий приложения Java, обнаружен в августе 1998 года.

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

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

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

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

Заметим, что разделение кода вируса на две части: «стартер – вирус» позволяет автору вируса "апгрейдить" его код и заражать удаленные компьютеры новыми версиями вируса.

Скрипт-вирусы

Скрипт-вирусы являются скрипт-программами на языке PHP. Они заражают  файлы с расширением .php (иногда и .htm). Записываются в начало или в конец файлов (иногда только ссылку на свой код).

Вирусы работоспособны только в системах с установленным PHP-нтерпретатором.

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

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

При открытии зараженного файла скрипт-машина PHP обрабатывает команду "include", считывает код вируса из указанного файла и выполняет его.

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

 

Вирусы-"черви" (worm)
 

Вирусы, которые распространяются в компьютерной сети.

Они не изменяют файлы или секторы на дисках.

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

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

Файловые черви

Файловые черви (worms) при размножении копируют свой код в какие-либо каталоги дисков в надежде, что эти новые копии будут когда-либо запущены пользователем. Иногда эти вирусы дают своим копиям "специальные" имена, чтобы подтолкнуть пользователя на запуск своей копии - например, INSTALL.EXE или WINSTART.BAT.

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