что делает файловый вирус
ФАЙЛОВЫЕ ВИРУСЫ
Как вирусы проникают в структуру файловой системы?
Есть очень немногочисленная особая группа вирусов, которые заражают файлы, не внедряя в них свой код явным образом. Но, тем не менее, мы относим их к файловым вирусам, так как объектами для них являются исполнимые файлы.
Эти вирусы используют изощренную технологию размножения, которая позволяет им распространяться с большой скоростью. Технология эта заключается в том, что вирусы этой группы (ее называют DIR-группой) вносят изменения в структуру файловой системы.
Например, вирус записывает свой код в один из кластеров заражаемой дискеты или логического диска, помечая при этом его в как конец файла, то есть последний в цепочке кластеров. Затем изменяет в описаниях исполняемых файлов в структурах каталогов номер первого кластера. Вместо истинного первого номера кластера, принадлежащего файлу, вирус вписывает номер кластера, содержащего его код. А оригинальный номер первого кластера записывает в неиспользуемое поле описания файла. То есть когда запускается на выполнение зараженный файл, операционная система находит только один (он помечен как последний) кластер, который содержит код вируса. Считывает вирус в оперативную память и передает ему управление. Вирус остается резидентным в оперативной памяти и перехватывает все обращения к диску. Он определяет настоящее расположение файла программы и загружает ее.
Какие файлы заражают вирусы?
3. Исполняемые файлы в формате EXE. Так как такие файлы имеют расширение имени EXE, их называют еще EXE-файлами. Они имеют более сложную структуру и, следовательно, имеют размер больший 64 Килобайт. Кроме процессорных команд и данных эти файлы содержат специальный заголовок, который находится в самом начале файла. Заголовок EXE- файла начинается специальной двухбайтовой меткой. Это два символа “MZ” или, реже “ZM”. По этой метке загрузчик и определяет файл как EXE-файл, независимо от расширения имени!
Заметим, что расширение имени может не соответствовать внутреннему формату файла. То есть файл, имеющий формат EXE, может иметь расширение имени COM, но при загрузке по специальному признаку файла (метке) загрузчик все равно распознает файл как EXE-файл.
EXE-программы содержат несколько сегментов: сегмент кода, сегмент данных и сегмент стека. Поэтому в заголовке EXE-файла также хранится таблица настройки, которую использует загрузчик для инициализации программы. Обычно заголовок имеет размер 512 байт, и значительная его часть не используется (содержит нули).
Итак, когда пользователь запускает EXE-файл на выполнение, операционная система загружает его в оперативную память, считывает информацию из заголовка EXE-файла и настраивает его в соответствии с таблицей настойки. Затем управление передается на точку входа, также содержащуюся в заголовке, т.е. на первую команду программы.
5. Системные драйверы. Файлы драйверов имеют расширение SYS или BIN.
Это специальный вид программ. Драйверы запускаются только на этапе загрузки операционной системы, во время ее инициализации и интерпретации файла конфигурации.
6. Также могут быть инфицированы и файлы оверлеев, и динамически загружаемых библиотек. Это файлы, содержащие исполняемые двоичные коды, используемые основной программой по мере необходимости.
Файловые вирусы записывают свой код в исполняемый файл и изменяют его так, чтобы после запуска первым получил управление код вируса. Очевидно, что вирус может записать свой код в начало, середину или конец файла. Может также разделить свой код на несколько частей и разместить их в разных местах заражаемого файла.
Рассмотрим подробнее внедрение вируса в файл.
Внедрение вируса в начало файла.
Известны три способа внедрения вируса в начало файла.
1. Запись с перекрытием (overwriting). При заражении вирус записывает свои коды в начало файла, не сохраняя старого содержимого начала файла. Такие вирусы называют еще перекрывающими вирусами. Естественно, что при этом программа перестает работать и не восстанавливается. При запуске такой программы ничего не происходит, кроме того, что вирус заражает другой файл. Такие вирусы легко обнаруживаются и, следовательно, медленно распространяются. Это достаточно редкий способ, но очень простой. Чаще его используют “начинающие” авторы вирусов.
Вирус может записаться перед исходным кодом программы (prepending), просто сдвинув коды зараженной программы на число байт, равное длине вируса. Вирус создает в оперативной памяти свою копию, дописывает к ней заражаемый файл и сохраняет полученную конкатенацию на диск.
3. Вирус переписывает начало заражаемого файла в его конец, а сам копируется в освободившееся место. Начало заражаемого файла вирус может переписать и в любое другое место.
Внедрение вируса в середину файла
Все случаи внедрения вирусов в середину файла можно считать экзотическими, так как такой механизм реализовывает небольшое количество вирусов. Рассмотрим такие алгоритмы.
1) Вирус может быть скопирован в таблицу настройки адресов EXE-файла.
2) Вирус внедряется в область стека файла.
3) Вирус как бы “раздвигает” файл для себя.
4) По аналогии с внедрением вируса в начало файла, при котором переписывается содержимое начала файла в конец, возможен вариант, когда вирус записывается в середину файла, сохраняя при этом часть файла в его конец.
5) Достаточно сложный алгоритм компрессирования (сжатия) некоторых участков файлов. В результате при заражении не увеличивается длина файла.
Внедрение вируса в конец файла
У COM-файла изменяет первые три байта (иногда больше
а) либо на коды инструкции “Jmp адрес вируса” (это команда перехода на тело вируса);
б) либо на коды программы, передающей управление на тело вируса.
Оригинальные три байта начала файла вирус обязательно считывает и сохраняет.
а) модифицируется его заголовок. В заголовке изменяются
· значение стартового адреса
· значение длины выполняемого файла
· контрольная сумма файла ( редко );
б) иногда EXE-файл переводится в формат COM и затем заражается как COM-файл.
Способ, при котором вирус дописывается в конец файла и изменяет у COM-файла
называется стандартным способом заражения файлов.
Компьютерный вирус
Компьютерный вирус — разновидность компьютерной программы, способной создавать свои копии (необязательно совпадающие с оригиналом) и внедрять их в файлы, системные области компьютера, компьютерных сетей, а также осуществлять иные деструктивные действия. При этом копии сохраняют способность дальнейшего распространения. Компьютерный вирус относится к вредоносным программам.
Содержание
Определение компьютерного вируса — исторически проблемный вопрос, поскольку достаточно сложно дать четкое определение вируса, очертив при этом свойства, присущие только вирусам и не касающиеся других программных систем. Наоборот, давая жесткое определение вируса как программы, обладающей определенными свойствами практически сразу же можно найти пример вируса, таковыми свойствами не обладающего.
Другая проблема, связанная с определением компьютерного вируса кроется в том, что сегодня под вирусом чаще всего понимается не «традиционный» вирус, а практически любая вредоносная программа. Это приводит к путанице в терминологии, осложненной еще и тем, что практически все современные антивирусы способны выявлять указанные типы вредоносных программ, таким образом ассоциация «вредоносная программа-вирус» становится все более устойчивой.
Классификация
В настоящее время не существует единой системы классификации и именования вирусов, однако, в различных источниках можно встретить разные классификации, приведем некоторые из них:
Классификация вирусов по способу заражения
Резидентные
Такие вирусы, получив управление, так или иначе остается в памяти и производят поиск жертв непрерывно, до завершения работы среды, в которой он выполняется. С переходом на Windows проблема остаться в памяти перестала быть актуальной: практически все вирусы, исполняемые в среде Windows, равно как и в среде приложений Microsoft Office, являются резидентными вирусами. Соответственно, атрибут резидентный применим только к файловым DOS вирусам. Существование нерезидентных Windows вирусов возможно, но на практике они являются редким исключением.
Нерезидентные
Получив управление, такой вирус производит разовый поиск жертв, после чего передает управление ассоциированному с ним объекту (зараженному объекту). К такому типу вирусов можно отнести скрипт-вирусы.
Классификация вирусов по степени воздействия
Безвредные
Вирусы никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения);
Неопасные
Вирусы не мешающие работе компьютера, но уменьшающие объем свободной оперативной памяти и памяти на дисках, действия таких вирусов проявляются в каких-либо графических или звуковых эффектах;
Опасные
Вирусы, которые могут привести к различным нарушениям в работе компьютера;
Очень опасные
Вирусы, воздействие которых может привести к потере программ, уничтожению данных, стиранию информации в системных областях диска.
Классификация вирусов по способу маскировки
При создании копий для маскировки могут применяться следующие технологии:
Шифрование — вирус состоит из двух функциональных кусков: собственно вирус и шифратор. Каждая копия вируса состоит из шифратора, случайного ключа и собственно вируса, зашифрованного этим ключом.
Метаморфизм — создание различных копий вируса путем замены блоков команд на эквивалентные, перестановки местами кусков кода, вставки между значащими кусками кода «мусорных» команд, которые практически ничего не делают.
Шифрованный вирус
Это вирус, использующий простое шифрование со случайным ключом и неизменный шифратор. Такие вирусы легко обнаруживаются по сигнатуре шифратора.
Вирус-шифровальщик
В большинстве случаев вирус-шифровальщик приходит по электронной почте в виде вложения от незнакомого пользователю человека, а возможно, и от имени известного банка или действующей крупной организации. Письма приходят с заголовком вида: «Акт сверки…», «Ваша задолженность перед банком…», «Проверка регистрационных данных», «Резюме», «Блокировка расчетного счета» и прочее. В письме содержится вложение с документами, якобы подтверждающими факт, указанный в заголовке или теле письма. При открытии этого вложения происходит моментальный запуск вируса-шифровальщика, который незаметно и мгновенно зашифрует все документы. Пользователь обнаружит заражение, увидев, что все файлы, имевшие до этого знакомые значки, станут отображаться иконками неизвестного типа. За расшифровку преступником будут затребованы деньги. Но, зачастую, даже заплатив злоумышленнику, шансы восстановить данные ничтожно малы.
В 2016 году данные вирусы вышли на новый уровень, изменив принцип работы. В апреле 2016 г. в сети появилась информация о новом виде вируса-шифровальщика Петя (Petya), который вместо шифрования отдельных файлов, шифрует таблицу MFT файловой системы, что приводит к тому что операционная система не может обнаружить файлы на диске и весь диск по факту оказывается зашифрован.
Полиморфный вирус
Вирус, использующий метаморфный шифратор для шифрования основного тела вируса со случайным ключом. При этом часть информации, используемой для получения новых копий шифратора также может быть зашифрована. Например, вирус может реализовывать несколько алгоритмов шифрования и при создании новой копии менять не только команды шифратора, но и сам алгоритм.
Классификация вирусов по среде обитания
Под «средой обитания» понимаются системные области компьютера, операционные системы или приложения, в компоненты (файлы) которых внедряется код вируса. По среде обитания вирусы можно разделить на:
В эпоху вирусов для DOS часто встречались гибридные файлово-загрузочные вирусы. После массового перехода на операционные системы семейства Windows практически исчезли как сами загрузочные вирусы, так и упомянутые гибриды. Отдельно стоит отметить тот факт, что вирусы, рассчитанные для работы в среде определенной ОС или приложения, оказываются неработоспособными в среде других ОС и приложений. Поэтому как отдельный атрибут вируса выделяется среда, в которой он способен выполняться. Для файловых вирусов это DOS, Windows, Linux, MacOS, OS/2. Для макровирусов — Word, Excel, PowerPoint, Office. Иногда вирусу требуется для корректной работы какая-то определенная версия ОС или приложения, тогда атрибут указывается более узко: Win9x, Excel97.
Файловые вирусы
Файловые вирусы при своем размножении тем или иным способом используют файловую систему какой-либо (или каких-либо) ОС. Они:
Все, что подключено к Интернету – нуждается в антивирусной защите: 82% обнаруженных вирусов «прятались» в файлах с расширением PHP, HTML и EXE.
Это явно говорит о том, что выбор хакеров – это Интернет, а не атаки с использованием уязвимостей программного обеспечения. Угрозы имеют полиморфный характер, это означает, что вредоносные программы могут быть эффективно перекодированы удаленно, что делает их трудно обнаружимыми. Поэтому высокая вероятность заражения связана, в том числе, и с посещениями сайтов. Согласно данным eScan MicroWorld, количество перенаправляющих ссылок и скрытых загрузок (drive-by-download) на взломанных ресурсах увеличилось более чем на 20% за последние два месяца. Социальные сети также серьезно расширяют возможности доставки угроз.
Возьмем, к примеру, циркулировавший в Facebook баннер, предлагавший пользователю изменить цвет страницы на красный, синий, желтый и т.д. Заманчивый баннер содержал ссылку, направлявшую пользователя на мошеннический сайт. Там в руки злоумышленникам попадала конфиденциальная информация, которая использовалась или продавалась для получения незаконной прибыли различным интернет-организациям. Таким образом, антивирусы, основанные на традиционных сигнатурах, сегодня малоэффективны, так как они не могут надежно защитить от веб-угроз в режиме реального времени. Антивирус, который основан на облачных технологиях и получает информацию об угрозах из «облака», эти задачи под силу.
Загрузочные вирусы
MosaicRegressor (вирус)
Загрузочные вирусы записывают себя либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный загрузчик винчестера (Master Boot Record), либо меняют указатель на активный boot-сектор. Данный тип вирусов был достаточно распространён в 1990-х, но практически исчез с переходом на 32-битные операционные системы и отказом от использования дискет как основного способа обмена информацией. Теоретически возможно появление загрузочных вирусов, заражающих CD-диски и USB-флешек, но на текущий момент такие вирусы не обнаружены.
Макро-вирусы
Многие табличные и графические редакторы, системы проектирования, текстовые процессоры имеют свои макро-языки для автоматизации выполнения повторяющихся действий. Эти макро-языки часто имеют сложную структуру и развитый набор команд. Макро-вирусы являются программами на макро-языках, встроенных в такие системы обработки данных. Для своего размножения вирусы этого класса используют возможности макро-языков и при их помощи переносят себя из одного зараженного файла (документа или таблицы) в другие.
Скрипт-вирусы
Скрипт-вирусы, также как и макро-вирусы, являются подгруппой файловых вирусов. Данные вирусы, написаны на различных скрипт-языках (VBS, JS, BAT, PHP и т.д.). Они либо заражают другие скрипт-программы (командные и служебные файлы MS Windows или Linux), либо являются частями многокомпонентных вирусов. Также, данные вирусы могут заражать файлы других форматов (например, HTML), если в них возможно выполнение скриптов.
Классификация вирусов по способу заражения файлов
Перезаписывающие
Данный метод заражения является наиболее простым: вирус записывает свой код вместо кода заражаемого файла, уничтожая его содержимое. Естественно, что при этом файл перестает работать и не восстанавливается. Такие вирусы очень быстро обнаруживают себя, так как операционная система и приложения довольно быстро перестают работать.
Паразитические
К паразитическим относятся все файловые вирусы, которые при распространении своих копий обязательно изменяют содержимое файлов, оставляя сами файлы при этом полностью или частично работоспособными. Основными типами таких вирусов являются вирусы, записывающиеся в начало файлов (prepending), в конец файлов (appending) и в середину файлов (inserting). В свою очередь, внедрение вирусов в середину файлов происходит различными методами — путем переноса части файла в его конец или копирования своего кода в заведомо неиспользуемые данные файла (cavity-вирусы).
Внедрение вируса в начало файла
Известны два способа внедрения паразитического файлового вируса в начало файла. Первый способ заключается в том, что вирус переписывает начало заражаемого файла в его конец, а сам копируется в освободившееся место. При заражении файла вторым способом вирус дописывает заражаемый файл к своему телу.
Таким образом, при запуске зараженного файла первым управление получает код вируса. При этом вирусы, чтобы сохранить работоспособность программы, либо лечат зараженный файл, повторно запускают его, ждут окончания его работы и снова записываются в его начало (иногда для этого используется временный файл, в который записывается обезвреженный файл), либо восстанавливают код программы в памяти компьютера и настраивают необходимые адреса в ее теле (т. е. дублируют работу ОС).
Внедрение вируса в конец файла
Наиболее распространенным способом внедрения вируса в файл является дописывание вируса в его конец. При этом вирус изменяет начало файла таким образом, что первыми выполняемыми командами программы, содержащейся в файле, являются команды вируса. Для того чтобы получить управление при старте файла, вирус корректирует стартовый адрес программы (адрес точки входа). Для этого вирус производит необходимые изменения в заголовке файла.
Внедрение вируса в середину файла
Существует несколько методов внедрения вируса в середину файла. В наиболее простом из них вирус переносит часть файла в его конец или «раздвигает» файл и записывает свой код в освободившееся пространство. Этот способ во многом аналогичен методам, перечисленным выше. Некоторые вирусы при этом компрессируют переносимый блок файла так, что длина файла при заражении не изменяется.
Вторым является метод «cavity», при котором вирус записывается в заведомо неиспользуемые области файла. Вирус может быть скопирован в незадействованные области заголовок EXE-файла, в «дыры» между секциями EXE-файлов или в область текстовых сообщений популярных компиляторов. Существуют вирусы, заражающие только те файлы, которые содержат блоки, заполненные каким-либо постоянным байтом, при этом вирус записывает свой код вместо такого блока.
Кроме того, копирование вируса в середину файла может произойти в результате ошибки вируса, в этом случае файл может быть необратимо испорчен.
Вирусы без точки входа
Отдельно следует отметить довольно незначительную группу вирусов, не имеющих «точки входа» (EPO-вирусы — Entry Point Obscuring viruses). К ним относятся вирусы, не изменяющие адрес точки старта в заголовке EXE-файлов. Такие вирусы записывают команду перехода на свой код в какое-либо место в середину файла и получают управление не непосредственно при запуске зараженного файла, а при вызове процедуры, содержащей код передачи управления на тело вируса. Причем выполняться эта процедура может крайне редко (например, при выводе сообщения о какой-либо специфической ошибке). В результате вирус может долгие годы «спать» внутри файла и выскочить на свободу только при некоторых ограниченных условиях.
Перед тем, как записать в середину файла команду перехода на свой код, вирусу необходимо выбрать «правильный» адрес в файле — иначе зараженный файл может оказаться испорченным. Известны несколько способов, с помощью которых вирусы определяют такие адреса внутри файлов, например, поиск в файле последовательности стандартного кода заголовков процедур языков программирования (C/Pascal), дизассемблирование кода файла или замена адресов импортируемых функций.
Вирусы-компаньоны
К категории вирусов-компаньонов относятся вирусы, не изменяющие заражаемых файлов. Алгоритм работы этих вирусов состоит в том, что для заражаемого файла создается файл-двойник, причем при запуске зараженного файла управление получает именно этот двойник, т. е. вирус.
К вирусам данного типа относятся те из них, которые при заражении переименовывают файл в какое-либо другое имя, запоминают его (для последующего запуска файла-хозяина) и записывают свой код на диск под именем заражаемого файла. Например, файл NOTEPAD.EXE переименовывается в NOTEPAD.EXD, а вирус записывается под именем NOTEPAD.EXE. При запуске управление получает код вируса, который затем запускает оригинальный NOTEPAD.
Возможно существование и других типов вирусов-компаньонов, использующих иные оригинальные идеи или особенности других операционных систем. Например, PATH-компаньоны, которые размещают свои копии в основном катагоге Windows, используя тот факт, что этот каталог является первым в списке PATH, и файлы для запуска Windows в первую очередь будет искать именно в нем. Данными способом самозапуска пользуются также многие компьютерные черви и троянские программы.
Вирусы-ссылки
Вирусы-ссылки или link-вирусы не изменяют физического содержимого файлов, однако при запуске зараженного файла «заставляют» ОС выполнить свой код. Этой цели они достигают модификацией необходимых полей файловой системы.
Файловые черви
Файловые черви никоим образом не связывают свое присутствие с каким-либо выполняемым файлом. При размножении они всего лишь копируют свой код в какие-либо каталоги дисков в надежде, что эти новые копии будут когда-либо запущены пользователем. Иногда эти вирусы дают своим копиям «специальные» имена, чтобы подтолкнуть пользователя на запуск своей копии — например, INSTALL.EXE или WINSTART.BAT.
Некоторые файловые черви могут записывать свои копии в архивы (ARJ, ZIP, RAR). Другие записывают команду запуска зараженного файла в BAT-файлы.
OBJ-, LIB-вирусы и вирусы в исходных текстах
Вирусы, заражающие библиотеки компиляторов, объектные модули и исходные тексты программ, достаточно экзотичны и практически не распространены. Всего их около десятка. Вирусы, заражающие OBJ- и LIB-файлы, записывают в них свой код в формате объектного модуля или библиотеки. Зараженный файл, таким образом, не является выполняемым и неспособен на дальнейшее распространение вируса в своем текущем состоянии. Носителем же «живого» вируса становится COM- или EXE-файл, получаемый в процессе линковки зараженного OBJ/LIB-файла с другими объектными модулями и библиотеками. Таким образом, вирус распространяется в два этапа: на первом заражаются OBJ/LIB-файлы, на втором этапе (линковка) получается работоспособный вирус.
Заражение исходных текстов программ является логическим продолжением предыдущего метода размножения. При этом вирус добавляет к исходным текстам свой исходный код (в этом случае вирус должен содержать его в своем теле) или свой шестнадцатеричный дамп (что технически легче). Зараженный файл способен на дальнейшее распространение вируса только после компиляции и линковки.
Распространение
В отличие от червей (сетевых червей), вирусы не используют сетевых сервисов для проникновения на другие компьютеры. Копия вируса попадает на удалённые компьютеры только в том случае, если зараженный объект по каким-либо не зависящим от функционала вируса причинам оказывается активизированным на другом компьютере, например:
Интересные факты
Специалисты «Лаборатории Касперского» подготовили летом 2012 года список из 15 наиболее заметных вредоносных программ, оставивших свой след в истории:
Panda Security: рейтинг вирусов 2010 года
Итак, если вы хотите узнать, как сказать «Смотри фотку» на другом языке, этот список сэкономит вам время:
Завершая «Рейтинг вирусов 2010», мы бы хотели особо отметить «Насекомое года»: бот-сеть Mariposa, появившаяся в марте 2010. Напомним, что Mariposa инфицировала около 13 миллионов компьютеров по всему миру. Однако благодаря сотрудничеству Panda Security, Испанской Гражданской гвардии, ФБР и военной разведки удалось арестовать создателей этой бот-сети.
Что делает файловый вирус
Что нужно знать о компьютерных вирусах
(с) Александр Фролов, Григорий Фролов, 2002
С момента создания персональных компьютеров, доступных специалистам и широким слоям населения, начала свой отсчет история компьютерных вирусов. Оказалось, что персональные компьютеры и программы, распространяющиеся на дискетах, представляют собой ту самую «питательную среду», в которой возникают и беззаботно живут компьютерные вирусы. Мифы и легенды, возникающие вокруг способности компьютерных вирусов приникать везде и повсюду, окутывают эти вредоносные создания туманом непонятного и неизвестного.
К сожалению, даже опытные в своем деле системные администраторы (не говоря уже об обычных пользователях) не всегда точно представляют себе, что же такое компьютерные вирусы, как они проникают в компьютеры и компьютерные сети, и какой могут нанести вред. Вместе с тем, не понимая механизма функционирования и распространения вирусов, невозможно организовать эффективную антивирусную защиту. Даже самая лучшая антивирусная программа окажется бессильной, если она будет использована неправильно.
Краткий курс истории компьютерных вирусов
Что же такое компьютерный вирус?
Проникнув в компьютерную систему, вирус может ограничиться безобидными визуальными или звуковыми эффектами, а может вызвать потерю или искажение данных, а также утечку личной и конфиденциальной информации. В худшем случае компьютерная система, пораженная вирусом, может оказаться под полным контролем злоумышленника.
Сегодня люди доверяют компьютерам решение многих критических задач. Поэтому выход из строя компьютерных систем может иметь весьма и весьма тяжелые последствия, вплоть до человеческих жертв (представьте себе вирус в компьютерных системах аэродромных служб). Об этом не следует забывать разработчикам информационных компьютерных систем и системным администраторам.
На сегодняшний день известны десятки тысяч различных вирусов. Несмотря на такое изобилие, существует довольно ограниченное количество типов вирусов, отличающихся друг от друга механизмом распространения и принципом действия. Есть и комбинированные вирусы, которые можно отнести одновременно к нескольким различным типам. Мы расскажем о различных типах вирусов, придерживаясь по возможности хронологического порядка их появления.
Файловые вирусы
Получив управление, вирус может заразить другие программы, внедриться в оперативную память компьютера и выполнить другие вредоносные функции. Далее вирус передает управление зараженной программе, и та исполняется обычным образом. В результате пользователь, запускающий программу, и не подозревает, что она «больна».
Современные программы занимают немалый объем и распространяются, как правило, на компакт-дисках. Обмен программами на дискетах уже давно ушел в прошлое. Устанавливая программу с лицензионного компакт-диска, Вы обычно не рискуете заразить свой компьютер вирусом. Другое дело — пиратские компакт-диски. Здесь ни за что ручаться нельзя (хотя нам известны примеры распространения вирусов и на лицензионных компакт-дисках).
В результате сегодня файловые вирусы уступили пальму первенства по популярности вирусам других типов, о которых мы еще расскажем.
Загрузочные вирусы
Загрузочные вирусы получают управление на этапе инициализации компьютера, еще до начала загрузки операционной системы. Чтобы понять, как они работают, нужно вспомнить последовательность инициализации компьютера и загрузки операционной системы.
При загрузке с жесткого диска процедура POST считывает главную загрузочную запись (Master Boot Record, MBR ) и записывает ее в оперативную память компьютера. Эта запись содержит программу первоначальной загрузки и таблицу разделов, в которой описаны все разделы жесткого диска. Она хранится в самом первом секторе жесткого диска.
После чтения MBR управление передается только что прочитанной с диска программе первоначальной загрузки. Она анализирует содержимое таблицы разделов, выбирает активный раздел и считывает загрузочную запись BR активного раздела. Эта запись аналогична записи BR системной дискеты и выполняет те же самые функции.
Теперь о том, как «работает» загрузочный вирус.
При заражении дискеты или жесткого диска компьютера загрузочный вирус заменяет загрузочную запись BR или главную загрузочную запись MBR (рис. 2). Исходные записи BR или MBR при этом запись обычно не пропадают (хотя так бывает не всегда). Вирус копирует их в один из свободных секторов диска.
Рис. 2. Вирус в загрузочной записи
Таким образом, вирус получает управление сразу после завершения процедуры POST. Затем он, как правило, действует по стандартному алгоритму. Вирус копирует себя в конец оперативной памяти, уменьшая при этом ее доступный объем. После этого он перехватывает несколько функций BIOS, так что обращение к ним передает управление вирусу. В конце процедуры заражения вирус загружает в оперативную память компьютера настоящий загрузочный сектор и передает ему управление. Далее компьютер загружается как обычно, но вирус уже находится в памяти и может контролировать работу всех программ и драйверов.
Комбинированные вирусы
Очень часто встречаются комбинированные вирусы, объединяющие свойства файловых и загрузочных вирусов.
Когда вирус зашифрует половину жесткого диска, он отображает на экране надпись:
После этого вирус ожидает, когда пользователь нажмет на какую-либо клавишу и продолжает свою работу
Вирус OneHalf использует различные механизмы для своей маскировки. Он является стелс-вирусом и использует при распространении полиморфные алгоритмы. Обнаружение и удаление вируса OneHalf — достаточно сложная задача, доступная далеко не всем антивирусным программам.
Вирусы-спутники
Как известно, в операционных системах MS-DOS, и Microsoft Windows различных версий существуют три типа файлов, которые пользователь может запустить на выполнение. Это командные или пакетные файлы BAT, а также исполнимые файлы COM и EXE. При этом в одном каталоге могут одновременно находиться несколько выполнимых файлов, имеющих одинаковое имя, но разное расширение имени.
Когда пользователь запускает программу и то вводит ее имя в системном приглашении операционной системы, то он обычно не указывает расширение файла. Какой же файл будет выполнен, если в каталоге имеется несколько программ с одинаковым именем, но разным расширением имени?
Оказывается, в этом случае запустится файл COM. Если в текущем каталоге или в каталогах, указанных в переменной среды PATH, существуют только файлы EXE и BAT, то выполняться будет файл EXE.
Когда вирус-спутник заражает файл EXE или BAT, он создает в этом же каталоге еще один файл с таким же именем, но с расширением имени COM. Вирус записывает себя в этот COM-файл. Таким образом, при запуске программы первым получит управление вирус-спутник, который затем может запустить эту программу, но уже под своим контролем.
Вирусы в пакетных файлах
@ECHO OFF
REM [. ]
copy %0 b.com>nul
b.com
del b.com
rem [. ]
В квадратных скобках [. ] здесь схематично показано расположение байт, которые являются процессорными инструкциями или данными вируса. Команда @ECHO OFF отключает вывод на экран названий выполняемых команд. Строка, начинающаяся с команды REM, является комментарием и никак не интерпретируется.
Команда copy %0 b.com>nul копирует зараженный командный файл в файл B.COM. Затем этот файл запускается и удаляется с диска командой del b.com.
Самое интересное, что файл B.COM, созданный вирусом, до единого байта совпадает с зараженным командным файлом. Оказывается, что если интерпретировать первые две строки зараженного BAT-файла как программу, она будет состоять из команд центрального процессора, которые фактически ничего не делают. Центральный процессор выполняет эти команды, а затем начинает выполнять настоящий код вируса, записанный после оператора комментария REM. Получив управление, вирус перехватывает прерывания ОС и активизируется.
В процессе распространения вирус следит за записью данных в файлы. Если первая строка, записываемая в файл, содержит команду @echo, тогда вирус считает, что записывается командный файл и заражает его.
Шифрующиеся и полиморфные вирусы
Чтобы затруднить обнаружение, некоторые вирусы шифруют свой код. Каждый раз, когда вирус заражает новую программу, он зашифровывает собственный код, используя новый ключ. В результате два экземпляра такого вируса могут значительно отличаться друг от друга, даже иметь разную длину. Шифрование кода вируса значительно усложняет процесс его исследования. Обычные программы не смогут дизассемблировать такой вирус.
Естественно, вирус способен работать только в том случае, если исполняемый код расшифрован. Когда запускается зараженная программа (или начинается загрузка с зараженной загрузочной записи BR ) и вирус получает управление, он должен расшифровать свой код.
Для того чтобы затруднить обнаружение вируса, для шифрования применяются не только разные ключи, но и разные процедуры шифрования. Два экземпляра таких вирусов не имеют ни одной совпадающей последовательности кода. Такие вирусы, которые могут полностью изменять свой код, получили название полиморфных вирусов.
Стелс-вирусы
Стелс-вирусы пытаются скрыть свое присутствие в компьютере. Они имеют резидентный модуль, постоянно находящийся в оперативной памяти компьютера. Этот модуль устанавливается в момент запуска зараженной программы или при загрузке с диска, зараженного загрузочным вирусом.
Резидентный модуль вируса перехватывает обращения к дисковой подсистеме компьютера. Если операционная система или другая программа считывают файл зараженной программы, то вирус подставляет настоящий, незараженный, файл программы. Для этого резидентный модуль вируса может временно удалять вирус из зараженного файла. После окончания работы с файлом он заражается снова.
Загрузочные стелс-вирусы действуют по такой же схеме. Когда какая-либо программа считывает данные из загрузочного сектора, вместо зараженного сектора подставляется настоящий загрузочный сектор.
Маскировка стелс-вирусов срабатывает только в том случае, если в оперативной памяти компьютера находится резидентный модуль вируса. Если компьютер загружается с «чистой», не зараженной системной дискеты, у вируса нет шансов получить управление и поэтому стелс-механизм не работает.
Макрокомандные вирусы
До сих пор мы рассказывали о вирусах, обитающих в исполняемых файлах программ и загрузочных секторах дисков. Широкое распространение пакета офисных программ Microsoft Office вызвало лавинообразное появление вирусов нового типа, распространяющихся не с программами, а с файлами документов.
Как распространяются макрокомандные вирусы?
Вместе с файлами документов. Пользователи обмениваются файлами через дискеты, сетевые каталоги файл-серверов корпоративной интрасети, через электронную почту и по другим каналам. Чтобы заразить компьютер макрокомандным вирусом, достаточно просто открыть файл документа в соответствующем офисном приложении — и дело сделано!
Вредоносные программы других типов
К сожалению, не только вирусы мешают нормальной работе компьютера и его программному обеспечению. Принято выделять еще, по крайней мере, три вида вредоносных программ. К ним относятся троянские программы, логические бомбы и программы-черви. Четкого разделения на эти виды не существует, троянские программы могут содержать вирусы, в вирусы могут быть встроены логические бомбы и так далее.
Троянские программы
Известен греческий миф о том, как была завоевана неприступная Троя. Греки оставили ночью у ворот Трои деревянного коня, внутри которого притаились солдаты. Когда горожане, движимые любопытством, втащили коня за стены города, солдаты вырвались наружу и завоевали город.
Троянские программы действуют подобным образом. Их основное назначение совершенно безобидное или даже полезное. Но когда пользователь запишет программу в свой компьютер и запустит ее, она может незаметно выполнять другие, чаще всего, вредоносные функции.
Чаще всего троянские программы используются для первоначального распространения вирусов, для получения удаленного доступа к компьютеру через Интернет, для кражи данных или их уничтожения. После того как троянская программа выполнит свою скрытую функцию, она может самоуничтожиться, чтобы затруднить обнаружение причины нарушений в работе системы.
Логические бомбы
Программы-черви
Программы-черви нацелены их авторами на выполнение определенной функции. Они могут быть ориентированы, например, на проникновение в систему и модификацию некоторых данных. Можно создать программу-червь, подсматривающую пароль для доступа к банковской системе и изменяющую базу данных таким образом, чтобы на счет программиста была переведена большая сумма денег.
Широко известная программа-червь была написана студентом Корнельского (Cornell) университета Робертом Моррисом (Robert Morris). Червь был запущен в Интернет второго ноября 1988 года. За пять часов червь Морриса смог проникнуть на более чем 6000 компьютеров, подключенных к этой сети.
Сложно ли создать компьютерный вирус
В среде хакеров бытует мнение о том, что для создания компьютерного вируса необходимо обладать какими-то необыкновенными способностями и талантами. Возможно, что создание «с нуля» шифрующегося полиморфного вируса и в самом деле доступно не каждому, однако и для этого не надо быть гением. Подавляющее большинство вирусов пишут посредственные программисты, которые, по всей видимости, не могут найти себе более достойное занятие. Современные антивирусные программы без особого труда расправляются с их «шедеврами».
Более того, можно создавать вирусы, не вникая в детали их внутреннего устройства и даже без программирования. Существуют десятки специальных программ, представляющих собой ни что иное, как настоящие лаборатории компьютерных вирусов!
Обладая дружественным (если это слово здесь уместно) пользовательским интерфейсом (рис. 3), такие программы позволяют злоумышленнику при помощи меню, списков и галочек задать все атрибуты создаваемого вируса — его тип, способ распространения и маскировки, а также вредоносное воздействие. Далее программа автоматически генерирует зараженный файл, готовый к распространению!
В результате каждый день появляется значительное количество новых вирусов, некоторые из которых могут представлять собой серьезную опасность. Надо, однако, заметить, что даже простейшие вирусы, написанные дилетантами или созданные автоматическими генераторами вирусов, могут вызвать потерю данных и доставить много других неприятностей. Поэтому никогда не стоит пренебрегать средствами защиты от компьютерных вирусов.
Основные каналы распространения вирусов
Для того чтобы разработать эффективную систему антивирусной защиты компьютеров и корпоративных интрасетей, необходимо четко представлять себе, с какой стороны грозит опасность. Для своего распространения вирусы находят самые разные каналы, причем к старым способам распространения постоянно добавляются все новые и новые.
Классические способы распространения
Загрузочные вирусы попадают на компьютер, когда пользователь забывает зараженную дискету в дисководе, а затем перезагружает ОС. Надо сказать, что загрузочный вирус может также быть занесен на компьютер вирусами других типов.
Если зараженный компьютер подключен к локальной сети, вирус может легко «перепрыгнуть» на файл-сервер, а оттуда через каталоги, доступные для записи, — на все остальные компьютеры сети. Так начинается вирусная эпидемия.
Системный администратор должен помнить, что вирус имеет в сети такие же права, что и пользователь, на компьютер которого этот вирус пробрался. Поэтому он может попасть во все сетевые каталоги, доступные пользователю. А если вирус завелся на рабочей станции администратора сети — надо ждать беды…
Вирус по почте
Сегодня электронная почта проникла во все сферы человеческой деятельности — от личной переписки до деловой корреспонденции. Как Вы знаете, вместе с сообщением электронного письма может передаваться практически любой файл, а вместе с файлом — и компьютерный вирус.
Более того, из-за различных ошибок, присутствующих в программном обеспечении почтовых клиентов, иногда файл вложения может запуститься автоматически!
При получении сообщения в формате HTML почтовый клиент показывает его содержимое в своем окне. Если сообщение содержит вредоносные активные компоненты, они сразу же запускаются и делают свое черное дело. Чаще всего таким способом распространяются троянские программы и черви.
Вы можете получить приглашение посетить троянский сайт в обычном электронном письме. Заинтересовавшись описанием сайта и щелкнув ссылку, расположенную в теле электронного сообщения, легко оказаться в опасном месте всемирной паутины.
Вирусы в системах документооборота
Так как эти вирусы «живут» не в файлах, а в записях баз данных, для защиты от них необходимо использовать специализированные антивирусные программы.
Новые и экзотические вирусы
По мере развития компьютерных технологий совершенствуются и компьютерные вирусы, приспосабливаясь к новым для себя сферам обитания. Новый вирус W32/Perrun, сообщение о котором есть на сайте компании Network Associates (http://www.nai.com), способен распространяться… через файлы графических изображений формата JPEG!
Сразу после запуска вирус W32/Perrun ищет файлы с расширением имени JPG и дописывает к ним свой код. После этого зараженные файлы JPEG будут содержать не только изображения, но и код вируса. Надо сказать, что данный вирус не опасен и требует для своего распространения отдельной программы.
Среди новых «достижений» создателей вредоносных программ заслуживает упоминания вирус Palm.Phage. Он заражает приложения «наладонных» компьютеров PalmPilot, перезаписывая файлы этих приложений своим кодом.
Появление таких вирусов, как W32/Perrun и Palm.Phage, свидетельствует о том, что в любой момент может родиться компьютерный вирус, троянская программа или червь, нового, неизвестного ранее типа, или известного типа, но нацеленного на новое компьютерное оборудование. Новые вирусы могут использовать неизвестные или несуществующие ранее каналы распространения, а также новые технологии внедрения в компьютерные системы.
В следующей нашей статье, посвященной проблемам антивирусной защиты, мы рассмотрим технологии, методики и антивирусные средства, с помощью которых можно защититься не только от известных, но в ряде случаев и от новых, доселе не исследованных вредоносных компьютерных программ.