Файл: 15 Компьютерные вирусы и проблемы антивирусной защиты.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 105
Скачиваний: 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, Windows 95/98, Windows NT/2000 и т. д. Макро-вирусы заражают файлы форматов Word, Excel, Microsoft Office. На определенные форматы расположения системных данных в загрузочных секторах дисков также ориентированы загрузочные вирусы.
Естественно, эти схемы классификации не являются единственно возможными, существуют много различных схем типизации вирусов. Однако ограничимся пока классификацией компьютерных вирусов по среде обитания, поскольку она является базовой, и перейдем к рассмотрению общих принципов функционирования вирусов. Анализ основных этапов «жизненного цикла» этих вредоносных программ позволяет выделить их различные признаки и особенности, которые могут быть положены в основу дополнительных классификаций.
15.1.2. Жизненный цикл вирусов
Как и у любой программы, у компьютерных вирусов можно выделить две основные стадии жизненного цикла — хранение и исполнение.
Стадия хранения соответствует периоду, когда вирус просто хранится на диске совместно с объектом, в который он внедрен. На этой стадии вирус является наиболее уязвимым со стороны антивирусного ПО, так как он не активен и не может контролировать работу ОС с целью самозащиты.
Некоторые вирусы на этой стадии используют механизмы защиты своего кода от обнаружения. Наиболее распространенным способом защиты является шифрование большей части тела вируса. Его использование совместно с механизмами мутации кода (об этом идет речь ниже) делает невозможным выделение сигнатур — устойчивых характеристических фрагментов кода вирусов.
Стадия исполнения компьютерных вирусов, как правило, включает пять этапов:
-
загрузка вируса в память; -
поиск жертвы; -
заражение найденной жертвы; -
выполнение деструктивных функций; -
передача управления программе-носителю вируса. Рассмотрим эти этапы подробнее [38, 70].
1. Загрузка вируса. Загрузка вируса в память осуществляется ОС одновременно с загрузкой исполняемого объекта, в который вирус внедрен. Например, если пользователь запустил на исполнение программный файл, содержащий вирус, то, очевидно, вирусный код будет загружен в память как часть этого файла. В простейшем случае процесс загрузки вируса представляет собой не что иное, как копирование с диска в оперативную память, сопровождаемое иногда настройкой адресов, после чего происходит передача управления коду тела вируса. Эти действия выполняются ОС, а сам вирус находится в пассивном состоянии. В более сложных ситуациях вирус может после получения управления выполнять дополнительные действия, которые необходимы для его функционирования. В связи с этим рассматриваются два аспекта.
Первый аспект связан с максимальным усложнением процедуры обнаружения вирусов. Для обеспечения защиты на стадии хранения некоторые вирусы используют достаточно сложные алгоритмы. К таким 'усложнениям можно отнести шифрование основного тела вируса. Однако использование только шифрования является полумерой, так как в открытом виде должна храниться та часть вируса, которая обеспечивает расшифрование вируса на стадии загрузки. Для избежания подобной ситуации разработчики вирусов используют механизмы «мутаций» кода расшифровщика. Суть этого метода состоит в том, что при внедрении в объект копии вируса часть ее кода, относящаяся к расшифровщику, модифицируется так, чтобы возникли текстуальные различия с оригиналом, но результаты работы остались неизменными. Обычно применяют следующие приемы модификации кода:
-
изменение порядка независимых инструкций; -
замену некоторых инструкций на эквивалентные по результату работы; -
замену используемых в инструкциях регистров на другие;
• введение случайным образом зашумляющих инструкций.
Вирусы, использующие подобные механизмы мутации кода,
получили название полиморфных вирусов. При совместном использовании механизмов шифрования и мутации внедряемая копия вируса окажется отличной от оригинала, так как одна ее часть будет изменена, а другая окажется зашифрованной на ключе, сгенерированном специально для этой копии вируса. А это существенно осложняет выявление вируса в вычислительной системе.
Полиморфные вирусы (polymorphic) — это трудно обнаруживаемые вирусы, не имеющие сигнатур, т. е. не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного и того же полиморфного вируса не будут иметь ни одного совпадения. Полиморфизм встречается в вирусах всех типов — файловых, загрузочных и макровирусах.
Дополнительные действия, которые выполняют полиморфные вирусы на этапе загрузки, состоят в расшифровывании основного тела вируса.
При использовании стелс-алгоритмов вирусы могут полностью или частично скрыть себя в системе. Наиболее распространенный стелс-алгоритм осуществляет перехват системных запросов с целью контроля действий ОС. Вирусы, использующие стелс-алгоритмы, называются стелс-вирусами.
Стелс-вирусы (Stealth) способны скрывать свое присутствие в системе и избегать обнаружения антивирусными программами. Эти вирусы могут перехватывать запросы ОС на чтение/запись зараженных файлов, при этом они либо временно лечат эти файлы, либо «подставляют» вместо себя незараженные участки информации, эмулируя «чистоту» зараженных файлов.
В случае макровирусов наиболее популярным способом является запрет вызовов меню просмотра макросов. Одним из первых файловых стелс-вирусов был вирус «Frodo», первым загрузочным стелс-вирусом был вирус «Brain».
Нередко в вирусах используются различные нестандартные приемы с целью глубже спрятаться в ядре ОС, либо защитить от обнаружения свою резидентную копию, либо затруднить лечение от вируса и т. п.
Второй аспект связан с так называемыми резидентными вирусами. Поскольку вирус и объект, в который он внедрен, являются для ОС единым целым, то после загрузки они располагаются, естественно, в едином адресном пространстве. После завершения работы объекта он выгружается из оперативной памяти, при этом одновременно выгружается и вирус, переходя в пассивную стадию хранения. Однако некоторые типы вирусов способны сохраняться в памяти и оставаться активными после окончания работы вирусоносителя. Эти вирусы получили название резидентных.
Резидентные вирусы при инфицировании компьютера оставляют в оперативной памяти свою резидентную часть, которая затем перехватывает обращения ОС к объектам заражения и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения компьютера или перезагрузки ОС.
Резидентными можно считать макровирусы, так как для большинства из них выполняются основные требования — постоянное присутствие в памяти компьютера на все время работы зараженного редактора и перехват функций, используемых при работе с документами. При этом роль ОС берет на себя редактор, а понятие «перезагрузка операционной системы» трактуется как выход из редактора.
Нерезидентные вирусы не заражают память компьютера и сохраняют активность ограниченное время. Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не распространяют вирус. Такие вирусы считаются нерезидентными.
Следует отметить, что деление вирусов на резидентные и нерезидентные справедливо в основном для файловых вирусов. Загрузочные вирусы, как и макровирусы, относятся к резидентным вирусам.
2. Поиск жертвы. По способу поиска жертвы вирусы можно разделить на два класса.
К первому классу относятся вирусы, осуществляющие «активный» поиск с использованием функций ОС. Примером являются файловые вирусы, использующие механизм поиска исполняемых файлов в текущем каталоге.