Министерство Образования и Науки РФ
Череповецкий Государственный Университет
Реферат на тему:
«Вирусология»
Подготовил:
Студент группы 5ЗИ-11
Мандрыкин Е.О.
2008/2009 уч. ГодВведение
Компьютерныевирусы. Что это такое и как с этим бороться? На эту тему написаны десятки книги сотни статей, борьбой с компьютерными вирусами профессионально занимаютсясотни (или тысячи) специалистов в десятках (а может быть, сотнях) компаний.Казалось бы, тема эта не настолько сложна и актуальна, чтобы быть объектомтакого пристального внимания. Однако это не так. Компьютерные вирусы были иостаются одной из наиболее распространенных причин потери информации. Известныслучаи, когда вирусы блокировали работу организаций и предприятий. Более того,несколько лет назад был зафиксирован случай, когда компьютерный вирус сталпричиной гибели человека — в одном из госпиталей Нидерландов пациент получиллетальную дозу морфия по той причине, что компьютер был заражен вирусом ивыдавал неверную информацию.
Несмотряна огромные усилия конкурирующих между собой антивирусных фирм, убытки,приносимые компьютерными вирусами, не падают и достигают астрономическихвеличин в сотни миллионов долларов ежегодно. Эти оценки явно занижены,поскольку известно становится лишь о части подобных инцидентов.
Приэтом следует иметь в виду, что антивирусные программы и «железо» не дают полнойгарантии защиты от вирусов. Примерно так же плохо обстоят дела на другойстороне тандема «человек-компьютер». Как пользователи, так ипрофессионалы-программисты часто не имеют даже навыков «самообороны», а ихпредставления о вирусе порой являются настолько поверхностными, что лучше бы их(представлений) и не было.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-сектор или MasterBoot Record (MBR) винчестера. Принцип действия загрузочных вирусов основан наалгоритмах запуска операционной системы при включении или перезагрузкекомпьютера — после необходимых тестов установленного оборудования (памяти,дисков и т.д.) программа системной загрузки считывает первый физический секторзагрузочного диска (A:, C: или CD-ROM в зависимости от параметров,установленных в BIOS Setup) и передает на него управление.
Вслучае дискеты или компакт-диска управление получает boot-сектор, которыйанализирует таблицу параметров диска (BPB — BIOS Parameter Block) высчитываетадреса системных файлов операционной системы, считывает их в память и запускаетна выполнение.
Призаражении дисков загрузочные вирусы «подставляют» свой код вместо какой-либопрограммы, получающей управление при загрузке системы. Принцип заражения, такимобразом, одинаков во всех описанных выше способах: вирус «заставляет»систему при ее перезапуске считать в память и отдать управление неоригинальному коду загрузчика, а коду вируса.
Заражениедискет производится единственным известным способом — вирус записывает свой кодвместо оригинального кода boot-сектора дискеты. Винчестер заражается тремя возможными способами — вирус записываетсялибо вместо кода MBR, либо вместо кода boot-сектора загрузочного диска (обычнодиска C:), либо модифицирует адрес активного boot-сектора в Disk PartitionTable, расположенной в 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 им стало необходимо также обрабатывать третий вариант — функции работы с длинными именами файлов.
Некоторые вирусы используют частьфункций полноценного стелс-вируса. Чаще всего они перехватывают функции DOSFindFirst и 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-скриптов послужила основой для появленияскрипт-червей нового поколения, которые помимо скриптов заражали компьютеры