Вирусология

Вирусология

Однако это не так.

Компьютерные вирусы были и остаются одной из наиболее распространенных причин потери информации.

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

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

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

Вирусы можно разделить на классы по следующим основным признакам: . 1. среда обитания; 2. операционная система (OC); 3. особенности алгоритма работы; 4. деструктивные возможности. По СРЕДЕ ОБИТАНИЯ вирусы можно разделить на: 1. файловые; 2. загрузочные; 3. макро; 4. сетевые.

Файловые вирусы либо различными способами внедряются в выполняемые файлы (наиболее распространенный тип вирусов), либо создают файлы-двойники (компаньон-вирусы), либо используют особенности организации файловой системы (link-вирусы). Загрузочные вирусы записывают себя либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный загрузчик винчестера (Master Boot Record), либо меняют указатель на активный boot-сектор. Макро-вирусы заражают файлы-документы и электронные таблицы нескольких популярных редакторов.

Сетевые вирусы используют для своего распространения протоколы или команды компьютерных сетей и электронной почты.

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

Другой пример такого сочетания - сетевой макро-вирус, который не только заражает редактируемые документы, но и рассылает свои копии по электронной почте.

Заражаемая ОПЕРАЦИОННАЯ СИСТЕМА (вернее, ОС, объекты которой подвержены заражению) является вторым уровнем деления вирусов на классы.

Каждый файловый или сетевой вирус заражает файлы какой-либо одной или нескольких OS - DOS, Windows, Win95/NT, OS/2 и т.д. Макро-вирусы заражают файлы форматов Word, Excel, Office97. Загрузочные вирусы также ориентированы на конкретные форматы расположения системных данных в загрузочных секторах дисков. Среди ОСОБЕННОСТЕЙ АЛГОРИТМА РАБОТЫ вирусов выделяются следующие пункты: 1. резидентность; 2. использование стелс-алгоритмов; 3. самошифрование и полиморфичность; 4. использование нестандартных приемов. РЕЗИДЕНТНЫЙ вирус при инфицировании компьютера оставляет в оперативной памяти свою резидентную часть, которая затем перехватывает обращения операционной системы к объектам заражения и внедряется в них.

Резидентные вирусы находятся в памяти и являются активными вплоть до выключения компьютера или перезагрузки операционной системы.

Нерезидентные вирусы не заражают память компьютера и сохраняют активность ограниченное время.

Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не распространяют вирус. Такие вирусы считаются нерезидентными.

Резидентными можно считать макро-вирусы, поскольку они постоянно присутствуют в памяти компьютера на все время работы зараженного редактора. При этом роль операционной системы берет на себя редактор, а понятие «перезагрузка операционной системы» трактуется как выход из редактора. В многозадачных операционных системах время «жизни» резидентного DOS-вируса также может быть ограничено моментом закрытия зараженного DOS-окна, а активность загрузочных вирусов в некоторых операционных системах ограничивается моментом инсталляции дисковых драйверов OC. Использование стелс-алгоритмов позволяет вирусам полностью или частично скрыть себя в системе.

Наиболее распространенным стелс-алгоритмов является перехват запросов OC на чтение/запись зараженных объектов. Стелс-вирусы при этом либо временно лечат их, либо «подставляют» вместо себя незараженные участки информации. В случае макро-вирусов наиболее популярный способ — запрет вызовов меню просмотра макросов. Один из первых файловых стелс-вирусов — вирус «Frodo», первый загрузочный стелс-вирус — «Brain». САМОШИФРОВАНИЕ и ПОЛИМОРФИЧНОСТЬ используются практически всеми типами вирусов для того, чтобы максимально усложнить процедуру детектирования вируса.

Полиморфик-вирусы (polymorphic) - это достаточно труднообнаружимые вирусы, не имеющие сигнатур, т.е. не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного и того же полиморфик-вируса не будут иметь ни одного совпадения. Это достигается шифрованием основного тела вируса и модификациями программы-расшифровщика.

