ОТЧЕТ
по производственной практике
место прохождения практики:
РВЦ -3 Информационно-вычислительного центра
Октябрьской железной дороги
Тема:
ИССЛЕДОВАНИЕ СПОСОБОВ ЗАЩИТЫ ОТ КОМПЬЮТЕРНЫХ ВИРУСОВ ПРОГРАММНЫМИ МЕТОДАМИ И ВЫБОР ОПТИМАЛЬНОГО АНТИВИРУСНОГО КЛИЕНТА
Задача:
Исследование способов защиты от компьютерных вирусов программными методами, и выбор оптимального антивирусного клиента
1. Понятие о компьютерных вирусах
Компьютерный вирус - это программный код, встроенный в другую программную среду (модуль, исполняемый файл, текстовый документ, загрузочные сектора носителя и пр.), предназначенный для выполнения несанкционированных действий на компьютере, зараженном данным вирусом.
Вирусы можно разделить на классы по следующим основным признакам:
– среда обитания;
– операционная система (OC);
– особенности алгоритма работы;
– деструктивные возможности.
В свою очередь, по среде обитания вирусы делятся на файловые, загрузочные, макро и сетевые.
Файловые вирусы различными "хитрыми" способами внедряются в выполняемые файлы, либо создают файлы-двойники (т.н. компаньон-вирусы), а также могут использовать особенности организации файловой системы (link-вирусы).
Загрузочные вирусы записывают самоё себя либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий главную загрузочную область (MBR, Master Boot Record). BIOS многих материнских плат содержит опцию защиты от вирусов, однако же, на деле такой "щит" весьма символичен, так как запрещает изменять загрузочную запись, и не более того.
Макро-вирусы заражают документы и электронные таблицы нескольких популярных редакторов, в частности файлы Microsoft Word и Excel.
Сетевые вирусы используют для своего распространения протоколы или команды компьютерных сетей и электронной почты.
Довольно часто вирус бывает представлен в виде файлово-загрузочного вируса. Такие вирусы имеют сложный алгоритм работы, часто применяют оригинальные методы проникновения в систему, используют стелс- и полиморфик-технологии. Другой пример такого сочетания - сетевой макро-вирус, который не только заражает редактируемые документы, но и рассылает свои копии по электронной почте.
Следующий признак - заражаемая операционная система, точнее, ОС, объекты которой подвержены заражению. Каждый файловый или сетевой вирус заражает файлы какой-либо одной или нескольких систем - DOS, Windows 2000, Win95/NT, OS/2 и т.д.
Третий главный признак классификации - особенности алгоритма работы вирусов. Но и здесь не все просто - приходится выделять следующие дополнительные пункты: резидентность; использование стелс-алгоритмов; самошифрование и полиморфичность, а также использование нестандартных приемов.
Вирус-резидент при заражении оставляет в оперативной памяти свою резидентную часть, которая затем перехватывает обращения операционной системы к объектам заражения и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения компьютера или перезагрузки операционной системы. Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не распространяют вирус. Такие вирусы считаются нерезидентными.
В многозадачных операционных системах (например, Windows 2000/XP) жизнь резидентного DOS-вируса коротка и ограничена моментом закрытия зараженного DOS-окна, активность же загрузочных вирусов в некоторых операционных системах ограничивается моментом инсталляции дисковых драйверов OC
Использование стэлс-алгоритмов позволяет вирусам полностью или частично скрыть себя в системе. Наиболее распространенным стелс-алгоритмом является перехват запросов OC на чтение/запись зараженных объектов. Стелс-вирусы при этом либо временно лечат их, либо предлагают вместо себя незараженные участки информации.
Для борьбы с макро-вирусами давно существует простой способ - запрет вызовов меню просмотра макросов. Второй способ состоит в следующем - изменить расширение DOC потенциально зараженного документа на RTF, поскольку в таком формате макро-вирусы не приживаются. Методы полиморфичности и самошифрования используются практически всеми типами вирусов для того, чтобы максимально осложнить процесс определения вируса. Полиморфик-вирусы (polymorphic) - это вирусы, вызывающие наиболее сильную "головную боль", так как не содержат ни одного постоянного участка кода. В большинстве случаев два образца одного и того же полиморфик-вируса не будут иметь ни одного совпадения. Это достигается шифрованием основного тела вируса и модификациями программы-расшифровщика.
По деструктивным возможностям (четвертая часть основной классификации) вирусы часто разделяют на:
Безвредные, т.е. никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения).
Неопасные - влияние ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и пр. эффектами. Типичными представителями являются вирусы семейства Jokes - после запуска Java-скрипта, который содержится внутри html-документа, у пользователя начинает произвольно передвигаться по экрану окно Internet Explorer.
Опасные вирусы, которые могут привести к серьезным сбоям в работе компьютера. К этому классу можно отнести вирусы, именуемые "Интернет-червями" (всевозможные I-Worm.Hybris и I-Worm.Tanatos).
Очень опасные, в алгоритм работы которых заведомо заложены процедуры, которые могут привести к потере программ, уничтожить данные, стереть необходимую для работы компьютера информацию, записанную в системных областях памяти, и выводу из строя микросхемы BIOS. Типичный враг - вирус WIN95.CIH ("Чернобыль"). Сейчас чрезвычайно активны вирусы I-Worm.Klez (по 13-м числам чётных месяцев червь ищет на всех дисках заражённого компьютера все файлы и заполняет их случайным содержимым. Такие файлы не подлежат восстановлению и должны быть заменены с резервных копий. Отдельной группой следует выделить вредоносные программы, которые в просторечии именуются "троянскими программами" или просто "троянами".
2. Основные методы определения вирусов
Антивирусные программы развивались параллельно с эволюцией вирусов. По мере того как появлялись новые технологии создания вирусов, усложнялся и математический аппарат, который использовался в разработке антивирусов.
Первые антивирусные алгоритмы строились на основе сравнения с эталоном. Речь идет о программах, в которых вирус определяется классическим ядром по некоторой маске. Смысл алгоритма заключается в использовании статистических методов. Маска должна быть, с одной стороны, маленькой, чтобы объем файла был приемлемых размеров, а с другой - достаточно большой, чтобы избежать ложных срабатываний (когда «свой» воспринимается как «чужой», и наоборот).
Первые антивирусные программы, построенные по этому принципу (так называемые сканеры-полифаги), знали некоторое количество вирусов и умели их лечить. Создавались эти программы следующим образом: разработчик, получив код вируса (код вируса поначалу был статичен), составлял по этому коду уникальную маску (последовательность 10-15 байт) и вносил ее в базу данных антивирусной программы. Антивирусная программа сканировала файлы и, если находила данную последовательность байтов, делала заключение о том, что файл инфицирован. Данная последовательность (сигнатура) выбиралась таким образом, чтобы она была уникальной и не встречалась в обычном наборе данных.
Описанные подходы использовались большинством антивирусных программ вплоть до середины 90-х годов, когда появились первые полиморфные вирусы, которые изменяли свое тело по непредсказуемым заранее алгоритмам. Тогда сигнатурный метод был дополнен так называемым эмулятором процессора, позволяющим находить шифрующиеся и полиморфные вирусы, не имеющие в явном виде постоянной сигнатуры.
Принцип эмуляции процессора демонстрируется рисунке 1 (см. след. страницу). Если обычно условная цепочка состоит из трех основных элементов: ЦПУ, ОС, Программа, то при эмуляции процессора в такую цепочку добавляется эмулятор. Эмулятор как бы воспроизводит работу программы в некотором виртуальном пространстве и реконструирует ее оригинальное содержимое. Эмулятор всегда способен прервать выполнение программы, контролирует ее действия, не давая ничего испортить, и вызывает антивирусное сканирующее ядро.
Рис.1. схема работы эмулятора процесса
Второй механизм, появившийся в середине 90-х годов и использующийся всеми антивирусами, – это эвристический анализ. Дело в том, что аппарат эмуляции процессора, который позволяет получить выжимку действий, совершаемых анализируемой программой, не всегда дает возможность осуществлять поиск по этим действиям, но позволяет произвести некоторый анализ и выдвинуть гипотезу типа «вирус или не вирус?».
В данном случае принятие решения основывается на статистических подходах. А соответствующая программа называется эвристическим анализатором.
Для того чтобы размножаться, вирус должен совершать какие-либо конкретные действия: копирование в память, запись в сектора и т.д. Эвристический анализатор (он является частью антивирусного ядра) содержит список таких действий, просматривает выполняемый код программы, определяет, что она делает, и на основе этого принимает решение, является данная программа вирусом или нет.
При этом процент пропуска вируса, даже неизвестного антивирусной программе, очень мал. Данная технология сейчас широко используется во всех антивирусных программах.
3. Классификация антивирусных программ
Классифицируются антивирусные программы на чистые антивирусы и антивирусы двойного назначения.