Главная >> Зона ПК >> Остальное >> Вирусы
Здравствуйте с вами я, D.E.L.T.A., в этом номере я расскажу вам про классические вирусы, итак:
Типы компьютерных вирусов различаются между собой по следующим основным признакам:
- среда обитания
- способ заражения
Под "средой обитания" понимаются системные области компьютера, операционные системы или приложения, в компоненты (файлы) которых внедряется код вируса. Под "способом заражения" понимаются различные методы внедрения вирусного кода в заражаемые объекты.
По среде обитания вирусы можно разделить на четыре группы:
- файловые
- загрузочные
- макро
- скриптовые
Файловые вирусы при своем размножении тем или иным способом используют файловую систему какой-нибудь ОС. Они:
- различными способами внедряются в исполняемые файлы (наиболее распространенный тип вирусов)
- создают файлы-двойники
- создают свои копии в различных каталогах
- используют особенности организации файловой системы
Загрузочные вирусы записывают себя либо в загрузочный сектор диска, либо в сектор, содержащий системный загрузчик винчестера, либо меняют указатель на активный загрузочный сектор. Данный тип вирусов был достаточно распространён в 1990-х, но практически исчез с переходом на 32-битные операционные системы и отказом от использования дискет как основного способа обмена информацией. Теоретически возможно появление загрузочных вирусов, заражающих CD-диски и USB-флешек, но на текущий момент такие вирусы не обнаружены.
Файловые вирусы
По способу заражения файлов вирусы делятся на шесть групп:
- перезаписывающие
- паразитические
- вирусы-компаньоны
- вирусы-ссылки
- вирусы, заражающие объектные модули (OBJ)
- вирусы, заражающие библиотеки компиляторов (LIB)
- вирусы, заражающие исходные тексты программ
Перезаписывающие
Данный метод заражения является наиболее простым: вирус записывает свой код вместо кода заражаемого файла, уничтожая его содержимое. Естественно, что при этом файл перестает работать и не восстанавливается. Такие вирусы очень быстро обнаруживают себя, так как операционная система и приложения довольно быстро перестают работать.
Паразитические
К типу паразитических относятся все файловые вирусы, которые при распространении своих копий обязательно изменяют содержимое файлов, оставляя сами файлы при этом полностью или частично работоспособными.
Основными типами таких вирусов являются вирусы, записывающиеся в начало файлов, в конец файлов и в середину файлов. В свою очередь, внедрение вирусов в середину файлов происходит различными методами - путем переноса части файла в его конец или копирования своего кода в заведомо неиспользуемые данные файла.
Внедрение вируса в начало файла
Известны два способа внедрения паразитического файлового вируса в начало файла. Первый способ заключается в том, что вирус переписывает начало заражаемого файла в его конец, а сам копируется в освободившееся место. При заражении файла вторым способом вирус дописывает заражаемый файл к своему телу.
Таким образом, при запуске зараженного файла первым управление получает код вируса. При этом вирусы, чтобы сохранить работоспособность программы, либо лечат зараженный файл, повторно запускают его, ждут окончания его работы и снова записываются в его начало (иногда для этого используется временный файл, в который записывается обезвреженный файл), либо восстанавливают код программы в памяти компьютера и настраивают необходимые адреса в ее теле.
Внедрение вируса в конец файла
Наиболее распространенным способом внедрения вируса в файл является дописывание вируса в его конец. При этом вирус изменяет начало файла таким образом, что первыми выполняемыми командами программы, содержащейся в файле, являются команды вируса.
Для того чтобы получить управление при старте файла, вирус корректирует стартовый адрес программы (адрес точки входа). Для этого вирус производит необходимые изменения в заголовке файла.
Внедрение вируса в середину файла
Существует несколько методов внедрения вируса в середину файла. В наиболее простом из них вирус переносит часть файла в его конец или "раздвигает" файл и записывает свой код в освободившееся пространство. Этот способ во многом аналогичен методам, перечисленным выше. Некоторые вирусы при этом компрессируют переносимый блок файла так, что длина файла при заражении не изменяется.
Вторым является метод "cavity", при котором вирус записывается в заведомо неиспользуемые области файла. Вирус может быть скопирован в незадействованные области заголовок EXE-файла, в "дыры" между секциями EXE-файлов или в область текстовых сообщений популярных компиляторов. Существуют вирусы, заражающие только те файлы, которые содержат блоки, заполненные каким-либо постоянным байтом, при этом вирус записывает свой код вместо такого блока.
Кроме того, копирование вируса в середину файла может произойти в результате ошибки вируса, в этом случае файл может быть необратимо испорчен.
Вирусы без точки входа
Отдельно следует отметить довольно незначительную группу вирусов, не имеющих "точки входа". К ним относятся вирусы, не изменяющие адрес точки старта в заголовке EXE-файлов. Такие вирусы записывают команду перехода на свой код в какое-либо место в середину файла и получают управление не непосредственно при запуске зараженного файла, а при вызове процедуры, содержащей код передачи управления на тело вируса. Причем выполняться эта процедура может крайне редко (например, при выводе сообщения о какой-либо специфической ошибке). В результате вирус может долгие годы "спать" внутри файла и выскочить на свободу только при некоторых ограниченных условиях.
Перед тем, как записать в середину файла команду перехода на свой код, вирусу необходимо выбрать "правильный" адрес в файле - иначе зараженный файл может оказаться испорченным. Известны несколько способов, с помощью которых вирусы определяют такие адреса внутри файлов, например, поиск в файле последовательности стандартного кода, заголовков процедур языков программирования, дизассемблирование кода файла или замена адресов импортируемых функций.
Вирусы-компаньоны
К категории "компаньоны" относятся вирусы, не изменяющие заражаемых файлов. Алгоритм работы этих вирусов состоит в том, что для заражаемого файла создается файл-двойник, причем при запуске зараженного файла управление получает именно этот двойник, т. е. вирус.
К вирусам данного типа относятся те из них, которые при заражении переименовывают файл в какое-либо другое имя, запоминают его (для последующего запуска файла-хозяина) и записывают свой код на диск под именем заражаемого файла. Например, файл NOTEPAD.EXE переименовывается в NOTEPAD.EXD, а вирус записывается под именем NOTEPAD.EXE. При запуске управление получает код вируса, который затем запускает оригинальный NOTEPAD.
Возможно существование и других типов вирусов-компаньонов, использующих иные оригинальные идеи или особенности других операционных систем. Например, PATH-компаньоны, которые размещают свои копии в основном каталоге Windows, используя тот факт, что этот каталог является первым в списке PATH, и файлы для запуска Windows в первую очередь будет искать именно в нем. Данными способом самозапуска пользуются также многие компьютерные черви и троянские программы.
Скрипт-вирусы
Следует отметить также скрипт-вирусы, являющихся подгруппой файловых вирусов. Данные вирусы, написаны на различных скрипт-языках. Они либо заражают другие скрипт-программы, либо являются частями многокомпонентных вирусов. Также, данные вирусы могут заражать файлы других форматов, если в них возможно выполнение скриптов.
Загрузочные вирусы
Известные на текущий момент загрузочные вирусы заражают загрузочный сектор гибкого диска и винчестера. Принцип действия загрузочных вирусов основан на алгоритмах запуска операционной системы при включении или перезагрузке компьютера - после необходимых тестов установленного оборудования, программа системной загрузки считывает первый физический сектор загрузочного диска и передает на него управление.
При заражении дисков загрузочные вирусы "подставляют" свой код вместо какой-либо программы, получающей управление при загрузке системы. Принцип заражения, таким образом, одинаков во всех описанных выше способах: вирус "заставляет" систему при ее перезапуске считать в память и отдать управление не оригинальному коду загрузчика, но коду вируса.
Заражение дискет производится единственным известным способом - вирус записывает свой код вместо оригинального кода загрузочного сектора дискеты. Винчестер заражается тремя возможными способами - вирус записывается либо вместо кода MBR, либо вместо кода загрузочного сектора загрузочного диска, либо модифицирует адрес активного загрузочного сектора в таблице разделов диска, расположенной в MBR винчестера.
При инфицировании диска вирус в большинстве случаев переносит оригинальный загрузочного сектор (или MBR) в какой-либо другой сектор диска. Если длина вируса больше длины сектора, то в заражаемый сектор помещается первая часть вируса, остальные части размещаются в других секторах.
Прочие способы заражения
Существуют вирусы, которые никоим образом не связывают свое присутствие с каким-либо выполняемым файлом. При размножении они всего лишь копируют свой код в какие-либо каталоги дисков в надежде, что эти новые копии будут когда-либо запущены пользователем. Иногда эти вирусы дают своим копиям "специальные" имена, чтобы подтолкнуть пользователя на запуск своей копии - например, INSTALL.EXE или WINSTART.BAT.
Некоторые вирусы записывают свои копии в архивы (ARJ, ZIP, RAR). Другие записывают команду запуска зараженного файла в BAT-файлы.
Link-вирусы также не изменяют физического содержимого файлов, однако при запуске зараженного файла "заставляют" ОС выполнить свой код. Этой цели они достигают модификацией необходимых полей файловой системы.
Макро-вирусы
Наибольшее распространение получили макро-вирусы для Microsoft Office (Word, Excel и PowerPoint), хранящих информацию в формате OLE2. Вирусы в прочих приложениях достаточно редки.
Физическое расположение вируса внутри файла MS Office зависит от его формата, который в случае продуктов Microsoft чрезвычайно сложен - каждый файл-документ Word, Office97 или таблица Excel представляют собой последовательность блоков данных (каждый из которых также имеет свой формат), объединенных между собой при помощи большого количества служебных данных. По причине такой сложности форматов файлов Word, Excel и Office97 представить расположение макро-вируса в файле можно лишь схематично:
Незараженный файл-документ или таблица |
Вирус в файле-документе или таблице |
Заголовок файла |
Заголовок файла |
Служебные данные (каталоги, FAT) |
Служебные данные (каталоги, FAT) |
Текст |
Текст |
Шрифты |
Шрифты |
Макросы (если есть) |
Макросы (если есть) |
- |
Макросы вируса |
Прочие данные |
Прочие данные |
При работе с документами и таблицами MS Office выполняет различные действия: открывает документ, сохраняет, печатает, закрывает и т.д. При этом MS Word, например, ищет и выполняет соответствующие "встроенные макросы" - при сохранении файла по команде File/Save вызывается макрос FileSave, при сохранении по команде File/SaveAs - FileSaveAs, при печати документов - FilePrint и т.д., если, конечно, таковые макросы определены.
Существует также несколько "автомакросов", автоматически вызываемых при различных условиях. Например, при открытии документа MS Word проверяет его на наличие макроса AutoOpen. Если такой макрос присутствует, то Word выполняет его. При закрытии документа Word выполняет макрос AutoClose, при запуске Word вызывается макрос AutoExec, при завершении работы - AutoExit, при создании нового документа - AutoNew. Автоматически (т.е. без участия пользователя) выполняются также макросы/функции, ассоциированные с какой-либо клавишей либо моментом времени или датой, т.е. MS Word/Excel вызывают макрос/функцию при нажатии на какую-либо конкретную клавишу (или комбинацию клавиш) либо при достижении какого-либо момента времени.
Макро-вирусы, поражающие файлы MS Office, как правило, пользуются одним из перечисленных выше приемов - в вирусе либо присутствует авто-макрос (авто-функция), либо переопределен один из стандартных системных макросов (ассоциированный с каким-либо пунктом меню), либо макрос вируса вызывается автоматически при нажатии на какую-либо клавишу или комбинацию клавиш. Получив управление, макро-вирус переносит свой код в другие файлы, обычно в файлы, которые редактируются в данный момент. Реже макро вирусы самостоятельно ищут другие файлы на диске.
Спасибо за внимание с вами был , в следующем номере я расскажу Вам о Троянских программах.
|