Классификация вирусов


Наверняка ваши самые неприятные воспоминания о сети Интернет и компьютерах связаны с так называемыми компьютерными вирусами. Эти вирусы, похоже, стали неотъемлемой частью нашей компьютерной жизни. Сегодня о вирусах знают все, даже те, кто никогда не путешествовал по Сети, более того, кто никакого отношения к компьютерам не имеет - сообщения о нашествии "I Love You" прошли по всем телевизионным каналам.

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

Для начала немного истории. Первое упоминание о компьютерных вирусах было зафиксировано еще в конце 60-х. На мейнфреймах того времени периодически появлялись программы, которые получили название "кролик" (the rabbit). Эти программы клонировали себя, занимали системные ресурсы и таким образом снижали производительность системы. Скорее всего "кролики" не передавались от системы к системе и являлись сугубо местными явлениями - ошибками или шалостями системных программистов, обслуживавших компьютер. Первый же инцидент, который смело можно назвать эпидемией "компьютерного вируса", произошел в системе Univax 1108. Вирус, получивший название "Pervading Animal", дописывал себя к выполняемым файлам, т.е. во многом делал то же самое, что и тысячи современных компьютерных вирусов.

Далее события разворачивались стремительно: каждый год появлялись все новые вирусы и новые алгоритмы их написания. Первая революция в мире вирусов произошла в начале 1970 года, когда под операционную систему Tenex был создан вирус "The Creeper", использовавший для своего распространения глобальные компьютерные сети. Вирус был в состоянии самостоятельно войти в сеть через модем и передать свою копию удаленной системе. Для борьбы с этим вирусом была создана программа "The Reeper" - первая известная антивирусная программа.

Самым же интересным является то, что вплоть до конца 80-х большинство пользователей компьютеров отказывались верить в существование вирусов. Показателен тот факт, что даже компьютерный гуру - человек-легенда Питер Нортон - высказывался против существования вирусов. Он объявил их несуществующим мифом и сравнил со сказками о крокодилах, живущих в канализации Нью-Йорка. Этот казус, однако, не помешал фирме Symantec через некоторое время начать собственный антивирусный проект - Norton Anti-Virus, который и сейчас пользуется огромной популярностью пользователей всего мира.

Подробную хронологию событий развития вирусов и антивирусного софта можно прочитать по адресу http://www.viruslist.com/ (сайт поддерживает два языка - русский и английский). Также о событиях в мире компьютерных вирусов можно узнать на сайте http://www.virusbtn.com/, а о программах троянцев на http://www.trojan.ru/.

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

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

Вирусы делятся на виды (загрузочные, файловые, макровирусы, полиморфик-вирусы, стелс-вирусы, резидентные, прочие вредные программы, IRC-черви и сетевые) и классы (среда обитания, операционная система (OC), особенности алгоритма работы, деструктивные возможности).

По СРЕДЕ ОБИТАНИЯ вирусы можно разделить на:

  • Файловые вирусы, которые либо различными способами внедряются в выполняемые файлы (наиболее распространенный тип вирусов), либо создают файлы-двойники (компаньон-вирусы), либо используют особенности организации файловой системы (link-вирусы).
  • Загрузочные вирусы, которые записывают себя либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный загрузчик винчестера (Master Boot Record), либо меняют указатель на активный boot-сектор.
  • Макровирусы заражают файлы-документы и электронные таблицы нескольких популярных редакторов.
  • Сетевые вирусы используют для своего распространения протоколы или команды компьютерных сетей и электронной почты.

Заражаемая ОПЕРАЦИОННАЯ СИСТЕМА (вернее, ОС, объекты которой подвержены заражению) является вторым уровнем деления вирусов на классы. Каждый файловый или сетевой вирус заражает файлы какой-либо одной или нескольких OS - DOS, Windows, Win95/NT, OS/2 и т.д. Макровирусы заражают файлы форматов Word, Excel, Office97. Загрузочные вирусы также ориентированы на конкретные форматы расположения системных данных в загрузочных секторах дисков.

