Смекни!
smekni.com

Совершенствование антивирусной защиты документов текстового процессора Microsoft Word (стр. 1 из 2)

Курсовая работа

Биль Олег Викторович, Костанайский государственный университет имени Ахмета Байтурсынова

Факультет информационных и компьютерных технологий

Кафедра прикладной математики и информационных систем

Введение

В конце ушедшего века перед всем “компьютерным” человечеством возникла опасная проблема: компьютерные вирусы. Ученые расходятся в определении понятия “компьютерный вирус”. Мы будем исходить из того, что под компьютерным вирусом понимается программа, обязательным (необходимым) свойством которой является возможность создавать свои дубликаты (не обязательно совпадающие с оригиналом) и внедрять их в вычислительные сети и/или файлы, системные области компьютера и прочие выполняемые объекты, причем дубликаты сохраняют способность к дальнейшему pаспpостpанению.

В начале “эры вирусов” создать программу подобного типа было весьма затруднительно: был необходим опыт программирования на языке ассемблера, или довольно сложных языках высокого уровня, таких как C/C++, что требовало высокой квалификации программиста. В середине 90-х годов XX века, с внедрением в один из наиболее популярных программных продуктов Microsoft Office эффективного языка автоматизации приложений Visual Basic for Applications, данная ситуация резко изменилась. Люди, гордо называющие себя вирусмейкерами получили прекрасный инструмент для реализации своих идей довольно тривиальными методами. Сообщение о появлении вируса, использующего нестандартный способ саморазмножения (документы Microsoft Word) в августе 1995 года прошло практически незамеченным. Данный вирус восприняли как неудачный эксперимент, в результате чего большинство фирм, выпускающих антивирусное программное обеспечение, оказались неспособными противостоять буквально эпидемии макро-вирусов. В спешном порядке менялась специальная компьютерная литература, ранее отвечавшая на вопрос о том, можно ли заразить компьютер при чтении файла категоричным “нет”.

Несмотря на все попытки компании Microsoft обезопасить свои приложения от вирусов, в настоящее время макро-вирусы воспринимаются уже как неотъемлемый атрибут персональных компьютеров, а доступность их создания привела к тому, что макро-вирусы составляют около 70% из почти 70000 известных на сегодня компьютерных вирусов.

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

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

Настоящая работа является анализом существующего положения дел в сфере антивирусных технологий, а также преимуществ, достигаемых при использовании MacroVirus Detector.

Глава 1. Что мы знаем о макро-вирусах?

Как было сказано выше, до 1995 года, то есть, до появления в пакете Microsoft Office сначала специальных языков автоматизации (Word Basic), а затем и универсального - Visual Basic for Applications (VBA), написание вирусов было уделом высокопрофессиональных программистов. Данный факт способствовал тому, что вирусы появлялись не так часто, и крупных эпидемий удавалось избегать. Довольно низкую скорость распространения вирусов можно объяснить также и недостаточно развитыми в то время коммуникациями.

Вместе с внедрением VBA получил новый импульс развития целый класс вирусов макро-вирусы. Макро-вирусы - это компьютерные вирусы, использующие возможности встроенных макро языков. Наиболее распространены вирусы, поражающие документы Office. В 1995 году проявил себя один из первых макро-вирусов – Concept. Он очень быстро “завладел” тысячами компьютеров во всем мире, так как сеть Internet была уже достаточно популярной, а формат MS Word фактически стал стандартом передачи текстовых данных. Причем, скорость распространения многократно возрастала с увеличением числа зараженных машин, поскольку пользователь зараженного компьютера становился очагом распространения вируса для своих товарищей по электронной переписке.

Летом 1996 года появился первый вирус, заражающий таблицы Excel ─ Laroux (Лару). В этом же году появились конструкторы макро-вирусов, а в 1997 году и первые полиморфик-макро-вирусы (вирусы, самопроизвольно изменяющие свой код, не теряя функциональности, что усложняет процесс обнаружения вируса, так как не всегда можно выявить постоянно повторяющиеся участки кода вируса (сигнатуры)).

Как говорит известный специалист в области вирусологии, Е. Касперский, макpо-виpyсы, являются самой большой проблемой современной виpyсологии.