Различные НЕСТАНДАРТНЫЕ ПРИЕМЫ часто используются в вирусах для того, чтобы как можно глубже спрятать себя в ядре OC (как это делает вирус «3APA3A»), защитить от обнаружения свою резидентную копию (вирусы «TPVO», «Trout2»), затруднить лечение от вируса (например, поместив свою копию в Flash-BIOS) и т.д. По ДЕСТРУКТИВНЫМ ВОЗМОЖНОСТЯМ вирусы можно разделить на: 1. безвредные, т.е. никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения); 2. неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и пр. эффектами; 3. опасные вирусы, которые могут привести к серьезным сбоям в работе компьютера; 4. очень опасные, в алгоритм работы которых заведомо заложены процедуры, которые могут привести к потере программ, уничтожить данные, стереть необходимую для работы компьютера информацию, записанную в системных областях памяти, и даже, как гласит одна из непроверенных компьютерных легенд, способствовать быстрому износу движущихся частей механизмов - вводить в резонанс и разрушать головки некоторых типов винчестеров. Но даже если в алгоритме вируса не найдено ветвей, наносящих ущерб системе, этот вирус нельзя с полной уверенностью назвать безвредным, так как проникновение его в компьютер может вызвать непредсказуемые и порой катастрофические последствия. Ведь вирус, как и всякая программа, имеет ошибки, в результате которых могут быть испорчены как файлы, так и сектора дисков (например, вполне безобидный на первый взгляд вирус «DenZuk» довольно корректно работает с 360K дискетами, но может уничтожить информацию на дискетах большего объема). До сих пор попадаются вирусы, определяющие «COM или EXE» не по внутреннему формату файла, а по его расширению.

Естественно, что при несовпадении формата и расширения имени файл после заражения оказывается неработоспособным.

Возможно также «заклинивание» резидентного вируса и системы при использовании новых версий DOS, при работе в Windows или с другими мощными программными системами. И так далее. Конец формы 2 . Загрузочные вирусы Загрузочные вирусы заражают загрузочный (boot) сектор флоппи-диска и boot-сектор или Master Boot Record (MBR) винчестера.

Принцип действия загрузочных вирусов основан на алгоритмах запуска операционной системы при включении или перезагрузке компьютера - после необходимых тестов установленного оборудования (памяти, дисков и т.д.) программа системной загрузки считывает первый физический сектор загрузочного диска (A:, C: или CD-ROM в зависимости от параметров, установленных в BIOS Setup) и передает на него управление. В случае дискеты или компакт-диска управление получает boot-сектор, который анализирует таблицу параметров диска (BPB - BIOS Parameter Block) высчитывает адреса системных файлов операционной системы, считывает их в память и запускает на выполнение. При заражении дисков загрузочные вирусы «подставляют» свой код вместо какой-либо программы, получающей управление при загрузке системы.

Принцип заражения, таким образом, одинаков во всех описанных выше способах: вирус 'заставляет' систему при ее перезапуске считать в память и отдать управление не оригинальному коду загрузчика, а коду вируса.

Заражение дискет производится единственным известным способом — вирус записывает свой код вместо оригинального кода boot-сектора дискеты.

Винчестер заражается тремя возможными способами - вирус записывается либо вместо кода MBR, либо вместо кода boot-сектора загрузочного диска (обычно диска C:), либо модифицирует адрес активного boot-сектора в Disk Partition Table, расположенной в MBR винчестера. При инфицировании диска вирус в большинстве случаев переносит оригинальный boot-сектор (или MBR) в какой-либо другой сектор диска (например, в первый свободный). Если длина вируса больше длины сектора, то в заражаемый сектор помещается первая часть вируса, остальные части размещаются в других секторах (например, в первых свободных). Существует несколько вариантов размещения на диске первоначального загрузочного сектора и продолжения вируса: в сектора свободных кластеров логического диска, в неиспользуемые или редко используемые системные сектора, в сектора, расположенные за пределами диска. Если продолжение вируса размещается в секторах, которые принадлежат свободным кластерам диска (при поиске этих секторов вирусу приходится анализировать таблицу размещения файлов - FAT), то, как правило, вирус помечает в FAT эти кластеры как сбойные (так называемые псевдосбойные кластеры). Этот способ используется вирусами «Brain», «Ping-Pong» и некоторыми другими. В вирусах семейства «Stoned» задействован другой метод. Эти вирусы размещают первоначальный загрузочный сектор в неиспользуемом или редко используемом секторе — в одном из секторов винчестера (если такие есть), расположенных между MBR и первым boot-сектором, а на дискете такой сектор выбирается из последних секторов корневого каталога.

