Позднее вирусы стали хитрее – они научились маскироваться, запрятывая свой программный код в таких потаённых уголках, до которых, как им казалось, ни один антивирус добраться не мог. Поначалу – действительно, не добирались. Потому и назывались такие вирусы «невидимками» (stealth).
Казалось, фантазия вирусописателей наконец-то истощилась. И когда против stealth-вирусов было наконец-то найдено «противоядие», компьютерный народ вздохнул с облегчением. А всё ещё только начиналось…
2.2.Классификация вирусов
2.2.1.Вирусы-программы (W32)
Со временем вирусы, прятавшие свой код в теле других программ, сдали свои позиции. Во многом это произошло из-за того, что размеры самих вирусов стали больше – а спрятать код размером в сотни килобайт не так-то просто. Да и сами программы и операционные системы резко поумнели, научившись проверять целостность собственных файлов.
В итоге произошло то, что и должно было случиться – «исполняемые» вирусы перестали маскироваться, представ перед публикой в «чистом» виде. Вирус превратился в абсолютно отдельную, независимую программу, не нуждающуюся в «хозяине-переносчике». Однако сразу же перед вирусописателями встал другой вопрос – а как заставить пользователей скачать и запустить у себя на машине этот самый вирус?
«Программные» вирусы, написанные для операционной системы Windows, решили эту проблему, маскируясь под разные «полезные» утилиты – например, под «ломалки» для условно-бесплатных программ или мультимедийные презентации. Другой излюбленный приём распространителей заразы – наряжать свои детища в «одежду» обновлений для операционной системы или даже… антивирусной программы! Увы, до сих пор многие пользователи, не задумываясь, запускают неизвестные программы, пришедшие в виде вложений в электронные письма якобы от Microsoft или «Лаборатории Касперского» - а ведь это самый верный путь поселить на свой компьютер вирус!
Большинство вирусов люди запускают на своём компьютере самостоятельно! – увы, несмотря на все усилия борцов с вирусами, некие стереотипы человеческой психологии оказываются непреодолимыми…
В 1995-1999 гг. на просторах Интернета весело развивалась добрая сотня «Windows-совместимых» вирусов. Эти милые зверушки, понятно, развились не просто так… Только за период лета 1998 – лета 1999 г. Мир пережил несколько поистине разрушительных вирусных атак: в результате деятельности вируса Win95.CIH, поражающего BIOS системной платы, из строя были выведены около миллиона компьютеров во всех странах мира.
Сообщение об ошибке – результат работы вируса Blaster |
А совсем недавно, в середине 2003г., Сеть оказалась поражена новым «червем» SoBig, распространявшимся в виде вложения в электронные письма. Несмотря на то, что о вредоносных «вложениях» уже давно трубила вся пресса, люди запускали файл-вирус без малейших опасений. И вот результат: по данным аналитиков, в начале 2003 г. каждое 17-е письмо содержало в себе начинку в виде SoBig!
Впрочем, некоторые вирусы способны атаковать ваш компьютер даже в том случае, если его «тело» физически находится в другом месте. Например, один из самых «модных» вирусов 2003 г. – Blaster – был способен атаковать все компьютеры в локальной сети с одной-единственной машины! Сканируя локальную сеть, программа обнаруживала бреши в защите каждого компьютера, и самостоятельно пропихивала в эту «дырочку» вредоносный код.
Для борьбы с W32-вирусами одной антивирусной программы, увы, недостаточно – главным условием вашей безопасности является обязательная и регулярная загрузка обновлений к Windows. А именно – файлов-«заплаток», предназначенных для закрытия уже обнаруженных «дыр» в системе защите операционной системы.
Для получения новых «заплаток» вам необходимо навестить центр обновления Windows – сайт WindowsUpdate (http://windowsupdate.microsoft.com). При этом совершенно не обязательно набирать этот адрес в строке браузера вручную – достаточно зайти в меню Сервис программы InternetExplorer и выбрать пункт WindowsUpdate.
На открывшейся страничке вы увидите полный список обновлений, доступных для загрузки. Учтите – все обновления из раздела «Критические обновления» необходимо устанавливать в обязательном порядке!
Посещайте сайт WindowsUpdate не реже раза в месяц, регулярно обновляйте базы данных вашего антивирусного пакета – и можете считать, что от львиной доли неприятностей вы застрахованы…
2.2.2.Загрузочные вирусы
Известные на текущий момент загрузочные вирусы заражают загрузочный (boot) сектор гибкого диска и boot-сектор или Master Boot Record (MBR) винчестера. Принцип действия загрузочных вирусов основан на алгоритмах запуска операционной системы при включении или перезагрузке компьютера — после необходимых тестов установленного оборудования (памяти, дисков и т.д.) программа системной загрузки считывает первый физический сектор загрузочного диска (A:, C: или CD-ROM в зависимости от параметров, установленных в BIOS Setup) и передает на него управление.
При заражении дисков загрузочные вирусы «подставляют» свой код вместо какой-либо программы, получающей управление при загрузке системы. Принцип заражения, таким образом, одинаков во всех описанных выше способах: вирус «заставляет» систему при ее перезапуске отдать управление не оригинальному коду загрузчика, а коду вируса.
Заражение дискет производится единственным известным способом — вирус записывает свой код вместо оригинального кода boot-сектора дискеты. Винчестер заражается тремя возможными способами — вирус записывается либо вместо кода MBR, либо вместо кода boot-сектора загрузочного диска (обычно диска C:), либо модифицирует адрес активного boot-сектора в таблице разделов диска (Disk Partition Table), расположенной в MBR винчестера.
При инфицировании диска вирус в большинстве случаев переносит оригинальный boot-сектор (или MBR) в какой-либо другой сектор диска (например, в первый свободный). Если длина вируса больше длины сектора, то в заражаемый сектор помещается первая часть вируса, остальные части размещаются в других секторах (например, в первых свободных).
2.2.3.Файловые вирусы
По способу заражения файлов вирусы делятся на:
перезаписывающие (overwriting);
паразитические (parasitic);
вирусы-компаньоны (companion);
вирусы-ссылки (link);
вирусы, заражающие объектные модули (OBJ);
вирусы, заражающие библиотеки компиляторов (LIB);
вирусы, заражающие исходные тексты программ.
Overwriting
Данный метод заражения является наиболее простым: вирус записывает свой код вместо кода заражаемого файла, уничтожая его содержимое. Естественно, что при этом файл перестает работать и не восстанавливается. Такие вирусы очень быстро обнаруживают себя, так как операционная система и приложения довольно быстро перестают работать.
Parasitic
К паразитическим относятся все файловые вирусы, которые при распространении своих копий обязательно изменяют содержимое файлов, оставляя сами файлы при этом полностью или частично работоспособными.
Основными типами таких вирусов являются вирусы, записывающиеся в начало файлов (prepending), в конец файлов (appending) и в середину файлов (inserting). В свою очередь, внедрение вирусов в середину файлов происходит различными методами — путем переноса части файла в его конец или копирования своего кода в заведомо неиспользуемые данные файла (cavity-вирусы).
Внедрение вируса в начало файла
Известны два способа внедрения паразитического файлового вируса в начало файла. Первый способ заключается в том, что вирус переписывает начало заражаемого файла в его конец, а сам копируется в освободившееся место. При заражении файла вторым способом вирус дописывает заражаемый файл к своему телу.
Таким образом, при запуске зараженного файла первым управление получает код вируса. При этом вирусы, чтобы сохранить работоспособность программы, либо лечат зараженный файл, повторно запускают его, ждут окончания его работы и снова записываются в его начало (иногда для этого используется временный файл, в который записывается обезвреженный файл), либо восстанавливают код программы в памяти компьютера и настраивают необходимые адреса в ее теле (т. е. дублируют работу ОС).
Внедрение вируса в конец файла
Наиболее распространенным способом внедрения вируса в файл является дописывание вируса в его конец. При этом вирус изменяет начало файла таким образом, что первыми выполняемыми командами программы, содержащейся в файле, являются команды вируса.
Для того чтобы получить управление при старте файла, вирус корректирует стартовый адрес программы (адрес точки входа). Для этого вирус производит необходимые изменения в заголовке файла.
Внедрение вируса в середину файла
Существует несколько методов внедрения вируса в середину файла. В наиболее простом из них вирус переносит часть файла в его конец или «раздвигает» файл и записывает свой код в освободившееся пространство. Этот способ во многом аналогичен методам, перечисленным выше. Некоторые вирусы при этом компрессируют переносимый блок файла так, что длина файла при заражении не изменяется.
Вторым является метод «cavity», при котором вирус записывается в заведомо неиспользуемые области файла. Вирус может быть скопирован в незадействованные области заголовок EXE-файла, в «дыры» между секциями EXE-файлов или в область текстовых сообщений популярных компиляторов. Существуют вирусы, заражающие только те файлы, которые содержат блоки, заполненные каким-либо постоянным байтом, при этом вирус записывает свой код вместо такого блока.
Кроме того, копирование вируса в середину файла может произойти в результате ошибки вируса, в этом случае файл может быть необратимо испорчен.
Вирусы без точки входа
Отдельно следует отметить довольно незначительную группу вирусов, не имеющих «точки входа» (EPO-вирусы — Entry Point Obscuring viruses). К ним относятся вирусы, не изменяющие адрес точки старта в заголовке EXE-файлов. Такие вирусы записывают команду перехода на свой код в какое-либо место в середину файла и получают управление не непосредственно при запуске зараженного файла, а при вызове процедуры, содержащей код передачи управления на тело вируса. Причем выполняться эта процедура может крайне редко (например, при выводе сообщения о какой-либо специфической ошибке). В результате вирус может долгие годы «спать» внутри файла и выскочить на свободу только при некоторых ограниченных условиях. Перед тем, как записать в середину файла команду перехода на свой код, вирусу необходимо выбрать «правильный» адрес в файле — иначе зараженный файл может оказаться испорченным. Известны несколько способов, с помощью которых вирусы определяют такие адреса внутри файлов, например, поиск в файле последовательности стандартного кода заголовков процедур языков программирования (C/Pascal), дизассемблирование кода файла или замена адресов импортируемых функций.