1. Что такое компьютерные вирусы и как они работают

Что же такое компьютерный вирус? Представьте себе работу мелкого клерка и его рабочее место. На столе стоит телефон, копировальный аппарат и другие канцелярские принадлежности. Рядом стоит шкаф с папками и документами.

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

Клерк монотонно выполняет свою работу день за днем и вдруг недоброжелатель вкладывает ему в папку еще один лист с дополнительными инструкциями. В них клерку предлагается скопировать этот лист на копировальной машине и вложить его в следующую папку. Со временем такой лист распространится по папкам и в конце концов, его копия будет находиться в каждой папке.

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

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

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

Существуют достаточно оригинальные вирусы, распространяющиеся через файлы документов, подготовленных в текстовом процессоре Microsoft Word for Windows и электронной таблице Microsoft Excel for Windows. Кроме перечисленных вирусов существуют и другие, например, вирусы, заражающие командные файлы - файлы с расширением BAT. Прогресс в мире вирусов не стоит на месте, десятки, если не сотни скучающих программистов делают свое черное дело и на свет появляются все более страшные монстры.

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

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

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

Можно придумать много другой полезной работы, которая под силу вирусам. Однако мы не станем отнимать хлеб у писателей вирусов, скажем только, что даже “полезные” вирусы могут быть очень опасны.

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

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

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

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

Резидентные и нерезидентные вирусы

Операционная система MS-DOS является однозадачной. В любой момент времени может работать только одна программа. Когда пользователь закончит с ней работать, программа выгружается из оперативной памяти и пользователь может запустить новую программу. Естественно, это не всегда удобно. Например, если вы пишете в текстовом редакторе финансовый отчет, вам может потребоваться калькулятор. Очень неудобно для запуска калькулятора каждый раз завершать текстовый редактор, а потом запускать его снова.

Чтобы как-то смягчить неудобства, вызванные однозадачностью MS-DOS, был создан механизм резидентных программ. При запуске резидентной программы она сразу возвращает управление операционной системе, но оставляет в оперативной памяти резидентный модуль.

Даже если потом запускаются другие программы этот модуль остается в памяти. Затем, когда пользователь нажимает определенную комбинацию клавиш или при другом условии резидентная программа может активизироваться и выполнить некоторую работу.

В качестве примера можно привести программы резидентных калькуляторов. Они могут быть загружены из командной строки операционной системы или из файла AUTOEXEC.BAT и остаются резидентными в памяти. Если пользователь нажимает определенную комбинацию клавиш, на экране появляется панель калькулятора. Пользователь может выполнить любые вычисления и вернуться в свою программу. Резидентные программы могут выполнять и другие действия. Например, они могут выполнять функции будильника.

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

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

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

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

Некоторые разновидности вирусов, называемые стелс-вирусами, используют резидентный модуль, чтобы замаскировать свое присутствие. Они могут перехватывать обращения к файловой системе и скрывать изменение длины зараженных файлов. Более подробно о стелс-вирусах вы можете прочитать в разделе “Маскировка вирусов”.

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

Любая резидентная программа, и в том числе резидентные модули вирусов, уменьшают объем доступной оперативной памяти. Это изменение можно заметить с помощью команды MEM, входящей в состав операционной системы MS-DOS.

Команда MEM отображает информацию об использовании оперативной памяти компьютера. С помощью нее можно узнать, сколько оперативной памяти установлено на компьютере, сколько памяти занято и сколько свободно для использования:

Memory Type        Total       Used       Free
----------------  --------   --------   --------
Conventional          640K       204K       436K
Upper                   0K         0K         0K
Reserved              384K       384K         0K
Extended (XMS)     15 360K    14 336K     1 024K
----------------  --------   --------   --------
Total memory       16 384K    14 924K     1 460K

Total under 1 MB      640K       204K       436K


Total Expanded (EMS)                1 024K (1 048 576 bytes)
Free Expanded (EMS)                 1 024K (1 048 576 bytes)

Largest executable program size       436K (446 256 bytes)
Largest free upper memory block         0K       (0 bytes)
MS-DOS is resident in the high memory area.

Команда MEM позволяет подробно исследовать резидентные модули, загруженные в память. Для этого при вызове команды ей надо указать дополнительные параметры. Подробное описание команды MEM изложено в десятом томе “Библиотеки системного программиста” - “Компьютер IBM PC/AT, MS-DOS и Windows. Вопросы и ответы”. ‡Здесь мы приведем только основные сведения.

MEM [/CLASSIFY | /DEBUG] [/PAGE]

Если указать дополнительный параметр /CLASSIFY (или /C), то будет представлена информация по каждому резидентному модулю, размещенному в оперативной памяти.

Вместо параметра /CLASSIFY можно указать параметр /DEBUG (или /D). В этом случае будет собрана дополнительная информация о загруженных драйверах.

Команда MEM выводит на экран очень много информации. Так как экран компьютера может одновременно отображать ограниченное количество строк, то выполняется свертка изображения. Дополнительный параметр /PAGE (или /P) позволяет после заполнения очередного экрана выдерживать паузу.

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

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

Вирусы в загрузочных секторах дисков

Сразу после включения питания компьютера начинает работать процедура проверки POST (Power On Self Test). В ходе проверки определяется конфигурация компьютера, проверяется работоспособность основных его подсистем. Процедура POST записана в микросхеме постоянного запоминающего устройства, расположенного на системной плате компьютера.

Если компьютер имеет энергонезависимую память (CMOS-память), из нее считываются значения текущих даты и времени, конфигурация дисковой подсистемы. Заметим, что CMOS-память установлена практически на всех компьютерах. Она отсутствовала только на первых моделях компьютеров IBM PC и IBM PC/XT.

Затем процедура POST проверяет, вставлена ли дискета в дисковод A:. Если дискета вставлена, тогда дальнейшая загрузка операционной системы происходит с дискеты. Если дискета не вставлена, загрузка выполняется с жесткого диска.

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

Последовательность загрузки операционной системы MS-DOS с дискеты и с жесткого диска немного различаются. Мы опишем оба случая, так как это важно для понимания механизма распространения загрузочных вирусов.

Загрузка компьютера с системной дискеты

Если загрузка компьютера происходит с дискеты, то процедура POST считывает с нее загрузочную запись (Boot Record) в оперативную память. Эта запись всегда расположена в самом первом секторе дискеты и представляет собой маленькую программу. Кроме программы загрузочную запись содержит структуру данных, определяющую формат дискеты и т. д. Затем процедура POST передает управление загрузочной записи.

Получив управление, загрузочная запись приступает непосредственно к загрузке операционной системы. Она считывает с дискеты и загружает в оперативную память файлы IO.SYS и MSDOS.SYS. Для операцилнных систем, совместимых с MS-DOS эти имена могут отличаться. Например в операционной системе IBM PC-DOS загружаются файлы IBMIO.COM IBMSYS.COM.

Затем, если на дискете записан файл конфигурации CONFIG.SYS, анализируется его содержимое и загружаются указанные в нем драйверы.

После этого с дискеты считывается командный процессор COMMAND.COM и управление передается ему. Командный процессор завершает загрузку операционной системы и выполняет команды, записанные в файле AUTOEXEC.BAT.

После выполнения команд, записанных в файле AUTOEXEC.BAT, командный процессор отображает на экране системное приглашение и ожидает ввода команд:

A:\>

Файлы CONFIG.SYS и AUTOEXEC.BAT могут отсутствовать. Если отсутствует файл AUTOEXEC.BAT, тогда после окончания загрузки операционной системы командный процессор предлагает ввести текущую дату и время:

Current date is Fri 15-04-1996
Enter new date (mm-dd-yy):

Current time is  2:28:33.47p
Enter new time:

Если вы не желаете изменять дату и время, нажмите два раза клавишу <Enter>. В этом случае дата и время останутся без изменения, и на экране появится системное приглашение MS-DOS. Вы можете создать на системной дискете пустой файл AUTOEXEC.BAT, тогда дата и время запрашиваться не будут и после загрузки операционной системы на экране сразу появится системное приглашение.

Загрузка компьютера с несистемной дискеты

Мы рассмотрели вариант загрузки компьютера с системной дискеты. Возможен вариант, при котором пользователь случайно или по ошибке попытается загрузить компьютер с несистемной дискеты. На такой дискете отсутствуют файлы операционной системы IO.SYS, MSDOS.SYS и COMMAND.COM. Тем не менее, загрузочная запись присутствует даже на несистемной дискете.

Когда процедура POST считывает и передает управление загрузочной записи, она определяет, что дискета несистемная (так как на ней отсутствуют файлы операционной системы) и отображает на экране соответствующее сообщение:

Non-System disk or disk error Replace and press any key when ready

В некоторых случаях сообщение может иметь другой внешний вид:

This disk is not bootable

If you wish to make it bootable,
run the DOS program SYS after the
system has been loaded

Please insert a DOS diskette into
the drive and strike any key...

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

В разделе “Создание системной дискеты” мы расскажем, как из несистемной дискеты сделать системную.

Загрузочный вирус может распространяться как через системные, так и через несистемные дискеты

Загрузка компьютера с жесткого диска

Загрузка компьютера с жесткого диска происходит несколько сложнее. Процедура POST считывает с жесткого диска главную загрузочную запись (MBR - Master Boot Record) и записывает ее в оперативную память компьютера. Главная загрузочная запись содержит программу первоначальной загрузки и таблицу разделов, в которой описаны все разделы жесткого диска.

