Классические компьютерные вирусы
Термин «компьютерный вирус» появился в 1984 г., когда сотрудник Лехайского университета США Ф. Коуэн впервые использовал его в своем докладе на конференции по информационной безопасности.
Компьютерные вирусы можно классифицировать по следующим характеристикам:
1) деструктивные способности .
2) среда обитания .
3) способ заражения .
4) способ активации .
5) способ маскировки.
Деструктивная способность компьютерного вируса – характеристика способности вируса наносить ущерб зараженной им компьютерной системе.
Деструктивные способности могут варьироваться от неопасных, приводящих лишь к уменьшению объема свободной памяти на диске или проявляющих себя безобидными звуковыми или визуальными эффектами, до опасных.
Опасные вирусы могут вызывать серьезные сбои в работе компьютерных систем, нарушение целостности, доступности и конфиденциальности информации, хранящейся и обрабатывающейся в этих системах.
Способ заражения − метод внедрения вирусного кода в заражаемые объекты.
Способы заражения и активации, которые использует тот или иной вирус, в значительной степени зависят от его среды обитания.
Среда обитания компьютерного вируса – системные области компьютера (например, BIOS), операционная система или приложения, в компоненты (файлы) которых внедряется код вируса.
По среде обитания компьютерные вирусы могут быть разделены на следующие виды:
1) файловые .
2) загрузочные .
3) макро .
4) скриптовые.
1. Файловые вирусы используют для своего размножении файловую систему какой-либо операционной системы, внедряясь в исполняемые файлы, создавая файлы-двойники (компаньон-вирусы), либо используют особенности организации файловой системы (link-вирусы). Файловые вирусы могут использовать различные способы заражения.
По способу заражения файловые вирусы делятся на следующие виды[1]:
1) перезаписывающие (overwriting) .
2) паразитические (parasitic) .
3) вирусы-компаньоны (companion) .
4) вирусы-ссылки (link) .
5) вирусы, заражающие объектные модули (OBJ) .
6) вирусы, заражающие библиотеки компиляторов (LIB) .
7) вирусы, заражающие исходные тексты программ.
Перезаписывающие (overwriting) вирусы записывают свой код вместо кода заражаемого файла, уничтожая его содержимое. Неработоспособность файлов приводит к нарушению работы операционной системы и приложений, что является проявлением действия вируса.
Паразитические (parasitic) вирусы распространяют свои копии так, что содержимое файлов изменяется, но сами файлы при этом остаются полностью или частично работоспособными. Такие вирусы могут записываться в начало файлов (prepending), в конец файлов (appending) и в середину файлов (inserting), причем, внедрение вирусов в середину файлов может выполняться различными методами — путем переноса части файла в его конец или копирования своего кода в заведомо неиспользуемые области
файла (cavity-вирусы).
Вирусы-компаньоны (companion) создают для заражаемого файла файл-двойник, который и получает управление при запуске зараженного файла, при этом сам зараженный файл не изменяется и остается работоспособным. Такой механизм реализуется, например, если вирус переименовывает заражаемый файл, а сам записывается под изначальным именем этого файла (например, файл notepad.exe переименовывается в notepad.exd, а вирус записывается под именем notepad.exe). При запуске управление получает код вируса, который затем запускает оригинальный
файл.
Link-вирусы изменяют отдельные поля файловой системы таким образом, что операционная система при запуске зараженного файла начинает выполнять также и код вируса. При этом содержимое зараженного вирусом файла не изменяется.
Вирусы, заражающие объектные модули (OBJ-вирусы), и вирусы, заражающие библиотеки компиляторов (LIB-вирусы), – вирусы, записывающие свой код соответственно в объектные модули или библиотеки. Так как такие зараженные файлы не исполняются, то для своего распространения эти вирусы используют файлы типов COM и EXE? получаемые при компоновке зараженных OBJ и LIB-файлов с другими объектными модулями и библиотеками.
Вирусы, заражающие исходные тексты программ, добавляют свой код к исходным текстам программ, а распространение вируса происходит после ее компиляции и компоновки. OBJ-вирусы, LIB-вирусы и вирусы, заражающие исходные тексты программ встречаются редко.
2. Загрузочные вирусы записывают себя, либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный загрузчик жесткого диска (MBR – Master Boot Record), либо модифицируют адрес активного boot-сектора в таблице разделов диска (Disk Partition Table), расположенной в MBR жесткого диска. При запуске системы управление
передается коду вируса, а не оригинальному коду загрузчика.
3. Макро-вирусы являются программами на макро-языках, встроенных в некоторые системы обработки данных (текстовые и графические редакторы, системы проектирования и т. д.), и заражают файлы таких систем, например, файлы-документы. Наибольшее распространение получили макро- вирусы для Microsoft Office. Получив управление, макро-вирус размножается путем переноса своего кода в другие файлы, чаще всего в файлы, которые в данный момент редактируются.
В Microsoft Office операции при работе с документами и таблицами основываются на выполнении собственных макросов − при сохранении файла по команде File/Save вызывается макрос FileSave, при сохранении по команде File/SaveAs – FileSaveAs, при печати документов – FilePrint и т. д. В макро-вирусах, инфицирующих документы Microsoft Office, либо присутствует автоматически запускаемый макрос (авто-функция), либо переопределен один из стандартных системных макросов, ассоциированный
с каким-либо пунктом меню. Также возможен вызов вирусного макроса при
нажатии на какую-либо клавишу или комбинацию клавиш.
4. Скрипт-вирусы – вирусы, написанные на каком-либо скрипт-языке (VBS, JS, BAT, PHP и т. д.), могут рассматриваться как подгруппа файловых вирусов. Скрипт-вирусы способны заражать другие скрипт-программы, файлы форматов, в которых возможно выполнение скриптов (например, HTML-файлы), либо могут являться частью многокомпонентных вирусов.
По особенностям алгоритма работы вирусы можно разделить на резидентные и нерезидентные.
Резидентные вирусы – вирусы, резидентно находящиеся в памяти инфицированного компьютера в течение всего времени его работы и заражающие те или иные объекты на основе перехвата обращений операционной системы к этим объектам. Даже при удалении всех зараженных файлов резидентная копия вируса остается активной и может
заражать вновь создаваемые или восстановленные из резервных копий файлы.
Нерезидентные вирусы – вирусы, активные незначительное время – только при запуске зараженного файла – и размещающие в оперативной памяти небольшие программы, не способные распространять вирус.
Распространение нерезидентных вирусов происходит путем поиска на диске незараженных файлов и записи в них вирусного кода.
Для скрытия своего нахождения в компьютере и для противодействия обнаружению с помощью антивирусных программ и других средств вирусы могут использовать различные способы маскировки. Для этого используются стелс-алгоритмы (stelth – невидимка), самошифрование и полиморфизм (polymorphism – изменяющийся) и другие приемы.
Стелс-вирусы – вирусы, использующие специальные алгоритмы, позволяющие скрывать присутствие вируса в системе. Возможны несколько приемов, используемых стелс-вирусами для того, чтобы оставаться необнаруживаемыми. Первый из них основан на перехвате команд чтения зараженных секторов и подстановке вместо него незараженного оригинала.
Другой прием базируется на временном восстановлении (лечении) зараженных секторов при запуске той или иной программы (например, антивирусной) с последующим повторным заражением файлов после окончания работы программы. Макро-вирусы чаще всего используют запрет вызовов меню просмотра макросов.
Полиморфик-вирусы – вирусы, не имеющие сигнатур, т. е. не имеющие постоянных участков кода. Отсутствие совпадений кода у разных образцов одного и того же вируса достигается шифрованием кода вируса и модификацией программы-расшифровщика. Полиморфизм вирусов значительно усложняет их выявление при помощи вирусных масок, представляющих собой участки постоянного кода, специфичные для конкретного вируса.
Для сокрытия присутствия в операционной системе вредоносной программы может быть использована руткит-технология (rootkit). Rootkit – программный код или техника, направленная на сокрытие присутствия в системе заданных объектов (процессов, файлов, ключей реестра и т.д.).
Сетевые черви отличаются от вирусов, прежде всего, способностью самостоятельно распространяться в компьютерных сетях. Между собой разные типы червей отличаются рядом характерных особенностей, в том числе:
1) способом передачи своих копий на удаленные компьютеры .
2) способом активации на зараженном компьютере .
3) способом проникновения в систему .
4) способом маскировки.
Наиболее распространенными видами сетевых червей являются почтовые черви, черви, использующие интернет-пейджеры, черви, распространяющиеся в IRC-каналах и др.
Почтовые черви (E-mail-Worms) – черви, использующие для своего распространения электронную почту (E-mail). Копии таких червей саморассылаются как вложения в электронное письмо либо как ссылка на содержащий червя файл, расположенный на каком-либо сетевом ресурсе.
Активация червя происходит соответственно при открытии зараженного вложения или ссылки на зараженный файл. Почтовые адреса для своей рассылки черви находят в адресной книге почтового ящика или почтового клиента (например, MS Outlook), либо сканируя файлы на диске и выделяя в них записи, являющиеся адресами электронной почты.
Черви, использующие интернет-пейджеры (IM-Worms) – черви, рассылающиеся на обнаруженные контакты (из контакт-листа) сообщений, содержащих URL, на файл, расположенный на каком-либо веб-сервере аналогично тому как рассылаются почтовые черви.
Черви в IRC-каналах (IRC-Worms) – черви, распространяющиеся по IRC-каналам путем рассылки зараженного файла пользователям сети либо путем рассылки URL-ссылки на копию червя. При этом атакуемый пользователь должен подтвердить прием файла, затем сохранить его на диск и открыть (запустить на выполнение) [1].
Черви файлообменных сетей (P2P-Worms) – черви, распространяющиеся в файлообменных сетях путем самокопирования в каталог обмена файлами, расположенный на локальном компьютере с последующим скачиванием на удаленный компьютер, осуществляющий поиск файлов в сети.
Другие виды сетевых червей (Net-Worms) [1] осуществляют заражение удаленных компьютеров путем копирования червя в открытые на запись каталоги в доступных сетевых ресурсах или случайным образом ищут компьютеры в сети, подключаются к ним и пытаются открыть их диски на полный доступ.
Возможно использование червем уязвимостей (дыр) в операционных системах и приложениях. В этом случае для заражения уязвимых компьютеров червь посылает специально оформленный сетевой пакет или запрос (эксплойт уязвимости), в результате чего код червя проникает на компьютер-жертву.
Для своего распространения черви могут использовать сетевые ресурсы публичного использования, заражая Web- или FTP-серверы, с последующим проникновением на компьютеры, с которых происходит обращение к зараженному серверу.
Некоторые виды сетевых червей способны паразитировать на других вредоносных программах, например, троянских программах-бэкдорах,
предназначенных для скрытного удаленного администрирования и дающих возможность скачивать и запускать файлы. Такие черви ищут в сети компьютеры, зараженные бэкдор-трояном и посылают на них команду скачивания и запуска своей копии.
Ряд червей рассылается в виде архивов, в том числе архивов, закрытых паролем, который указывается в тексте письма. Иногда встречаются вредоносные программы, предназначенные для уничтожения других вредоносных программ. Так, сетевой червь Welchia, проникая в компьютер уничтожал червя Lovesan, после чего пытался
загрузить с сайта Microsoft патч, закрывающий уязвимость в системе, которую использовал Lovesan.
Сетевые черви могут проникать на компьютер не как вложение к электронному письму, когда распространяется само тело червя, а как содержащаяся в письме ссылка на зараженный сайт. На сайте располагается та или иная вредоносная, например, троянская программа.