Среди ОСОБЕННОСТЕЙ АЛГОРИТМА РАБОТЫ вирусов выделяются следующие пункты:

  • Резидентность. Резидентный вирус при инфицировании компьютера оставляет в оперативной памяти свою резидентную часть, которая затем перехватывает обращения операционной системы к объектам заражения и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения компьютера или перезагрузки операционной системы.
  • Использование стелс-алгоритмов позволяет вирусам полностью или частично скрыть себя в системе. Наиболее распространенным стелс-алгоритмом является перехват запросов OC на чтение/запись зараженных объектов. Стелс-вирусы при этом либо временно лечат их, либо "подставляют" вместо себя незараженные участки информации.
  • Самошифрование и полиморфичность используются практически всеми типами вирусов для того, чтобы максимально усложнить процедуру детектирования вируса.
  • Различные нестандартные приемы часто используются в вирусах для того, чтобы как можно глубже спрятать себя в ядре OC (как это делает вирус "3APA3A"), защитить от обнаружения свою резидентную копию (вирусы "TPVO", "Trout2"), затруднить лечение от вируса (например, поместив свою копию в Flash-BIOS) и т.д.

По ДЕСТРУКТИВНЫМ ВОЗМОЖНОСТЯМ вирусы можно разделить на:

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

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

Рассмотрим каждый вид вирусов подробнее:

Загрузочные вирусы заражают загрузочный (boot) сектор флоппи-диска и boot-сектор или Master Boot Record (MBR) винчестера. Принцип действия загрузочных вирусов основан на алгоритмах запуска операционной системы при включении или перезагрузке компьютера - после необходимых тестов установленного оборудования (памяти, дисков и т.д.) программа системной загрузки считывает первый физический сектор загрузочного диска (A:, C: или CD-ROM в зависимости от параметров, установленных в BIOS Setup) и передает на него управление. При заражении дисков загрузочные вирусы "подставляют" свой код вместо какой-либо программы, получающей управление при загрузке системы. Принцип заражения, таким образом, одинаков ко всем носителям: вирус "заставляет" систему при ее перезапуске считать в память и отдать управление не оригинальному коду загрузчика, но коду вируса.

Файловые вирусы. К данной группе относятся вирусы, которые при своем размножении тем или иным способом используют файловую систему какой-либо (или каких-либо) ОС. Внедрение файлового вируса возможно практически во все исполняемые файлы всех популярных ОС. На сегодняшний день известны вирусы, поражающие все типы выполняемых объектов стандартной DOS: командные файлы (BAT), загружаемые драйверы (SYS, в том числе специальные файлы IO.SYS и MSDOS.SYS) и выполняемые двоичные файлы (EXE, COM). Существуют вирусы, поражающие исполняемые файлы других операционных систем - Windows 3.x, Windows 95/NT, OS/2, Macintosh, UNIX, включая VxD-драйверы Windows 3.x и Windows 95.Существуют вирусы, заражающие файлы, которые содержат исходные тексты программ, библиотечные или объектные модули. Возможна запись вируса и в файлы данных, но это случается либо в результате ошибки вируса, либо при проявлении его агрессивных свойств.

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

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

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