Формирование главной загрузочной записи и таблицы разделов происходит во время первоначальной установки компьютера и разделения его жестких дисков на разделы и логические диски. Обычно эту операцию делают один раз, используя для этого команду FDISK операционной системы MS-DOS.

Главная загрузочная запись хранится в самом первом секторе жесткого диска. Поэтому процедура POST всегда знает, где она расположена.

Затем управление передается только что прочитанной с диска программе первоначальной загрузки. Она анализирует содержимое таблицы разделов, выбирает активный раздел и считывает загрузочную запись активного раздела (Boot Record). Загрузочная запись активного раздела аналогична загрузочной записи системной дискеты и выполняет те же самые функции. Она считывает в оперативную память файлы IO.SYS и MSDOS.SYS, анализирует файл конфигурации CONFIG.SYS, записанный на диске активного раздела, и загружает указанные в нем драйверы. После этого управление передается командному процессору COMMAND.COM. Командный процессор завершает загрузку операционной системы, а затем выполняет команды, записанные в файле AUTOEXEC.BAT.

Как работает загрузочный вирус

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

Таким образом, вирус получает управление сразу после завершения процедуры POST. Затем он, как правило, действует по стандартному алгоритму. Вирус копирует себя в конец оперативной памяти, уменьшая при этом объем свободной оперативной памяти. После этого он перехватывает несколько функций BIOS, так что обращение к ним передает управление вирусу. В конце вирус загружает в оперативную память компьютера настоящий загрузочный сектор и передает ему управление. Далее компьютер загружается как обычно, но вирус уже находится в памяти и может контролировать работу всех программ и драйверов.

Рис. 1.1. Загрузочный вирус

Обычно загрузочный вирус заражает компьютер, когда пользователь загружает компьютер с дискеты, на которой уже есть вирус (вне зависимости от того системная эта дискета или нет). Чаще всего это происходит случайно. Вы работаете с дискетой и оставляете ее в дисководе A: компьютера. Если теперь вы перезагрузите компьютер или произойдет сбой работы компьютера из-за скачка питания, то загрузка компьютера начинается с зараженной дискеты и управление получает вирус. Он сразу заражает жесткий диск компьютера, устанавливает себя резидентным в памяти. Затем вирус загружает компьютер обычным образом. Если дискета загрузочная, то произойдет загрузка операционной системы, в противном случае на экране появляется предложение вставить в дисковод A: системную дискету и перезагрузить компьютер.

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

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

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

Интересный эффект получается, если дискета или диск последовательно заражены несколькими загрузочными вирусами. В зависимости от того, какие секторы эти вирусы используют для хранения настоящего загрузочного сектора, возможны два случая.

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

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

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

Вирус Ball

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

И вот в один прекрасный день на экране компьютера появился небольшой шарик. Он перемещался по экрану, отражаясь от его границ и некоторых символов. Первое время мы были в ужасной панике, думая что испортили дорогостоящий компьютер IBM PC/XT и все его программное обеспечение.

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

Для борьбы с вирусом использовали специальную антивирусную программу SCAN фирмы McAfee. Она легко находила вирус на дискетах и жестких дисках компьютеров, а затем удаляла его. После такой процедуры вирус долгое время не появлялся и некоторое время мы жили спокойно.

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

Впоследствии выяснилось, что вирус Ping Pong, он же вирус Ball, распространялся через загрузочные секторы дискет и дисков. Оригинальный загрузочный сектор записывается на свободное место. Соответствующий сектор помечается как испорченный (Bad cluster). Испорченный кластер несколько уменьшал доступный размер дисков и дискет, но мы списывали это на их низкое качество.

Вирус Stoned

Второй вирус, с которым мы столкнулись, также оказался загрузочным. Антивирусные программы распознавали его как вирус Stoned. Он получил это название из-за того, что во время загрузки операционной системы на экране иногда появляется надпись "Your PC is now Stoned!". Мы немного остановимся на этом вирусе, так как он имеет очень много модификаций. Насчитывается большое количество вирусов, для которых он послужил прототипом.

Вирус достаточно легко опознается визуально. На дискетах он записывает себя на место загрузочной записи, а на жестких дисках - на место главной загрузочной записи. Если вы просмотрите соответствующие секторы в любом редакторе, например Norton Disk Editor, вы увидите надписи "Your PC is now Stoned!" и "LEGALISE MARIJUANA!". Как пользоваться программой Norton Disk Editor, вы узнаете из шестой главы нашей книги.

Когда вирус Stoned появился в первый раз, мы изучали язык ассемблера и особенности архитектуры персональных компьютеров, совместимых с IBM PC. Поэтому мы полностью дизассемблировали код вируса и подробно его изучили.

На дискетах исходная загрузочная запись копируется в третий сектор на первой стороне нулевой дорожки. Для дискет с объемом 360 Кбайт этот сектор приходится на последний сектор корневого каталога.

При заражении жесткого диска исходная главная загрузочная запись копируется в другое место. Она размещается в седьмом секторе на нулевой стороне нулевой дорожки. Этот сектор обычно не используется и остается свободным.

Некоторые загрузочные вирусы, не использующие методы маскировки (которые будут описаны ниже) могут быть легко обнаружены просмотром загрузочного сектора. Как выглядит загрузочная запись дискеты, созданной средствами операционной системы MS-DOS версии 5.0, в редакторе Disk Editor из пакета Norton Utilities вы можете посмотреть на рисунке 1.2.

Рис. 1.2. Загрузочная запись

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

Если вирус заразит загрузочную запись, он, естественно, изменит ее. Во многих случаях такое изменение заметно невооруженным взглядом. На рисунке 1.3 мы привели внешний вид загрузочного сектора дискеты, зараженной вирусом Form.

Рис. 1.3. Вирус Form в загрузочной записи

К сожалению, не все загрузочные вирусы можно так легко распознать. Активные загрузочные вирусы, использующие различные механизмы маскировки, могут обманывать Disk Editor. Например, такие вирусы могут перехватывать обращение Disk Editor к первому сектору жестких дисков и дискет, подменяя этот сектор копией оригинального первого сектора (копия первого сектора создается вирусом в момент заражения диска). В этом случае изменение загрузочного сектора не будет заметно.

Перед тем как использовать Disk Editor, загрузите MS-DOS с чистой системной дискеты. Программа Disk Editor также должна быть записана на дискете. В этом случае вирус не сможет задействовать свои механизмы маскировки

Вирусы, внедряющиеся в файлы

Самую большую группу составляют вирусы, внедряющиеся в файлы. Они могут заражать практически любые файлы, содержащие выполнимый код. В первую очередь это файлы программ, имеющие расширения COM и EXE. Но не только они подвергаются нападению вирусов. Файлы оверлеев (расширения имен файлов OVL, OVI, OVR и др.), драйверов (SYS) также могут быть инфицированы.

Существует три большие группы файлов, которые непосредственно может запускать пользователь, вводя их имя в системном приглашении операционной системы MS-DOS. К ним относятся выполнимые файлы в формате COM и EXE, а также командные файлы, имеющие расширение BAT.

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

Файлы в форматах COM и EXE отличаются в основном только своим форматом. Выполнимый файл COM состоит из одних инструкций процессора и данных. Размер COM файла обычно не превышает 65536 байт. Естественно это накладывает большие ограничения на программы в этом формате.

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

Файлы в формате EXE имеют значительно более сложную структуру, чем файлы COM. За счет этого они могут иметь больший размер, превышающий 65536 байт. Особенности архитектуры процессоров, совместимых с Intel 8080 и Intel 8086 требуют *****

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

Первое поле заголовка содержит сигнатуру EXE-файла - два символа MZ. Вы можете просмотреть любой EXE-файл в текстовом редакторе. Два первых символа всегда будут MZ. Некоторые выполнимые файлы могут иметь другую сигнатуру - ZM. Они также распознаются операционной системой как файлы в формате EXE.

Затем в заголовке файла следует таблица настройки. Когда пользователь запускает EXE-файл, операционная система загружает его в оперативную память, а затем настраивает его в соответствии с таблицей настройки. Только после этого управление передается на первую команду программы, адрес которой также записан в заголовке файла. Подробно формат заголовка EXE-файла описан в 18 томе из серии книг “Библиотека системного программиста”.

Командные BAT-файлы - это обычные текстовые файлы, состоящие из команд операционной системы. Для создания такого файла достаточно иметь любой текстовый редактор, который может сохранять файлы в обычном текстовом формате. В качестве примера можно привести текстовый редактор Notepad, входящий в состав операционной системы Windows.

Кроме команд операционной системы и вызовов других программ, командный файл может содержать строки комментариев. Такие строки обозначаются командой REM и полностью игнорируются. Вы можете воспользоваться строками комментариев, чтобы добавить текстовое описание к командному файлу или чтобы временно запретить выполнение отдельных команд такого файла:

REM Подключаем драйверы локальной сети
lsl.com
ne2000.com
ipxodi.com
netx /c=c:\net\net.cfg
REM login - команда временно отключена -

Когда вы запускаете командный файл, операционная система считывает его строка за строкой и выполняет прочитанные команды (рис. 1.4).

Рис. 1.4. Программа до заражения

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