Конечно, существуют и другие методы размещения вируса на диске, например, вирусы семейства «Azusa» содержат в своем теле стандартный загрузчик MBR и при заражении записываются поверх оригинального MBR без его сохранения.

Пользователям новых операционных систем (Novell, Win95, OS/2) загрузочные вирусы также могут доставить неприятности.

Несмотря на то, что перечисленные выше системы работают с дисками напрямую (минуя вызовы BIOS), что блокирует вирус и делает невозможным дальнейшее его распространение, код вируса все-таки, хоть и очень редко, получает управление при перезагрузке системы.

Поэтому вирус «March6», например, может годами «жить» в MBR сервера и никак не влиять при этом на его (сервера) работу и производительность.

Однако при случайной перезагрузке 6-го марта этот вирус полностью уничтожит все данные на диске. 3. Макро-вирусы Макро-вирусы (macro viruses) являются программами на языках (макро-языках), встроенных в некоторые системы обработки данных (текстовые редакторы, электронные таблицы и т.д.). Для своего размножения такие вирусы используют возможности макро-языков и при их помощи переносят себя из одного зараженного файла (документа или таблицы) в другие.

Наибольшее распространение получили макро-вирусы для Microsoft Word, Excel и Office97. Существуют также макро-вирусы, заражающие документы Ami Pro и базы данных Microsoft Access. Для существования вирусов в конкретной системе (редакторе) необходимо наличие встроенного в систему макро-языка с возможностями: 1. привязки программы на макро-языке к конкретному файлу; 2. копирования макро-программ из одного файла в другой; 3. возможность получения управления макро-программой без вмешательства пользователя (автоматические или стандартные макросы). Данным условиям удовлетворяют редакторы Microsoft Word, Office97 и AmiPro, а также электронная таблица Excel и база данных Microsoft Access. Эти системы содержат в себе макро - языки : Word - Word Basic, Excel, Office97 ( включая Word97, Excel97 и Access) - Visual Basic for Applications. На сегодняшний день известны четыре системы, для которых существуют вирусы — Microsoft Word, Excel, Office97 и AmiPro. В этих системах вирусы получают управление при открытии или закрытии зараженного файла, перехватывают стандартные файловые функции и затем заражают файлы, к которым каким-либо образом идет обращение. По аналогии с MS-DOS можно сказать, что большинство макро-вирусов являются резидентными: они активны не только в момент открытия/закрытия файла, но до тех пор, пока активен сам редактор. 4. Файловые вирусы К данной группе относятся вирусы, которые при своем размножении тем или иным способом используют файловую систему какой-либо (или каких-либо) ОС. Внедрение файлового вируса возможно практически во все исполняемые файлы всех популярных ОС. На сегодняшний день известны вирусы, поражающие все типы выполняемых объектов стандартной DOS: командные файлы (BAT), загружаемые драйверы (SYS, в том числе специальные файлы IO.SYS и MSDOS.SYS) и выполняемые двоичные файлы (EXE, COM). Существуют вирусы, поражающие исполняемые файлы других операционных систем - Windows 3.x, Windows95/NT, OS/2, Macintosh, UNIX, включая VxD-драйвера Windows 3.x и Windows95. Существуют вирусы, заражающие файлы, которые содержат исходные тексты программ, библиотечные или объектные модули.

Возможна запись вируса и в файлы данных, но это случается либо в результате ошибки вируса, либо при проявлении его агрессивных свойств. Макро-вирусы также записывают свой код в файлы данных - документы или электронные таблицы, - однако эти вирусы настолько специфичны, что вынесены в отдельную группу. По способу заражения файлов вирусы делятся на «overwriting», паразитические («parasitic»), компаньон-вирусы («companion»), «link»-вирусы, вирусы-черви и вирусы, заражающие объектные модули (OBJ), библиотеки компиляторов (LIB) и исходные тексты программ. 4.1Overwriting Данный метод заражения является наиболее простым: вирус записывает свой код вместо кода заражаемого файла, уничтожая его содержимое.

