Краткая характеристика основных вредоносных программ сводится к следующему. Загрузочные вирусы записывают себя либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный загрузчик винчестера (Master Boot Record), либо меняют указатель на активный boot-сектор. Они внедряются в память компьютера при загрузке с инфицированного диска. При этом системный загрузчик считывает содержимое первого сектора диска, с которого производится загрузка, помещает считанную информацию в память и передает на нее (т.е. на вирус) управление. После этого начинают выполняться инструкции вируса, который, как правило, уменьшает объем свободной памяти, копирует в освободившееся место свой код и считывает с диска свое продолжение (если оно есть), перехватывает необходимые вектора прерываний (обычно – INT 13H), считывает в память оригинальный boot-сектор и передает на него управление.
В дальнейшем загрузочный вирус ведет себя так же, как файловый: перехватывает обращения операционной системы к дискам и инфицирует их, в зависимости от некоторых условий совершает деструктивные действия, вызывает звуковые эффекты или видеоэффекты.
Основными деструктивными действиями, выполняемыми этими вирусами, являются: - уничтожение информации в секторах дискет и винчестера;
- исключение возможности загрузки операционной системы (компьютер «зависает»);
- искажение кода загрузчика;
- форматирование дискет или логических дисков винчестера; закрытие доступа к COM- и LPT-портам;
- замена символов при печати текстов; подергивания экрана;
- изменение метки диска или дискеты; создание псевдосбойных кластеров;
- создание звуковых и(или) визуальных эффектов (например, падение букв на экране);
- порча файлов данных; перезагрузка компьютера;
- вывод на экран разнообразных сообщений;
- отключение периферийных устройств (например, клавиатуры); изменение палитры экрана;
- заполнение экрана посторонними символами или изображениями;
- погашение экрана и перевод в режим ожидания ввода с клавиатуры; шифрование секторов винчестера;
- выборочное уничтожение символов, выводимых на экран при наборе с клавиатуры;
- уменьшение объема оперативной памяти; вызов печати содержимого экрана; блокирование записи на диск;
- уничтожение таблицы разбиения (Disk Partition Table), после этого компьютер можно загрузить только с флоппи-диска;
- блокирование запуска исполняемых файлов; блокирование доступа к винчестеру.
Большинство загрузочных вирусов перезаписывают себя на флоппи-диски. Файловые вирусы при своем размножении тем или иным способом используют файловую систему какой-либо операционной системы. По способу заражения файлов вирусы делятся на замещающие («overwriting»), паразитические («parasitic»), компаньон-вирусы («companion»), «link»-вирусы, вирусы-черви и вирусы, заражающие объектные модули (OBJ), библиотеки компиляторов (LIB) и исходные тексты программ.
Метод заражения «overwriting» является наиболее простым: вирус записывает свой код вместо кода заражаемого файла, уничтожая его содержимое. Естественно, что при этом файл перестает работать и не восстанавливается. Такие вирусы очень быстро обнаруживают себя, так как операционная система и приложения довольно быстро перестают работать.
К паразитическим относятся все файловые вирусы, которые при распространении своих копий обязательно изменяют содержимое файлов, оставляя сами файлы при этом полностью или частично работоспособными. Основными типами таких вирусов являются вирусы, записывающиеся в начало, середину или конец файлов. Отдельно следует отметить довольно незначительную группу паразитических вирусов, не имеющих «точки входа» (EPO-вирусы – Entry Point Obscuring viruses). К ним относятся вирусы, не записывающие команду передачи управления в заголовок COM-файлов (JMP) и не изменяющие адрес точки старта в заголовке EXE-файлов. Такие вирусы записывают команду перехода на свой код в какое-либо место в середину файла и получают управление не непосредственно при запуске зараженного файла, а при вызове процедуры, содержащей код передачи управления на тело вируса. Причем выполняться эта процедура может крайне редко (например, при выводе сообщения о какой-либо специфической ошибке). В результате вирус может долгие годы «спать» внутри файла и проявить себя только при некоторых ограниченных условиях.
К категории «компаньон» относятся вирусы, не изменяющие заражаемые файлы. Алгоритм работы этих вирусов состоит в том, что для заражаемого файла создается файл-двойник, причем при запуске зараженного файла управление получает именно этот двойник, то есть вирус. Наиболее распространены компаньон-вирусы, использующие особенность DOS первым выполнять файлы с расширением .COM, если в одном каталоге присутствуют два файла с одним и тем же именем, но различными расширениями имени – .COM и .EXE. Такие вирусы создают для EXE-файлов файлы-спутники, имеющие то же самое имя, но с расширением .COM, например, для файла XCOPY.EXE создается файл XCOPY.COM. Вирус записывается в COM-файл и никак не изменяет EXE-файл. При запуске такого файла DOS первым обнаружит и выполнит COM-файл, то есть вирус, который затем запустит и EXE-файл. Вторую группу составляют вирусы, которые при заражении переименовывают файл в какое-либо другое имя, запоминают его (для последующего запуска файла-хозяина) и записывают свой код на диск под именем заражаемого файла. Например, файл XCOPY.EXE переименовывается в XCOPY.EXD, а вирус записывается под именем XCOPY.EXE. При запуске управление получает код вируса, который затем запускает оригинальный XCOPY, хранящийся под именем XCOPY.EXD. Интересен тот факт, что данный метод работает, по-видимому, во всех операционных системах. В третью группу входят так называемые «Path-companion» вирусы. Они либо записывают свой код под именем заражаемого файла, но «выше» на один уровень в прописываемых путях (DOS, таким образом, первым обнаружит и запустит файл-вирус), либо переносят файл-жертву на один подкаталог выше и т.д.
Возможно существование и других типов компаньон-вирусов, использующих иные оригинальные идеи или особенности других операционных систем.
Файловые черви (worms) являются, в некотором смысле, разновидностью компаньон-вирусов, но при этом никоим образом не связывают свое присутствие с каким-либо выполняемым файлом. При размножении они всего лишь копируют свой код в какие-либо каталоги дисков в надежде, что эти новые копии будут когда-либо запущены пользователем. Иногда эти вирусы дают своим копиям «специальные» имена, чтобы подтолкнуть пользователя на запуск своей копии – например, INSTALL.EXE или WINSTART.BAT. Существуют вирусы-черви, использующие довольно необычные приемы, например, записывающие свои копии в архивы (ARJ, ZIP и прочие). Некоторые вирусы записывают команду запуска зараженного файла в BAT-файлы. Не следует путать файловые вирусы-черви с сетевыми червями. Первые используют только файловые функции какой-либо операционной системы, вторые же при своем размножении пользуются сетевыми протоколами.
Link-вирусы, как и компаньон-вирусы, не изменяют физического содержимого файлов, однако при запуске зараженного файла «заставляют» ОС выполнить свой код. Этой цели они достигают модификацией необходимых полей файловой системы.
Вирусы, заражающие библиотеки компиляторов, объектные модули и исходные тексты программ, достаточно экзотичны и практически не распространены. Вирусы, заражающие OBJ- и LIB-файлы, записывают в них свой код в формате объектного модуля или библиотеки. Зараженный файл, таким образом, не является выполняемым и не способен на дальнейшее распространение вируса в своем текущем состоянии. Носителем же «живого» вируса становится COM- или EXE-файл.
Получив управление, файловый вирус совершает следующие общие действия: - проверяет оперативную память на наличие своей копии и инфицирует память компьютера, если копия вируса не найдена (в случае, если вирус является резидентным), ищет незараженные файлы в текущем и (или) корневом каталоге путем сканирования дерева каталогов логических дисков, а затем заражает обнаруженные файлы;
- выполняет дополнительные (если они есть) функции: деструктивные действия, графические или звуковые эффекты и т.д. (дополнительные функции резидентного вируса могут вызываться спустя некоторое время после активизации в зависимости от текущего времени, конфигурации системы, внутренних счетчиков вируса или других условий, в этом случае вирус при активизации обрабатывает состояние системных часов, устанавливает свои счетчики и т.д.);
- возвращает управление основной программе (если она есть). Паразитические вирусы при этом либо лечат файл, выполняют его, а затем снова заражают, либо восстанавливают программу (но не файл) в исходном виде (например, у COM-программы восстанавливается несколько первых байт, у EXE-программы вычисляется истинный стартовый адрес, у драйвера восстанавливаются значения адресов программ стратегии и прерывания).
Необходимо отметить, что чем быстрее распространяется вирус, тем вероятнее возникновение эпидемии этого вируса, чем медленнее распространяется вирус, тем сложнее его обнаружить (если, конечно же, этот вирус неизвестен). Нерезидентные вирусы часто являются «медленными» – большинство из них при запуске заражает один или два-три файла и не успевает заполонить компьютер до запуска антивирусной программы (или появления новой версии антивируса, настроенной на данный вирус). Существуют, конечно же, нерезидентные «быстрые» вирусы, которые при запуске ищут и заражают все выполняемые файлы, однако такие вирусы очень заметны: при запуске каждого зараженного файла компьютер некоторое (иногда достаточно долгое) время активно работает с винчестером, что демаскирует вирус. Скорость распространения (инфицирования) у резидентных вирусов обычно выше, чем у нерезидентных - они заражают файлы при каких-либо обращениях к ним. В результате на диске оказываются зараженными все или почти все файлы, которые постоянно используются в работе. Скорость распространения (инфицирования) резидентных файловых вирусов, заражающих файлы только при их запуске на выполнение, будет ниже, чем у вирусов, заражающих файлы и при их открытии, переименовании, изменении атрибутов файла и т.д.
Таким образом, основные деструктивные действия, выполняемые файловыми вирусами, связаны с поражением файлов (чаще исполняемых или файлов данных), несанкционированным запуском различных команд (в том числе, команд форматирования, уничтожения, копирования и т.п.), изменением таблицы векторов прерываний и др. Вместе с тем, могут выполняться и многие деструктивные действия, сходные с теми, которые указывались для загрузочных вирусов.
Макровирусы (macro viruses) являются программами на языках (макроязыках), встроенных в некоторые системы обработки данных (текстовые редакторы, электронные таблицы и т.д.). Для своего размножения такие вирусы используют возможности макроязыков и при их помощи переносят себя из одного зараженного файла (документа или таблицы) в другие. Наибольшее распространение получили макровирусы для пакета прикладных программ Microsoft Office.
Для существования вирусов в конкретной системе (редакторе) необходимо наличие встроенного в систему макроязыка с возможностями: 1) привязки программы на макроязыке к конкретному файлу;
2) копирования макропрограмм из одного файла в другой;
3) получения управления макропрограммой без вмешательства пользователя (автоматические или стандартные макросы).
Данным условиям удовлетворяют прикладные программы Microsoft Word, Excel и Microsoft Access. Они содержат в себе макроязыки: Word Basic, Visual Basic for Applications. При этом:
1) макропрограммы привязаны к конкретному файлу или находятся внутри файла;
2) макроязык позволяет копировать файлы или перемещать макропрограммы в служебные файлы системы и редактируемые файлы;
3) при работе с файлом при определенных условиях (открытие, закрытие и т.д.) вызываются макропрограммы (если таковые есть), которые определены специальным образом или имеют стандартные имена.
Данная особенность макроязыков предназначена для автоматической обработки данных в больших организациях или в глобальных сетях и позволяет организовать так называемый «автоматизированный документооборот». С другой стороны, возможности макроязыков таких систем позволяют вирусу переносить свой код в другие файлы и таким образом заражать их.
Большинство макровирусов активны не только в момент открытия (закрытия) файла, но до тех пор, пока активен сам редактор. Они содержат все свои функции в виде стандартных макросов Word/Excel/Office. Существуют, однако, вирусы, использующие приемы скрытия своего кода и хранящие свой код в виде не макросов. Известно три подобных приема, все они используют возможность макросов создавать, редактировать и исполнять другие макросы. Как правило, подобные вирусы имеют небольшой (иногда – полиморфный) макрос-загрузчик вируса, который вызывает встроенный редактор макросов, создает новый макрос, заполняет его основным кодом вируса, выполняет и затем, как правило, уничтожает (чтобы скрыть следы присутствия вируса). Основной код таких вирусов присутствует либо в самом макросе вируса в виде текстовых строк (иногда – зашифрованных), либо хранится в области переменных документа.
К сетевым относятся вирусы, которые для своего распространения активно используют протоколы и возможности локальных и глобальных сетей. Основным принципом работы сетевого вируса является возможность самостоятельно передать свой код на удаленный сервер или рабочую станцию.
«Полноценные» сетевые вирусы при этом обладают еще и возможностью запустить на выполнение свой код на удаленном компьютере или, по крайней мере, «подтолкнуть» пользователя к запуску зараженного файла.
Вредоносными программами, обеспечивающими осуществление НСД, могут быть: - программы подбора и вскрытия паролей; программы, реализующие угрозы;
- программы, демонстрирующие использование недекларированных возможностей программного и программно-аппаратного обеспечения ИСПДн;
- программы-генераторы компьютерных вирусов;
- программы, демонстрирующие уязвимости средств защиты информации и др.
В связи с усложнением и возрастанием разнообразия программного обеспечения число вредоносных программ быстро возрастает. Сегодня известно более 120 тысяч сигнатур компьютерных вирусов. Вместе с тем, далеко не все из них представляют реальную угрозу. Во многих случаях устранение уязвимостей в системном или прикладном программном обеспечении привело к тому, что ряд вредоносных программ уже не способен внедриться в них. Часто основную опасность представляют новые вредоносные программы.