Далее вирус отрабатывает свои задачи: заражает другие файлы, устанавливает в памяти собственные резидентные модули и выполняет другие функции. Затем вирус, как правило, передает управление зараженной программе и далее она исполняется как обычно.

Рис. 1.5. Запуск зараженной программы

Обычно изменения в зараженных файлах видны невооруженным глазом в любом редакторе, в который можно загрузить выполнимый файл для просмотра. Кроме того заметно увеличение длинны зараженного файла. Некоторые вирусы, находясь резидентными в памяти, могут маскироваться. В этом случае изменения в зараженном файле будут незаметны.

На рисунках 1.6 и 1.7 мы привели участки дампа файла MOUSE.COM до и после его заражения вирусом OneHalf. Без труда можно заметить, что зараженный файл длиннее незараженного на 3544 байт.

Рис. 1.6. Дамп файла MOUSE.COM

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

Рис. 1.7. Дамп файла MOUSE.COM, зараженного вирусом OneHalf

Вирусы-спутники

Как известно, в операционной системе MS-DOS существуют три типа файлов, которые пользователь может запустить на выполнение. Это командные или пакетные файлы. Командные файлы состоят из команд операционной системы и имеют расширение имени файла BAT.

В одном каталоге могут одновременно находиться несколько выполнимых файлов, имеющих одинаковое имя, но разное расширение имени. Например, в каталоге DOS записаны файлы MSD.COM и MSD.EXE. Вы можете создать в этом же каталоге командный файл MSD.BAT.

Когда вы желаете выполнить программу и вводите ее имя в системном приглашении MS-DOS, вы обычно не указываете расширение файла. Какой же файл в этом случае будет выполнен?

Оказывается, в этом случае операционная система MS-DOS будет выполнять файл, имеющий расширение COM. Если в текущем каталоге или в каталогах, указанных в переменной среды PATH, существуют только файлы с расширением EXE и BAT, то выполняться будет файл с расширением EXE.

Когда вирус-спутник заражает файл, имеющий расширение EXE или BAT, он создает в этом же каталоге еще один файл, имеющий такое же имя и расширение COM. Вирус записывает себя в этот COM-файл.

В качестве иллюстрации сказанного мы приводим содержимое каталога C:\PROGRAM. Первоначально в нем был записан один файл программы расчета CALC.EXE. После заражения этого файла вирусом-спутником в каталоге C:\PROGRAM появился файл CALC.COM:

C:\PROGRAM>DIR
Volume in drive C is LIBRARY
Volume Serial Number is 1F64-394F
Directory of C:\PROGRAM
.              <DIR>        26.11.95  18:55
..             <DIR>        26.11.95  18:55
CALC     COM         1 754  30.09.93   6:20
CALC     EXE        29 390  30.09.93   6:20
2 file(s)         31 144 bytes
2 dir(s)      26 599 424 bytes free

Если, запуская зараженную программу CALC.EXE, вы наберете в системном приглашении ее имя без расширения, то будет запущен вирус-спутник, файл которого имеет расширение COM:

C:\PROGRAM>CALC

Получив управление, вирус может выполнять различные действия: заражать другие файлы, устанавливать резидентный модуль, и т. д. Затем вирус может запустить саму зараженную программу, имеющую расширение EXE.

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

Для маскировки вирусы спутники обычно устанавливают для файла вируса атрибут “Скрытый”. В этом случае команда DIR не отобразит имя файла вируса.

C:\PROGRAM>DIR
Volume in drive C is LIBRARY
Volume Serial Number is 1F64-394F
Directory of C:\PROGRAM
.              <DIR>        26.11.95  18:55
..             <DIR>        26.11.95  18:55
CALC     EXE        29 390  30.09.93   6:20
1 file(s)         29 390 bytes
2 dir(s)      26 599 424 bytes free

Однако такая маскировка очень слаба. Достаточно указать команде DIR параметр /A и она покажет список всех файлов в текущем каталоге, включая скрытые и системные файлы.

Вирус CloneWar

Под таинственным названием CloneWar скрывается целая группа вирусов-спутников. Во избежании путаницы их различают по длине файла вируса-спутника. На время написания книги были известны 5 вариантов вируса CloneWar длинной 228, 246, 261, 546 и 923 байт. Механизм их распространения полностью соответствует описанной нами технологии. Вирус выполняет поиск в текущем каталоге выполнимых файлов с расширением EXE. Затем он создает файл с таким же именем, но с расширением COM и записывает себя в него.

Когда пользователь вводит после системного приглашения имя зараженной программы без расширения, то запускается файл с расширением COM, который содержит вирус. Он заражает другие EXE файлы, а затем запускает зараженную программу.

Самая короткая из известных версий вируса CloneWar имеет длину 228 байт. Версия 246 вируса CloneWar содержит внутри себя небольшой стих:

Beyond
The rim of the star-light
My love
Is wand'ring in star-flight
I know
He'll find in star-clustered reaches
Love
Strange love a star woman teaches.
I know
His journey ends never
His star trek
Will go on forever.
But tell him
While he wanders his starry sea
Remember, remember me.

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

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

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

Вирус Carbuncle

Вирус Carbuncle также представляет собой вирус-спутник, но работает не так, как вирус CloneWar.

При запуске вирус Carbuncle создает в текущем каталоге файл CARBUNCL.COM. Для маскировки этому файлу присваивается атрибут скрытый. Затем вирус ищет в текущем каталоге выполнимые файлы. Если вирус найдет в каталоге файл с расширением EXE, то он изменяет его расширение на CRP и создает пакетный файл с таким же именем. Этот файл получает расширение BAT. В него вирус записывает несколько команд MS-DOS, позволяющих запустить файл вируса CARBUNCL.COM и саму зараженную программу. Ниже мы привели пример такого файла для зараженной программы PROGRAM.EXE.

@ECHO OFF
CARBUNCL
RENAME PROGRAM.CRP PROGRAM.EXE
PROGRAM.EXE
RENAME PROGRAM.EXE PROGRAM.CRP
CARBUNCL

Если пользователь решит запустить зараженную программу и введет в системном приглашении имя программы без указания расширения, то операционная система просмотрит весь каталог в поисках файла с таким именем. Так как файл с расширением EXE она не обнаружит, то будет выполнен файл с расширением BAT.

Чтобы замаскировать исполнение нескольких команд пакетного файла, команда @ECHO OFF отключает вывод на экран исполняемых команд пакетного файла.

Следующая строка пакетного файла, созданного вирусом, запускает сам вирус CARBUNCL.COM. Затем зараженному файлу возвращается его настоящее расширение EXE и выполняется его запуск. После того как программа отработает, ее расширение опять заменяется на CRP. В конце снова запускается файл вируса CARBUNCL.COM.

Так как после заражения программы файл с расширением EXE уже не существует, то если при запуске программы указать ее полное имя с расширением, операционная система не сможет найти этот файл и на экране появится предупреждающее сообщение:

Bad command or file name

Вирус CloneWar ведет себя в этой ситуации значительно лучше. В этом случае сразу будет запущена настоящая программа. Вирус просто не получит управления.

Вирус Carbuncle занимается не только распространением своих копий. В некоторых случаях он может уничтожить зараженный файл. При запуске файл вируса проверяет значение системного таймера и если оно меньше или равно 16, то вирус записывает свой код в файл первого зараженного файла в текущем каталоге.

Внутри файла вируса содержатся следующие текстовые строки:

@ECHO OFF
CARBUNCL
RENAME
PC CARBUNCLE: Crypt Newsletter 14

Вирусы в COM и EXE файлах

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

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

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

Получив управление, вирус выполняет действия, определенные его автором. Обычно в этот момент вирус заражает другие выполнимые файлы, устанавливает собственные резидентные модули, совершает другие противоправные действия.

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

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

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

Мы уже говорили, что размер выполнимых файлов в формате COM обычно не превышает 65536 байт. В принципе, можно создать COM файлы большего размера, но для этого они должны самостоятельно загружать себя. Большинство вирусов, заражающих COM-файлы, следят, чтобы суммарный размер файла и вируса не превышал данного значения. Если это условие не выполняется, заражение не происходит.

Среди вирусов, заражающих только COM-файлы, существуют и своего рода шедевры. Например, вирус Micro-92 имеет длину всего 92 байта. Вирус резидентный. Существует только в качестве академического. Автор вируса, Соловьев Михаил Анатольевич, прислал его непосредственно Лозинскому, гарантируя, что он не получит дальнейшего распространения.

Однако рекорд продержался недолго. Игорь Данилов создал вирус Micro-66 длиной 66 байт. Он существует только в качестве коллекционного экземпляра, никогда не распространялся и распространяться не будет. На момент написания книги самый короткий из известных нам вирусов имел длину 58 байт.

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

Вирусы в драйверах

В операционной системе MS-DOS существует специальный вид программ, называемых драйверами. Драйверы запускаются только на этапе загрузки операционной системы, во время ее инициализации и интерпретации файла конфигурации CONFIG.SYS. Файлы драйверов обычно имеют расширение SYS.

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

Основные файлы операционной системы IO.SYS и MSDOS.SYS также могут быть заражены. Интересно, что в Microsoft Windows 95 файл MSDOS.SYS не содержит исполняемого кода, а предназначен для хранения параметров конфигурации системы:

[Paths]
WinDir=C:\WIN
WinBootDir=C:\WIN
HostWinBootDrv=C

