Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Внедрение вируса в конец файла




Наиболее распространенный случай (до 95%) - внедрение вируса в файл дописыванием в конец этого файла (appending). При этом вирус обязательно изменяет начало файла таким образом, чтобы управление сразу передавалось на тело вируса.

У COM-файла вирус изменяет первые три байта (иногда больше)

а) либо на коды инструкции “Jmp адрес вируса” (это команда перехода на тело вируса);

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

Оригинальные три байта начала файла вирус обязательно считывает и сохраняет.

У EXE-файла

а) модифицируется его заголовок. В заголовке изменяются

· значение стартового адреса

· значение длины выполняемого файла

· регистры - указатели на стек (редко)

· контрольная сумма файла (редко);

б) иногда EXE-файл переводится в формат COM и затем заражается как COM-файл.

 

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

 

МАСКИРОВКА ВИРУСОВ

Основная задача вируса - распространение. И поэтому вирусу необходимо как можно дольше скрывать свое присутствие в системе, ведь чем дольше он будет оставаться незамеченным, тем дальше он сможет распространиться.

Вирусы скрывают свое присутствие по-разному.

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

а) многие вирусы проявляются в один или некоторые определенные дни;

б) другие вирусы ставят свое проявление в зависимость от случайностей всевозможного рода. Например, только если значение минут таймера меньше N; или проверяет отсутствие ввода с клавиатуры в течение N минут; vмногие загрузочные вирусы любят уничтожать секторы дисков, вычисляя вероятность (1/8 или 1/16);

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

 

Иногда авторы вирусов заменяют некоторые компоненты операционной системы, например, прерывания, драйверы так, что программа-вирус становится невидимой для других программ. Такие вирусы называются вирусами-невидимками, или стелс-вирусами (Stealth - невидимка).

Stealth-вирусы всегда резидентны. Резидентный модуль перехватывает обращение операционной системы к пораженным файлам или секторам дисков и “подставляет” вместо них исходные объекты.

 

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

 

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

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

С понятием компьютерного вируса тесно связанодругое понятие - сигнатура.

 

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

 

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

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

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

Шифрующиеся вирусы называют иногда вирусами-”призраками”.

Итак, шифрующиеся вирусы скрывают сигнатуру своего кода

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

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

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

В последнее время авторы компьютерных вирусов “вывели” самые современные виды вирусов, в которых нет ни одного постоянного БИТА информации. Это достигается перестановкой команд расшифровщика, разбавлениями ничего не значащими командами типа NOP, STI, CLI, STC, CLC и т.д. и т.п. В результате в начале файла, зараженного подобным образом, идет набор бессмысленных на первый взгляд команд, и среди них изредка проскальзывают рабочие команды.

На настоящий момент известно огромное количество полиморфных вирусов.

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

· Mutation Engine (MtE-вирусы),

· AWME (Anti WEB Mutation Engine).

· CLME (Crazy Lord Mutation Engine),

· DSCE (Dark Slayer Confusion Engine),

· GCAE (Golden Cicada Abnormal Engine),

· NED (NUKE Encription Device),

· SMEG (Simulated Metamorfic Encription Generator),

· TPE (Trident Polymorfic Engine),

· VICE (Virogen’s Irreguar Code Engine).

 

 

Макровирусы

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

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

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

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

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

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

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

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-программу при помощи Java-машины.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Существуют вирусы-черви, использующие довольно необычные приемы, например, записывающие свои копии в архивы (ARJ, ZIP и прочие). Некоторые вирусы записывают команду запуска зараженного файла в BAT-файлы.

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

Вирусы - "черви" (worms), или Сетевые вирусы

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

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

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

Наибольшую известность приобрели сетевые вирусы конца 1980-х, их также называют сетевыми червями (worms). К ним относятся вирус Морриса, вирусы "Cristmas Tree" и "Wank Worm&". Для своего распространения они использовали ошибки и недокументированные функции глобальных сетей того времени - вирусы передавали свои копии с сервера на сервер и запускали их на выполнение. После нескольких эпидемий сетевых вирусов ошибки в сетевых протоколах и программном обеспечении были исправлены, а "задние двери" закрыты.

Вновь проблема сетевых вирусов возникла лишь в начале 1997-го года с появлением вирусов "Macro.Word.ShareFun" и "Win.Homer". Первый из них использует возможности электронной почты Microsoft Mail - он создает новое письмо, содержащее зараженный файл-документ ("ShareFun" является макро-вирусом), затем выбирает из списка адресов MS-Mail три случайных адреса и рассылает по ним зараженное письмо. Поскольку многие пользователи устанавливают параметры MS-Mail таким образом, что при получении письма автоматически запускается MS Word, то вирус "автоматически" внедряется в компьютер адресата зараженного письма.

Этот вирус иллюстрирует первый тип современных сетевых вирусов, которые объединяют возможности встроенного в Word/Excel языка Basic, протоколы и особенности электронной почты и функции автозапуска, необходимые для распространения вируса.

Второй вирус ("Homer") использует для своего распространения протокол FTP (File Trabsfer Protocol) и передает свою копию на удаленный ftp-сервер в каталог Incoming. Поскольку сетевой протокол FTP исключает возможность запуска файла на удаленном сервере, этот вирус можно охарактеризовать как "полусетевой", однако это реальный пример возможностей вирусов по использованию современных сетевых протоколов и поражению глобальных сетей.

Возможны, конечно же, и другие способы проникновения вирусов в современные сети.

 

МЕТОДЫ И СРЕДСТВА

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...