Компьютерные вирусы
Первым делом я начну с того, что такое компьютерный вирус. Компьютерный вирус - это специально написанная небольшая по размерам программа, которая может «приписывать» себя к другим программам (т.е. «заражать» их), а также выполнять различные нежелательные действия на компьютере. Программа, внутри которой находится вирус, называется «зараженной». Когда такая программа начинает работу, то сначала управление получает вирус. Еще к вирусам неопытные люди приписывают троянов и червей. Вирусы обычно наносят вред в виде порчи файлов или таблиц размещения файлов на диске, «засорения» оперативной памяти, кражи паролей иили личной информации, но могут и, не нанося вред, использовать файлы для транспортировки и дальнейших действий в других средах, к примеру, других операционных системах (ОС) или информационных носителях. Но следует заметить, что тексты программ и документов, информационные файлы баз данных, таблицы табличных процессоров и другие аналогичные файлы не могут быть заражены вирусом, он может их только испортить.
Компьютерный вирус способны размножаться и его довольно сложно найти ведь для маскировки вируса, действия по заражению других программ и нанесению вреда могут выполняться не всегда, а, скажем, при выполнении определенных условий. После того как вирус выполнит нужные ему действия, он передает управление той программе, в которой он находится, и она работает так же, как обычно. Тем самым внешне работа зараженной программы выглядит так же, как и незараженной.
Как проявляют себя вирусы
Проявления вирусов весьма различны. Это:
o Замедление работы компьютера, порой очень сильное
o Неожиданное появление на экране посторонних фраз, картинок, заставок, действий
o Появление различных видеоэффектов (например, перевёртывание экрана).
o Пропадание информации с экрана.
o Генерация различных звуков или видеосообщений
o Некоторые программы перестают работать, а другие ведут себя очень странно.
o На дисках появляется большое количество испорченных файлов данных, текстовых файлов.
o Разом рушится вся файловая система на одном из дисков или нескольких дисках
o Операционная система неожиданно перестаёт видеть винчестер.
o Произвольно изменяется длина отдельных файлов.
o Неожиданные проблемы с 32-х битным доступом к диску и файлам в Windows 9х, NT, 2000, XP.
o Стирание всех незащищённых от стирания пользовательских файлов и системных файлов.
o Самопроизвольный неограниченный «разгон» видеокарты и процессора, что приводит к их перегреву и поломке.
o Подмена существующих драйверов на драйвера, неподходящие к данной системе, что приводит к возникновению большого количества ошибок , замедлению работы системы и остановке работы важных сервисных программ.
o Скачивание при подключённом Интернет-соединении большого количества ненужной, опасной информации, червей и троянов, вирусов.
Разные вирусы могут вести себя по-разному. Некоторые только размножаются, не совершая вредных действий, другие же сразу после заражения совершают множество очень неприятных действий. Есть такие, которые вначале ведут себя незаметно, а по прошествии какого-то времени вдруг разом портят все данные (скажем, форматируется винчестер).
Среди всего разнообразия вирусов можно выделить следующие основные группы:
• загрузочные
• файловые
• файлово-загрузочные
• полиморфные
Теперь поподробнее рассмотрим каждую из этих групп.
Загрузочные вирусы
Рассмотрим схему функционирования очень простого загрузочного вируса, заражающего дискеты. Мы сознательно обойдем все многочисленные тонкости, которые неизбежно встретились бы при строгом разборе алгоритма его функционирования.
Что происходит, когда мы включаем компьютер? Первым делом управление передается программе начальной загрузки, которая хранится в постоянно запоминающем устройстве (ПЗУ) или ПНЗ ПЗУ. Эта программа тестирует оборудование и при успешном завершении проверок пытается найти дискету в дисководе А: Всякая дискета размечена на секторы и дорожки. Секторы объединяются в кластеры, но это для вирусов несущественно. Среди секторов есть несколько служебных, используемых операционной системой для собственных нужд (в этих секторах не могут размещаться ваши данные). Среди служебных секторов мы заинтересуемся одним - сектором начальной загрузки (boot-sector). В секторе начальной загрузки хранится информация о дискете - количество поверхностей, количество дорожек, количество секторов и прочее. Но нас сейчас интересует не эта информация, а небольшая программа начальной загрузки (ПНЗ), которая должна загрузить саму операционную систему и передать ей управление.
Таким образом, нормальная схема начальной загрузки следующая:
ПНЗ (ПЗУ) → ПНЗ (диск) → СИСТЕМА
Теперь рассмотрим вирус. В загрузочных вирусах выделяют две части - голову и хвост. Хвост, вообще говоря, может быть пустым. Пусть у вас имеются чистая дискета и зараженный компьютер, под которым мы понимаем компьютер с активным резидентным вирусом. Как только этот вирус обнаружит, что в дисководе появилась подходящая жертва - в приведенном случае не защищенная от записи и еще не зараженная дискета, он приступает к заражению. Заражая дискету, вирус производит следующие действия:
1) Выделяет некоторую область диска и помечает ее как недоступную операционной системе, это можно сделать по-разному, в простейшем и традиционном случае занятые вирусом секторы помечаются как сбойные (bad)
2) Копирует в выделенную область диска свой хвост и оригинальный (здоровый) загрузочный сектор
3) Замещает программу начальной загрузки в загрузочном секторе (настоящем) своей головой
4) организует цепочку передачи управления согласно схеме.
Таким образом, голова вируса теперь первой получает управление, вирус устанавливается в память и передает управление оригинальному загрузочному сектору. В цепочке
ПНЗ (ПЗУ) → ПНЗ (диск) → СИСТЕМА появляется новое звено:
ПНЗ (ПЗУ) → ВИРУС → ПНЗ (диск) → СИСТЕМА
Мы рассмотрели схему функционирования простого загрузочного вируса, живущего в загрузочных секторах дискет. Как правило, вирусы способны заражать не только загрузочные секторы дискет, но и загрузочные секторы винчестеров. При этом в отличие от дискет на винчестере имеются два типа загрузочных секторов, содержащих программы начальной загрузки, которые получают управление. При загрузке компьютера с винчестера первой берет на себя управление программа начальной загрузки в MBR (Master Boot Record - главная загрузочная запись). Если ваш жесткий диск разбит на несколько разделов, то лишь один из них помечен как загрузочный (boot). Программа начальной загрузки в MBR находит загрузочный раздел винчестера и передает управление на программу начальной загрузки этого раздела. Код последней совпадает с кодом программы начальной загрузки, содержащейся на обычных дискетах, а соответствующие загрузочные секторы отличаются только таблицами параметров. Таким образом, на винчестере имеются два объекта атаки загрузочных вирусов - программа начальной загрузки в MBR и программа начальной загрузки в boot-секторе загрузочного диска. При загрузке вируса в загрузочный сектор наблюдается дальнейшее распространение вируса по всему диску и произведение нежелательных действий приведенных выше (см загр. вирусы).
Файловые вирусы
Рассмотрим теперь схему работы простого файлового вируса. В отличие от загрузочных вирусов, которые практически всегда резидентны, файловые вирусы же обычно не являются резидентными. Рассмотрим схему функционирования нерезидентного файлового вируса. Пусть у нас имеется инфицированный исполняемый файл. При запуске такого файла вирус получает управление, производит запрограммированные действия и передает управление «хозяину» (хотя еще неизвестно, кто в такой ситуации «хозяин»).
Какие же именно действия выполняет вирус? Он ищет новый объект для заражения - подходящий по типу файл, который еще не заражен, либо заражает все без поиска подходящего файла. Заражая файл, вирус внедряется в его код, чтобы получить управление над файлом при его запуске. Кроме своей основной функции - размножения, вирус вполне может сделать что-нибудь замысловатое (сказать, спросить, сыграть) - это уже зависит от фантазии автора вируса. Если файловый вирус резидентный, то он устанавливается в память и получает возможность заражать файлы и проявлять прочие способности не только во время работы зараженного файла. Заражая исполняемый файл, вирус всегда изменяет его код - следовательно, заражение исполняемого файла всегда можно обнаружить. Но, изменяя код файла, вирус не обязательно вносит другие изменения:
• он не обязан менять длину файла
• неиспользуемые участки кода
• не обязан менять начало файла
Наконец, к файловым вирусам часто относят вирусы, которые «имеют некоторое отношение к файлам», но не обязаны внедряться в их код. Рассмотрим в качестве примера схему функционирования вирусов известного семейства Dir-II. Нельзя не признать, что, появившись в 1991 г., эти вирусы стали причиной настоящей эпидемией чумы в России. Рассмотрим модель, на которой ясно видна основная идея таких типов вируса. Информация о файлах хранится в каталогах. Каждая запись каталога включает в себя имя файла, дату и время создания, некоторую дополнительную информацию, номер первого кластера файла и резервные байты.
При запуске исполняемых файлов система считывает из записи в каталоге первый кластер файла и далее все остальные кластеры. Вирусы семейства Dir-II производят следующую «реорганизацию» файловой системы: сам вирус записывается в некоторые свободные секторы диска, которые он помечает как сбойные. Кроме того, он сохраняет информацию о первых кластерах исполняемых файлов в резервных битах, а на место этой информации записывает ссылки на себя.
Таким образом, при запуске любого файла вирус получает управление (операционная система запускает его сама), резидентно устанавливается в память и передает управление вызванному файлу.
Загрузочно-файловые вирусы
Загрузочно-файловые вирусы действуют по схожей схеме с загрузочными вирусами. Основное отличие их от загрузочных – это дополнительное заражение файлов и кластеров диска при запуске ОС, помимо MBR.
Полиморфные вирусы
Большинство вопросов связано с термином «полиморфный вирус». Этот вид компьютерных вирусов представляется на сегодняшний день наиболее опасным. Выясним, что это такое.
Полиморфные вирусы - вирусы, модифицирующие свой код в зараженных программах таким образом, что два экземпляра одного и того же вируса могут не совпадать ни в одном бите.
Такие вирусы не только шифруют свой код, используя различные пути шифрования, но и содержат код генерации шифровщика и расшифровщика, что отличает их от обычных шифровальных вирусов, которые также могут шифровать участки своего кода, но имеют при этом постоянный код шифровальщика и расшифровщика. Полиморфные вирусы - это вирусы с самомодифицирующимися расшифровщиками. Цель такого шифрования: имея зараженный и оригинальный файлы вы все равно не сможете проанализировать его код с помощью обычного дизассемблирования (транслирование, преобразование машинного кода, объектного файла или библиотечных модулей в текст программы на языке ассемблера.). Этот код зашифрован и представляет собой бессмысленный набор команд. Расшифровка производится самим вирусом уже непосредственно во время выполнения. При этом возможны варианты: он может расшифровать себя всего сразу, а может выполнить такую расшифровку «по ходу дела», может вновь шифровать уже отработавшие участки. Все это делается ради затруднения анализа кода вируса.
Как бороться с вирусами. Элементарная профилактика.
Способы борьбы с компьютерными вирусами можно разделить на две группы: профилактика вирусного заражения и уменьшение предполагаемого ущерба от такого заражения; методика использования антивирусных программ, в том числе обезвреживание и удаление известного и неизвестного вируса.
Ну бесспорно защита от вирусов в первую очередь начинается с того, что нужно придерживаться определенных правил:
Правило 1 - Крайне осторожно относиться к программам и документам Word/Excel, которые получаете из глобальных сетей. Перед тем, как запустить файл на выполнение или открыть документ/таблицу, обязательно проверить их на наличие вирусов.
Используйте специализированные антивирусы — для проверки «налету» всех файлов, приходящих по электронной почте (и по Internet в целом).Нужна защита в сети? AGAVA Firewall - защитит лучше, чем кто-либо!
Правило 2 - Лучше покупать дистрибутивные копии программного обеспечения у официальных продавцов, чем бесплатно или почти бесплатно копировать их из других источников или покупать пиратские копии. При этом значительно снижается вероятность заражения, хотя известны случаи покупки инфицированных дистрибутивов.
Правило 3 - Пользоваться только хорошо зарекомендовавшими себя источниками программ и прочих файлов, хотя это не всегда спасает. По-видимому, единственными надежными с точки зрения защиты от вирусов являются ftp/WWW антивирусных фирм-разработчиков
Правило 4 - Стараться не запускать непроверенные файлы, в том числе полученные из компьютерной сети. Желательно использовать только программы, полученные из надежных источников. Перед запуском новых программ обязательно проверьте их одним или несколькими антивирусами. Если даже антивирус не среагировал на файл, который был закачен с Интернета — не торопиться его запускать.
Правило 5 - Желательно также, чтобы при работе с новым программным обеспечением в памяти резидентно находился какой-либо антивирусный монитор. Если запускаемая программа заражена вирусом, то такой монитор поможет обнаружить вирус и остановить его распространение.
|