[Options]
BootMulti=1
BootGUI=1
Network=0
;
;The following lines are required for compatibility with other programs.
;Do not remove them (MSDOS.SYS needs to be >1024 bytes).
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa
...
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs

Естественно, в случае заражения этого файла Windows 95 перестанет правильно работать.

Вирусы в BAT-файлах

Среди огромного количества файловых вирусов, заражающих выполнимые файлы в формате COM и EXE, существует несколько вирусов, способных заражать пакетные файлы. Для этого используется весьма изощренный способ. Мы рассмотрим его на примере вируса BAT.Batman. При заражении пакетного файла в его начало вставляется текст следующего вида:

@ECHO OFF
REM [...]
copy %0 b.com>nul
.com
del b.com
em [...]

В квадратных скобках [...] схематично показано расположение байт, которые являются ассемблерными инструкциями или данными вируса. Команда @ECHO OFF отключает вывод на экран названий выполняемых команд. Строка, начинающаяся с команды REM, является комментарием и никак не интерпретируется.

Команда copy %0 b.com>nul копирует зараженный командный файл в файл B.COM. Затем этот файл запускается и удаляется с диска командой del b.com.

Самое интересное, что выполнимый файл B.COM, созданный вирусом, до единого байта совпадает с зараженным командным файлом. Но командный файл состоит из команд операционной системы, а выполнимый COM-файл - из команд центрального процессора. Как же работает такая программа? Если переименовать любой текстовый файл в выполнимый, просто заменив его расширение на COM, он, конечно же, не будет работать. В лучшем случае компьютер просто зависнет.

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

Текст BAT-файла     Команды ассемблера Описание команд
@ECHO OFF @ 40h INC AX Увеличить на единицу значение регистра AX
  E 45h INC BP Увеличить на единицу значение регистра BP
  C 43h INC BX Увеличить на единицу значение регистра BX
  H 48h DEC AX Уменьшить на единицу значение регистра AX
  O 4Fh DEC DI Уменьшить на единицу значение регистра DI
  > 20h AND [BX+46],CL Сравнить значение регистра CL со значением ячейки памяти
  O 4Fh    
  F 46h    
  F 46h INC SI Увеличить на единицу значение регистра SI
  > 0Dh OR AX,520A Записать в регистр AX результат логической операции ИЛИ между текущим значением AX и 520Ah
  > 0Ah    
REM R 52h    
  E 45h INC BP Увеличить на единицу значение регистра BP
  M 4Dh DEC BP Уменьшить на единицу значение регистра BP
  > 20h AND [SI],DH Записать в регистр AX результат логической операции И между значением регистра DH и значением ячейки памяти
    34h    

Центральный процессор выполняет эти команды, а затем начинает выполнять настоящий код вируса, записанный после признака комментария REM. Получив управление, вирус перехватывает прерывания операционной системы и оставляет себя резидентным в оперативной памяти компьютера.

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

Вирус BAT.Winstart

Вирус BAT.Winstart использует такую же технологию, что и вирус BAT.Batman. При запуске зараженного BAT-файла вирус копирует его в файл Q.COM, который создается в корневом каталоге диска C:. Затем файл Q.COM запускается уже как обычный выполнимый файл. В этот раз он устанавливает свой резидентный модуль в оперативной памяти и переименовывает файл C:\Q.COM в C:\WINSTART.BAT. Резидентный модуль вируса отслеживает момент запуска пользователем других программ и создает файл WINSTART.BAT в текущем каталоге.

@ECHO OFF
:s%r#
COPY %0.BAT C:\Q.COM>NUL
C:\Q
[...]

Когда командный файл WINSTART.BAT интерпретируется, как выполнимый файл в формате COM, то первая строка @ECHO OFF будет состоять из команд центрального процессора, которые фактически ничего не делают (см. вирус BAT.Batman). Вторая строка :s%r# будет воспринята как команда перехода на код вируса, схематично показанный квадратными скобками. Получив управление, основной коод вируса перехватывает прерывания операционной системы и оставляет себя резидентным в оперативной памяти компьютера.

Почему командный файл вируса называется WINSTART.BAT?

Файл WINSTART.BAT содержит команды, выполняемые при запуске операционной системой Windows в расширенном режиме. В этот файл обычно вносят вызовы резидентных программ, которые должны быть доступны только приложениям Windows. Программы MS-DOS, выполняемые в Windows, не имеют доступа к этим резидентным программам. За счет этого для программ MS-DOS остается больше свободной памяти.

Файл WINSTART.BAT не создается автоматически при установке Windows. Он должен быть создан самим пользователем и записан в каталог Windows, корневой каталог диска C: или любой другой каталог, определенный переменной среды PATH.

Вероятно, автор вируса рассчитывал на то, что вирус BAT.Winstart будет получать управление всякий раз, когда на компьютере запускается операционная система Windows.

Заражение файлов AUTOEXEC.BAT и CONFIG.SYS

Файлы конфигурации AUTOEXEC.BAT и CONFIG.SYS, содержат команды, выполняемые во время загрузки операционной системмы. В том числе в этих файлах перечислены драйвера и программы, которые надо загрузить.

Обычно файлы AUTOEXEC.BAT и CONFIG.SYS создаются во время установки операционной системы и модифицируются во время установки различного программного обеспечения. Начинающие пользователи сами не изменяют эти файлы и не знают, что в них находится.

Целый ряд вирусов, например Em, Nocopy, Some, DrWatson, вносят изменения в файлы AUTOEXEC.BAT и CONFIG.SYS. Эти вирусы создают на диске выполнимый файл, содержащий код вируса, а затем наглым образом вставляют команду запуска этого файла в AUTOEXEC.BAT или CONFIG.SYS.

Вирус BAT.282

Неопасный нерезидентный вирус. Создает в корневых каталогах дисков B: и C: файл VIRUS.BAT, содержащий вирусный код. Вставляет в файл AUTOEXEC.BAT вызов файла VIRUS.BAT

Обращайте внимание на все изменения в файлах AUTOEXEC.BAT и CONFIG.SYS. Изменение этих файлов, не связанное с установкой нового программного обеспечения, может быть результатом работы вируса.

Комбинированные вирусы

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

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

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

Повторное заражение файлов и загрузочных секторов

Большинство вирусов заражают один и тот же файл или загрузочную запись только один раз. Такие вирусы перед заражением нового файла проверяют, не был ли он заражен раньше. В качестве признака, по которому определяется заражение, могут использоваться нестандартное время создания файла (операционная система MS-DOS позволяет устанавливать время создания файла 62 секунды), заведомо неправильная дата создания файла (например 2001 год). Более сложные вирусы определяют факт заражения поиском своей сигнатуры и т. д.

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

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

Вирус Yankee Doodle

Целый ряд вирусов, заражающих выполнимые файлы. Некоторые версии вируса в определенное время исполняют на встроенном динамике компьютера мелодию Yankee Doodle. Интересно, что этот вирус борется с загрузочным вирусом Ball. Он изменяет его код таким образом, что вирус Ball через некоторое время самостоятельно удаляет себя с жесткого диска компьютера.

Вирус DIR

Летом 1991 года разразилась эпидемия нового вируса. Его проявления были весьма интересны. Во время копирования зараженных файлов в любом случае копировались только 1024 байта, несмотря на то, что фактические длины файлов были совершенно другие. Проверка целостности структуры файловой системы с помощью программы CHKDSK или Norton Disk Doctor выявляла наличие большого количества потерянных кластеров и пересечений файлов. Если, обнаружив нарушение в структуре файловой системы, пользователь пытался ее исправить, то все зараженные файлы оказывались испорченными.

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

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

Чтобы лучше понять механизм распространения вируса DIR, мы проведем небольшой экскурс в структуру файловой системы MS-DOS. Более подробную информацию вы найдете в шестой главе этой книги.

При описании загрузочных вирусов мы уже рассказывали, что данные хранятся на жестких дисках и дискетах в отдельных секторах. Несколько секторов, расположенных рядом, называют кластером. Когда на диске создается новый файл, операционная система отводит для него несколько свободных кластеров. Кластеры файла не обязательно должны следовать друг за другом. Поэтому операционная система хранит список номеров всех кластеров, распределенных файлу, в специальной таблице. Эта таблица называется таблицей распределения файлов (FAT - File Allocation Table).

В таблице распределения файлов для каждого кластера есть один элемент. Его значение характеризует состояние кластера. Например, свободный кластер отмечается нулевым значением, а кластер, непригодный для использования, отмечается числом FF7h (FFF7h). Если кластер распределен файлу, то соответствующий элемент FAT содержит номер следующего кластера файла. Последний кластер файла отмечается числом в диапазоне от FF8h до FFFh (от FFF8h до FFFFh).

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

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

Другие каталоги имеют точно такую же структуру, что и корневой каталог. В них также находятся описания файлов и других подкаталогов.

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

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

Заражение вирусом DIR происходит следующим образом. Вирус DIR копирует свой код в один из кластеров заражаемой дискеты или логического диска. Этот кластер помечается в таблице FAT как конец файла. Затем вирус меняет описания файлов COM и EXE в структурах каталогов. Вирус записывает вместо номера первого кластера файла номер кластера, содержащего его код (рис. 1.9). Настоящий номер первого кластера зараженного файла шифруется и записывается в неиспользуемую область описания файла.

Рис. 1.8. Структура каталогов

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

Рис. 1.9. Структура каталогов после заражения вирусом DIR

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

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