Естественно, что при этом файл перестает работать и не восстанавливается. Такие вирусы очень быстро обнаруживают себя, так как операционная система и приложения довольно быстро перестают работать. 4.2 Parasitic К паразитическим относятся все файловые вирусы, которые при распространении своих копий обязательно изменяют содержимое файлов, оставляя сими файлы при этом полностью или частично работоспособными.

Основными типами таких вирусов являются вирусы, записывающиеся в начало файлов («prepending»), в конец файлов («appending») и в середину файлов («inserting»). В свою очередь, внедрение вирусов в середину файлов происходит различными методами - путем переноса части файла в его конец или копирования своего кода в заведомо неиспользуемые данные файла («cavity»-вирусы). 4.3 Вирусы без точки входа Отдельно следует отметить довольно незначительную группу вирусов, не имеющих «точки входа» (EPO-вирусы - Entry Point Obscuring viruses). К ним относятся вирусы, не записывающие команд передачи управления в заголовок COM-файлов (JMP) и не изменяющие адрес точки старта в заголовке EXE-файлов. Такие вирусы записывают команду перехода на свой код в какое-либо место в середину файла и получают управление не непосредственно при запуске зараженного файла, а при вызове процедуры, содержащей код передачи управления на тело вируса.

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

Алгоритм работы этих вирусов состоит в том, что для заражаемого файла создается файл-двойник, причем при запуске зараженного файла управление получает именно этот двойник, т.е. вирус.

Наиболее распространены компаньон-вирусы, использующие особенность DOS первым выполнять .COM-файл, если в одном каталоге присутствуют два файла с одним и тем же именем, но различными расшинениями имени - .COM и .EXE. Такие вирусы создают для EXE-файлов файлы-спутники, имеющие то же самое имя, но с расширением .COM, например, для файла XCOPY.EXE создается файл XCOPY.COM. Вирус записывается в COM-файл и никак не изменяет EXE-файл. При запуске такого файла DOS первым обнаружит и выполнит COM-файл, т.е. вирус, который затем запустит и EXE-файл.

Некоторые вирусы используют не только вариант COM-EXE, но также и BAT-COM-EXE. Возможно существование и других типов компаньон-вирусов, использующих иные оригинальные идеи или особенности других операционных систем. 4.5 Файловые черви Файловые черви (worms) являются, в некотором смысле, разновидностью компаньон-вирусов, но при этом никоим образом не связывают свое присутствие с каким-либо выполняемым файлом. При размножении они всего лишь копируют свой код в какие-либо каталоги дисков в надежде, что эти новые копии будут когда-либо запущены пользователем.

Иногда эти вирусы дают своим копиям «специальные» имена, чтобы подтолкнуть пользователя на запуск своей копии - например, INSTALL.EXE или WINSTART.BAT. Существуют вирусы-черви, использующие довольно необычные приемы, например, записывающие свои копии в архивы (ARJ, ZIP и прочие). К таким вирусам относятся «ArjVirus» и «Winstart». Некоторые вирусы записывают команду запуска зараженного файла в BAT-файлы (например, «Worm.Info»). 4.6 Link-вирусы Link-вирусы, как и компаньон-вирусы не изменяют физического содержимого файлов, однако при запуске зараженного файла «заставляют» ОС выполнить свой код. Этой цели они достигают модификацией необходимых полей файловой системы. На сегодняшний день известен единственный тип Link-вирусов - вирусы семейства «Dir_II». При заражении системы они записывают свое тело в последний кластер логического диска. При заражении файла вирусы корректируют лишь номер первого кластера файла, расположенный в соответствующем секторе каталога. Новый начальный кластер файла будет указывать на кластер, содержащий тело вируса. Таким образом, при заражении файлов их длины и содержимое кластеров диска, содержащих эти файлы, не изменяется, а на все зараженные файлы на одном логическом диске будет приходиться только одна копия вируса. 4.7 OBJ-, LIB-вирусы и вирусы в исходных текстах Вирусы, заражающие библиотеки компиляторов, объектные модули и исходные тексты программ, достаточно экзотичны и практически не распространены. Всего их около десятка.

Вирусы, заражающие OBJи LIB-файлы, записывают в них свой код в формате объектного модуля или библиотеки.

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