Алгоритм работы макро-вирусов основан на возможности программного переопределения так называемых авто-макросов, выполняемых автоматически при различных условиях, например AutoOpen – вызывается при открытии документа, AutoExec, - при запуске Word и т. д., а также различных управляющих макросов (наиболее часто встречается, например в Stealth – вирусах, обработка макросов ToolsMacro – вызов диалогового окна “Макрос”, ViewVBCode – вызов окна редактора Visual Basic). Также макро-вирус может содержать и свои собственные макросы, вызываемые из вирусных обработчиков стандартных макросов, или при нажатии на определенную клавишу. Сопоставить нажатие клавиши какому-либо действию можно, выполнив следующий код:

KeyBindings.Add KeyCode := BuildKeyCode ( wdKeySpacebar ),_ KeyCategory:=wdKeyCategorySymbol, Command:="R"

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

Схематичное сравнение зараженного и незараженного документа приведено в таблице 1.

Таблица № 1 - Сравнительная структурная схема зараженного и незараженного документов

Незараженный Зараженный
Служебная информацияТекстФорматированиеМакросы (если есть)Прочие данные Служебная информацияТекстФорматированиеМакросы (если есть)Макросы вирусаПрочие данные

При запуске большинство макро-вирусов для MS Word пытаются записаться в область глобальных макросов, которые обычно (по умолчанию) хранятся в DOT-файле Normal.dot, с тем, чтобы получить управление на себя в то время, когда открывается еще незараженный документ. Затем, опять же, чаще всего, при открытии незараженного документа и/или работе с ним, код вируса, находящийся в области глобальных макросов, производит заражение нового документа, копируя свои строки в него.

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

Итак, чем же страшны макро-вирусы? Мощность языка VBA очень велика. Он включает в себя функции работы с реестром и файловой системой, что позволяет управлять данными на машинах пользователей (уничтожать, модифицировать, а также предоставлять злоумышленнику конфиденциальную информацию и обеспечивать условия, облегчающие проникновение через Internet в систему или в сеть, в которой находится зараженный компьютер (Backdoor)). Также эти возможности используются для настройки системы таким образом, что, при обеспечении доступа к Internet произойдет автоматическая загрузка и запуск деструктивной программы с какого-либо узла Сети, при этом сам код макро-вируса может и не содержать команд, ведущих к повреждению/модификации данных. Приведенные примеры иллюстрируют, насколько серьезно необходимо относиться к проблеме макро-вирусов. Теперь, вкратце, опишем современные методы борьбы с макро-вирусами.

Сейчас имеется большое разнообразие антивирусных программ. Они различаются количеством известных им вирусов, способами анализа кода, а также некоторыми другими свойствами. Основу современных средств защиты от компьютерных вирусов составляют так называемые вирусные базы, где содержатся постоянные (не изменяющиеся) фрагменты кода вирусов (сигнатуры), по которым антивирусная программа способна определить вирус и либо вылечить вирус, либо, в случае невозможности этого, сообщить о заражении пользователю с предложением об удалении пораженного файла. Данный механизм обнаружения вирусов являлся приемлемым до того, как развитие сети Internet достигло всемирных масштабов. Сегодня же, базы антивирусных программ, обновленные несколько дней назад, не всегда способны защитить компьютеры от новых вирусов. Темпы появления вирусов ошеломляют: в день, по разным оценкам, создаются от 1 - 2 до 10 – 15 новых вирусов. Доступность же написания макро-вирусов довела до того, что сейчас доля макро-вирусов в общей численности вирусных программ составляет около 70% из около 70 000 известных на сегодня компьютерных вирусов. Такая распространенность связана с очень многими факторами как социального, так и технического характера. С технической точки зрения, создание макро-вирусов популярно из-за своей простоты (человек, совершенно не владеющий навыками программирования, после специальной подготовки в течение 2 – 3 месяцев, вполне способен написать вирус с большой деструктивной мощью), доступности документации по языку VBA, Office, а также простотой получения исходного кода большинства макро-вирусов, используемого в качестве образца при написании своих вирусов. Социальный фактор намного сложнее, так как путь к созданию вирусов у каждого свой – кто-то хочет научиться программировать и для него написание вируса является просто интересной “программистской” задачей (данные вирусы предназначены для учебных целей и, в большинстве своем, они не получают широкого распространения, либо не содержат в себе деструктивных функций, ограничиваясь лишь шутливыми эффектами, или вовсе не подают признаков своего присутствия); другого увлекает мания власти над людьми, особенно если данный человек затем узнает о нанесенном его вирусом ущерба в планетарном масштабе из средств массовой информации; третьи же просто мстят каким-либо определенным личностям, но затем, распространение вируса выходит из-под контроля.