Маскировка вирусов

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

Например, для вируса BAT.Batman характерной может служить следующая последовательность (подробное описание вируса BAT.Batman смотри выше):

copy %0 b.com>nul
b.com
del b.com

Для вируса WinWord.Concept такой характерной последовательностью может служить одна из следующих строк:

see if we're already installed
iWW6IInstance
WW6Infector

Многие загрузочные вирусы также легко могут быть обнаружены простым просмотром загрузочных секторов жестких дисков компьютера и дискет. Например, вирус Stoned, содержит строки "Your PC is now Stoned!" и "LEGALISE MARIJUANA!".

Однако далеко не все вирусы ведут себя так грубо. Многие из них маскируют свое присутствие, используя для этого различные приемы. Вследствии естественного отбора антивирусными программами шанс выжить есть только у вирусов, применяющих разнообразные методы маскировки.

Шифрующиеся и полиморфные вирусы

Чтобы затруднить обнаружение, некоторые вирусы шифруют свой код. Каждый раз, когда вирус заражает новую программу, он зашифровывает собственный код, используя новый ключ. В результате два экземпляра такого вируса могут значительно отличаться друг от друга, даже иметь разную длину.

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

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

Тем не менее, авторы вирусов нашли выход из этой ситуации. Для шифрования вирусов они стали использовать не только разные ключи, но и разные процедуры шифрования. Два экземпляра таких вирусов не имеют ни одной совпадающей последовательности кода. Такие вирусы, которые могут полностью изменять свой код, получили название полиморфных. Наиболее известные из них - это Phantom-1, Natas, OneHalf, SatanBug.

Первым полиморфным вирусом считают V2Px.1260. Он был создан Марком Вашбурном (Mark Washburn) в качестве экспериментального вируса. На настоящий момент существует огромное количество полиморфных вирусов. Вот только несколько их названий: Basilisk.1639, CeCe.1994, CeCe.1998, CommanderBomber, Dir-II.TheHndV, Flip.2153, Flip.2343, Flip.2365, Fly.1769, Holms.6161, Invisible.2926, Invisible.3223, RDA.Fighter.5871, RDA.Fighter.5969, RDA.Fighter.7408, RDA.Fighter.7802.

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

Первым таким средством создания полиморфных вирусов стал Dark Angel MuTation Engine (иногда называется MtE или DAME), созданный болгарским автором вирусов известным, как Dark Avenger.

В состав MuTation Engine входит объектный модуль, который необходимо подключить к создаваемому вирусу, подробная документация и пример его использования. Благодаря MuTation Engine появилось много полиморфных вирусов. Среди них MtE.CoffeeShop, MtE.Darkstar, MtE.Dedicated.

Вслед за MuTation Engine появились еще несколько средств разработки полиморфных вирусов, имеющих различный уровень сложности и сервиса:

После появления очередного средства разработки полиморфных вирусов некоторые авторы вирусов создавали на их основе собственные вирусы.

Интересно, что AWME является отечественной разработкой и создан в Казани. По нашим сведениям, AWME ориентирован на противодействие антивирусной программе Doctor Web. Более подробно об этом можно прочитать в разделе “Doctor Web”. AWME распространяется в виде исходного текста на языке ассемблера.

Современные антивирусные средства, например Doctor Web, умеют не только успешно идентифицировать полиморфные вирусы, но также и удалять их из зараженной программы.

Шифрование кода вируса значительно усложняет процесс его исследования. Обычные программы не смогут дизассемблировать такой вирус. Тот, кто отважится разобраться в зашифрованном вирусе, должен будет разбираться с ним, выполняя код вируса команда за командой в пошаговом режиме отладчика.

Стелс-вирусы

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

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

Примером стелс-вируса может служить Magdzie.1114. Это файловый вирус, заражающий выполнимые файлы в формате EXE. При запуске зараженной программы в оперативной памяти устанавливается вирусный резидентный модуль, который перехватывает обращения к файловой системе компьютера. Если операционная система запускает или открывает для чтения файл зараженной программы, вирус временно удаляет из нее свой код. Обратное заражение происходит, когда операционная система закрывает файл.

Вирус Magdzie проявляется, удаляя все файлы, название которых начинается с CHKLIST. 27 мая вирус выводит на экран небольшой текст и движущийся графический узор.

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

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

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

Большинство антивирусных программ требует, чтобы для проверки и лечения компьютера он был загружен с системной дискеты, на которой нет вирусов. Такая дискета должна быть подготовлена заранее. Более подробно об этой процедуре вы можете прочитать в разделе “Создание системной дискеты”.

Комбинированный метод маскировки

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

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

Внешние проявления болезни

Большинство вирусов не только размножаются, заражая новые и новые компьютеры, они еще выполняют дополнительные действия или, другими словами, спецэффекты, предусмотренные их автором.

У разных вирусов эти дополнительные действия могут быть опасными или неопасными, бросающимися в глаза или скрытыми, трудно обнаружимыми. Рассказать обо всех проявлениях вирусов невозможно, для этого надо описать каждый вирус. Мы расскажем только о наиболее типичных и наиболее интересных случаях.

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

Опасные вирусы

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

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

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

Интересный и опасный случай представляют вирусы, которые изменяют программную среду компьютера таким образом, что становятся ее неотъемлемой частью. Подобные вирусы очень сложно удалить. Если файлы, зараженные этими вирусами, просто удалить или восстановить с резервных копий, то система вообще может перестать работать.

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

Когда вирус зашифрует половину жесткого диска, он отображает на экране надпись:

Dis is one half.
Press any key to continue ...

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

Вирус OneHalf использует различные механизмы для своей маскировки. Он является стелс-вирусом и использует при распространении полиморфные алгоритмы. Обнаружение и удаление вируса OneHalf - достаточно сложная задача. Далеко не все антивирусные программы, которые определяют этот вирус могут его удалить. Например, антивирусная программа Norton Antivirus for Windows 95 версии 4.0 только обнаруживает OneHalf. Чтобы его удалить, пользователь должен вызвать специальную службу.

По итогам работы антивирусной скорой помощи АО “ДиалогНаука” вирус OneHalf занимает одно из первых мест по распространенности. Это связано с тем, что многие популярные антивирусные программы, например AIDSTEST, не обнаруживают этот вирус. Тем не менее, вы можете удалить OneHalf при помощи антивирусной программы Doctor Web. Эта программа позволяет обнаружить и полностью освободить компьютер от многочисленных вариантов вируса OneHalf. Doctor Web аккуратно расшифровывает все участки жесткого диска, зашифрованные вирусом. Операция расшифровки может занять значительное время, в зависимости от того, насколько много секторов диска вирус успел зашифровать.

Разрушение аппаратуры компьютера

Могут ли вирусы вызывать аппаратные повреждения компьютера? На момент написания книги точной информации о таких вирусах не было. Сведения о вирусах, которые могут перепрограммировать видеоадаптер таким образом, чтобы он выжег люминофор на экране монитора, и вирусах, которые вводят в резонанс головки жесткого диска, достоверно не подтверждены.

Тем не менее, существуют вирусы, которые могут основательно вывести компьютер из строя. Многие компьютерные вирусы стирают или портят содержимое энергонезависимой CMOS-памяти компьютера. В результате чего компьютер перестает загружаться.

Отдельные вирусы используют еще более изощренный метод - они устанавливают в CMOS-памяти пароль для загрузки системы. При этом блокируется как загрузка компьютера, так и доступ к программе Setup. Убрать такой пароль можно, на время отключив питание энергонезависимой памяти. Для этого необходимо открыть корпус компьютера и переставить перемычки на системной плате.

Существуют системные платы (например Enterprise-II), на которых CMOS-память и питающий их аккумулятор расположены внутри одной микросхемы. Сбросить такую CMOS-память, отключив питание, невозможно. После того как вирус установит свой пароль, вам остается только угадать его или отправить системную плату на завод-изготовитель (либо просто купить новую системную плату).

Вирус и человек

В 1994 году в печати появилось сообщение о новом компьютерном вирусе, который может убить пользователя компьютера. Вирус якобы использует прием, давно известный в рекламной сфере: если человек смотрит кино и каждый двадцать пятый кадр заменяется другим изображением, то он подсознательно воспринимает изображение, не осознавая этого. Действуя на подсознание таким образом, можно склонить человека к определенным действиям.

Вирус заменяет некоторые кадры изображения на экране компьютера. Изображение, которое вирус передает подсознанию пользователя, вызывает у последнего повышение давления и, возможно, смерть.

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

Вирусы и логические бомбы

Многие вирусы содержат в себе логические бомбы. До определенного момента такой вирус никак себя не проявляет. Когда наступит время, логическая бомба срабатывает и вирус выполняет скрытую в нем функцию.

Самые известные вирусы, срабатывающие по достижении определенного времени - Michelangelo и Jerusalem. Вирус Michelangelo уничтожает информацию с диска, используемого для загрузки 6 марта, в день рождения Микеланджело. Вирус Jerusalem или Черная пятница удаляет файлы всех программ, запускаемых в пятницу тринадцатого числа.

Вирус Armagedon.1079

Неопасный резидентный вирус. С пяти до шести часов утра вирус пытается соединится через модем с удаленным абонентом. Содержит строку "Armagedon the GREEK"

Безопасные вирусы

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