Носителем же «живого» вируса становится COMили EXE-файл, получаемый в процессе линковки зараженного OBJ/LIB-файла с другими объектными модулями и библиотеками. Таким образом, вирус распространяется в два этапа: на первом заражаются OBJ/LIB-файлы, на втором этапе (линковка) получается работоспособный вирус. 5. Резидентные вирусы Под термином 'резидентность' (DOS'овский термин TSR - Terminate and Stay Resident) понимается способность вирусов оставлять свои копии в системной памяти, перехватывать некоторые события (например, обращения к файлам или дискам) и вызывать при этом процедуры заражения обнаруженных объектов (файлов и секторов). Таким образом, резидентные вирусы активны не только в момент работы зараженной программы, но и после того, как программа закончила свою работу.

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

Резидентная копия вируса остается активной и заражает вновь создаваемые файлы. То же верно и для загрузочных вирусов — форматирование диска при наличии в памяти резидентного вируса не всегда вылечивает диск, поскольку многие резидентные вирусы заражает диск повторно после того, как он отформатирован.

Нерезидентные вирусы, напротив, активны довольно непродолжительное время — только в момент запуска зараженной программы. Для своего распространения они ищут на диске незараженные файлы и записываются в них. После того, как код вируса передает управление программе-носителю, влияние вируса на работу операционной системы сводится к нулю вплоть до очередного запуска какой-либо зараженной программы. 5.1 Windows-вирусы Для того, чтобы оставить выполняемый код в памяти Windows, существует три способа, причем все три способа (за исключением Windows NT) уже применялись различными вирусами. Самый простой способ - зарегистрировать программу как одно из приложений, работающих в данный момент. Для этого программа регистрирует свою задачу, окно которой может быть скрытым, регистрирует свой обработчик системных событий и т.д.

Второй способ - выделить блок системной памяти при помощи DPMI-вызовов и скопировать в него свой код (вирус h33r). Третий способ — остаться резидентно как VxD-драйвер (Wnidows 3.xx и Windows95) или как драйвер Windows NT. 6. Стелс-вирусы Стелс-вирусы теми или иными способами скрывают факт своего присутствия в системе.

Известные стелс-вирусы всех типов, за исключением Windows-вирусов — загрузочные вирусы, файловые DOS-вирусы и даже макро-вирусы.

Появление стелс-вирусов, заражающих файлы Windows, является скорее всего делом времени. 6.1 Загрузочные вирусы Загрузочные стелс-вирусы для скрытия своего кода используют два основных способа.

Первый из них заключается в том, что вирус перехватывает команды чтения зараженного сектора (INT 13h) и подставляет вместо него незараженный оригинал. Этот способ делает вирус невидимым для любой DOS-программы, включая антивирусы, неспособные 'лечить' оперативную память компьютера.

Возможен перехват команд чтения секторов на уровне более низком, чем INT 13h. Второй способ направлен против антивирусов, поддерживающих команды прямого чтения секторов через порты контроллера диска. Такие вирусы при запуске любой программы (включая антивирус) восстанавливают зараженные сектора, а после окончания ее работы снова заражают диск.

Поскольку для этого вирусу приходится перехватывать запуск и окончание работы программ, то он должен перехватывать также DOS-прерывание INT 21h. С некоторыми оговорками стелс-вирусами можно назвать вирусы, которые вносят минимальные изменения в заражаемый сектор (например, при заражении MBR правят только активный адрес загрузочного сектора - изменению подлежат только 3 байта), либо маскируются под код стандартного загрузчика. 6.2 Файловые вирусы Большинство файловых стелс-вирусов использует те же приемы, что приведены выше: они либо перехватывают DOS-вызовы обращения к файлам (INT 21h) либо временно лечат файл при его открытии и заражают при закрытии. Также как и для загрузочных вирусов, существуют файловые вирусы, использующие для своих стелс-функций перехват прерываний более низкого уровня - вызовы драйверов DOS, INT 25h и даже INT 13h. Полноценные файловые стелс-вирусы, использующие первый способ скрытия своего кода, в большинстве своем достаточно громоздки, поскольку им приходиться перехватывать большое количество DOS-функций работы с файлами: открытие/закрытие, чтение/запись, поиск, запуск, переименование и т.д., причем необходимо поддерживать оба варианта некоторых вызовов (FCB/ASCII), а после появления Windows95/NT им стало необходимо также обрабатывать третий вариант - функции работы с длинными именами файлов.

Некоторые вирусы используют часть функций полноценного стелс-вируса. Чаще всего они перехватывают функции DOS FindFirst и FindNext (INT 21h, AH=11h, 12h, 4Eh, 4Fh) и 'уменьшают' размер зараженных файлов. Такой вирус невозможно определить по изменению размеров файлов, если, конечно, он резидентно находится в памяти.

Программы, которые не используют указанные функции DOS (например, 'Нортоновские утилиты'), а напрямую используют содержимое секторов, хранящих каталог, показывают правильную длину зараженных файлов. 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', то все пользователи, зараженные червем 'mIRC.Acoragil' автоматически отключаются от канала. То же самое происходит с червем 'mIRC.Simpsalapim' - он аналогично реагирует на строку 'Simpsalapim'. При размножении черви командами mIRC пересылают свой код в файле SCRIPT.INI каждому новому пользователю, который подключается к каналу.

Содержат троянскую часть. 'mIRC.Simpsalapim' содержит код захвата канала IRC: если mIRC владельца канала заражен, то по вводу кодового слова 'ananas', злоумышленник перехватывает управление каналом. 'mIRC.Acoragil' по кодовым словам пересылает системные файлы DOC, Windows или UNIX. Некоторые кодовые слова выбраны таким образом, что не привлекают внимания жертвы - hi, cya или the. Одна из модификаций этого червя пересылает злоумышленнику файл паролей UNIX. 9. Сетевые вирусы К сетевым относятся вирусы, которые для своего распространения активно используют протоколы и возможности локальных и глобальных сетей.

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

Бытует ошибочное мнение, что сетевым является любой вирус, распространяющийся в компьютерной сети. Но в таком случае практически все вирусы были бы сетевыми, даже наиболее примитивные из них: ведь самый обычный нерезидентный вирус при заражении файлов не разбирается - сетевой (удаленный) это диск или локальный. В результате такой вирус способен заражать файлы в пределах сети, но отнести его к сетевым вирусам никак нельзя.

Наибольшую известность приобрели сетевые вирусы конца 1980-х, их также называют сетевыми червями (worms). К ним относятся вирус Морриса, вирусы «Cristmas Tree» и «Wank Worm&». Для своего распространения они использовали ошибки и недокументированные функции глобальных сетей того времени - вирусы передавали свои копии с сервера на сервер и запускали их на выполнение. В случае с вирусов Морриса эпидемия захватила аж несколько глобальных сетей в США. Сетевые вирусы прошлого распространялись в компьютерной сети и, как правило, так же как и компаньон-вирусы, не изменяли файлы или сектора на дисках. Они проникали в память компьютера из компьютерной сети, вычисляли сетевые адреса других компьютеров и рассылали по этим адресам свои копии. Эти вирусы иногда также создавали рабочие файлы на дисках системы, но могли вообще не обращаться к ресурсам компьютера (за исключением оперативной памяти). После нескольких эпидемий сетевых вирусов ошибки в сетевых протоколах и программном обеспечении были исправлены, а «задние двери» закрыты. В результате за песледние десять лет не было зафиксировано ни одного случая заражения сетевым вирусом, как, впрочем, не появилось и ни одного нового сетевого вируса. Вновь проблема сетевых вирусов возникла лишь в начале 1997-го года с появлением вирусов «Macro.Word.ShareFun» и «Win.Homer». Первый из них использует возможности электронной почты Microsoft Mail - он создает новое письмо, содержащее зараженный файл-документ («ShareFun» является макро-вирусом), затем выбирает из списка адресов MS-Mail три случайных адреса и рассылает по ним зараженное письмо.

Поскольку многие пользователи устанавливают параметры MS-Mail таким образом, что при получении письма автоматически запускается MS Word, то вирус «автоматически» внедряется в компьютер адресата зараженного письма. Этот вирус иллюстрирует первый тип современного сетевого вируса, которые объединяют возможности встроенного в Word/Excel языка Basic, протоколы и особенности электронной почты и функции авто-запуска, необходимые для распространения вируса.

Второй вирус («Homer») использует для своего распространения протокол FTP (File Trabsfer Protocol) и передает свою копию на удаленный ftp-сервер в каталог Incoming. Поскольку сетевой протокол FTP исключает возможность запуска файла на удаленнов сервере, этот вирус можно охарактеризовать как «полу-сетевой», однако это реальный пример возможностей вирусов по использованию современных сетевых протоколов и поражению глобальных сетей. 10. Прочие 'вредные программы' К 'вредным программам', помимо вирусов, относятся также троянские кони (логические бомбы), хакерские утилиты скрытого администрирования удаленных компьютеров ('backdoor'), программы, 'ворующие' пароли доступа к ресурсам Интернет и прочую конфиденциальную информацию; а также 'intended' -вирусы, конструкторы вирусов и полиморфик-генераторы. 10.1 Троянские кони (логические бомбы) К троянским коням относятся программы, наносящие какие-либо разрушительные действия, т.е. в зависимости от каких-либо условий или при каждом запуске уничтожающая информацию на дисках, «завешивающая» систему и т.п.

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

Например, файл шифруется каким-либо специальным образом или упаковывается редкоиспользуемым архиватором, что не позволяет антивирусу «увидеть» заражение. 10. 2 Утилиты скрытого администрирования (backdoor) Троянские кони этого класса по своей сути является достаточно мощными утилитами удаленного администрирования компьютеров в сети. По своей функциональности они во многом напоминают различные системы администрирования, разрабатываемые и распространяемые различными фирмами-производителями программных продуктов.

Будучи установленными на компьютер, утилиты скрытого управления позволяют делать с компьютером все, что в них заложил их автор: принимать/отсылать файлы, запускать и уничтожать их, выводить сообщения, стирать информацию, перезагружать компьютер и т.д. В результате эти троянцы могут быть использованы для обнаружения и передачи конфиденциальной информации, для запуска вирусов, уничтожения данных и т.п. - пораженные компьютеры оказываются открытыми для злоумышленных действий хакеров. 10. 3Конструкторы вирусов Конструктор вирусов – это утилита, предназначенная для изготовления новых компьютерных вирусов.

Известны конструкторы вирусов для DOS, Windows и макро-вирусов. Они позволяют генерировать исходные тексты вирусов (ASM-файлы), объектные модули, и/или непосредственно зараженные файлы.

Некоторые конструктороы (VLC, NRLG) снабжены стандартным оконным интерфейсом, где при помощи системы меню можно выбрать тип вируса, поражаемые объекты (COM и/или EXE), наличие или отсутствие самошифровки, противодействие отладчику, внутренние текстовые строки, выбрать эффекты, сопровождающие работу вируса и т.п.

Прочие конструкторы (PS-MPC, G2) не имеют интерфейса и считывают информацию о типе вируса из конфигурационного файла. 10. 4 Полиморфные генераторы Полиморфик-генераторы, как и конструкторы вирусов, не являются вирусами в прямом смысле этого слова, поскольку в их алгоритм не закладываются функции размножения, т.е. открытия, закрытия и записи в файлы, чтения и записи секторов и т.д.

Главной функцией подобного рода программ является шифрование тела вируса и генерация соответствующего расшифровщика.

Обычно полиморфные генераторы распространяются их авторами без ограничений в виде файла-архива.

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

Физически это достигается следующим образом: объектный файл вируса линкуется с объектным файлом генератора, а в исходный текст вируса перед командами его записи в файл вставляется вызов полиморфик-генератора, который создает коды расшифровщика и шифрует тело вируса.

Заключение Вирус - специально написанная программа, способная самопроизвольно присоединяться к другим программам, создавать свои копии и внедрять их в файлы, системные области компьютера и в вычислительные сети с целью нарушения работы программ, порчи файлов и каталогов, создания всевозможных помех в работе компьютера. В настоящее время известно более 5000 программных вирусов, число которых непрерывно растет.

Основные виды вирусов: загрузочные, файловые, файлово-загрузочные.

Наиболее опасный вид вирусов - полиморфные. Из истории компьютерной вирусологии ясно, что любая оригинальная компьютерная разработка заставляет создателей антивирусов приспосабливаться к новым технологиям, постоянно усовершенствовать антивирусные программы.