Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MethodFull.doc
Скачиваний:
113
Добавлен:
09.02.2015
Размер:
908.8 Кб
Скачать

Компьютерные вирусы

Компьютерные вирусы являются одной из разновидностей компьютерного вандализма, получившего распространение в конце 80-х гг. Исторически их возникновение связано с идеей создания самовоспроизводящихся программ – концепции, уходящей своими корнями в пятидесятые годы. Идея самовоспроизводящихся механизмов исследовалась еще Джоном фон Нейманом, который в 1951 г. предложил метод создания таких механизмов и затем неоднократно открывалась и переоткрывалась различными авторами.

В современном мире вирусы превратились в одну из основных и наиболее распространенных информационных угроз. Знание принципов их работы и методов распространения является необходимым для понимания методов обнаружения и противодействия вирусам.

Первоначально компьютерными вирусами назывались программы обладающие свойством самовоспроизведения. Говоря другими словами, вирус – это программа умеющая создавать другие программы, обладающие теми же свойствами, что и она сама (в первую очередь умеющие также размножаться). Этот принцип их работы во многом аналогичен биологическим вирусам, что и явилось причиной названия таких программ.

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

Часто вирусы создаются ради развлечения или как учебные проекты и затем начинают распространятся (иногда совершенно случайно, по ошибке автора) по миру, вызывая порой целые эпидемии. Случается также, что вирус выступает средством достижения корыстных целей – коммерческий шпионаж, информационные диверсии, сбор данных.

За годы своего существования методы написания вирусов совершенствовались, появлялись новые разновидности вирусов, новые методы заражения, распространения и маскировки. Со временем термин «вирус» стал более размытым и сейчас применяется практически ко всем программам имеющим нежелательный, деструктивный эффект.

Рассмотрим основные виды вирусов.

Файловые вирусы

«Классическая» разновидность вирусов. Основной принцип их работы состоит в том, что они внедряются внутрь исполняемых файлов (.exe, .dll) таким образом, что при их запуске управление получает не сама программа, а внедренный в нее вирус. После получения управления вирус может подыскать себе другую «жертву» и заразить ее или же выполнить свою деструктивную функцию, после чего управление возвращается к оригинальной программе. Для пользователя работа вируса может оставаться совершенно незамеченой, разве что, возможно, программа начинает запускаться немного медленнее. Если подобный вирус не заметить вовремя он заразит все программы на компьютере и, рано или поздно, уничтожит все данные на компьютере или что-либо другое в зависимости от того, какой деструктивный эффект заложен в вирус.

Когда-то единственным методом распространения подобных вирусов в мире было копирование программ друг у друга. С возникновением Интернета объемы копирования программ, а значит и скорости распространения вирусов возросли многократно.

Наиболее простой метод внедрения вируса в чужие программы состоит в следующем: вирус находит подходящую (еще не зараженную) программу «жертву» и дописывает себя в ее конец. Далее в точку входа в программу (т.е. в то место программы, откуда начинается ее исполнение) ставится инструкция перехода («GOTO» –JMP) на тело вируса. Инструкция перехода сама по себе занимает от двух до пяти байтов. Так как запись инструкции в точку входа программы означает затирание тех байт, которые там уже находятся. По этому эти байты предварительно сохраняются в теле вируса или неиспользуемых областях заголовка программы.

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

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

Файловые вирусы часто подразделяются на резидентные и нерезидентные. Отличие между ними состоит в том, что резидентные вирусы (в противоположность своим нерезидентным аналогам) после первого запуска остаются в памяти даже после того, как зараженная программа завершила свою работу. Резидентный вирус, будучи в оперативной памяти, может перехватывать запуск других программ, отслеживать работу пользователя и использовать эту информацию в своих целях. Так часто бывает, что после первого запуска вируса, заражению подвергаются все запускаемые в дальнейшем программы.

«Хороший» вирус всегда старается скрыть свое присутствие в системе, ведь чем позднее будет обнаружено его наличие, тем большее количество раз он успеет размножиться и больше вреда сможет нанести. Поэтому одной из первичных задач вируса является маскировка.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]