Абсолютно безопасных вирусов небывает. Даже если они не выполняют явных разрушительных действий, в них могут содержаться ошибки, вызывающие неправильную работу операционной системы и пользовательских программ. Кроме того, внедряясь в программы, вирусы нарушают авторские права программистов.

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

Вирусы в файлах документов

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

Однако летом 1995 г. появился первый такой вирус. Этот вирус, получивший название WinWord.Concept, распространяется, заражая файлы документов в формате текстового процессора Microsoft Word for Windows версии 6.0 и 7.0.

С первого взгляда такое сообщение кажется фантастическим, так как вирус должен содержать выполняемые команды, а в документе обычно хранится только текст и его шрифтовое оформление. Не все пользователи, даже проработав в среде Microsoft Word for Windows несколько лет, знают, что вместе с документом могут храниться макрокоманды, созданные с использованием специального языка программирования WordBasic. Эти макрокоманды фактически являются самыми настоящими программами.

Первая ласточка - вирус WinWord.Concept

Вирус WinWord.Concept никак не маскирует свое присутствие. Наоборот, он создан таким образом, чтобы облегчить свое обнаружение и анализ. Макрокоманды вируса WinWord.Concept не закрыты от чтения и их очень легко проанализировать. Мы получили этот вирус в АО “ДиалогНаука” и самостоятельно провели такой анализ. Вирус состоит из пяти макрокоманд, общий объем которых составляет примерно 110 строк на языке WordBasic. В добавок к этому автор вируса снабдил его комментариями.

Когда пользователь открывает зараженный файл документа, Microsoft Word for Windows автоматически выполняет содержащуюся в нем макрокоманду AutoOpen. Эта макрокоманда принадлежит вирусу. Она просматривает названия всех макрокоманд, определенных в файле стилей NORMAL.DOT. Если среди них обнаружена макрокоманда PayLoad, считается, что файл стилей уже заражен. Если присутствует макрокоманда FileSaveAs, вирус также не будет устанавливаться. Видимо автор посчитал, что в этом случае нужно слишком много возиться.

Если просмотрен весь список макрокоманд и среди них не обнаружены ни макрокоманды PayLoad, ни FileSaveAs, вирус копирует в файл стилей NORMAL.DOT макрокоманды PayLoad, FileSaveAs, AAAZFS и AAAZAO.

После копирования макрокоманд вирус добавляет в файл конфигурации WINWORD6.INI текстового процессора параметр WW6I:

WW6I=1

В конце выполнения вирусной макрокоманды AutoOpen вирус отображает на экране временную диалоговую панель. На этом установка вируса считается оконченной и вы увидите в окне редактирования текстового процессора открытый документ.

Заражение документов происходит, когда пользователь сохраняет их при помощи команды "Save As". В этом случае выполняется макрокоманда вируса FileSaveAs. Она отображает на экране обычную диалоговую панель "Save As".

Пользователь вводит в этой диалоговой панели имя файла документа, под которым он будет сохранен. Заметим, что обычно документ сохраняется в формате “Word Document” (формат указывается в поле “Save File as Type”). В принципе, документ можно сохранить и в других форматах, например, в обычном текстовом формате или в формате RIF (Rich-Text Format).

Если пользователь сохраняет документ в формате документов текстового процессора Microsoft Word for Windows (формат “Word Document”), тогда вирус изменяет формат сохраняемого документа. Вместо того чтобы сохранить документ в формате документов текстового процессора Microsoft Word for Windows, он сохраняет его в формате файла стилей, предварительно записав в него макрокоманды AutoOpen, AAAZAO, AAAZFS и PayLoad.

Таким образом, WinWord.Concept незаметно изменяет формат документа, сохраняя его на диске как файл стилей. Внешне такой файл практически не отличается от обыкновенного файла документа. Он также имеет расширение DOC, а при загрузке в текстовый процессор вы увидите набранный вами текст.

Никаких дополнительный действий вирус WinWord.Concept не выполняет. В макрокоманду PayLoad, которая могла быть использована для этого, автор включил только один комментарий:

Sub MAIN
    REM That’s enough to prove my point
End Sub
 

Но за счет того, что зараженный документ сохраняется в формате файла стилей, текстовый процессор не позволит вам сохранить его в другом формате. Когда вы выберете из меню File строку Save As, на экране появится диалоговая панель Save As, но поле выбора типа документа - “Save File as Type” будет показано серым цветом и недоступно для изменения.

Как обнаружить WinWord.Concept?

Вы легко можете проверить, заражен ли текстовый процессор Microsoft Word for Windows вирусом WinWord.Concept даже без специальных программ. Самый простой способ основан на том, что активный вирус записывает в файл конфигурации WINWORD6.INI параметр WW6I.

Файл WINWORD6.INI располагается в каталоге Windows и вы можете просмотреть его в любом текстовом редакторе, например в редакторе Notepad, входящем в состав Windows.

Запустите приложение Notepad. Если файл WINWORD6.INI имеет большой размер и вам трудно его просматривать, выберите из меню Search строку Find. На экране откроется диалоговая панель Find. Введите в поле Find What текст WW6I, который надо найти и нажмите кнопку Find Next. Если в файле обнаружится параметр WW6I, скорее всего, ваш компьютер заражен вирусом WinWord.Concept.

Другой способ обнаружения вируса предполагает, что вы запустили текстовый процессор Microsoft Word for Windows. Выберите из меню Tools строку Macro. На экране появится диалоговая панель Macro (рис. 1.10). Из списка Macros Available In выберите строку All Active Templates. Обратите внимание на список макрокоманд Macro Name. Если в нем находятся строки AAAZAO, AAAZFS, AutoOpen, FileSaveAs, PayLoad, текстовый процессор инфицирован вирусом WinWord.Concept.

Рис. 1.10. Диалоговая панель "Macro"

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

see if we're already installed
iWW6IInstance
WW6Infector
AAAZFS
AAAZAO
That's enough to prove my point
 

Эти строки можно обнаружить с помощью любой программы просмотра файлов в формате ASCII. Например, с помощью встроенной программы просмотра оболочки Norton Commander.

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

Запустите приложение Find File и откройте диалоговую панель Search. Вирус WinWord.Concept может располагаться в файлах *.DOC, *.DOT, *.BAK. Поэтому укажите эти имена в поле File Name. Затем нажмите кнопку Advanced Search. На экране появится диалоговая панель Advanced Search. Нажмите на закладку Location и пользуясь органами управления этой панели, сформируйте список каталогов, в которых будет проводится поиск. Мы рекомендуем внести в этот список корневые каталоги всех логических дисков компьютера.

Затем нажмите на закладку Summary и введите в поле Containing Text текст для поиска. В качестве текста можно воспользоваться предложением “That's enough to prove my point”, текст которого взят из вируса. Убедитесь, что поиск будет выполняться по всем файлам. Для этого поля Title, Autor, Keywords и Subject должны остаться незаполненными. Убедитесь также, что в процессе поиска будут просмотрены все файлы вне зависимости от времени их создания. Для этого нажмите закладку Timestamp.

Нажмите кнопку OK. Вы вернетесь в диалоговую панель Search. Чтобы начать поиск, нажмите кнопку OK. Приложение Find File просмотрит все файлы документов и стилей. После окончания поиска оно составит список имен файлов, в которых было обнаружено искомое предложение и которые, вероятно, инфицированы вирусом WinWord.Concept.

Вирус WinWord.Nuclear

Практически сразу после появления вируса WinWord.Concept был обнаружен еще один вирус подобного вида WinWord.Nuclear. Этот вирус использует точно такую же технологию распространения, что и вирус WinWord.Concept.

Вирус WinWord.Nuclear уже далеко не такой безобидный, как WinWord.Concept. Когда пользователь направляет свой документ на печать, то вирус с вероятностью 1/12 добавляет в конце файла собственную фразу:

And finally I would like to say:
STOP ALL FRENCH NUCLEAR TESTING IN THE PACIFIC!

В переводе на русский язык она звучит следующим образом: И в конце я хотел бы сказать: ОСТАНОВИТЕ ВСЕ ФРАНЦУЗСКИЕ ИСПЫТАНИЯ ЯДЕРНОГО ОРУЖИЯ В ТИХОМ ОКЕАНЕ!

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

Достаточно странно, что вирус, написанный пацифистом, пятого апреля пытается удалить основные файлы операционной системы - IO.SYS, MSDOS.SYS и COMMAND.COM. Но из-за ошибок автора вируса и особенностей текстового процессора эта попытка не удается.

Вирус WinWord.Nuclear заражает не только файлы документов и стилей. Что удивительно, WinWord.Nuclear может заразить обыкновенные выполнимые файлы в формате COM и EXE. Он также может заразить EXE-файлы, предназначенные для операционной системы Windows.

Для заражения выполнимых файлов используется оригинальный способ. Вирус запускает программу DEBUG, передавая ей в качестве параметра ранее сформированный им файл PH33R.SCR.

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

Вирусы в макрокомандах

Мы уже рассказали вам о вирусах в макрокомандах текстового процессора Microsoft Word for Windows. Вирусы, использующие подобные пути распространения, существуют не только в Microsoft Word for Windows.

Когда мы уже заканчивали писать эту книгу, поступили сообщения о появлении еще трех вирусов, предназначенных для текстового процессора Microsoft Word for Windows - WinWord.Colours, WinWord.DMV и WinWord.Hot

