Файл: 15 Компьютерные вирусы и проблемы антивирусной защиты.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 97

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

15.1. Компьютерные вирусы и проблемы антивирусной защиты

Существует много определений компьютерного вируса. Исто­рически первое определение было дано в 1984 г. Фредом Коэном: «Компьютерный вирус — это программа, которая может заражать другие программы, модифицируя их посредством включения в них своей, возможно измененной копии, причем последняя со­храняет способность к дальнейшему размножению». Ключевыми понятиями в этом определении являются способность вируса к са­моразмножению и способность к модификации вычислительного процесса. Указанные свойства компьютерного вируса аналогичны паразитированию биологического вируса в живой природе. С тех пор острота проблемы вирусов многократно возросла — к кон­цу XX в. в мире насчитывалось более 14 300 модификаций ви­русов.

В настоящее время под компьютерным вирусом принято по­нимать программный код, обладающий следующими свойствами:

  • способностью к созданию собственных копий, не обяза­тельно совпадающих с оригиналом, но обладающих свой­ствами оригинала (самовоспроизведение);

  • наличием механизма, обеспечивающего внедрение созда­ваемых копий в исполняемые объекты вычислительной системы.

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

15.1.1. Классификация компьютерных вирусов

На сегодняшний день известны десятки тысяч различных компьютерных вирусов. Несмотря на такое изобилие, число ти­пов вирусов, отличающихся друг от друга механизмом распро­странения и принципом действия, достаточно ограничено. Су­ществуют и комбинированные вирусы, которые можно отнести одновременно к нескольким типам. Вирусы можно разделить на классы [38, 85]:

  • по среде обитания;

  • операционной системе (ОС);

  • особенностям алгоритма работы;

  • деструктивным возможностям.

Основной и наиболее распространенной классификацией компьютерных вирусов является классификация по среде обита­ния, или по типам объектов компьютерной системы, в которые внедряются вирусы (рис. 15.1).
По среде обитания компьютер­ные вирусы можно разделить:

  • на файловые;

  • загрузочные;

  • макровирусы;

  • сетевые.



Рис. 15.1. Классификация компьютерных вирусов по среде обитания

Файловые вирусы либо внедряются в выполняемые файлы (наиболее распространенный тип вирусов) различными способа­ми, либо создают файлы-двойники (компаньон-вирусы), либо используют особенности организации файловой системы (link-вирусы).

Загрузочные вирусы записывают себя либо в загрузочный сек­тор диска (boot-сектор), либо в сектор, содержащий системный загрузчик винчестера (Master Boot Record). Загрузочные вирусы замещают код программы, получающей управление при загрузке системы. В результате при перезагрузке управление передается вирусу. При этом оригинальный boot-сектор обычно переносится в какой-либо другой сектор диска. Иногда загрузочные виру­сы называют бутовыми вирусами.

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

Сетевые вирусы используют для своего распространения про­токолы или команды компьютерных сетей и электронной почты. Иногда сетевые вирусы называют программами типа «червь». Сетевые черви подразделяются на Internet-черви (распространя­ются по Internet), LAN-черви (распространяются по локальной сети), IRC-черви Internet Relay Chat (распространяются через чаты). Существуют также смешанные типы, которые совмещают в себе сразу несколько технологий.

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

Другим признаком деления компьютерных вирусов на клас­сы является

операционная система, объекты которой подвергают­ся заражению. Каждый файловый или сетевой вирус заражает файлы какой-либо одной или нескольких ОС — DOS, Win­dows 95/98, Windows NT/2000 и т. д. Макро-вирусы заражают файлы форматов Word, Excel, Microsoft Office. На определенные форматы расположения системных данных в загрузочных секто­рах дисков также ориентированы загрузочные вирусы.

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

15.1.2. Жизненный цикл вирусов

Как и у любой программы, у компьютерных вирусов можно выделить две основные стадии жизненного цикла — хранение и исполнение.

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

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

Стадия исполнения компьютерных вирусов, как правило, включает пять этапов:

  1. загрузка вируса в память;

  2. поиск жертвы;

  3. заражение найденной жертвы;

  4. выполнение деструктивных функций;

  5. передача управления программе-носителю вируса. Рассмотрим эти этапы подробнее [38, 70].