Под термином "резидентность" (DOS'овский термин TSR - Terminate and Stay Resident) понимается способность вирусов оставлять свои копии в системной памяти, перехватывать некоторые события (например, обращения к файлам или дискам) и вызывать при этом процедуры заражения обнаруженных объектов (файлов и секторов). Таким образом, резидентные вирусы активны не только в момент работы зараженной программы, но и после того, как программа закончила свою работу.

К "вредным программам", помимо вирусов, относятся также "троянские кони" (логические бомбы), хакерские утилиты скрытого администрирования удаленных компьютеров ("backdoor"), программы, "ворующие" пароли доступа к ресурсам Интернет и прочую конфиденциальную информацию; а также "intended" -вирусы, конструкторы вирусов и полиморфик-генераторы.

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

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

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

Конструктор вирусов - это утилита, предназначенная для изготовления новых компьютерных вирусов. Известны конструкторы вирусов для DOS, Windows и макровирусов. Они позволяют генерировать исходные тексты вирусов (ASM-файлы), объектные модули, и/или непосредственно зараженные файлы.

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

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

IRC (Internet Relay Chat) - это специальный протокол, разработанный для коммуникации пользователей Интернета в реальном времени. Этот протокол предоставляет возможность Интернет-"разговора" при помощи специально разработанного программного обеспечения. IRC чем-то похож на телефонный разговор, за исключением того, что в нем могут участвовать более двух собеседников, объединяющихся по интересам в различные группы IRC-конференций. Помимо посещения общих (public) конференций пользователи IRC имеют возможность общаться один на один с любым другим пользователем (private), при этом они даже не обязательно должны быть на одном канале. Кроме этого существует довольно большое количество IRC-команд, при помощи которых пользователь может получить информацию о других пользователях и каналах, изменять некоторые установки IRC-клиента и прочее. Существует также возможность передавать и принимать файлы - именно на этой возможности и базируются IRC-черви.

К сетевым относятся вирусы, которые для своего распространения активно используют протоколы и возможности локальных и глобальных сетей. Основным принципом работы сетевого вируса является возможность самостоятельно передать свой код на удаленный сервер или рабочую станцию. "Полноценные" сетевые вирусы при этом обладают еще и возможностью запустить на выполнение свой код на удаленном компьютере или, по крайней мере, "подтолкнуть" пользователя к запуску зараженного файла. О том, какие вирусы бывают, можно также узнать на http://rusdoc.ru/viruses.shtml, там же расположен большой справочник по компьютерным вирусам. (Н.Н.Безрукова. "Компьютерная вирусология. Описания и часто задаваемые вопросы по программам-троянам".) Также можно заглянуть на http://www.virus.da.ru/, там вы найдете статьи о классификации вирусов по типам, описание действия загрузочных, файловых, резидентных, полиморфных и др. вирусов, ссылки на сайты о вирусах.

Вирусов огромное количество, как же с ними бороться? Антивирусных программ сейчас разработано предостаточно, причем не только иностранного производства, но и российского. Более того, среди российских антивирусных программ есть продукты, признанные во всем мире. Это антивирус Касперского - Antiviral Toolkit Pro. На сайте "Лаборатории Касперского" можно узнать информацию о появлении новых вирусов и как с ними бороться. Там же находится вирусная библиотека. Проводятся различные конкурсы. В отличие от конкурентов, например Doctor Web, AVP предоставляет возможность пополнять антивирусную базу даже тем людям, которые не имеют выхода в Интернет. Существуют официальные BBS, с которых и можно списать последние обновления. Об этих и других программных продуктах можно узнать на http://www.antiviruspro.ru/.

Есть также сайт http://www.dialognauka.ru/, на нем вы найдете информацию о фирме. Новости "антивирусного фронта". Обзор программ. Рассказ о новых разработках. Публикации. Проверка на вирусы on-line. Версии антивирусных программ. Обновления вирусных баз DrWeb. Интернет-подписка на коммерческие версии программ. Также можно ознакомиться с другими антивирусными продуктами, например, по адресу www.spbnet.spb.ru/drnet - Сведения о комплекте программных средств для антивирусной защиты пользователей Интернета - DrNet32. Некоторыми программами можно воспользоваться бесплатно. Или вот, например, сайт http://www.adinf.ru/. Здесь можно найти описание антивируса-ревизора, свободно распространяемые версии программы, а также ответы на вопросы пользователей.

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

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

Станислав Кноп
knop@mail.lanck.net


P.S. Лично от Max_Ni.

Меня всегда удивляли люди, которые устанавливали Касперского?!...

Возможно они просто не видели других антивирусов, например Dr.Web. Мне кажется, что любой, увидивший простоту использования, легкость установки и удаления программы, его эффектиность в обнаружении вирусов... сразу же забудет о Касперском на всю оставшуюся жизнь! Действительно, для меня, самым лучшим антивирусом являетяс Dr.Web, а Касперского я никогда не ставлю. Однажды попробовал, увидел какакя это громоздкая штуковина... и все. Тем более было столько нареканий по поводу глюков и несовместимостей. А Dr.Web за все время, что я им пользуюсь ни разу меня не подвел (а это где-то лет 7). Так что делайте выводы. Главная задача антивируса - не его раскрученность и "крутость", а его эффективность! Если кто-то ругает Dr.Web, то этот человек как правило ссылается на то, что программа не раскручена. Не знаю, но среди профессионалов Dr.Web цениться намного баольше, а над Касперским многие откровенно смеются. Взять хотя бы интерфейс программы или процесс установки. Чтобы понять как же проверить всего одну папку в Касперском надо хотя бы 10 минут и при установке он у вас пропишется везде где только можно: в корневом каталоге, в редакторе реестра, в автозагрузке... сами понимаете, у Dr.Web таких проблем нет, может быть поэтому он и не раскручен?! Ведь чтобы поставить/убрать Dr.Web в автозагрузку достаточно поставить/убрать всего одну галочку, а чтобы убрать Касперского надо либо самому изучать редактор реестра и многое другое, или вызывать специалистов ;-)