В качестве примера можно привести вирус WinMacro.Weider, распространяющийся в среде редактора электронных таблиц Excel. Этот пакет имеет встроенные средства создания макрокоманд, сходные с языком WordBasic текстового процессора Microsoft Word for Windows.

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

Вирус WinWord.Concept, а также другие аналогичные вирусы можно назвать кросс-платформными. Компьютер с любой архитектурой, а не только совместимый с IBM PC, на котором установлен текстовый процессор Microsoft Word for Windows, может быть заражен таким вирусом.

Как противостоять вирусам в файлах документов

Текстовый процессор Microsoft Word for Windows позволяет запретить автоматическое выполнение макрокоманд. Для этого можно воспользоваться одним из перечисленных ниже способов:

Естественно, использование этих средств вызывает некоторые неудобства, а в некоторых случаях может привести к нежелательным последствиям (будет запрещено автоматическое выполнение всех макрокоманд, даже тех которые нужны). Кроме того, есть сведения, что эти приемы срабатывают не во всех случаях.

Вместо этого вы можете сами полностью блокировать автоматическое выполнение макрокоманд. Для этого следует определить макрокоманду с именем AutoExec. Эта макрокоманда будет автоматически вызываться при каждом запуске текстового процессора.

Выберите из меню Tools строку Macro. На экране появится диалоговая панель Macro. Наберите в поле Macro Name строку AutoExec и нажмите кнопку Create. Появится окно текстового редактора, содержащее заготовку макрокоманды AutoExec:

Sub MAIN
End Sub

Вставьте между этими двумя строками команду DisableAutoMacros:

Sub MAIN
DisableAutoMacros
End Sub

Завершите работу текстового процессора, отвечая утвердительно на предложение записать новую макрокоманду в файл NORMAL.DOT и предложение сохранить сам файл NORMAL.DOT. Если вы работаете в русской версии текстового процессора Microsoft Word for Windows, этот метод также можно использовать с учетом русских названий меню и диалоговых панелей.

К сожалению, запрещение автоматического выполнения макрокоманд не позволяет обнаружить и обезвредить уже существующие вирусы, но дальнейшая их деятельность в среде Microsoft Word for Windows будет остановлена.

Вирусы и Windows

Несмотря на то, что выполнимые файлы Windows, которые вы можете запускать, также имеют расширение EXE, формат этих файлов значительно отличается от выполнимых файлов операционной системы MS-DOS. Новый формат выполнимых файлов получил название Microsoft New Executable (NewEXE) или Windows Executable. Мы будем называть эти файлы выполнимыми файлами в формате Windows. Обычные вирусы не в состоянии правильно внедриться в такие файлы и зараженная программа становиться неработоспособной.

Однако, несмотря на то что Windows установлена на большинстве персональных компьютеров, старые вирусы не вымерли. В первую очередь это произошло из-за того, что работа в среде Windows совсем не означает отказа от программного обеспечения MS-DOS. Существует достаточно много нужных программ, предназначенных для работы в MS-DOS. В первую очередь это небольшие утилиты - программы-архиваторы, программы для копирования дискет - и, конечно же, огромное количество всевозможных игр. Естественно, все это программное обеспечение используется и будет использоваться еще очень долго.

Но даже полный отказ от программ MS-DOS не снимет угрозу распространения вирусов. Во-первых, остается возможность заражения загрузочных секторов жестких дисков и дискет. Во-вторых, внимание писателей вирусов рано или поздно переключиться на Windows и появятся новые типы вирусов, способных функционировать и распространяться в новой среде. Подтверждением этому стали вирусы, заражающие выполнимые файлы Windows, и вирусы, заражающие документы, подготовленные в текстовом процессоре Microsoft Word for Windows. В начале 1996 года, практически сразу после появления Microsoft Windows 95, появилось сообщение о первом вирусе, разработанном специально для этой операционной системы. Этот вирус получил название BOZA.

Вирусы MS-DOS для Windows

Обычный выполнимый файл Windows может служить отличной средой для распространения вирусов. Если вы запускаете выполнимый файл операционной системы Microsoft Windows из командной строки MS-DOS, он сообщает, что его необходимо запускать из Windows:

This program requires Microsoft Windows.

или

This program cannot be run in DOS mode.

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

Авторы вирусов не упустили возможность внедрить вирус в этот участок кода. Вирус Grog.Bog.233 выполняет поиск выполнимых файлов Windows и заражает их, добавляя команды вируса в код, выполняемый при запуске файла в среде MS-DOS. Если запустить такой файл в MS-DOS, то он сначала выводит на экран предупреждающее сообщение, а затем управление передается вирусу.

Вирус SMEG.Trivia.2437

Неопасный нерезидентный полиморфный вирус. В пятницу 13 числа выводит сообщение "This program requires Microsoft Windows.", после чего заканчивает выполнение инфицированной программы. Данный вирус был создан Black Baron для демонстрации использования его полиморфного генератора SMEG версии 0.3

Конечно, вирус Grog.Bog.233 трудно назвать настоящим вирусом, созданным для работы в операционной системе Windows. В конечном итоге он работает только при запуске зараженного файла в MS-DOS. Более того, в операционной системе Windows 95 этот вирус будет работать, только если вы завершите графическую оболочку Windows, оставив компьютер работать в режиме командной строки.

Вирусы, заражающие выполнимые файлы Windows

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

В качестве примера вирусов для Windows мы рассмотрим вирусы Win.Vir14 (другие названия - WinVir или WVir), Win.Twitch (Twitch), Win.CyberTech, Win.Vik и Win.Lamer.

Вирус Win.Vir14 заражает выполнимые EXE-файлы в формате операционной системы Windows. Выполнимые файлы MS-DOS не заражаются. Когда пользователь запускает зараженное приложение, управление сразу получает вирус. Он просматривает файлы текущего каталога и заражает выполнимые файлы Windows. Вирус дописывает свой код к заражаемым файлам и увеличивает их размер.

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

Внутри кода вируса содержатся две текстовые строки:

Virus_for_Windows  v1.4
MK92

Вирус Win.Twitch значительно более сложный, чем WinVir. Когда пользователь запускает зараженный файл Windows, вирус оставляет в оперативной памяти компьютера работающий модуль, а затем выполняет настоящее приложение. Модуль, оставленный в памяти, вызывает периодическое подергивание изображения на экране монитора.

Из всех известных на сегодня вирусов Windows, наиболее опасен вирус Win.CyberTech. После запуска на компьютере программы, зараженной вирусом Win.CyberTech, он изменяет ядро операционной системы - модуль KERNEL. В зависимости от версии Windows и режима, в котором она работает, заражаются файлы KRNL386.EXE или KRNL286.EXE. Вирус перехватывает функцию WinExec, которая используется для запуска приложений Windows и заражает все запускаемые приложения.

После заражения очередного приложения, вирус определяет текущую дату и проверяет несколько условий:

Сегодня число между 29-м апреля и 1-м мая
Сегодня пятница и число от 1-го до 13-го
Сегодня число между 26-м и 31-м декабря
Сегодня 6-е марта и год после 1994

Если хотя бы одно из этих условий выполняется, вирус отображает на экране небольшую диалоговую панель с единственной кнопкой OK. Когда пользователь нажмет кнопку, вирус начинает разрушать данные, записанные на жестком диске компьютера.

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

Операционная система OS/2 и вирусы/2

В последнее время все большую популярность получает операционная система OS/2, разработанная известной фирмой IBM. С выходом в свет новой, полностью 32-разрядной мультизадачной версии этой операционной системы IBM OS/2 Warp, многие пользователи стали устанавливать ее на своих компьютерах.

На момент написания книги было известно всего несколько вирусов, предназначенных специально для операционной системы OS/2 - OS2Vir1, OS2.First, OS2.Jiskefet, OS2.Rexx.

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

Вирусы OS2.First, OS2.Jiskefet, OS2.Rexx несколько сложнее. Они могут распространяться, сохраняя у заражаемых программ способность нормально работать. Все три известных нам вируса - OS2.First, OS2.Jiskefet и OS2.Rexx используют вызовы операционной системы DOS. Поэтому их нельзя назвать вирусами, полностью разработанными для операционной системы OS/2.

Автоматизированные средства разработки вирусов

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

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

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

Более сложные автоматизированные средства разработки вирусов имеют продуманную диалоговую оболочку со множеством вложенных меню.

Вот только несколько названий автоматизированных средств разработки вирусов:

Лаборатория компьютерного оружия

Автоматизированные средства разработки дают хорошее представление о возможностях вирусов. Поэтому мы рассмотрим их более подробно на примере The Virus Creation Laboratory (VCL). VCL представляет собой достаточно старую разработку. Она датирована 1992 годом:

Copyright (c) 1992 Nowhere Man and [NuKE] WaReZ
Version 1.00

Создание вируса при помощи VCL становится просто детской забавой. Программа имеет развитую диалоговую оболочку, содержащую многочисленные меню, окна и диалоговые панели.

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

Любому, кто создает вирус при помощи VCL, достаточно задать в меню и диалоговых панелях его свойства. На рисунке 1.11 показано, как можно задать основные свойства будущего вируса. Обычные переключатели меню Options позволяют указать, какие типы файлов вирус должен поражать, будет ли он реализовывать алгоритмы самошифровки и защиты от отладки. Вы можете указать способ поиска новых жертв, насколько быстро вирус должен заражать файлы компьютера и т. д.

