Реферат: Классификация компьютерных вирусов.
Большинство файловых стелс-вирусов использует те же приемы, что приведены выше: они либо перехватывают DOS-вызовы обращения к файлам (INT 21h) либо временно лечат файл при его открытии и заражают при закрытии. Также как и для загрузочных вирусов, существуют файловые вирусы, использующие для своих стелс-функций перехват прерываний более низкого уровня - вызовы драйверов DOS, INT 25h и даже INT 13h.
Полноценные файловые стелс-вирусы, использующие первый способ скрытия своего кода, в большинстве своем достаточно громоздки, поскольку им приходиться перехватывать большое количество DOS-функций работы с файлами: открытие/закрытие, чтение/запись, поиск, запуск, переименование и т.д., причем необходимо поддерживать оба варианта некоторых вызовов (FCB/ASCII), а после появления Windows95/NT им стало необходимо также обрабатывать третий вариант - функции работы с длинными именами файлов.
Некоторые вирусы используют часть функций полноценного стелс-вируса. Чаще всего они перехватывают функции DOS FindFirst и FindNext (INT 21h, AH=11h, 12h, 4Eh, 4Fh) и "уменьшают" размер зараженных файлов. Такой вирус невозможно определить по изменению размеров файлов, если, конечно, он резидентно находится в памяти. Программы, которые не используют указанные функции DOS (например, "Нортоновские утилиты"), а напрямую используют содержимое секторов, хранящих каталог, показывают правильную длину зараженных файлов.
6.3 Макро-вирусы
Реализация стелс-алгоритмов в макро-вирусах является, наверное, наиболее простой задачей - достаточно всего лишь запретить вызов меню File/Templates или Tools/Macro. Достигается это либо удалением этих пунктов меню из списка, либо их подменой на макросы FileTemplates и ToolsMacro.
Частично стелс-вирусами можно назвать небольшую группу макро-вирусов, которые хранят свой основной код не в самом макросе, а в других областях документа - в его переменных или в Auto-text.
7. Полиморфик-вирусы
К полиморфик-вирусам относятся те из них, детектирование которых невозможно (или крайне затруднительно) осуществить при помощи так называемых вирусных масок - участков постоянного кода, специфичных для конкретного вируса. Достигается это двумя основными способами - шифрованием основного кода вируса с непостоянным ключом и случайным набором команд расшифровщика или изменением самого выполняемого кода вируса. Существуют также другие, достаточно экзотические примеры полиморфизма - DOS-вирус "Bomber", например, не зашифрован, однако последовательность команд, которая передает управление коду вируса, является полностью полиморфной.
Полиморфизм различной степени сложности встречается в вирусах всех типов - от загрузочных и файловых DOS-вирусов до Windows-вирусов и даже макро-вирусов.
7.1 Полиморфные расшифровщики
Простейшим примером частично полиморфного расшифровщика является следующий набор команд, в результате применения которого ни один байт кода самого вируса и его расшифровщика не является постоянным при заражении различных файлов:
MOV reg_1, count ; reg_1, reg_2, reg_3 ?????????? ?? MOV reg_2, key ; AX,BX,CX,DX,SI,DI,BP MOV reg_3, _offset ; count, key, _offset ????? ????? ????????_LOOP: xxx byte ptr [reg_3], reg_2 ; xor, add ??? sub DEC reg_1 Jxx _loop; ja ??? jnc; ?????? ??????? ????????????? ??? ? ?????? ??????Более сложные полиморфик-вирусы используют значительно более сложные алгоритмы для генерации кода своих расшифровщиков: приведенные выше инструкции (или их эквиваленты) переставляются местами от заражения к заражению, разбавляются ничего не меняющими командами типа NOP, STI, CLI, STC, CLC, DEC неиспользуемый регистр, XCHG неиспользуемые регистры и т.д.
Полноценные же полиморфик-вирусы используют еще более сложные алгоритмы, в результате работы которых в расшифровщике вируса могут встретиться операции SUB, ADD, XOR, ROR, ROL и другие в произвольном количестве и порядке. Загрузка и изменение ключей и других параметров шифровки производится также произвольным набором операций, в котором могут встретиться практически все инструкции процессора Intel (ADD, SUB, TEST, XOR, OR, SHR, SHL, ROR, MOV, XCHG, JNZ, PUSH, POP ...) со всеми возможными режимами адресации.
8. IRC-черви
IRC (Internet Relay Chat) — это специальный протокол, разработанный для коммуникации пользователей Интернет в реальном времени. Этот протокол предоставлят возможность Итрернет-"разговора" при помощи специально разработанного программного обеспечения. Существует довольно большое количество IRC-команд, при помощи которых пользователь может получить информацию о других пользователях и каналах, изменять некоторые установки IRC-клиента и прочее. Сущетсвует также возможность передавать и принимать файлы - именно на этой возможности и базируются IRC-черви.
8.1 IRC-клиенты
На компьютерах с MS Windows самыми распространенными клиентами являются mIRC и PIRCH. Это не очень объемные, но довольно сложные программные продукты, которые кроме предоставления основных услуг IRC (подключение к серверам и каналам) имеют еще и массу дополнительных возможностей.К таким возможностям относятся, например, сценарии работы (скрипты) и задание автоматической реакции на различные события. Например, при появлении во время разговора определенного слова IRC-клиент передает сообщение пользователю, пославшему это слово. Также возможно отключение пользователя от канала; посылка персональных сообщений новым пользователям, подключающимся к каналу; и многое другое. В PIRCH-клиенте, например, событий, на которые предусмотрена реакция, более 50.
8.2 Скрипт-черви
Как оказалось, мощная и разветвленная система команд IRC-клиентов позволяет на основе их скриптов создавать компьютерные вирусы, передающие свой код на компьютеры пользователей сетей IRC, так называемые "IRC-черви". Первый инцидент с IRC-червем зафиксирован в конце 1997 года: пользователями mIRC-клиента был обнаружен скрипт (файл SCRIPT.INI), переносивший свой код через каналы IRC и заражавший mIRC-клиентов на компьютерах пользователей, подключавшихся к зараженным каналам. Как оказалось, скрипт-черви являются достаточно простыми программами, и через довольно короткое время на основе первого mIRC-червя были созданы и "выпущены" в сети несколько десятков различных скрипт-червей.
Принцип действия таких IRC-червей примерно одинаков. При помощи IRC-команд файл сценария работы (скрипт) или реакции на IRC-события автоматически посылается с зараженного компьютера каждому вновь присоединившемуся к каналу пользователю. Присланный файл-сценарий замещает стандартный и при следующем сеансе работы уже вновь зараженный клиент будет рассылать червя.
Черви при этом используют особенности конфигурации клиента (всех версий mIRC младше 5.31 и всех версий PIRCH до PIRCH98), благодаря которой принимаемые файлы всех типов помещаются в корневой каталог клиента. Этот каталог также содержит и основные скрипты клиента, включая авто-загружаемые mIRC-скрипты SCRIPT.INI, MIRC.INI и PIRCH-скрипт EVENTS.INI. Данные скрипты автоматически исполняются клиентом при старте и в дальнейшем используются как основной сценарий его работы.
Некоторые IRC-черви также содержат троянский компонент: по заданным ключевым словам производят разрушительные действия на пораженных компьютерах. Например, червь "pIRCH.Events" по определенной команде стирает все файлы на диске пользователя.
В скрипт-языках клиентов mIRC и PIRCH также существуют операторы для запуска обычных команд операционной системы и исполняемых модулей (программ) DOS и Windows. Эта возможность IRC-скриптов послужила основой для появления скрипт-червей нового поколения, которые помимо скриптов заражали компьютеры пользователей EXE-вирусами, устанавливали "троянских коней", и т.п.
8.3 mIRC.Acoragil и mIRC.Simpsalapim
Первые известные mIRC-черви. Обнаружены в конце ноября - начале декабря 1997. Названия получили по кодовым словам, которые используются червями: если в тексте, переданном в канал каким-либо пользователем присутствует строка "Acoragil", то все пользователи, зар?