1. Загрузка вируса. Загрузка вируса в память осуществляется ОС одновременно с загрузкой исполняемого объекта, в который вирус внедрен. Например, если пользователь запустил на испол­нение программный файл, содержащий вирус, то, очевидно, ви­русный код будет загружен в память как часть этого файла. В простейшем случае процесс загрузки вируса представляет со­бой не что иное, как копирование с диска в оперативную па­мять, сопровождаемое иногда настройкой адресов, после чего происходит передача управления коду тела вируса. Эти действия выполняются ОС, а сам вирус находится в пассивном состоя­нии. В более сложных ситуациях вирус может после получения управления выполнять дополнительные действия, которые необходимы для его функционирования. В связи с этим рассматрива­ются два аспекта.


Первый аспект связан с максимальным усложнением проце­дуры обнаружения вирусов. Для обеспечения защиты на стадии хранения некоторые вирусы используют достаточно сложные алгоритмы. К таким 'усложнениям можно отнести шифрование основного тела вируса. Однако использование только шифрова­ния является полумерой, так как в открытом виде должна хра­ниться та часть вируса, которая обеспечивает расшифрование вируса на стадии загрузки. Для избежания подобной ситуации разработчики вирусов используют механизмы «мутаций» кода расшифровщика. Суть этого метода состоит в том, что при вне­дрении в объект копии вируса часть ее кода, относящаяся к расшифровщику, модифицируется так, чтобы возникли тексту­альные различия с оригиналом, но результаты работы остались неизменными. Обычно применяют следующие приемы модифи­кации кода:

  • изменение порядка независимых инструкций;

  • замену некоторых инструкций на эквивалентные по ре­зультату работы;

  • замену используемых в инструкциях регистров на другие;

• введение случайным образом зашумляющих инструкций.

Вирусы, использующие подобные механизмы мутации кода,

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

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

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

При использовании стелс-алгоритмов вирусы могут полно­стью или частично скрыть себя в системе. Наиболее распространенный стелс-алгоритм осуществляет перехват системных запро­сов с целью контроля действий ОС. Вирусы, использующие стелс-алгоритмы, называются стелс-вирусами.

Стелс-вирусы (Stealth) способны скрывать свое присутствие в системе и избегать обнаружения антивирусными программами. Эти вирусы могут перехватывать запросы ОС на чтение/запись зараженных файлов, при этом они либо временно лечат эти файлы, либо «подставляют» вместо себя незараженные участки информации, эмулируя «чистоту» зараженных файлов.


В случае макровирусов наиболее популярным способом яв­ляется запрет вызовов меню просмотра макросов. Одним из пер­вых файловых стелс-вирусов был вирус «Frodo», первым загру­зочным стелс-вирусом был вирус «Brain».

Нередко в вирусах используются различные нестандартные приемы с целью глубже спрятаться в ядре ОС, либо защитить от обнаружения свою резидентную копию, либо затруднить лече­ние от вируса и т. п.

Второй аспект связан с так называемыми резидентными виру­сами. Поскольку вирус и объект, в который он внедрен, являют­ся для ОС единым целым, то после загрузки они располагаются, естественно, в едином адресном пространстве. После заверше­ния работы объекта он выгружается из оперативной памяти, при этом одновременно выгружается и вирус, переходя в пассивную стадию хранения. Однако некоторые типы вирусов способны со­храняться в памяти и оставаться активными после окончания работы вирусоносителя. Эти вирусы получили название рези­дентных.

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

Резидентными можно считать макровирусы, так как для большинства из них выполняются основные требования — по­стоянное присутствие в памяти компьютера на все время работы зараженного редактора и перехват функций, используемых при работе с документами. При этом роль ОС берет на себя редак­тор, а понятие «перезагрузка операционной системы» трактуется как выход из редактора.

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

Следует отметить, что деление вирусов на резидентные и не­резидентные справедливо в основном для файловых вирусов. За­грузочные вирусы, как и макровирусы, относятся к резидентным вирусам.

2. Поиск жертвы. По способу поиска жертвы вирусы можно разделить на два класса.

К первому классу относятся вирусы, осуществляющие «ак­тивный» поиск с использованием функций ОС. Примером явля­ются файловые вирусы, использующие механизм поиска испол­няемых файлов в текущем каталоге.