Рис. 1.11. Автоматизированные средства разработки вирусов

Большинство вирусов не только создают свои копии, заражая новые файлы и загрузочные секторы дисков, они также могут выполнять всевозможные действия. VCL легко позволяет подключить к вирусу вредоносные функции. Для этого предназначено меню Effects. Список действий, которые VCL позволяет встроить в вирус, представлен в таблице приведенной ниже. Прочитайте эту таблицу внимательно - ведь это список признаков появления вируса на вашем компьютере! Конечно, список неполный, вирусы могут выполнять гораздо более сложные действия.

Эффект Описание
Beep the PC speaker Подать звуковой сигнал через встроенный динамик компьютера
Change low RAM Изменить объем стандартной оперативной памяти
Clear the screen Очистить экран монитора компьютера
Cold reboot Выполнить холодную перезагрузку компьютера
Corrupt file(s) Разрушить файлы с заданными именами
Disable LPT port Отключить параллельный порт компьютера
Disable Print Screen Отключить функцию печати содержимого экрана
Disable COM port Отключить последовательный порт компьютера
Display a string Вывести на экран заданную строку
Drop a program Выполнить программу
Erase file(s) Удалить файлы
Lock up the computer Зациклить компьютер
Machine gun sound Подать звук стреляющего пистолета
Out value to port Вывести определенное значение в задаанный порт компьютера
Out random to ports Вывести случайное значение в задаанный порт компьютера
Play a tune Проиграть мелодию
Print a string Напечатать на принтере текстовую строку
Drop to ROM BASIC Запустить интерпретатор языка BASIC, записанный в ПЗУ компьютера
Send string to COM Вывести строку в последовательный порт. Эту возможность можно использовать для программирования модемов
Swap two LPT ports Поменять имена двух параллельных портов компьютера
Swap two COM ports Поменять имена двух последовательных портов компьютера
Trash a disk Испортить информацию в нескольких секторах на заданном диске
Trash some disks Испортить информацию в нескольких секторах на каком-нибудь диске
Display an ANSI Вывести на экран строку команд ANSI. Она может содержать такие команды как установка курсора в заданную позицию экрана, выбор цвета текста и цвета фона, отображение символов и т. д.
Warm reboot Выполнить “теплую” перезагрузку компьютера

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

Рис. 1.12. Выбор условия для срабатывания вируса

Для каждого выбранного эффекта VCL позволяет выбрать условие его выполнения (рис. 1.12). Условия могут основываться на некоторых характеристиках компьютера и его программной среды. Следующая таблица содержит список параметров, которые могут проверять вирусы, созданные VCL.

Параметр Описание
Country code Код страны
CPU type Тип центрального процессора компьютера
Day Текущий день месяца
DOS version Версия операционной системы
EMS memory Объем расширенной памяти
Number of game ports Количество игровых портов, установленных в компьютере
Hour Текущий час
Number of floppies Количество дисководов, подключенных к компьютеру
Minute Текущая минута
Month Текущий месяц
Number of LPT ports Количество параллельных портов компьютера
RAM memory Объем оперативной памяти
Random number Случайное число
Clock rollover Переполнение таймера
Second Текущая секунда
Number of COM ports Количество последовательных портов компьютера
Weekday Текущий день недели
Year Текущий год
All files infected Инфицирование всех файлов
Under 4DOS Работа в среде 4DOS

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

Исходный текст вируса на языке ассемблера, который создает VCL, имеет исчерпывающие комментарии, позволяющие в нем легко разобрааться:

search_files    proc  near
                mov   dx,offset com_mask ; DX points to "*.COM"
                call  find_files         ; Try to infect a file
done_searching: ret                      ; Return to caller
com_mask        db    "*.COM",0          ; Mask for all .COM files
search_files    endp
find_files      proc  near
                push  bp                 ; Save BP
                mov   ah,02Fh            ; DOS get DTA function
                int   021h

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

Плохие программы

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

Троянские программы

Все знакомы с греческим мифом о том, как была завоевана неприступная Троя. Греки оставили ночью у ворот Трои деревянного коня, внутри которого притаились солдаты. Когда горожане, движимые любопытством, втащили коня за стены города, солдаты вырвались наружу и завоевали город.

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

Часто троянские программы используются для первоначального распространения вирусов. Такая программа записывается автором на станцию BBS, и оттуда загружается ничего не подозревающими пользователями на свои компьютеры. Когда пользователь запустит ее, она, помимо выполнения маскирующей функции, заражает компьютер вирусом.

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

Логические бомбы

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

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

Логические бомбы используются шантажистами. Через определенное время, после того как программист, встроивший логическую бомбу, покидает компанию, она может полностью разрушить систему. Шантажист сообщает руководству компании, что в систему заложена логическая бомба и он может ее удалить (за определенную плату).

Программы-черви

Программы-черви нацелены их авторами на выполнение определенной функции. Они могут быть ориентированы на проникновение в систему и модификацию некоторых данных.

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

Самая известная программа-червь написана студентом Корнельского (Cornell) университета Робертом Моррисом (Robert Morris). Червь был запущен второго ноября 1988 года в сеть Internet. За пять часов червь Морриса смог проникнуть на более чем 6000 компьютеров, подключенных к сети.

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

Мы не рекомендуем копировать к себе программы с BBS, обмениваться программным обеспечением со своими знакомыми и приобретать незаконные копии фирменного программного обеспечения. В любую из этих программ могут быть встроены дополнительные вредоносные функции и их использование приведет к нарушению работы вашей компьютерной системы.

Как происходит заражение

Как вирусы попадают в компьютер? Вы обязательно должны уяснить себе этот вопрос, чтобы по возможности перекрыть все возможные каналы поступления новых вирусов.

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

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

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

Вот основные пути, по которым вирусы проникают в компьютер:

Мы не можем сейчас предусмотреть все возможные пути проникновения вирусов в компьютер. Так, например, совсем недавно появился новый вид вирусов, распространяющихся через файлы документов текстового процессора Microsoft Word for Windows. После этого даже казавшееся ранее абсолютно безопасным копирование документов несет в себе опасность заражения.

Использование пиратского программного обеспечения

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

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

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

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

Широкое использование программ Freeware и Shareware

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

В качестве Shareware распространяются программы архиваторы, например архиватор ARJ, различные графические пакеты и другие мелкие полезные программы.

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

Несмотря на свою привлекательность, программное обеспечение Freeware и Shareware может послужить для проникновения вирусов. Это происходит вследствии того, что программы Freeware и Shareware поступают конечному пользователю через длинную цепочку копирований. Существует вероятность, что во время такого копирования программа может быть заражена вирусом.

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

Электронная доска объявлений и глобальные сети

За последние несколько лет широкое распространение получили так называемые электронные доски объявлений (Bulletin Board System - BBS). BBS - это компьютер, снабженный одним или несколькими модемами, на котором выполняется специальная почтовая программа. Эта программа позволяет пользователям удаленных компьютеров связываться с BBS по телефонным линиям и выполнять обмен сообщениями и файлами.

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

Правила пользования различными BBS могут значительно отличаться друг от друга. Для некоторых BBS запрещена запись новых файлов. Пользователь может только загрузить файлы с BBS и обмениваться текстовыми сообщениями. На других BBS, наоборот, поощряется запись пользователями новых файлов. От объема записанных пользователем файлов зависит, какой объем файлов пользователь может получить для себя.

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

Многие авторы вирусов специально записывают на BBS зараженные программы, чтобы инициировать таким образом распространение своего детища. Однако совсем не обязательно, что зараженная программа записана на BBS специально. Возможно тот, кто ее записал, сам не знал о наличии вируса.

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

Следует помнить, что не только выполнимые файлы могут быть заражены вирусами. Даже текстовый файл в формате Microsoft Word for Windows может содержать в себе вирус.

Любой файл, содержащий в себе выполнимые инструкции, будь то команды центрального процессора или программы, написанные на языке макрокоманд, могут содержать вирус

Если вам все же приходится использовать в своей работе программы, полученные с BBS, необходимо в обязательном порядке проверять их на наличие вирусов.

Обмен дискетами

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

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

Обычно это происходит, когда вы случайно оставляете дискету в дисководе, а затем перезагружаете компьютер. Во время первоначальной загрузки компьютер считывает загрузочную запись с дискеты и передает ей управление. Если дискета заражена, вирус сразу получает управление и заражает жесткий диск компьютера. Теперь даже после выключения питания компьютера и загрузки его с жесткого диска вирус будет активизирован.

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

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

Базовая система ввода/вывода (Basic Input Output System - BIOS) большинства современных компьютеров позволяет установить порядок загрузки операционной системы. Если вы укажете, что операционная система должна загружаться сначала (или только) с жесткого диска, загрузочный вирус не проникнет к вам с зараженной дискеты, даже если вы случайно оставите ее в дисководе. Чтобы установить порядок загрузки операционной системы, надо запустить программу BIOS Setup, а затем руководствоваться описанием системной платы компьютера.

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

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

Вирусы на компакт-дисках

В настоящее время все большее распространение получают устройства чтения компакт-дисков. Эти устройства позволяют читать специальные диски, объем которых составляет больше 600 Мбайт. Постоянное снижение цены на устройства чтения компакт-дисков и их совершенствование позволяют предположить, что в скором времени все компьютеры будут оснащены таким устройством.

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

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

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

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

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

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

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

Проникновение вируса из локальной сети

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