Николай Безруков
ISBN 5-88500-031-X
1991
К: УРЕ, 1991, 416 с., ISBN 5-88500-031-X
Текстовая версия книги (zip, CP-866, 500K)
По мере развития и усложнения компьютерных систем и программного обеспечения возрастает объем и повышается уязвимость хранящихся в них данных. Одним из новых факторов, резко повысивших эту уязвимость, является массовое производство программно-совместимых мощных персональных компьютеров, которое явилось одной из причин появления нового класса программ-вандалов -- компьютерных вирусов. Наибольшая опасность, возникающая в связи с возможностью заражения программного обеспечения компьютерными вирусами, состоит в возможности искажения или уничтожения жизненно важной информации, которое может привести не только к финансовым и временным потерям, но и вызвать человеческие жертвы.
В последние три года в зарубежной печати наблюдается активное развитие исследований, посвященных проблеме защиты компьютеров от вирусов. О размахе работ по рассматриваемой тематике свидетельствует ряд фактов: библиография работ, затрагивающих или целиком посвященных данной проблеме, исчисляется сотнями наименований, появился ряд монографий, как американских, так и европейских авторов (см. приведенный в данной работе список источников, хотя он, естественно, является неполным и включает только публикации, доступные в СССР). Состоялось несколько конференций по проблеме защиты от вирусов, а на большинстве представительных конференций имеются секции, так или иначе связанные с этой тематикой. Появились периодические издания, в значительной мере или целиком ориентированные на освещение проблемы компьютерных вирусов. Количество зарубежных фирм, предлагающих различного рода антивирусные продукты, исчисляется десятками.
Все это ставит вопрос о формировании новой инженерной дисциплины "компьютерной вирусологии", рассматриваемой как совокупность методов и приемов изучения компьютерных вирусов и разработки эффективных средств защиты от них. Можно выделить три основных направления исследований в компьютерной вирусологии: теоретические исследования, разработка методов анализа и разработка средств защиты. Теоретические исследования связаны с выявлениями закономерностей, присущих эпидемиям компьютерных вирусов, анализом "точек проникновения" и созданием неспецифической методики выявления вирусов в компьютерных программах. Исследование этих проблем наталкивается на значительные трудности, частично связанные с их новизной и необычностью, а частично с нечеткостью самой проблемы. Например, проблема выделения вируса в компьютерной программе может с теоретической точки зрения рассматриваться как задача распознавания образов, однако такой абстрактный подход непросто увязать с практическими проблемами детектирования вирусов.
Разработка методов анализа связана с проблемой дизассемблирования программного обеспечения, не имеющего исходных текстов. К проблеме дизассемблирования до последнего времени в академических кругах незаслуженно относились пренебрежительно, а те немногие статьи, которые писались по данной тематике, часто отвергались редакциями журналов как "ненаучные" и связанные с "пиратством". На самом же деле проблема дизассемблирования является частью проблемы реконструкции программного обеспечения. Последнее время это направление усиленно развивается за рубежом, и есть надежда, что постепенно оно будет признано и нашей "официальной" наукой.
Наибольшие результаты в настоящее время достигнуты в третьем направлении -- создании конкретных антивирусных программ и методик их применения. Многие разработки доведены до уровня программных продуктов и широко используются пользователями. Не случайно этой теме посвящена значительная часть "антивирусных публикаций".
В книге отражены результаты первой Всесоюзной конференции "Методы и средства защиты от компьютерных вирусов в операционной системе MS DOS", которая была проведена с 14 по 17 ноября 1990 г. в Киеве. Конференция стала значительным событием в развитии отечественной вирусологии. В ней приняли участие более 250 специалистов, включая ведущих отечественных разработчиков антивирусных программ, а также специалисты Болгарии и Польши. В ходе конференции был проведен второй Всесоюзный конкурс антивирусных программ, распространяемых бесплатно, общий размер премиального фонда которого составил около 10 тыс. рублей. Конкурс проводился в трех классах программ: фаги (программы, "выкусывающие" компьютерные вирусы из зараженных программ), детекторы (программы, определяющие, заражена ли программа тем или иным компьютерным вирусом) и ревизоры (программы, определяющие, внесены ли какие-либо изменения в текст программы или нет), вакцины (программы, делающие компьютер в целом или отдельные программы невосприимчивыми к тому или иному типу компьютерного вируса) и сторожа (программы, выявляющие попытки выполнить "незаконные" операции с файлами). На заключительном заседании конференция приняла обращение, которое представляет интерес как первое официальное упоминание о надвигающемся советском вирусном взрыве и воспроизводится в книге.
В настоящее время можно констатировать начало советского вирусного взрыва: экспоненциального роста количества советских техно-крыс (разработчиков компьютерных вирусов). Особое беспокойство вызывает тот факт, что в эту деятельность активно вовлекаются студенты вузов. Можно говорить даже об особой группе компьютерных вирусов, называемых в данной книге студенческими вирусами, и имеющих ряд отличительных особенностей. Другой неприятной особенностью советского вирусного взрыва является наличие сравнительно большого числа вирусов-вандалов, т.е. вирусов, направленных на разрушение информации в компьютерах, что, по-видимому, связано с низким уровнем культуры в студенческой среде. Если наметившаяся тенденция сохранится, то к концу 1991 г. СССP может выйти на первое место среди стран-разработчиков вирусов, "оттеснив" Болгарию. Тем самым будет существенно подорван наш шанс выйти на мировой рынок программного обеспечения. Одним из стимулов написания данной работы является стремление автора предотвратить такое развитие событий.
Данная книга представляет собой исправленный и дополненный текст лекций, прочитанных автором на Киевском семинаре "Системное программирование", начиная с апреля 1989 г., и является первой частью запланированной автором работы, посвященной вопросам, связанным с компьютерными вирусами. В ней излагаются общие принципы функционирования вирусов, предлагаемая автором классификация и кратко описываются наиболее распространенные (на период подготовки настоящей работы) компьютерные вирусы. Содержание книги охватывает достаточно широкий круг вопросов без излишней детализации. Необходимые термины определяются неформально и могут быть восприняты на интуитивном уровне. Для понимания основного содержания книги достаточно некоторого знакомства с операционной системой MS DOS (например, в объеме, приводимом в книге В.Э.Фигурнова [Фигурнов90]) и не требуется знания языка ассемблера. Ряд сведений, необходимых для понимания книги, вынесен в приложения 4-5. Хотя изложение ориентировано на MS DOS, большинство излагаемых приемов анализа и методов защиты применимы, с соответствующими модификациями, и для других операционных систем.
Предполагается, что вся работа будет состоять из трех частей. В частности, во второй части работы будут рассмотрены проблемы трассировки, дизассемблирования и реконструкции загрузочных модулей, а в третьей -- вопросы классификации, использования и конструирования средств защиты от компьютерных вирусов.
Относительно компьютерных вирусов существует много мифов, поэтому очень важно наличие объективной "первичной" информации. Дело в том, что как в публикациях, так и в "программистском фольклоре" встречаются неточные или вообще неверные утверждения относительно эффектов, вызываемых тем или иным вирусом, и оптимального выбора методов защиты. Следует также отметить, что некоторые авторы брошюр на эту тему, появившихся в массовых изданиях и научно-популярных журналах, не обладают достаточной квалификацией в области системного программирования и, стараясь придать материалу сенсационный характер, скатываются при описании вирусов на уровень "фильмов ужасов".
Поскольку научные интересы автора в последнее время были сосредоточены на вопросах разработки эффективных методов дизассемблирования, обратной трансляции и реконструкции программного обеспечения [Безруков88], новый тип программ -- вирусы сразу привлек внимание как один из возможных полигонов для отработки разрабатываемых методов и средств. В рамках проводимых исследований, автором выполнено дизассемблирование и реконструкция исходных текстов ряда компьютерных вирусов. Дополнительно к дизассемблированию и статическому анализу, работа вирусов трассировалась и их поведение изучалось в контролируемой среде. Эта работа была начата автором в начале 1989 г. и, начиная с сентября 1989 г., редакции данной работы распространялись в виде текста на дискете, содержание которого уточнялось и дополнялось практически каждый месяц. Печатаемый текст основан на редакции 6.0 данной работы. К сожалению, информация о конкретных вирусах быстро устаревает, поэтому основное внимание уделено систематизации имеющихся знаний. Автор надеется, что эта систематизация и последовательное изложение имеющегося фактического материала поможет более эффективной борьбе как с уже известными, так и с новыми типами компьютерных вирусов. Дело в том, что, хотя количество конкретных вирусов стремительно растет, большинство из них являются вариантами (штаммами) известных вирусов, и многие их свойства можно предсказать, исходя из свойств прототипа.
Вместе с тем количество имеющихся в настоящее время вирусов таково, что подробный анализ и исследование каждого из них выходит за рамки возможностей одного человека. Поэтому, хотя автор тщательно проверял приводимые сведения, не все они проверены на компьютере. В ряде случаев приводятся данные, полученные путем сопоставления информации из различных источников (в основном, из руководств к антивирусным программам, поскольку приводимые в них сведения в наибольшей степени заслуживают доверия). Тем не менее, ряд сведений, в особенности о вирусах, появившихся в конце 1990 г., носит фрагментарный характер и, возможно, содержит ошибки и неточности. Однако в условиях отсутствия систематических сведений по данному вопросу и срочности публикации я считаю возможным предложить данную работу "как есть". Появление канала обратной связи в виде реакции читателей безусловно послужит стимулом устранения имеющихся недостатков при последующих изданиях.
С начала 1989 г. в Киеве действует ежемесячный семинар "Системное программирование", работа которого в какой-то мере координирует усилия отечественных разработчиков антивирусных средств. По материалам семинара под редакцией автора этих строк ежемесячно (точнее 10 раз в год) выходит электронный бюллетень Софтпанорама, в котором регулярно публикуются новые версии антивирусных программ, распространяемых бесплатно, документация к ним и сообщения о новых вирусах и их штаммах. Содержание этого бюллетеня может служить полезным дополнением к книге.
Поскольку в настоящее время в стране происходит вирусный взрыв и количество вирусов быстро нарастает, имеется потребность в унификации терминологии и оперативном обмене информацией между разработчиками и пользователями, а также между самими разработчиками. До настоящего времени практически каждый разработчик антивирусных средств разрабатывал собственную классификацию компьютерных вирусов, которая обычно оказывалась никак не согласованной с классификацией других разработчиков. Сейчас эта ситуация несколько меняется, и среди неформальных названий стандартными постепенно становятся названия, используемые в полидетекторе Scan фирмы McAfee Associates (США). Однако указанные названия охватывают только вирусы, детектируемые текущей версией программы Scan, а набор вирусов, распространяющихся в США, отличается от советского.
Поэтому, наряду с неформальной классификацией, необходима и формальная, попытка создания которой предпринята автором [Безруков89, 90а, 90б, 90в]. Предлагаемый подход является предельно прагматическим и ориентирован прежде всего на однозначную идентификацию вирусов рядовыми пользователями. На базе разработанной классификации автором созданы классификационные таблицы, приведенные в приложениях 1-2, с помощью которых пользователи могут определять тип вируса, с которым они столкнулись, даже не имея специальных антивирусных программ. Поскольку эти таблицы обновляются автором регулярно и позволяют значительно сократить затраты на создание документации, разработчикам как бесплатных, так и коммерческих антивирусных средств разрешается включение копий указанных классификационных таблиц в текст документации или в виде приложений к последней.
В процессе работы автор опирался на помощь и поддержку участников киевского семинара "Системное программирование", студентов -- сотрудников ТК NEATAVIA (В.В.Пономаренко, И.А.Свиридов, И.А.Суворов), а также разработчиков антивирусных программ. Обмен информацией с Е.В.Касперским, Д.Н.Лозинским, А.В.Сессой, А.А.Чижовым и другими разработчиками отечественных антивирусных программ позволил оперативно включать в очередные редакции сведения о появлявшихся вирусах. Кроме того, при написании работы использовалась неопубликованная документация к антивирусным программам Д.Н.Лозинского и Е.В.Касперского. Особую благодарность автор выражает cотруднику ВЦ АН СССР Ю.П.Лященко, который на протяжении всего времени работы над данной книгой оказывал автору существенную помощь. В частности, Ю.П.Лященко высказал ряд полезных замечаний по тексту рукописи и выполнил трудоемкую работу по составлению и редактированию библиографии и приложения 3.
Ряд читателей "электронных редакций" данной работы прислали свои замечания и предложения, учет которых позволил повысить качество изложения и исправить ошибки и неточности. Всем им автор выражает свою искреннюю благодарность.
В то же время именно автор несет ответственность за все ошибки и неточности, имеющиеся в работе, и будет благодарен всем, приславшим свои замечания и предложения. Они будут учтены при подготовке очередной редакции данной работы.
Н.Н.Безpуков 10 января 1991 г.
Компьютерные вирусы являются одной из разновидностей компьютерного вандализма, получившего распространение в конце 80-х гг. Исторически их возникновение связано с идеей создания самовоспроизводящихся программ -- концепции, уходящей своими корнями в пятидесятые годы. Идея самовоспроизводящихся механизмов исследовалась еще Джоном фон Нейманом, который в 1951 г. предложил метод создания таких механизмов. Несомненно, идея вирусоподобных программ неоднократно открывалась и переоткрывалась различными авторами. Тем не менее, восстановление приоритета исследователей в опубликовании той или иной грани концепции вирусоподобных программ является в какой-то мере актом восстановления справедливости по отношению к тем, чьи работы были незаслуженно забыты или вообще проигнорированы. Это касается прежде всего европейских исследователей, вклад которых в разработку различных проблем системного программирования часто игнорируется или замалчивается в американских публикациях.
Первой публикацией, связанной с рассматриваемой концепцией, можно считать статью Л.С.Пенроуза (L.S.Penrose) о самовоспроизводящихся механических структурах [Penrose59], опубликованную в 1959 г. американским журналом "Scientific American". В этой статье, наряду с примерами чисто механических конструкций, была приведена некая двумерная модель подобных структур, способных к активации, захвату и освобождению. Под влиянием этой статьи Ф.Ж.Шталь (F.G.Stahl) запрограммировал на машинном языке ЭВМ IBM 650 биокибернетическую модель, в которой существа двигались, питаясь ненулевыми словами [Dewdney85]. При N передвижениях без пищи существо умирало от голода, а после съедания определенного количества слов порождало новое. При размножении была предусмотрена возможность мутаций, в ходе которых существа могли приобретать способность пожирать себе подобных и терять возможность к размножению. В ходе пробного прогона один бесплодный мутант съел единственного, способного к размножению.
В 1962 г. В.А.Высотский (V.А.Vyssotsky), Г.Д.Макилрой (H.D.McIlroy) и Роберт Моррис (Robert Morris) -- фирма Bell Telephone Laboratories, США -- изобрели достаточно необычную игру Darwin (Дарвин), в которой несколько ассемблерных программ, названных "организмами", загружались в память компьютера. Организмы, созданные одним игроком (т.е. принадлежащие к одному виду), должны были уничтожать представителей другого вида и захватывать жизненное пространство. Победителем считался тот игрок, чьи организмы захватывали всю память или набирали наибольшее количество очков. Игра проходит на большом участке памяти, называемом ареной и управляемом специальной программой -- супервизором. Вид 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)) относительно головы являются защищенными. Организм, который получает управление, может использовать три вида обращения к супервизору:
"Игра для полуночников", возникшая в фирме Bell Telephone Laboratories, быстро приобрела популярность и в других учебных и исследовательских центрах, например в исследовательском центре фирмы Xerox в Пало Альто и в Массачусетском институте технологии (МИТ). Отметим, что долгое время описание игры существовало только "в устном фольклоре": статья с описанием игры была опубликована только в 1972 г. [SPEX72], причем в ее тексте использовался термин "вирус" применительно к одному из видов организмов.
Приблизительно в 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 для этой ЭВМ был изменен формат таблицы файлов, и игра потеряла возможность размножаться.
В вышедшем в 1975 г. научно-фантастическом романе "The Shockware Rider" Джон Бруннер (John Brunner) [Brunner75] описал "червей" -- программы, распространяющиеся по сети. Эта идея в определенной степени предвосхитила последующие события (см. ниже сетевой вирус Морриса), хотя ее осуществление находилось за пределами возможностей компьютеров того времени. Данная книга оказалась в числе бестселлеров и безусловно повлияла на ход дальнейших событий.
В 1977 г. издательством Collier Books был опубликован еще один научно-фантастический роман -- "The Adolescence of P-1" ("Юность П-1")[RyanT77], разрабатывавший ту же тему. Его автор, Томас Риан (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].
Весной 1977 г. появился первый персональный компьютер Apple II. Эта модель находилась в производстве с 20 апреля 1977 г. по 1 августа 1983 г. Общее количество проданных машин составило более 3 млн. шт., что на порядок превышало количество ЭВМ других серий. Поэтому для этих машин появились объективные возможности создания реальных компьютерных вирусов, и эти возможности очень быстро были осознаны и реализованы. Неудивительно, что Apple II послужил "рабочей лошадкой" для разработчиков "доисторических" компьютерных вирусов.
Параллельно с массовой продажей компьютеров Apple, в конце 70-х годов на Западе отмечается бурное развитие сетей для передачи информации на базе обычных телефонных каналов. Появляются первые банки свободно распространяемых программ и данных -- BBS (Bulletin Board System -- буквально "доска объявлений" для программ). В этот банк любой программист мог загрузить (download) свою программу, и любой пользователь мог ее считать и запустить на своем компьютере. Это существенно увеличило и ускорило трафик программ, тем более что многие университетские компьютерные центры (традиционно являющиеся центрами разработки различного рода бесплатных программ) организовали свои BBS. Позднее появились и большие онлайновые информационные системы, такие как CompuServe, которые охватывали практически все западные страны. С появлением BBS получил распространение и новый вид компьютерного хулиганства: загрузка в нее программы, выводящей какие-то привлекательные картинки или претендующей на выполнение какой-либо полезной функции, которая сразу после запуска ("чистая" программа-вандал) или через некоторое время, или при выполнении некоторого условия (троянская программа-вандал) уничтожала данные на компьютере пользователя, переписавшего и запустившего ее на своем компьютере. Такие программы-вандалы можно рассматривать как исторических предшественников вирусов-вандалов, тем более что их разрабатывает по сути один и тот же тип патологических личностей, обычно называемый технопатами.
В 1980 г. появилась первая и весьма примечательная европейская публикация по компьютерным вирусам -- "Самовоспроизводящиеся программы" Й.Крауса. Ее автор -- сотрудник кафедры информатики Дортмундского университета -- не только дал достаточно точное определение компьютерных вирусов, но и привел в своей работе листинги компьютерных вирусов (на языке ассемблера фирмы Siemens -- клона известной системы 360 фирмы IBM). К сожалению, данная публикация представляла собой препринт Дортмундского университета и широкого распространения не получила. По мнению Р.Бургера, автора первой книги по компьютерным вирусам [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, и в течение нескольких недель все ("пиратские") копии этой игры перестали работать. Для исправления ситуации автор запустил новый, исправленный вирус, предназначенный для "замещения" предыдущей версии. Как мы видим, идея "подобное лечится подобным" открывалась и переоткрывалась многократно.
В октябре 1980 г. в сети APRAnet была обнаружена программа, по некоторым описаниям вызывавшая "перепутывание" адресов посылаемых по сети сообщений, что вызывало появление множества сообщений "неверный статус пользователя". В результате систему пришлось выключить, и она была восстановлена только через три дня.
В 1982 г. не без влияния упоминавшегося выше романа Бруннера сотрудниками исследовательского центра фирмы Xerox в Пало Альто ("родине Смолтока") была создана программа-червь и проведен ряд экспериментов, результаты которых опубликованы в ведущем американском компьютерном журнале [Shoch82]. Идея, которой руководствовались авторы программы, состояла в том, что программа, требующая значительных вычислительных мощностей, захватывала все простаивающие, но подключенные к сети ЭВМ, с тем, чтобы, например, ночью использовать максимум подключенных вычислительных мощностей, а утром, когда пользователи начинают выполнять свои вычисления, освобождать их, сохраняя промежуточные результаты вычислений. Днем программа "перебивалась" бы одной -- двумя машинами, а ночью опять захватывала бы все свободные вычислительные мощности. В связи с этой способностью к ночному распространению такую программу правильнее было бы назвать не червяком, а вампиром. При проведении эксперимента по запуску червяка в сеть наблюдалось его неконтролируемое распространение и зависание части зараженных червяком машин. Поскольку эксперимент проводился на локальной сети Ethernet и некоторые комнаты с включенными машинами следующим утром оказались закрытыми, копии червя в этих машинах заражали другие машины. К счастью, авторы предусмотрели такую возможность и послали по сети команду самоуничтожения всем копиям червяка.
В 1983 г. Кену Томпсону (Ken Thompson) -- создателю всемирно известной операционной системы Unix, была присуждена самая престижная в мире программирования премия -- премия имени Тьюринга Американской ассоциации компьютерной техники (Association for computing machinery) -- самой старой и наиболее массовой организации американских программистов. Свою замечательную тьюринговскую лекцию (читаемую каждым лауреатом на ежегодном съезде общества) Кен Томпсон посвятил не истории создания системы Unix, а проблеме внесения тонких ошибок в код компилятора, которые невозможно обнаружить путем анализа исходного текста последнего [Thompson84]. Хотя в то время данная тема казалась чем-то незначительным, Томпсон затронул важную проблему, ставшую актуальной только с появлением компьютерных вирусов. В своем заключении -- оказавшемся в значительной мере пророческим -- он, в частности, сказал:
"Нельзя доверять программам, написанным не вами самими ... Никакой объем верификации исходного текста и исследований не защитит вас от использования ненадежного (untrusted) кода. По мере того как уровень языка, на котором написана программа, снижается, находить эти ошибки становится все труднее и труднее. "Хорошо продуманную" (well installed) ошибку в микрокоде найти почти невозможно.
Я хотел бы подвергнуть критике прессу за ее освещение проблемы хакеров, банды 414, банды Дальтона (Dalton gang) и т.д. Действия этих ребят представляют собой в лучшем случае вандализм, а в худшем -- возможно, правонарушение и воровство. Только несовершенство уголовного законодательства спасает хакеров от очень серьезных наказаний. Компании, которые могут пострадать от этой активности (а большинство крупных компаний являются очень уязвимыми в этом отношении), предпринимают значительные усилия с тем, чтобы добиться изменения уголовного законодательства. Несанкционированный доступ к компьютерным системам уже является серьезным преступлением в ряде штатов, и соответствующие законы в настоящее время рассматриваются во многих других штатах и в Конгрессе.
Надвигается взрывоопасная ситуация. С одной стороны, пресса, телевидение и фильмы делают героев из этих вандалов, называя их вундеркиндами (whiz kids). С другой стороны, действия этих ребят будут скоро наказываться годами тюрьмы.
Я видел, как эти ребята давали показания Конгрессу. Было совершенно ясно, что они не отдают себе отчета в серьезности своих действий. Это, возможно, связано с различиями в культурном уровне (cultural gap). Проникновение в компьютерные системы должно накладывать на человека такое же клеймо, как проникновение в чужую квартиру. И не имеет никакого значения, что дверь соседа оказалась незапертой. Пресса должна понять, что неверное использование компьютера ничем не лучше управления автомобилем в нетрезвом состоянии" (перевод Н.Н.Безрукова).
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 г. Р.Дирштейн (R.Dierstein) опубликовал в журнале KES (ФРГ) комментированный перевод работы Ф.Коэна [Dierstein85], а в 1986 г. им был сделан доклад "Computer viruses: a secret threat" [Dierstein86] на конференции Securicom (Париж, 1986). С 1987 г. активно работает другой немецкий исследователь -- проф. К.Бруннштейн (K.Brunnstein) [Brunnstein87 -- Brunnstein89], предложивший одну из первых схем классификации компьютерных вирусов.
В том же 1985 г. Том Нельф (Tom Nelf) начал распространять по различным BBS список "Грязная дюжина -- список опасных загружаемых программ" ("The Dirty Dosen -- An Unloaded Program Alert List"), в котором были перечислены известные на тот момент программы-вандалы. В дальнейшем этот список, включающий большинство выявленных троянских программ и "взломанные" или переименованные копии коммерческого программного обеспечения для MS DOS, стал широко известен и получил сокращенное название "грязная дюжина" (dirty dosen). В настоящее время список поддерживается Эриком Ньюхаузом (Eric Newhouse) из Лос-Анжелеса и может быть получен практически через любую сеть. В пояснениях к нему Эрик Ньюхауз отмечает, что пользователи "... могут быть уверены только в одном свойстве их винчестеров -- в том, что рано или поздно они "полетят". Часто пользователь будет винить в этом программу, хотя на самом деле проблема связана с электроникой или механикой. Помните, что слухи о троянских программах легче запустить, чем остановить". Последний совет не мешало бы помнить и некоторым авторам "околовирусных" публикаций (см., например, [Основcкий90]). Один из ранних вариантов этого списка был опубликован в [Solomon88] (рис.1).
Троянские программы для ПЭВМ, совместимых с IBM PC
123JOKE - Якобы утилита для Lotus 1-2-3. Разрушает каталоги. ALTCTRL.ARC - Портит загрузочный сектор. ARC513.EXE - Якобы архиватор. Портит бут-сектор. ARC514.COM - То же самое. Архиватор всегда .EXE. BACKALLY.COM - Через несколько месяцев портит FAT. BACKTALK - Случайное затирание секторов винчестера. BXD.ARC - Предупреждает, потом затирает FAT. CDIR.COM - Якобы каталоги в цвете. Портит FAT. CHUNKER.EXE - Портит FAT, возможно -- ошибка. COMPRESS.ARC - Якобы "Shareware from Borland". Портит FAT. DANCERS.BAS - Под красивые картинки портит FAT. DEFENDER.ARC - Пишет в CMOS и форматирует диск. DISKACHE.EXE - Вероятно ошибка, но может испортить FAT. DISKSCAN.EXE - Якобы ищет плохие сектора, на деле -- создает. DMASTER - -"- DOSKNOWS.EXE - -"- DPROTECT - -"- EGABTR - Якобы улучшает работу EGA, портит диски. ELEVATOR.ARC - Затирает файлы, форматирует диски. EMMCACHE - Портит файлы, затирает бут-сектор. FILER.EXE - Затирает диски. FUTURE.BAS - Портит FAT, затирает корневой каталог. NOTROJ.COM - Претендует быть антитроянской программой, на деле - наоборот. TIRED - Портит FAT. TSRMAP - Дает карту TSR, портит бут-сектор. PACKDIR - Якобы оптимизирует винчестер, портит FAT. PCLOCK - Портит FAT. PCW271xx.ARC - Троянская версия PC-Write v2.71, размером 98274 байта. Портит 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. Один из ранних вариантов списка "грязная дюжина".
С распространением троянских программ стали создаваться программы защиты, которые можно рассматривать и как первые антивирусные программы. Зимой 1984 г. Анди Хопкинс (Andy Hopkins) написал программы Chk4Bomb и BombSqad. Первая из них позволяла проанализировать текст загрузочного модуля и выявляла все текстовые сообщения и "подозрительные" участки кода (команды прямой записи на диск и др.). Благодаря своей простоте (фактически использовался только контекстный поиск) и эффективности Chk4Bomb получила значительную популярность. Программа BombSqad перехватывает операции записи и форматирования, выполняемые через BIOS. При выявлении запрещенной операции можно разрешить ее выполнение. В начале 1985 г. Ги Вонг (Gee Wong) написал программу DProtect -- резидентную программу, перехватывающую попытки записи на дискеты и винчестер. Она блокировала все операции (запись, форматирование), выполняемые через BIOS. В случае выявления такой операции программа требует рестарта системы. Несколько позднее появилась программа FluShot, написанная R.M.Greenberg (Р.М.Гринберг). Более поздняя версия этой программы -- FluShot Plus (версия 1.7), используется и в настоящее время.
Из европейских программ отметим резидентный сторож VirBlk, который был написан в Вене Михелем Фитцем, и программу Anti4us2, написанную Э.Лайтингом. Название последней связано с тем, что число 4 по-немецки звучит как "фир", что позволяет прочитать название как "антифирус2".
События 1985-86 гг. по времени совпали с быстрым ростом производства и резким снижением цен на ПЭВМ серии IBM PC (появились модели по цене менее 1000 долларов), которые и ознаменовали начало нового этапа развития компьютерных вирусов (отметим, что в 1989 г. американцы имели возможность купить за ту же цену модель с процессором 80386 -- см., например, Byte, 1989, v.14, No. 6, p.65, а в 1989 г. по крайней мере в одном американском университете -- Drexel University, штат Филадельфия, к поступающим предъявлялось требование иметь собственный компьютер). Поэтому второй этап в развитии вирусов связан с достижением "критической массы" произведенных ПЭВМ, совместимых с IBM PC -- самого массового компьютера в истории развития вычислительной техники. Эта "масса", по-видимому, была достигнута в 1987 г., когда одновременно в нескольких странах произошли вспышки заражения компьютеров вирусами. Эти вспышки и ознаменовали начало второго этапа развития рассматриваемого класса программ, на котором они уже стали представлять собой угрозу для всех пользователей ПЭВМ. В отличие от первого этапа, когда разработки вирусоподобных программ носили исследовательский характер и авторы выполняли эксперименты, заручившись согласием пользователей, стараясь внести вклад в системное программирование, второй этап носит характер противостояния пользователей безответственным или уголовным элементам.
Массовое распространение клонов IBM PC привело к резкому увеличению количества людей, активно занимающихся программированием на компьютере, а следовательно, и прослойки компьютерных "фанатов". Если раньше этот тип людей встречался в основном в университетских городках и больших вычислительных центрах, то с распространением клонов IBM PC ситуация существенно изменилась. Обладателями мощных и в то же время дешевых компьютеров стали школьники, пенсионеры, а также другие лица, располагавшие, помимо желания попробовать свои силы в программировании, еще и значительным количеством свободного времени.
Как и в других областях человеческой деятельности, спектр отношения людей к программированию и вычислительным машинам очень широк: от ненависти, через полное безразличие до патологической привязанности или зависимости, которую можно квалифицировать как манию. Всякий работавший в вычислительном центре на больших ЭВМ и видевший, как к концу второй смены некоторые программисты наспех вносят плохо продуманные изменения в свои программы и умоляют электронщиков дать еще минутку, чтобы посмотреть, что получится, узнает сцену, описанную Ф.М.Достоевским в романе "Игрок":
"В одиннадцатом часу у игорных столов остаются настоящие, отчаянные игроки, для которых на водах существует только одна рулетка, которые и приехали для нее одной, которые плохо замечают, что вокруг них происходит, и ничем не интересуются весь сезон, а только играют с утра до ночи и готовы были бы играть, пожалуй, и всю ночь до рассвета, если б можно было. И всегда они с досадой расходятся, когда в двенадцать часов закрывают рулетку. И когда старший крупер перед закрытием рулетки около двенадцати часов, возглашает: "Les trois derniers coups, messieurs !" (Три последних игры (букв.: удара), господа -- прим. перев.), то они готовы иногда проставить на этих трех последних ударах все, что у них есть в кармане, -- и действительно тут-то наиболее и проигрываются" [Полн. собр. соч. в 30-ти томах. -- Л.: Наука, т.5, 1973, c.292].
Психологи отмечают, что у страстных игроков имеются определенные психологические черты, роднящие их с одержимыми программистами. Для страстного игрока игра -- это все ("весь мир -- игра"). Даже выигрыш менее важен, чем сама игра. В свою очередь, для программиста-фаната работа за дисплеем -- это и есть настоящая жизнь, а все остальное -- скучная "обязаловка". Одержимый программист с трудом переносит разлуку с машиной. Постоянная работа с машиной накладывает определенный отпечаток на язык и мышление таких людей. Наблюдается перенос некоторых программистских терминов типа "зациклился", "завис", "вычислить" (например фраза "я тебя вычислил" используется со значением "я понял, разгадал что-то") в повседневную жизнь. Создается впечатление, что другие люди воспринимаются ими как программы, а окружающая среда -- как некая "супероперационка", для вселенского "гиперкомпьютера".
Вместо сочетания "одержимый программист" как в разговорной речи, так и в литературе часто используется термин "хакер" (от англ. Hack -- рубить, кромсать) и уже создан определенный образ хакера. Это очень способный молодой человек, работающий за дисплеем по 12 -- 16 ч. подряд, до полного изнеможения, а если представляется возможность, то и ночи напролет. Питается урывками. Внешний вид свидетельствует о том, что он не обращает внимания на внешний мир и не слишком интересуется мнением окружающих: джинсы, мятая рубашка, нечесанные волосы. Блестяще знает все подробности операционной системы, языка ассемблера и особенности периферийного оборудования.
Основная продукция -- маленькие недокументированные системные программы, ради которых, а также ценя в нем консультанта по "дебрям" операционной системы и внешних устройств, ему и разрешают работать на машине, когда он хочет и сколько он хочет. Обычный метод их создания -- "кромсание" чужих программ, что и объясняет смысл термина хакер. В "просвещенном" варианте -- это дизассемблирование подходящей программы, модификация ассемблерного текста c удалением следов принадлежности программы другому автору, даже если доработка в сущности была совсем пустяковая, вставка собственной клички (обычно достаточно экзотической, например SuperHunter), а затем ассемблирование. Документация, естественно, не нужна, поскольку сам хакер знает, что послужило прототипом, да и вообще руководствуется принципом "умный догадается, а дураку не нужно". В "диком" варианте кромсается непосредственно загрузочный модуль в отладчике. Здесь отсутствует не только документация, но и исходный текст "изделия".
Ну и конечно, у каждого хакера есть сверхзадача, своего рода голубая мечта (удачные небольшие системные программки, благодаря которым он пользуется уважением, им самим рассматриваются как поделки): новая операционная система, алгоритмический язык, программа, выигрывающая у человека в какую-нибудь сложную, интеллектуальную игру, или инструментальная система "супер" -- облегчающая все, все, все (самая любимая задача). Конечно, статус хакера не является пожизненным. Это своего рода "детская болезнь", и из среды "нормальных" хакеров вышел ряд известных разработчиков системного программного обеспечения.
Для части хакеров, обычно называемых кракерами, в качестве сверхзадачи выступает проникновение в какую-нибудь систему, снятие защиты программного продукта от копирования или что-то аналогичное. Именно эта часть хакеров становится причиной "головной боли" разработчиков коммерческого программного обеспечения, снабженного средствами защиты от незаконного копирования, а также пользователей баз данных с конфиденциальной информацией.
Другая часть кракеров, иногда называемых "информационными путешественниками", специализируется на проникновении в удаленные компьютеры, подключенные к некоторой сети. Так, студенты одного из университетов США составили и сумели ввести в ЭВМ программу, имитирующую работу с удаленными пользователями. К моменту разоблачения пользователи сумели получить более 100 таких паролей. Деятельность этой разновидности кракеров в большинстве западных стран рассматривается или граничит с уголовной. Неслучайно ряд кракеров на Западе были осуждены на сроки от 6 месяцев до 10 лет тюремного заключения.
И наконец, самая худшая порода хакеров -- это создатели троянских программ и компьютерных вирусов. Впрочем, их уже нельзя назвать хакерами, поскольку "неформальный кодекс" хакера запрещает использование своих знаний операционной системы и оборудования во вред пользователям. Это своего рода "паршивые овцы", которые бросают тень на хакеров в целом. Обычно их называют техно-крысами. Поскольку жертвами вирусов обычно становятся не специалисты, а те, кто использует компьютер как инструмент своей профессиональной деятельности или как хобби, психология разработчиков вирусов сродни психологии негодяев, отбирающих деньги у школьников младших классов, которые мать дала им на обед.
Как уже отмечалось, в 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-648.VEN). Такой, чрезмерно расширенный, несмотря на изменившуюся ситуацию, уровень "гласности" дает основания рассматривать роль данной книги как весьма противоречивую. В частности, она сыграла роль распространителя вируса С-648.VEN, поскольку в книге был помещен его комментированный исходный текст.
Свой вклад в распространение вирусов внесли и некоторые журналы. Так, журнал "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 г. в американском штате Огайо. Если эксперты подтвердят его психическую полноценность, ему не миновать тюремного заключения за проведение этой операции по "вирусному рэкету".
Так или иначе, компьютерные вирусы стали частью окружающей программистов, да и не только программистов, действительности. Одним из свидетельств этого является тот факт, что новое издание словаря Вебстера (Webster's Ninth New College Dictionary) включает термин "вирус компьютерный". И они, конечно, не миновали нашей страны, хотя массовые закупки персональных компьютеров типа IBM PC у нас в стране начались только в середине 1988 г. (как всегда, мы опоздали почти на десять лет). К этому же моменту начался выпуск советских, правда довольно неудачных, клонов -- ЕС 1840, Искра 1030 и Нейрон, а также торговля "за рубли" по баснословным ценам клонами, изготовленными в странах Юго-Восточной Азии.
Хотя исследования, выполненные в СССР, начались довольно поздно и их формально нельзя отнести к предыстории (автору не известны отечественные попытки создания самовоспроизводящихся программ до 1988 г.), следует отметить, что первый отечественный вирус был разработан, по-видимому, до появления у нас в стране "западных" компьютерных вирусов. Этот вирус, названный в статье [Беляева91] "чивиром", был написан в начале 1988 г. А.А.Чижовым, который в то время работал в ВЦ АН СССР (Москва), якобы с целью "попробовать свои силы" в написании такого рода программ и заодно определить "масштабы копирования" его программ. Судя по всему, это был файловый вирус, в который была встроена проверка времени с тем, чтобы через год вирус потерял способность к размножению. Автор заразил вирусом несколько компьютеров в Москве и по его данным через полгода обнаружил вирус в каждом втором из проверенных им компьютеров. Следует отметить, что в это время персональных компьютеров типа PC XT в СССР было очень мало и они, в основном, были сосредоточены в Москве.
По материалам этого "эксперимента" в 1988 г. была опубликована первая русскоязычная статья по данной проблеме [Чижов88] (журнал был подписан в печать 26.07.88, т.е. во время проведения в CCCР Международного детского компьютерного летнего лагеря -- см. ниже). Хотя в ней не приводились сведения о конкретных вирусах в MS DOS (А.А.Чижов живыми экземплярами "западных" вирусов в тот момент, видимо, не располагал), статья содержала полезные сведения о механизме работы этого типа программ и предупреждала о серьезности данной угрозы. В то же время публикация имела и отрицательные последствия, поскольку ввела в оборот "фантомные" на тот момент типы вирусов, которые с тех пор кочуют по отечественным публикациям ("вирус в объектной библиотеке", "вирус в сетевом драйвере" и др.). Кроме того, неконкретность рекомендаций исключала принятие каких-то полезных профилактических мер, а призывы автора к соблюдению авторских прав носили в определенной мере морализаторский характер. Статья была замечена специалистами в Польше (которые, кстати, отметили потенциальную опасность статьи, как пособия по разработке новых типов вирусов [Kadlof89]).
Первый компьютерный вирус (С-648.VEN по приводимой ниже классификации) появился в СССР приблизительно в августе 1988 г. Этот вирус, часто называемый венским вирусом (по предполагаемому месту его разработки), вызывал перезагрузку операционной системы при запуске некоторых из пораженных им программ. Одним из первых мест, где он был обнаружен, являлась лаборатория Института программных систем (Переславль-Залесский). Возможно, он попал в лабораторию во время проведения институтом (совместно с ЮНЕСКО) Международного детского компьютерного летнего лагеря. Поскольку этот вирус к середине 1988 г. был уже довольно распространен в странах Западной Европы, он несомненно завозился в СССР неоднократно, c различного рода новыми версиями программного обеспечения и компьютерными играми. В Киеве этот вирус появился в конце 1988 г. Наибольшее распространение он получил примерно в апреле 1989 г., после чего его эпидемия пошла на убыль, что прежде всего связано с достаточной распространенностью средств защиты от этого вируса. Одним из переносчиков этого вируса в Киеве был адаптированный вариант программы SideKick (шестерка). К сожалению, по стране распространяется реконструированный одним венским программистом исходный текст данного вируса, с довольно подробными комментариями. Этот текст, в частности, был включен В.Бончевым в его так называемую "вирусную" дискету, распространявшуюся вместе с разработанным им пакетом антивирусных программ. Наличие исходного текста создает благоприятные условия для появления штаммов. И, действительно, данный вирус имеет, пожалуй, наибольшее число штаммов из нерезидентных файловых вирусов (см., например, описания вирусов С-534.W13 и С-623.VEN).
Вторым вирусом, попавшим в СССP, был вирус RC-1701.CAS. Данный вирус вызывал довольно интересный эффект "опадания" букв на экране монитора. Этот вирус также имеет западноевропейское происхождение. В СССР впервые был выделен в Институте прикладной математики имени М.В.Келдыша АН СССР. B Киеве появился в начале 1989 г. Средства защиты появились примерно одновременно с вирусом, поэтому существенного вреда вирус не нанес. Первым средством защиты от данного вируса в Киеве была немецкоязычная (австрийская) программа Serum3, которая могла работать как в режиме фага, так и в режиме детектора. Среди первых отечественных программ, применявшихся на начальной стадии эпидемии, следует отметить детектор В.С.Ладыгина (ИПМ АН СССР) Virus_D1.
Попытки программистов организоваться для борьбы с этой новой разновидностью системных программ относятся к началу 1989 г. Так, 12 апреля 1989 г. в Киеве в рамках семинара "Системное программирование" было проведено первое специализированное заседание по антивирусной тематике. В дальнейшем выступления по этой теме стали регулярными и было проведено еще несколько специальных заседаний, посвященных защите от вирусов. Они сыграли определенную роль в сокращении случаев заражения компьютеров и ликвидации эпидемий вирусов C-648.VEN, RC-1701.CAS, и в особенности RC-1813.IER, масштаб эпидемии которого в Киеве был наибольшим. Кстати, этот вирус хорошо прошелся по СССР, реально показав, насколько "невооруженные" пользователи уязвимы от этой новой для них опасности: сотни, если не тысячи часов были потеряны на переформатирование винчестеров и выгрузки архивных копий в надежде избежать повторного заражения. С сентября 1989 г. семинаром "Системное программирование" был организован выпуск электронного бюллетеня Софтпанорама, который стал важным каналом распространения информации о появлении новых компьютерных вирусов и бесплатных программах для борьбы с ними. Список программ, распространявшихся через бюллетень, приведен в прил. 3. В том же месяце начала распространяться редакция 1.0 данной работы.
Первые случаи потери важных данных от компьютерных вирусов стали известны автору в конце 1989 г., когда к нему обратился представитель оптовой базы, у которого, как оказалось, базы данных о хранимых запасах были повреждены вирусом RCE-1800 (Dark Avenger). Периодически автору поступают сообщения о полностью уничтоженном содержимом винчестера, причем характер повреждений не позволяет достоверно установить, имеем ли мы дело с вирусом или с тщательно замаскированной троянской программой (например, подозревается одна версия ColorCAM со сломанной, но как видно, не до конца, защитой), или с выходом из строя самого винчестера. При этом, однако, бросается в глаза тот факт, что примерно у половины пользователей к моменту потери содержимого винчестера не существует его более или менее "свежей" копии. Вот уж действительно прав был Бернард Шоу, сказав: "Опыт содержит самую дорогую школу, однако многие, похоже, не способны учиться ни в какой другой". В конце 1989 г. в Донецке была обнаружена троянская программа в составе "нелегальной" копии известной игры Formula. Эта программа переписывала себя в загрузочный сектор винчестера и через некоторое время стирала CMOS-память.
На первой отечественной публикации, посвященной компьютерным вирусам, мы уже останавливались. Практически по следам событий, сразу после появления вирусов С-648.VEN и RС-1701.CAS, был написан целый ряд статей, однако большой срок запаздывания журнальных изданий сыграл очень негативную роль, задержав их выход в свет настолько, что к моменту получения читателями содержащаяся в них информация в значительной степени устарела. Написанные еще в конце 1988 г., все они вышли только в конце 1989 г. К этому моменту эпидемии вирусов C-648.VEN и RC-1701.CAS практически закончились. Среди указанных публикаций следует отметить статью И.Ш.Карасика [Карасик89а], в которой впервые подробно изложены сведения о механизме работы и эффектах, вызываемых вирусами С-648.VEN и RС-1701.CAS. Несмотря на значительное запаздывание (третий номер журнала "Мир ПК" был подписан в печать 11.07.89 и появился в продаже в декабре 1989 г.), уровень понимания механизма работы вируса RС-1701.CAS выделяет эту работу из остальных публикаций. В дальнейшем И.Ш.Карасиком опубликован цикл статей в журнале Интеркомпьютер [Карасик90].
В настоящее время поток публикаций по данной тематике существенно возрос и статьи стали появляться практически ежемесячно. Следует отметить, что сроки публикации в отечественных журналах и сегодня остаются крайне неудовлетворительными. Например, статья А.С.Осипенко [Осипенко90], написанная в конце 1989 г., была опубликована только в третьем номере журнала "Мир ПК" за 1990 г., причем этот номер поступил в продажу лишь в августе, т.е. опять же когда эпидемии вирусов, описываемых в статье, практически закончились.
Как обычно, среди основной массы "нормальных" публикаций, встречаются и неудачные. К ним можно отнести брошюру [Основский90], содержащую пересказ различных слухов (о вирусе, вводящем в резонанс головки винчестера, вирусе типа "квадрат Малевича" длиной 3767 байтов, сетевом вирусе длиной 2231 байт, самораскручивающемся в оперативной памяти вирусе размером 1201 байт и др.). Приведенные в брошюре сведения породили новые слухи, рассматриваемые в разделе о мифических вирусах.
Обилием спорных утверждений и излишней категоричностью грешит статья Ф.Н.Шерстюка [Шерстюк90], в которой реализация достаточно ограниченного по своим возможностям метода защиты от вирусов выдается за панацею. Достоинством статьи является то, что в ней впервые в отечественной литературе описана реализация нерезидентной вакцины, прикрепляющейся в конец тела программы, подобно обычному файловому вирусу. Вместе с тем, в статье допущен ряд (вполне простительных) технических ошибок, связанных с недостаточным пониманием механизма использования прерывания 13h версиями 3.x и 4.x MS DOS, а некоторые по меньшей мере спорные утверждения выдаются за непререкаемые истины. К числу последних, в частности, относятся:
"вирусы ... разрабатывают даже в кругах, близких к таким крупным фирмам-разработчикам ПК, как IBM, в целях борьбы с фирмами, производящими компьютеры-клоны";
"практика показывает, что именно специализированные антивирусные программы (имеются в виду полифаги -- Н.Н.Безруков) чаще всего являются разносчиками вирусов";
"все имеющиеся на сегодняшний день методы борьбы с вирусами практически исчерпали себя, необходимо разработать принципиально новые".
Первое утверждение, вынесенное в аннотацию статьи, автор ничем не обосновывает. А доказательств причастности "кругов, близких к фирме IBM", к разработке вирусов не существует, если, конечно, не считать такими кругами всех пользователей компьютеров, совместимых с IBM PC. Если В.Ф.Шерстюк имел в виду особенность вируса RС-1701.CAS, состоящую в том, что этот вирус не должен был размножаться на оригинальных IBM PC (кстати, в этом месте автор вируса допустил ошибку и вирус успешно размножается на таких компьютерах), то этот факт скорее свидетельствует об обратном, т.е. о страхе автора вируса перед такой могущественной фирмой, как IBM.
Второе утверждение уже принципиально неверно, т.к. создает у читателей ложное впечатление об опасности полифагов. Во-первых, к моменту написания статьи полифаги уже стали снабжаться средствами самоконтроля на зараженность (например, Aidstest), а во-вторых, компьютерные игры были и остаются куда более опасным источником заражения, чем фаги.
Особенно характерно последнее утверждение, которое можно считать своего рода лакмусовой бумажкой "детской болезни левизны в вирусологии". В действительности предлагаемый автором метод имеет не менее серьезные недостатки, чем те методы защиты, которые он якобы призван заменить. В частности, принципиальными недостатками описанного метода вакцинирования является потеря дискового пространства (размер всех выполняемых файлов увеличивается на размер вакцины, который скорее всего составит порядка 512 байтов, т.е. сектора диска), а также возможная потеря работоспособности некоторых вакцинированных резидентных программ или программ со специальной структурой (скрытыми оверлеями и др.). Вместе с тем, в комбинации с другими методами, этот метод безусловно полезен и имеет право на существование.
С другой стороны, некоторые авторы стремятся повысить свой авторитет за счет пренебрежительных высказываний о других публикациях и разработанных антивирусных программах. Здесь также необходимо чувство меры. Критика уровня "... -- продажная девка империализма", начинающаяся и заканчивающаяся утверждениями о том, что оппонент просто глуп, не утруждающая себя приведением доказательств, является таким же проявлением нашей отсталости, как и выпускаемые нашей промышленностью ПЭВМ.
Разработка первых отечественных антивирусных программ -- детекторов (программ, обнаруживающих вирус) и фагов (программ, "выкусывающих" вирус) -- началась еще в 1988 г. Из полифагов, сыгравших значительную роль на начальном этапе, следует отметить программу Aidstest Д.Н.Лозинского, Doctor А.А.Чижова и Anti-Kot О.Г.Котика. Причем полифаг Anti-Kot быстро стал коммерческим продуктом и из-за установленной цены практически не принимал участие в борьбе с вирусами, начиная с осени 1989 г., а полифаг Doctor по этой же причине "выпал из игры" в важный период сентября -- декабря 1989 г., а с осени 1990 г. стал неконкурентоспособным по сравнению с полифагом Aidstest. Дольше всего бесплатно распространялась программа Aidstest, которая с осени 1989 по лето 1990 г. была самой популярной отечественной антивирусной программой.
В феврале 1990 г. под руководством автора был проведен первый конкурс антивирусных программ, распространяемых бесплатно. Организатором конкурса был киевский семинар "Системное программирование". Премиальный фонд был образован за счет пожертвований некоторых организаций и частных лиц, средств, собранных за распространение первых четырех номеров бюллетеня Софтпанорама, а также нескольких лекций по методам защиты от вирусов, прочитанных автором. Конкурс проводился в трех классах: фаги, детекторы и ревизоры, резидентные фильтры и вакцины. В классе фагов первое место заняла программа Aidstest Д.Н.Лозинского, а второе место -- программа Doctor А.А.Чижова. В классе детекторов и ревизоров первое место занял ревизор DLI В.В.Герасимова, а второе место -- контекстный детектор VL А.Л.Шеховцова. И, наконец, в классе резидентных фильтров два первых места поделили программы SBM В.Е.Еременко и Б.М.Мостового и программа Check21 И.М.Двоеглазова.
В мае 1990 г. Д.Н.Лозинский настолько устал от звонков пользователей, что решил "уйти в профессионалы". Коммерческие версии до октября 1990 г. были достаточно дорогими, и значимость Aidstest для "широких кругов" пользователей резко упала. Однако, начиная с октября, незащищенная от копирования версия Aidstest стала распространяться по цене 3 руб. для частных лиц (т.е. практически как Shareware) и быстро обрела былую популярность. Cреди полифагов, распространяющихся бесплатно, лидером стала программа SOS Е.Н.Сусликова (Кемерово). Конечно, положение, когда пользователи предпочитают антивирусные программы, распространяющиеся бесплатно, можно оценивать по-разному, но не учитывать его нельзя. Поэтому было бы целесообразно обеспечить государственное субсидирование лучших разработчиков, которое может и должно проводиться на конкурсной основе.
Подобно тому, как рост преступности порождает повышенный спрос на замки и другие средства защиты, изготовители программного обеспечения и компьютерного оборудования предпринимают попытки использовать ситуацию для завоевания рынка. В настоящее время общее количество антивирусных средств наверное сопоставимо с количеством известных компьютерных вирусов. Только в нашей стране разработаны десятки, если не сотни коммерческих программ для этой цели. Цены на такого рода продукты колеблются примерно от 300 до нескольких тысяч рублей с типичной ценой в 1000 руб. за пакет. Как правило, коммерческое программное обеспечение распространяется защищенным от копирования и требует для своей работы либо инсталляции на винчестер со специальной дистрибутивной дискеты, либо работы непосредственно с поставляемой оригинальной дискетой. Это создает некоторые неудобства при архивировании или переразметке винчестера.
В связи с тем, что рынок как таковой еще не сложился, цены, устанавливаемые разработчиками, как правило, совершенно не связаны с качеством соответствующего программного продукта (иногда даже встречаются случаи продажи по принципу "толкни и убегай"). Автору известна продажа нескольких бесплатно распространяемых антивирусных программ (включая программы В.Бончева и ранней версии полифага Aidstest) под видом пакета ANTI-2000, настойчиво и недобросовестно рекламируемого по почте ленинградской фирмой Информатика. Довольно часто программное обеспечение для защиты от вирусов, распространяемое за меньшую цену или даже бесплатно, обладает сопоставимыми или лучшими характеристиками, чем широко рекламируемое коммерческое. Это, в частности, касается довольно слабой программы Страж, разработанной малым предприятием Алькор (Москва) и разрекламированной газетой Известия [Лесков91] как панацея от любого вируса. Распространенность недобросовестной рекламы характерна как для отечественных, так и для зарубежных средств защиты от вирусов, что свидетельствует о незрелости данной "отрасли". Кроме того, лишь немногие продукты сочетают защиту от вирусов со средствами резервирования информации или защитой от несанкционированного доступа, а именно такие интегрированные системы представляют, по-видимому, наибольшую ценность для пользователей.
Отсутствие сетей и изолированность отечественных программистов друг от друга также явилось фактором, способствовавшим распространению вирусов по нашей стране. Как уже указывалось, первые попытки организовать обмен информацией по "антивирусной" тематике и распространение антивирусных программ относятся только к апрелю 1989 г. Так, в Киеве 13.04.90 состоялся тематический семинар, полностью посвященный проблеме компьютерных вирусов. Программа этого семинара включала сообщения по четырем типам вирусов (С-648.VEN (Vienna), RC-1701.CAS (Cascade), RCE-1813.IER (Jerusalem) и Bx1-1C.PIN (Ping-Pong)) и большую дискуссию. Начиная с этого семинара, среди участников стали распространяться лучшие антивирусные программы, а с сентября 1989 г. начал выходить ежемесячный бюллетень Софтпанорама. С сентября 1990 г. с формата 360К бюллетень перешел на формат 720К, приблизительно треть из которых выделяется под новые версии антивирусных средств и текущую информацию о компьютерных вирусах.
Из исследований, проведенных в странах Европы, следует отметить польские и болгарские публикации. Лидером среди авторов болгарских публикаций на рассматриваемую тему является В.Бончев. Этим, безусловно очень способным исследователем, была опубликована одна из первых статей по вирусу С-648.VEN [Бончев89а], а через некоторое время большая статья [Бончев89б], перевод которой был включен во второй выпуск бюллетеня Cофтпанорама. Несмотря на ряд допущенных ошибок и неточностей, в ней были приведены актуальные на тот момент сведения о вирусах группы ТР (В.Бончев лично знаком с техно-крысой, разработавшей эту группу). В статье также очень мягко трактовался вопрос об ответственности за разработку и распространение вирусов. Возможно, это связано с тем, что в это время автор сам распространял дискету с рядом вирусов и их исходными текстами. Хотя мотивом служило, по-видимому, желание показать, что в компьютерных вирусах нет ничего таинственного, эта "ошибка молодости", возможно, послужила одной из причин последовавшего в 1990 г. "болгарского вирусного взрыва" (см. ниже). Вместе с тем, статьи Бончева были важным источником информации о распространяющихся в СССР вирусах и несколько облегчили борьбу с ними. Сейчас уже можно говорить о серии "околовирусных" статей В.Бончева в журнале "Компютър за вас", причем уровень последних статей существенно превосходит уровень первых. Последнее время В.Бончев стал активно участвовать в электронной конференции FIDO, посвященной компьютерным вирусам.
Вместе с тем, в статьях В.Бончева наблюдается определенный "перекос" в сторону раскрытия механизма работы вирусов по сравнению с методами защиты от них, что, в общем, соответствует интересам В.Бончева как ведущего рубрики. Отметим, что этот перекос несколько компенсируется тем, что В.Бончев является также автором ряда бесплатно распространяемых фагов, которые, помимо Болгарии, получили определенное распространение и в СССР. Однако с точки зрения влияния на читательскую аудиторию, указанная несбалансированность редакционной политики вызывает сожаление. Поэтому роль указанных статей можно оценить как несколько противоречивую. Впрочем, автор сознает, что подобная критика может быть высказана и по отношению к его собственной работе.
Помимо В.Бончева, ряд статей по данной тематике опубликовал болгарский исследователь С.Недков [Nedkov89, Недков89а -- 90b].
Из польских вирусологов прежде всего необходимо отметить А.Кадлофа -- автора первой в Восточной Европе брошюры о компьютерных вирусах [Kadlof89]. В дальнейшем он опубликовал ряд статей в журналах Komputer, PCkurier, Enter [Kadlof89 -- 90e, Кадлоф90]. Начиная с декабря 1990 г., А.Кадлоф издает ежемесячный электронный бюллетень PC Virus (на польском языке).
Вирусы, как и троянские программы, создаются конкретными программистами. Хотя дальнейшее обсуждение будет в основном техническим, не следует забывать, что ключевым аспектом проблемы является появление техно-крыс -- новой разновидности уголовников, использующих для своих целей возросшую степень анонимности, достижимую с появлением ПЭВМ и сетей. Поэтому важным аспектом борьбы с компьютерными вирусами становится выявление личности преступника или преступной группы, создающей или распространяющей компьютерные вирусы. Руководитель американской специальной группы по изучению компьютерных преступлений Кирк Тэбби, занимающий пост помощника прокурора в Эн-Арборе (шт. Мичиган), заявил: "Уголовное дело можно возбудить всегда, когда существует человек, совершивший преступление. Незаметное внедрение вируса в программу является злонамеренным действием, а создание подобной программы -- преступлением" (The Computer Law and Security Report, 1989, v.5, No. 1.-- p.18-21). Уголовная ответственность может сочетаться с иском за нанесенный ущерб.
К концу 1989 г. в ряде стран (США, Великобритания, ФРГ) находятся на рассмотрении законы, предусматривающие для разработчиков и распространителей компьютерных вирусов значительные сроки тюремного заключения (в США до 15 лет). Это позволит, помимо программных и организационных мер, применять для борьбы с вирусами и правовые методы. В частности, в палате представителей Конгресса США внесены билль 55 (Virus Eradiation Act) и билль 287 (Computer Protection Act) [Crawford89].
Выдержки из билля 287 (перевод Н.Н.Безрукова)
(А) Любой, кто сознательно или умышленно саботирует надлежащее функционирование аппаратуры компьютерной системы или связанного с ней программного обеспечения и тем самым вызовет потерю данных, затруднения при работе ЭВМ, убытки или вред владельцу компьютера, должен быть оштрафован ... или подвергнут тюремному заключению на срок не более 15 лет или подвергнут обоим наказаниям.
(В) Пострадавшая сторона имеет право в судебном порядке требовать соответствующую компенсацию понесенных убытков и судебных издержек.
Национальный институт стандартов США и Пентагон создали Компьютерную группу быстрого реагирования из 12 человек для борьбы с вирусами и поиска преступников. Кроме того, Пентагон планирует создать свой коммуникационный центр и подразделение для отражения атак на компьютерные системы (Comm. AСM, 1989, v.32, No. 2. p.161). В настоящее время в США работает ряд бесплатных BBS, позволяющих получить оперативную информацию по компьютерным вирусам.
В ФРГ законодательство позволяло, в большинстве случаев, привлечь к ответственности изготовителей и распространителей вирусов еще в 1987 г. Подробнее с состоянием правовой защиты от заражения компьютерными вирусами в ФРГ по состоянию на 1987 г. можно познакомиться по переводу книги Р.Бургера [Burger88, гл.6]. Этот перевод распространяется, в частности, через Всесоюзный центр переводов (ВЦП).
Появление достаточно суровых законов создает в известной мере трагическую ситуацию, известную под названием "поиск козла отпущения". Посадят одного, причем не самого вредного. Остальные останутся на свободе. А что такое для молодого способного человека в 17-18 лет получить даже год тюремного заключения? Да еще сознавая, что его посадили, а остальные, принесшие не меньший вред, гуляют на свободе.
Конечно, общепринятые приоритеты и этические принципы [ParkerD81, Weiss82] исследований в программировании, использовавшиеся на первом этапе -- предыстории компьютерных вирусов, когда проблема носила преимущественно научный характер (свободный обмен информацией, программами и т.д.), не применимы на втором этапе, когда проблема затрагивает интересы практически каждого пользователя ПЭВМ. Сейчас как никогда остро стоит проблема выработки кодекса "исследователя-вирусолога". Этот кодекс должен исключать свободную передачу вирусов, в особенности их наиболее опасных разновидностей (RCE-1800, RCE-2000 и др.). Здесь есть смысл применить подход, принятый в медицине, где лекарства разделены на "список-А", "список-Б" и т.д., причем в список-А попадают наиболее опасные лекарства, доступ к которым наиболее регламентирован, в список-Б менее опасные, но с регламентацией доступа (рецепт с печатью) и т.д.
Появление "коллекционеров" вирусов, не ведущих работу по созданию средств защиты, представляет особую опасность, поскольку попадание такой "коллекции" в руки злонамеренного и безответственного программиста может наделать много бед. Автор считает, что передача вирусов может осуществляться только лицам, активно ведущим разработку средств защиты, и только на основе "соглашения о нераспространении".
Наибольшую опасность представляют собой комментированные исходные тексты вирусов. Уровень квалификации, требуемый для того, чтобы изменить в ассемблерном тексте две-три команды, и заново ассемблировать текст вируса намного ниже, чем тот, который требуется для дизассемблирования и реконструкции логики. Поэтому распространение исходного текста вируса фактически является подстрекательством к созданию новых вирусов. В этом плане заслуживает осуждения поступок В.Бончева, распространявшего дискету с исходными текстами вирусов, копии которой попали и в нашу страну.
Следует подчеркнуть необходимость особой осторожности для всех, кому так или иначе приходится анализировать зараженные программы и реконструировать логику вируса. Относящиеся к этому материалы желательно держать на личных дискетах, не прибегая без необходимости к записи на винчестер. Каталоги и архивы защищать от несанкционированного доступа паролями или, предпочтительнее, шифровкой. Недопустимо оставлять такого рода материалы в обычных каталогах на "персональном компьютере коллективного пользования", поскольку есть немало любителей рыться в чужих каталогах в поисках "чего-нибудь интересненького". Реконструированный текст следует рассматривать как материал "для служебного пользования" и не передавать незнакомым лицам, даже если, по их словам, они занимаются разработкой антивирусных средств: для создания большинства антивирусных средств, в особенности фагов, необходимые сведения специалист может получить самостоятельно за два-три часа работы.
В особенности это относится к вузам, где, несмотря на нашу бедность, талантливые ребята все же имеют возможность работать на персональных ЭВМ. Часто такие ребята предоставлены сами себе и не имеют поддержки со стороны преподавателей программирования, многие из которых давно отошли или вообще никогда не занимались разработкой реальных программ и просто боятся студентов, "знающих слишком много". При отсутствии более конструктивной цели, заполучив какие-нибудь листинги, такие студенты могут заняться разработкой вирусов, а не антивирусов, не отдавая себе отчет в аморальности своих действий. Поскольку обмен программами между студентами обычно весьма интенсивен, вирус имеет определенные шансы на быстрое распространение. Поэтому необходимы определенные действия общественности, чтобы предотвратить такую возможность. Они могут включать награду каждому, кто сообщит автора того или иного вируса, а также разъяснительную работу относительно этического содержания действий разработчиков вирусов. В этом плане заслуживает внимания обращение к авторам вирусов американской общественной организации "Профессионалы-программисты за социальную ответственность":
"У Вас есть талант, чтобы сделать что-то полезное в жизни. То, что Вы делаете, вредит промышленности и обществу, которое готово принять Вас и ваш талант с распростертыми объятьями. Удовлетворение, которое Вы получите от сотрудничества с нами, намного выше того, которое Вы получите при нанесении вреда ни в чем не повинным людям. Остановитесь!"
Среди программистов существует два основных мнения относительно того, следует ли публиковать сведения о конкретных вирусах и методах атаки, используемых ими. Одни считают, что публикация технических подробностей облегчит криминальным элементам, которые, к сожалению, имеются и среди программистов, создание более опасных и разрушительных вирусов. Другие придерживаются противоположного мнения, полагая, что публикация этих данных будет способствовать мобилизации сил на создание мощных средств борьбы с этой разновидностью компьютерного вандализма и предотвратит ненужное дублирование усилий. Автор придерживается второй точки зрения и считает, что создание мощных средств защиты позволит поднять "планку" технической сложности разработки эффективного вируса до уровня, на порядок превышающего сегодняшний, что существенно сузит круг лиц, представляющих потенциальную опасность.
При написании данной работы автор сознательно исключил ряд сведений, которые могли бы быть использованы во вред. В частности, дампы зараженных программ приводятся в сокращенном виде. Однако решающее значение, по-видимому, имеет создание общественной атмосферы нетерпимости к попыткам разработки или использования вирусов. Если такие попытки будут вызывать не отпор, а поощрительное похлопывание по плечу в коллективе разработчика, то в скором времени и пользователям и разработчикам антивирусных программ придется бороться на два фронта: не столько против вирусов, попадающих с Запада (или с Востока), сколько против отечественных разновидностей. Тем более, что первые отечественные вирусы уже появились. Ситуация с отечественными разработчиками вирусов усложняется тем, что их довольно сложно привлечь к уголовной ответственности по действующему законодательству. Вместе с тем действующий уголовный кодекс не исключает возможность применения к разработчикам вирусов статьи о хулиганстве (ст.206 Уголовного кодекса УССР) в случаях, если вирус разрушит важную информацию, приведет к нарушению действия систем, так или иначе связанных с безопасностью людей или управляющих производственными процессами, или вызовет другие последствия, которые можно квалифицировать как умышленные действия, выражающие явное неуважение к обществу.
В связи с этим следует отметить полную бесперспективность попыток использования вирусов для защиты программного обеспечения от незаконного копирования. Поскольку распространение вируса не является контролируемым процессом, то в данном случае скорее всего пострадают не лица, использовавшие незаконную копию, а другие пользователи. Хотя я ни в коей мере не оправдываю незаконное копирование программ, но лекарство не должно быть опаснее, чем болезнь. Не стоит бросать бомбу в магазин для наказания человека, укравшего пачку сливочного масла. Более того, установление автора вируса будет означать полную потерю репутации разработчика и, следовательно, коммерческий крах. Этому будет, несомненно, способствовать и широкая огласка, включая сообщения на профессиональных семинарах, и публикации в прессе, которые последуют за установлением автора(ов) вируса.
В 1990 г. поток вирусов, поступающих в нашу страну из-за рубежа, продолжал возрастать. Основной вклад в этот поток продолжают вносить файловые вирусы из Болгарии (Anti-Bontchev (RCE-02000.DAV), Murphy (RCE-1277.MUR) и др.). Поскольку за прошедший год уровень информированности пользователей существенно возрос, выявленные вирусы были сравнительно быстро локализованы. Вместе с тем, пользователи малых и отдаленных городов нашей страны все еще сообщали о случаях заражения вирусами RC-1701.CAS, M-05.STN (Stone) и других "прошлогодних" вирусах, эпидемии которых в больших городах уже практически закончились. Таким образом, "расползание" вирусов идет от центра к периферии, как это происходит и с естественными вирусами, скажем, вирусом гриппа. Опыт показал, что скорость распространения вирусов из одного города в другой не так уж велика, и запаздывание достигает нескольких месяцев. Это создает возможность подготовиться к появлению очередного вируса за счет оперативного распространения соответствующей информации и антивирусных средств через бюллетень Софтпанорама.
Первые два месяца 1990 г. оказались довольно спокойными и создали обманчивое впечатление "затишья". Однако с марта поток быстро стал нарастать. Первым появился американский вирус Sunday, или RСЕ-1636.SUN по используемой автором классификации. Изучение кода показало, что его можно рассматривать в качестве штамма вируса RCE-1813.IER (Ierusalem, Black Friday). В воскресенье RСЕ-1636.SUN удаляет все запускаемые программы. В этом же месяце был обнаружен бутовый вирус Bx3-EB.OGR (OGRE, DiskKiller) тайваньского происхождения. Это первый из попавших в наших страну вирусов, уничтожающих информацию на всем винчестере так, что ее потом крайне трудно, а для специалиста, не владеющего ассемблером, -- невозможно восстановить. В частности, от этого вируса пострадал ряд ВЦ в западных областях Украины.
В апреле в Москве был обнаружен вирус RCE-02000.DAV болгарской разработки. В мае в Днепропетровске был обнаружен вирус RC-600.VOR -- первый вирус, относительно которого достоверно известно, что он был разработан в СССР. В июне в Киеве был обнаружен вирус RCE-1277.MUR (Murphy), разработанный в Болгарии. В этом же месяце в Москве был обнаружен вирус RCE-1600.VOR. Приблизительно в это же время в Москве был обнаружен бутовый вирус D-29.ZUK (Den Zuk) и бутовый вирус индийского производства -- WM-1F.JSH (Joshy). В июле в нескольких точках Москвы был обнаружен вирус RC-492.SI. В частности, автор обнаружил его, находясь в командировке в ВЦ АН СССР.
К сентябрьскому семинару 1990 г. было обнаружено еще шесть новых вирусов: С-1004.BEB (Bebe), RC-488.LCH (Flu-2, LoveChild), RC-394.ATN (Attention), бутовый вирус Print Screen, нерезидентные файловые вирусы С-257.KEM (Kemerovo-Reboot) и RCE-04096.FRD (Frodo). Последний является представителем нового поколения вирусов -- так называемых стелс-вирусов и представляет большую опасность из-за довольно скрытого характера распространения и проявлениям, похожим на сбои оборудования. Сразу после сентябрьского семинара был выявлен еще один представитель стелс-вирусов -- RC-0-512.DAV (666), разработанный в Болгарии.
Начиная с октября, количество обнаруживаемых в течение месяца вирусов стало превышать десяток и сложившаяся обстановка получила название "вирусный взрыв".
Сначала необходимо пояснить термин "вирусный взрыв", который сейчас стал модным клише. Дело в том, что всякий процесс, развитие которого происходит по экспоненциальному закону, с математической точки зрения можно назвать "взрывом". Под вирусным взрывом следует понимать экспоненциальное нарастание количества разрабатываемых в данной стране вирусов. Другими словами, это экспоненциальное нарастание количества техно-крыс. Вместе с тем, количество разработанных вирусов не следует путать с количеством зараженных ими программ. Дело в том, что многие вирусы обнаружены на одной-двух программах и существуют только в "коллекциях" вирусологов (которых в этом смысле можно считать основными вирусоносителями). Поэтому следует различать динамику разработки вирусов и динамику их распространения. Это далеко не одно и то же. Кстати, взрыв может быть не таким уж страшным. Например, если количество чего-то удваивается каждые 50 лет, то с математической точки зрения это тоже взрыв, хотя в течении жизни одного поколения он не заметен.
Если говорить о динамике разработки вирусов, то здесь безусловно мы имеем дело с процессом, аппроксимирующимся экспоненциальным законом, т.е. со взрывом. А вот динамика случаев заражения или изменения количества зараженных программ подчиняется более сложным законам. Смешивание этих понятий приводит к некоторой путанице. Однако запугивать себя и других огромным количеством вирусов не стоит: достаточно посмотреть приведенные в приложении таблицы, где приведена оценка распространенности того или иного вируса -- распространение большинства известных вирусов было подавлено в самом начале, до достижения ими критической массы зараженных программ. Поэтому они представляют собой лишь потенциальную угрозу, как, например, на Украине имеется потенциальная угроза заразиться холерой, малярией или другими эпидемическими инфекциями. Лишь десятка два вирусов из каждой сотни разработанных вызывали случаи массового заражения программ (т.е. распространенность 20% существующих компьютерных вирусов оценивается цифрами 4 или 5 по приведенной в прил. 1 шкале). Вообще говоря, для количества зараженных программ имеют место математические закономерности, характерные для эпидемий: динамика распространения является результатом наложения нескольких случайных процессов, каждый из которых имеет начальный восходящий участок, пик и резкий спад. Кроме того, необходимо учитывать все большую распространенность и быстрое совершенствование средств защиты, а также повышение уровня осведомленности пользователей. В общем, хотя быстрый рост количества компьютерных вирусов -- это тревожный симптом, следует трезво оценивать опасность: переоценка так же опасна, как и недооценка.
Как уже отмечалось, Болгария стала одним из мировых центров разработки файловых вирусов. Начиная с середины 1989 г., в СССР наблюдается "наплыв" вирусов из Болгарии, причем ряд разработанных там вирусов оказались весьма изощренными и опасными. Этот поток вирусов, затронувший и западные страны, получил название "болгарского вирусного взрыва". Это не совсем точное название, поскольку правильнее говорить об информационном взрыве: многие из так называемых "болгарских" вирусов либо вообще не были "выпущены на свободу", либо быстро локализованы и уничтожены, не успев создать эпидемию, однако тот факт, что они были собраны В.Бончевым и переданы западным вирусологам в течении достаточно короткого промежутка времени, создал иллюзию "взрыва".
Деятельность болгарских техно-крыс нанесла определенный ущерб нашей стране, поскольку из Болгарии вирусы быстро попадают в СССР. Всего к нам попало порядка 20 болгарских вирусов, ряд из которых распространился достаточно широко. Среди последних отметим группу Dark Avenger (RCE-1800.DAV -- Еddie, RCE-02000.DAV -- Anti-Bontchev, RC-0-512.DAV и др.) и группу TP-вирусов (RСE-1206.TP, RCE-1805.TP, RCE-2885.TP и др.). Многие сотни, если не тысячи, часов были потрачены на анализ и дезинфекцию зараженных ими программ.
Факты свидетельствуют о том, что, начиная с 1988 г., в Софии сложилась группа лиц, активно разрабатывавшая и распространявшая компьютерные вирусы. Общее количество разработанных ими вирусов приближается к сотне. Первой болгарской техно-крысой, "вышедшей на международную арену", был небезызвестный TP, разработавший группу вирусов, известную под названием Yankee Doodle. Эта техно-крыса, по данным В.Бончева, закончившая свою деятельность по созданию новых вирусов летом 1989 г., ранее была сотрудником Высшего машинно-электротехнического института (теперь Инженерная академия), расположенного в Софии. Фамилия автора вируса E-1961.YSH (В.Бочев) стала известна по попавшему в СССР на вирусной дискете Бончева исходному тексту данного вируса. Правда, несколько странно, что болгарский программист использовал в своей программе мелодию американского марша (песни времен войны за независимость) "Янки Дудль Денди" (Yankey Doodle Dandy). Этот нерезидентный файловый вирус был исторически первым болгарским вирусом, заражавшим EXE-файлы стандартным способом. Кстати, В.Бочев является автором некоторых статей, опубликованных в "Компютър за вас".
Наиболее известной болгарской техно-крысой на данный момент является программист, скрывающийся под кличкой Dark Avenger, "продукция" которого (порядка двух десятков изощренных вирусов) уже могла бы быть оценена в западных странах солидным сроком тюремного заключения. Первым из вирусов, разработанных этой техно-крысой, в СССР попал вирус RCE-1800.DAV Этот вирус, часто называемый Eddie, по содержащейся в нем текстовой строке был и остается одним из наиболее опасных файловых вирусов. В нем предусмотрено разрушение секторов на диске, а также использован несколько отличный от предыдущих вирусов механизм размножения (RCE-1800.DAV заражает файлы не только при выполнении, но и при открытии), обеспечивавший вирусу более быстрое распространение. Весной 1990 г. в нашей стране была обнаружена новая модификация вируса RCE-1800.DAV -- RCE-02000.DAV, которая на зараженной машине маскирует увеличение длины зараженных файлов. Это один из наиболее скрытно размножающихся и опасных вирусов-вандалов. В тексте вируса RCE-02000 имеется строка "(c) 1989 by Vesselin Bontchev", расположенная в конце тела вируса, т.е. в последнем блоке зараженной программы. Подобного рода клеветнические приемы типичны для техно-крыс, и В.Бончев не является первым или последним разработчиком антивирусных программ, которому приходится защищаться от "пиратства наоборот". Попытки приписать авторство вирусов разработчикам антивирусных программ или превратить очередные версии этих программ в троянские, т.е. распространяющие новый вирус, предпринимались техно-крысами неоднократно, однако в случае RCE-02000.DAV вирус, являясь резидентным, еще и блокирует запуск антивирусных программ В.Бончева, проверяя загружаемые программы на наличие части приведенной выше строки и вызывая зависание, если строка найдена. В 3-4 номере за 1990 г. журнала "Компютър за вас" В.Бончевым было опубликовано опровержение, подтвердившее, что автором данного вируса является Dark Avenger -- предположение, возникшее у большинства советских вирусологов, анализировавших код данного вируса. Более того, в указанном номере опубликовано и письмо самого Dark Avenger. Повидимому, это первая публикация техно-крысы, хотя не совсем понятно, зачем предоставлять технопатам возможность печататься. Поскольку появление письма Dark Avenger по времени совпало с распространением вируса RCE-02000.DAV, это еще раз показывает, насколько техно-крысам присущ "комплекс Герострата". Интересно отметить, что в письме название журнала "Компютър за вас" изменено на достаточно едкое "Вирус за вас", что, учитывая изложенные выше факты, имеет определенные основания.
Проведенная 14--17 ноября 1990 г. в Киеве конференция стала значительным событием в развитии отечественной вирусологии. В конференции приняли участие более 250 специалистов, включая ведущих отечественных разработчиков антивирусных программ, а также специалисты Болгарии и Польши.
Программа конференции была составлена достаточно демократично. В частности, были приглашены практически все разработчики популярных в нашей стране антивирусных программ. Перечень докладов, включенных в конференцию, представляет, по мнению автора, определенный исторический интерес как индикатор состояния развития отечественной вирусологии в 1990 г. и приводится ниже. Поскольку не все из приглашенных специалистов смогли принять участие в конференции, а некоторые доклады были включены вне плана, перед названием доклада указано соответствующее условное обозначение ("*" -- состоявшийся плановый доклад, звездочка стоит у фамилии автора, выступавшего с докладом); "+" -- внеплановый доклад; "-" -- несостоявшийся доклад).
Открытие конференции 14 ноября * Безруков Н.Н.(Киев). Актуальные проблемы компьютерной вирусологии (стелс-вирусы, файлово-бутовые вирусы, LAN-вирусы). * Бончев В.(София). Развитие вирусологии в Болгарии; ответы на вопро- сы участников семинара. + Кадлоф А.(Варшава). Развитие вирусологии в Польше. * Лозинский Д.Н.(Москва). Aidstest: первые два года. * Семенов В.А., Тарасов Г.П., (Киев, ЦНКБ ВТ ГКВТИ). Вирусная пробле- матика в контексте задач защиты от несанкционированного доступа. Вечернее заседание 14 ноября Секция 1: Общие проблемы компьютерной вирусологии. Классификация вирусов и методы анализа вирусоподобных программ, инструментальные средства ви- русолога (руководитель секции Н.Н.Безруков). - Водяник А.Г.(Мариуполь). Некоторые утилиты для анализа программного обеспечения. - Волынский В.В.(Москва). Использование Periscope для анализа про- граммного обеспечения. * Карасик И.Ш.(Москва). Вирусы как продукт естественной эволюции про- граммного обеспечения. + Кадлоф А.(Варшава). Идентификация компьютерных вирусов. * Кохманюк Д.С.(Киев). Опыт использования Quaid Analyzer для исследо- вания программного обеспечения. * Свиридов И.А.(Киев). Роль BBS в борьбе с вирусами (на примере элек- тронной конференции по вирусам FIDO). - Селивоненко А.Б.(Полтава). Шпион 21 прерывания. * Касперский Е.В.(Москва). Методика работы с дизассемблером Sourcer. * Круковский М.Ю., Грушевский Ф.Я., Миненко С.М., Аксютенко В.М. Общие принципы функционирования бутовых вирусов и борьбы с ними. * Цал М.И.(Ленинград). Современный уровень написания вирусов и воз- можность создания универсального детектора и резидентных программ. * Сотников С.Н.(Минск). Некоторые статистические закономерности по- ступления вирусов в СССР. Утреннее заседание 15 ноября Секция 2: Интегрированные антивирусные системы. Полифаги (руководитель секции Д.Н.Лозинский). * Грязнов Д.О.(Переславль-Залесский). Антивирусная система PC Shield. * Касперский Е.В.(Москва). Полифаг --V. - Котик О.Г.(Москва). Система Anti-Kot/Anti-Kor. * Свиридов И.А.(Киев). Пакетный универсальный детектор-фаг для буто- вых вирусов. - Сербиненко А.В.(Донецк). Сравнительный анализ пользовательского ин- терфейса в полифагах. * Сусликов Е.Н.(Кемерово). Незаражаемый высокоскоростной полифаг с самонастройкой на детектирование новых вирусов. - Сысоев И.В.(Москва). Полифаг AV. + Цал М.И. Антивирусная система Cerber СП Диалог. + Юдин Г.Т., Биллиг И.В.(Тверь). Интегрированная антивирусная среда Авиценна. Вечернее заседание 15 ноября Секция 3: Вопросы конструирования детекторов, конструирование ревизоров, контроль целостности MS DOS (руководитель секции Е.В.Касперский). * Ветров И.В.(Москва). Пакет программ "Ревизор". - Герасимов В.В.(Москва). Новая версия ревизора DLI. * Мостовой Д.Ю. (Москва). Некоторые аспекты реализации ревизоров. * Рабец В.С.(Черноголовка). Детектор, интегрированный с Norton Commander. - Румянцев М.И.(Донецк). Spirit -- средство контроля целостности MS DOS. * Суворов И.А.(Киев). Полидетектор с ускоренным поиском сигнатур и возможностью ввода данных из таблиц "Компьютерной вирусологии". * Судленков Г.О.(Минск). Ревизор с возможностью нейтрализации файло- вых вирусов, дописывающихся в хвост файла. * Шеховцов А.Л.(Киев). Полидетектор с диалоговым интерфейсом и воз- можностью ввода сигнатур для контекстного поиска. Утреннее заседание 16 ноября Секция 4: Конструирование резидентных программ защиты, методы контроля "on the fly" (руководитель секции А.Г.Водяник). - Водяник А.Г.(Мариуполь). Intellectual Writе Protector -- гибкое со- четание аппаратных и программных методов защиты. * Двоеглазов И.М.(Киев). Резидентный сторож, контролирующий 21 преры- вание. * Касперский Е.В.(Москва). Резидентные сторожа --D1, --D2, --D3. * Катюшкин А.В.(Москва). Резидентный монитор с расширенными возможно- стями. * Пономаренко В.В.(Киев). Резидентная поливакцина. Вечернее заседание 16 ноября Секция 5: Нетрадиционные методы защиты от вирусов, незаражаемые и само- излечивающиеся программы (руководитель секции Н.Н.Безруков). * Бабанин В.М.(Тверь). Универсальная антивирусная вакцина от файловых вирусов, имплантирующихся в конец файла. - Волынский В.В.(Москва). Вирус против вирусов. * Сесса А.В. (Днепропетровск). Нейтрализация произвольных бутовых ви- русов при загрузке ДОС. * Сусликов Е.Н.(Кемерово). Эвристические методы поиска новых вирусов в незаражаемом полидетекторе LD. * Рахимов А.Р., Турсунов О.О.(Ташкент). Антивирусная система Cerber. * Фиалков А.В.(Москва). Универсальное вакцинирование программ от фай- ловых вирусов присоединяемым детектором-защитником. * Д и с к у с с и я: "Меры воздействия и возможные санкции против разработчиков и распространителей вирусов". Утреннее заседание 17 ноября Секция 6: Методы и алгоритмы защиты от несанкционированного копирования коммерческого ПО (руководитель секции В.В.Герасимов). * Даен И.Л., Маковенко А.Т.(Киев). Средства защиты от копирования данных, основанные на применении ключей. - Герасимов В.В.(Москва). Классификация систем защиты от несанкциони- рованного копирования и некоторые оценки сложности их вскрытия. - Рик А.В.(Тверь). Метод комплексной защиты программных средств на дискетах и винчестерах. Закрытие конференции * Безруков Н.Н. Итоги конкурса антивирусных программ, распространя- емых бесплатно. Награждение победителей. * Принятие заключительных документов, определение даты проведения следующей конференции.
Выступавший вторым известный болгарский вирусолог Весселин Бончев кратко охарактеризовал ситуацию с компьютерными вирусами, сложившуюся в Болгарии, и ответил на многочисленные вопросы. Поскольку значительная часть аудитории была так или иначе знакома со статьями В.Бончева в "Компютър за Вас", ряд вопросов носил "прицельный" характер. В частности, был задан вопрос о причинах "болгарского вирусного взрыва". В.Бончев также остановился на известной болгарской техно-крысе, скрывающейся под псевдонимом Dark Avenger. Отметив, что характер некоторых решений позволяет предположить, что Dark Avenger в своей основной деятельности связан с разработкой сетевого программного обеспечения для IBM PC, В.Бончев охарактеризовал его как технопата и отметил, что в настоящее время количество разработанных им вирусов приближается к двум десяткам. Касаясь клеветнического приема, использованного Dark Avenger при программировании вируса RCE-02000 (часть фразы "(c) 1989 by Vesselin Bontchev", содержащейся в теле вируса, используется как ключ поиска соответствующего текста в загружаемой программе и, если строка найдена, то вирус вызывает зависание компьютера), В.Бончев сказал, что, помимо данного клеветнического приема, Dark Avenger несколько раз загружал в различные BBS троянизированные вирусами версии антивирусной программы UScan, пользуясь его фамилией при регистрации. Следует отметить, что В.Бончев продемонстрировал очень хорошее владение русcким языком, что обеспечило тесный контакт с аудиторией. Кстати, В.Бончев предпринял определенные усилия по популяризации полученных в СССР результатов на Западе. В частности, им переведена и передана в электронную конференцию по вирусам FIDO предложенная автором классификационная схема, в которую он внес некоторые полезные добавления и уточнения.
Последовавшее выступление "Развитие вирусологии в Польше" известного польского вирусолога Анджея Кадлофа (A.Kadlof) -- автора многочисленных статей на эту тему в журнале Komputer (некоторые из его ранних работ были переведены на русский язык и опубликованы в советско-польском журнале "Компьютер" [Кадлоф90]) -- было внеплановым, поскольку возможность его приезда была до последнего момента неясна. Как и В.Бончев, А.Кадлоф выступал на русском языке, которым он владеет достаточно свободно. В своем докладе А.Кадлоф рассказал, что первым в Польше появился "венский" вирус (С-648.VEN), который до весны 1988 г. размножался никем незамеченный. Он был выявлен в Варшавском политехническом институте, где сразу был создан детектор и фаг (известные в нашей стране Diag и Cure И.Собчека). Примерно в это же время была опубликована первая статья о вирусах в польском журнале Komputer. Другим вирусом, обнаруженным в 1988 г., был С-534.W13, "живой" экз. которого был принесен в редакцию журнала Komputer. В 1989 г. вышла брошюра А.Кадлофа "Внимание, вирус!" (перевод которой был сделан кем-то из харьковских программистов и существует в виде файла на дискете, но не распространялся по Союзу -- Н.Н.Безруков), которая до настоящего момента является единственной в Польше книжной публикацией по компьютерной вирусологии. Сейчас А.Кадлоф готовит ее переиздание. Далее А.Кадлоф охарактеризовал проблемы становления вирусологии в Польше, которые во многом аналогичны отечественным: в обеих странах получить государственную поддержку для организации лаборатории весьма и весьма нелегко. Что касается "польских" вирусов, то на сегодняшний момент к ним можно отнести только C-534.W13 Из разрабатываемых антивирусных программ А.Кадлоф отметил известную у нас в стране программу Mks_vir Марка Селля, Mapvir М.Филипяка и его собственную -- Paw. Между указанными специалистами налажено тесное сотрудничество и обмен информацией. В частности, ими начато создание "Банка информации о вирусах", а с декабря этого года издательством Lurus планируется издание специального электронного бюллетеня -- PC Virus.
Живую реакцию аудитории вызвало выступление Д.Н.Лозинского, который рассказал о возможностях текущей (на день выступления) версии Aidstest, "выкусывающей" более 60 вирусов. Докладчик дал краткую характеристику новых вирусах, обнаруженных за последнее время, обратив внимание на появление ряда отечественных компьютерных вирусов, которые, судя по всему, написаны студентами. Интересно отметить, что один из этих вирусов, можно рассматривать как посвященный Д.Н.Лозинскому. Касаясь отечественных вирусов он, в частности, обвинил разработчиков отечественных вирусов в некомпетентности. Вспоминая судьбу хорошо известной фразы из документации к его программе Aidstest, которую автор вируса RCE-1600 воспринял как "руководство к действию", и учитывая возможность присутствия в зале разработчиков отечественных вирусов, такое обвинение могло быть воспринято кем-то слишком близко к сердцу. По мнению автора, пусть уж разработчики отечественных вирусов подольше остаются на существующем уровне.
Участникам конференции были розданы две дискеты: одна с программами -- победителями конкурса и вторая с текстом данной работы, которую из-за трудностей с бумагой не удалось издать к началу конференции. Дискеты с результатами конференции комплектовались весьма оперативно и некоторые записанные на них программы датированы предыдущими сутками: практически все разработчики, участвовавшие в конкурсе привезли новые версии своих программ, которые и были записаны на дискеты.
Выступление представителя ЦНКБ ВТ ГКВТИ (недавно созданной государственной организации, которой, по-видимому, будут выделены гос.средства на программу борьбы с вирусами) В.А.Семенова "Вирусная проблематика в контексте задач защиты от несанкционированного доступа" было посвящено общим вопросам защиты информации. Отметив, что, поскольку его организация существует сравнительно недавно и конкретных разработок ею еще не выполнено, докладчик подчеркнул, что методы и средства, предназначенные для предупреждения искажения, уничтожения и защиты от несанкционированного доступа, могут применяться и для защиты от вирусов.
Второе заседание конференции было весьма напряженным. Первый доклад, прочитанный Иосифом Карасиком, касался принципиальной неотличимости вирусов от обычных программ. На примере ОС Unix автор продемонстрировал, что вирус пользуется теми же средствами файловой системы, что и обычные программы. Последовавшая за докладом дискуссия показала, что многие участники еще верят в существование "панацеи". Стоит дополнительно отметить, что с формальной точки зрения распознавание, заражена данная программа вирусом или нет, относится к NP-проблемам.
Внеплановый доклад "Идентификация компьютерных вирусов" Анджея Кадлофа привлек внимание, в основном, разработчиков антивирусных программ, поскольку затрагивал достаточно специальные вопросы. Наиболее интересным аспектом выступления была предложенная автором схема различения штаммов вирусов, однако доклад по такой тематике очень сложно воспринимать на слух, и лишь немногие из сидевших в зале сумели уследить за ходом изложения. Суть предложения А.Кадлофа состоит в создании так называемой схемы вируса, обеспечивающей возможность однозначной классификации вируса профессиональными исследователями. Эта схема, которая, как следует подчеркнуть, ориентирована только на профессиональных исследователей, включает разделение тела вируса на отдельные зоны (области) с определенными свойствами. В текущей версии своей классификационной схемы А.Кадлоф выделяет области четырех типов:
Разделение тела вируса на области указанных типов позволяет создавать частичные контрольные суммы постоянных областей (С, V и G), что, по замыслу автора, обеспечивает точную идентификацию любых штаммов вируса. Тем, кто работал с дизассемблером Sourcer, это напоминает применяемую в нем схему разделения "код--данные" с некоторыми уточнениями. Однако использовать список областей для облегчения дизассемблирования в рамках данного предложения нельзя, поскольку, например, W-области включают как данные, так и исполняемый код. Этот недостаток можно устранить введением дополнительных квалификаторов, что, впрочем, усложнит схему. В то же время с точки зрения классификации методом частичных контрольных сумм предложенное разделение избыточно -- достаточно бинарного разделения типа "изменяемые области" -- "неизменяемые области". Как отмечает сам автор, метод неприменим к вирусам, шифрующим свое тело (получается одна сплошная W-область), хотя в простейших случаях "сплошной" шифровки тела вируса (RC-1701.CAS) классификацию можно вести на коде, полученном после его расшифровки.
Практическую направленность носили доклады Е.В.Касперского и Д.С.Кохманюка, посвященные методике работы с конкретными инструментальными средствами вирусолога. Приемы работы с ними и некоторые тонкие возможности вызвали большой интерес участников, владеющих языком ассемблера. Можно сделать вывод, что как дизассемблер Sourcer, так и отладчик Quaid Analyzer (или Periscope) являются профессиональными инструментами вирусолога, и уровень владения ними во многом определяет производительность труда. В ходе дискуссии были предложены дополнительные приемы использования указанных средств, а также инструментальные средства, повышающие эффективность их использования (обработчик листинга Sourсer, возможность использования редактора Multi Edit совместно с дизассемблером Sourcer, как своего рода интегрированной среды и др.). К сожалению, недостаток места не дает возможности привести все высказанные идеи и замечания, однако совершенно ясно, что доклады по данной тематике должны быть представлены на следующей конференции более широко.
В докладе М.Ю.Круковского и др. был дан анализ структуры бутовых вирусов. Содержание доклада во многом перекликалось с работами И.А.Свиридова (AVB), Я.У.Гринфельдса (SysTest) и А.В. Сессы (VitaminB), однако стиль изложения почему-то акцентировал личный вклад авторов. Возможно, все изложенные в докладе выводы получены авторами самостоятельно, однако игнорирование близких работ, некоторые из которых были опубликованы ранее (например, AVB И.А.Свиридова), несколько снизило впечатление от доклада. Другим недостатком было отсутствие реализации излагаемых идей в виде конкретной антивирусной программы.
В докладе И.А.Свиридова о роли BBS в борьбе с вирусами было подчеркнуто, что, применительно к борьбе с вирусами, BBS позволяют передать для анализа файл, получить результаты и разослать уведомление всем абонентам в течении суток, что существенно сокращает время незамеченного распространения нового вируса. Тем самым снижается опасность достижения количеством зараженных программ "критической массы", после которой можно говорить об эпидемии.
Доклад М.И.Цала примечателен тем, что посредине доклада погас свет. В темноте докладчику не удалось определить современный уровень написания вирусов, что, впрочем, неудивительно, так как для характеристики последнего больше всего подходит слово "разный". Следует также отметить, что концепция "непрерывного усложнения" компьютерных вирусов, которую сейчас многие пытаются проповедовать, стремясь запугать пользователей, при детальном разборе не выдерживает никакой критики. Как показывает опыт, "качество" кода вируса не играет такой уж определяющей роли в его распространенности. Это лишь один из факторов. Достаточно вспомнить RCE-1813.IER (Иерусалимский вирус) -- достаточно примитивный вирус, который, тем не менее, и сейчас является, пожалуй, наиболее распространенным файловым вирусом в мире. Другим заблуждением докладчика была его вера в возможность создания "панацеи" против любого вируса. Этот вопрос уже затрагивался применительно к докладу И.Ш.Карасика.
К сожалению, недостаток места не позволяет здесь рассказать обо всех заседаниях. С некоторыми из докладов, сделанных на других заседаниях, можно будет познакомиться в трудах конференции, которые предполагается выпустить в виде сборника.
На заключительном заседании конференция приняла обращение, которое представляет интерес как первое официальное упоминание о надвигающемся советском вирусном взрыве. Обращение было принято единогласно всеми участниками конференции. Ниже следует текст обращения.
Мы, представители различных республик и регионов, принявшие участие в конференции, считаем необходимым привлечь внимание общественности страны к проблеме компьютерных вирусов в СССР и отметить следующее:
Киев, 17 ноября 1990 г.
В ходе конференции был проведен второй Всесоюзный конкурс антивирусных программ, распространяемых бесплатно. Как и сама конференция, он финансировался Авиацентром НТТМ (г.Киев). Общий размер премиального фонда второго конкурса составил около 10 тыс. рублей. Конкурс проводился в трех классах программ: фаги (программы, "выкусывающие" компьютерные вирусы из зараженных программ), детекторы (программы, определяющие, заражена ли программа тем или иным компьютерным вирусом) и ревизоры (программы, определяющие, внесены ли какие-либо изменения в текст программы или нет), вакцины (программы, делающие компьютер в целом или отдельные программы невосприимчивыми к тому или иному типу компьютерного вируса) и сторожа (программы, выявляющие попытки выполнить "незаконные" операции с файлами).
Для победителей были установлены следующие премии: по классу фагов I премия -- 1500 руб., II -- 900 руб., III -- 600 руб; по классу детекторов и ревизоров: I премия -- 1200 руб., II -- 750 руб., III -- 450 руб.; по классу вакцин и фильтров: I премия -- 1200 руб., II -- 750 руб., III -- 450 руб. Кроме того, было установлено несколько специальных премий: за лучшие студенческие работы в каждом классе программ (три премии по 300 руб. каждая) и премия за наиболее популярный антивирусный продукт (500 руб.). Специальные премии были также установлены рядом совместных предприятий (Диалог, Новинтех, Интерюнити).
В классе фагов первое место присуждено программе SOS Е.Н.Сусликова (Кемерово), второе место -- программе -V E.В.Касперского (Москва), третье место -- программе SysTest Я.У.Гринфельдса (Рига). В классе детекторов и ревизоров первое место присуждено детектору с возможностью эвристического поиска вирусов LD Е.Н.Сусликова (Кемерово), второе -- ревизору DINF Д.Ю.Мостового (Москва), третье -- контекстному детектору VL А.Л.Шеховцова (Киев). В классе сторожей и вакцин первое место присуждено резидентному сторожу MVT М.Х.Купчса (Рига), второе -- вакцине против бутовых вирусов VitaminB A.В.Ceccы (Днепропетровск), третье место -- резидентной вакцине против файловых вирусов NeatVac В.В.Пономаренко (Киев).
Специальная премия Киевского филиала СП Новинтех присуждена И.А.Свиридову (Киев) за первую реализацию и опубликование универсального ревизора-фага против бутовых вирусов AVB. Специальная премия журнала Интеркомпьютер присуждена Е.В.Касперскому за детектор -D3, обладающий возможностями анализа выявленного вируса. Специальные премии студентам, участвовавшим в конкурсе, получили И.В.Сысоев -- студент Технического Университета им. Баумана и И.M.Двоеглазов, окончивший в этом году КГУ. И, наконец, самой популярной антивирусной программой была признана программа Aidstest Д.Н.Лозинского (Москва).
Количество персональных компьютеров в СССР уже начинает приближаться к миллиону. Конечно, до США, где количество персональных компьютеров сопоставимо с количеством телефонных аппаратов, нам еще очень и очень далеко, однако и такое количество уже представляет собой "закритическую" массу для создания и распространения компьютерных вирусов собственной разработки. Поэтому неудивительно, что в этом году появились файловые вирусы "местного производства".
Как известно, в 1990 г. мировым лидером в области разработки и распространения файловых вирусов являлась Болгария. В частности, в 1990 г. было выявлено более полсотни вирусов, имеющих болгарское происхождение, причем значительная часть из них была обнаружена непосредственно на зараженных программах в компьютерах. Как уже указывалось, некоторые болгарские вирусы, например RCE-1800 (Eddie), вызвали настоящие эпидемии. Социально-экономические условия СССР и Болгарии достаточно близки, а существовавшее значительное отставание в распространении персональных компьютеров сейчас несколько сократилось. Поэтому потенциально взрывоопасная ситуация, когда многие способные программисты не находят применения своим способностям, в сочетании с низкой правовой культурой и отсутствием законов, позволяющих привлекать авторов вирусов к уголовной ответственности, сейчас имеет место не только в Болгарии, но и в СССР. В настоящее время можно констатировать начало советского вирусного взрыва, причем советские техно-крысы отличаются от болгарских не только количеством, но и большей склонностью к вандализму.
Если наметившаяся тенденция сохранится, то к концу 1991 г. СССP может выйти на первое место среди стран-разработчиков вирусов, "оттеснив" Болгарию. Тем самым будет существенно подорван наш шанс на выход на мировой рынок программного обеспечения. Уже сейчас можно назвать порядка десяти городов СССР, в которых велась или ведется разработка компьютерных вирусов (вирусы, место разработки которых неизвестно, но которые содержат тексты на кириллице или русские слова, транслитерированные в латиницу, обозначены "?"; вирусы, обнаруженные в СССР, но не описанные в версиях Virus Summary List Патриции Хоффман, доступных на момент написания данной работы, и которые с этой позиции можно отнести к разработанным отечественными техно-крысами -- "??"; вирусы, которые скорее всего не были разработаны в СССР -- "???"):
Первые три вируса отечественной разработки написаны в Воронеже, и соответствующий член колхоза им. Герострата известен в кругах вирусологов как "Воронежский пакостник". Интересно отметить, что эта техно-крыса работает в паре со своим отцом, специализирующимся на распространении "выращенных" вирусов. Вот уж, действительно, ...яблоко от яблони ... Вирус RCE-2458 "живьем" пока не попадался и, возможно, разработан кем-то из иммигрантов. К особенностям советского вирусного взрыва можно отнести наличие сравнительно большого числа вирусов-вандалов, что, по-видимому, связано с низким уровнем культуры в студенческой среде (уровень написания вирусов свидетельствует о том, что их авторы скорее всего являются студентами, только начавшими осваивать программирование на языке ассемблера или имеющими опыт программирования менее года).
Учитывая предупреждение Томпсона, высказанное им в его знаменитой Тьюринговской лекции, автор призывает продуманно подходить к упоминанию фамилий разработчиков вируса в антивирусных программах, документации к ним и публикациях на данную тему. Незачем создавать рекламу, по сути идя на поводу у какого-то молодого балбеса или ущербной личности, страдающей от чувства собственной неполноценности и не способной найти своим ограниченным способностям конструктивное применение.
Основная проблема для пользователей ПЭВМ, возникающая в связи с появлением компьютерных вирусов, состоит в том, как защитить свои программы и данные, не прибегая к самоизоляции. Практика показывает, что эта проблема вполне разрешима. Как и против биологических вирусов, для борьбы с компьютерными вирусами может применяться целый комплекс мер: технические, организационные, юридические. Поэтому наблюдаемая иногда тенденция к самоизоляции представляется автору совершенно неоправданной. Такое "сверхреагирование" в условиях нашей страны практически равносильно добровольному отказу от возможностей хоть как-то улучшить условия своей работы и повысить ее производительность. Учитывая недоступность для большинства программистов "фирменных" программных продуктов, оригинальных иностранных журналов, национальных сетей -- всего того, что является повседневностью для программиста в США и Западной Европе, обмен информацией на дискетах является, по сути, единственным способом получить информацию и немного поднять собственный уровень.
Потери данных в результате разрушительного действия компьютерных вирусов в настоящее время довольно редки и по частоте не превосходят случаев потерь данных из-за неисправности оборудования. Большинство случаев заражения программного обеспечения компьютерными вирусами, отмеченных к этому времени, связаны с отсутствием входного контроля поступающего программного обеспечения. Наиболее серьезные потери данных связаны не столько с разрушительными вирусами, сколько с отсутствием систематического архивирования. Те, кто наивно надеется, что все данные можно хранить на винчестере, не утруждая себя ведением архива на дискетах, рано или поздно убедятся, что "были глубоко неправы".
В то же время сама возможность попасть под разрушительную атаку вируса вызывает вполне понятную тревогу. Хотя при наличии четко поставленного входного контроля шансы пока невелики, но они, к сожалению, увеличиваются по мере проникновения в страну новых типов и разновидностей вирусов. Кроме того, каждый понимает, что такой атаке можно подвергнуться в самый неподходящий момент. Это беспокойство имеет свои положительные и отрицательные стороны. Отрицательной стороной является то, что оно толкает пользователей к самоизоляции, когда они начинают бояться брать и пробовать интересующие их программы, хотя, как уже отмечалось выше, в наших условиях такой обмен информацией является основным методом повышения собственной производительности. Положительно то, что пользователи начинают уделять адекватное внимание созданию архивных копий своих данных, а также методам повышения надежности их хранения. Следует отметить, что, хотя потеря содержимого винчестера способствует быстрой выработке привычки архивировать данные, это вряд ли можно называть приемлемым способом воспитания такой привычки и ее лучше прибрести заблаговременно. В любом случае следует трезво оценивать опасность: переоценка не намного лучше, чем недооценка.
До начала 1991 г. центральные советские газеты практически игнорировали данную проблему и в них лишь изредка проскальзывали отдельные заметки, посвященные зарубежным компьютерным вирусам, вряд ли привлекавшие внимание читателей. Однако в начале 1991 г. сразу две центральные газеты опубликовали материалы, посвященные проблеме компьютерных вирусов, которые, к сожалению, содержали сомнительные, а то и просто неверные материалы. Так, в газете Известия [Известия91] была опубликована подборка материалов под общим названием "Черный мститель неуловим". Из трех опубликованных в этой подборке (которую, кстати, более правильно было бы назвать "Уверовавший в свою безнаказанность болгарский технопат терроризирует пользователей всего мира") заметок, первые две явно дезориентируют читателей. Так, в первой заметке корреспондент В.Надеин пишет из Вашингтона:
"... Именно в Болгарии примерно два года назад был создан знаменитый компьютерный вирус "Черный мститель", против которого не могут найти действенного противоядия ни в одной из развитых стран."
"... Попытки американских ученых войти в контакт с создателями "черного мстителя" для того, чтобы совместными усилиями выработать меры противоядия, пока не привели к успеху. Любомир Матеев, которому сейчас 23 года, сказал, что он минувшей осенью принимал участие в изобретении этого вируса, однако ничем сейчас помочь не может, поскольку тот "вырвался из-под влияния" своих творцов."
Современную вариацию на тему средневекового убеждения о том, что болезнь является наказанием человека за грехи, предлагает читателям во второй заметке корреспондент Известий в Болгарии А.Капралов:
"...Как считает Август Стоянов, который посвятил этой проблеме целое философское эссе, основные виновники распространения вирусов -- неразборчивые потребители, которые используют нефирменные программные продукты. Вирус, считает А.Стоянов, -- заслуженное наказание для тех, кто присваивает чужую интеллектуальную собственность."
Однако наибольший вред, по-видимому, нанесла публикация в "Комсомольской правде" интервью с А.A.Чижовым под названием "Мне было интересно попробовать" с сенсационным подзаголовком "Интервью с человеком, заразившим Москву компьютерным вирусом". Содержание интервью, учитывая круг читателей данной газеты, можно в известной мере расценить как рекламу техно-крыс. Впрочем, читатель может сам оценить содержание публикации по приводимой ниже цитате:
"Создание вируса требует от программиста высокой квалификации, и мне было интересно себя попробовать. А кроме того, я знал, что мои программы копируются (разумеется, без моего ведома) и "гуляют" по всей Москве. Я не собирался таким вот жестоким способом наказать попирающих авторские права -- мне просто было интересно узнать масштабы копирования... (непонятно, как, распространяя, вирус можно оценить масштабы копирования? -- Н.Н.Безруков). Вирус прожил ровно год, никакого вреда не причинил -- ведь представлял собой лишь опознавательную метку, с помощью которой, включив компьютер, я видел, заражен он или нет.
Примерно через полгода после запуска вируса я обнаружил его в каждом втором из проверенных мною компьютеров."
Неудивительно, если прочитав такую публикацию, некоторые студенты решат, что им тоже "интересно себя попробовать", и начнут писать вирусы.
Говорят, на Западе изредка практикуется способ, когда репортер, допустивший в своей публикации значительные передержки, публично съедает свою статью, покрошенную в борщ. Было бы неплохо ввести подобное правило и для советских журналистов, освещающих "вирусную тематику".
Конечно, это не только и не столько проблема газет "Известия" или "Комсомольская правда" -- это проблема всей нашей прессы. Журналисты не пользуются компьютерами в повседневной работе и относятся к связанным с ними проблемам как к экзотической сфере, в которой им трудно отличить фантастику от действительности. Если сравнивать с американской прессой, то в ведущих американских газетах информация о проблемах, связанных с использованием персональных компьютеров, дается почти столь же подробно, как репортажи по популярным видам спорта. Например, не только известный случай вируса Морриса, но и перипетии борьбы за рынок четырехмегабитных чипов освещались в американских газетах как важнейший экономический и политический процесс.
Уже в середине 60-х гг. разработчики и пользователи обнаружили, что системы разделения времени весьма уязвимы с точки зрения возможности доступа к чужим данным и программам посторонних лиц, и начали принимать меры защиты против "непрошенных гостей". Доверие к той или иной компьютерной системе фактически означает доверие по отношению к тем, кто ее разработал, и тем, кто ею пользуется. Эксперты по безопасности компьютерных систем часто подчеркивают, что эти проблемы в значительной степени являются социальными проблемами. В программировании, как и в других сферах человеческой деятельности, появилась и развивается преступность. Вирусы являются только частью проблемы компьютерной преступности, и их правильнее всего рассматривать в этом, более общем контексте. Современные персональные компьютеры, в действительности не обеспечивают безопасность информации, поскольку любой, кто имеет доступ к компьютеру может изменять, читать или копировать данные. Поэтому наряду с различными специфическими методами защиты от вирусов, важное значение имеют традиционные методы защиты информации с которыми можно познакомиться по учебникам [Хоффман80, Сяо82].
Рассмотрение вирусов начнем с их исторических предшественников -- программ вандалов и троянских программ.
Класс программ, направленных на причинение вреда пользователям, часто обозначают термином "Badware", по аналогии с тем, что для обозначения программного обеспечения обычно используется термин "Software". На русский язык этот термин иногда переводится "калькой" софтвер, который не прижился из-за своей неблагозвучности. Мне кажется, что в технической литературе отдельные общепринятые иностранные слова можно использовать без перевода. Badware включает ряд подклассов, среди которых наиболее распространенными являются троянские программы и компьютерные вирусы.
Троянскими программами (троянскими конями) обычно называют программы, содержащие скрытый модуль, осуществляющий несанкционированные действия. Эти действия не обязательно могут быть разрушительными, однако практически всегда направлены во вред пользователю. В свою очередь, троянские программы можно разделить на несколько категорий.
Троянские программы-вандалы обычно выполняют или имитируют выполнение какой-нибудь полезной или экзотической функции. При этом в качестве побочного эффекта они стирают файлы, разрушают каталоги, форматируют диск и т.д. Иногда разрушительный код встраивается в какую-нибудь известную программу. Чтобы привлечь пользователей, полученная троянская программа-вандал часто маскируется под новую версию данного программного продукта.
С появлением BBS программы-вандалы получили значительное распространение. При этом техно-крыса подсовывает программу в один или несколько BBS, пользователи которых затем "попадаются на удочку". В качестве примера троянской программы-вандала можно привести программу SURPRISE ("Сюрприз"). Написанная на Бейсике, она исполняла команду DEL *.*, а затем выдавала на экран строку "Surprise !". И таких простых и злобных программ создано немало. С их распространением запуск новой программы на компьютере стал небезопасной операцией.
Иногда в качестве самостоятельной разновидности троянских программ-вандалов выделяют так называемые логические мины (logic bomb) -- скрытые модули, встроенные в ранее разработанную и широко используемую программу. Такой модуль является безвредным до определенного события, при наступлении которого он срабатывает. Такого рода программы иногда используются уволенными или обиженными сотрудниками как форма мести по отношению к нанимателю. Частный случай логических мин, в которых срабатывание скрытого модуля определяется временем, часто называют минами с часовым механизмом (time bomb). Фактически логические мины являются средством компьютерного саботажа, и их создание должно предусматривать уголовную ответственность. Хотя, как указано выше, компьютерный саботаж обычно связан с "местью" обиженных или уволенных программистов своему бывшему работодателю, он может использоваться и как форма конкурентной борьбы.
В истории отечественного программирования было несколько "громких" случаев компьютерного саботажа. Так, лет семь назад отечественные газеты сообщали о программисте, который перед своим увольнением встроил в программу, управлявшую главным конвейером Горьковского автомобильного завода, "мину", которая через некоторое время привела к остановке главного конвейера. Программист был выявлен и осужден. На Западе, наряду с попытками хищения средств через банковские компьютеры, распространены случаи компьютерного саботажа по отношению к различного рода финансовым системам, вплоть до шифровки базы данных с последующим требованием выкупа за ключ (программу) расшифровки. Последним известным случаем такого рода было описанное выше распространение дискеты с информацией по СПИДу, в которой программа управления базой данных была троянской.
Программы, обеспечивающие вход в систему или получение привилегированной функции (режима работы) в обход существующей системы полномочий, называют люками (back door). Люки часто оставляются разработчиками соответствующих компонент операционной системы для того, чтобы завершить тестирование или исправить какую-то ошибку, но нередко продолжают существовать и после того, как то, для чего они планировались, завершено или необходимость в нем отпала. Например, в операционной системе ОС ЕС широко использовалcя люк NewPSW, позволявший программе пользователя получить привилегированный режим, называемый в серии 360/370 режимом супервизора, в обход средств контроля операционной системы.
Троянские программы могут также использоваться в целях разведки. К распространенным программам такого рода относятся программы угадывания паролей. Одной из компонент сетевого вируса Морриса была такая программа, причем, как оказалось, она сумела добиться успеха в значительном числе случаев.
Формально компьютерным вирусом называется программа, которая может заражать другие программы путем включения в них своей, возможно модифицированной, копии, причем последняя сохраняет способность к дальнейшему размножению [Cohen88a]. Программа, зараженная вирусом, может рассматриваться как автоматически созданная троянская программа. В данном случае скрытым модулем является тело вируса, а одним из несанкционированных действий -- заражение других программ. Помимо заражения, вирус, подобно любой другой троянской программе, может выполнять и другие несанкционированные действия, от вполне безобидных до крайне разрушительных. Последние, в частности, могут включать уничтожение данных на зараженном диске. В этом случае вирус может рассматриваться как логическая мина. Выполняемые вирусом несанкционированные действия могут быть обусловлены наступлением определенной даты (такие троянские программы в какой-то степени аналогичны минам с часовым механизмом) или определенного количества размножений, или сочетанием определенных условий, например записи зараженной программы на винчестер (последние аналогичны различного рода бесконтактным минам). При этом комбинация этих условий может быть достаточно сложной, чтобы затруднить ее определение (как, например, в вирусе Пинг-понг).
Инфицируя программы, вирусы могут распространяться от одной программы к другой (транзитивно), что делает их более опасными по сравнению с другими методами компьютерного вандализма. Зараженные программы (или их копии) могут передаваться через дискеты или по сети на другие ЭВМ. Учитывая широко распространенную практику обмена и передачи программ на дискетах среди пользователей персональных ЭВМ (ПЭВМ), количество зараженных программ может быть значительным, приводя к своего рода эпидемиям. Этому также способствует распространенная в нашей стране практика использования одной ПЭВМ несколькими пользователями. Опасность существенно возрастает при наличии винчестера, программы на котором используются всеми пользователями. В этом случае один неквалифицированный или злонамеренный пользователь может нанести значительный ущерб другим пользователям. Особую опасность с точки зрения распространения компьютерных вирусов представляют любители компьютерных игр, обычно слабо знающие операционную систему и не вполне понимающие смысл выполняемых ими действий. Такие пользователи подвергают значительному риску своих коллег, работающих с ними на одной ПЭВМ.
Упрощенно процесс заражения вирусом программных файлов можно представить следующим образом. Код зараженной программы обычно изменен таким образом, чтобы вирус получил управление первым, до начала работы программы-вирусоносителя (рис.2). При передаче управления вирусу он каким-то способом находит новую программу и выполняет вставку собственной копии в начало (рис.2б) или добавление ее в конец этой, обычно еще не зараженной, программы (рис.2а). Если вирус дописывается в конец программы, то он корректирует код программы, чтобы получить управление первым. Для этого первые несколько байтов запоминаются в теле вируса, а на их место вставляется команда перехода на начало вируса. Этот способ является наиболее распространенным. Получив управление, вирус восстанавливает "спрятанные" первые байты, а после отработки своего тела передает управление программе-вирусоносителю, и та нормально выполняет свои функции. Возможны случаи, когда вирус включает себя куда-то в середину программы, например, в область стека (рис.2в). Последние случаи встречаются редко.
+----------------+ +-------------+ +----------------+ |++++++++++++++++| |+++++++++++++| |++++++++++++++++| |Команда перехода|+ |+++++++++++++| |Команда перехода|+ |++++++++++++++++|| |+Тело вируса+| |++++++++++++++++|| |----------------|| |+++++++++++++| |----------------|| |++++++++++++++++|| |+++++++++++++| |++++++++++++++++|| |+ ЗАРАЖЕННАЯ +|| |+++++++++++++| |+ НАЧАЛО +|| |++++++++++++++++|| |+++++++++++++| |++++++++++++++++|| |+ ПРОГРАММА +|| |+++++++++++++| |+ ЗАРАЖЕННОЙ +|| |++++++++++++++++|| |+++++++++++++| |++++++++++++++++|| |+ (COM - ФАЙЛ) +|| |+++++++++++++| |+ ПРОГРАММЫ +|| |++++++++++++++++|| |+ЗАРАЖЕННАЯ +| |++++++++++++++++|| |++++++++++++++++|| |+++++++++++++| |++++++++++++++++|| |++++++++++++++++|+ |+ПРОГРАММА +| |++++++++++++++++|+ |+++Тело вируса++| |+++++++++++++| |++++++++++++++++| |++++++++++++++++| |+COM - ФАЙЛ)+| |+++Тело вируса++| |++++++++++++++++| |+++++++++++++| |++++++++++++++++| |++++++++++++++++| |+++++++++++++| |++++++++++++++++| |Спрятанные байты| |+++++++++++++| |Спрятанные байты| |++++++++++++++++| |+++++++++++++| |++++++++++++++++| |++++++++++++++++| |+++++++++++++| |++++++++++++++++| +----------------+ +-------------+ |----------------| а б |++++++++++++++++| |+ КОНЕЦ +| Рис. 2. Схема заражения |++++++++++++++++| вирусом COM-файлов: |+ ЗАРАЖЕННОЙ +| а - в конец программы; |++++++++++++++++| б - в начало программы; |+ ПРОГРАММЫ +| в - в середину программы. |++++++++++++++++| +----------------+ в
Наиболее распространенными типами компьютерных вирусов в MS DOS являются файловые нерезидентные, файловые резидентные и бутовые вирусы. Многие из пользователей имеют ограниченный опыт работы с MS DOS. В то же время для понимания функционирования файловых вирусов и средств защиты от них важно понимать структуру файловой системы и прерываний MS DOS. Поэтому в прил. 4 приводится краткий обзор структуры файловой системы MS DOS, в прил. 5 -- структуры исполняемых файлов и некоторых управляющих блоков. Более подробные сведения можно получить в учебниках по языку ассемблера [Скенлон89], в электронном справочнике TechHelp, а также книгах П.Нортона [Нортон90] и Жордена. Разбор анатомии компьютерных вирусов начнем с анализа структуры нерезидентного файлового вируса, как простейшей разновидности этого класса системных программ.
Структурно компьютерный вирус можно представить состоящим из двух частей: головы и хвоста. Головой называется часть вируса, которая первой получает управление. Хвост вируса -- это части вируса, расположенные отдельно от головы. В простейшем случае вирус может состоять из одной головы, и действительно, файловые вирусы обычно так и устроены. Такие вирусы будем называть несегментированными. В отличие от них, сегментированные вирусы имеют располагающийся отдельно хвост и в какой-то мере аналогичны оверлейным программам. Примером сегментированных вирусов являются бутовые вирусы, хотя возможна реализация сегментированных файловых вирусов.
Файловые вирусы являются наиболее распространенной разновидностью компьютерных вирусов. Принципиально они заражают любой тип исполняемых файлов, существующих в MS DOS: COM, EXE, OVL и т.д. Однако основными объектами заражения являются файлы типа COM и файлы типа EXE. Некоторые сведения о структуре этих файлов приведены в прил. 5. Наиболее просто осуществляется заражение COM-файлов, которые представляют собой почти точную копию участка памяти с загруженной программой. Единственная требуемая настройка при загрузке COM-файлов состоит в загрузке сегментных регистров значениями, соответствующими месту загрузки программы. Значительная часть COM-файлов начинается с команды перехода, обходящей содержащие в начале программы данные.
При заражении COM-файлов вирус запоминает в своем теле первые три или больше байтов программы и вместо них записывает переход на начало собственного кода. Так поступает большинство файловых вирусов, заражающих COM-файлы, но не все. Дело в том, что при дописывании тела вируса в конец заражаемого файла весь код вируса должен быть написан специальным образом, обычно называемым позиционно-независимым программированием: при выполнении программы все ссылки должны адресоваться через соответствующее смещение, которое обычно хранится в одном из регистров.
Некоторые вирусы используют более примитивный подход: вместо дописывания своего тела в конец заражаемого COM-файла они перемещают туда первые несколько блоков программы, а сами записываются на место освободившихся блоков. В этом случае только программа восстановления исходного состояния программы должна быть позиционно-независимой или она должна размещаться где-то в фиксированных адресах памяти, используя какой-то неиспользуемый ее участок.
Простейший нерезидентный компьютерный вирус, заражающий COM-файлы в текущем каталоге и дописывающий свое тело в конец файла, можно представить в виде следующей неформальной спецификации.
Как видно из приведенной схемы, данный вирус распространяется не мгновенно по всей файловой системе, а постепенно, по мере заражения файлов в текущем каталоге. Поэтому от момента появления в файловой системе первого зараженного файла до заражения всех файлов в каталоге должно пройти некоторое время, зависящее от интенсивности использования зараженной программы.
Наиболее уязвимыми с точки зрения блокирования размножения вируса являются шаг 6 (попытка снятия атрибута READ ONLY), шаги 7,8 -- запись в файл, содержащий исполняемую программу, и шаг 9 -- установка даты создания файла, отличающейся от текущей. Для блокирования этих шагов обычно используются различные резидентные программы (см. ниже). Кроме того, если на шаге 4 вирус использует для маркировки зараженных файлов легко воспроизводимый признак (например, простановку в поле даты значения 62 с -- излюбленный признак для файловых вирусов), можно блокировать его распространение, присвоив этот признак всем заражаемым данным вирусом файлам. Этот прием используется так называемыми программами-вакцинами.
Вставка тела вируса при заражении может выполняться не только в хвост файла. Встречаются случаи имплантации в начало или середину файла.
Как уже указывалось, при вставке в конец или середину файла вирус должен каким-то образом обеспечить передачу себе управления. При этом необязательно изменять именно первые байты программы. Возможно изменение других байтов. Например, если программа начинается с команды безусловного перехода, вирус может определять адрес перехода и модифицировать команды, расположенные по этому адресу. Поэтому часто высказываемое мнение о том, что для нейтрализации вируса в зараженном COM-файле достаточно восстановить его первые байты, следует признать неверным.
Для понимания функционирования файлового вируса необходимо некоторое знакомство с системой прерываний компьютера типа IBM PC. Hеобходимые сведения приводятся в литературе (см., например, [Скенлон90]).
Файловые резидентные вирусы, помимо отдельных файлов, заражают, если так можно выразиться, и память компьютера. Предельно упрощая, память компьютера можно рассматривать как еще один файл, который можно заражать, дописываясь "в голову", т.е. в область младших адресов свободного участка памяти, "в хвост", т.е. в область старших адресов свободного участка памяти и, наконец, "в середину", т.е. в область адресов, уже используемых операционной системой или какой-нибудь программой (старшие адреса вектора прерываний, буфера и т.д.).
Вместе с тем, структура резидентного вируса существенно отличается от структуры нерезидентного вируса. Резидентный вирус можно представлять как состоящий из двух относительно независимых частей: инсталлятора и модуля обработки прерываний. Последний, в свою очередь, состоит из ряда программ обработки. Несколько упрощая, можно считать, что на каждое перехватываемое прерывание приходится своя программа обработки.
Инсталлятор получает управление при выполнении зараженной программы и играет роль своеобразной ракеты-носителя, запускающей вирус на орбиту, т.е. в оперативную память. Он отрабатывает один раз -- после запуска зараженной программы, и его целесообразно рассматривать как специализированный файловый вирус, заражающий оперативную память и, возможно, обычные файлы (чаще всего COMMAND.COM). В последнем случае инсталлятор фактически является доработанным для заражения оперативной памяти файловым вирусом. Структуру инсталлятора можно упрощенно представить следующим образом:
Приведем некоторые пояснения к упрощенной схеме инсталлятора файлового вируса. На шаге 3 инсталлятор, подобно обычному файловому вирусу, каким-то образом определяет зараженность оперативной памяти. Эта проверка может выполняться самыми разнообразными способами. Одним из наиболее распространенных является введение некоторого нового прерывания или функции существующего прерывания. Инсталлятор выдает это прерывание, и получаемый ответ, например 5555 в регистре AX, играет роль сигнала "память заражена" и "память еще не заражена", своеобразный аналог признака "62 с" в дате создания файла для нерезидентных файловых вирусов. Второй способ состоит в сканировании памяти и поиске сигнатуры, характерной для данного вируса. Поиск может начинаться с определенной, характерной точки, например, с адреса перехватываемого вирусом прерывания (обычно 21h). Могут быть использованы и другие способы или их комбинация.
Если проверка показала, что память еще не заражена, то на шаге 4 вирус выполняет ее заражение. Как уже указывалось, заражение может производиться как путем записывания тела вируса на участок свободной памяти, так и "вписыванием" тела в уже используемый участок. В первом случае вирус должен обеспечить резервирование этой памяти, чтобы она не была затерта другими программами. Простейшие вирусы выполняют это с помощью функции 31h (Keep) прерывания 21h или используя прерывание 27h (TSR -- Terminate but Stay Resident) MS DOS. Такие вирусы видны при просмотре списка резидентных программ утилитами типа Map, MemAnal и т.д. Более сложный способ предполагает манипуляцию с цепочкой блоков MCB (см. прил.5): вирус сам создает дополнительный блок MCB для захваченного участка памяти.
После закрепления в оперативной памяти инсталлятор выполняет так называемый перехват прерываний -- обеспечение передачи управления модулям вируса, обрабатывающим соответствующие прерывания. Это может делаться "в лоб", т.е. путем использования соответствующих функций MS DOS, или "с черного хода" -- нестандартным способом, обеспечивающим, в общем случае, более высокую степень маскировки. При любом способе конечный эффект состоит в том, что при возникновении определенного прерывания вирусу будет передаваться управление. При этом вирус может содержать дополнительный механизм, обеспечивающий то, что он будет получать управление всегда первым. Такие резидентные вирусы будем называть всплывающими. Всплытие помогает вирусу обходить простейшие программы-сторожа, основанные на перехвате тех же прерываний, поскольку они будут получать управление после вируса. Этот способ использует, в частности, вирус RCE-1800.DAV (Эдди). Отсюда следует, что анализ списка резидентных программ и объема памяти, сообщаемого MS DOS, является весьма полезным диагностическим приемом, применимым как при анализе многих резидентных файловых вирусов, так и при анализе бутовых вирусов. Существует целый ряд программ, выдающих список резидентных программ. Автор рекомендует использовать для этой цели программу Release, которая являясь резидентной, не только позволяет получить этот список в любой момент, но дает возможность снять ненужные резидентные программы. Сведения об объеме оперативной памяти (установленной и свободной) можно, например, получить с помощью программы CHKDSK, вxодящей в MS DOS (она также выдает очень важные сведения об объеме памяти, занятой сбойными кластерами, и о количестве скрытых файлов), хотя имеется целый ряд других программ с аналогичными функциями (Map, MemAnal, MemStat и др). Для пользователей Norton Commander эту информацию проще всего получить с помощью команды Ctrl-L.
В случае наличия опасности заражения вирусом полезно включить вызов CHKDSK в файл AUTOEXEC.BAT, а за ним поместить строку с данными, которые получены при загрузке на незараженной системе, например:
c:\dos\chkdsk echo ПРОВЕРЬТЕ СООТВЕТСТВИЕ ПОЛУЧЕННЫХ echo ПОЛУЧЕННЫХ ЗНАЧЕНИЙ ЭТАЛОННЫМ ! echo 188416 in 8 hidden, 61440 in bad, pause 655360 totalmem, 515424 free memory
Функционирование резидентного файлового вируса можно представить как две стадии: инсталляции и слежения. При запуске зараженной программы управление получает инсталлятор, который обеспечивает закрепление вируса в оперативной памяти, перехват требуемых прерываний и, возможно, маскировку (с целью затруднить свое обнаружение среди резидентных программ). Эта фаза работы резидентного вируса получила название фазы инсталляции. В дальнейшем каждый раз при возникновении одного из перехваченных вирусом прерываний управление получает модуль обработки соответствующего прерывания. При этом вирус может анализировать поступивший запрос и, в зависимости от его вида, выполнять те или иные действия. Например, загрузка программы в оперативную память и ее выполнение в MS DOS реализованы с помощью функции 24h прерывания 21h (Exec). Если вирус перехватывает это прерывание, то он может определить имя файла, из которого выполняется загрузка, и заразить программу в этом файле.
Следует также отметить, что способ поиска "жертвы" у резидентных вирусов существенно отличается от способа, используемого нерезидентными вирусами. Нерезидентные вирусы получают управление после загрузки в память зараженной программы, а затем ищут файл-жертву, используя параметры PATH, СOMSPEC или другую информацию о расположении выполняемых программ. Если жертва найдена, то она заражается, а затем управление возвращается зараженной программе. Резидентные вирусы реагируют на определенные прерывания. Получив управление после перехваченного прерывания, они выполняют соответствующие действия. Как уже указывалось, обычно резидентные файловые вирусы выполняют заражение запускаемых программ (по функции 24h прерывания 21h), однако наиболее инфицирующие из резидентных вирусов заражают файлы и при их открытии или чтении. Например, вирус RCE-1800.DAV, кроме указанных действий, перехватывает и прерывания по чтению, заражая, в частности, оба файла, копируемые командой COPY, если хотя бы один из них имеет расширение ЕХЕ или СОМ.
Бутовые вирусы являются весьма специализированной разновидностью резидентных файловых вирусов. Упрощенно бутовый вирус можно представить себе как специализированный резидентный вирус, который заражает единственный "файл" -- загрузочный сектор гибкого или жесткого диска. Четкой границы между резидентными файловыми вирусами и бутовыми вирусами не существует: в последнее время появились гибриды, сочетающие заражение файлов с заражением бут-сектора винчестера. Это подчеркивает близость основных принципов организации этих двух типов вирусов.
Этот тип вирусов распространяется, инфицируя дискеты, причем как загружаемые (т.е. содержащие копию MS DOS), так и незагружаемые (т.е. содержащие любую информацию). Заражение незагружаемых дискет связано с определенным психологическим расчетом, который, к сожалению, слишком часто оправдывается: при перезагрузке MS DOS пользователи обычно забывают проверить, вставлена ли дискета в дисковод A, и часто перезагрузка выполняется с вставленной в указанный дисковод дискетой, с которой вирус и попадает на винчестер.
Инфицированная дискета всегда содержит часть кода вируса в бут-секторе, поэтому бутовые вирусы легко обнаружить. При просмотре бут-сектора дискеты на незараженном компьютере легко видеть изменения загрузчика (дамп стандартного бут-сектора приведен в прил.5). Структура стандартного загрузчика лишь незначительно меняется от версии к версии MS DOS, поэтому изменения легко выявить визуально (особенно первых трех байтов, содержащих команду JMP на начало загрузчика) или с помощью подходящей программы (Scan, Aidstest и др.). Такая проверка должна обязательно проводиться для всех поступающих дискет.
Как уже указывалось, файловые вирусы обычно состоят из одного сегмента. Впрочем, первую команду JMP, подставляемую большинством файловых вирусов, дописывающих свое тело в конец COM-файла, можно рассматривать как вырожденный сегмент. Бутовый вирус всегда состоит из нескольких сегментов. Обычно таких сегментов два, и мы будем называть их головой и хвостом.
Положение головы бутового вируса на дискете определено однозначно: она всегда расположена в бут-секторе и занимает ровно сектор. На винчестере ситуация немного сложнее: голова бутового вируса может располагаться в одном из его двух бут-секторов -- главном (MBR -- Master Boot Record, расположенном по абсолютному дисковому адресу 0/0/1) или бут-секторе логического диска С, обычно занимающего первый сектор соответствующего логического диска. Для наиболее распространенных 40 M винчестеров это обычно абсолютный сектор 18 (при 17 секторах на трек его адрес равен 1/0/1).
Хвост бутового вируса может располагаться в разных местах, например: в кластерах, отмеченных на диске как сбойные и тем самым исключенных из дальнейшего распределения (псевдосбойные кластеры); в последних физических секторах дискеты или винчестера, поскольку они обычно всегда свободны (при этом вирус может не отмечать их как занятые, предполагая, что его никто не затрет); в неиспользуемых блоках FAT, главного каталога или одного из подкаталогов; на дополнительных дорожках дискеты или винчестера (40 и последующие дорожки для 360К дискет).
Положение хвоста в большинстве случаев можно определить глобальным контекстным поиском по дискете или винчестеру (исключением является случай использования для хвоста дополнительных дорожек на дискете или винчестере).
Для всех бутовых вирусов механизм заражения однотипен. Когда MS DOS загружается с зараженного диска, бутовый вирус получает управление и сначала копирует себя в старшие адреса памяти. Затем он уменьшает размер памяти, заменяя значение в слове 0:413h (40:13h), которое можно получить, вызвав системную функцию int 12h, с тем, чтобы защитить резидентную часть вируса, и 13h с тем, чтобы перехватывать обращения к диску. Таким образом, при любом обращении к диску управление получает обработчик этого прерывания, составляющий основную часть тела вируса. После этих действий вирус запускает стандартный системный загрузчик, который загружает IBMBIO.COM и IBMDOS.COM (или IO.SYS и MSDOS.SYS), т.е. происходит стандартная загрузка системы.
Получив управление по прерыванию по чтению, вирус анализирует, относится оно к дискете или к винчестеру. Если это прерывание относится к дискете, то сначала вирус проверяет, заражена уже данная дискета или нет. Для этой цели считывается бут-сектор и проверяется его содержимое. Если дискета еще не заражена, то вирус заражает дискету, а затем обрабатывает команду READ. В случае, если дискета уже заражена, вирус сразу переходит к обработке команды READ; так же он поступает в случае, если дискета защищена от записи.
Что касается места, в котором бутовый вирус прячет свой хвост, то, как было отмечено выше, оно различается от вируса к вирусу. Наиболее часто бутовые вирусы размещают свой хвост в свободном кластере(ах), помечаемом как сбойный. Последнее необходимо для того, чтобы занятый вирусом кластер(ы) не был использован MS DOS при создании нового файла и, вместе с тем, является неплохим методом маскировки, поскольку пользователи обычно плохо представляют структуру диска и не следят за количеством сбойных кластеров на нем.
Еще раз подчеркнем, что бутовые вирусы инфицируют любые дискеты, а не только системные, по скольку с несистемной дискеты также может выполняться попытка загрузки MS DOS. Чаще всего такая ситуация возникает после зависания операционной системы. Если при перезагрузке инфицированная дискета окажется в "готовом" дисководе А, то естественно, загрузка будет сначала выполняться с нее. В этом случае программа начальной загрузки считывает зараженный бут-сектор и передает ему управление. Вирус загружает себя в оперативную память и имитирует сообщение, выдаваемое в этом случае стандартным загрузчиком:
Non system disk
При этом, если пользователь откроет дисковод с дискетой и нажмет клавишу Enter (Ввод), то вирус останется в памяти, заразит винчестер и в дальнейшем будет заражать все вставляемые дискеты, к которым производится хотя бы одно обращение (достаточно команды DIR). Поскольку все бутовые вирусы перехватывают прерывание 13h, они обычно конфликтуют с драйверами, поддерживающими нестандартные форматы (например, 720K). В лучшем случае при этом происходит зависание системы или выдача сообщения о делении на нуль. В худшем случае операционная система остается работоспособной, на дискету что-то пишется, но потом ничего прочитать с нее нельзя. Особое внимание стоит обратить на тот факт, что некоторые бутовые вирусы перехватывают прерывание с клавиатуры и могут пережить в оперативной памяти мягкую перезагрузку (т.е. перезагрузку с помощью нажатия клавиш Ctrl-Alt-Del). Из выявленных в CCCР вирусов к этому типу относится вирус WM-1F.JSH (Joshy).
Как уже отмечалось, голова бутового вируса всегда находится в бут-секторе, и для контроля дискет на зараженность необходимо просмотреть содержимое бут-сектора. Поскольку подавляющее большинство дискет не является загружаемыми, целесообразно вакцинировать их с помощью специальной бутовой вакцины VitaminB, разработанной А.В.Сессой (cм. Софтпанорама, т.3, No. 2).
Следует отметить, что число известных чисто бутовых вирусов намного меньше, чем файловых и, кроме того, скорость их размножения ниже (число дискет заведомо меньше, чем количество файлов на них). В целом, заражение "чистым" бутовым вирусом является признаком беспечности и недостаточной квалификации пользователя в большей степени, чем заражение файловым вирусом. При соблюдении приведенных выше несложных рекомендаций его можно полностью исключить.
Поскольку резкой границы между файловыми и бутовыми вирусами нет, некоторые вирусы являются смешанными и заражают как файлы, так и бут-сектор или MBR. Такие "гибридные" вирусы имеют более высокую инфицирующую способность, чем "чистые" типы, однако выявляются легче, чем файловые вирусы, поскольку имеют фиксированное место заражения на винчестере, целостность которого обычно контролируется специальной программой, например, SysTest Я.У.Гринфельдса (cм. Софтпанорама, т.2, No. 10). Помимо зараженных исполняемых файлов, они могут переноситься на дискетах, содержащих только файлы данных, как обычные бутовые вирусы. Кроме того, загружаясь из MBR, легче обойти резидентные средства контроля, поскольку инсталляция вируса проходит на "чистой" машине.
Операционная система MS DOS, отличающаяся практически полным отсутствием защиты от несанкционированных действий, облегчает разработку компьютерных вирусов. Однако важно понимать, что компьютерные вирусы не являются программами, использующими ошибки или недостатки конкретной операционной системы. Для обеспечения своего функционирования вирусу достаточно лишь нескольких вполне обычных операций, используемых большинством нормальных программ. Поэтому принципиально не может существовать универсальный метод, защищающий операционную систему от распространения любого вируса. Тем не менее, можно существенно затруднить задачу создания вируса, применяя специальные методы как в самой операционной системе, так и используя дополнительные резидентные и нерезидентные средства защиты.
Простейшим средством защиты от вируса является программа, позволяющая составить список зараженных программ. Мы будем называть такую программу детектором. В качестве детектора могут использоваться и имеющиеся программы, способные выполнять поиск строки в файле или, желательно, в файлах на заданном диске или каталоге. Детектор может быть и резидентным. В этом случае после загрузки программы он проверяет ее на зараженность и, только если вирус не обнаружен, передает ей управление.
Вторым и наиболее распространенным средством защиты от вирусов являются так называемые фаги -- программы, "выкусывающие" вирус из зараженной программы и тем самым восстанавливающие ее в виде, близком к первоначальному. Операция "выкусывания" не всегда бывает успешной. Фаги также могут быть резидентными, однако из-за значительного объема резидентные фаги встречаются редко.
Третьим видом антивирусных программ являются резидентные программы, контролирующие подозрительные действия запускаемых программ и блокирующие их либо "молча", либо выдавая сообщение пользователю, который может разрешить действие или запретить (в последнем случае программа, предпринявшая опасное действие, скорее всего будет завершена аварийно). Будем называть такие программы сторожами. При этом дисковые драйверы, обеспечивающие возможность сегментации винчестера и присваивания отдельным разделам статуса READ ONLY, можно рассматривать как специальную разновидность сторожей.
Четвертый тип -- это программы-ревизоры, которые подсчитывают контрольные суммы и другие параметры файлов и сравнивают их с эталонными. Последние обычно хранятся в отдельном файле. Этот вид контроля представляется наиболее надежным, т.к. при отсутствии в оперативной памяти резидентного компьютерного вируса позволяет выявить все измененные программы независимо от причины, вызвавшей эти изменения. Подобно остальным типам программ, ревизоры могут быть резидентными. Последние загружают в память программу, подсчитывают ее контрольную сумму и, если она совпадает с записанной в специальном поле файла или элемента каталога данного файла, то передают ей управление. В противном случае выдается предупреждающее сообщение, и выполнение программы блокируется. Следует отметить, что если записать зараженную программу в файловую систему, все остальные файлы которой систематически контролируются ревизором, то наличие вируса может быть выявлено по заражению других программ для большинства, но не для всех типов вирусов. Поэтому очень важно, чтобы в момент запуска программы-ревизора было достоверно известно, что в оперативной памяти нет резидентного вируса. Этого можно достичь, загрузившись с эталонной, защищенной от записи, дискеты или разместив все компоненты операционной системы в разделе винчестера, имеющего статус READ ONLY.
И, наконец, наиболее изощренным типом антивирусных программ являются так называемые вакцины. Подобно естественным вакцинам, они изменяют среду функционирования вируса таким образом, что он теряет способность к размножению. Вакцины могут быть пассивные или активные.
Пассивная вакцина представляет собой пакетную программу, которая за один вызов обрабатывает специальным образом файл или все файлы на диске либо в каталоге. Обычно при такой обработке проставляется признак, который вирус использует для того, чтобы отличить зараженные программы от незараженных. Например, некоторые вирусы дописывают в конец зараженных файлов определенную строку (скажем, "MsDos"). Если искусственно дописать в конец всех программ эту строку, то такие программы не будут заражаться вирусом, поскольку он будет считать, что они уже заражены. Обработанная таким образом программа является вакцинированной против данного вируса, причем операция вакцинации является обратимой: когда опасность заражения будет ликвидирована, строку можно из файла удалить. Другие вирусы проставляют в поле даты заражаемых программ значение секунд, равное 62 (MS DOS допускает запись такого явно нереального значения). Вакцина может проставить этот признак у всех выполняемых программ, которые тем самым будут защищены от заражения данным типом вируса. В этом случае вакцинирование является необратимым в том смысле, что восстановить первоначальное значение секунд не удастся, хотя они, конечно, могут быть сброшены.
Активные вакцины являются резидентными программами, действие которых основано на имитации присутствия вируса в оперативной памяти. Поэтому они обычно применяются против резидентных вирусов. Если такая вакцина находится в памяти, то когда при запуске зараженной программы вирус проверяет, находится ли уже в оперативной памяти его копия, вакцина имитирует наличие копии. В этом случае вирус просто передает управление программе-хозяину, и его инсталляция не происходит. Простейшие вакцины представляют собой выделенный и слегка модифицированный (лишенный способности к размножению) вирус. Поэтому они могут быть оперативно изготовлены -- быстрее, чем программы-фаги. Более сложные вакцины (поливакцины) имитируют наличие в оперативной памяти нескольких вирусов.
Конечно, приведенный список не исчерпывает всего многообразия антивирусных программ, хотя и охватывает основные их разновидности. Каждая из антивирусных программ подобна узкому специалисту в определенной области, поэтому оптимальной тактикой является комплексное применение нескольких типов антивирусных средств. Список отечественных антивирусных средств, распространяемых бесплатно и опубликованных в бюллетене Софтпанорама, приведен в прил. 3.
Следует различать два основных действия (фазы), выполняемые компьютерным вирусом: размножение и проявление. Размножение обычно является первым и обязательным действием вируса при получении им управления. Фаза проявления, на которой выполняются несанкционированные действия, может чередоваться с размножением, начинаться через определенный (инкубационный) период или при сочетании некоторых условий. Она может заключаться в изощренных визуальных или звуковых эффектах, включать или исключительно состоять из нанесения повреждений файловой системе. Повреждения могут быть массированными, когда, например, стирается FAT и другие системные блоки, или наоборот, распределенными, когда довольно часто выполняются небольшие, трудно обнаруживаемые повреждения. У ряда вирусов фаза проявления отсутствует, т.е. помимо размножения они никаких несанкционированных действий не выполняют. В то же время любой вирус обладает рядом побочных эффектов, которые не были предусмотрены при создании вируса, но которые фактически относятся к его проявлениям. Наиболее частым побочным эффектом является зависание операционной системы или потеря работоспособности некоторых (чаще всего резидентных) программ. Другим важным побочным эффектом является появление некоторых "необъяснимых" сообщений операционной системы. Например, если при попытке запуска программы с защищенной дискеты появляется хорошо знакомое любому пользователю MS DOS сообщение Abort, Retry..., то это должно настораживать.
Наряду с указанными действиями, вирус может обладать определенной латентной фазой, в течение которой никаких действий по своему размножению или проявлению не предпринимается. Латентная фаза может быть обусловлена определенным временным периодом (например, определенным месяцем или годом), конфигурацией (например, вирус может активизироваться только при попадании на винчестер) или аппаратными особенностями (например, только на клонах IBM PC).
Длина пути от первоначально зараженной программы до программы, в которой этот вирус был впервые обнаружен, может быть довольно большой. Практика показывает, что обычно в качестве первичного носителя вируса выступает популярная игровая программа или новая версия популярного программного продукта. Вопросы использования программных средств, затрудняющих или делающих невозможным размножение вируса, рассматриваются ниже.
Как уже указывалось выше, структурно компьютерный вирус можно представить состоящим из двух частей: головы и хвоста.
Поскольку голова вируса так или иначе должна получить управление, "среда обитания" головы компьютерного вируса может располагаться только в прямо или косвенно исполняемых программах. Не следует бояться, что вирус может быть перенесен через файл данных. Применительно к MS DOS для получения управления вирус должен встроить свою голову в загрузочные модули, такие как СOM-файлы, EXE-файлы, оверлейные фазы сегментированных программ (это наиболее распространенный случай и соответствующий тип вирусов будем называть файловыми); бут-сектор (этот случай также встречается достаточно часто и соответствующие вирусы будем называть бутовыми); MBR -- таблицу разделов винчестера (фактически это частный случай предыдущего и такая стратегия заражения может использоваться только применительно к винчестеру, т.е. комбинироваться с предыдущей); драйвер; объектный модуль; библиотеку компилятора; BAT-файл; исходный текст программы на алгоритмическом языке (в расчете на его компиляцию); промежуточный код некоторого достаточно распространенного интерпретируемого языка, например dBase или Clipper. Поэтому необходим постоянный контроль за целостностью информации, содержащейся в элементах перечисленных типов. Проще всего этот контроль выполнять с помощью специальной программы-ревизора.
Что касается места, где вирус может расположить свою голову, то для существующих вирусов характерны следующие: область стека некоторой системной программы (RC-0-346.LEH); начало, конец или середина исполняемого файла; бут-сектор; MBR.
Поскольку хвост вируса не должен получать управление непосредственно, количество мест его расположения существенно больше, и здесь многое зависит от изобретательности автора вируса. Сегментация в настоящее время характерна только для бутовых вирусов, и применительно к ним можно отметить следующие варианты расположения хвоста: один или группа кластеров, помеченных как сбойные (самый распространенный вариант); неиспользуемые блоки нулевой дорожки винчестера после MBR; неиспользуемые блоки системных таблиц, таких как FAT, главный каталог или один из подкаталогов и т.д.; специально созданный файл с атрибутами HIDDEN и/или SYSTEM; "хвосты" последних, заполненных частично, кластеров имеющихся файлов (например, системных); "дополнительные" дорожки на дискете или винчестере (например, 40 и более старшие дорожки дискеты).
Для файловых вирусов сегментация может использоваться для размещения хвоста в неиспользуемых секторах последнего кластера файла, однако такой способ в настоящее время применяется только в вирусе RC-0-512.DAV и, как оказалось, обладает существенными недостатками. В частности, команда COPY MS DOS не копирует информацию из неиспользуемых секторов последнего кластера. В результате при копировании зараженного файла хвост вируса теряется и скопированная программа становится неработоспособной (при этом вирус сохраняет работоспособность и запуск такой "урезанной" программы приведет к его успешной инсталляции в оперативной памяти).
Существуют определенные признаки, указывающие на поражение программы или диска вирусами. Помимо очевидных, связанных с демонстрационным эффектом, характерным для данного вируса, к ним можно отнести следующие: изменение длины командного процессора (COMMAND.COM); выдача сообщений типа "Write protect error" при чтении информации, при загрузке программ с защищенных от записи дискет; изменение длины и/или даты создания программы (их рекомендуется просматривать с помощью Norton Commander или другой оболочки, непосредственно интерпретирующей содержимое каталогов); программа выполняется медленнее, чем обычно; возрастание времени загрузки, зацикливание при загрузке; необъяснимые обращения к дискетам или файлам на защищенных разделах винчестера; потеря работоспособности некоторых резидентных программ или драйверов; аварийное завершение ранее нормально функционировавших программ; необъяснимые зависания или перезагрузки системы; уменьшение объема системной памяти или свободной памяти после загрузки; резкое уменьшение доступной дисковой памяти, хотя файлы не добавлялись и не удалялись; появление новых сбойных кластеров, дополнительных скрытых файлов или других изменений файловой системы (выявляются запуском CHKDSK или другой подходящей утилиты);
Конечно, приведенные признаки носят эвристический характер и могут наблюдаться на "здоровых" компьютерах по причинам, совершенно не связанным с вирусами. Тем не менее, появление каких-то аномалий должно сразу настораживать пользователя. Если после перезагрузки с защищенной дискеты некоторые из этих признаков исчезают, то есть смысл провести более или менее полное тестирование с помощью программы ревизора (только не при загруженной с винчестера и возможно зараженной операционной системе), а также визуально сравнить содержимое бут-сектора и таблицы разделов с эталонными. Полезно также просмотреть дамп программы (с помощью Norton Commander, PC Shell или другой подходящей утилиты). Если в конце программы имеются подозрительные текстовые строки или, наоборот, нет ни одной текстовой строки, то такая программа заслуживает дополнительного исследования.
Как уже указывалось, компьютерные вирусы являются одной из разновидностей компьютерного вандализма. Вызываемые вирусами эффекты могут быть классифицированы по следующим основным категориям:
Наносимый вирусами ущерб может иметь катастрофический характер (например, уничтожение информации на винчестере) в сочетании с длительным "инкубационным периодом" или, наоборот, вирус может наносить мелкие, трудно обнаруживаемые повреждения данных, выполняемые достаточно часто. Последние гораздо труднее обнаружить и поэтому, в отличие от распространенного мнения, они намного опаснее массированного разрушения данных.
Наиболее уязвимой частью файловой системы MS DOS является FAT (таблица размещения файлов). Если FAT разрушен, то MS DOS не в состоянии определить местонахождение того или иного файла, хотя сами файлы не повреждены. Вирус может также выполнять форматизацию некоторых участков диска, содержащих системные данные. Поэтому необходимо достаточно часто дублировать управляющие данные файловой системы на другой, заранее известный участок диска или дискету. Для этой цели, в частности, можно использовать Norton Utilities, а также Mirror из пакета PC Shell.
На компьютерах типа АТ данные о конфигурации системы (тип установленного винчестера и др.) хранятся в небольшой энергонезависимой памяти (CMOS). Уничтожение содержимого CMOS-памяти приводит к невозможности загрузиться с винчестера. Восстановление CMOS требует знания подробных технических данных о винчестере. Поэтому этот тип памяти также является потенциальным объектом атаки вируса.
Как уже отмечалось, наиболее опасны как раз не катастрофические повреждения винчестера или дискет (при адекватном архивировании это означает максимум потерю одного дня работы), а мелкие, незаметные изменения файлов данных. В частности, известен вирус, который ищет файлы типа DBF, и, найдя внутри файла числовое поле, меняет местами две рядом стоящие цифры.
По степени разрушительности вирусы можно условно разделить на два типа: "иллюзионисты" (RC-1701.CAS, RCE-1805.TP, RСE-2885.TP, Bx1-1C.PIN) и "вандалы" (C-648.VEN, RСE-1800.DAV, Dx3-E9, RC-496). Основным приоритетом при конструировании "иллюзионистов" является демонстрация какого-нибудь экзотического звукового (например, вирусы RCE-1805.TP, RCE-2885.TP) или визуального эффекта типа бегающего шарика (например, вирус Bx1-1C.PIN), осыпающихся букв (вирус RC-1701.CAS) и т.д. В качестве основного приоритета пpи констpуиpовании "вандалов" является обеспечение как можно более скрытого размножения, с тем чтобы фазе разрушения (детонации), уничтожающей и зараженный файл (дискету) с данным экземпляром вируса (при разрушении таблицы FAT, форматизации и других подобных действиях), предшествовало определенное число незамеченных размножений. Психологически примитивный вандализм типа разрушения файлов или форматирования диска, наверное, в большей степени присущ примитивным личностям, страдающим комплексом неполноценности, но неспособным на конструктивную деятельность. В то же время, если на начальном этапе вирусы-вандалы, как правило, не демонстрировали нетривиальных визуальных или звуковых эффектов, то в настоящее время граница между этими двумя типами вирусов практически исчезла и уже не может служить косвенным признаком типа вируса. Это связано с тем, что обилие литературы по программированию IBM PC позволяет заимствовать готовую программу создания достаточно сложных эффектов.
Хотя компьютерные вирусы могут неограниченное время храниться в различного рода архивах, время их жизни ограничено временем жизни соответствующей операционной системы. При этом сложные, изощренно написанные вирусы, как правило, используют особенности конкретной версии операционной системы и при смене версии часто теряют работоспособность. В то же время, "простейшие" вирусы могут сохранять работоспособность в достаточно большом диапазоне версий операционной системы.
Даже "полностью уничтоженные" вирусы могут сохраниться в каком-нибудь архивном файле и случайно или умышленно "реанимироваться" через много месяцев или даже лет после их первоначального обнаружения и уничтожения. Из этого следует важный вывод, что после первого обнаружения и уничтожения вируса следует ожидать повторных заражений. Таким образом, после появления определенного вируса необходимы специальные меры по предотвращению повторных заражений. Здесь можно двигаться в двух направлениях: во-первых, постараться найти первоисточник заражения, и во-вторых, разработать или установить программы, затрудняющие (сторожа) или делающие невозможным (вакцины) размножение вируса. Опасность повторного заражения особенно велика, если дезинфекция проведена наспех, без тщательной проверки всего объема используемых программ и имеющихся архивов, а также если доступ к компьютеру имеют случайные или неквалифицированные пользователи. Как уже отмечалось выше, особую опасность в этом смысле представляют любители компьютерных игр.
Компьютерные вирусы являются высокоспециализированными программами и, как таковые, сильно зависят от среды своего функционирования. Наиболее важной характеристикой среды распространения вируса является используемая операционная система.
При этом, чем изощреннее и опаснее написан вирус, тем меньше шансов у него остаться работоспособным на более поздней версии MS DOS или альтернативной операционной системе. Ведь для того, чтобы сохранить приемлемые размеры, вирусу необходимо быть жестко ориентированным на особенности своей среды, а общий закон приспособления гласит, что чем больше определенный вид приспособлен к обитанию в той или иной среде, тем меньше он способен перенести ее изменение.
Версия 3.3 MS DOS является, по-видимому, наиболее распространенной среди пользователей персональных компьютеров, совместимых с IBM PC или PS/2, и именно на нее, в основном, ориентируются техно-крысы. Указанная версия "в чистом виде" полностью лишена средств регламентации доступа к файлам. Интересно отметить, что еще в версии 3.0 операционной системы CP/M можно было защитить файлы и диски от записи или чтения с помощью паролей. Поэтому вызывает сожаление выжидательная позиция фирмы Microsoft, которая могла бы при выпуске очередной версии MS DOS легко закрыть хотя бы самые "зияющие" дыры в MS DOS (отсутствие проверки контрольной суммы файла перед передачей ему управления, возможность сброса атрибута READ ONLY без подтверждения пользователя, люки -- различные "нелегальные" способы получения адреса прерывания 13h и др.). Возможно, здесь нельзя исключить и определенный политический расчет на то, что сложившаяся ситуация будет способствовать уменьшению количества случаев незаконного копирования коммерческого программного обеспечения, которое существенно уменьшает доходы фирмы, а также переходу пользователей к более совершенной и снабженной средствами регламентации доступа к файлам операционной системе OS/2. Последняя из-за повышенных требований к оборудованию (рекомендуется наличие четырех или более мегабайтов оперативной памяти) пока не пользуется ощутимым успехом.
Следует отметить, что мнение о "полезности" вирусов для разработчиков системного программного обеспечения было высказано официально Эндрю Золтовским -- директором фирмы Novell UK Ltd, который в интервью корреспонденту советско-польского журнала "Компьютер" заявил: "Сейчас стало ясно, что великолепным средством борьбы с нелегальными копиями стали компьютерные вирусы, распространяемые чаще всего с бесплатным (читай "ворованным") программным обеспечением" [Компьютер, 1990, No. 2, c.5]. Такая позиция не только не этична, но и по существу опасна для самой фирмы, "исповедующей" такую философию. Ведь помимо разработчиков коммерческого программного обеспечения существуют разработчики бесплатно распространяемого (Freeware) и субсидируемого пользователями (Shareware) программного обеспечения, которые страдают из-за падения интереса к их продуктам в связи с угрозой заражения. Да и для разработчиков коммерческого программного обеспечения опасно рассматривать вирусы как средство увеличения доходов от продажи своего программного обеспечения: отсюда только шаг к борьбе с конкурентами с помощью вирусов, ориентированных на конкретный программный продукт, скажем, версию 2.15 сетевой операционной системы Advanced Netware. Ведь наверняка есть люди, считающие, что положение фирмы Novell на рынке не соответствует действительному качеству ее продуктов и препятствует более прогрессивным решениям "занять свое место под солнцем".
Так или иначе, но MS DOS в целом показала себя не только "user friendly" ("дружественной по отношению к пользователям"), но и "virus friendly" ("дружественной к вирусам"), а версия 3.3 стала своего рода базовой системой для техно-крыс. И такое положение, по-видимому, фирму устраивает: в версии 4.0 не предпринято никаких специальных мер в указанном направлении. Впрочем, любые изменения в операционной системе снижают количество вирусов, работоспособных в этой измененной системе, поскольку многие вирусы используют особенности версии 3.3, не сохранившиеся в версии 4.0. Появление версии 5.0 MS DOS является еще одним шагом, уводящим от версии 3.3. Указанная версия обладает возможностью загружать операционную систему и драйверы в расширенную память (Extended Memory), которая в версиях 3.x чаще всего используемую как виртуальный диск. Тем самым объем свободной оперативной памяти увеличивается до 610-620K), делая переход на эту версию весьма привлекательным.
Любая из этих новых версий MS DOS более "вирусоустойчива", чем MS DOS 3.3, поскольку перекрывает некоторые недокументированные люки, через которые можно "незаконно" получить адреса важнейших прерываний и другую жизненно важную для вирусов информацию.
Следует отметить, что в настоящее время появилось несколько альтернативных, "полностью совместимых" с MS DOS операционных систем, обеспечивающих ряд дополнительных возможностей защиты информации от несанкционированного доступа, включая заражение программ вирусами или различного рода попытки искажения или уничтожения файлов. Из них следует отметить DR DOS фирмы Digital Research, которая, будучи "более совместимой с MS DOS, чем сама MS DOS" (т.е. существенно реже зависающей, что особенно важно при работе на отечественных ПЭВМ типа ИСКРА 1030), обеспечивает лучшие утилиты и возможность защиты файлов и каталогов. Другой интересной альтернативной разработкой является Hi DOS.
Операционная система Desqview и Desqview 386 компании Quarterdeck Office Systems (США) является многозадачной операционной системой, полностью совместимой с MS DOS. В ее состав входит драйвер для работы с расширенной памятью QEMM, позволяющий подобно MS DOS 5.0 загружать резидентные программы, драйверы и другие ресурсы DOS в расширенную память одновременно с работой основной программы в реальном или защищенном режиме. Desqview версии 2.3 позволяет загружать и выполнять программы, написанные для MS Windows, например Word for Windows, в одном из окон Desqview. На текущий момент Desqview является самой гибкой многозадачной средой для персональных компьютеров, имеющих два и более мегабайтов оперативной памяти.
Ну и, наконец, следует упомянуть версию 3.0 операционной системы Windows фирмы Microsoft, которая подобно Desqview обеспечивает многозадачный режим работы. Как и Desqview, она перспективна для AT/386 (компьютеров на базе микропроцессора 80386), имеющих два и более мегабайтов оперативной памяти, хотя может использоваться и для AT/286 c платой расширенной (EMS LIM4.0) оперативной памяти. В этой версии MS Windows фирме удалось в значительной степени устранить недостатки предыдущих версий и, несмотря на "монстрообразность", она работает быстро и устойчиво.
Конечно, вирусы, рассчитанные на MS DOS, будут неработоспособны для OS/2. В этом смысле новая операционная система предпочтительнее. Однако представляется весьма вероятным быстрое появление новых штаммов, адаптированных к OS/2. Сдерживающим фактором, несомненно, послужит наличие средств регламентации доступа к файлам, однако неясно, насколько трудно эту защиту обойти. В то же время более сложная и более мощная операционная система не обязательно является и более вирусобезопасной. Простота MS DOS приводит к тому, что все ее закоулки изучены, и разработчику вируса придется проявить незаурядную изобретательность, чтобы придумать что-то новое. В OS/2 таких закоулков неизмеримо больше, подробные сведения о ее внутренней структуре отсутствуют, да и сама она занимает в памяти намного больше места. Это создает значительное "жизненное пространство" для хорошо замаскированных вирусов. В этом плане увеличение сложности следует рассматривать как недостаток.
Аппаратные средства являются, наряду с операционной системой, второй важной составляющей среды функционирования вирусов. Наибольшее значение имеет тип используемого процессора и тип винчестера. В случае вирусов-вандалов, использующих низкоуровневое форматирование, соответствующие подпрограммы часто рассчитаны только на MFM -- наиболее распространенный тип контроллеров винчестеров и могут оказаться неработоспособными для контроллеров других типов.
В настоящее время наиболее распространенным центральным процессором является 80286 и, естественно, большинство компьютерных вирусов ориентированы именно на него. Поэтому компьютеры на базе процесора 80386 в настоящее время являются более вирусозащищенными: многие вирусы на них просто виснут. С другой стороны, поскольку процессор 8086 выходит из употребления, появились вирусы, неработоспособные на этом процессоре.
Изготовители компьютерного оборудования не так активно включились в "охоту на вирусы", как изготовители программного обеспечения. Тем не менее ряд продуктов доведен до уровня коммерческих и продается потребителям. Предлагаемые аппаратные средства защиты, как правило, представляют собой специальные платы. Однако в конце 1988 г. фирма American Computer Security Industries, Нэшвилл, шт. Теннеси, США, представила "первый надежно защищенный противовирусный компьютер", класса PC AT, названный "Immune System" ("Иммунная система"). Cистема якобы обладает иммунитетом от вирусной атаки, а также набором средств, предохраняющих MS DOS и BIOS от несанкционированных изменений (Computer Age, январь 1989 г., см. также Personal Computing, 1989, No. 5, р.92).
Из зарубежных плат, которые повышают степень защищенности компьютера, отметим плату Immunetec PC фирмы Зевс (Zeus Corp.), стоимостью 295 долларов. Эта плата тестирует бут-сектор и системные файлы MS DOS на наличие несанкционированных изменений, а также позволяет запретить загрузку системы с дискеты, установить паспорта и уровни доступа к винчестеру. Плата совместима с сетями Novel, 3Com и IBM Token Ring [Personal Computing, 1989, No. 5, р.92]. Аналогичная плата Trispan фирмы Микроникс (Micronics Inc.) стоит 895 долларов.
Из советских разработок интерес представляет плата Port Watch Card донецкой фирмы БИС (см. прил.3), совместимая с популярными сетями. Работая вместе с разработанной А.Г.Водяником резидентной программой 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 платы.
Распространение дешевых компьютерных модемов привело к тому, что телефонные сети стали использоваться тысячами, если не десятками тысяч как платных, так и бесплатных банков данных. Последние часто называют BBS. Одни BBS организуются группами пользователей как центры обмена сообщениями и программным обеспечением. Другие организуются частными лицами просто как хобби. Последнее время наблюдается увеличение количества BBS, финансируемых разработчиками программного и аппаратного обеспечения. Они играют важную роль консультационных центров для соответствующих групп пользователей.
Чтобы организовать BBS, нужен персональный компьютер, модем, хотя бы одна телефонная линия, немного специального программного обеспечения и один человек -- оператор BBS, часто называемый SYSOP (SYStem OPerator -- оператор системы). Поскольку на Западе эти требования легко удовлетворяются, BBS стали своего рода "парковыми скамейками" эпохи НТР. Конечно, качество банка данных и программ данной BBS зависит, в основном, от уровня квалификации и преданности делу его SYSOPа. Отдельные BBS обычно служат узлами сети. Крупнейшей в мире любительской сетью ПЭВМ является FidoNet, несколько узлов которой работает в СССР (в Москве и Таллинне).
За рубежом ранние системы предупреждения о новых вирусах основывались на широко разветвленной сети BBS (многие университетские компьютерные центры организовали свои BBS, которые зарекомендовали себя хорошим источником информации о местных вирусах и их штаммах).
Кроме бесплатных BBS, на Западе распространены и коммерческие их аналоги -- большие онлайновые информационные системы, такие как CompuServe. Подключение к ним платное, зато объем и качество информации выше. Например, CompuServe предлагает мини-BBS по группам интересов (так называемые SIG -- special interest groups). Среди них есть и группа по борьбе с вирусами.
В некоторых западных популярных изданиях высказывалась мысль о том, что вирусы якобы особо опасны при наличии компьютерных сетей. Эта идея была некритически подхвачена и рядом отечественных авторов, запугивающих читателей этой опасностью. Однако дело обстоит как раз наоборот: компьютерные сети создают беспрецедентную возможность обмениваться информацией, а существует древняя и мудрая поговорка "Кто предупрежден, тот вооружен". Поэтому при наличии сетей опыт борьбы конкретного пользователя с появившимся вирусом становится достоянием всех заинтересованных пользователей на следующий день, а не через месяц или год, как это часто бывает у нас. В частности, история борьбы с вирусом Морриса показала, что даже в этом случае, когда удар был фактически направлен по самой сети, функционирование последней явилось важным фактором быстрого и полного решения проблемы прекращения его распространения. Поэтому расписывание ужасов сетевых вирусов при практически полном отсутствии сетей, как раньше запугивание генетикой и ПЭВМ (в середине 80-х в Литгазете была опубликована пространная статья, в которой на полном серьезе доказывалось, что социалистическому обществу в связи с его коллективистским характером ПЭВМ не нужны), является отражением нашей отсталости и консервативности. Перефразируя приведенные в качестве эпиграфа слова А.Азимова, можно сказать, что "Опасно не наличие сетей, а их отсутствие".
Конечно, компьютерные сети, как любое технологическое новшество, создают и новые возможности для вандализма. Сетевые вирусы или точнее репликаторы являются примером использования этих новых возможностей. Однако суммарный эффект не отрицателен, а положителен: наличие сети неизмеримо увеличивает эффективность защиты, создавая возможность "мгновенной" передачи разработанных детекторов, фагов, вакцин. Этот канал по своей эффективности, конечно, не идет ни в какое сравнение с передачей дискет через железнодорожных проводников: эту эрзац-сеть, которой вынуждены пользоваться отечественные программисты.
Следует отметить, что в ряде организаций само появление нового вируса вызывает панику, парализуя работу на несколько дней. При отсутствии специалистов, в процессе борьбы с попавшим вирусом зачастую выполняется огромный объем ненужной работы, например, переформатирование винчестера. В процессе выгрузки и загрузки информации пользователи сами могут в спешке уничтожить важную информацию.
Поскольку в таких организациях руководство обычно слабо представляет себе принципы действия и эффекты, вызываемые этим классом программ, у программистов появляется возможность использовать вирусы как "отходной вариант" для объяснения каких-то трудностей или причин срыва сроков. Варианты объяснений могут варьироваться от самых примитивных ("Я все сделал(а), а потом пришел вирус и все уничтожил"), до вполне квалифицированных.
Далеко не все повреждения файловой системы, отказы винчестера или оборудования вызываются вирусами. Например, некоторые типы винчестеров имеют довольно низкую надежность и "сыпятся" без всякого вмешательства вирусов. Имеются компьютеры, которые можно загрузить, только дав им прогреться в течении получаса. Автору приходилось работать на дефектном венгерском дисководе ПЭВМ ЕС 1840, который не только фрезеровал дискеты, но и при записи иногда стирал FAT. Причем восстановить поврежденный FAT с помощью известной утилиты Norton Disk Doctor не удавалось. Общеизвестно, что многие отечественные компьютеры и без всяких вирусов регулярно зависают.
В то же время имеется тенденция атрибутировать любое повреждение данных присутствием вируса. Это по сути один из вариантов мании ("вирусомания"), которая подобно печально известной шпиономании ("шпионы под каждой кроватью") имеет социально-психологическую этиологию. Первыми пользу из "вирусомании" научились извлекать электронщики: если компьютер барахлит, а им лень разбираться, то в ход пускается неотразимый аргумент: "Это у вас какой-то вирус".
Еще одним вариантом вирусофобии является чрезмерная доверчивость по отношению к диагностике, выдаваемой антивирусными программами, в частности достаточно примитивным полидетектором Scan. Например, после публикации в бюллетене Софтпанорама программы Talker на автора обрушился шторм звонков, связанный с тем, что ее разработчики решили сыграть с пользователями довольно глупую шутку, троянизировав свою программу так, чтобы она опознавалась Scan как зараженная довольно экзотическим и давно вымершим вирусом (Sylvia -- Сильвия или Holland Girl -- Голландская девушка). Дело здесь в том, что программа Talker заменяет стандартное сообщение операционной системы на одно из нескольких, выбираемых случайно сообщений, которые в некоторых сочетаниях весьма смахивают на проявление вируса.
Одним из проявлений вирусофобии следует считать слухи о вирусах, повреждающих оборудование. Вопрос о возможности повреждения оборудования автору задавали практически на каждой прочитанной им лекции. Дейcтвительно, хотя большинство повреждений, наносимых вирусом, относятся к данным, возможны также повреждения оборудования. Например, можно повредить участок люминофора ("выжечь пятно") на монохроматическом мониторе, используя особенности схемы управления. Однако для цветного монитора это сделать невозможно. Ходят упорные слухи о каких-то коварных вирусах, якобы вводящих в резонанс головки винчестера. К сожалению, эти слухи проникают и в "околовирусные" публикации [Основский90].
Такая мифотворческая тенденция всегда возникает в связи с любым малоизученным и потенциально опасным явлением. Следует учитывать также благоприятный для такого рода слухов социальный фон: сейчас в обществе оживился интерес ко всякого рода магии и "чудотворцам". Некоторые из них ухитряются даже заговаривать воду по телевизору. По сравнению с водой, заговоренной по телевизору, вирус, прожигающий дыру в экране или даже в клавиатуре, выглядит предельно правдоподобно. Более того, автор не видит причин, почему многие из классических русских сказок нельзя было бы "модернизировать", сделав одним из персонажей злой компьютерный вирус и соответствующим образом приспособив сюжетную канву. Со временем, когда компьютеры появятся во многих семьях, такие сказки, возможно, будут интереснее ребенку, чем традиционные варианты с Бабой Ягой, Кощеем Бессмертным и добрым молодцем.
Идея о том, что "подобное излечивается подобным", распространенная среди средневековых знахарей, периодически реанимируется применительно к компьютерным вирусам. Она принимает несколько основных форм, которые мы разберем последовательно. Первой по распространенности является идея создания "вируса-защитника" -- вирусоподобной программы защиты. Следует отметить, что эта идея носится в воздухе с момента появления первых вирусов, т.е. примерно с 1984 г. (см. гл.1). Исторически, первые фаги создавались именно как вирусы, охотящиеся на тот или иной вирус. Ничего хорошего из этого не получилось. Опыт показал, что распространение вируса-охотника существенно медленнее, чем вируса, за которым охотятся, и эффективность такой погони невелика.
Эта идея весьма неудачна и в других своих модификациях. Например, часто предлагается вариант "вируса-контролера", который при заражении программы подсчитывает и запоминает ее контрольную сумму. Тогда при запуске зараженной программы вирус подсчитывал бы контрольную сумму файла, из которого она была считана, и при несовпадении сигнализировал бы о заражении. Вообще говоря, отсутствие подобной проверки -- это серьезный дефект MS DOS, и исправлять его стоит именно на уровне операционной системы. Однако тотальное заражение программ вирусом неизбежно ведет к потере работоспособности части программ. Кроме того, заражение всех программ вирусом неизбежно приведет к заметному увеличению размеров программ, поскольку каждой исполняемой программе придется сделать прививку. Если на диске объемом 20M хранится, скажем, 1000 программ и размер прививки составляет 1024 байта, то получается, что в среднем теряется мегабайт дискового пространства. Реально, учитывая квантование дискового пространства по кластерам, эти потери могут оказаться и больше, в особенности, если на диске записано много программ, близких к размеру кластера. Кроме того, процесс поиска очередной "жертвы" не так прост, и будет занимать некоторое время, замедляя загрузку программы. Поэтому закрывать эту "дыру" предпочтительнее с помощью маленькой резидентной программы, перехватывающей прерывание 21h (функцию 4Bh). Возможно, перехват следует выполнить сплайсингом, т.е. врезкой команды JMP в оригинальный обработчик этой команды с тем, чтобы исключить возможность того, что вирус предварительно перехватит прерывание 21h. Кстати, перехватить прерывание 21h вирусу можно просто не дать, как бы он не старался (на этой идее основаны сторожа Check21 и SBM -- см. прил.3). Получив управление, эта "заплатка" должна проверять контрольную сумму. Для COM-файлов достаточно проверить первый блок, а для EXE-файлов -- заголовок и блок, куда передается управление. При этом для COM-файлов контрольную сумму можно хранить в неиспользуемых байтах оглавления, а для EXE -- в соответствующем поле заголовка. Метод подсчета контрольной суммы должен быть параметризуемым. Кстати, аналогичным способом можно закрыть другую "дыру" в MS DOS, связанную с тем, что снятие атрибута READ ONLY не требует подтверждения оператора. При этом можно предусмотреть возможность отключения выдачи запроса с помощью специального, задаваемого пользователем, пароля.
Другой идеей, связанной с поисками "полезных" применений компьютерных вирусов, является автоматическое преобразование программы в какую-то более приемлемую форму. Наиболее часто при этом предлагается автоматическое сжатие программы. Действительно, имеется ряд программ, выполняющих сжатие EXE-файлов, наиболее удачной среди которых является Lzexe, которая обеспечивает экономию порядка 30% на каждом EXE-файле при очень высокой скорости распаковки (практически не увеличивая время загрузки). Идею применить для этой цели вирус высказывал еще Ф.Коэн для обоснования своих работ более 15 лет назад. Теоретически здесь вроде бы "все чисто". Вирус, заражая программы, свертывает их с помощью какого-то метода, а при запуске развертывает. Однако с практической точки зрения эта идея не выдерживает никакой критики. Дело в том, что включаемый в сжатые программы распаковщик должен иметь минимальную длину (330 байтов для Lzexe), что в случае вируса обеспечить невозможно. Более правильным подходом к реализации идеи сжатия информации на диске, если уж добиваться "тотального" ее осуществления, является написание специального дискового драйвера, который, во-первых, не включается в сжатую программу, а, во-вторых, может сжимать не только исполняемые файлы, а и все файлы, помеченные определенным атрибутом. Кстати, такие драйверы были реализованы и успешно применяются. Однако широкое их распространение сдерживает тот факт, что достигаемый эффект составляет порядка 20%, т.е. невелик и не компенсирует все возникающие при этом сложности и неудобства. Более того, для "вируса сжатия" общий эффект может оказаться отрицательным, поскольку на каждой программе вирус должен экономить не менее 12-16К (размер одного кластера, скажем, 4К + собственный размер вируса, который для этого довольно сложного вируса вряд ли составит меньше 8К), что для программ, меньших 64K, т.е. для всех COM-файлов, практически нереально.
Кроме того, если не прибегать к каким-то ухищрениям, то вирусу придется хранить в сжатой программе и достаточно объемную программу упаковки, которая еще больше уменьшает степень сжатия. Ну и, наконец, поскольку часть программ при сжатии теряет работоспособность, то необходим механизм иммунизации, предохраняющий такие программы от заражения.
Конечно, не исключены и какие-то другие возможные приложения "полезного" вируса, однако такая форма коммуникации программ должна учитываться уже при разработке операционной системы, а экспериментирование должно быть ограничено лабораторными экспериментами на новых операционных системах. Возможно, что "вирусоподобные" программы окажутся полезными в каких-то узких областях системного программирования. В то же время автор убежден, что безвредных вирусов для MS DOS, как и для любой операционной системы, ориентированной на широкий круг пользователей, принципиально не существует. По определению, процесс размножения вируса неконтролируем (иначе это, строго говоря, не вирус). При отсутствии противодействия вирус будет "мигрировать" с одного компьютера на другой, попадая туда, где его совсем не ждали. А возникающая в ряде организаций при обнаружении нового вируса паника зачастую наносит больший ущерб, чем сам вирус, парализуя работу на несколько дней. Как бы вирус не был тщательно написан, неизбежно окажется, что он вызывает побочные эффекты типа потери работоспособности части программ, какие-то тонкие взаимодействия с другими резидентными программами. В общем, пользователей ожидают приключения. А ведь лекарство не должно быть опаснее, чем болезнь.
Принципиальной проблемой любой реализации "полезного" вируса является его переносимость. В силу своей природы вирусы сильно зависят от версии операционной системы -- значительно больше, чем обычные программы. Опыт показал, что, если зараженная вирусом программа работоспособна в MS DOS версии 3.3, то она может оказаться неработоспособной в версии 4.0 или даже в версии 3.3 с нестандартным командным процессором. При размножении в среде, отличной от "естественной", вирусы, как правило, вызывают потерю работоспособности некоторых резидентных программ, дополнительные побочные эффекты вплоть до зависания операционной системы. А ведь развитие операционной системы может продолжаться десятилетиями. Получается, что при получении новой версии операционной системы все программы нужно срочно лечить, а затем доставать новый штамм. В общем, и здесь вопросов явно больше, чем ответов.
И, наконец, последний аргумент в пользу ограничения экспериментов по созданию "полезных" вирусов специализированными операционными системами связан с тем, что по определению "полезный" вирус будет распространяться свободно. Тем самым, доступность механизма размножения (центральной части любого вируса) делает его общедоступной базой для совсем небезобидных экспериментов. В частности, он легко может быть превращен в троянскую программу, которая, скажем, защищая от некоторых вирусов, сама периодически стирает FAT.
Накопленный автором опыт изучения вирусов позволяет сделать вывод о том, что "безвредных" вирусов не существует, а эксперименты по их созданию для MS DOS связаны со значительным риском "выпустить джинна из бутылки".
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.IER по предлагаемой ниже классификации), среди которых три: 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), в котором в ряде случаев используются другие названия. Не исключено, что будет третий, четвертый и т.д. Поэтому необходим какой-то менее субъективный и учитывающий нашу информационную изолированность (отсутствие сетей, слабое развитие и низкое качество телефонной связи) подход.
По мнению автора, основным требованием к приемлемой для всех классификации является ее объективность, т.е. классификация должна основываться на фиксированном наборе непротиворечиво измеряемых или наблюдаемых признаков. В идеальном случае эти признаки должны быть выбраны так, чтобы, скажем, два разработчика антивирусных средств, независимо работающих в Киеве и Москве, использовали одно и то же название для одинаковых вирусов и разные названия для разных вирусов. Это обеспечивало бы быстрое выявление новых штаммов вирусов и новых, еще не исследованных, разновидностей. Очевидно, что объективная классификация существенно облегчает систематизацию, распространение и накопление знаний, а также выбор программных средств для борьбы с тем или иным вирусом.
Однако важно не только наличие классификации как таковой, а и принятие ее в качестве стандартной. Уже сейчас отсутствие стандартной классификации приводит к ряду нежелательных эффектов. Во-первых, у разработчиков наблюдается тенденция по-своему называть обнаруженный или сравнительно малораспространенный вирус, а в дальнейшем продолжать использовать собственное название (см., например, документацию к полифагу Aidstest Д.Н.Лозинского). В результате получается, что каждый разработчик антивирусных средств использует в определенной степени свою уникальную классификацию. Поэтому для пользователей, столкнувшихся с вирусом, необнаруживаемым тем или иным детектором или полифагом, часто неясно, относится ли он к какой-то разновидности уже известного вируса, что дает возможность в значительной степени предсказать его свойства, или это совершенно новый, еще не исследованный вирус. Во-вторых, у самих пользователей наблюдается тенденция аппроксимировать общее количество вирусов общим количеством названий, используемых в имеющемся у них наборе средств защиты и прежде всего программ-фагов. Такая аппроксимация приводит к существенной переоценке общего количества имеющихся компьютерных вирусов, однако человек быстро "рационализирует" этот факт путем разбиения одного реального вируса на несколько "виртуальных", приписывая каждому свой набор признаков. Так, автору приходилось сталкиваться с "самодельной" классификацией, в которую вирусы С-648.VEN и RСE-1813.IER входили в двух "ипостасях" каждый (в каждом случае со своими фагами), причем второй ипостаси вируса С-648.VEN приписывались черты вируса RСE-1813.IER (замедление работы компьютера).
В процессе чтения лекций и проведения семинаров по данной проблеме автором была выработана схема классификации, включающая три основных элемента: код вируса (несколько напоминающий схему классификации транзисторов); дескриптор вируса (формализованный список основных свойств); сигнатуру вируса (строка для контекстного поиска данного вируса в зараженной программе).
Классификационный код вируса. В предлагаемой схеме каждому вирусу присваивается код, состоящий из буквенного префикса, количественной характеристики и факультативного буквенного суффикса. Например, в коде RCE-1813c RСE -- префикс, 1813 -- корень (характеристика), а c -- суффикс. Кроме того, факультативное расширение, записываемое в конце кода через точку, характеризует группу, к которой относится данный вирус. Например, RCE-1813.IER означает, что данный вирус относится к иерусалимской группе.
Главным требованием к классификационному коду вируса является возможность определения большинства входящих в него свойств на незараженном компьютере. Выполнение каких-либо действий по исследованию вируса на зараженном компьютере является наиболее распространенной и одновременно наиболее грубой ошибкой, которую допускают неопытные пользователи. Следует подчеркнуть, что любые действия на компьютере, зараженном неизвестным вирусом, сопряжены с определенным риском вызвать срабатывание троянской компоненты вируса. Кроме того, резидентный вирус с целью маскировки может перехватывать запросы и искажать выдаваемую информацию. В настоящий момент известен ряд вирусов, обладающих указанным свойством. Например, группа файловых вирусов, известная под названием TP-вирусов, начиная с вируса TP-34 (члены этой группы имеют номера, хранящиеся в предпоследнем байте вируса в 16-ричном виде), обладает свойством "самовыкусывания": при попытке трассировать зараженную программу резидентный вирус выполняет "выкусывание" вируса из программы, "подсовывая" отладчику уже излеченную программу. Аналогично бутовые вирусы, входящие в группу пакистанских (Brain, Ashar), при попытке просмотреть бут-сектор на зараженном компьютере "подсовывают" пользователю оригинальный бут-сектор, сохраненный вирусом в одном из секторов, помеченных как дефектный (и, тем самым, исключенным из распределения под файлы).
Префикс характеризует место расположения головы вируса и состоит из букв и цифр, начинаясь с прописной буквы. В соответствии с этим будем различать следующие типы вирусов (будем рассматривать только реально существующие типы, а не все принципиально возможные):
Как уже отмечалось, наряду с "чистыми" вирусами, использующими одну среду, в настоящее время появились "гибридные" -- сочетающие свойства файловых и бутовых вирусов. В таких вирусах вместо первой буквы R будем использовать соответствующую букву префикса бутового вируса, например BCE или MCE (как и бутовые, смешанные вирусы не могут быть нерезидентными).
Характеристика вируса представляет собой количественно измеряемое свойство вируса, допускающее простое определение и отличающееся для большинства типов вирусов. Например, для файловых вирусов в качестве характеристики может использоваться величина приращения длины файлов при заражении ("инфективная длина"), хотя здесь имеются определенные трудности.
Суффикс используется, когда два разных вируса или два штамма одного и того же вируса имеют одинаковый префикс и характеристику. В этом случае для того, чтобы получить уникальные коды, будем использовать в качестве суффикса латинскую букву. Например, в коде 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, -- С-сигнатурой. В то же время необходимо отметить, что сигнатуры для ряда вирусов, разработанных в нашей стране, в существующих версиях этих программ отсутствуют, а сигнатуры для болгарских вирусов часто неудачны. В таких случаях в данной работе используются выбранные автором сигнатуры, которые обозначены буквой B (B-сигнатуры), или так называемые J-сигнатуры. Последние представляют собой начальные байты кода вируса (т.е. первые исполняемые команды тела вируса). Опыт показывает, что они достаточно специфичны и в большинстве случаев позволяют отличать один вирус от другого. При этом для файловых вирусов, дописывающих свое тело в конец файла, будем считать, что J-сигнатура начинается с байта, на который передает управление команда JMP. Кроме того, в теле некоторых вирусов встречаются характерные текстовые строки. Такие строки будем называть T-сигнатурами и использовать как вспомогательные.
Следует отметить, что контекстный поиск может использоваться не только для поиска зараженных вирусом программ, но и для поиска программ и файлов, уничтоженных или поврежденных вирусом. Например, вирус С-648.VEN при определенных значениях таймера вместо заражения программы уничтожает ее, записывая в первые 5 байтов строку, соответствующую переходу на подпрограмму перезагрузки BIOS. Для поиска уничтоженных вирусом программ можно использовать строку "EAF0FF00F0". Аналогично вирус RCE-1800.DAV уничтожает сектора на винчестере, записывая в первые байты сообщение "Eddie lives - somewhere in time". По этому сообщению с помощью Norton Utilities или PC Tools можно выявить все пораженные сектора и определить, к каким файлам они относятся.
При наличии сигнатуры проверку зараженности файлов вирусом данного типа удобно выполнять, используя специальные программы, из которых, по мнению автора, наиболее удачной является программа TBScan (см. Софтпанорама, т.2, No. 10), позволяющая проводить поиск в каталоге или заданных его ветвях. Неплохим отечественным детектором, основанным на контекстном поиске заданных строк является программа VL (см. прил.3). В случае обнаружения зараженных программ целесообразно дополнительно проконтролировать результаты с помощью Norton Utilities (NU) или PCTools, которые всегда под рукой (для просмотра всех файлов можно использовать режим глобального поиска по диску). Особенно важен такой контроль, когда найдена всего одна якобы зараженная программа. Это вполне может быть связано с ложным срабатыванием контекстного детектора, который, в сущности, является весьма примитивной программой. Характерным примером паники, возникающей при некритическом отношении к выдаваемой детектором диагностике, является случай с программой Tаlker, описанный в предыдущей главе.
Файловые вирусы являются наиболее распространенным типом компьютерных вирусов; они составляют примерно 80% от общего числа компьютерных вирусов, известных для компьютеров, совместимых с IBM PC. Этот класс компьютерных вирусов обладает весьма высокой инфицирующей способностью. При отсутствии противодействия они вызывают настоящие эпидемии. Так, например, произошло с вирусом RCE-1813.IER, известным также под названиями Jerusalem (Иерусалим), Black Friday (Черная пятница) и др. Классификационная таблица файловых вирусов, обнаруженных в СССР, приведена в прил.1.
Группы файловых вирусов. Большинство распространенныx файловыx вирусoв имеют штаммы, незначительно отличающиеся от базовой версии. Поэтому можно говорить о группах файловых вирусов и, соответственно, групповых дескрипторах и групповых сигнатурах. В настоящее время количество найденных в СССР файловых вирусов превысило сто, поэтому запоминание их классификационных кодов существенно облегчается, если они используются с расширением, показывающим, к какой группе принадлежит данный вирус. Наиболее распространенными группами файловых вирусов являются следующие:
Расширения для остальных групп вирусов приведены в прил.1. Следует отметить, что на базе некоторых вирусов начинают образовываться новые группы. Фактически это происходит с каждым вирусом, получившим значительное распространение.
Классификационный код файлового вируса. Как уже указывалось, файловые вирусы можно разделить на резидентные и нерезидентные, что во многом определяет поведение вируса и, прежде всего, его инфицирующую способность (резидентные вирусы обладают существенно более высокой инфицирующей способностью, чем нерезидентные). Поэтому код резидентных вирусов будем начинать с префикса R, например RC-1701.CAS.
Префикс. Помимо символа R, классификационный код файлового вируса может включать символы С и Е или их сочетание. Как уже указывалось, символы С и E определяют типы файлов, заражаемых данным вирусом. Например, если резидентный вирус заражает COM- и EXE-файлы, то его классификационный код будет иметь префикс RCE.
Количественная характеристика. К непосредственно наблюдаемым объективным свойствам файловых вирусов прежде всего относится приращение длины файлов при заражении. Это приращение, обусловленное наличием вируса, можно использовать для определения его типа. Здесь есть две основные проблемы. Во-первых, величина приращения может варьироваться в зависимости от длины заражаемого файла (многие вирусы при дописывании своего кода в конец заражаемого файла выравнивают свое тело на ближайший адрес, кратный 16, т.е. на границу параграфа). Во-вторых, величина приращения может не совпадать для COM-файлов и EXE-файлов. Поэтому в качестве количественной характеристики необходимо использовать нормированное приращение, называемое инфективной длиной (infective length) и определяемое по следующим правилам.
Отметим, что предложенный в п.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.IER), определенная таким образом инфективная длина совпадает с длиной кода вируса.
В качестве количественной характеристики классификационного кода могут применяться и другие параметры. На них стоит кратко остановиться, поскольку использованные в них подходы будут безусловно открываться и переоткрываться другими авторами. По-видимому, наиболее распространенными можно считать следующие два подхода.
Суффикс. Возможны случаи, когда два разных вируса или два штамма одного и того же вируса имеют одинаковые префикс и характеристику. В этом случае, для того, чтобы получить уникальные классификационные коды вирусов, будем использовать в качестве суффикса одну букву. Например, в коде RС-1704f буква f означает "штамм-f".
Дескриптор файлового вируса. Используемые характеристики вирусов приведены в прил.1. Для удобства дескрипторы, приведенные в прил.1, разбиты на части.
Сигнатура файлового вируса. Как уже указывалось, для сигнатур целесообразно использовать шестнадцатиричные строки, соответствующие характерным последовательностям команд в теле вируса. Расположение сигнатур в прил.1 подчиняется правилу: если M-сигнатура входит в V-сигнатуру, то она приводится после V-сигнатуры. Как уже указывалось в предыдущей части, T-сигнатуры существуют не для всех файловых вирусов. Одной из наиболее удобных сигнатур для файловых вирусов являются J-сигнатуры. Их можно очень быстро определить с помощью любого отладчика (Debug, Turbo Debugger, AFD и т.д.). Пользователи, не умеющие работать с отладчиками, могут использовать для определения J-сигнатур программу "маскоискатель", входящую в пакет VL (см. прил.3).
Следует отметить, что контекстный поиск можно использовать не только для поиска зараженных вирусом программ, но и для поиска программ и файлов, уничтоженных или поврежденных вирусом. Например, вирус С-648.VEN при определенных значениях таймера вместо заражения программы уничтожает ее, записывая в первые 5 байтов строку, соответствующую переходу на подпрограмму перезагрузки BIOS. Для поиска уничтоженных вирусом программ можно использовать строку "EAF0FF00F0". Аналогично вирус RCE-1800.DAV уничтожает сектора на винчестере, записывая в первые байты сообщение "Eddie lives ... somewhere in time". По этому сообщению с помощью Norton Utilities или PC Tools можно выявить все пораженные сектора и определить, к каким файлам они относятся.
Как и для файловых вирусов, будем выделять группы бутовых вирусов, а для каждого отдельного вируса -- классификационный код, дескриптор и сигнатуры.
Группы бутовых вирусов. Большинство распространенныx бутовых вирусoв имеют штаммы, которые можно объединить в группы. Среди наиболее распространенных групп бутовых вирусов отметим следующие:
Классификационный код бутового вируса состоит из префикса и количественной характеристики.
Префикс. Поскольку все бутовые вирусы являются резидентными, использование символа R в префиксе их классификационного кода нецелесообразно. Наиболее важным свойством бутовых вирусов, сопоставимым по значению с резидентностью файловых вирусов, является спосoбность некоторых бутовых вирусов сохраняться в памяти после "мягкой" пeрезагрузки путем нажатия комбинации клавиш Ctrl-Alt-Del. Это свойство мы будем обозначать буквой W (survive Warm reboot) в префиксе. Все бутовые вирусы заражают дискеты, однако некоторые из них заражают винчестер, а другие нет. Вирусы, инфицирующие только дискеты (Brain, Den Zuk), будем обозначать префиксом D.
При заражении бут-сектора возможны два случая: заражение бут-сектора раздела С винчестера (префикс B) и заражение MBR -- исполняемой части таблицы разделов (префикс M). Поскольку одним из наиболее распространенных случаев расположения хвоста бутового вируса является его расположение в псевдосбойных кластерах (что легко определить, просмотрев их содержимое с помощью Norton Utilities), то для таких вирусов в суффикс будем включать букву х, за которой следует количество этих кластеров, например Bx1.
Количественная характеристика бутового вируса. Выбор количественной характеристики для бутовых вирусов имеет определенную специфику: если для файловых вирусов наиболее характерным признаком заражения является увеличение длины файла, то для бутовых вирусов аналогичную роль играет уменьшение размеров оперативной памяти, доступной для MS DOS. Однако, как указывалось выше, важным требованием к выбору свойств вируса, используемых для классификации, является возможность их определения на незараженной машине. Количество блоков памяти, используемых бутовым вирусом, этому критерию не отвечает, поэтому от этой характеристики пришлось отказаться. Было решено использовать другую "доступную для обозрения" характеристику бутового вируса -- содержимое зараженного бут-сектора (точнее, первых его байтов). Вместе с тем, анализ объема памяти, сообщаемого MS DOS, является очень полезным диагностическим приемом, и при подозрении на заражение тем или иным вирусом вызов программы CHKDSK, сообщающей это значение (а также ряд других полезных сведений, включая объем памяти, занятый на диске сбойными кластерами), целесообразно вставлять в файл AUTOEXEC.BAT.
В качестве характеристики выбрано значение второго байта зараженного бут-сектора, поскольку его содержимое различно для известных автору бутовых вирусов. В то же время содержимое этого байта записывается в 16-ричной системе счисления, что создает определенную несогласованность с характеристикой файловых вирусов, являющейся десятичным числом. Именно поэтому в предлагаемом варианте классификационного кода вируса прeфикс и характеристика разделяются знаком "-" (минус).
Следует еще раз подчеркнуть, что просматривать содержимое бут-сектора следует только, предварительно загрузившись с защищенной от записи резервной дискеты с операционной системой и требуемыми антивирусными программами, поскольку сама операция просмотра на зараженной машине может либо перехватываться вирусом для подстановки "чистого" бут-сектора (так, например, маскируется вирус Dx3-E9.BRN (Brain), либо, что еще хуже, служить триггером для каких-то несанкционированных действий. Следует использовать так называемую "холодную" перезагрузку (с помощью клавиши RESET, если она есть, или путем выключения питания, если ее нет), а не "теплую" перезагрузку (нажатием клавиш CTRL-ALT-DEL). Это требование основано на том факте, что ряд бутовых вирусов перехватывает прерывание от клавиатуры и при "теплой" перезагрузке сохраняет себя в памяти, даже если перезагрузка идет с защищенной системной дискеты.
Дескриптор бутового вируса. Структура дескриптора бутового вируса приведена в прил.2.
Сигнатура бутового вируса. Для бутовых вирусов M-, I- и B-сигнатуры будут использоваться аналогично тому, как это было для файловых вирусов, а J-сигнатура -- в несколько измененном виде. В отличие от J-сигнатуры для файловых вирусов, в которой байты, соответствовавшие команде перехода, не учитывались, здесь они будут учитываться. Это связано с тем, что первой командой бут-сектора всегда является команда обхода таблицы параметров диска (см. прил.4), размер которой, в отличие от размера заражаемого файла, не меняется. Поэтому для бутовых вирусов мы преимущественно будем использовать J-сигнатуру, состоящую из первых трех байтов бут-сектора, и лишь при необходимости дополнять ее, начиная с байта, на который выполняется команда перехода.
Для незараженного бут-сектора MS DOS версии 3.3 J-сигнатура равна EB3490h (объектный код команды JMP, служащий для обхода таблицы параметров). Ценность этой эталонной J-сигнатуры состоит в том, что она сравнительно легко запоминается. Поэтому несовпадение первых трех байтов анализируемого бут-сектора с указанной эталонной J-сигнатурой свидетельствует о зараженности бут-сектора (отметим, что совпадение еще ни о чем не говорит).
Как уже отмечалось, несовершенство существующих детекторов обуславливает наличие многих ложных срабатываний. Это прежде всего относится к полидетектору Scan, как одному из наиболее распространенных средств входного контроля поступающего программного обеспечения. Классификационные таблицы позволяют контролировать работу детектора, предоставляя пользователю выбор нескольких сигнатур для одного и того же вируса. Это особенно важно, когда диагностика детектора относится к одному-единственному файлу, что часто бывает при входном контроле поступающих дискет. В этом случае целесообразно использовать Norton Utilities или PC Tools с предлагаемыми в прил.1,2 сигнатурами. Кроме того, классификационные таблицы позволяют определить точку прикрепления тела вируса к программе и, таким образом, проконтролировать не только содержание, но и положение в файле той или иной сигнатуры. Например, если исключить аномальные случаи и возможность заражения файла несколькими вирусами сразу, то для файловых вирусов, однократно заражающих файл и дописывающих свое тело в конец файла, J-сигнатура должна находиться от конца файла на расстоянии, не превышающем длину тела вируса.
В заключение отметим, что предлагаемая классификация является, по существу, одной из первых попыток стандартизации, поэтому она, конечно, не лишена недостатков, и естественно, должна совершенствоваться. В то же время любой классификации присущи те или иные недостатки, и ожидание идеальной классификации глубоко ошибочно. Здесь, как и в большинстве областей программирования (например, в языках высокого уровня), пожалуй, важнее вовремя сделать ставку на какой-то более или менее приемлемый вариант, чем самому тратить время и силы на разработку более удачной альтернативы. Поэтому разработчикам антивирусных программ имеет смысл использовать описанную классификацию при подготовке документации и выдаче диагностических сообщений, даже имея некоторые возражения к принятому подходу. Поскольку автор регулярно обновляет приведенные таблицы вирусов, основанные на предложенной классификации, их использование в качестве части документации к распространяемым программам не только повысит полноту и качество последней, но и сэкономит время на последующую корректировку, которая может быть выполнена путем замены предыдущей редакции таблиц на текущую.
Использование в антивирусных программах кода и дескриптора вируса упрощает программирование ряда компонент и создает некоторые нетривиальные возможности. В простейшем случае дескриптор вируса можно рассматривать как способ упаковки файла оперативной подсказки сведений о найденном вирусе. При выдаче информации о вирусе по клавише HELP (F1) содержащуюся в нем достаточно подробную информацию можно развернуть до практически полного описания найденного вируса путем замены значения каждого из полей дескриптора на соответствующие ему стандартные фразы на русском или английском языке. В этом случае вместо двух-трех малоинформативных фраз, выдаваемых на экран в виде оперативной подсказки (по принципу "получи и отвяжись"), пользователь получает действительно полезную информацию.
Ниже приводятся описания нерезидентных файловых вирусов, изученных автором на момент выхода данной работы. В целях систематизации описываемые вирусы разбиты на несколько групп. Как для самих групп, так и для вирусов внутри группы изложение ведется в основном в хронологическом порядке (по появлению в Киеве). Нерезидентные вирусы уступают по распространенности и инфицирующей способности резидентным, однако они проще по структуре, и подробное изучение отдельных вирусов мы начнем именно с них. Данная категория вирусов представляет интерес как база основной массы "студенческих" вирусов, поток которых сейчас захлестывает пользователей нашей страны. Поскольку в данной главе группа, к которой принадлежит тот или иной вирус, ясна из контекста, в кодах вирусов мы расширения приводить не будем.
Поскольку во многих случаях зараженность программы можно определить визуально, с помощью просмотра дампа, описания вирусов будем иллюстрировать характерными фрагментами дампов. При этом в качестве заражаемой программы используется специальная макетная программа, состоящая из команды выхода и некоторого (требуемого для того, чтобы вирус заразил эту программу, если в нем предусмотрен контроль минимальной длины) количества пустых операций (NOP), имеющих для данного процессора код 90h. Такие макетные программы, специально рассчитанные на последующее заражение вирусами, будем в дальнейшем называть дрозофилами. Удачно подобранные дрозофилы существенно облегчают изучение вируса, в частности, определение места, куда вирус прячет первые байты. Для этого достаточно поменять первые байты дрозофилы и опять заразить ее вирусом.
Венская группа берет свое начало с вируса С-648. Для данной группы характерен способ поиска зараженных файлов, основанный на анализе строки, содержащейся в команде PATH, а затем на последовательном просмотре содержимого описанных там каталогов. Кроме того, вирусы данной группы обычно используют поле секунд для отметки зараженных файлов. В настоящее время группа включает ряд штаммов, наиболее распространенным из которых является исторически первый -- С-648. Указанные штаммы отличаются, в основном, длиной и методом повреждения файлов. В "базисном" вирусе это повреждение состоит в троянизации части файлов путем записи в их начало команды перехода на подпрограмму перезагрузки операционной системы. Большинство штаммов используют для выбора "жертв" текущее значение таймера (см. ниже), однако в литературе описаны и штаммы, использующие для этой цели значение даты создания файла. В настоящее время известно более двух десятков штаммов, относящихся к этой группе, включая ряд штаммов отечественной разработки.
Неформальное название вируса связано с местом его первого обнаружения и, по-видимому, разработки. Формально вирус С-648 -- файловый нерезидентный вирус, поражающий файлы с расширением СОМ. Функционирует на версиях MS DOS, начиная с 2.0.
Стратегия заражения -- поиск файла с расширением СOM в каталогах, сцепленных в PATH. Заражение СOMMAND.COM выполняется так же, как и заражение любого другого COM-файла: никаких механизмов по поиску размещения командного процессора вирус не содержит. При заражении он дописывается в конец программы и одновременно вставляет в первые три байта COM-файла команду перехода на тело вируса. При этом размер файла увеличивается на 648 байтов, дата создания файла и атрибуты файла не меняются. Заражение выполняется однократно. Минимальный размер заражаемых файлов -- 10 байтов (0Ah), максимальный -- 64000 байтов (FA00h). Поскольку вирус определяет тип файла только по расширению, заражение EXE-файлов с расширением COM выполняется неправильно. Это приводит к потере работоспособности зараженных файлов указанного типа: их запуск обычно ведет к зависанию системы. После обработки такой программы фагом работоспособность восстанавливается.
Для определения зараженных файлов (с целью предотвращения их повторного заражения) используются младшие пять битов времени создания файла (для зараженных файлов поле секунд имеет значение, соответствующее несуществующему количеству секунд -- 62 с). Следует отметить, что как команда DIR, так и распространенные оболочки типа Norton Commander не показывают поле секунд, выдавая содержимое каталога на экран. Поэтому это изменение достаточно хорошо скрыто от пользователя.
При запуске инфицированной программы управление сначала получает сам вирус. Получив управление, вирус устанавливает свою область передачи данных, и ищет потенциальную жертву на всех дисках и во всех каталогах, сцепленных с помощью команды PATH. При нахождении файла с расширением COM, вирус прежде всего проверяет его время создания, по которому определяет, заражен уже этот файл или нет. Если файл отмечен как незараженный и его длина больше десяти байтов, но меньше 64000 байтов, то он рассматривается как пригодный для заражения, и вирус приступает к этой операции. В противном случае поиск потенциальной жертвы продолжается указанным выше способом.
Заражение выполняется стандартным способом -- путем дописывания тела вируса в конец файла с простановкой в начало команды перехода на тело вируса. Как уже указывалось, при заражении вирус не проверяет тип файла, т.е. не является ли потенциальная жертва на самом деле файлом типа EXE (начинающимся с "MZ"), ошибочно или намеренно "замаскированным" под файл типа COM. Указанные файлы после заражения теряют работоспособность, которая может быть восстановлена путем выкусывания вируса.
Следует отметить, что защита файлов атрибутами READ ONLY и HIDDEN в MS DOS недостаточно эффективна, поскольку вирус легко изменяет эти атрибуты. Сначала вирус запоминает атрибуты, дату и время создания заражаемого файла. Затем сбрасывает атрибут READ ONLY, если он был установлен, открывает файл на запись и считывает текущее время. Если выданное по прерыванию 21h (функция 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?
в ответ на которое неопытные пользователи часто снимают защитную заклейку прорези дискеты, тем самым разрешая вирусу заразить очередную программу. Этот эффект представляет интерес как наглядная демонстрация того непреложного факта, что человек является важнейшим звеном в любой системе обеспечения безопасности.
Исторические сведения. Данный вирус является первым вирусом европейской разработки, который получил распространение во всем мире. Помимо Вены, предполагаемым местом разработки может являться Гамбург (Германия). В качестве распространителя вируса также выступала книга Р.Бургера [Burger87], содержавшая исходный код вируса. В результате появились штаммы, отличавшиеся друг от друга только используемым ассемблером, что не наблюдалось ни для какого другого компьютерного вируса. Пик эпидемии в Западной Европе наблюдался в 1988 г. Фактически данный вирус был первым компьютерным вирусом, вызвавшим эпидемию в Европе, включая СССР. Об этом, в частности, свидетельствуют даты создания первых детекторов и фагов для этого вируса (среди них попадались немецкие, польские, чешские и австрийские программы).
В СССР вирус С-648 появился приблизительно в августе 1988 г., когда он был обнаружен в лаборатории Института программных систем (Переславль-Залесский). Возможно, он попал туда во время проведения институтом (совместно с ЮНЕСКО) Международного детского компьютерного летнего лагеря. Поскольку этот вирус к середине 1988 г. был уже довольно распространен в Европе, он несомненно завозился в СССР неоднократно, c различного рода новыми версиями программного обеспечения и компьютерными играми. В Киеве этот вирус появился в конце 1988 г., а наибольшее распространение получил примерно в апреле 1989 г., после чего его эпидемия пошла на убыль, что прежде всего связано с достаточной распространенностью средств защиты от этого вируса. Одним из переносчиков этого вируса в Киеве являлся адаптированный вариант программы SideKick (шестерка). К сожалению, по стране распространяется откомментированный исходный текст данного вируса, который, в частности, был включен В.Бончевым в его "вирусную" дискету.
Первыми антивирусными программами, попавшими в Киев и ориентированными на борьбу с этим вирусом, были зарубежные программы, распространявшиеся в виде случайного набора на дискете. Среди них наибольшей популярностью на начальном этапе пользовались детектор Diag и фаг Cure Д.Сопчека (Польша), DR_NO, Fag_OM и др. Отечественные средства появились несколько позднее, однако к концу 1989 г. основным средством борьбы стали такие отечественные полифаги, как Aidstest, Doctor, Vdeath и др.
Неформальные названия. Данный вирус имеет не менее десятка неформальных названий. Среди них: Vienna (Вена), DOS-62, Time Bomb (Часовая мина), Flea (Блоха), вирус перезагрузки, VHP-648, Restart (Рестарт -- О.Г.Котик), Rebooter (Перезагрузчик), P-virus, Omega (Омега). Полидетектор Scan называет данный вирус "Vienna (DOS 62) Virus -- Version A [Vienna]".
Методы и средства защиты. Для данного вируса имеется огромное количество программ типа детекторов и фагов разработки 1988-89 гг. При этом большинство из них не указывают, для какого типа вируса они предназначены. Пользоваться этими фагами ни при каких условиях не рекомендуется, т.к. у них отсутствует проверка на самозаражение, и они могут оказаться уже зараженными. Уничтоженные вирусом файлы, т.е. файлы, в которых вместо первых пяти байтов записана команда безусловного перехода на перезагрузку MS DOS (EA F0 FF 00 F0), можно восстановить, только если первые байты программы были предварительно записаны в справочном файле программой-ревизором (типа CRCDOS). В настоящее время все полидетекторы и все полифаги обрабатывают программы, зараженные данным вирусом. Автор рекомендует полифаг Aidstest. Защита винчестера от данного вируса облегчается при использовании программы Advanced Disk Manager (ADM), которая позволяет устанавливать защиту записи и для разделов винчестера. Вакцина от данного вируса может быть создана двумя способами. Во-первых, поскольку при поиске слова PATH вирус фактически ищет подстроку "PATH=", его можно "навести на ложный аэродром", вставив в AUTOEXEC.BAT строку вида
SET XPATH = Х:\DUMMY
до "настоящей" строки
SET PATH =
В приведенном примере DUMMY -- несуществующий каталог, а первая (или несколько первых) букв в имени ловушки могут быть произвольными. В этом случае вирус "поймает" первую букву "P", входящую в слово XPATH и будет пытаться искать файлы на несуществующем диске Х и в несуществующем каталоге DUMMY. Аналогичную ловушку можно ставить и на COMSPEC, и хотя для данного вируса она не нужна, важно понимать, что данную идею "обмана" вирусов можно развить в нескольких направлениях. Другими словами, она может быть обобщена до некоторого универсального приема использования особенностей кодировки соответствующих частей вируса. Кроме того, целесообразно создать каталог BAT (имя может быть произвольным) и записать в него пакеты для вызова часто используемых программ в виде BATCH-файлов. В этом случае достаточно указать в PATH только этот каталог, что вполне безопасно, поскольку ни одного файла типа COM в нем нет. Этот способ, наряду с повышением безопасности, ускоряет вызов программ, позволяет настроить среду и передать стандартные параметры. Поэтому его стоит использовать как можно шире.
Второй способ вакцинирования состоит в записи в последние четыре бита времени создания файла четырех единиц для всех файлов типа COM. Это соответствует невозможному количеству секунд (62) во времени создания (последние четыре бита хранят половинное количество секунд). Именно так вирус помечает зараженные им файлы. Правда, здесь существует опасность, что при обработке тем или иным фагом последний может принять чистые файлы за зараженные, однако эта проблема носит скорее теоретический, чем практический характер.
Следует отметить, что вместо "лечения" файлов зачастую проще и безопасней восстановить их с дистрибутивных копий.
Фрагмент дампа дрозофилы, зараженной вирусом C-648 +-------- команда передачи управления телу +----+ вируса 000: E90D009090909090 9090909090909090 ................ +- ****** -------- J-сигнатура (звездочками поме | чены изменяемые вирусом байты) 010: 51BA0903FC8BF281 C60A00BF0001B903 Q............... 020: 00F3A48BF2B430CD 213C007503E9C701 ......0.!<.u.... 030: 06B42FCD21899C00 008C84020007BA5F ../.!.........._ 040: 009003D6B41ACD21 06568E062C00BF00 .......!.V..,... 050: 005E5681C61A00AC B90080F2AEB90400 .^V............. 060: ACAE75EDE2FA5E07 89BC16008BFE81C7 ..u...^......... ... .. .. .. .. .. .. .. .. . . . . . . . . 1E0: 00BA1F009003D6CD 211EB41A8B940000 ........!....... 1F0: 8E9C0200CD211F59 33C033DB33D233F6 .....!.Y3.3.3.3. 200: BF00015733FFC2FF FF8000ED251B0121 ...W3.......%..! 210: 002000909090E90D 002A2E434F4D001C . .......*.COM.. 220: 002006504154483D 473634382E434F4D . .PATH=G648.COM 230: 2020202020202020 2020202020202020 *** последующие строки идентичны предыдущей *** 260: 2020202020202020 033F3F3F3F3F3F3F .??????? 270: 3F434F4D030500EE 0200000000201B01 ?COM......... .. 280: 2100100000004736 34382E434F4D004D !.....G648.COM.M 290: 000000EAF0FF00F0 ........ Фрагмент дампа дрозофилы, "уничтоженной" вирусом С-648 000: EAF0FF00F0909090 9090909090909090 ................ ... .. .. .. .. .. .. .. .. . . . . . . . .
Вирус С-623 отличается от C-648 наличием обработки ненормальных окончаний, что обеспечивает подавление сообщений вида
Write protect error writing device <лог.имя.устр.> Abort, Retry, Ignore, Fail?
при попытке записи на защищенную дискету. Кроме того, в уничтожаемые модули записывается переход по адресу C800:0000. Возможно, автор предполагал, что в результате будет выполнена форматизация диска. Уничтоженные модули можно искать по сигнатуре EA000000C8.
Данный штамм содержит подпрограмму обработки ошибок ввода-вывода. Поэтому при попытке заражения программы, расположенной на защищенной дискете, не выдается соответствующего сообщения MS DOS.
Исторические сведения. Передан автору Д.Н.Лозинским. Обнаружен в конце 1989 г.
Методы и средства защиты. См. прил.1.
Фрагмент дампа дрозофилы, зараженной вирусом C-623 000: E9A0009090909090 9090909090909090 ................ 010: 8000ED251B012100 2000909090E9A000 ...%..!. ....... 020: 2A2E434F4D001C00 0E04504154483D47 *.COM.....PATH=G 030: 3632332E434F4D00 0000202020202020 623.COM... 040: 2020202020202020 2020202020202020 *** последующие строки идентичны предыдущей *** 070: 3F3F3F3F3F3F3F3F 434F4D030700EE02 ????????COM..... 080: 00000000201B0121 0010000000473632 .... ..!.....G62 090: 332E434F4D000000 0000EA000000C856 3.COM..........V 0A0: 050E2551BA1001FC 8BF283C60ABF0001 ..%Q............ 0B0: B90300F3A48BF2B4 30CD213C007503E9 ........0.!<.u.. 0C0: A80106B42FCD2189 1C8C4402B82435CD ..../.!...D..$5. 0D0: 21899C8F008C8491 0007B824258BD681 !..........$%... ... .. .. .. .. .. .. .. .. . . . . . . . . 230: 8B54068B4C0480E1 E080C91FB80157CD .T..L.........W. 240: 21B43ECD21B80143 8B4C08BA1F0003D6 !.>.!..C.L...... 250: CD211EB41A8B148E 5C02CD21B824258B .!......\..!.$%. 260: 948F008E9C9100CD 211F5933C033DB33 ........!.Y3.3.3 270: D233F6BF00015733 FFC2FFFFB000CF .3....W3.......
В штамме 627 исключен блок уничтожения программы.
Исторические сведения. Передан автору Д.Н.Лозинским. Обнаружен в конце 1989 г.
Методы и средства защиты. См. прил.1.
Польская группа включает несколько штаммов, стратегия заражения которых основана на поиске файлов с расширением COM в текущем каталоге и использовании для отметки зараженных файлов не значения 62 с в поле секунд, а 13-й месяц. Она включает два почти идентичных вируса С-507 и С-534, из которых в нашу страну попал только второй. Анализ кода создает впечатление о том, что основные идеи заимствованы у венского вируса. В связи с используемым методом отметки зараженных файлов группа практически полностью уничтожена.
В коде вируса C-534 прослеживаются явные аналогии с кодом вируса С-648, однако чувствуется более низкая квалификация автора. Возможно, автор пользовался комментированным листингом вируса С-648 или книгой Бургера. Против этого предположения говорит тот факт, что стратегия заражения существенно упрощена, а признак зараженности файла изменен на более заметный, хотя при создании штаммов чаще наблюдаются попытки "улуч-шить" эти участки кода. Так или иначе, спецификации обоих вирусов достаточно близки.
Формально вирус С-534 -- файловый нерезидентный вирус, поражающий файлы типа СОМ. Функционирует на версиях MS DOS, начиная с 2.0. Длина 534 (216h) байта. Заражаются только COM-файлы длиной от 256 (100h) до 64000 (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 г. Первым фагом для данного вируса, распространяемым бесплатно, вероятно был полифаг Д.Н.Лозинского.
Неформальные названия. Помимо приведенных в заголовке, встречаются названия Micro88, Microsoft 88, Microsofttyright, основанные на содержащейся в вирусе текстовой строке, и название 13-й месяц, основанное на изменении даты создания файлов при заражении.
Методы и средства защиты. Методы защиты аналогичны методам защиты от вируса С-648. Рекомендуется использовать программы, указанные в прил.1.
Фрагмент дампа дрозофилы, зараженной вирусом C-534 100: E98D019090909090 9090909090909090 ................ 110: 9090909090909090 9090909090909090 ................ *** Последующие строки идентичны предыдущей *** 280: 9090909090909090 90909090909090C3 ................ +- ****** -------- J-сигнатура (звездочками поме | чены изменяемые вирусом байты) 290: 50BEF5038BD681C6 0000FCB90300BF00 P............... 2A0: 01F3A48BFAB430CD 213C007503E93F01 ......0.!<.u..?. 2B0: BA2C0003D78BDAB4 1ACD21BD00008BD7 .,........!..... ... .. .. .. .. .. .. .. .. . . . . . . . . 3F0: BF000157C3EBFE90 E98D015C3F3F3F3F ...W.......\???? 400: 3F3F3F3F2E434F4D 00545259302E434F ????.COM.TRY0.CO 410: 4D004D0000000020 00E4812400000000 M.M.... ...$.... 420: 00073F3F3F3F3F3F 3F3F434F4D030900 ..????????COM... 430: 000046510F0920E4 8124009001000054 ..FQ....$.....T 440: 5259302E434F4D00 4D0000006F736F66 RY0.COM.M...osof 450: 7479726967687420 4D6963726F736F66 tyright Microsof *** Последующие строки идентичны предыдущей *** 4A0: 7420313938380000 0000000000000000 t 1988..........
Данный штамм представляет собой более отлаженный вариант предыдущего вируса. Практически идентичен предыдущему. Вирус детектируется полидетектором Scan и входит в список П.Хоффман, начиная с версии, датированной 10 августа 1990 г.
Данная группа в настоящее время состоит из трех представителей с длинами 847, 740 и 345 байтов. На расстоянии 2-3 байта от начала в этих вирусах стоят буквы "IV". П.Хоффман описывает ряд других, неизвестных в нашей стране штаммов. В их числе штаммы с длиной 277 и 299 байтов, которые аналогичны вирусу С-345, однако текст сообщения исключен и вместо кода, обеспечивающего выдачу сообщения, вставлен код, создающий ошибку четности (Parity error) приблизительно в 50% случаев запуска программы. Вирусы этой группы являются одними из наиболее простых файловых вирусов. Они заражают только COM-файлы в текущем каталоге, причем при заражении не предусмотрено ни сохранение даты, ни контроль длины. Заражение производится приписыванием программы к телу вируса. Таким образом, в зараженной программе вирус располагается в начале, что встречается довольно редко.
Существенной разницы в функционировании штаммов нет: в данном случае большая длина вируса не означает усложнения механизма его работы. Все три штамма заражают только файлы с расширением "COM" в текущем каталоге, причем правильность расширения не проверяется. Как и в случае с вирусом С-648, это приводит к повреждению EXE-файлов с расширением COM: после заражения файлы становятся неработоспособными и их запуск обычно ведет к зависанию системы. Данное повреждение может быть устранено "выкусыванием" вируса из программы.
Получив управление, данный вирус переписывает собственное тело в область памяти, отстоящую от области загрузки данной программы на 64К. Это действие может привести к нарушению работы системы в случае наложения копии на резидентные программы. Затем вирус выполняет поиск в текущем подкаталоге файла с расширением COM. Если такой файл обнаружен, то он считывается в память, располагаясь непосредственно за копией вируса (таким образом, вся область памяти практически представляет собой образ зараженной вирусом программы). Если второй и третий байты считанной программы принимают значения 49h и 56h ("IV"), то вирус считает, что данная программа уже заражена. В противном случае в файл, из которого была считана программа, "сбрасывается" область оперативной памяти, начиная с тела вируса. За одно выполнение зараженной программы вирус предпринимает попытку заражения всех файлов в текущем каталоге. Очевидно, что повторный запуск зараженной программы в том же каталоге не вызовет дополнительного заражения, поскольку все COM-файлы в текущем каталоге уже заражены.
При каждом вызове зараженной программы вирус увеличивает значение специального счетчика, а затем выполняет проверку его содержимого. Если значение счетчика равно 5, то вирус считывает значение таймера, и, если оно нечетно, то на экран выводится сообщение:
Program sick error: Call doctor or buy PIXEL for cure description
и выполнение программы блокируется. Это сообщение содержится в теле вируса в незашифрованном виде. Поэтому иногда этот вирус называют PIXEL. После завершения своей работы вирус сдвигает тело программы, вместе с которой он первоначально был загружен в память, на количество байтов, равное длине вируса, и передает управление на начало программы.
Исторические сведения. Исходный текст данного вируса был опубликован в Греции в журнале "Пиксель" ("Pixel"). В СССР попал на вирусной дискете В.Бончева. Первым фагом для данного вируса был, по-видимому, полифаг Д.Н.Лозинского.
Неформальные названия. Распространенным неформальным названием этого вируса является Pixel. Д.Н.Лозинский называет данный вирус IV-345.
Методы и средства защиты. Вирус легко обнаружить по изменению длины и даты создания COM-файлов. Рекомендуемые фаги приведены в прил.1.
Фрагмент дампа дрозофилы, зараженной вирусом С-345 000: EB3B4956012A2E43 4F4D000000000000 .;IV.*.COM...... 010: 0000000000000000 0000000000000000 ................ 020: 0000000000000000 0000000000000000 ................ 030: 0000000000000000 0000000000508CC8 .............P.. 040: 0500108EC0FE0604 01BE000133FFB959 ............3..Y 050: 0190F3A4BA1101B4 1ACD21BA0501B906 ..........!..... 060: 00B44ECD21724BBA 2F01B8023DCD218B ..N.!rK./...=.!. ... .. .. .. .. .. .. .. .. . . . . . . . . 0D0: D801B409CD21CD20 50726F6772616D20 .....!. Program 0E0: 7369636B20657272 6F723A43616C6C20 sick error:Call 0F0: 646F63746F72206F 7220627579205049 doctor or buy PI 100: 58454C20666F7220 6375726520646573 XEL for cure des 110: 6372697074696F6E 0A0D24BE3702B922 cription..$.7.." 120: 0033FFF3A45B2EC7 060B0100002E8C06 .3...[.......... 130: 0D012EFF2E0B011E 07BE5902BF0001B9 ..........Y..... 140: FFFF2BCEF3A42EC7 06000100012E8C1E ..+............. 150: 02018BC32EFF2E00 01B409BA0901CD21 ...............! 160: CD20333435205669 7275732033343520 . 345 Virus 345 170: 6279746573202124 bytes !$
Вирус практически полностью аналогичен предыдущему, за исключением того, что проверка на зараженность программы выполняется по третьему и четвертому байтам и буфер для чтения/записи размещен в теле вируса.
Исторические сведения. В СССР попал в сентябре 1989 г. на вирусной дискете В.Бончева. Первые случаи заражения отмечены в Москве в марте 1990 г. Вирус можно отнести к числу самых старых, простейших вирусов. Вирус Amstrad был передан McAfee в ноябре 1989 г. Джиан Луз (Jean Luz), однако был известен в Испании и Португалии по меньшей мере за год до этого. Этот штамм не заражает COMMAND.COM и содержит "самозванную" рекламу компьютеров фирмы Amstrad.
Неформальные названия. Д.Н.Лозинский называет данный вирус IV-847. Полидетектор Scan называет данный вирус "Amstrad Virus [Amst]".
Методы и средства защиты. См. предыдущий штамм.
Фрагмент дампа дрозофилы, зараженной вирусом С-847 000: EB14904956012A2E 434F4D004F040000 ...IV.*.COM.O... 010: 0100000000008CC8 0500108EC0FE0605 ................ 020: 01BE000133FFB94F 01F3A4BA5F02B41A ....3..O...._... 030: CD21BA0601B90600 B44ECD217260BA7D .!.......N.!r`.} 040: 02B8023DCD21A314 018BD8061FBA4F03 ...=.!........O. 050: B9FFFFB43FCD2105 4F032EA312013E81 ....?.!.O.....>. 060: 3E52034956742133 C98BD12E8B1E1401 >R.IVt!3........ ... .. .. .. .. .. .. .. .. . . . . . . . . 0C0: CD21CD2050726F67 72616D207369636B .!. Program sick 0D0: 206572726F723A43 616C6C20646F6374 error:Call doct 0E0: 6F72206F72206275 7920504958454C20 or or buy PIXEL 0F0: 666F722063757265 2064657363726970 for cure descrip 100: 74696F6E0A0D24BE 2402B92B0033FFF3 tion..$.$..+.3.. 110: A433FF2EC7060E01 00002E8C0610012E .3.............. 120: FF2E0E011E07BE4F 04803E0501017504 .......O..>...u. ... .. .. .. .. .. .. .. .. . . . . . . . . 300: 508D46AE509A4387 751883C4049A8085 P.F.P.C.u....... 310: 7518FF76088D865E FF508D46AE50E8A8 u..v...^.P.F.P.. 320: 0583C4068946FE3D FFFF74053D010075 .....F.=..t.=..u 330: 03E8A0D0837EFE01 7403E947FE837E08 .....~..t..G..~. 340: 0075288D46AE509A 9487751883C402B4 .u(.F.P...u..... 350: 09BA0901CD21CD20 3834372056697275 .....!. 847 Viru 360: 7320383437206279 746573202124 s 847 bytes !$
C-740 не контролирует и своего наличия в модуле, в связи с чем заражение происходит многократно.
Исторические сведения. В СССР попал в сентябре 1989 г. на вирусной дискете В.Бончева.
Неформальные названия. Д.Н.Лозинский называет данный вирус IV-740.
Методы и средства защиты. См. штамм С-345.
Фрагмент дампа дрозофилы, зараженной вирусом С-740 000: EB14904956012A2E 434F4D00E4030000 ...IV.*.COM..... 010: 0000000000008CC8 0500108EC0FE0605 ................ 020: 01BE000133FFB9E4 00F3A4BAF401B41A ....3........... 030: CD21BA0601B90600 B44ECD217257BA12 .!.......N.!rW.. 040: 02B8023DCD21A314 018BD8061FBAE402 ...=.!.......... ... .. .. .. .. .. .. .. .. . . . . . . . . 220: 4B2D83C40489865C FF833E1A1E00741D K-.....\..>...t. 230: 833E1C1E007516B8 2B4B509A94877518 .>...u..+KP...u. 240: 83C4020BC07406C7 061C1E0100FFB65C .....t.........\ 250: FF8D46AE509A6A86 751883C404FF7606 ..F.P.j.u.....v. 260: 8D865EFF509A6A86 751883C404FF7608 ..^.P.j.u.....v. 270: 8D46AE508D865EFF 50E8F60083C40689 .F.P..^.P....... 280: 8654FF3DFEFF7503 E9F9FEFF361C1EFF .T.=..u.....6... 290: B65CFFE8794183C4 04898656FF3DFFFF .\..yA.....V.=.. 2A0: 7503E9DFFE0BC074 2C837E08007526FF u......t,.~..u&. 2B0: 361A1E8D865EFF50 E8544183C4048986 6....^.P.TA..... 2C0: 58FF3DFFFF7503E9 BAFE3D01001BC0F7 X.=..u....=..... 2D0: D8898656FF8D46AE 509A0487751883C4 ...V..F.P...u... 2E0: 020BC075B409BA09 01CD21CD20373430 ...u......!. 740 2F0: 2056697275732037 3430206279746573 Virus 740 bytes 300: 202124 !$
Неформальное название данного вируса связано с играемой им мелодией "Yankee Doodle Dandy". В настоящее время этот вирус можно считать "вымершим", и информация о нем представляет лишь исторический интерес.
Формально E-1961 является нерезидентным файловым вирусом, заражающим EXE-файлы. Файлы заражаются однократно. При запуске зараженной программы вирус ищет жертву в текущем каталоге, а затем во всех подкаталогах (используется рекурсивный обход дерева) и, если попытка заражения удалась, то играет мелодию "Янки Дудль Денди".
При заражении длина файла увеличивается на 1961 байт. Тело вируса дописывается в конец файла. В конце вируса имеется строка "motherfuckler", служащая признаком зараженности.
Исторические сведения. Данный вирус является одним из первых болгарских вирусов. Он написан в конце 1988 г. Мелодия, играемая вирусом, позднее была заимствована техно-крысой, написавшей серию TP. Исходный текст вируса распространялся на вирусной дискете В.Бончева. Вирус является первым болгарским вирусом, в котором использован стандартный метод заражения EXE-файлов, хотя при его реализации допущен ряд ошибок и неточностей. Известен автор вируса. В СССР отмечены лишь отдельные случаи заражения.
Методы и средства защиты. Вирус легко обнаруживается по играемой мелодии. Рекомендуемые фаги приведены в прил.1.
Большинство студенческих нерезидентных вирусов основаны на С-648, как наиболее распространенном, а следовательно и наиболее "доступном" нерезидентном файловом вирусе. Ниже приводятся два типичных примера "продукции" такого рода.
Неформальное название данного вируса связано с выдаваемым вирусом на экран сообщением. Идея, лежащая в основе данного вируса, является модификацией, использованной в одном из самых старых вирусов -- Cookie (см. ниже).
Формально С-1024 представляет собой простой файловый нерезидентный вирус, заражающий файлы, имеющие расширение 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 !". Последнее дает определенное представление об уровне культуры автора, даже если рассматривать это как своего рода юмор. Однако на PC AT программа зацикливается из-за ошибки. В результате после выдачи сообщения компьютер зависает и его приходится перегружать, причем сделать это удается только клавишей RESET.
Уровень программирования в целом невысок. В частности, вирус не восстанавливает DTA, что может привести к зависанию компьютера. Аналогично затирание части таблицы векторов прерываний может приводить к зависанию или нарушению функционирования программ. Помимо приведенных выше строк, образующих заставку и ответ, тело вируса содержит строку "*.COM".
Исторические сведения. Типичный представитель отечественных "студенческих" вирусов. Обнаружен летом 1990 г.
Неформальные названия. Полидетектор Scan (версии до 77 включительно) данный вирус не детектирует.
Методы и средства защиты. Обнаружение тривиально по описанному текстовому сообщению. Детектирование можно выполнять по сигнатуре, приведенной в прил.1. Рекомендуемые полифаги приведены там же.
Фрагмент дампа дрозофилы, зараженной вирусом С-1004 000: 500E8CC82E01060C 01EA580011002400 P.........X...$. ... .. .. .. .. .. .. .. .. . . . . . . . . 060: 9000000000000000 начало тела вируса -> 582EA3CC01581E06 M.......X....X.. 070: 5053515256579C8C C88ED88EC08D360E PSQRVW........6. 080: 0006C43ECA01B90E 00F3A40706B42FCD ...>........../. 090: 212E891E2400062E 8F06260007B41A8D !...$.....&..... 0A0: 162800CD21B44E8D 161E00B93F00CD21 .(..!.N.....?..! 0B0: 7303E9D0008D1628 0083C21EB8023DCD s......(......=. 0C0: 21A31C007303E9AF 00B43F8D160E00B9 !...s.....?..... 0D0: 0E008B1E1C00CD21 7303E993008D360E .......!s.....6. 0E0: 008D3E0000B90A00 FCF3A67503E98000 ..>........u.... 0F0: 8D1E28008B5F1A8A C381C30001B104D3 ..(.._.......... 100: EB240F3C00740143 891E0C00C7060A00 .$.<.t.C........ 110: 5800B8004233C933 D28B1E1C00CD21B4 X...B3.3......!. 120: 408D160000B90E00 8B1E1C00CD218D1E @............!.. 130: 28008B571A33C9B8 00428B1E1C00CD21 (..W.3...B.....! ... .. .. .. .. .. .. .. .. . . . . . . . . 1B0: 018BFE8D0EEC032B CEFCF3A433DB8EDB .......+....3... 1C0: BB70008D06F002FA 8907C747020000FB .p.........G.... 1D0: 9D5F5E5A595B5807 1FEA0001DD21C9CD ._^ZY[X......!.. 1E0: CDCDCDCDCD205649 5255532120CDCDCD ..... VIRUS! ... 1F0: CDCDCDBBBA20536B 6167692022626562 ..... Skagi "beb 200: 6522203E20202020 20BAC8CDCDCDCDCD e" > ....... 210: CDCDCDCDCDCDCDCD CDCDCDCDCDCDCDBC ................ 220: BA20202020204669 6720546562652021 . Fig Tebe ! 230: 2020202020BA0000 0000000000000000 ........... 240: 0000000000000000 0000000000000000 ................ *** последующие строки идентичны предыдущей *** 2B0: 0000000000000000 0000301230121C42 ..........0.0..B 2C0: 4542450D50B8C800 E6428AC4E642E461 EBE.P....B...B.a 2D0: 0C03E661E80800E4 6124FCE66158C3B9 ...a....a$..aX.. 2E0: 74272E8A052E3A05 7500E2F9C3E4608A t'....:.u.....`. ... .. .. .. .. .. .. .. .. . . . . . . . . 3D0: 518D362602BF7406 F3A559BF1407F3A5 Q.6&..t...Y..... 3E0: 59BFB407F3A55F5E 5A595B58071F2EA3 Y....._^ZY[X.... 3F0: EA0358EA00000000 302A0000 ..X.....0*..
Неформальное название связано с тем, что, подобно вирусу С-648, данный вирус, наряду с заражением файлов, вызывает перезагрузку операционной системы.
Формально С-257 -- это файловый нерезидентный вирус, заражающий файлы с расширением COM в текущем оглавлении. Заражает командный процессор.
Заражает COM-файлы текущего оглавления длиной до 64767 (FCFFh) байтов при запуске инфицированной программы. Файлы заражаются однократно. Копирует себя в конец файла и изменяет его первые 4 байта ( XCHG AX,DX; JMP Virus_Start). Длина файлов при заражении увеличивается на 257 байтов.
Вирус имеет ряд проявлений. Во-первых, в зараженных программах портится дата создания файла. Во-вторых, при некоторых значениях текущего времени запуск зараженной программы ведет к перезагрузке компьютера. Вирус не блокирует сообщения о защите от записи. Зараженные программы теряют способность обрабатывать параметры.
Код вируса достаточно примитивен и содержит много ошибок и неточностей. В частности, вирус не закрывает открываемые файлы (по одному на заражаемую программу). При этом открыть их может очень много (в зависимости от количества файлов в текущем каталоге). При просмотре дампа зараженной программы видна текстовая строка "*.COM".
Исторические сведения. Происхождение неизвестно. Обнаружен летом 1990 г. в Кемерово Е.Н.Сусликовым. Автору передан Д.Н.Лозинским.
Неформальные названия. Помимо приведенного выше, неизвестны.
Методы и средства защиты. Полифаги SOS, Aidstest. Полидетектор Scan (версии до 77, включительно) данный вирус не детектирует. Детектирование можно выполнять по сигнатурам, приведенным в прил.1.
Фрагмент дампа дрозофилы, зараженной вирусом С-257 000: 92E81500D8A10800 8B1E0A00891E0800 ................ 010: A30A00B8004CCD21 125BE800005A5289 .....L.!.[...ZR. 020: D681C6C10089D82D 040089C7B90400A4 .......-........ ... .. .. .. .. .. .. .. .. . . . . . . . . 0C0: B80242CD2172D15A 5283EA04B90001B4 ..B.!r.ZR....... 0D0: 40CD21CC139090E9 3B1092E81500B840 @.!.....;......@ 0E0: 008E2A2E434F4D00 B43ECD21B42CCD21 ..*.COM..>.!.,.! 0F0: 80FA0A7DE2909090 90909090909090EA ...}............ 100: 0000FFFF00000000 0000000000000000 ................ 110: 0000000000000000 00 .........
Неформальное название связано с содержащейся в теле вируса текстовой строкой. Помимо заражения программ, никаких действий вирус не выполняет. Формально С-273 -- это файловый нерезидентный вирус, заражающий файлы с расширением COM в текущем оглавлении. Заражает командный процессор.
Контроль длины заражаемых файлов не предусмотрен. Файлы заражаются однократно. Копирует себя в конец файла и изменяет его первые 4 байта (JMP Virus_Start, EBh). В качестве признака заражения используется четвертый байт программы. Для зараженных вирусом программ он равен EBh. Длина файлов при заражении увеличивается на 273 байта.
Вирус содержит характерную для начинающих программировать на ассемблере IBM PC ошибку -- некорректно возвращает управление зараженной программе. Это связано с использованием для выхода команды Ret Near вместо команды Ret Far. В результате в стеке после возврата управления остается лишнее слово. Вирус не блокирует сообщения о защите от записи.
Код вируса достаточно примитивен и содержит ряд других ошибок и неточностей. При просмотре дампа зараженной программы видна текстовая строка "Эта программа написанна в МГТУ студентом группы ИУ4" (сохранена орфография автора -- Н.Н.Безруков).
Исторические сведения. О происхождении можно судить по приведенной в тексте вируса строке. Обнаружен летом 1990 г. Автору передан Д.Н.Лозинским. Имеются более поздние версии, принадлежащие той же техно-крысе.
Неформальные названия. Помимо приведенного выше, неизвестны.
Методы и средства защиты. Полифаги SOS, Aidstest. Полидетектор Scan данный вирус не детектирует. Детектирование можно выполнять по сигнатурам, приведенным в прил.1.
Фрагмент дампа дрозофилы, зараженной вирусом С-273 000: E90000EB3E902A2E 636F6D00E92D0DBA ....>.*.com..-.. 010: 9DE2A020AF70AEA3 70A0ACACA020ADA0 Эта программа на 020: AFA8E1A0ADADA020 A2208C83929320E1 писанна в МГТУ с 030: E2E3A4A5ADE2AEAC 20A370E3AFAFEB20 тудентом гpуппы 040: 889334 ИУ4 +------- начало тела вируса V BB01018B07 0503008BE8B44E8D ...........N. 050: 16030103D5CD2172 02EB03E99700BA9E ......!r........ 060: 00B002B43DCD218B F0B43F8BDEB90400 ....=.!...?..... 070: 8D16090103D5CD21 8D1E090103DD8A47 .......!.......G 080: 033CEB745BB442B0 00B90000BA00008B .<.t[.B......... ... .. .. .. .. .. .. .. .. . . . . . . . . 0C0: 408D0E0D028D1600 012BCA8BD581C200 @........+...... 0D0: 01CD21B440B90400 8D16090103D5CD21 ..!.@..........! 0E0: 8BDEB43ECD218D16 030103D5B44FCD21 ...>.!.......O.! 0F0: 7203E969FF8BC58D 3E0D0203F8BE0001 r..i....>....... 100: 8B0589048B450289 4402B800011E50C3 .....E..D.....P. 110: E92D0DBA00000000 0000000000000000 .-..............
Как уже указывалось, резидентные файловые вирусы являются наиболее многочисленной группой компьютерных вирусов для MS DOS и поэтому в рамках данной работы невозможно охватить эту группу полностью. По-видимому, к весне 1991 г. общее количество резидентных вирусов, обнаруженных в СССР, превысит сто. Учитывая сроки издания книги и темпы обнаружения новых вирусов, было бы нереально попытаться описать их все. Вместо этого, было принято решение достаточно подробно описать наиболее распространенные вирусы, а также типичных представителей основных подгрупп. Это позволяет "разложить по полочкам" значительный объем известной по рассматриваемому классу вирусов информации. Учитывая, что "ничто не ново под луной" и новые вирусы часто являются вариациями уже известных, такой подход представляется вполне оправданным.
Как и в предыдущей главе, в кодах вирусов, описываемых в данной главе, расширения будут опускаться, поскольку группа, к которой принадлежит вирус, ясна из контекста.
Данная немногочисленная группа берет начало с вируса RС-1701 -- первого резидентного файлового вируса, попавшего в СССР. В настоящее время группа включает несколько вирусов с длиной порядка 1700 байтов, имеющих характерный визуальный эффект "опадания" букв на экране. Вместе с тем, следует предостеречь от однозначной привязки демонстрационного эффекта присущего тому или иному вирусу к самому этому вирусу. Известны случаи "кражи" удачного демонстрационного эффекта другими техно-крысами, как это, в частности, имеет место в рассматриваемом случае (см. гл. 7).
Данный вирус, по-видимому, является родоначальником группы. Его название связано с тем, что в зараженной им системе при определенных условиях начинается "падение" букв с верхних строк экрана вниз, сопровождаемое негромким звуком, напоминающим шорох, и блокировкой клавиатуры.
Формально вирус RС-1701 -- файловый резидентный вирус, поражающий файлы типа СОМ. Функционирует на версиях MS DOS, начиная с 2.0 (в теле вируса имеется проверка). Распространяется как на PC XT, так и на PC AT. Стратегия заражения -- при запуске файлов на выполнение. Файлы заражаются однократно.
Длина тела вируса 1701 (6А5h) байтов. Максимальная длина заражаемого файла составляет 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 (не используемой в существующих версиях MS DOS). функции 4Bh прерывания 21h. Если нет, вирус инсталлируется в младших адресах свободной оперативной памяти, перехватывая прерывания 1Ch, 21h и 28h. В результате, при запуске любой программы вирус получает управление, проверяет, является ли запускаемая программа зараженной, и если нет, то заражает данную программу на диске. В процессе заражения файла вирус создает в памяти свою копию, кодирует ее и дописывает в конец заражаемого файла. Затем у файла изменяются первые 3 байта (организуется переход на начало тела вируса).
При выполнении зараженной программы управление командой JMP (начинающейся с байта Е9h) передается на начало вируса. Первыми командами вирус узнает длину исходного файла и раскодирует свое тело. Затем вирус восстанавливает измененные им при заражении файла первые три байта программы, проверяет, заражен компьютер или нет, и если не заражен, то посредством манипуляций с MCB, PSP и 2 раза копируя себя, остается резидентным в памяти. Чтобы по окончании работы программы-вирусоносителя резидентная часть вируса не была удалена из памяти, данный вирус выполняет достаточно тонкую операцию, заключающуюся в сдвиге загруженной программы в область старших адресов, записи себя на освободившееся место и соответствующей корректировке системных блоков.
Демонстрационный эффект привязан к часам, причем условие запуска выбрано так, что он проявляется в основном на машинах типа XT, при установленной дате. На AT визуальный эффект в обычных условиях не наблюдается, хотя вирус успешно размножается. По некоторым данным, он возникает при установке даты на третий квартал 1988 г. В указанных случаях, если загружается файл COMMAND.COM и он отмечен как зараженный, то вирус демаскируется, демонстрируя свое присутствие с помощью эффекта "падающих букв" на экране монитора. Сеансы опадания букв происходят через определенные интервалы времени. В процессе падения букв клавиатура блокируется и работать с компьютером становится невозможно до полного опадания букв на экране. При этом падение каждой буквы сопровождается характерным звуком, напоминающим шорох. На неспециалистов эта "шутка" часто производит впечатление аппаратной неисправности.
Никаких других несанкционированных действий вирус не выполняет, поэтому в целом его деятельность можно было бы охарактеризовать как мелкое хулиганство, если бы не одно обстоятельство. При заражении некоторых системных программ, используемых преимущественно в AUTOEXEC.BAT, он может вызывать блокировку загрузки MS DOS. Эта блокировка, в частности, возникает на ПЭВМ ЕС-1840 при заражении программы E1840.COM (EDISK.COM), которая обычно включается в состав AUTOEXEC.BAT и обеспечивает разделение одного физического диска на два логических, по 360К каждый (А и С на одном дисководе, B и D на другом). Этот эффект не был предусмотрен разработчиком вируса, что, впрочем, не освобождает его от ответственности. Вместе с тем, ситуация с EС-1840 может служить наглядной иллюстрацией того факта, что при заражении системных программ любой вирус может создавать опасные побочные эффекты. Поэтому любые компьютерные вирусы следует немедленно удалять, как только они появились, даже если путем анализа или из надежных источников установлено, что никаких разрушительных действий они не выполняют.
Резидентная часть вируса легко обнаруживается путем просмотра списка резидентных программ (с помощью утилит MAP, SMAP, MMAP и т.д.). Как видно из приводимой ниже карты памяти, в списке загруженных программ появляется дополнительная строка, описывающая безымянную программу, не имеющую имени родителя.
Вирус RC-1701 является одним из первых вирусов, в которых предприняты определенные усилия, направленные на усложнение процесса его дизассемблирования. В частности, основная часть тела вируса шифруется с помощью операции "исключающее ИЛИ". Поэтому непосредственное дизассемблирование зараженной программы пакетным дизассемблером полной информации о структуре вируса не дает. Ключ шифровки зависит от длины файла, поэтому два зараженных файла разной длины не имеют общих подстрок, за исключением начала инсталлятора. По той же причине текстовых строк тело вируса не содержит.
Исторические сведения. Данный вирус появился в Западной Европе в первой половине 1988 г. (см., например, статью [Computing88]). Об этом также свидетельствуют даты создания версий программы 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 не срабатывает на попытку вируса стать резидентным, поскольку вирус предварительно перехватывает прерывание 21h. При использовании системы управления доступом к винчестеру (Disk Manager, Advanced Disk Manager и т.д.) вирус не в состоянии попасть в разделы винчестера, для которых установлен статус READ ONLY. Специальные средства защиты от данного вируса принципиально могут включать детектор, фаг для резидентной части, резидентный и пакетный фаги для зараженных файлов, активную и пассивную вакцину. Контекстный детектор может быть создан только на основе поиска начальных 16 байтов вируса, поскольку остальная часть вируса шифруется. Рекомендуемые фаги приведены в прил.1.
Фрагмент дампа программы 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(......
Пример карты памяти зараженного компьютера. В приводимой ниже карте памяти резидентная часть вируса занимает последнюю строку (1E1E) таблицы резидентных программ. Ее длина, указанная в графе "bytes", не соответствует действительной. Перехватываемые прерывания также не указаны.
Addr Program Parent Sg Bytes Hooked Vectors ------ -------- -------- -- ------ ---------------- (1A66) DOS N/A 3 5504 (1B4E) E1840 DOS 2 1280 (1BE2) DOSEDIT DOS 2 2032 (1E1E) N/A N/A 1 64
Данный штамм отличается от исходного исправленной ошибкой, связанной с проверкой фирмы -- изготовителя BIOS. Других особенностей, по-видимому, не имеет. Детектируется полидетектором Scan. Длина штамма 1704 (6A8h) байтов.
Данный штамм отличается от исходного фазой проявления, которая связана с форматированием жесткого диска. Детектируется полидетектором Scan. Длина штамма 1704 (6A8h) байта.
Иерусалимская группа получила свое название в связи с тем, что один из представителей этой группы был обнаружен в конце 1987 г. студентом Иерусалимского университета. В настоящее время это самая распространенная группа резидентных файловых вирусов. Она включает довольно много разновидностей (штаммов), отличающихся по своим размерам, вызываемым эффектам и типам заражаемых файлов. Из них наиболее распространенным является исторически первый штамм, который в пятницу, приходящуюся на 13 число, удаляет все запускаемые файлы. Другими словами, если в этот день файл, содержащий исполняемую программу, запускается на выполнение на зараженной машине, вирус удаляет его с диска и при попытке повторного выполнения этой программы MS DOS сообщит, что соответствующий файл не найден. Большинство представителей этой группы заражают COM-файлы, размещая свое тело в начале, а не в конце, как большинство других групп вирусов. Характерным также является метод маркировки зараженных файлов: в конец файла дописывается специальная строка ("MsDos" для "базисной" версии вируса).
Вирус RСЕ-1813 получил название Black Friday -- Черная пятница, поскольку, если 13 число месяца приходится на пятницу, то он удаляет все запускаемые файлы. Впервые обнаружен в Израиле, поэтому другим распространенным названием вируса является Israeli Virus -- Израильский вирус. Формально вирус RСЕ-1813 является резидентным файловым вирусом, поражающим как СОМ-, так и ЕХЕ-файлы. Работоспособен на версиях, начиная с 2.0, как на PC XT, так и на PC AT.
При выполнении зараженной программы вирус вначале проверяет наличие своей копии в памяти компьютера. Для этой цели используется вызов функции 21h-E0h. Если получен ответ "вирус уже имеется", то в случае, когда вирусоносителем является COM-файл, вызывается функция 21h-DDh, которая выполняет перезапись хозяина на место вируса. Иначе управление передается зараженной программе.
Если проверка показала, что вирус в памяти отсутствует, то вирус инсталлируется, выполняя следующие действия:
Использование для постановки в резидент прерывания 21h-31h означает, что вирус виден по карте памяти (см. ниже). Из нее видно, что после загрузки в память вирус перехватывает прерывания 08h и 21h. После того, как вирус RСЕ-1813 стал резидентным, он пытается заразить каждый запускаемый файл, за исключением файлов с именем COMMAND.COM.
Файлы типа СОМ поражаются данным вирусом однократно, при этом дата их создания не меняется, а длина увеличивается на 1813 байтов. В инфицированной программе тело вируса размещается в начале файла, поскольку при заражении COM-файла вирус выделяет область памяти (с помощью функции 48h прерывания 21h), в которую копирует сначала свое тело, а затем зараженный файл. Полученный образ зараженного файла записывается на диск с добавлением 5-байтового поля (обычно это поле содержит "MsDos", однако имеются штаммы с другим содержанием), используемого вирусом в качестве признака зараженности COM-файлов. Ограничений на длину файлов нет, поэтому вирус уничтожает COM-файлы, длина которых после заражения превысит 64K. Вирус не заражает COMMAND.COM, определяя его по имени файла.
ЕХЕ-файлы (включая оверлейные) поражаются многократно, порой разрастаясь до невероятных размеров, достигающих предельно допустимого для данной машины размера (например, Norton Commander может достичь размера в несколько сот Кбайт). Дата создания не изменяется, а длина при каждом заражении увеличивается на 1808 -- 1823 байта. Тело вируса размещается обычно в конце файла, однако в случае, если поражаемый EXE-файл имеет неверную длину в заголовке (это имеет место, например, в ряде программ, использующих часть своего файла в качестве буфера на диске для хранения промежуточных данных), то вирус размещается в середине. Такой эффект наблюдается для Foxbase, QC и ряда других больших программ, использующих часть своего дискового файла в качестве буфера или неявного оверлея. При изменении заголовка файла вирус записывает в поле контрольной суммы значение 1984h.
Фаза проявления наступает через некоторое время после того, как вирус стал резидентным (это время зависит от тактовой частоты ЭВМ и для обычных РС ХТ с тактовой частотой 4.77 МГц составляет примерно полчаса) и зависит от даты и дня недели. В "обычный" день, не приходящийся на пятницу, совпадающую с 13 числом, проявление данного вируса состоит в замедлении работы ЭВМ. При этом выдача любой команды, например DIR, приводит к медленному "выползанию" строк на экран. Этот эффект основан на том, что вирус перехватывает прерывание от таймера (8h) и при каждом прерывании 8h выполняет цикл из нескольких тысяч команд. Обычно через некоторое время после начала фазы проявления действия вируса приводят к зависанию MS DOS с сообщением "Stack overflow". Вторым визуальным эффектом является вырывание кусков изображения с появлением на экране черного окна в левом нижнем углу экрана (вирус выполняет скроллинг части экрана). Если текущий день недели -- пятница, а текущее число -- 13, то стадия проявления меняется: в такие дни вирус не заражает собой все запускаемые файлы, а просто удаляет их с диска. Таким образом, при попытке запустить программу на выполнение MS DOS выдает сообщение о том, что файл не найден. В результате будут уничтожены все файлы, которые пользователь пытается запускать, пытаясь выяснить, что происходит с компьютером. Поэтому непреложным правилом поведения пользователей должно стать следующее: при возникновении каких-то аномалий необходимо перегрузиться с защищенной дискеты и уже после этого пытаться анализировать, что произошло с компьютером. Как уже отмечалось, из-за ошибки в тексте вируса при заражении как COM-, так и EXE-файлов, имеющих размер, дающий при увеличении на 1808 -- 1821 байтов величину, превосходящую 64К, 128К и т.д., заражаемая программа необратимо портится, перезаписываясь в начале.
Исторические сведения. Вирус RСE-1813 появился в Израиле в конце 1987 г. Это первый известный вирус, заражавший EXE-файлы достаточно универсальным способом. В дальнейшем этот способ стал своего рода "стандартом" для файловых вирусов. Несмотря на сравнительную примитивность, вирус RCE-1813 является одним из самых распространенных в мире.
В СССР обнаружен в ноябре 1988 г. в одном из московских кооперативов. Первый детектор был, по-видимому, разработан в Институте программных систем (Переславль-Залесский), однако эта программа до Киева не дошла. В Киеве обнаружен весной 1989 г. По результатам анкеты, проведенной автором на апрельском семинаре, RCE-1813 был обнаружен в 10 организациях из 50, принявших участие в анкетировании. Поскольку распространение средств защиты несколько запоздало, вирус распространился довольно широко и нанес определенный ущерб: десятки, если не сотни тысяч часов были потеряны на восстановление и перезапись зараженных программ.
Первыми использовавшимися в киевской практике детекторами для этого вируса были Doctor А.А.Чижова и Antidos киевской разработки, которые появились примерно в июне. Первые фаги, использовавшиеся в Киеве для борьбы с этим вирусом, были разработаны А.А.Чижовым (Doctor1) и Л.И.Обуховым (Fag1813 -- август 1989 г.). Одновременно с фагом Л.И.Обуховым была разработана первая отечественная резидентная вакцина Vac1813R и вакцина-детектор Vac1813Q, выдающая предупреждающее сообщение при запуске зараженной вирусом RCE-1813 программы. Вакцина содержала обработчик неиспользуемого в MS DOS прерывания Е0, используемого вирусом для определения, имеется ли в оперативной памяти копия вируса или нет (если этот обработчик возвращает значение 3, то вирус считает, что он уже является резидентным и загрузку собственной копии не выполняет). Позднее В.В.Пономаренко была разработана поливакцина NeatVac (Софтпанорама, т.2, No. 7), развившая этот метод и для других резидентных вирусов.
Зарубежные программы появились в СССР несколько позднее. Первой из них была австрийская программа Fag_SU, разработанная Joe Ratcatcher & Anre Molnar.
Неформальные названия. Данный вирус имеет более десяти неформальных названий. Среди них: Hebrew University, PLO (ООП), Black Hole (Черная дыра), Вирус замедления, Time (Время -- О.Г.Котик). Полидетектор Scan называет данный вирус "Jerusalem Virus Version B [Jeru]".
Методы и средства защиты. Зараженность файла легко определяется визуально, путем просмотра дампа. В настоящее время все полифаги и полидетекторы распознают этот вид вируса (см. прил.1). Однако некоторые фаги не обрабатывают случай, когда вирус находится в середине файла. Поэтому результаты их работы необходимо контролировать с помощью контекстного поиска по всему диску. Поскольку для каждого зараженного СОМ-файла вирус в конце дописывает признак зараженности, который состоит из 5 байтов, содержащих слово MsDos, можно реализовать пассивное вакцинирование СОМ-файлов от этого типа вирусов. Для этой цели применима, например, команда COPY, если заготовить слово MsDos в отдельном файле, а затем конкатенировать COM-файлы с этим файлом.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-1813 +---------------- команда обхода области данных | (дрозофила перемещена в конец файла - см. ниже) +-----+ 000:|E9920073554D7344 6F7300018F250000 ...sUMsDos...%.. 010: 001000D800AD0F5C 06FD1856059D1007 .......\...V.... 020: 7E00000000000000 0000000000000000 ~............... 030: 000E258000000080 000E255C000E256C ..%.......%\..%l 040: 000E250004FABA29 0053A1000000004D ..%....).S.....M 050: 5A8000C300730160 00EA0AFFFF771710 Z....s.`.....w.. 060: 078419C50077171E 0000009090909090 .....w.......... 070: 0500200021001B01 00021000707D0100 .. .!.......p}.. 080: B9412A9B434F4D4D 414E442E434F4D01 .A*.COMMAND.COM. 0090: 0000000000 +--------- J-сигнатура | 095 |FCB4E0 CD2180FCE0731680 .........!...s.. 0A0: FC037211B4DDBF00 01BE100703F72E8B ..r............. 0B0: 8D1100CD218CC805 10008ED0BC000750 ....!..........P ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 5E0: 1B00B82425CD2107 1F5F5E5A595B589D ...$%.!.._^ZY[X. 5F0: 2EFF2E1700000000 0000000000000000 ................ 600: 4D9D100010383133 522E434F4D000122 M....813R.COM.." 610: E9920073554D7344 6F7300018F250000 ...sUMsDos...%.. 620: 001000D800AD0F5C 06FD1856059D1007 .......\...V.... 630: 7E00000000000000 0000000000000000 ~............... 640: 000E258000000080 000E255C000E256C ..%.......%\..%l 650: 000E250004FABA29 0053A1000000004D ..%....).S.....M 660: 5A8000C300730160 00EA0AFFFF771710 Z....s.`.....w.. 670: 078419C50077171E 0000009090909090 .....w.......... 680: 0500200021001B01 00021000707D0100 .. .!.......p}.. 690: B9412A9B434F4D4D 414E442E434F4D01 .A*.COMMAND.COM. 6A0: 0000000000FCB4E0 CD2180FCE0731680 .........!...s.. ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . +------------------------ тело дрозофилы | 710:|9090909090909090 9090909090909090 ................ 720:|4D73446F73 MsDos +----------+ +--------------- признак зараженности COM-файла
Пример карты памяти зараженного компьютера. В приводимой ниже карте памяти резидентная часть вируса занимает последнюю строку (1CD0) таблицы резидентных программ. Перехватываемые прерывания соответствуют действительности.
Addr Program Parent Sg Bytes Hooked Vectors ------ -------- -------- -- ------ ---------------- (19A6) DOS N/A 2 3536 (1A8E) E1840 DOS 2 1280 (1C4C) DOSEDIT DOS 2 2064 (1CD0) N/A DOS 1 1824 08 21
Данный штамм получил название Sunday -- воскресенье, поскольку в этот день недели вирус удаляет все запускаемые файлы. Формально вирус RСЕ-1636 является резидентным файловым вирусом, поражающим как СОМ-файлы, так и ЕХЕ-файлы. Вирус не проверяет версию MS DOS, на которой функционирует. Работоспособен на версиях, начиная с 2.0 как на PC XT, так и на PC AT.
При выполнении зараженной программы вирус вначале проверяет наличие своей копии в памяти компьютера аналогично тому, как это делает вирус RCE-1813. Затем вирус инсталлируется и перехватывает прерывания 21h и 8. Механизм размножения вируса стандартен -- перехват прерывания 21h (функции 4Bh) и заражение каждой подходящей запускаемой на выполнение программы, за исключением файла с именем COMMAND.COM. Ограничений на длину файлов нет, поэтому вирус уничтожает COM-файлы, длина которых после заражения превысит 64K.
Файлы типа СОМ поражаются данным вирусом однократно, при этом дата их создания не меняется, а длина увеличивается на 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, удаляет их с диска. Перехватывая прерывание от таймера (прерывание 8), вирус отсчитывает один час от начала режима удаления запускаемых файлов и выводит приведенное выше сообщение. Вирус имеет несколько штаммов, в одном из которых в этом месте допущена ошибка и данная ветвь кода никогда не выполняется. Аналогично вирусу RCE-1813, возможна запись вируса в середину "расширенных" EXE-файлов.
Исторические сведения. Вирус RСE-1636 появился в конце 1988 -- начале 1989 г. в США. В СССР обнаружен в марте 1990 г. в Ленинграде и Киеве, а чуть позднее в Москве. Первым отечественным полифагом для данного вируса был, по-видимому, Aidstest (версии, начиная с апреля 1990 г.). Анализ кода позволяет предположить, что автор использовал в качестве основы для его написания вирус RCE-1813.
Неформальные названия. Помимо приведенных в заголовке неизвестны. Полидетектор Scan называет данный штамм "Sunday Virus [Sunday]".
Методы и средства защиты. Зараженность файла легко определяется путем визуального просмотра дампа. Для входного контроля можно применять полидетектор Scan. Рекомендуемые полифаги приведены в прил.1.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-1636 000: E992000131C8F7E1 EEE70001F51E0000 ....1........... 010: 002200AA00DF0F60 02FD125605C61090 .".....`...V.... 020: 7E00000000000000 0000000000004506 ~.............E. 030: 10E02B8000000080 00E02B5C00E02B6C ..+.......+\..+l 040: 00E01B80006C3E12 00D33900F006004D .....l>...9....M 050: 5AC4017500000020 003906FFFF160E5D Z..u... .9.....] 060: 068419C400160E1E 000000909090CD20 ............... 070: 050020008814A579 0002100060E30000 .. ....y....`... 080: B9412A9B434F4D4D 414E442E434F4D01 .A*.COMMAND.COM. 090: 0000000000 +------ начало инсталлятора | |FCB4FF CD2180FCFF731580 .........!...s.. 0A0: FC047210B4DDBF00 01BE5F0603F72E8B ..r......._..... 0B0: 4D11CD218CC80510 008ED0BC5D0650B8 M..!........].P. 0C0: C40050CBFC062E8C 0631002E8C063900 ..P......1....9. ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 240: 1F00907E5E5B582E FF0E1F002EFF2E13 ...~^[X......... 250: 00546F6461792069 732053756E446179 .Today is SunDay 260: 212057687920646F 20796F7520776F72 ! Why do you wor 270: 6B20736F20686172 643F0A0D416C6C20 k so hard?..All 280: 20776F726B20616E 64206E6F20706C61 work and no pla 290: 79206D616B652079 6F7520612064756C y make you a dul 2A0: 6C20626F79210A0D 436F6D65206F6E20 l boy!..Come on 2B0: 21204C6574277320 676F206F75742061 ! Let's go out a 2C0: 6E64206861766520 736F6D652066756E nd have some fun 2D0: 21249C80FCFF7505 B800049DCF80FCDD !$....u......... 2E0: 740E3D004B7503EB 35909D2EFF2E1700 t.=.Ku..5....... ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 5F0: 9D2EFF2E1700FC03 0000000000000000 ................ 600: 0000000000000000 0000000000000000 ................ 610: 0000000000000000 0000000000000000 ................ 620: 0000000000000000 00002C0825460008 ..........,.%F.. 630: 250825C60716026C 1540003CFC04000D %.%....l.@.<.... 640: C97E9300010702D4 00F51E55C8556CFE .~.........U.Ul. 650: B98B00803EEB54A2 4C80003E00435690 ....>.T.L..>.CV. 660: 9090909090909090 9090909090909090 ................ 670: 9090909090909090 90909090909090CD ................ 680: 20C8F7E1EEE7 ...... +--------+ +----------- признак зараженности файла
Как уже указывалось, вирусы иерусалимской группы относятся к одним из самых распространенных. Хотя некоторые из них выделены в СССР (первоапрельская подгруппа, вирус Fu Manchu), их правильнее относить к "ископаемым" вирусам (см. гл.6). Имеется ряд вирусов отечественной разработки, основанных на вирусе RCE-1813 и, тем самым, относящихся к иерусалимской группе. Среди них отметим воронежскую подгруппу, описываемую ниже.
Данная группа резидентных вирусов включает вирус TP-44, первым из болгарских получивший глобальное распространение. В связи с этим она может рассматриваться как классический продукт "болгарского вирусного взрыва". По данным В.Бончева, все вирусы, входящие в данную группу, написаны техно-крысой из софийского вуза ВМЕИ им. В.И.Ленина (теперь Технический университет). В СССР попали 12 вирусов этой группы. Вирусы разработаны в конце 1988 -- начале 1989 г. Впервые эти вирусы были описаны В.Бончевым (окончившим, кстати, ВМЕИ им. В.И.Ленина в 1984 г.), который, по его собственному признанию, знаком с написавшей их техно-крысой. Обращают на себя внимание некоторые факты. В статье [Бончев89б] В.Бончев утверждает, что заражение EXE-файла несколько сложнее, чем COM-файла, но возможно, хотя на самом деле сложность заражения COM- и EXE-файлов примерно одинакова. Действительно, первые штаммы вирусов данной группы заражают EXE-файл специальным, более сложным способом, основанным на предварительной переделке EXE-файла в COM-файл. Кроме того, бросается в глаза подробность, с которой В.Бончевым описаны технические решения, использованные в ряде штаммов этой группы, причем само описание ведется с характерной скорее для разработчика, чем для исследователя точки зрения. В частности, в статье указана такая "тонкая" подробность, как "вытеснение" старшими штаммами группы штаммов с меньшими номерами в зараженных файлах, хотя в самой статье упоминаются только вирусы подгруппы VACSINE, для которых "вытеснение" имеет место лишь в оперативной памяти. В статье указывается, что автором создан и фаг для этой группы вирусов, а единственным известным болгарским полифагом для данной группы является программа TP48CLS В.Бончева. И, наконец, по оценке большинства исследователей, вирусы написаны специалистом высокой квалификации. Ни один из вирусов этой группы не ориентирован на нанесение вреда данным или программам на зараженном им компьютере.
Для большинства представителей этой группы отличительным признаком является строка F47Ah в начале и конце (кроме версии TP-45 (Yankee Doodle-2D)) вируса. При этом в конце вируса за этой строкой следует номер штамма. Как видно из приводимых ниже дампов, байт F4h расположен со смещением 4 от конца, а байт 7Ah -- со смещением 3. Следующий за этой парой байтов (F4h, 7Ah) байт и определяет номер штамма.
Штаммы, входящие в данную группу, можно разделить на три подгруппы.
В первом приближении "динамика" изменений свойств данной группы вирусов может быть представлена следующим образом (изложение базируется на материалах Д.Н.Лозинского): до версии 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. Одновременно в начале вируса дублируется сигнатура F47Ah и номер версии. Версия TP-45 при заражении EXE-программы в конец файла эту информацию не пишет. С версии TP-24 размножение не обнаруживается резидентными антивирусными программами, следящими за записью в программные файлы, поскольку вирус передает управление непосредственно в BIOS, обходя сторожей. С версии TP-33 вирусы принимают меры защиты от трассировки. В предыдущей главе описан нерезидентный вирус E-1961, называемый Scan "Yankee Doodle Short", однако с данной группой его объединяет только общность играемой мелодии.
Для данного семейства вирусов просматривается прямая аналогия с описанной выше игрой Animal, хотя конструктивная цель в данном случае отсутствует. Номер версии вируса используется данным вирусом для идентификации себя в оперативной памяти и возвращается резидентными частями вируса при выполнении функции С500h прерывания 21h для версий 19h, 21h, 22h или функции C600h для версий 26h, 29h, 2Сh. При этом, если запускать поочередно файлы, зараженные вирусами разных версий в порядке возрастания версий, то в оперативной памяти будет создана как бы цепочка резидентных вирусов, причем при запуске незараженной программы она будет инфицирована версией вируса с наибольшим номером. Если же начать загружать зараженные программы в порядке убывания версии вируса, то версии с меньшими номерами не будут становиться резидентными. Используя эту идею, В.В.Пономаренко создал резидентную поливакцину NeatVac (см. Софтпанорама, т.2, No. 7), позволяющую блокировать заражение оперативной памяти данным вирусом.
Кроме того, и это существенно усиливает аналогию с игрой Animal, резидентный вирус, входящий в подгруппу самоедов, при попытке заражения некоторой программы не только контролирует, заражена уже эта программа или нет, но и определяет номер версии, если программа уже заражена одним из вирусов данной группы. Дальнейшие действия вируса зависят от того, больше этот номер версии его собственного номера или нет. Если программа заражена вирусом с меньшим номером, то вирус заменит эту версию на свою, предварительно "выкусив" старую. Поскольку вирус при этом проверяет только последние байты файла, можно вакцинировать файл от большинства вирусов этой группы, дописав в конец строку F4 7A FF 00.
Полидетектор Scan называет представителей данной группы вирусов "Vacsina virus [Vacs]" или "Yankee Doodle Virus [Doodle]", причем ранние (до 66) версии Scan часто выдают для зараженного файла оба имени одновременно, что обычно не означает заражения модуля двумя вирусами, а связано с несовершенством используемых в нем сигнатур.
Данная подгруппа получила свое название в связи с тем, что все входящие в нее штаммы содержат строку "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.
Данный вирус является наиболее распространенным в подгруппе. Формально вирус RСE-1206 является файловым резидентным вирусом, поражающим как файлы типа СОМ, так и файлы типа EXE. Зараженный COMMAND.COM имеет размер 26509 байтов (если его первоначальный размер был 25307 байтов). Длина вируса составляет 1206 (4B6h) байтов. Заражаются COM-файлы длиной от 1206 (4B6h) до 62867 (F593h) байтов и EXE-файлы длиной до 64947 (FDB3h) байтов при загрузке их в память для выполнения (21h-4Bh).
Инсталляция вируса выполняется обычным образом. При выполнении зараженной COM-программы управление командой JMP (Е9h) передается на начало вируса. Первыми командами вирус узнает длину исходного файла и проверяет наличие своей копии в памяти компьютера. Если компьютер не заражен, то вирус копирует всю программу в свободное место в памяти и, таким образом, остается резидентным. Затем вирус перехватывает прерывание 21h. В результате при запуске любой программы вирус получает управление, проверяет, является ли запускаемая программа зараженной, и если нет, то заражает данную программу на диске. Определение зараженности программы основано на считывании последних 3 байтов зараженной программы.
У заражаемого COM-файла вирус проверяет первый байт. Если этот байт не равен E9h (JMP), то файл не заражается. При заражении длина файла увеличивается до значения, кратного параграфу (16 байтов), к файлу добавляются 1206 байтов вируса и изменяются первые 3 байта файла (JMP на тело вируса). При заражении EXE-файла к нему дописываются 132 байта из тела вируса и изменяются первые 3 байта файла (JMP на тело вируса), при этом файл преобразуется в формат COM. Дописанные к файлу 132 байта не распространяют вирус и лишены способности к размножению. Их действие заключается в настройке адресов программы при ее запуске (псевдозагрузчик).
Фаза проявления для данного вируса привязана к моменту заражения файла: при заражении файла раздается звуковой сигнал (BELL).
Резидентная часть вируса обнаруживается путем просмотра списка резидентных программ. При этом видна "подозрительная" дополнительная программа, не имеющая ни имени, ни родителя и имеющая размер 1200 байтов. Являясь резидентным, вирус распознает случаи загрузки программ с защищенных от записи дискет или разделов винчестера и не пытается заражать такие файлы.
При запуске вирус создает на диске скрытый файл, который, по-видимому, никакой функции не выполняет и, возможно, использовался при отладке.
Исторические сведения. По данным B.Бончева, вирус разработан в конце 1988 г. В Москве вирус появился весной 1989 г. В Киеве появился вместе с компьютерами, приобретенными у одного из московских кооперативов в сентябре 1989 г. Из советских авторов вирус RСЕ-1206 впервые, по-видимому, описал О.Г.Котик в документации к полифагу Anti-Kot, который был первым фагом против данного вируса, широко использовавшимся в Киеве.
Неформальные названия. Помимо приведенных выше названий, используется название Sina.
Методы и средства защиты. Зараженность программы легко определяется визуально при просмотре дампа. Рекомендуемые фаги приведены в прил.1. Их же можно использовать и для входного контроля. Вакцина -- NeatVac.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-1206 100: E9C90A9090909090 9090909090909090 ................ 110: 9090909090909090 9090909090909090 ................ *** Далее следуют строки, идентичные предыдущей *** 810: 9090909090909090 9090909090C31A90 ................ 820: 4D07004B00000000 0000000000000000 M..K............ 830: 60020B105605AB0E 2000050090909090 `...V... ....... 840: 9090C31A00564143 53494E4120202020 .....VACSINA 850: 0000800000000000 7C1137A80040C200 ........|.7..@.. 860: 460A000000000000 0020202020202020 F........ 870: 2020202020202020 2020202020E80000 ... 880: 5B508CC00510008B 0E0E0103C8894FFB [P............O. 890: 8B0E160103C8894F F78B0E1001894FF9 .......O......O. ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 8F0: 9C3D004B74069D2E FF2E0000061E5557 .=.Kt.........UW 900: 56525153508BECB8 2435CD212E8C0606 VRQSP...$5.!.... 910: 002E891E04000E1F BABD00B82425CD21 ............$%.! 920: 0E1FBA1400B40FCD 21B800438E5E0E8B ........!..C.^.. 930: 5606CD217303E9DA 012E890E0800B801 V..!s........... 940: 4380E1FECD217303 E9C801B8023D8E5E C....!s......=.^ 970: 060075142E813E0C 004D5A7503E9B501 ..u...>..MZu.... CA0: 258CD28EDABAC000 CD21B800008EC026 %........!.....& CB0: C706C5007F3926C6 06C700058CC88ED8 .....9&......... CC0: B41ABA5000CD212E 8B47FBE94EFF1F07 ...P..!..G..N... CD0: 0502F47A0500 ...z.. +----+ сигнатура Пример карты памяти зараженного компьютера Addr Program Parent Sg Bytes Hooked Vectors ------ -------- -------- -- ------ --------------- (1111) DOS N/A 2 3536 (17E8) DOSEDIT DOS 2 2016 21 (11F9) DOSEDIT DOS 2 2032 (127B) BETA DOS 2 4064 (0007) N/A N/A 1 1200
За исключением нескольких команд, вирус практически полностью совпадает с вирусом RCE-1206. Длина вируса составляет 1212 байтов. Портит дату создания файла.
Исторические сведения. Вирус распространялся на вирусной дискете В.Бончева. Содержащийся на ней файл TP4VIR.COM датирован 13 декабря 1988 г.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-1212 000: E969089090909090 9090909090909090 .i.............. 010: 9090909090909090 9090909090909090 ................ *** последующие строки идентичны предыдущей *** 4C0: 4D07004B00000000 0000000000000000 M..K............ 4D0: 5C06FD1856059D10 2000050090909090 \...V... ....... 4E0: 9090909005564143 53494E4120202020 .....VACSINA 4F0: 0000800000000000 7011C3900240C200 ........p....@.. 500: D009000000000000 0020202020202020 ......... 510: 2020202020202020 2020202020E80000 ... 520: 5B508CC00510008B 0E0E0103C8894FFB [P............O. 530: 8B0E160103C8894F F78B0E1001894FF9 .......O......O. ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 940: 1E00005BB821258C D28EDABAC000CD21 ...[.!%........! 950: B800008EC026C706 C5007F3926C606C7 .....&.....9&... 960: 00048CC88ED8B41A BA5000CD212E8B47 .........P..!..G 970: FBE948FFC0040301 F47A0400 ..H......z.. +----+ сигнатура
Длина этого вируса составляет 1339 (53Bh) при заражении COM- и 1483 -- EXE-файлов. Как и во всех вирусах рассматриваемой подгруппы, заражение EXE-файлов происходит в две стадии. После первой стадии файл удлиняется на 132 байта. Никаких действий, кроме размножения, вирус не выполняет. Заражаются COM-файлы длиной от 1339 (53Bh) до 62601 (F489h) байтов и EXE-файлы длиной до 64947 (FDB3h) байтов при загрузке их в память для выполнения (21h-4Bh). По структуре вирус довольно близок к RCE-1206 (Vacsina-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.. +-----+ сигнатура
Штаммы, входящие в данную группу, имеют характерную фазу проявления: в зараженной ими системе попытка перезагрузки MS DOS с помощью комбинации нажатий клавиш CTRL-ALT-DEL вызывает в начале звучание мелодии "Янки Дудль Денди". Звучание продолжается примерно 20 с, а затем происходит нормальная перезагрузка системы.
Вирус RСE-1805 является файловым резидентным вирусом, поражающим как файлы типа СОМ, так и файлы типа EXE. Заражение файлов происходит при запуске на выполнение соответствующих программ. Заражает COMMAND.COM. Вирус работоспособен на любой версии MS DOS.
При запуске зараженной программы данный вирус сначала проверяет, имеется ли уже резидентный вирус, по описанной выше схеме, единой для данной группы. При этой проверке возвращается номер версии резидентного вируса, если он есть в оперативной памяти. Если номер версии резидентного вируса меньше, чем номер версии вируса в зараженной программе, или вирус в оперативной памяти отсутствует, то старшая версия вируса из зараженной программы становится резидентной и перехватывает прерывания 09 и 21h.
Заражение выполняется при запуске программы на выполнение. Получив управление по функции 4Bh прерывания 21h, вирус проверяет, является ли запускаемая программа зараженной, и если нет, то заражает данную программу на диске. При этом вирус изменяет первые 14 байтов зараженной программы и дописывает в конце программы собственное тело. Определение зараженности программы основано на считывании последних 8 байтов зараженной программы. Подобно вирусу RC-1701, RCE-1805 не проверяет, загружается ли файл с защищенной дискеты или нет.
Зараженные файлы увеличиваются в размере на 1805-1820 байтов, причем дата их создания и атрибуты остаются неизменными. Заражение выполняется однократно.
Фаза проявления была описана выше. Никаких других несанкционированных действий, кроме проигрывания мелодии при нажатии клавиш CTRL-ALT-DEL, вирус не выполняет.
Резидентная часть вируса обнаруживается путем просмотра списка резидентных программ (с помощью утилит MAP, SMAP, MMAP и т.д.). При этом видна "подозрительная" дополнительная программа, не имеющая ни имени, ни родителя и имеющая размер 1792 байта. При этом в графе "Hooked vectors" не указано ни одного перехваченного прерывания, что, конечно же, не соответствует действительности. Вирус обращается к прерыванию 21h непосредственно, а не с помощью команды INT, что обеспечивает обход простейших фильтров типа VirBlk.
Исторические сведения. Данный вирус был обнаружен в Киеве в июле 1989 г. Одними из первых этот вирус исследовали В.Е.Еременко и Е.Ю.Портной, которые самостоятельно разработали для него фаг в сентябре 1989 г. Первым фагом против данного вируса, распространяемым бесплатно, была вторая версия популярного киевского полифага Vdeath Ю.М.Ревзина, появившаяся примерно в это же время. В настоящее время вирус практически полностью уничтожен.
Методы и средства защиты. Зараженность программы легко определяется при визуальном просмотре дампа по последним байтам файла. Для входного контроля можно использовать полидетектор Scan. Рекомендуемые полифаги приведены в прил.1. Вирус содержит примитивные средства защиты против трассировки и обхода резидентных средств защиты. В частности, попытки записи вируса в запускаемый файл не обнаруживаются ни VirBlk, ни Anti4us2. Фильтр Anti4us2 не срабатывает на попытку вируса стать резидентным. При использовании Advanced Disk Manager вирус не в состоянии попасть в разделы винчестера, для которых установлен статус READ ONLY. Однако при этом блокируется вызов программ. Имеется резидентная вакцина (NeatVac).
Фрагмент дампа дрозофилы, зараженной вирусом RCE-1805 000: E9B5079090909090 9090909090909090 ................ 010: 9090909090909090 9090909090909090 ................ *** Последующие строки идентичны предыдущей *** 400: 4D08007000000000 0000000000000000 M..p............ 410: 050EC32B60142602 5605E3281101FB2A ...+`.&.V..(...* ... .. .. .. .. .. .. .. .. . . . . . . . . 490: 0672043412EAF0FF 00F0582EFF2E1C00 .r.4......X..... 4A0: 9C3D004B74613D00 C574483D01C57448 .=.Kta=..tH=..tH 4B0: 3D02C5744B3D03C5 740C9D2EFF2E1000 =..tK=..t....... ... .. .. .. .. .. .. .. .. . . . . . . . . 5F0: B900008BD18B1E22 00E843FE72E583FA ......."..C.r... 600: 0075E03D200076DB 3D1DF09073D5A305 .u.= .v.=...s... 610: 07B80042B900008B D18B1E2200E81FFE ...B.......".... 620: 72C1BA2D00B90E00 B43FE812FE72B43D r..-.....?...r.= 630: 0E0075AF813E2D00 4D5A740B813E2D00 ..u..>-.MZt..>-. ... .. .. .. .. .. .. .. .. . . . . . . . . AA0: C400DC00C400AE00 A400AE00C400DC00 ................ AB0: F600DC00AE00DC00 F6000601DC00C400 ................ AC0: 0601F60025010601 0601FFFF19191919 ....%........... AD0: 1919191919191919 3232191919191919 ........22...... AE0: 1919191919193232 1A191A1919191919 ......22........ AF0: 1A191A1919191E1A 191A191919191E19 ................ B00: 1919193232000493 91F47A1990 ...22.....z..
Данный штамм практически не отличается от предыдущего.
Фрагмент дампа программы DUMY.COM, зараженной вирусом RCE-1760 000: E9B8039090909090 9090909090909090 ................ 010: 9090909090909090 9090909090909090 ................ 020: 9090909090909090 9090909090909090 ................ 030: 4D08006D00000000 0000000000000000 M..m............ 040: 3903981460146402 56059D10E6049A11 9...`.d.V....... 050: 2000050045002100 000000012F909090 ...E.!...../... 060: 9090909090909090 909090FF2E10009C ................ 070: FA2EFF1E1400C353 502E8B1E2200B445 .......SP..."..E 080: E8ECFF72098BD8B4 3EE8E3FFEB01F858 ...r....>......X ... .. .. .. .. .. .. .. .. . . . . . . . . 0D0: 9C3D004B74613D00 C574483D01C57448 .=.Kta=..tH=..tH 0E0: 3D02C5744B3D03C5 740C9D2EFF2E1000 =..tK=..t....... 0F0: 9DFBF9CA0200B819 002EF6062B000275 ............+..u ... .. .. .. .. .. .. .. .. . . . . . . . . 6C0: 00C4000601F60025 0106010601FFFF19 .......%........ 6D0: 1919191919191919 1919193232191919 ...........22... 6E0: 1919191919191919 1932321A191A1919 .........22..... 6F0: 1919191A191A1919 191E1A191A191919 ................ 700: 191E191919193232 30009391F47A1890 ......220....z.. +----+ сигнатура
В данную подгруппу входят наиболее совершенные штаммы данной группы вирусов. По-видимому, все представители данной группы играют в 17 ч мелодию "Янки Дудль Денди", поэтому их иногда называют Five o'clock (Пять часов). Штаммы, входящие в данную подгруппу, увеличивают свои функциональные возможности с возрастанием номера версии. Стиль написания вируса создает впечатление перекодировки с языка высокого уровня. Возможно, прототип был предварительно написан на Турбо Паскале, отсюда, возможно и произошло название TP. По другой версии, сообщенной В.Бончевым, ТР являются инициалами техно-крысы, написавшей данную группу. Для структуры этой подгруппы характерно наличие многочисленных подпрограмм и активное использование стека. При анализе дампов программ, зараженных штаммами данной подгруппы, обращает на себя внимание тот факт, что все они содержат группы повторяющихся символов с кодом 05. Эта особенность существенно облегчает визуальное опознавание зараженных файлов при просмотре дампа.
Начиная со штамма RCE-2661 (ТР-38), в них применяется защита от обнаружения фильтрами, перехватывающими прерывание 21h. Примененный прием основан на выполнении трассировки программ, "сидящих" на прерывании 21h до попадания в "оригинальный" обработчик MS DOS, и запоминании соответствующего адреса. Кроме того, именно с этого штамма наблюдается эффект "самоизлечения" зараженной программы при попытке трассировки ее на зараженной вирусом машине.
Среди данной подгруппы впервые встречается попытка реализовать модификацию одного вируса другим вирусом. Начиная со штамма ТР-42, вирус проверяет, заражен ли компьютер, на котором он распространяется, вирусом Bx1-1C (Пинг-понг). Если да, то выполняется модификация вируса Bx1-1C в памяти таким образом, что в код вируса вводится специальный счетчик, инициализируемый значением 255. После заражения дискеты вирус уменьшает счетчик на единицу и при достижении счетчиком значения нуль перестает размножаться. Кроме того, начиная со штамма TP-44, мелодия играется не ежедневно, а с вероятностью приблизительно 1/8, что несколько затрудняет обнаружение вируса.
Наиболее распространенным представителем этой группы является штамм RCE-2885 (Five o'clock; TP-44), с которого начнем описание представителей данной группы.
Вирус 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 (21h-48h) и, манипулируя с MCB, остается резидентным в памяти, перехватывая прерывания 21h, 1Ch и 09h.
Вирус RCE-2885 проверяет, загружается ли файл с защищенной дискеты или нет. Поэтому он не препятствует загрузке любого СОМ-файла с защищенной дискеты. Резидентная часть вируса не обнаруживается путем просмотра списка резидентных программ. При этом вирус не детектируется программой Release, а попытка запустить Release на зараженной машине приводит к выдаче сообщения о том, что Release не может стать резидентным. Вирус обходит контроль резидентных фильтров, следящих за записью в программные файлы.
Фаза проявления данного вируса состоит в проигрывании с вероятностью 1/8 мелодии "Янки Дудль Денди" в 17 ч (точнее, в 16 ч 59 мин 53 с). Никаких разрушений или манипулирований с данными вирус не выполняет.
При попытке дизассемблирования дизассемблером Sourcer, а также трассировке на зараженной машине наблюдается эффект "самовыкусывания" вируса из зараженных файлов. Этот эффект, впервые встретившийся именно в вирусах данной группы, достигается за счет контроля прерываний 1 и 3 при получении управления по прерыванию 1Ch. По умолчанию процедуры обработки этих прерываний состоят из одной команды возврата. При загрузке программы, перехватывающей данные прерывания (программа трассировки или дизассемблер типа Sourcer), вирус устанавливает для указанных прерываний собственные процедуры обработки. Последние проверяют, не произошли ли эти прерывания из кодового сегмента, в котором расположена резидентная часть вируса, и если да, запускают подпрограмму восстановления кода вируса, тем самым отключая программу трассировки. Другими словами, контроль прерываний 1 и 3 состоит в том, что, пока процедуры обработки этих прерываний состоят из одной команды возврата из прерывания, никаких действий вирусом не производится, но стоит загрузить программу, модифицирующую адреса обработчика данных прерываний (например, отладчик), как вирус установит для них собственные процедуры обработки. Аналогичным образом реализовано самоизлечение загружаемых в трассировщик зараженных файлов: резидентная часть вируса отслеживает момент загрузки программы в память без исполнения (21h-4Bh, AH=03) и проверяет, загружают в память зараженную программу или нет. В последнем случае запускается подпрограмма "выкусывания" вируса. Как уже указывалось, при заражении файлов, зараженных предыдущими версиями вируса, выполняется сначала "выкусывание", а затем заражение данным штаммом.
Исторические сведения. Впервые вирус был описан В.Бончевым под названием TP-44. Данный вирус был обнаружен в Киеве в сентябре 1989 г. Первым фагом для данного вируса были программы RVC и RVE (для COM- и EXE-файлов соответственно). Несколько позднее появилась вторая версия полифага Vdeath Ю.М.Ревзина. В настоящее время данные программы представляют только исторический интерес.
Неформальные названия. Помимо приведенных в заголовке, используются следующие названия: Янки Дудль, Музыкальный, Летучий Голландец, TP-44.
Методы и средства защиты. Зараженность программ видна при визуальном просмотре дампа (в конце файла видны характерные строки, содержащие группы повторяющихся символов с кодом 05h). Для входного контроля можно использовать любой подходящий полидетектор или полифаг (см. прил.1). Простейшие сторожа недостаточно эффективны против данного вируса. В частности, попытки записи вируса в запускаемый файл не обнаруживаются ни VirBlk, ни Anti4us2. Эффективна защита на уровне дискового драйвера (Advanced Disk Manager, Dcache и т.д.). Как уже указывалось, вирус содержит примитивные средства защиты против трассировки.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-2885 100: E90E089090909090 9090909090909090 ................ 110: 9090040090909090 9090909090909090 ................ 120: 9090909090909090 9090909090909090 ................ 130: 9090909090909090 909090C37A3D0000 ............z=.. 140: F47A2C0000003C00 BE0A909090909090 .z,...<......... 150: 9090909090909090 9090909090909090 ................ 160: 9090909090909090 9090601479026014 ..........`.y.`. 170: 790256058C4253FF 00F00500B6643B13 y.V..BS......d;. ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 1F0: 2C15C4172C15C417 C51A671CC51AC417 ,...,.....g..... 200: 2C15EF122C15C51A 2C15EF12C7112C15 ,...,...,.....,. 210: C417C711EF12E60F C711C711FFFF0505 ................ 220: 0505050505050505 0505090905050505 ................ 230: 0505050505050505 0909050505050505 ................ 240: 0505050505050505 0605050505050505 ................ 250: 06050505050909FE 067A7DFE06FB7D74 .........z}...}t ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . +----- начало инсталлятора вируса V 911: E800005B81EBD4 072EC6875C00FFFC ....[.......\... 920: 2E80BF5B00007418 BE0A0003F3BF0001 ...[..t......... 930: B92000F3A40E2EFF B76400061E50EB13 . .......d...P.. ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . C20: 931DB0B9C6010692 375049E8D5719722 ........7PI..q." C30: A6E64C50BE2A23BE 441DA1A66BA0E006 ..LP.*#.D...k... C40: AA1AF62AC0022F75 99060F5B97023E64 ...*../u...[..>d C50: 7DC8506608C4FA92 8E64751BA61BB932 }.Pf.....du....2 C60: BD0B3E616DE0C4B9 29CA9C170821EAEE ..>am...)....!.. C70: 7E85B1632AC37171 2CA0F28B590DF9D5 ~..c*.qq,...Y... C80: 00F47A2C00 ..z,. +----+ сигнатура
Этот штамм, по-видимому, является первым представителем подгруппы самоедов. Именно в нем была добавлена часть, обеспечивающая восстановление оригинального кода вируса при изменении до 16 последовательных байтов (с помощью самокорректирующегося кода Хемминга). Вирус играет мелодию "Янки Дудль Денди" в 17 ч.
Исторические сведения. Данный вирус распространялся на вирусной дискете В.Бончева в файле TP33VIR.COM, датированном 17 февраля 1989 г.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-2680 100: E99F069090909090 9090909090909090 ................ 110: 9090909090909090 9090909090909090 ................ 120: 9090909090909090 9090909090909090 ................ 130: 9090909090909090 90909090909090C3 ................ 140: 4D0800AF00000000 0000000000000000 M............... 150: 6002FD1660147402 5605631353FF00F0 `...`.t.V.c.S... 160: 20000500BB916A13 0000C60052002EC6 .....j.....R... 170: 5C077000558B5C07 7000010001909090 \.p.U.\.p....... 180: 9090909090909090 90909087DB87DB90 ................ 190: 6402C711C711E60F 280EC711280EE60F d.......(...(... ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 1F0: 2C15EF12C7112C15 C417C711EF12E60F ,.....,......... 200: C711C711FFFF0505 0505050505050505 ................ 210: 0505090905050505 0505050505050505 ................ 220: 0909050505050505 0505050505050505 ................ 230: 0605050505050505 0605050505090950 ...............P 240: 53B800008EC026C4 1C895D028C450426 S.....&...]..E.& 250: 803FCF740A268B07 890526C707CD1C5B .?.t.&....&....[ ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . +---- начало инсталлятора вируса V 7A2: E800005B81EB 65065053BB2100F8 C....[..e.PS.!.. 7B0: B803C5CD215B7223 83FCF0721E2E8B97 ....![r#...r.... 7C0: 0300428CD903D18E C28BF38BFEB9780A ..B...........x. ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . B90: 4390CFD2EF3B32E9 5F393E674E4B471B C....;2._9>gNKG. BA0: D22B7A58EC6C90D9 E60A21B50D5FB446 .+zX.l....!.._.F BB0: 40009391F47A2190 @....z! +----+ сигнатура
Фрагмент дампа дрозофилы, зараженной вирусом RCE-2568 100: E98F069090909090 9090909090909090 ................ 110: 9090909090909090 9090909090909090 ................ 120: 9090909090909090 9090909090909090 ................ 130: 9090909090909090 90909090909090C3 ................ 140: 6002FD1660147402 5605233C53FF00F0 `...`.t.V.#<S... 150: 2000050093916A13 0000B60042002EA3 .....j.....B... 160: 5C07700087EC5C07 7000010001909090 \.p...\.p....... 170: 9090909090909090 90909087DB87DB90 ................ ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 1E0: 2C15EF12C7112C15 C417C711EF12E60F ,.....,......... 1F0: C711C711FFFF0505 0505050505050505 ................ 200: 0505090905050505 0505050505050505 ................ 210: 0909050505050505 0505050505050505 ................ 220: 0605050505050505 0605050505090950 ...............P 230: 53B800008EC026C4 1C895D028C450426 S.....&...]..E.& 240: 803FCF740A268B07 890526C707CD1C5B .?.t.&....&....[ ... .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . +---- начало инсталлятора вируса V 792: E800005B81EB 55065053BB2200F8 C....[..U.PS.".. 7A0: B803C5CD215B7203 E9AE00598CC88ED8 ....![r....Y.... 7B0: 8EC02E8A87070A2E A200018BC18B8F02 ................ ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . B10: 46A9D1AE675742D9 6A5B8E0E1F21D50A F...gWB.j[...!.. B20: 4FFC427B17B1F9F2 684532D06EF9DDA4 O.B{....hE2.n... B30: DC014D1AFC655125 DD88256102BD0D0C ..M..eQ%..%a.... B40: 40009391F47A2290 @....z" +----+ сигнатура
В данном штамме добавлена логика, обеспечивающая обход фильтров, перехватывающих прерывание 21h. Примененный прием основан на выполнении трассировки программ, "сидящих" на прерывании 21h до попадания в "оригинальный" обработчик MS DOS и запоминании соответствующего адреса. Кроме того, именно с этой версии наблюдается эффект "самоизлечения" зараженной программы при попытке трассировки ее на зараженной вирусом машине.
Исторические сведения. Данный вирус распространялся на вирусной дискете В.Бончева в файле TP38VIR.COM, датированном 28 февраля 1989 г.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-2756 100: E9DB079090909090 9090909090909090 ................ *** Последующие строки идентичны предыдущей *** 120: 9090909090909090 9090909090909090 ................ 130: 9090909090909090 90909090909090C3 ................ 140: F47A260000004000 400A909090909090 .z&...@.@....... 150: 9090909090909090 9090909090909090 ................ 160: 9090909090909090 9090720EA0196014 ..........r...`. 170: 74025605D656E008 A01920000500FABB t.V..V... ..... 180: 28140000DC006800 2EA35C07700087EC (.....h...\.p... ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 200: EF122C15C51A2C15 EF12C7112C15C417 ..,...,.....,... 210: C711EF12E60FC711 C711FFFF05050505 ................ 220: 0505050505050505 0909050505050505 ................ 230: 0505050505050909 0505050505050505 ................ 240: 0505050505050605 0505050505050605 ................ 250: 0505050909505333 C08EC026C41C895D .....PS3...&...] 260: 028C450426803FCF 740A268B07890526 ..E.&.?.t.&....& 270: C707CD1C5B58C356 57BE0400BF4800E8 ....[X.VW....H.. ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . начало инсталлятора вируса ----+ V 8DE: E800 ..U..t...R.QC... 8E0: 005B81EBA107FC2E 80BF5600007418BE .[........V..t.. 8F0: 0A0003F3BF0001B9 2000F3A40E2EFFB7 ....... ....... ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . BC0: F0435C6B7478F6AE 05B22AD44954519F .C\ktx....*.ITQ. BD0: DD99113FEAE02D2E 6DCC95C81233C43E ....?.-.m....3.> BE0: 5A2B8B33E11C3E88 C4806AC3DEFF6F33 Z+.3..>...j...o3 BF0: 44223341E9BC133D CA1B92C402A0D2FD D"3A...=........ C00:|F47A2600 .z& +-----+ сигнатура
Данный вирус отличается от TP-44 лишь незначительными деталями.
Исторические сведения. Вирус распространялся на вирусной дискете В.Бончева в файле COMMAND.VIR. По-видимому, вирус разработан весной 1989 г.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-2901 000: E906089090909090 9090909090909090 ................ ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 030: F47A2D0000003000 C60A909090909090 .z-...0......... 040: 9090909090909090 9090909090909090 ................ 050: 9090909090909090 9090390398146014 ..........9...`. ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 100: C417C711EF12E60F C711C711FFFF0505 ................ 110: 0505050505050505 0505090905050505 ................ 120: 0505050505050505 0909050505050505 ................ 130: 0505050505050505 0605050505050505 ................ 140: 06050505050909FE 067A7DFE06FB7D74 .........z}...}t 150: 05EA007C0000FC33 C08EC0BE2A7DBF4C ...|...3....*}.L ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . B60: DBDB30252E0A0049 34C355356A362F79 ..0%...I4.U5j6/y B70: 2B8E340D1D0D0629 F94636B8AD18F6AA +.4....).F6..... B80: 00F47A2D00 ..z-. +----+ B-сигнатура
Разрушение или модификация данных в вирусе не предусмотрена. Длина вируса составляет 2932 (B74h) байтов. Заражаются COM-файлы длиной от 20h до F247h байт и EXE-файлы любой длины. Код вируса отличается от кода RCE-2885 лишь меньшей степенью отработанности (не выделены некоторые подпрограммы, поэтому длина вируса больше). Отличия в проявлениях сводятся к тому, что в 17 ч мелодия играется всегда.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-2932 000: E92F089090909090 9090909090909090 ./.............. ... .. .. .. .. .. .. .. .. . . . . . . . . 030: F47A290000003000 EE0A909090909090 .z)...0......... ... .. .. .. .. .. .. .. .. . . . . . . . . 110: 0505050505050505 0505090905050505 ................ 120: 0505050505050505 0909050505050505 ................ 130: 0505050505050505 0605050505050505 ................ ... .. .. .. .. .. .. .. .. . . . . . . . . B60: 419EBF488A06A7BA 0A8993557831908F A..H.......Ux1.. B70: B0BAA467FDFB369D F825859828EEBB8E ...g..6..%..(... B80: A4276E3D35E3DC9E 472D3C7C5AE5D407 .'n=5...G-<|Z... B90: 805C01401F4CBCFC 3DC3E86DA14C4554 .\.@.L..=..m.LET BA0: F47A2900 .z). +----+ сигнатура
Эта группа является одной из наиболее опасных групп вирусов. В настоящее время включает порядка двадцати вирусов, из которых два -- RCE-1800 (Dark Avenger) и RCE-02000 (Anti-Bontchev) -- получили глобальное распространение. Как уже указывалось, данная группа разработана в Болгарии техно-крысой, называющей себя Dark Avenger, который активно распространяет не только зараженные ими программы, но и исходные тексты. Эта техно-крыса также специально троянизирует антивирусные программы, заражая их новыми типами вирусов и загружая в BBS полученную троянскую программу под видом новой версии. Судя по некоторым его поступкам, не исключено, что Dark Avenger является криминально ориентированным психопатом и, тем самым, представляет значительную общественную опасность. Остается лишь сожалеть об отсутствии в Болгарии, как впрочем и в СССР, законов, по которым техно-крыс можно было бы привлекать к уголовной ответственности. В США или Великобритании за подобную деятельность Dark Avenger, если бы его признали психически полноценным, провел бы несколько лет за тюремной решеткой.
Код вирусов этой группы свидетельствует о глубоком знании MS DOS, причем с патологическим пристрастием к деталям. Возможно, что в своей "легальной" деятельности Dark Avenger так или иначе связан с разработкой сетевого программного обеспечения.
Вирус RCE-1800 получил свое название в связи с тем, что в теле вируса содержатся две достаточно длинные текстовые строки:
Формально RCE-1800 является файловым резидентным вирусом, поражающим как файлы типа СОМ, так и файлы типа EXE. Это первый попавший в СССР вирус, стратегия размножения которого предусматривает заражение программ не только при их выполнении, но и при других операциях доступа к соответствующим файлам. Поэтому при отсутствии противодействия RCE-1800 размножается гораздо быстрее ранее рассмотренных вирусов. Помимо заражения при запуске программ на выполнение, файлы заражаются при создании, переименовании, открытии и закрытии (прерывания 21h-4Bh, 21h-3Ch, 21h-5Bh, 21h-56h, 21h-3Dh, 21h-2h). Такая стратегия размножения делает этот вирус весьма опасным, поскольку, если в зараженной системе запустить программу, систематически просматривающую файлы во всех подкаталогах (например, ревизор), то большая часть СOM- и EXE-файлов будет в результате заражена.
При запуске зараженной программы вирус сначала проверяет наличие в оперативной памяти своей копии. При этом копия проверяется полностью, и в случае обнаружения изменений с этого места в память записывается исходный код вируса. Это существенно затрудняет нейтрализацию вируса в оперативной памяти. Если вирус не нашел в оперативной памяти своей копии, то он загружается в верхнюю область системной памяти, а затем резервирует для себя участок памяти, манипулируя с MCB и используя функции MS DOS (выделения, освобождения и изменения размеров выделенной памяти). При загрузке в старшие адреса памяти вирус затирает транзитную часть COMMAND.COM. Поэтому при первой же команде с консоли транзитная часть вызывается повторно, что и приводит к ее заражению.
На фазе инсталляции вирус определяет расположение в ПЗУ обработчика прерывания 13h как для дискеты, так и для жесткого диска. Все необходимые сведения для этой цели он берет из векторов 40h и 41h, где содержатся, соответственно, адрес обработчика прерывания 13h в ПЗУ и адрес таблицы параметров для винчестера. Алгоритм определения адреса прерывания 13h в ПЗУ, используемый вирусом, не универсален, и он работает не для всех типов IBM-совместимых компьютеров. Помимо прерывания 13h, вирус перехватывает прерывания 21h и 27h. Прерывание 21h используется стандартным образом (отслеживаются приведенные выше подфункции), а прерыванием 27h вирус пользуется для того, чтобы проверять, не изменился ли вектор 21h, и при необходимости восстанавливать его.
Зараженные 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", что позволяет выявить все уничтоженные сектора глобальным контекстным поиском по диску. При заражении файлов или уничтожении секторов вирус использует прерывание 13h "напрямую" -- управление передается в ПЗУ, минуя текущий обработчик прерывания. Это позволяет обходить проверки резидентных сторожей.
Вирус предпринимает ряд мер по маскировке своего наличия в оперативной памяти. При старте любой программы вирус помечает программный сегмент как последний и становится невидимым для этой программы, по окончании работы программы вирус помечает программный сегмент как непоследний. При завершении программы вирус восстанавливает первоначальное значение прерывания 21h, если оно было изменено программой. Вирус вставляет себя первым в цепочку программ, получающих управление по прерыванию 21h, а в дальнейшем не позволяет программам встать раньше него в указанном списке. Этот метод "всплытия" позволяет обойти простейшие резидентные сторожа. Вирус обходит контроль программ, следящих за прерыванием 13h, определяя значение этого вектора при инсталляции и в дальнейшем напрямую обращаясь по соответствующему адресу.
Вирус работоспособен на версиях 3.х и 4.х MS DOS. Проверка номера версии в теле вируса не выполняется. На компьютерах с процессором 80386 вирус неработоспособен.
Исторические сведения. Впервые вирус описал В.Бончев [Бончев89г]. RCE-1800 написан в первой половине 1989 г., причем техно-крыса активно распространяла его исходный текст. В Киеве появился вместе с компьютерами, приобретенными у одного из московских кооперативов в сентябре 1989 г. Одним из первых этот вирус выделил В.О.Ткаченко. Фактически данный вирус был первым попавшим в СССР вирусом, который мог уничтожать информацию в базах данных, а не только выполняемые файлы, и ряд организаций серьезно пострадал в результате повреждения вирусом их баз данных. Первые фаги для данного вируса не проверяли его наличие в оперативной памяти, поэтому наблюдались случаи, когда при запуске фага при резидентном вирусе фаг обнаруживал зараженный файл, "выкусывал" вирус, а при закрытии файла он снова оказывался зараженным. Более того, при запуске детектора или ревизора, не проверявших наличие вируса в оперативной памяти, заражались все проверявшиеся файлы, которые еще не были заражены. Поэтому основной особенностью борьбы с данным вирусом являлось быстрое распространение понимания необходимости нейтрализации резидентного вируса у разработчиков фагов и не менее быстрое понимание необходимости проводить "лечение", только загрузившись с эталонной, защищенной от записи дискеты. В силу особой опасности заражения данным вирусом многие организации перешли на сплошной входной контроль поступающего программного обеспечения.
В Москве получил распространение штамм вируса, в котором сообщение "Eddie lives... somewhere in time" заменено на "B O R O D A мстит во времени".
Неформальные названия. Полидетектор Scan называет данный вирус "Dark Avenger virus [Dav]". Помимо приведенных в заголовке, используются названия Avenger (Мститель), Sofia (София), Diana (Диана). Последнее название связано с тем, что в теле вируса содержится строка "Diana P".
Методы и средства защиты. Зараженность файла легко определить визуальным просмотром дампа. Для входного контроля следует использовать любой из рекомендованных в прил.1 фагов в сочетании с полидетектором Scan. Выявление поврежденных файлов можно выполнить с помощью глобального контекстного поиска по диску, обеспечиваемого, например, PCTools. Любые действия по анализу содержимого диска следует выполнять только при условии предварительной загрузки операционной системы с эталонной, защищенной от записи, дискеты. При исследовании вируса автор пренебрег этим правилом, запустив ревизор после заражения COMMAND.COM. В результате, оставаясь резидентным, вирус последовательно заразил порядка 50 COM- и EXE-файлов.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-1800 000: E955079090909090 9090909090909090 .U.............. 010: 9090909090909090 9090909090909090 ................ *** последующие строки идентичны предыдущей *** 6F0: 4564646965206C69 7665732E2E2E736F Eddie lives...so 700: 6D65776865726520 696E2074696D6521 mewhere in time! 710: 00009023121E8CC3 83C3102E039CFF06 ...#............ 720: 2E899C53002E8B9C FD062E899C51008C ...S.........Q.. 730: C383C3102E039C03 078ED32E8BA40107 ................ 740: EA00000000BF0001 81C60507A4A58B26 ...............& 750: 060033DB53FF64F5 E800005E81EE6B00 ..3.S.d....^..k. 760: FC2E81BC05074D5A 740EFA8BE681C408 ......MZt....... 770: 08FB3B26060073CD 5006561E8BFE33C0 ..;&..s.P.V...3. 780: 508ED8C4064C002E 8984F4062E8C84F6 P....L.......... ... .. .. .. .. .. .. .. .. . . . . . . . . D50: 164F072E8C1E5107 33DB8EDBC7068400 .O....Q.3....... D60: EE028C0E86005A5B 581FC35053B462E8 ......Z[X..PS.b. D70: 72FD8CC8484B8EDB F9131E03003BD872 r...HK.......;.r D80: F55B58C3A15B07BA 1000F7E2C3546869 .[X..[.......Thi D90: 732070726F677261 6D20776173207772 s program was wr DA0: 697474656E20696E 2074686520636974 itten in the cit DB0: 79206F6620536F66 6961202843292031 y of Sofia (C) 1 DC0: 3938382D38392044 61726B204176656E 988-89 Dark Aven DD0: 6765720080FC0375 0F80FA807305EAC8 ger....u....s... DE0: 0EFD18EAC80EFD18 EAC80EFD18000121 ...............! DF0: 0090909090909090 ........
Вирус RCE-02000 получил свое название в связи с тем, что в теле вируса содержатся две достаточно длинные текстовые строки:
Вирус вызывает зависание MS DOS при запуске программ, содержащих строку "(c) 1989 by Vesselin Bontchev." В теле вируса имеется также строка "Диана П." (в альтернативной кодировке). Данный вирус является довольно сильно "доработанным" штаммом RCE-1800. Это первый попавший в СССР вирус, маскирующий приращение длины зараженных файлов. Маскировка основана на том, что вирус помечает зараженные файлы, проставляя значение 62 с в дате создания файла, как вирусы венской группы (С-648). Контролируя функции MS DOS типа FindFirst и FindNext, используемые при просмотре оглавления командой DIR, вирус вычитает 2000 из значения поля длины таких элементов оглавления, тем самым маскируя увеличение длины зараженных файлов. Следует отметить, что оболочки типа Norton Commander самостоятельно интерпретируют содержимое секторов с каталогами, не используя указанных выше функций DOS. Для них этот метод маскировки не действует.
Помимо маскировки увеличения длины зараженных файлов, вирус использует ряд недокументированных прерываний, что позволяет обходить слежение за прерываниями 13h и 26h. Зараженные COM-файлы увеличиваются в размере точно на 2000 байтов, причем дата их создания и атрибуты остаются неизменными. Заражение выполняется однократно. При заражении вирус дописывает свое тело в конец файла, вставляя в первые три байта команду перехода на начало вируса. Выравнивание на границу параграфа для COM-файлов не выполняется. Инфицируются COM-файлы длиной от 1959 байтов.
Заражение EXE-файлов характерно тем, что, несмотря на то, что вирус выполняет выравнивание всего тела на границу параграфа, приращение искусственно поддерживается постоянным и равным 2000 байтов. Инфицируются EXE-файлы длиной больше 2000 байтов.
Стадия проявления, как и у вируса RCE-1800, состоит в уничтожении отдельных секторов диска (в них записывается нулевой сектор текущего диска). Если на диске имеются файлы, иммунизированные от вируса C-648 и имеющие длину менее 2000 байтов, то для таких файлов вирус показывает "сумаcшедшее" значение длины (несколько мегабайт).
Исторические сведения. Вирус обнаружен в Москве в апреле 1990 г. Первым данный вирус исследовал Д.Н.Лозинский. Обработка RCE-02000 включена в Aidstest в апреле 1990 г. (начиная с версии 29 от 18.04.90).
Неформальные названия. Полидетектор Scan называет данный вирус "V2000". Кроме приведенных в заголовке, используют еще название Диана П. (в теле вируса содержится строка "Диана П.").
Методы и средства защиты. Зараженность файла видна при просмотре дампа. Для входного контроля можно использовать любой из рекомендованных в прил.1 полифагов в сочетании с полидетектором Scan.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-02000 000: E935089090909090 9090909090909090 .5.............. 010: 9090909090909090 9090909090909090 ................ ... .. .. .. .. .. .. .. .. . . . . . . . . 7D0: 909090909090C31A 5A6F7079206D6520 ........Zopy me 7E0: 2D20492077616E74 20746F2074726176 - I want to trav 7F0: 656C000090511381 C6B5078CC383C310 el...Q.......... 800: 2E035C022E899C96 F82E8B1C2E899C94 ..\............. 810: F88CC383C3102E03 5C068ED32E8B6404 ........\.....d. 820: EA00000000BF0001 81C6BD07A4A58B26 ...............& 830: 060033DB53FF64F5 E800005E81EE6300 ..3.S.d....^..c. 840: FC2EF69489072E81 BCBD074D5A740EFA ...........MZt.. 850: 8BE681C4C008FB3B 26060073C8500656 .......;&..s.P.V ... .. .. .. .. .. .. .. .. . . . . . . . . F00: 268B0E06002BFFBE 8907ACF2AE750D51 &....+.......u.Q F10: 57B91100F3A65F59 75EDEBE4C6061308 W....._Yu....... F20: 00EBC6E8AAFDB451 CD212BFF8BC74B13 .......Q.!+...K. F30: D88EDB8B4503803D 5A72F43B7D0175A9 ....E..=Zr.;}.u. F40: 438EC33D00107203 B80010B103D3E08B C..=..r......... F50: C8F3ABEB94286329 2031393839206279 .....(c) 1989 by F60: 2056657373656C69 6E20426F6E746368 Vesselin Bontch F70: 65762E0080FC0375 0F80FA807305EA59 ev.....u....s..Y F80: EC00F0EA26AF00F0 EA75013E140001A3 ....&....u.>.... F90: 1490909090E90201 84A8A0ADA0208F2E ............. .. FA0: 00558BECFF76069D .U...v..
Поскольку исходный текст вируса RCE-1800 распространялся в Болгарии достаточно широко, неудивительно, что появились вирусы, основанные на использовании кода RCE-1800. Мы рассмотрим лишь один пример вирусов данной группы, которую можно назвать нео-мстителями, -- вирус RCE-1277. В коде этого вируса заметен плагиат из RCE-1800, причем без достаточного понимания функций копируемых фрагментов.
Неформальное название вируса 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. Заражение происходит как при запуске программ на выполнение, так и при открытии файлов (21h-3Вh, 21h-4Bh, 21h-6Ch). Вирус дописывает свое тело в конец файла.
Вирус RCE-1277 заражает командный процессор, если он не имеет атрибута READ ONLY. Пораженный COMMAND.COM имеет размер 27107 байтов (если его первоначальный размер был 25307 байтов). Механизм заражения идентичен использованному в вирусе RCE-1800.
Файлы, имеющие атрибут READ ONLY, вирус не заражает. Проверка номера версии в теле вируса не выполняется. Тип файла определяется вирусом правильно, независимо от используемого расширения. Зараженные COM-файлы увеличиваются в размере на 1277 байтов, причем дата их создания и атрибуты остаются неизменными. Заражение выполняется однократно. При заражении вирус дописывает свое тело в конец файла, вставляя в первые три байта команду перехода на начало вируса. Выравнивание на границу параграфа для COM-файлов не выполняется. Инфицируются COM-файлы длиной свыше 1277 (6Fh) байтов. Заражение EXE-файлов выполняется путем дописывания тела вируса в конец файла без предварительного выравнивания тела на границу параграфа.
При выполнении зараженной программы вирус проверяет наличие своей копии в памяти и, если не находит, то становится резидентным (используя манипуляции с MCB).
Фаза проявления состоит в том, что с 10 до 11 час в динамике начинает раздаваться довольно неприятный высокочастотный свист частотой около 12 кГц, причем интенсивность свиста пропорциональна частоте выдачи прерывания 21h в системе.
В целом вирус производит впечатление не до конца отлаженного. В частности, при попытке заражения защищенной от записи дискеты выдается стандартное сообщение "Abort, Retry...". Это связано с ошибкой в обработчике прерывания 24h.
Вирус работоспособен как на MS DOS 3.x, так на на версии 4.х, причем им используется функция 21-С600, реализованная только в версиях MS DOS, начиная с 4.0. Вирус неработоспособен на процессоре 8086 (8088).
Исторические сведения. Из зарубежных источников, попавших в СССР, первое описание данного вируса приведено, по-видимому, в списке П.Хоффман. Известны авторы этого болгарского вируса RCE-1277, которые якобы хотели таким способом "насолить" своему начальнику. В Болгарии начал распространяться с конца 1989 г. В Киеве первым вирус обнаружил А.Л.Шеховцов (июнь 1990 г.). Несколько позднее он был независимо выявлен в Москве. Первыми фагами для данного вируса были SOS Е.Н.Сусликова и NeaFag В.В.Пономаренко.
Неформальные названия. Помимо приведенного в заголовке, неизвестны.
Методы и средства защиты. Детектирование несложно. Зараженность программы видна при визуальном просмотре дампа. Для входного контроля можно использовать рекомендуемые в прил.1 фаги или полидетектор Scan (версии 77 и более поздние).
Фрагмент дампа дрозофилы, зараженной вирусом 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...... ... .. .. .. .. .. .. .. .. . . . . . . . . +------- J-сигнатура ----------+ | | B80: C31EE80000B8594B CD217203E928015E| ......YK.!r..(.^ B90: 568BFE33C0501FC4 064C002E8984ACFC V..3.P...L...... BA0: 2E8C84AEFCC41E84 002E899DA4FC2E8C ................ BB0: 85A6FCA102013D00 F07569B280A10601 ......=..ui..... BC0: 3D00F0741C80FCC8 725A80FCF47355A8 =..t....rZ...sU. BD0: 7F75518ED8813E00 0055AA75478A1602 .uQ...>..U.uG... ... .. .. .. .. .. .. .. .. . . . . . . . . CB0: 8600FBFE0E7B045E 2E81BC7EFC4D5A75 .....{.^...~.MZu CC0: 1D1F2E8B849AFC2E 8B9C98FC0E592BC8 .............Y+. CD0: 03CB512EFFB496FC 1E07E895FECB582E ..Q...........X. CE0: 8B847EFC2EA30001 2E8B8480FC2EA302 ..~............. CF0: 01B80001500E1F1E 07E876FEC3 ....P.....v..
Данная группа включает вирусы, которые при заражении оперативной памяти размещают свое тело во второй половине таблицы прерываний. Очевидно, что такое размещение накладывает жесткие ограничения на размер вируса и выполняемые функции. Из-за ограничения длины возможно заражение только одного типа файлов (обычно типа СОМ). В настоящее время известны два вируса этого типа. Один из них рассмотрен ниже, а второй -- в разделе о троянизирующих вирусах.
Неформальное название 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Сh и 21h и заражает программы, запускаемые на выполнение.
Отличительной особенностью данного вируса является то, что в оперативной памяти его тело располагается в области второй половины векторов прерываний (0000:200h -- 0000:03FFh). Это может приводить к зависанию компьютера при инсталляции вируса, если к этому моменту одна из резидентных программ использует какой-нибудь из затираемых векторов прерываний.
При запуске зараженной программы RС-492 сначала проверяет с помощью прерывания 21h-35h, имеется ли уже резидентная копия данного вируса (по значению адреса обработчика прерывания 1Сh). Если условие зараженности оперативной памяти выполнено, то вирус передает управление зараженной программе, в противном случае он приступает к поиску и заражению COMMAND.COM в главном каталоге диска С. Затем вирус становится резидентным и перехватывает прерывания 1Ch и 21h. В результате при запуске любой программы вирус получает управление, проверяет, является ли запускаемая программа зараженной, и если нет, то заражает данную программу на диске. У зараженного файла изменены значения первых 6 байтов (организуется переход на начало тела и признак зараженности файла).
Фаза проявления данного вируса в настоящее время еще не ясна. Есть основания считать, что прерывание 1Ch используется вирусом для выбора момента уничтожения информации в выбираемых случайным образом последовательных секторах диска С (похоже, записывается четное число секторов -- 2,4,6). В указанные сектора записывается информация из оперативной памяти компьютера. По мнению Д.Н.Лозинского, есть надежда, что данный фрагмент содержит ошибку и такой момент никогда не наступит.
Код вируса RC-492 не содержит приемов, затрудняющих дизассемблирование и анализ программы.
Исторические сведения. Данный вирус появился в СССР в июле 1990 г. Впервые был выделен автором в ВЦ АН СССР (Moсква) 19 июля 1990 г. и, независимо, Д.Н.Лозинским. B Киеве не отмечался. Первыми фагами для данного вируса были полифаги -V Е.В.Касперского и NeatFag В.В.Пономаренко.
Неформальные названия. Помимо приведенного в заголовке, используется название sI (строка "sI" расположена со смещением 3 от начала зараженной программы).
Методы и средства защиты. Из-за малого размера и отсутствия характерных строк вирус может быть легко пропущен при визуальном просмотре дампа файла. Для входного контроля рекомендуется использовать любые два полифага, из числа рекомендованных в прил.1. Версии полидетектора Scan (до 77 включительно) этот вирус не обнаруживают.
Фрагмент дампа дрозофилы, зараженной вирусом RC-492 000: E91D007349FF9090 90909090909090C3 ...sI........... 010: 0000000000000000 0000000000000000 ................ 020: 2E8B1E010183C303 B104D3EB8CD803C3 ................ 030: 8ED82EA1B001A38C 02BE6F01BF0001FC ..........o..... 040: B90600F3A4B81C35 CD2181FB45027508 .......5.!..E.u. 050: 0E0E1F07680001C3 B810008EC0B90002 ....h........... 060: BF00018BF7F3A406 1EBA7501E835001F ..........u..5.. 070: B81C25BA4502CD21 B82135CD21891E8E ..%.E..!.!5.!... 080: 028C069002BA9202 B82125CD21EBC190 .........!%.!... 090: 9090909090433A5C 434F4D4D414E442E .....C:\COMMAND. 0A0: 434F4D00B43DB002 CD215B1F537303E9 COM..=...![.Ss.. 0B0: 91008BD8B43FB906 00BA6F01CD21727F .....?....o..!r. 0C0: 813E720173497455 813E6F014D5A746F .>r.sItU.>o.MZto ... .. .. .. .. .. .. .. .. . . . . . . . . 1E0: 040083EF018BF7BF 8301ACE86CFFAE74 ............l..t 1F0: 03EB0B90E2F41F5A 521E0EE8A6FE1F5A .......ZR......Z 200: 075D5F5E595B582E FF2E8E02 .]_^Y[X.....
Важный класс вирусов связан с особым эффектом поражения программ -- троянизацией последних. Исторически первым представителем данной группы можно считать вирус С-648, который превращает некоторые программы в троянские, записывая в начало COM-файла команду перехода на подпрограмму перезагрузки. Рассматриваемый ниже вирус является значительно более коварным и изощренным представителем этой группы.
Неформальное название вируса RC-488 связано с тем, что в теле вируса имеются текстовые строки:
"v2 (c) Flu Systems (R)" ("Грипповые системы") "LoveChild in reward for software sealing". ("Внебрачный ребенок в награду за кражу программ").
Формально RC-488 является файловым резидентным вирусом, заражающим COM-файлы. Длина вируса 488 (1E8h) байтов совпадает с приращением при заражении. Файлы заражаются однократно. Командный процессор заражается как обычный COM-файл.
При заражении COM-файлов вирус дописывает себя в конец, изменяя первые четыре байта. Файлы заражаются при их загрузке в память, при открытии и создании (21-3Ch, 21-3Dh, 21-4Bh и 21-5Bh). При заражении длина файлов не проверяется.
При инсталляции записывает свое тело во вторую половину таблицы векторов прерываний, начиная с адреса 0000:01E0h. Проверяет версию операционной cистемы. Использует специальный способ определения адреса вектора 21h и 13h, ориентированный на версию 3.3 MS DOS. Для получения управления по прерыванию 21h использует сплайсинг. Обработка прерывания 13h сводится к замене адреса его обработчика на первоначальное значение, что "отрубает" сторожа, следящие за этим прерыванием, как, впрочем, и драйверы типа 800, обеспечивающие нестандартные форматы записи на дискеты.
Фаза проявления наступает при определенных значениях счетчика времени. При этом вирус либо уничтожает файлы, либо создает вместо файла подкаталог с таким же именем. Кроме того, вирус может модифицировать COM-файлы таким образом, что их запуск вызовет стирание секторов винчестера (стирается вся информация, расположенная на всех секторах, соответствующих 0-3 головкам записи/чтения).
Исторические сведения. Судя по текстовым строкам, RC-488 имеет зарубежное происхождение, однако в доступной автору версии списка П.Хоффман, датированном 10.10.90, описание этого вируса отсутствует. В СССР появился примерно в августе 1990 г. Автору был передан Е.В.Касперским. B Киеве не отмечался.
Неформальные названия. Помимо приведенных выше, неизвестны.
Методы и средства защиты. Данный вирус относится к числу наиболее опасных вирусов-вандалов, что требует жесткого входного контроля поступающего программного обеспечения. Наличие характерных текстовых строк облегчает визуальное определение зараженности файла путем просмотра дампа. Для входного контроля рекомендуется использовать любые два полифага, из числа рекомендованных в прил.1. Версии полидетектора Scan (до 77 включительно) данный вирус не обнаруживают.
Фрагмент дампа дрозофилы, зараженной вирусом RC-488 000: FBE9F200B402B207 CD21CD2000000000 .........!. .... 010: 0000000000000000 0000000000000000 ................ *** далее следуют строки, идентичные предыдущей *** 0E0: 7632202863292046 6C75205379737465 v2 (c) Flu Syste 0F0: 6D732028522933C0 8EC0E800005E8BEE ms (R)3......^.. 100: BFE001FC26813D76 32744881EE1D00B9 ....&.=v2tH..... 110: E801F3A4B430CD21 3D031E7527BE7000 .....0.!=..u'.p. 120: 8EDEBEB400BF4C00 A5A5B80312CD2F26 ......L......./& 130: 8C1EC803BE6014C6 04EA8C4403C74401 .....`.....D..D. 140: CD02EB0F061FBE84 00A5A58C44FEC744 ............D..D 150: FCCD028CC88EC08E D8BF00018BF581C6 ................ 160: 6E00A5A533C083EF 04FFE790909090FB n...3........... 170: E90000B003CFB901 00BA80038BD9B810 ................ 180: 03CD13FECE79F7B6 03FEC5EBF14C6F76 .....y.......Lov 190: 654368696C642069 6E20726577617264 eChild in reward 1A0: 20666F7220736F66 7477617265207365 for software se 1B0: 616C696E672E2EF6 066C0407750A1F5A aling....l..u..Z 1C0: 595B58B441E9FD00 E9EE0088132EFF0E Y[X.A........... 1D0: CB027803E9EE002E FF06CB0280FC4075 ..x...........@u 1E0: 24578BFA813D4D5A 751A2EF6066C0406 $W...=MZu....l.. ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 2B0: B440CD215BB43ECD 212EC706CB02FFFF .@.![.>.!....... 2C0: 1F5A595B58EA6714 0000 .ZY[X.g...
Как и другие продукты человеческой деятельности, компьютерные вирусы претерпевают определенную эволюцию, которая в значительной степени облегчается тем, что в течение значительного отрезка времени среда их размножения (MS DOS) остается практически неизменной. Если попытаться квантовать наблюдаемые непрерывные эволюционные изменения, то можно говорить о поколениях компьютерных вирусов.
Понятие поколения компьютерного вируса связано, в основном, с механизмом размножения и методами маскировки. Наблюдаемый cейчас в ряде публикаций акцент на проявлениях того или иного вируса является неверным: по сути вирус можно разделить на две достаточно независимые части: компоненту размножения и компоненту проявления. При этом именно характеристики компоненты размножения являются основными и определяют место конкретного вируса "в эволюционной цепочке". В то же время популярная пресса акцентирует внимание на компоненте проявления, что видно хотя бы из распространенности неформальных названий типа Тринадцатая пятница, День Колумба, Воскресенье, Пинг-Понг и т.д. Если провести аналогию с авиацией, то компонента размножения соответствует самому летательному аппарату, а компонента проявления -- полезной нагрузке. Очевидно, что один и тот же самолет может доставлять и бомбы, и листовки.
Компонента размножения должна обеспечить две основные функции: получить управление с тем, чтобы обеспечить репликацию вируса; избежать обнаружения, чтобы выжить и выполнить предыдущий пункт.
Важность этих двух функций изменяется в ходе эволюции. На первом этапе эволюции вирусов основной является репликация. При этом вопросам маскировки либо вообще не уделялось внимание, либо они носили несистематический характер и были направлены на маскировку одного или двух изменений, возникающих в зараженной программе или системе. Этому этапу эволюции соответствует первое поколение вирусов -- вирусы, не рассчитанные на преодоление антивирусных средств.
С распространением антивирусных средств вопросы маскировки стали основными, и вирусу для того, чтобы выжить, важно как можно дольше остаться незамеченным. В связи с этим основные усилия при разработке стали направляться именно на маскировку. В результате маскировка приобрела комплексный характер, и соответствующие вирусы можно условно относить к новому поколению вирусов, получившему название стелс-вирусов.
Данный термин употребляется как в узком, так и широком смысле. В узком смысле стелс-вирусами называют резидентные вирусы, которые как бы исчезают из инфицированных программ при наличии вируса в памяти. В этом смысле первым стелс-вирусом можно считать бутовый вирус Brain, который перехватывает прерывание 13h и при попытке просмотра бут-сектора на инфицированной машине подставляет вместо него оригинальный бут-сектор, хранящийся в хвосте вируса. Применительно к файловым вирусам непосредственным аналогом являются подмена длины при чтении элемента оглавления зараженного файла и "выкусывание" вируса при чтении зараженных файлов.
Наиболее важным следствием является возможность "обмана" существующего поколения ревизоров, которые до этого момента считались наиболее надежным методом контроля целостности программ. Естественно, что новое поколение ревизоров учитывает указанные возможности маскировки (см., например, очередную версию ревизора Dinf (Софтпанорама, т.3, No. 2)).
Действия по маскировке можно условно классифицировать на четыре категории:
К первой категории можно отнести автомодификацию инсталлятора с целью затруднить обнаружение детекторами, основанными на контекстном поиске; шифровка всей или части программы (например, текстовых строк); сохранение точки входа в EXE-программах; выкусывание вируса из зараженной программы при попытке просмотра последней при резидентном вирусе; имплантацию тела вируса в программу без увеличения размеров файла; cохранение первого перехода в COM-файлах; маскировка увеличения длины зараженных файлов путем подмены значения соответствующего поля элемента оглавления при операциях FindFirst и FindNext (21h-11h и 21h-12h) с предварительным вычитанием длины вируса (при этом утилиты, которые не используют указанные функции DOS, работая с каталогами непосредственно (например Norton Commander), будут показывать увеличенную длину, а команда DIR -- уменьшенную).
Для маскировки наличия вируса в оперативной памяти используются занесение тела вируса в специальную зону MS DOS (например, в буфера или старшие адреса векторов прерываний); манипуляция MCB, специальные методы перехвата прерываний, обеспечивающие обход сторожей, контролирующих список резидентных программ и состояние векторов прерываний; перехват и модификация дисковых операций с целью скрыть изменения в исполняемых блоках (бут-сектор, MBR); корректировка резидентным вирусом общего объема свободной оперативной памяти с целью скрыть его изменение в результате инсталляции вируса.
Здесь приведены только приемы, которые уже были использованы в том или ином существующем вирусе, однако могут существовать и другие эффективные приемы маскировки. Конечно, граница между указанными двумя поколениями условна, и некоторые исследователи относят к стелс-вирусам любой вирус, который использует хотя бы два из приведенных выше методов маскировки. Автору кажется, что критерий должен быть несколько жестче. Ниже приведены описания двух вирусов, которые, по мнению автора, можно отнести к новому поколению.
Данный вирус принято считать первым стелс-вирусом. RCE-04096 был разработан в Израиле в конце 1989 г. Название "Фродо" связано с тем, что вирус содержит бут-сектор в своем коде, хотя он никогда не записывает свое тело в бут-сектор. При записи этого бут-сектора в бут-сектор дискеты и попытке загрузки выдается "плакатный текст"
FRODO LIVES
("Фродо живет" или "Фродо жив"), выполненный буквами 8*5, состоящими из символов псевдографики. По данным П.Хоффман, 22 сентября -- это день рождения героев известной сказочной трилогии Дж.Р.Толкиена "Властелин колец" (Lord Of The Rings) -- Бильбо и Фродо Бэггинов (Bilbo and Frodo Baggins) [Толкиен83].
Формально данный вирус относится к файловым резидентным вирусам. Заражает как COM-, так и EXE-файлы (включая оверлеи) при запуске на выполнение или закрытии файла (функции 21h-4Bh или 21h-3Eh). Файлы заражаются однократно. В качестве признака заражения используется значение поля года даты создания файла. Для зараженных файлов вирус изменяет поле года создания файла, увеличивая его на сто, например с 1990 до 2090. В дальнейшем это значение используется для определения зараженности файла. Возможно заражение файлов, содержащих данные. Приращение длины при заражении всегда равно 4096 байтов, что объясняет такие неформальные названия, как 4096 и 4K. Следует отметить, что вирус проверяет расширение файлов путем суммирования значений букв. Поэтому он будет заражать файлы с любыми расширениями, имеющими сумму кодов букв 223 или 226.
Заражает COM-файлы длиной до 61440 (F000h) байтов. При заражении изменяет первые шесть байтов файла. Тело вируса дописывается в хвост файла. При этом приращение длины файла всегда равно 4096 байтов. Командный процессор заражается как обычный COM-файл. Как и в случае вируса RCE-1800, заражение командного процессора обычно происходит сразу после инсталляции вируса в оперативной памяти.
Заражаемые EXE-файлы могут иметь любую длину. При заражении изменяется заголовок. Тело вируса дописывается в хвост файла. Длина зараженного EXE-файла увеличивается ровно на 4096 байт.
При инсталляции вирус создает себе "дыру" в старших адресах оперативной памяти путем манипуляций с MCB и записывает туда свое тело, затирая транзитную часть COMMAND.COM. При перезагрузке командного процессора вирус заражает его как обычный файл. После инсталляции вируса обьем доступной памяти уменьшается на 6К. Для определения положения обработчиков прерываний 13h и 21h вирус проходит при инсталляции соответствующую часть кода с флагом трассировки (как музыкальные самоеды). Для получения управления по прерыванию 21h вирус использует сплайсинг ("врезку" в обработчик прерывания). Это первый вирус, использующий сплайсинг для получения управления по прерыванию 21h.
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 и т.д.), то вирус "выкусывает" свое тело при копировании.
При кодировании вируса использованы достаточно сложные приемы, затрудняющие трассировку. В частности, первые действия инсталлятора вируса после получения им управления направлены на "сбивание" трассировки путем манипулирования прерыванием 1 (пошаговое выполнение), регистром флажков и контроллером 8259. Код вируса не лишен ошибок. В частности, из-за ошибки при кодировании вирус повреждает некоторые файлы при их заражении: после заражения вирус не обновляет информацию в заголовке файла. При запуске таких файлов MS DOS выдает диагностическое сообщение "ERROR in EXE File". Такие повреждения можно устранить, запустив CHKDSK/F, а затем соответствующий фаг. Как уже отмечалось, вирус иногда заражает файлы данных. Они могут быть восстановлены с помощью соответствующего фага.
Фаза проявления привязана к дате 22 сентября, однако код в имеющихся экземплярах вируса стерт в связи с недостаточным размером памяти, отведенным под стек. Учитывая наличие в теле вируса загрузчика, выдающего сообщение "Фродо жив", логично предположить, что она связана с записью в бут-сектор этого загрузчика. В результате первая же перезагрузка приведет к выдаче на экран приведенного выше сообщения. Однако реально после 22 сентября запуск любой зараженной программы вызывает зависание операционной системы (вирус зацикливается), создавая впечатление машинной неисправности. По данным П.Хоффман, из-за ошибки в коде вирус может "сращивать" файлы на диске при манипулировании FAT и числом свободных секторов. Пользователь, использующий команду CHKDSK/F, обнаруживает, что файлы имеют потерянные кластеры или кластеры, принадлежащие двум файлам одновременно.
Вирус ориентирован на MS DOS 3.х и использует ряд недокументированных функций последней. Работоспособность при работе с версиями 4.01 и 5.0 сомнительна, однако автором не проверялась. Зависимости от типа используемого процессора не выявлено. При экспериментах вирус успешно работал как на XT, так и на AT/286. Вирус несовместим с сетевым программным обеспечением фирмы Novell.
Все авторы публикаций, включающих описание данного вируса, сходятся в том, что вирус написан техно-крысой, хорошо знающей "внутренности" операционной системы и алгоритмы работы антивирусных программ. Есть основания предполагать, что при написании вируса использованы идеи и методы вируса RCE-1800 (возможно, он имел исходный текст вируса или дизассемблировал его самостоятельно).
Исторические сведения. Вирус был обнаружен в Израиле в какой-то военной организации в октябре 1989 г. В СССР обнаружен Д.Н.Лозинским в августе 1990 г. Существует штамм 4096-B, аналогичный описанному, но шифрующий свое тело.
Неформальные названия. Среди неформальных названий следует отметить следующие: 4096, 4K, 100 Years virus (100 лет), Century virus (столетие), Hiding (Прячущийся), IDF Virus (ИА-вирус -- IDF расшифровывается как Israeli Defence Forces -- израильская армия), Stealth Virus (стелс-вирус).
Методы и средства защиты. Данный вирус диагностируется полидетектором Scan. Для визуального обнаружения можно использовать год создания файла (у зараженных файлов год увеличен на 100). Для этой цели можно просмотреть оглавление с помощью Turbo C++ (единственная известная автору оболочка, показывающая год создания файла полностью) или дамп кластеров с каталогами с помощью Norton Utilities (в DIR и в Norton Commander видны только две последние цифры года). Для входного контроля программ можно использовать фаги, рекомендуемые в прил.1. При отсутствии фага для "выкусывания" можно использовать упоминавшийся эффект, связанный с тем, что при копировании выполняемого файла в файл с расширением, отличным от исполняемых (COM, EXE, BIN, SYS и т.д.) резидентный вирус выполняет "выкусывание" своего тела из файла. Для этой цели при резидентном вирусе можно свернуть зараженные файлы в архив, а затем после перезагрузки с защищенной дискеты, содержащей эталонную операционную систему, скопировать их обратно. Другим вариантом является копирование с переименованием расширения, например EXE в TTT, а COM в YYY.
Неясно, является ли увеличение года достаточным признаком зараженности файла, или вирус проверяет еще какие-то поля. Если этот признак достаточен, то возможна пассивная вакцинация файлов путем увеличения значения года создания на 100, как это делалось с секундами создания файла при вакцинации от вируса C-648. Кроме того, возможно создание резидентной вакцины, обеспечивающей увеличение значения поля года при считывании элемента каталога.
Фрагмент дампа дрозофилы, зараженной вирусом RCE-04096 0000: E9E502BA1560B409 0E1FCD21B44CCD21 .....`.....!.L.! 010: 9090909090909090 9090909090909090 ................ *** последующие строки идентичны предыдущей *** 0080: 00E9A700E90000BA 1C01B4090E1FCD21 ...............! 0090: B44CCD2100000000 0000000000000000 .L.!............ 00A0: 00FE3A558BEC5081 7E0400C0730C2EA1 ..:U..P.~...s... 00B0: 4712394604760358 5DCF2E803E501201 G.9F.v.X]...>P.. 00C0: 74328B46042EA32F 128B46022EA32D12 t2.F.../..F...-. 00D0: 7215585D2E8E16DD 122E8B26DF122EA0 r.X].......&.... 00E0: E512E621E9D90C81 6606FFFE2EA0E512 ...!....f....... 00F0: E621EBC32EFE0E51 1275BC816606FFFE .!.....Q.u..f... 0100: E86C0DE8340D2EC5 163112B001E80C0F .l..4....1...... 02D0: 010612002EA1E312 2E8E1612002E8B26 ...............& 02E0: 1400FB2EFF2E1800 +------- начало инсталлятора V 81FC0001770233E4 ............w.3. 02F0: 8BE8E800005981E9 75028CC8BB1000F7 .....Y..u....... 0300: E303C183D200F7F3 50B8AB00508BC5CB ........P...P... 0310: 307C07234E04378B 0E4B8B053CD5043D 0|.#N.7..K..<..= 0320: 11053E55050F9B03 14CD0321C10327BF ..>U.......!..'. 0330: 031159031259034E 9F044F9F043FA50A ..Y..Y.N..O..?.. 0340: 408A0B42900A5741 0A48340E3D004B75 @..B..WA.H4.=.Ku .... .. .. .. .. .. .. .. .. . . . . . . . . 0810: E97CFBE83005E8BC 00C606200001813E .|..0...... ...> 0820: 00124D5A740E813E 00125A4D7406FE0E ..MZt..>..ZMt... 0830: 20007458A10412D1 E1F7E10500023BC6 .tX..........;. 0840: 7248A10A120B060C 12743FA1A9128B16 rH.......t?..... .... .. .. .. .. .. .. .. .. . . . . . . . . 1000: E2F6FD8036E77C01 8036D77C288036E2 ....6.|..6.|(.6. 1010: 7C28C383E3038A87 0A7C43C3065333DB |(.......|C..S3. 1020: 8EC38AD8D1E3D1E3 268917268C5F025B ........&..&._.[ 1030: 07C3E811FDB20100 9A0EFB077000330E ............p.3. 1040: 2E03571803002600 0000210050121B17 ..W...&...!.P... 1050: E00F7B21C1023141 7A16011F9A0EFB07 ..{!..1Az....... 1060: 7000330E2E035718 571FA9800000571F p.3...W.W.....W. 1070: 50121B36F411FF36 F211B903005153B9 P..6...6.....QS.
Данный вирус имеет размер, совпадающий с типичным размером сектора в MS DOS, и использует специальный метод размножения, напоминающий метод размножения бутовых вирусов. Вирус содержит текстовую строку 666 в конце тела, поэтому его иногда называют 666. В коде вируса используется ряд недокументированных функций MS DOS. Формально RC-0-512 представляет собой первый сегментированный резидентный файловый вирус. В нем используется несовершенство распределения дисковой памяти в MS DOS: размер кластера обычно превышает размер сектора как минимум в два раза, и поэтому можно использовать незаполненные "хвосты" в последнем секторе для хранения части тела вируса (модификация первых команд остается обязательной, иначе вирус не сможет получить управления). Фактически эту схему можно рассматривать как попытку перенесения схемы бутового вируса на файловый вирус. Как известно, бутовый вирус, в отличие от файлового, сегментирован и состоит из головы и хвоста. Голова находится в бут-секторе, а хвост хранится где-то в другом месте и его загрузка выполняется головой. Аналогично вирус RC-0-512 рассматривает первый сектор COM-файла как бут-сектор и заменяет его своим телом, а хвост, представляющий собой оригинальный первый сектор зараженной программы, прячет в неиспользуемый сектор последнего кластера. Очевидно, что вирус может заражать на дискете только те файлы, у которых второй сектор последнего кластера полностью свободен. На винчестере возможно заражение большинства COM-файлов, так как размер кластера значительно больше и один свободный сектор имеется практически всегда (это, кстати, говорит в пользу использования дисковых драйверов типа SpeedStore, позволяющих, при размере логического диска до 30K, уменьшить размер кластера до 1К, высвободив таким образом порядка 1М дисковой памяти).
При заражении RC-0-512 записывает себя в первый сектор заражаемого COM-файла, предварительно переписав "оригинальный" первый сектор в один из незаполненных секторов последнего кластера, занимаемого файлов, если такой имеется. При отсутствии в памяти резидентного вируса, зараженные файлы, скопированные с помощью команды COPY (копирующей файл побайтово в соответствии с указанной в элементе каталога длиной), будут неработоспособны, а находящийся в них вирус -- работоспособным. Заражаются только файлы, имеющие в последнем кластере свободный сектор. Зараженные файлы отмечаются 62 секундным значением в поле даты.
Подобно специфическому механизму заражения, вирус использует необычный механизм инсталляции в оперативной памяти: для хранения собственного тела вирус "откусывает" первый буфер буферного пула MS DOS, переставляя указатель на первый буфер так, чтобы он указывал на второй буфер. Таким образом, определить его наличие в памяти без полного сканирования оперативной памяти можно только, если знаешь, где искать. Этот факт свидетельствует о том, что оптимизация просмотра оперативной памяти в контекстных детекторах и полифагах является неверным шагом и может ухудшить качество детектирования.
Как и в других вирусах группы Dark Avenger, заражение происходит как при открытии, так и при выполнении файла. Заражаются файлы, первые две буквы расширения которых "CO". При копировании заражаются как копия, так и оригинал.
Вирус заражает COMMAND.COM методом, аналогичным использованному в RCE-1800. При этом он сам специально модифицирует часть транзитного модуля COMMAND.COM, чтобы вызвать его перезагрузку и заражение. Поскольку при перезагрузке системы командный процессор загружается в память до появления в ней резидентного вируса, то вирус инсталлируется, а затем подгружает недостающую часть командного процессора из свободного сектора последнего кластера.
Исторические сведения. Вирус RC-0-512 разработан в Болгарии техно-крысой, называющей себя Dark Avenger. Он был обнаружен студентом-программистом Василем Никодимовым в ноябре 1989 г. в Институте математики (София). Первой публикацией, описывающей данный вирус, является статья [Бончев90б]. В СССР обнаружен практически одновременно в Москве и Киеве в сентябре 1990 г.
Методы и средства защиты. Данный вирус диагностируется полидетектором Scan и любым контекстным детектором, содержащим соответствующую сигнатуру. Возможность создания резидентной вакцины неясна. Для входного контроля рекомендуются полифаги, приведенные в прил.1, в сочетании с полидетектором Scan. В связи с используемым механизмом заражения, при его создании возникает проблема с определением, хранится ли в соответствующем секторе последнего кластера оригинальная голова COM-файла (первые 512 байтов программы) или файл был скопирован и там теперь просто мусор. В последнем случае восстановление приведет к записи мусора на место тела вируса. Неясно также, что произойдет при оптимизации диска, содержащего зараженные файлы, с помощью утилит Norton Speed Disk (NSD), Сompress и т.д.
Фрагмент дампа дрозофилы, зараженной вирусом RC-0-512 +---------начало инсталлятора V 000: B430CD21BE04008E DE80FC1EC5440872 .0.!.........D.r 010: 0AB413CD2F1E52CD 2F581FBFF800AB8C ..../.R./X...... 020: D8AB8EDEC54440AB 3D1B018CD8AB0657 .....D@.=......W 030: 7507D1E6B90001F3 A70E1F744AB452CD u..........tJ.R. 040: 2106BEF8002BFF26 C44712268B5502B9 !....+.&.G.&.U.. 050: 0401F3A58ED9BF16 00C7456E1B018C45 ..........En...E 060: 701F8957148CCA8E DA8B5DECFECF8EC3 p..W......]..... 070: 3B158E1D8B154A8E DA8BF18BD7B128F3 ;.....J.......(. 080: A58EDB7212CD208B F18E5C2CAD4E85C0 ...r.. ...\,.N.. 090: 75FA83C6038BD6B4 3DE814008B158955 u.......=......U 0A0: 04010D5A520E1F1E 0706B05050B43FCB ...ZR......PP.?. ... .. .. .. .. .. .. .. .. . . . . . . . . 150: 00AD50AD50FF7440 FF74422EC554B0B8 ..P.P.t@.tB..T.. 160: 1325CD210E1FBA75 00B024CD21061F8A .%.!...u..$.!... 170: 45FC241F3C1F7408 8B45172D434F7544 E.$.<.t..E.-COuD 180: 3045FC8B053BC172 3B03C17237F645F3 0E...;.r;..r7.E. 190: 047531C575F6386C 04720848D0EC2264 .u1.u.8l.r.H.."d 1A0: 047421B820008ED8 2BD2E85EFF8BF251 .t!. ...+..^...Q 1B0: AC2E3A44077527E2 F75926804DFC1F26 ..:D.u'..Y&.M..& 1C0: 804DF540B43EE844 FF26804DF4401F5A .M.@.>.D.&.M.@.Z 1D0: B82425CD211F5AB0 13CD21E94FFF5926 .$%.!.Z...!.O.Y& 1E0: 8B3526897504B440 CD2172D326893526 .5&.u..@.!r.&.5& 1F0: 8955040E1FB208B4 40CD21EBBD363636 .U......@.!..666
Базовым вирусом при создании "студенческих" резидентных вирусов является, по-видимому, вирус RCE-1813. Это связано с тем, что, с одной стороны, данный вирус относится к числу наиболее распространенных файловых вирусов, что обусловливает его доступность, а, с другой стороны, код вируса сравнительно прост и не требует специальных знаний для дизассемблирования и реконструкции.
Типичным примером студенческих резидентных вирусов, основанных на RCE-1813, является так называемая воронежская подгруппа, хотя, по имеющимся данным, разработавшая ее техно-крыса в момент написания этих вирусов была не студентом, а школьником. Это, пожалуй, наиболее ранние отечественные вирусы, которые можно отнести к группе студенческих.
Воронежская подгруппа включает в настоящее время три вируса: RC-529, RC-600 и RCE-1600, разработанные в 1990 г. и, по-видимому, принадлежащие одному (отечественному!) автору (два последних точно, а первый с некоторой долей сомнения).
Формально данный вирус можно отнести к резидентным файловым вирусам, заражающим файлы с расширением COM. Не проверяет версию операционной системы, но использует имя программы, которое заносится в Environment версии MS DOS не ниже 3.0. При запуске зараженной программы инсталлируется, перехватывая прерывание 21h.
Заражает только COM-файлы при их выполнении. Определяет тип программы по расширению имени, из-за чего EXE-программы, имеющие расширение COM, после заражения теряют работоспособность. Работоспособность таких программ восстанавливается после применения соответствующего фага. Подобно остальным вирусам иерусалимской группы, при заражении COM-файлов записывается в начало, переписывая старое начало в конец файла. Уровень программирования выдает начинающего: основная часть логики некритично заимствована из вируса RСE-1813.
Исторические сведения. Впервые обнаружен в Ленинграде весной 1989 г. Автору был передан Д.Н.Лозинским. Первым фагом для данного вируса был, по-видимому, Aidstest. В настоящее время вирус практически полностью уничтожен.
Неформальные названия. Помимо приведенных выше, неизвестны.
Методы и средства защиты. Для входного кон т ро ля можно использовать любой полифаг из числа рекомендованных в прил.1. Для вузов и других учебных заведений можно рекомендовать резидентную поливакцину NeatVac.
Фрагмент дампа дрозофилы, зараженной вирусом RC-529 000: B815CA8B361B01BF 00018B0E1D018B1E ....6........... 010: 1901CD21FF361F01 C30101D007110247 ...!.6.........G 020: 017900C0010400C4 014D001102EA00FB .y.......M...... 030: 020100FC02010000 0080000E255C000E ............%\.. 040: 256C000E25CA01A1 1D0105140190A305 %l..%........... 050: 0303061D01050001 A30D038BE0050F00 ................ ... .. .. .. .. .. .. .. .. . . . . . . . . 1B0: 15B8004233D28BCA CD21720AFEC68B0E ...B3....!r..... 1C0: 1D01B440CD21B801 578B0E07038B1609 ...@.!..W....... 1D0: 03CD21B43ECD21B8 01438B0E0B038E5E ..!.>.!..C.....^ 1E0: 028B5600CD212EC5 160103B82425CD21 ..V..!......$%.! 1F0: 8BE55A1F5B5807C3 B003CFC3C35C06FD ..Z.[X.......\.. 200: 1856059D10250336 0021002000360664 .V...%.6.!. .6.d 210: 0090909090909090 9090909090909090 ................ 220: 9090909090909090 9090909090909090 ................ *** следующие строки идентичны предыдущей *** 8E0: 90 .
Данный штамм аналогичен штамму RC-529 и заражает только COM-файлы. Формально вирус RС-600 является резидентным файловым вирусом, поражающим СОМ-файлы. Вирус не проверяет версию MS DOS, на которой функционирует. По-видимому, работоспособен на версиях, начиная с 2.0.
При запуске зараженной программы вирус сразу пытается инсталлироваться в оперативной памяти. Для определения, имеется ли уже в памяти резидентный вирус, используется стандартный для данной группы вирусов механизм: вирус выдает неиспользуемое MS DOS прерывание 21h-ABh, а затем проверяет содержимое регистра AX. Файлы заражаются при загрузке в память для выполнения (прерывание 21h-4Bh).
Заражаются файлы типа СОМ, даже если они имеют расширение ЕХЕ. Дата и время создания зараженного файла не изменяются, а длина увеличивается на 600 байтов. Минимальная длина заражаемых файлов составляет 600 байтов (258h), а максимальная 60 000 байтов (EA60h). Не заражаются файлы, содержащие в первых двух байтах значение, превышающее EF60h, а также файлы с атрибутом READ ONLY. Вирус не заражает процессор COMMAND.COM. Файлы заражаются однократно. В инфицированной программе тело вируса размещается в начале файла. Перехватывает прерывание 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, No. 7). В настоящее время вирус практически полностью уничтожен.
Неформальные названия. Помимо приведенного выше, иногда используются названия 600 и Oleynikoz.
Методы и средства защиты. Из-за малого размера и отсутствия характерных строк вирус может быть легко пропущен при визуальном просмотре дампа файла, хотя отсутствие в конце файла текстовых строк (из-за перемещения 600 байтов перекодированного тела зараженной программы) должно настораживать. Для входного контроля рекомендуется использовать любые два полифага, из числа рекомендованных в прил.1. Версии полидетектора Scan (до 77 включительно) данный вирус не обнаруживают. Для вузов и других учебных заведений можно рекомендовать использование резидентной поливакцины NeatVac.
Фрагмент дампа дрозофилы, зараженной вирусом RC-600 (обратите внимание, что байты 90h перекодированы в BBh) 000: BE1001B932008A24 80F4DD882446E2F6 ....2..$....$F.. 010: 697610FCE08888A8 DE3453DD5115F0DC iv.......4S.Q... 020: DD530566DEDDE356 DAF05DDDE354DAD3 .S.f...V..]..T.. 030: C266DFDD56DAF05D DD54DA531D62DDDD .f..V..].T.S.b.. 040: 63DD00B90008F3A4 8BD0EB2E90FB80FC c............... 050: AB7504B85555CF50 FEC43D004C587515 .u..UU.P..=.LXu. 060: 9C50535152565706 1EE99E001F075F5E .PSQRVW......._^ ... .. .. .. .. .. .. .. .. . . . . . . . . 240: 0300E927FEB8003E CD218B1EF0018E06 ...'...>.!...... 250: F201B82425CD21C3 3820818089928E82 ...$%.!.8 ...... 260: 0290BB05AEBA9531 AF0FB9769AFD594D .......1...v..YM 270: 01BBBB769BB1B626 2935299B2F3B3230 ...v...&)5)./;20 280: 9B2A353F3E2B3D33 299B39332B282A9B .*5?>+=3).93+(*. 290: ED8D8B8B9B9B9B93 E9F89B8D8B8B929A ................ 2A0: BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB ................ *** последующие строки идентичны предыдущей *** 4A0: 3F3033363B9B2C33 2A293538359B2F3B ?036;.,3*)585./; 4B0: 32303B9B969B8D8B 20;.....
Последний и наиболее сложный из рассматриваемой подгруппы. Неформальное название связано с наличием в теле вируса соответствующей текстовой строки. Формально представляет собой резидентный файловый вирус, заражающий COM- и EXE-файлы. С сожалением приходится констатировать, что в данном вирусе реализована идея, неосторожно высказанная Д.Н.Лозинским в документации к полифагу Aidstest (AIDSREAD.ME): с целью затруднить обнаружение обычными фагами, вирус не меняет точку входа в EXE-файле, изменяя Relocation table.
При заражении EXE-файлов тело вируса дописывается в конец заражаемой программы. Файлы заражаются не только при запуске программ на исполнение, но и при открытии файлов.
Уровень программирования создает противоречивое впечатление. Имеется ряд признаков, позволяющих говорить о близости "почерка", которым написаны данный вирус и вирус RC-600.
Исторические сведения. Обнаружен в Воронеже в июне 1990 г. А.Н.Мартемьяновым. Автору передан Д.Н.Лозинским. Из полифагов, распространяющихся бесплатно, первым его включил Е.Сусликов в полифаг К32 (ранняя версия полифага SOS).
Неформальные названия. Помимо приведенных выше иногда используется название 1600.
Методы и средства защиты. Для вузов и других учебных заведений можно рекомендовать резидентную поливакцину NeatVac. Для борьбы с вирусом годятся имеющиеся контекстные детекторы и резидентные программы. В качестве фага можно рекомендовать SOS.
Фрагмент дампа вируса RC-1600 000: 8CD80E1F50E80000 5B81EB080153B4AB ....P...[....S.. ... .. .. .. .. .. .. .. .. . . . . . . . . 170: FC8A0434BB880546 47E2F6B800015B50 ...4...FG.....[P 180: C3F7854006CC7DE5 1145584565786555 ...@..}..EXEexeU 190: 767F637473717560 566F726F6E657A68 v.ctsqu`Voronezh 1A0: 2C3139393020322E 3031B430CD213C00 ,1990 2.01.0.!<. 1B0: 0100081A00110300 000000002A390000 ............*9.. ... .. .. .. .. .. .. .. .. . . . . . . . . 5E0: 028E1ED202B80143 2E8B0ED002CD210E .......C......!. 5F0: 1F5BE80300E9C0FA B8003ECD218B1E85 .[........>.!... 600: 028E068702B82425 CD21C3558BEC1EB8 ......$%.!.U.... 610: 01438B16D4028E1E D20231C9CD217306 .C........1..!s. 620: 1F5D58E945FF368B 5E04B8003ECD21B8 .]X.E.6.^...>.!. 630: 023DFA9C2EFF1EC2 011F368946045DC3 .=........6.F.].
Данный вирус приводится как еще один образец резидентных вирусов "студенческой" группы. Неформальное название данного вируса связано с тем, что в начале любой зараженной данным вирусом программы после 3-байтовой команды перехода на тело вируса расположена 12-байтовая текстовая строка "Attention !". После этой строки стоит байт 1Ah. Формально RC-394 является файловым резидентным вирусом, заражающим COM-файлы при запуске их на выполнение (прерывание 21h-4Bh). Длина вируса (394 байта) совпадает с приращением зараженных файлов. Это один из самых маленьких резидентных вирусов, располагающих свое тело в старших адресах оперативной памяти.
Вирус заражает COM-файлы длиной от 786 (312h) до 64921 (FD99h) байта. При заражении тело вируса дописывается в конец файла и изменяет первые 16 байтов, как было указано выше. Если заражаемый файл был защищен атрибутом READ ONLY, то перед заражением вирус снимает этот атрибут и не восстанавливает его после заражения.
При инсталляции записывает свое тело в старшие адреса оперативной памяти. Перехватывает прерывания 21h и 24h. Последнее прерывание перехватывается не совсем корректно, что может приводить к зависанию системы. Характерным проявлением вируса является включение мотора дисковода А при попытке заражения файлов на защищенной дискете, вставленной в дисковод B.
Исторические сведения. В СССР появился в Москве и Минске примерно в августе 1990 г. Автору передан Д.Н.Лозинским.
Неформальные названия. Помимо приведенного выше, неизвестны.
Методы и средства защиты. Обнаружение несложно. Рекомендуемые для входного контроля фаги приведены в прил.1.
Фрагмент дампа дрозофилы, зараженной вирусом RC-394 000: E90E10415454454E 54494F4E2020211A ...ATTENTION !. 000: 9090909090909090 9090909090909090 ................ *** последующие строки идентичны предыдущей *** 000: 00CD209090909090 9090909090909090 . ............. 010: 90E8F9002000C514 C01D9C50535152BB ... ......PSQR. 020: 030031C9E2FEB00C BAF203EE31C9E2FE ..1.........1... 030: BAF203B01CEE4B75 E95A595B589DB003 ......Ku.ZY[X... 040: CF5053515257561E 0680FC4B740D071F .PSQRWV....Kt... ... .. .. .. .. .. .. .. .. .. .. . . . . . . . . 0F0: 58050D00A3010052 31C931D2B80042CD X......R1.1...B. 100: 2159B440CD21B43E CD21E941FFFA5A81 !Y.@.!.>.!.A..Z. 110: EA1300BB7901A102 005031C9518ED99D ....y....P1.Q... 120: 39061504750253CB 581E0E1F1EC7C11A 9...u.S.X....... 130: 0029C8A30200508C C929C8498ED9A303 .)....P..).I.... 140: 00581F8EC08BF231 FFC7C18901F3A4BE .X.....1........ 150: 00018BF9B91000F3 A41F0653BB84008B ...........S.... 160: 07C707400026A315 008B47028C470226 ...@.&....G..G.& 170: A317008C0615040E 07CBB910008BF2BF ................ 180: 0001061F1E57F3A4 FBCB .....W...
К моменту сдачи книги в набор появились две группы опасных отечественных вирусов-вандалов: Words и Hymn.
Вирусы группы Words, судя по тексту в одном из них, разработаны в Киеве. Заражают как COM-, так и EXE-файлы, причем последние путем превращения в COM-файл. Метод постановки в резидент заимствован из вируса RC-1701. Фаза проявления связана с искажением записываемой в файлы информации: вирус переставляет соседние слова (последовательности букв, цифр и знаков препинания, разделенные пробелами). В качестве букв рассматриваются и буквы кириллицы, что подтверждает отечественное происхождение вируса. Штамм RCE-1069 портит дату и атрибуты файла. Эти ошибки исправлены в штамме RCE-1085. Два последних штамма: RCE-1387 и RCE-1503 шифруют свое тело, причем RCE-1509 имеет самомодифицирующийся инсталлятор.
В группу Hymn входят три вируса: RCE-1865 (наиболее ранняя версия, записывается в программу без модификации) RCE-1962 (кодирует свое тело при записи в заражаемую программу, оставляя стабильным лишь фрагмент инсталлятора с циклом раскодировки); RCE-2144 (помимо кодирования тела содержит примитивную защиту от трассировки). Формально указанные вирусы представляют собой файловые резидентные вирусы, заражающие как COM-, так и EXE-файлы, причем не только при загрузке программы, но и при открытии файла, переименовании, изменении аттрибутов, а также при создании нового программного файла. Среда функционирования вируса ограничена версиями, начиная с 3.3 (как и во многих других вирусах, используются недокументированнные особеннности именно этой версии), однако проверка версии в теле вируса отсутствует.
Фаза проявления вирусов группы Hymn наступает при совпадении числа с номером месяца (например, 12 декабря, 1 января и т.д.) и состоит в обнулении ряда параметров винчестера (размер блока, количество FAT, и т.д.), после чего делается попытка исполнить Гимн Советского Союза (по мнению Д.Н.Лозинского, довольно фальшиво) с выводом на экран саморекламы. Если на PC XT в момент загрузки системы стоит дата 01.01.80 и если COMMAND.COM заражен, логический диск C сразу портится. Таким образом, эти вирусы наиболее опасны на компьютерах, не имеющих таймера.
Как оказалось, для MS DOS 3.3 обнуления параметров оказывается достаточно, чтобы компьютер перестал грузиться с дискеты (по-видимому, процесс загрузки аварийно завершается из-за деления на нуль). Восстановления винчестера можно выполнять с помощью утилиты, загрузив c дискеты MS DOS 4.0 или 5.0. Имея распечатку дампов системных блоков, для восстановления удобно использовать утилиту DiskTool из Norton Utilities 5.0, а при ее отсутствии -- хорошо известную утилиту NU.
Дополнительные сведения о вирусах группы Hymn приведены в прил.1.
Лишь немногие из разработанных вирусов получают сколько-нибудь значительное распространение. В последнее время уровень понимания проблемы пользователями быстро растет и они начинают предпринимать необходимые меры предосторожности. Поэтому в настоящее время имеется класс вирусов, который можно назвать ископаемыми вирусами: они существуют, в основном, в коллекциях вирусологов, и не встречаются "на свободе".
Многие из упоминаемых в зарубежной литературе файловых вирусов в СССР пока не обнаpужены. В случаях, когда эпидемия локальна и подавлена "в зародыше", соответствующие вирусы скорее всего в СССР и не попадут; другая часть вирусов, успевшая к моменту обнаружения получить значительное распространение, рано или поздно появится. Поэтому сведения о таких вирусах представляют определенный интерес, позволяя лучше подготовиться к предстоящей встрече с ними.
И, наконец, некоторые вирусы существуют только в программистском фольклоре или "околовирусных" публикациях. В этой области, как и в любой другой, существуют свои бароны Мюнхаузены.
Вирусы, разработанные за рубежом, обычно попадают в СССР со значительным запаздыванием, поэтому сведения о новых вирусах зачастую появляются до регистрации первых случаев заражения. Большинство из них к моменту попадания в СССР уже диагностируется доступной версией полидетектора Scan. Поскольку регистрация случаев заражения вирусами выполняется на инициативном уровне Киевским семинаром "Системное программирование" и отдельными разработчиками антивирусных программ, относительно многих вирусов неясно, попадали они в СССР или нет.
К сожалению, в условиях характерной для СССР информационной изоляции доступа к оперативной информации по вирусам, распространяющейся по таким сетям, как Internet или Bitnet, автор не имеет, поэтому приводимые сведения неполны, а в ряде случаев и неточны. Наиболее полной на сегодняшний день информацией, доступной автору, является созданный американским вирусологом Патрицией М.Хоффман (Patricia M.Hoffman) файл Virus Information Summary (версия от 10.08.90). Этот файл был опубликован в бюллетене Софтпанорама (т.2, No. 8). Другим более или менее стабильным источником информации является документация к полидетектору Scan, новые версии которого в последнее время появляются практически ежемесячно. Оба эти источника содержат ошибки и неточности.
В последнее время наблюдается появление новых вирусов, при разработке которых приняты изощренные меры по маскировке их присутствия на зараженной машине. Описываемые ниже вирусы основаны на RCE-04096.FRD и, возможно, принадлежат тому же автору.
Неформальное название данного вируса связано с тем, что иногда в теле зараженных программ встречается строка "FISH FI". Кроме того, просматривая оперативную память при резидентном вирусе, можно обнаружить названия некоторых рыб. Формально вирус представляет собой резидентный файловый вирус, заражающий как COM-, так и EXE-файлы. Вирус заражает COMMAND.COM. Подобно некоторым бутовым вирусам, RCE-03584 переживает "теплую" перезагрузку, перехватывая комбинацию нажатий Ctrl-Alt-Del.
При выполнении зараженной программы вирус проверяет свое наличие в памяти и, если отсутствует, то инсталлируется в младших адресах оперативной памяти. При этом, если прерывание 13h не перехвачено другой программой, то вирус перехватывает это прерывание и резервирует 8192 байта. Если прерывание 13h уже перехвачено, то вирус резервирует только 4096 байтов памяти и через некоторый случайный интервал времени инициирует "теплую" перезагрузку, в процессе которой он заражает COMMAND.COM и перехватывает прерывание 13h.
Будучи резидентным, вирус заражает все открываемые COM- и EXE-файлы. При этом длина зараженных файлов увеличивается на 3584 байта, однако это увеличение при резидентном вирусе маскируется. При запуске программы CHKDSK на зараженной машине диагностируются ошибки в распределении файлов. Если при этом CHKDSK запущена с ключом /F, то попытки исправления ведут к потере кластеров и сращиванию файлов.
Проявление вируса связано с тем, что он замедляет запись в видеопамять и на инфицированных машинах заметно мерцание экрана дисплея. Другие проявления вируса неизвестны, хотя вирус проверяет, равен ли текущий год 1991. Подобно вирусу RCE-04096, данный вирус не обнаруживается ревизорами, запущенными на зараженной системе. Вирус также обходит сторожа, следящие за операциями записи на диск. Кроме того, вирус постоянно перекодирует себя в оперативной памяти.
Исторические сведения. Данный вирус является существенно переработанной модификацией вируса RCE-04096 и был выделен в мае 1990 г. К моменту выделения он был достаточно распространен в Западной Европе. Предполагается, что он был разработан в Германии. В СССР не выделен. Приводимые сведения базируются в основном на списке П.Хоффман.
Методы и средства защиты. Вирус детектируется полидетектором Scan (версии 66+).
Данный вирус является наиболее сложным и изощренным среди известных стелс-вирусов. Размер кода достигает 9К. Это приблизительно 6 тыс. строк исходного текста, т.е. от нескольких месяцев до года упорной работы. Вирус написан программистом, знакомым с непосредственным программированием входящих в состав IBM PC контроллеров, в частности контроллера прерываний 8259 и контроллера 8255, управляющего периферийными устройствами. Вирус зашифрован и имеет самомодифицирующийся инсталлятор. Это несколько усложнает детектирование, хотя Scan вроде бы успешно справляется с данной задачей.
Следует отметить, что данный вирус тратит настолько много системных ресурсов при работе, что заметно замедляет работу компьютера, тем самым существенно упрощая свое обнаружение. Возможно, этот вирус следует считать направленным не столько против пользователей (поскольку из-за своего размера и сложности он не очень "жизнеспособен"), сколько против вирусологов: пусть, мол, ломают себе голову, разбираясь с 30-метровым листингом дизассемблированного текста.
Исторические сведения. Данный вирус, по-видимому, является развитием предыдущего. Обнаружен примерно в июле-августе 1990 г. в Западной Европе. В СССР не выделен. Приводимые сведения базируются, в основном, на материалах Virus forum FIDO NET.
Методы и средства защиты. Вирус детектируется полидетектором Scan (версии 66+).
Данный класс вирусов содержит специальные средства, обеспечивающие изменение инсталлятора при каждом заражении таким образом, чтобы простые строковые сигнатуры в теле вируса не встречались. Другими словами, различные копии вируса не содержат общих строк. Обычно переход к сигнатурам, основанным на регулярных выражениях, позволяет справиться с этой проблемой. В более сложных случаях сигнатура может быть определена с помощью символического выполнения начального участка вируса. Следует отметить, что в связи с ограниченностью размера вируса, применяемые способы просты и обычно лишь незначительно затрудняют детектирование.
Несмотря на идентичную длину, вирус не связан с группой Буквопад. Формально данный вирус представляет собой файловый резидентный вирус, заражающий COM-файлы и имеющий специальный механизм инфицирования COMMAND.COM. Инсталлируется в старшие адреса свободной памяти, резервируя 8192 байта. Перехватывает прерывание 2Ah.
Вирус использует метод заражения COMMAND.COM, впервые использованный в Лехайском вирусе и позволяющий сохранить первоначальную длину командного процессора после заражения. Поиск командного процессора выполняется на диске, указанном в COMSPEC. При заражении тело вируса записывается в область с нулевыми байтами. Затем вирус выполняет попытку поиска и заражения командного процессора на диске С (на случай, если диск, указанный в COMSPEC, является электронным).
Заражает COM-файлы, увеличивая их длину на 1701 байт. Проверка файла на зараженность выполняется некорректно, поэтому вирус может повторно заражать один и тот же файл, каждый раз увеличивая длину на 1701 байт. Инфицируются файлы как при выполнении, так и при открытии. Использует сложный метод шифровки тела, включая самомодификацию инсталлятора, поэтому детекторы, основанные на поиске контекстных строк, не в состоянии обнаружить данный вирус.
Исторические сведения. Вирус был обнаружен в Болгарии в июле 1990 г. На Запад был передан В.Бончевым. Приводимые сведения основаны на описании П.Хоффман. Разработан техно-крысой, по кличке Dark Avenger. Вирус имеет ряд штаммов.
Неформальные названия. Помимо приведенных выше, используются названия V1701New и P1.
Методы и средства защиты. При попытке выполнить утилиту CHKDSK на зараженной системе вирус инициирует "теплую" перезагрузку системы. Это может служить косвенным признаком зараженности компьютера. Вирус детектируется полидетектором Scan (версии 66+).
Данный вирус является первым известным резидентным вирусом с самомодифицирующимся инсталлятором и первым, заражающим, наряду с файлами, бут-сектор. Вирус заражает файлы только на дискетах. Если на дискете нет файла, который можно заразить, то он заражает бут-сектор.
Исторические сведения. Вирус написан Патриком Толме (Patrick Toulme) в январе 1990 г. якобы в качестве "учебного пособия", и автор некоторое время распространял за плату исходный текст вируса. По-видимому, это был первый компьютерный вирус с самомодифицирующимся инсталлятором.
Неформальные названия: Помимо приведенного выше, неизвестны.
Методы и средства защиты. Детектируется полидетектором Scan, начиная с версии 66.
Как уже указывалось, болгарская техно-крыса по кличке Dark Avenger является одним из основных поставщиков файловых вирусов для СССР. Поэтому сведения о разработанных этой техно-крысой вирусах представляют особый интерес. Приводимые ниже сведения основаны на описании П.Хоффман. Западным вирусологам эти вирусы передал В.Бончев.
Формально данный вирус является резидентным файловым вирусом, заражающим как COM-, так и EXE-файлы, включая оверлеи. Заражает процессор COMMAND.COM. При выполнении зараженной вирусом программы вирус инсталлируется, уменьшает системную память на 4288 байтов, а затем заражает командный процессор. Заражает программы при выполнении или открытии файла. Минимальная длина заражаемой программы -- 2100 байтов. Увеличение длины при резидентном вирусе маскируется. Как обычно, при резидентном вирусе появляется побочный эффект, связанный с появлением потерянных кластеров при проверке целостности файловой системы командой CHKDSK /F.
Исторические сведения. Вирус был обнаружен в Болгарии в июле 1990 г. Распространялся через троянскую версию антивирусной программы UScan, которая была загружена в несколько европейских BBS. При этом наличие вируса в самой программе было замаскировано, и его было невозможно обнаружить детектором, рассчитанным на данный вирус. В начале 1991 г. обнаружен в СССР.
Неформальные названия. Помимо приведенных выше, неизвестны.
Методы и средства защиты. Вирус детектируется полидетектором Scan, начиная с версии 66.
Формально данный вирус является резидентным файловым вирусом, заражающим как COM-, так и EXE-файлы. При запуске зараженной програмы вирус проверяет значения ряда прерываний, включая 1h и 3h. Если прерывания 1h и 3h перехвачены, то вирус не инсталлируется в оперативной памяти, а запускает программу-вирусоноситель и после ее окончания вызывает зависание системы. Если указанные прерывания свободны, то вирус инсталлируется, уменьшая значения свободной памяти на 1072 байта и перехватывая ряд прерываний. Являясь резидентным, вирус заражает каждую выполняемую программу, имеющую длину больше 1024 байтов. Увеличение длины маскируется при резидентном вирусе. Вирус дописывается в конец зараженных файлов. Файлы заражаются однократно. В конце зараженных файлов имеется строка '7106286813'. Вирус, по-видимому, не имеет стадии проявления.
Исторические сведения. Вирус был обнаружен в Болгарии в мае 1990 г. По ряду признаков данный вирус можно считать предшественником RCE-02000.
Неформальные названия. Помимо приведенных выше, неизвестны.
Методы и средства защиты. Вирус детектируется полидетектором Scan, начиная с версии 66.
Неформальное название связано с тем, что вирус содержит текстовую строку "Live after Death", хотя она не видна при просмотре дампа (вирус шифрует собственное тело при заражении). Формально RC-800 -- резидентный файловый вирус, заражающий файлы при запуске их на выполнение, но не заражающий COMMAND.COM. При запуске зараженной программы вирус инсталлируется в старших адресах памяти, уменьшая системную память на 16К (возможно, из-за ошибки) и используя старшие 8192 байта. Перехватывает прерывание 2Ah. Файлы заражаются при запуске на выполнение. Зараженные файлы заражаются повторно, причем каждый раз длина увеличивается на 800 байтов. Минимальная длина заражаемых файлов -- 1K, однако файлы, большие 1K, также заражаются выборочно. Имеется штамм, заражающий файлы как при выполнении, так и при открытии. Этот штамм уменьшает системную память ровно на 8192 байта.
Исторические сведения. Вирус был обнаружен в Болгарии в мае 1990 г. В СССР не отмечался.
Неформальные названия. Помимо приведенных выше, неизвестны.
Методы и средства защиты. Вирус детектируется полидетектором Scan, начиная с версии 66.
Вирус уменьшает системную память на 688 байтов. Уменьшение системной памяти маскируется. Заражаются программы длиной более 651 байта. Заражение происходит при запуске файлов на выполнение. Увеличение длины маскируется при резидентном вирусе. Инфицированные файлы содержат строку "Eddie Lives" в конце инфицированного файла. Побочным эффектом вируса является появление потерянных кластеров при проверке целостности файловой системы командой CHKDSK /F.
Неформальные названия. Помимо приведенного в заголовке, неизвестны.
Исторические сведения. Вирус был обнаружен в Болгарии в апреле 1990 г. В СССР не отмечался.
Методы и средства защиты. Вирус детектируется полидетектором Scan (версии 66+).
Поскольку наша страна закупает основную массу персональных компьютеров с странах Юго-западной Азии, появляющиеся там вирусы легко попадают в СССР. Мы рассмотрим лишь один пример файловых вирусов восточного происхождения -- вирус RCE-2900.
Неформальное название этого опасного вируса-вандала отражает порядковый номер поступления вирусов с Тайваня к сотрудникам Макафи (первыми двумя были Bx3-EB.OGR (Disk Killer) и C-743 (Taiwan-2)).
При запуске зараженной программы вирус инсталлируется в нижние адреса свободной оперативной памяти, резервируя 3152 байта. Перехватывает прерывание 21h. Являясь резидентным, заражает все исполняемые программы. По данным П.Хоффман, COM-файлы увеличиваются на 2900 байтов, а EXE-файлы -- на 2900-2908 (скорее, 2900-2915). Заражаются и оверлейные файлы.
По данным М.И.Цала, фаза проявления наступает при попадании вируса на компьютеры, содержащие систему AutoCAD. В этом случае вирус уничтожает информацию на дискетах, винчестере и CMOS-памяти.
Исторические сведения. Вирус был обнаружен на Тайване в июне 1990 г. Приводимые сведения основаны на описании П.Хоффман. В СССР был обнаружен и исследован М.И.Цалом в Ленинграде в начале 1991 г.
Неформальные названия. Помимо приведенного выше, неизвестны.
Методы и средства защиты. Вирус детектируется полидетектором SCAN, начиная с версии 66.
Ряд вирусов, ранее весьма распространенных на Западе, в настоящее время практически полностью уничтожен, и сведения о них представляют в основном исторический интерес. Впрочем, последняя фраза не совсем корректна, поскольку необходимо помнить, что, если отвлечься от периодической смены центрального процессора и версий MS DOS, любой компьютерный вирус практически "беcсмертен" и может "реанимироваться" из архивов через несколько лет после того, как о нем все забыли (если, конечно, пользователь продолжает работать на версии MS DOS, для которой вирус работоспособен).
Название вируса связано с тем, что он впервые был обнаружен в университете Lehigh (США) в ноябре 1987 г. В настоящее время вирус представляет лишь исторический интерес как один из первых файловых вирусов, а также как первый вирус, использующий специальный способ заражения командного процессора.
Формально вирус RC-0-346 является файловым резидентным вирусом, распространяющимся через файл COMMAND.COM. Иногда данный вирус называют "системным вирусом", акцентируя внимание на том, что он заражает только командный процессор. По мнению автора, такое название неоправданно, так как, хотя командный процессор и является неотъемлемой частью операционной системы, его выбор, в отличие от распространенного мнения, произволен. Конечно, стандартный командный процессор, поставляемый с MS DOS (COMMAND.COM), является наиболее распространенным, однако он далеко не единственный. Например, ряд фирм, включая Hewlett-Packard (Хьюллет Паккард), поставляют свои версии MS DOS c диалоговым командным процессором, и пользователи этих машин никогда не сталкивались с COMMAND.COM и характерным приглашением C:\. Кроме того, учитывая весьма низкое качество написания COMMAND.COM (а в MS DOS 4.0 он не только плохо написан, но и еще "страдает от ожирения", т.к. его размер вырос более чем на 10К без существенного увеличения функциональных возможностей), квалифицированные пользователи часто заменяют его на командный процессор 4DOS фирмы J.P. Software. Поэтому выбор COMMAND.COM как "среды обитания" вируса ничем принципиально не отличается от выбора, скажем, Norton Commander или другой распространенной программы.
Вирус имплантирует свое тело в область памяти, используемую COMMAND.COM для стека, и изменяет первые байты зараженного COMMAND.COM таким образом, чтобы первым получить управление после его загрузки. Поэтому длина зараженного COMMAND.COM не отличается от длины нормального. При запуске командного процессора вирус получает управление и становится резидентным, перехватывая прерывание 21h. При возникновении прерывания 21h вирус перехватывает запросы "выполнить программу" и "найти первый файл". При обработке этих запросов вирус сначала определяет, содержит ли диск COMMAND.COM. Если да, то он заражает COMMAND.COM диска, к которому идет обращение, и увеличивает специальный счетчик. Если винчестер отсутствует, то счетчик хранится в оперативной памяти, иначе -- записывается на диск. Таким образом, перезагрузка сбрасывает счетчик на ПЭВМ без винчестера, в то время как на ПЭВМ с винчестером значение счетчика сохраняется. При достижении счетчиком значения 4 вирус, используя прерывание 26h, обнуляет первые 32 сектора того диска, с которого он был загружен. Обнаружение данного вируса упрощается в связи с тем, что при заражении вирус изменяет дату создания файла. Кроме того, вирус не проверяет, защищен диск от записи или нет, и не снимает атрибут READ ONLY. Поэтому, если COMMAND.COM имеет этот атрибут, то вирус в него не попадет (не исключено, что в некоторых штаммах данного вируса эти "недостатки" устранены).
Исторические сведения. Данный вирус является первым известным вирусом-вандалом. Он был обнаружен студенческими консультантами Вычислительного центра Лехайского университета (Lehigh university, Bethlehem, США) в ноябре 1987 г. [Wyk89]. Они обратили внимание, что, начиная с 18 октября 1987 г., пользователи начали в массовом порядке возвращать выданные им дискеты, заявляя, что они дефектны. Хотя в условиях интенсивной эксплуатации дискеты, характерной для университета, последние иногда становятся сбойными из-за физического износа, плохо отрегулированного дисковода или попадания грязи, скорость возврата дискет нарастала настолько заметно, что было решено проанализировать ситуацию. В результате и был выявлен Лехайский вирус. Фактически это первый файловый вирус, распространение которого приняло характер эпидемии. Возможно, существуют два штамма, один из которых не увеличивает длину зараженного COMMAND.COM, а другой увеличивает ее на 20 байтов. В СССР явно не отмечался. Излагаемые сведения опираются на информацию в зарубежных печатных изданиях.
Методы и средства защиты. Данный вирус диагностируется полидетектором Scan. Вирус ищет файл с командным процессором по имени, а не по COMSPEC, поэтому изменение имени командного процессора защищает командный процессор от заражения. Как уже указывалось, базисная версия вируса не сбрасывает атрибут READ ONLY, поэтому, если командный процессор защищен этим атрибутом, то он заражаться не будет. Поскольку вирус является резидентным, возможно создание резидентной вакцины. Вместо использования фага проще переписать командный процессор заново с дистрибутивной копии операционной системы.
Вирус представляет интерес как представитель класса вирусов, направленных на модификацию данных. Он использует достаточно изощренную схему изменения DBF-файлов, причем при резидентном вирусе внесенные изменения маскируются. Формально вирус dBASE является резидентным файловым вирусом, который перехватывает прерывание 21h и ждет попытки открытия файла с расширением DBF. При этом вирус запоминает управляющий блок файла (file handle) и текущую длину файла с расширением DBF. Любая последующая операция по записи в этот файл искажается вирусом таким образом, что первые два байта записываемого блока меняются местами. При последующих операциях чтения вирус восстанавливает первоначальное положение этих байтов, так что до тех пор, пока вирус является резидентным, вся информация читается правильно. Через 90 дней вирус разрушает FAT. При восстановлении с архивных копий пользователь обнаруживает, что данные в них искажены. Вирус dBASE создает специальный файл с атрибутом HIDDEN, называемый BUG.DAT, в котором хранится информация о том, какие записи файла (записывается смещение в байтах) имеют переставленные байты. Для каждого каталога, содержащего DBF-файлы, создается свой скрытый файл BUG.DAT.
Исторические сведения. Данный вирус описан в 1989 г. Р.Гринбергом [Greenberg89]. В СССР случаи заражения не отмечались.
Методы и средства защиты. При работе с файлом BUG.DAT вирус не проверяет установку атрибута READ ONLY. Поэтому, если создать искусственный файл с таким атрибутом, то вирус не сможет записать в него информацию и тем самым повредить DBF-файлы.
Данный вирус также является резидентным и, как и вирус dBASE, выполняет перестановки байтов. Он перехватывает прерывание от таймера и каждые несколько минут, начиная со случайной позиции, последовательно сканирует память видеоадаптера. Если вирус находит четыре последовательные цифры, то он переставляет местами две из них. Вирус повторно заражает СОМ-файлы. При первом запуске зараженной программы инсталлятор вируса перед тем, как сделать код вируса резидентным, заражает все подходящие файлы в текущем каталоге, включая и файл, содержащий запускаемую программу, если последняя находится в текущем каталоге.
Исторические сведения. Данный вирус описан в 1989 г. Р.Гринбергом [Greenberg89]. В СССР случаи заражения не отмечались.
Методы и средства защиты. Вирус содержит ASCII-строку "InFeCt" (с указанным сочетанием больших и маленьких букв). Непосредственно перед этой строкой располагаются четыре байта оригинальной программы, замененные вирусом. Эти байты можно вручную переставить в начало программы или написать соответствующий фаг.
Данная группа, по-видимому, является историческим предшественником иерусалимской группы и, возможно, принадлежит тому же автору. В нее входят вирусы RC-897 и RE-1488. В СССР отмечены лишь единичные случаи заражения.
Резидентный файловый вирус, заражающий COM-файлы при запуске на выполнение. При заражении очередного файла выдает на экран сообщение
YOU HAVE A VIRUS.
а первого апреля выдает сообщение
HA HA HA IT'S APRIL 1ST - YOU HAVE A VIRUS (1 апреля ха-ха-ха. У Вас вирус)
и вызывает зависание системы.
Исторические сведения. Вирус разработан в Израиле в 1987 г. и относится к ранним представителям иерусалимской группы. В СССР обнаружен в сентябре 1990 г. Е.В.Касперским.
Методы и средства защиты. Данный вирус диагностируется полидетектором Scan. Рекомендуемые полифаги приведены в прил.1.
Штамм, заражающий EXE-файлы. Проявляется 1 апреля и после определенного времени работы на компьютере, выдавая сообщение
HA HA HA IT'S APRIL 1ST - YOU HAVE A VIRUS. (1 апреля ха-ха-ха. У Вас вирус)
При этом зависание системы приводит к потере информации при редактировании или других аналогичных работах.
Исторические сведения. Вирус разработан в Израиле в 1987 г. и относится к ранним представителям иерусалимской группы. В СССР обнаружен в сентябре 1990 г. Е.В.Касперским.
Методы и средства защиты. Данный вирус диагностируется полидетектором Scan. Рекомендуемые полифаги приведены в прил.1.
Данная группа появилась в США в 1989 г. В настоящее время состоит из четырех штаммов длиной 1168 (Datacrime), 1280 (Datacrime-B), 1480 (Datacrime-II) и 1514 (Datacrime-IIb) байтов. Стадия проявления для данного вируса наступает ежегодно после 12 октября (день открытия Америки, День Колумба). Перед поиском файла-жертвы вирус проверяет текущую дату. Если дата больше 12 октября и компьютер имеет винчестер, то первые два штамма дешифруют и выдают на экран сообщение:
DATACRIME VIRUS RELEASED: 1 MARCH 1989
а последние два (Datacrime-II и Datacrime-IIb):
DATACRIME II VIRUS
Фазы проявления идентичны для всех упомянутых выше версий и состоят в низкоуровневом форматировании нулевого трека (головки 1-9). При этом вирус уничтожает MBR, бут-сектор, FAT и главный каталог. В результате при перезагрузке машины винчестер не опознается и для восстановления требуются резервные копии соответствующих системных блоков. После уничтожения нулевого трека вирус зацикливается, выдавая в этом бесконечном цикле символ BELL (звуковой сигнал). Это еще раз подчеркивает необходимость резервирования первых треков при каждой загрузке в специальный файл, расположенный в фиксированном месте диска, с помощью специальных программ (Image из пакета Norton Utilities или Mirror из пакета PC Shell).
По данным H.J.Highland [Highland89j], который до 1990 г. был главным редактором журнала Computers & Security, автор вирусов предпринял некоторые меры маскировки. Вирусы, входящие в данную группу, не заражают файлы, седьмой символ имени которых равен "D", и в частности, файл COMMAND.COM. Как уже указывалось, содержащееся в теле вируса текстовое сообщение шифруется с помощью команды XOR. Дешифровка выполняется непосредственно перед выдачей сообщения на экран, т.е. перед срабатыванием троянской компоненты. При поиске зараженных файлов вирус просматривает корневой каталог и все подкаталоги винчестера. Если подходящие для заражения файлы там не обнаружены, то выполняется просмотр диска A, а затем диска B.
Данный вирус является нерезидентным файловым вирусом, заражающим EXE-файлы. При заражении дописывает себя в конец файла, увеличивая длину на 1168 байтов и заменяя первые пять байтов зараженной программы на команду перехода к началу вируса. Вирус размножается с 1 апреля по 12 октября любого года. До 1 апреля вирус находится в латентном состоянии и при запуске зараженных файлов сразу передает управление вирусоносителю. Стратегия размножения основана на просмотре каталогов и заражении всех найденных COM-файлов, кроме тех, которые имеют в качестве седьмой буквы имени букву D. Сначала просматриваются разделы винчестера, а затем дисководы с дискетами. Из-за ошибок в коде заражаются не все файлы, создавая впечатление случайного выбора. Возможно зависание системы в процессе заражения.
При выполнении зараженного файла после 12 октября любого года вирус выдает приведенное выше сообщение (зашифровано в теле вируса) и выполняет низкоуровневое форматирование нулевого трека винчестера. Для PC AT, а также систем c контроллерами типа RLL или SCSI алгоритм запуска низкоуровневого форматирования неработоспособен.
Исторические сведения. Данный вирус обнаружен в мае 1989 г. в Нидерландах. По всей видимости, вирус разработан там же. Судя по выдаваемой надписи, время разработки относится в началу 1989 г., а начало распространения -- к марту 1989 г. Случаи заражения отмечались в США уже летом того же года. Это первый вирус, в котором фаза распространения и фаза проявления отделены периодом в десять месяцев. В настоящее время практически полностью уничтожен. В СССР явно не отмечался, однако, учитывая его европейское происхождение, рекомендуется проверять программное обеспечение на зараженность вирусами данной группы в сентябре текущего года.
Методы и средства защиты. Диагностируется полидетектором Scan.
Штамм, заражающий только файлы типа EXE- и способный форматировать винчестер с контроллерами как типа MFM, так и типа RLL.
Штамм, заражающий как COM-, так и EXE-файлы. Тело вируса зашифровано. Обнаружен в Нидерландах в ноябре 1990 г.
Последний, наиболее изощренный штамм, обнаруженный в ноябре 1989 г. Заражает как COM-, так и EXE-файлы, включая COMMAND.COM. Файлы, вторым символом имени которых является буква "B" (IBMBIO.COM, IBMDOS.COM), не заражаются. Тело вируса зашифровано за исключением начала инсталлятора, что ограничивает выбор сигнатуры этим участком (аналогично RC-1701). Впрочем, размер этого участка вполне достаточен для эффективного детектирования (более 50 байтов).
Поскольку вирус не является резидентным, он заражает файлы при выполнении зараженного файла. При заражении тело вируса шифруется и дописывается в конец файла. Файлы заражаются однократно. Признак зараженности основан на проверке поля даты. Стратегия поиска потенциальных жертв основана на поиске еще незараженных EXE-, а затем COM-файлов на диске в текущем каталоге и всех его подкаталогах. Если жертва найдена, то она заражается. Таким образом, вызов зараженной программы приводит к заражению еще одного файла.
Фаза проявления описана выше, однако условие ее наступления несколько изменено. Вирус пытается форматировать нулевой трек винчестера в любой день после 12 октября, кроме понедельника, если компьютер имеет винчестер. Если компьютер не имеет винчестера, то каждое воскресенье после 12 октября при запуске зараженной программы на экран выдается сообщение
* DATACRIME II *
и система зависает.
Как уже указывалось, относительно компьютерных вирусов существует немало легенд. Некоторые из них мы рассмотрим в этом разделе.
Данная легенда основана на демонстрационном вирусе, действительно существовавшем на компьютерах с микропроцессором 8080 или Apple II. Или, возможно, вирус полностью уничтожен и относится к "ископаемым" вирусам. Название данного вируса связано с персонажем популярной в США детской телевизионной программы SESAME STREET. Проявление этого вируса связано с выдачей на экран сообщения
I WANT COOKIE (Хочу печенья)
Только ввод с клавиатуры слова COOKIE позволяет продолжить работу с программой. Вводом тайного пароля "OREO" можно "усыпить" вирус на несколько недель. В некоторых вариантах легенды вирус стирает файлы при неправильном ответе или слишком длительной задержке с ответом.
Отечественный аналог данного мифа под названием Чуча (якобы выдающий сообщение "Хочу чучу") опубликован в [Павлов89].
Исторические сведения. Слухи о данном вирусе дошли до Киева в конце 1988 г., т.е. до появления в Киеве настоящих компьютерных вирусов. Вирус упоминается в ряде зарубежных публикаций. В файле П.Хоффман не описан.
Методы и средства защиты. Как ни странно, но для данного вируса имеется фаг (может быть, вирус относится к классу ископаемых, а не мифических) -- вирус диагностируется и "выкусывается" полифагом Antivir (версия 3.0 1988 г.), разработанным Д.Хоппенратом (D.Hoppenrath).
Автором легенды является А.А.Чижов. В статье [Чижов88] он неосторожно высказал собственную идею о вирусе, внедряющемся в библиотеку объектных модулей компилятора. Соответствующий текст представляет исторический интерес:
"3. Вирус в объектной библиотеке. Вирус, прикрепленный к объектной библиотеке какого-либо компилятора, -- наиболее изощренный вид вируса. Такой вирус автоматически внедряется в любую программу, составленную программистом, работающим с зараженной библиотекой.
Внедряется вирус в библиотеку следующим способом. В объектную библиотеку добавляется модуль, содержащий в себе вирус, оформленный в виде подпрограммы. Затем в модуль, который должен получать управление от Дос в сформированной программе, вставляется вызов подпрограммы, содержащей вирус. При этом корректируется таблица глобальных имен, используемых в библиотеке. При компоновке какой-либо программы модуль с вирусом автоматически подключается к программе и всегда будет запускаться при ее запуске..."
Данная легенда стала неотъемлемой частью программистского фольклора. Попытку придать этой легенде статус научного факта предпринял Ю.Н.Основский. В брошюре [Основский90] написано буквально следующее:
"Вирусы, вызывающие аварию аппаратного обеспечения ЭВМ, представляются наиболее опасными из всех классов вирусов. Если после срабатывания вируса из классов, описанных выше, самым серьезным последствием является гибель всей информации на носителях, то срабатывание вируса, вызывающего аварию аппаратного обеспечения ЭВМ, кроме логического разрушения информации, вызывает еще и физическую поломку машины.
К счастью, автор не сталкивался еще с такими вирусами "лицом к лицу" (т.е. на своем персональном компьютере), однако наблюдал результаты срабатывания одного из таких вирусов на машине своих коллег. Этот вирус заставил операционную систему обращаться к жесткому диску с резонансной частотой блока его головок. Как результат -- падение блока головок на вращающийся диск, заклинивание диска с повреждением всех его поверхностей и, естественно, разрушением информации. Для восстановления работоспособности машины пришлось покупать новый жесткий диск."
Далее автор приводит еще более интересные сведения:
"Однако можно с достаточной степенью уверенности утверждать, что распространение этого типа вирусов не грозит пользователям персональных ЭВМ с жесткими дисками производства стран -- членов СЭВ только в том случае, если жесткие диски собраны в этих странах. При использовании готовых "фирменных" жестких дисков проникший на машину вирус может сработать, так как для определения резонансной частоты диска необходимо точно знать его физические параметры. Поэтому опасность срабатывания подобного вируса грозит только тем пользователям, машины которых оснащены "фирменными" жесткими дисками. Автору удалось установить (естественно, не путем эксперимента), что эти вирусы существуют в настоящее время только для двух типов "фирменных" жестких дисков: SeaGate и Amstrad."
Источником данной легенды является все та же статья [Чижов88]. Приведем соответствующую цитату.
"Возможно создание вируса, внедряемого в сетевой драйвер. Такой вирус переносит себя по сети на другой компьютер. Возможность перенесения по сети, конечно, зависит от вида сети -- один вирус обычно может заражать только сеть одного вида с однотипными драйверами обслуживания сети.
Самый простой способ переноса такого вируса -- передача по сети нового варианта сетевого драйвера. Для этого необходимо, чтобы зараженный драйвер вызвал от незараженного абонента сетевой драйвер (или его часть), добавил в него вирус и передал обратно. При последующем запуске сетевого драйвера будет запущен уже новый зараженный драйвер.
Процесс заражения сопровождается довольно большими передачами по сети, поэтому вирус может быть обнаружен за счет не только изменения размера сетевого драйвера или его контрольной суммы, но и обнаружения лишних передач по сети."
Эта легенда принадлежит, по-видимому, Ю.Н.Основскому, который пишет:
"...Автору известен только один случай заражения сетевым вирусом, когда появление вируса на одной из концевых машин сети вызвало немедленное заражение головной машины сети, а за ней -- и всех остальных концевых машин.
Этот вирус длиной 2231 байт распространялся через прерывание DOS 21H (выполнение функций DOS, номера функций 5EH, 5FH). Вирус заражал .СОМ и .EXE-файлы, увеличивая их длину. Несмотря на то, что в течение нескольких дней никаких внешних проявлений вируса не замечалось, было решено полностью очистить все машины от вируса. Лишь на одной машине, исключенной из сети, вирус был обезврежен в операционной ситеме, но с исследовательскими целями оставлен в ряде программ пользователей. В результате исследования выяснилось следующее:
- вирус и в отсутствии сети способен заражать операционную систему, причем не только ее командный процессор, который поражается сразу, но и скрытые системные файлы, которые поражаются в самом конце инкубационного периода;
- инкубационный период вируса составляет около месяца, после чего на машине происходит "ядерный взрыв" (это название предложено автором на основании анализа пораженного вирусом жесткого диска после срабатывания). Дело в том, что характер поражения напоминает след ядерного взрыва: чем ближе к FAT-таблице, которая является как бы "эпицентром" жесткого диска, тем больше разрушенных векторов в логических кластерах);"
Ну и так далее. Здесь, пожалуй, четче всего видна опасность фантазирования на "вирусную тематику". Не случайно, по некоторым данным, разведслужбы специально анализируют издаваемые детективы на предмет возможного использования приводимых сюжетных ходов в реальных операциях, а после просмотра "жестокого" фильма отмечается возрастание числа опасных преступлений, близких по схеме к событиям на экране.
Данная легенда, по-видимому, принадлежит А.А.Чижову. В уже упоминавшейся статье [Чижов88] он пишет:
"Вряд ли вирус может внедриться в загрузчик, так как загрузчик должен размещаться в одном секторе диска емкостью 512 байтов. В загрузчике практически нет свободного места.
Другое дело -- скрытые файлы ДОС. Вирус может прикрепиться к любому из этих файлов, при этом его дальнейшее поведение может быть различным. Само прикрепление происходит просто -- вирус может дописать себя в конец одного из файлов. При запуске каждого из скрытых файлов управление передается на начало файла, в котором стоит команда перехода на инициатор соответствующей части ДОС, вместо которой вирус может поставить переход на свое начало, а после настройки запустить инициатор ДОС. Наиболее действенным может быть прикрепление ко второму скрытому файлу -- IBMDOS.COM (MSDOS.SYS), так как, во-первых, в конце первого файла находится конфигуратор системы, обрабатывающий файл CONFIG.SYS, что мешает прикреплению вируса, во-вторых, в момент запуска первого скрытого файла ДОС еще не функционирует. В момент же запуска второго скрытого файла ДОС уже частично функционирует, полностью сформированы драйверы ввода-вывода."
Ю.Н.Основский преподносит эту легенду как факт, имеющий место на начало 1990 г.:
"Поражение скрытых системных файлов приводит к заражению всей операционной системы ЭВМ, а если ЭВМ включена в состав локальной вычислительной сети, то возможен переход вируса на любую другую машину сети, в том числе и на головную.
Правда, обычно заражение скрытых системных файлов довольно легко распознается, так как одна из первых же перезагрузок пораженной операционной системы приводит к срабатыванию вируса и, как правило, к потере информации на носителе (ничего себе легкое распознавание! -- Н.Н.Безруков). Отметим, что большинство вирусов, заражающих скрытые системные файлы, относятся к классам вирусов, либо повреждающих системные области дисков, либо форматирующих диски.".
Опыт автора показывает, что в случае поражения скрытых файлов обычными файловыми вирусами (резидентные вирусы, заражающие файлы при открытии, заражают указанные системные файлы при их копировании) операционная система становится неработоспособной. Специальных вирусов, рассчитанных именно на заражение скрытых файлов, в настоящее время не существует (возможно, потому, что слишком мала инфицирующая способность такого вируса -- меньше чем у бутового). Это, конечно, не исключает возможность использования этого метода в комбинации с другими, как, например, произошло с методом заражения COMMAND.COM, использованного вирусом RC-0-346(Lеhigh).
Данный вирус получил общесоюзную известность благодаря программе Talker (Софтпанорама, т.2, No. 5, т.2, No. 10). Как уже указывалось в гл. 2, Talker был троянизирован сигнатурой, по которой полидетектор Scan опознает вирус Sylvia.
Как уже указывалось, бутовые вирусы обладают существенно меньшей инфицирующей способностью, чем файловые (дискет значительно меньше, чем файлов). Их общее количество на порядок меньше общего количества файловых вирусов. Зараженность компьютера этим типом вируса удобнее всего проверять при загрузке, вставив в AUTOEXEC.BAT вызов программы SysTest Я.У.Гринфельдса (Софтпанорама, т.2, No. 10) или ей аналогичной (AVB).
В настоящее время можно выделить четыре группы бутовых вирусов: итальянскую, пакистанскую, новозеландскую и индийскую. Первыми в СССР появились вирусы итальянской группы. Наиболее распространенными в настоящее время являются вирусы новозеландской и индийской групп.
Основным методом борьбы с бутовыми вирусами является входной контроль поступающих дискет и периодическая ревизия имеющихся архивов. Методика входного контроля для бутовых вирусов аналогична методике контроля программного обеспечения на зараженность файловыми вирусами. Дополнительно рекомендуется вакцинирование дискет с помощью бутовой вакцины VitaminB (Софтпанорама, т.3, No. 2), разработанной А.В.Сессой (Днепропетровск). Указанная вакцина заменяет стандартный бут-сектор дискеты и при получении управления не только диагностирует изменения бут-сектора дискеты, но и в большинстве случаев предотвращает заражение компьютера бутовым вирусом при нечаянной загрузке с зараженной дискеты. Использовать VitaminB для винчестера не рекомендуется.
Важной мерой профилактики против заражения этим типом вирусов является создание резервной копии основных системных блоков винчестера (MBR, бут-сектора, FAT и главного каталога). Это удобно выполнять с помощью программы Image из Norton Utilities или программы Mirror из PC Shell. При борьбе с бутовыми вирусами важно не ограничиваться уничтожением вируса на винчестере, а провести ревизию всех используемых дискет.
Итальянская группа, в основном, представлена бутовыми вирусами, демонстрирующими интересный визуальный эффект: во время работы пользователя ни с того ни с сего на экране появляется хаотически движущееся светлое пятно (мячик). Первым и наиболее распространенным представителем этой группы является вирус Bx1-1C, на примере которого мы и рассмотрим эту группу.
Многие из неформальных названий данного вируса связаны с тем, что вирус визуально проявляется в виде светлого ромбика на экране дисплея, двигающегося в случайном направлении и "отражающегося" от символов псевдографики. Формально данный вирус относится к резидентным бутовым вирусам типа Вx1: он заражает как дискеты, так и винчестер, а его хвост расположен в одном кластере, помеченном как сбойный, как на дискетах, так и на винчестере.
Дамп головы и хвоста вируса приведены ниже. Как уже указывалось, инфицируются любые дискеты, а не только системные. Оригинальный бут-сектор находится во втором секторе сбойного кластера, что позволяет использовать его при восстановлении с помощью Norton Utilities или PC Tools. Длина вируса составляет 1536 (600h) байтов.
Процесс начальной загрузки на IBM-совместимых компьютерах состоит в считывании бут-сектора, который размещается по адресу 0000:7C00, и передаче управления по указанному адресу. Когда происходит загрузка с зараженного диска, вместо бут-сектора считывается голова вируса. Затем управление передается на начало вируса. Вирус определяет объем памяти компьютера (слово по адресу 0040:0013) и уменьшает его значение на 2, резервируя место размером 2K под свою копию. Затем вирус копирует себя в зарезервированную область, передает туда управление, ищет свою вторую часть на диске, дописывает к себе свое продолжение и считывает оригинальный бут-сектор (второй сектор псевдосбойного кластера с хвостом вируса) в память по адресу 0000:7C00. Затем вирус перехватывает прерывание 13h с тем, чтобы контролировать обращения к диску, и запускает стандартный системный загрузчик (передавая управление на адрес 0000:7C00). Последний, в свою очередь, загружает IBMBIO.COM и IBMDOS.COM (или IO.SYS и MSDOS.SYS), т.е. происходит стандартная загрузка системы. В дальнейшем, в процессе работы пользователя на ЭВМ, вирус активируется всякий раз, когда выполняется операция чтения с дискеты. Получив управление, вирус анализирует, относится оно к дискете или к винчестеру. Если это прерывание относится к дискете, то сначала вирус проверяет, заражена уже данная дискета или нет. Для этой цели считывается бут-сектор и проверяется его содержимое. Если дискета еще не заражена, то вирус заражает дискету, а затем обрабатывает команду READ. В случае, если дискета уже заражена, вирус сразу переходит к обработке команды READ; так же он поступает в случае, если дискета защищена от записи.
Заражение выполняется следующим образом. Сначала вирус копирует оригинальный бут-сектор в оперативную память. Затем вирус ищет свободный кластер, который он может пометить как сбойный. Если ни одного свободного кластера на дискете нет, то заражение не происходит. Если подходящий кластер найден, то вирус копирует туда оригинальный бут-сектор и свoй хвост (в первый сектор кластера записывается хвост, а во второй сектор -- оригинальный бут-сектор). Для того, чтобы занятый вирусом кластер не был использован MS DOS при создании нового файла, вирус помечает этот кластер как сбойный. И, наконец, вирус записывает свою голову в бут-сектор заражаемого диска, предварительно записав в ней номер кластера, содержащего хвост вируса. Заражение дискет происходит стандартным образом: при обращении к дискете. При заражении винчестера вирус анализирует в MBR таблицу разделов (Partition Table) и определяет положение бут-сектора на винчестере.
Стадия проявления у данного вируса наступает через случайный промежуток времени, варьирующийся от десятков минут до десятков часов. Условия активизации точно автору не известны, однако эффект, заключающийся в появлении на экране светлого ромбика (знак 07h ASCII), который хаотически движется по диагоналям, наблюдается при любом типе установленного адаптера. Для обеспечения этого эффекта вирус перехватывает прерывание 10h. Ромбик беспрепятственно проходит сквозь обычные символы, однако отражается от границ экрана и символов псевдографики. В некоторых случаях при прохождении через символ ромбик изменяет цвет символа или заменяет символ собой, искажая содержимое экрана. Изменение цвета часто наблюдается со стандартной подсказкой DOS. При записи в память искажения сохраняются. Поэтому можно исказить редактируемый текст, работая на зараженной машине. Если экран находится в графическом режиме, то движущийся ромбик изменяет цвет полей, через которые он проходит. Для некоторых игр это приводит к быстрому окрашиванию экрана в черный цвет, что делает невозможным продолжение игры.
В теле вируса имеется экзотическая команда, которую выполняет микропроцессор 8086/8088 и не выполняет микропроцессор 80286. Поэтому вирус работоспособен только на машинах класса XT. При попытке загрузиться с зараженной дискеты на IBM PC AT система зависает. Заражаемые дискеты должны иметь сектора размером 512 байтов и кластер, состоящий из двух секторов.
Исторические сведения. Данный вирус появился на Западе примерно в конце 1987 г. В СССР появился в конце 1988 г. (в Киеве в начале 1989 г.). Bx1-1C был первым бутовым вирусом, попавшим в СССР, и получил значительное распространение. Пик эпидемии наблюдался в сентябре 1989 г. Первым и достаточно удачным фагом для этого вируса, появившимся в Киеве, была зарубежная программа PNCL (Софтпанорама, т.1, No. 1). Поскольку данный вирус является одним из самых распространенных бутовых вирусов, имеются многочисленные штаммы. Описанная версия в настоящее время практически полностью уничтожена.
Неформальные названия. Для данного вируса существует порядка десяти неформальных названий. Среди них: Bouncing Dot -- Танцующий зайчик; Bouncing Ball -- Прыгающий мячик; Italian Bouncing -- Итальянский попрыгунчик; Ball -- Мячик, Vera Cruz -- Вера Круз, Italian -- Итальянский. Полидетектор Scan опознает этот вирус как "Ping Pong Virus -- Version B [Ping]".
Методы и средства защиты. При проверке полученных дискет удобнее всего сравнивать первые три байта (J-сигнатуру) дампа. Перед считыванием информации с полученной дискеты рекомендуется обязательно провести ее вакцинирование с помощью бутовой вакцины VitaminB.
Вирус можно идентифицировать путем визуального просмотра содержимого бут-сектора (использовать Norton Utilities удобнее чем PCTools). Norton Utilitis (NU) выдает FAT в "полуинтерпретированном" виде и позволяет сразу определить номер кластера, помеченного как сбойный, что облегчает его поиск и анализ. Как уже указывалось, вирус хранит содержимое нормального бут-сектора во втором секторе своего сбойного кластера.
Рекомендуемые в прил.2 полифаги распознают и уничтожают этот вирус, предварительно нейтрализуя его в памяти. Тем не менее лучше выполнять эту операцию, загрузившись с защищенной от записи эталонной дискеты. При борьбе с данным вирусом важно не ограничиваться уничтожением вируса на винчестере, а провести полную ревизию всех используемых дискет.
Дамп головы вируса Bx1-1C 000: EB1C90504320546F 6F6C730002020100 ...PC Tools..... 010: 027000D002FD0200 09000200000033C0 .p............3. 020: 8ED0BC007C8ED8A1 13042D0200A31304 ....|.....-..... 030: B106D3E02DC0078E C0BE007C8BFEB900 ....-......|.... 040: 01F3A58EC80E1FE8 000032E4CD138026 ..........2....& ... .. .. .. .. .. .. .. .. . . . . . . . . 120: F77DFE5A595B5807 1FEA1B0300C8B801 .}.ZY[X......... 130: 02B600B90100E88A FFF606F87D807423 ............}.t# 140: BEBE81B90400807C 0401740C807C0404 .......|..t..|.. 150: 740683C610E2EFC3 8B148B4C02B80102 t..........L.... 160: E860FFBE0280BF02 7CB91C00F3A4813E .`......|......> 170: FC8157137515803E FB8100730DA1F581 ..W.u..>...s.... 180: A3F57D8B36F981E9 0801C3813E0B8000 ..}.6.......>... 190: 0275F7803E0D8002 72F08B0E0E80A010 .u..>...r....... 1A0: 8098F726168003C8 B82000F726118005 ...&..... ..&... 1B0: FF01BB0002F7F303 C8890EF57DA1137C ............}..| 1C0: 2B06F57D8A1E0D7C 33D232FFF7F3408B +..}...|3.2...@. 1D0: F88026F77DFB3DF0 0F7605800EF77D04 ..&.}.=..v....}. 1E0: BE01008B1E0E7C4B 891EF37DC606B27E ......|K...}...~ 1F0: FEEB0D01000C0001 00240200571355AA .........$..W.U. Хвост вируса, записанный в "псевдосбойном" кластере 000: FF06F37D8B1EF37D 8006B27E02E88DFE ...}...}...~.... 010: EB39B80300F606F7 7D04740140F7E6D1 .9......}.t.@... 020: E82A26B27E8BD881 FBFF0173D38B9700 .*&.~......s.... 030: 80F606F77D04750D B104F7C601007402 ....}.u.......t. 040: D3EA80E60FF7C2FF FF7406463BF776C2 .........t.F;.v. 050: C3BAF7FFF606F77D 04750D80E60FB104 .......}.u...... 060: F7C601007402D3E2 099700808B1EF37D ....t..........} ... .. .. .. .. .. .. .. .. . . . . . . . .
В данном штамме имеются изменения, вносимые вирусами подгруппы музыкальных самоедов. Изменения состоят во введении счетчика, увеличивающегося на единицу при каждом заражении. При достижении счетчиком значения 255 вирус теряет способность к дальнейшему размножению.
Исторические сведения. Выделен и изучен И.В.Сысоевым. Приводимые сведения опираются непосредственно на его сообщение на семинаре.
Неформальные названия. Помимо приведенного выше, отсутствуют.
Методы и средства защиты. Рекомендуется использовать полифаг AV.
Данный штамм является версией оригинального вируса, в котором непосредственно в загрузочном модуле сделаны изменения, направленные на стирание первых секторов диска при нажатии клавиши Scroll Lock. Из-за ошибок при корректировании загрузочного модуля "по живому" данный штамм только размножается. Впрочем, возможно имеется и "доработанная" версия.
Исторические сведения. Выделен и изучен И.В.Сысоевым. Приводимые сведения опираются непосредственно на его сообщение на семинаре.
Неформальные названия. Помимо приведенного выше, отсутствуют.
Методы и средства защиты. Рекомендуется использовать полифаг AV.
Для данной группы характерно заражение MBR на винчестере и минимальный хвост, размером в один сектор, содержащий только оригинальный бутсектор (или MBR), который размещается не в псевдосбойном кластере, а по определенному абсолютному адресу, приходящемуся на начальные сектора диска. Другой особенностью вирусов данной группы является то, что они заражают винчестер сразу после инсталляции в оперативную память, т.е. до передачи управления стандартному загрузчику, а не после, как это делает большинство вирусов других групп.
Неформальное название данного вируса связано с тем, что при загрузке MS DOS с вероятностью 1/8 на экран выдается сообщение "Your PC is now Stoned" ("Ваш компьютер забалдел"), после которого, с некоторой задержкой, возрастающей по мере увеличения количества перезагрузок и сопровождающейся характерным звуком, выполняется нормальная загрузка.
Формально M-05 представляет собой бутовый вирус, заражающий как дискеты, так и винчестер. Голова вируса содержит строку "LEGALISE MARIJUANA!". Хвост состоит только из оригинального бут-сектора. Работоспособен как на PC XT, так и на PC AT.
Заражение дискет выполняется стандартным образом. Вирус перехватывает прерывание 13h и проверяет запрашиваемую по данному прерыванию функцию. Если это чтение или запись, то вирус определяет, к какому диску идет обращение. Если это диск А, то вирус считывает бут-сектор с дискеты и определяет, заражен ли он уже или нет. Если нет, то считанный оригинальный бут-сектор записывается по адресу 0/1/3, а вместо него записывается тело вируса.
Заражение винчестера выполняется при инсталляции вируса. Вирус считывает MBR винчестера и по первым четырем байтам определяет, заражен он или нет. Если не заражен, то выполняется его заражение путем записи головы вируса в MBR. Расположение хвоста вируса отличается для дискеты и винчестера. Как уже указывалось, на дискете хвост вируса расположен не в сбойном кластере, а в секторе с абсолютным адресом (цилиндр/дорожка/сектор) 0/1/3 -- последнем секторе главного каталога дискеты. На винчестере хвост располагается в свободном секторе с абсолютным адресом 0/0/7, который обычно представляет собой неиспользуемое пространство между MBR и началом логического диска С.
При заражении дискеты проверок, занят указанный выше сектор информацией или нет, вирус не выполняет. Поэтому на дискете, содержащей в главном каталоге много мелких программ (более 96), возможно уничтожение части каталога. Поскольку при заражении дискет вирус не проверяет тип дискеты, то при заражении дискет 720K или 1.2M может быть уничтожена часть FAT. Пораженные дискеты могут быть восстановлены, поскольку MS DOS хранит две копии FAT.
В случае, если винчестер разбит более чем на четыре логических раздела с помощью SpeedStore, содержимое записей Partition Table всех разделов после четвертого при заражении теряется и до восстановления оригинального MBR становится недоступной. Кроме того, если диск размечен так, что сектор 0/1/7 используется для хранения информации, вирус уничтожит эту информацию. Такие случаи наблюдаются при разметке диска c помощью ADM. Информацию об этих разделах можно восстановить с помощью Norton Disk Doctor.
Фаза проявления привязана к загрузке с дискеты. Если компьютер загружается с зараженной дискеты, то с веротностью 1/8 на экране появляется приведенное выше сообщение.
Исторические сведения. Вирус M-05 впервые был обнаружен в Веллингтоне (Новая Зеландия) в начале 1988 г. и быстро распространился в Азии, а затем в США и Европе. Исторически это первый бутовый вирус, заражавший MBR. По данным П.Хоффман, оригинальный вирус заражал только пятидюймовые дискеты 360K. С этой точки зрения описанный выше вирус следует рассматривать как штамм оригинального (Stoned-B). В нашей стране появился в конце 1989 г. практически одновременно в нескольких городах. В настоящее время является самым распространенным в СССР бутовым вирусом.
Имеется несколько штаммов, среди которых отметим штамм Stone Rostov, описанный ниже, а также Stoned-C: штамм с удаленным сообщением; Stoned-D: аналогичен описанному выше, однако способен заражать дискеты типа HD (как трех-, так и пятидюймовые).
Неформальные названия. Помимо приведенного выше, встречаются названия: Marijuana -- Марихуана, Hawaii -- Гаваи, New Zealand -- Новая Зеландия, San Diego -- Сан Диего, Smithsonian -- Смитсонианский. Полидетектор Scan называет данный вирус "Stoned Virus [Stoned]".
Методы и средства защиты. Рекомендуемые детекторы и полифаги приведены в прил.2. В связи с тем, что вирус заражает винчестер в процессе инсталляции, универсальная бутовая вакцина VitaminB способна только диагностировать факт заражения, но не в состоянии предотвратить его. В таких случаях нужно сразу перегрузиться с защищенной от записи дискеты с эталонной операционной системой и запустить подходящий фаг. В случае обнаружения вируса в организации рекомендуется провести ревизию всех используемых дискет.
Дамп бут-сектора дискеты, зараженной вирусом 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.
Данный штамм практически идентичен базисной версии. В конце зараженного бут-сектора отсутствует характерная подпись 55AAh и видны обрывки стандартных текстовых сообщений. Изменена лишь часть кода, связанная с проявлением вируса: данный штамм не содержит ни характерных для базисной версии текстовых строк, ни кода, который выводит их на дисплей. Вместо этого вставлен код, который при загрузке с зараженной дискеты с вероятностью 1/32 стирает на винчестере 8 секторов.
Исторические сведения. Вирус M-05r был обнаружен в Ростове летом 1990 г. Автору передан Д.Н.Лозинским.
Неформальные названия. Помимо приведенных выше, неизвестны.
Методы и средства защиты. Аналогичны рекомендованным для базовой версии.
Дамп бут-сектора дискеты, зараженной вирусом M-05r 000: 9A0500C007E99900 00E90100C8E40080 ................ 010: 9F007C00001E5080 FC02721780FC0473 ..|...P...r....s 020: 120AD2780E33C08E D8A03F04A8017503 ...x.3....?...u. 030: E80700581F2EFF2E 0900535152065657 ...X......SQR.VW 040: BE0400B801020E07 BB000233C98BD141 ...........3...A 050: 9C2EFF1E0900730E 33C09C2EFF1E0900 ......s.3....... 060: 4E75E0EB359033F6 BF0002FC0E1FAD3B Nu..5.3........; 070: 057506AD3B450274 21B80103BB0002B1 .u..;E.t!....... 080: 03B6019C2EFF1E09 00720FB8010333DB .........r....3. 090: B10133D29C2EFF1E 09005F5E075A595B ..3......._^.ZY[ 0A0: C333C08ED8FA8ED0 BC007CFBA14C00A3 .3........|..L.. 0B0: 097CA14E00A30B7C A113044848A31304 .|.N...|...HH... ... .. .. .. .. .. .. .. .. . . . . . . . . 170: 1F0E07BEBE03BFBE 01B94202F3A4B801 ..........B..... 180: 0333DBFEC1CD13EB C5074E6F6E2D7379 .3........Non-sy 190: 7374656D20646973 6B20202020202020 stem disk 1A0: 200D0A0A00526570 6C61636520616E64 ....Replace and 1B0: 20737472696B6520 0000000000000000 strike ........ 1C0: 0000000000000000 0000000000000000 ................ 1D0: 0000000000000000 0000000000000000 ................ 1E0: 0000000000000000 0000000000000000 ................ 1F0: 0000000000000000 0000000000000000 ................
Неформальное название данного вируса связано с содержащимися в его теле текстовыми строками (см. ниже). Формально данный вирус относится к бутовым вирусам типа В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!" "Диск Киллер -- Версия 1.00 КОМПЬЮТЕРНОГО ЛЮДОЕДА 01.04.89 Предупреждение !! Не выключайте компьютер и не удаляйте дискету пока работает Диск Киллер! ОБРАБОТКА Теперь вы можете выключить компьютер. Желаю удачи!"
Следует отметить, что в этот момент еще можно спасти часть информации, нажав на кнопку перезагрузки (теряются системные блоки). Затем вирус кодирует сектора, выполняя операцию XOR со значениями 0AAAAh и 05555h. Как известно, операция XOR обратима, поэтому можно восстановить перекодированную информацию.
Исторические сведения. В теле вируса содержится дата 04/01/89 (по-видимому, в американском формате месяц/день/год), которую можно интерпретировать как дату создания вируса. По данным П.Хоффман, был выделен в Калифорнии в апреле 1989 г. и имеет тайванское происхождение. В нашей стране вирус появился в начале 1990 г.
Неформальные названия. Полидетектор Scan называет данный вирус "Disk Killer Virus [Killer]". Другими неформальными названиями, помимо приведенных в заголовке являются Ogre -- Людоед, Computer Ogre, Disk Ogre.
Методы и средства защиты. Вирус можно идентифицировать путем визуального просмотра содержимого бут-сектора, например, Norton Utilities. В качестве детектора может использоваться полидетектор Scan. Вместо фага можно использовать команду SYS. При разбивке винчестера раздел С следует создавать минимальным, записывая туда только компоненты операционной системы. В этом случае восстановление становится тривиальным.
Дамп бут-сектора, зараженного вирусом Bx3-EB 000: FAEB4F4D53444F53 332E330002020100 ..OMSDOS3.3..... 010: 027000D002FD0200 0900020000000000 .p.............. 020: 0000000000000000 0000000000000012 ................ 030: 000000000100FA33 C08ED0BC0000CB3C .......3.......< 040: B200AE0000007400 0000005500000000 ......t....U.... 050: 55552EA11304B106 D3E08ED8813E3E00 UU...........>>. 060: CB3C75081E8D063B 0250FBCBB8007CB1 .<u....;.P.... ... .. .. .. .. .. .. .. .. . . . . . . . . 1C0: F501A33F01EB0C90 B80000A34101FEC4 ...?........A... 1D0: A33F01B90300B001 51E867FF597308B4 .?......Q.g.Ys.. 1E0: 00CD83E2F3F9C3F8 C300000000000000 ................ 1F0: 0000000080010100 00000000000055AA ..............U. Фрагмент дампа первого псевдосбойного сектора с телом вируса Disk Killer 000: FA2EC60664018333 C08ED8A12000A304 ....d..3.... ... 010: 02A12200A30602A1 4C00A30C02A14E00 ..".....L.....N. 020: A30E02B87B02A320 00B88F02A34C008C ....{.. .....L.. 030: C8A32200A34E00FB EB159033C08ED88C .."..N.....3.... 040: C88EC0BE037CBF03 00B94700FCF3A433 .....|....G....3 ... .. .. .. .. .. .. .. .. . . . . . . . . Фрагмент дампа сектора с текстовой информацией 500: 00C70641010000C6 064001018CC88EC0 ...A.....@...... 510: BBA208B001E82FFA B80006B90000BA4F ....../........O 520: 18BB0800CD10B402 B700BA000CCD10BB ................ 530: 2C00BEDF07E85101 EBFE4469736B204B ,.....Q...Disk K 540: 696C6C6572202D2D 2056657273696F6E iller -- Version 550: 20312E3030206279 20434F4D50555445 1.00 by COMPUTE 560: 52204F4752452030 342F30312F313938 R OGRE 04/01/198 570: 390D0A005761726E 696E672021210D0A 9...Warning !!.. 580: 0A446F6E27742074 75726E206F666620 .Don't turn off 590: 74686520706F7765 72206F722072656D the power or rem 5A0: 6F76652074686520 6469736B65747465 ove the diskette 5B0: 207768696C652044 69736B204B696C6C while Disk Kill 5C0: 6572206973205072 6F63657373696E67 er is Processing 5D0: 210050524F434553 53494E470D0A004E !.PROCESSING...N 5E0: 6F7720796F752063 616E207475726E20 ow you can turn 5F0: 6F66662074686520 706F7765722E0D0A off the power... 600: 0A49207769736820 796F75206C75636B .I wish you luck 610: 20210057B93A00BE A508BF0300FCF3A4 !.W.:.......... 620: 5FC3C60632080290 EB09C60632080390 _...2.......2... 630: EB01005033D28B0E 1A00F7F1C6064001 ...P3.........@. 640: 0188163F01A34101 A162088EC08A2632 ...?..A..b....&2 650: 08A01800E8F4F873 05B400CD13F958C3 .......s......X. 660: 00000000501EFF36 62081F2E8B0E6008 ....P..6b.....`.
Индийская группа является, по-видимому, продуктом деятельности техно-крысы, живущей в Бомбее. В настоящее время в СССР обнаружены два представителя этой группы.
Название данного вируса связано с тем, что при загрузке MS DOS с 5 января любого года на экран выдается соообщение
Type "Happy Birthday Joshi"!
и компьютер ожидает ответа. Если ввести ответ Happy Birthday Joshi, то загрузка будет продолжена. По данным Д.Н.Лозинского, при программировании выдачи сообщения автор вируса ориентировался только на цветной монитор.
Вирус WM-1F является наиболее скрытным и тщательно маскирующимся из попавших в CCCР бутовых вирусов. Это единственный из попавших в СССР вирусов, который "переживает" теплую перезагрузку. Для этого он перехватывает прерывание от клавиатуры, контролируя нажатие Ctrl-Alt-Del. Заражает дискеты емкостью как 360К, так и 1.2М, а также винчестер.
При заражении дискет, подобно описываемому ниже вирусу D-29 (Den Zuk), записывает хвост на дополнительную дорожку (41 для 360К дискет, 81 для 1.2М дискет). При этом проверок, заняты указанные сектора информацией или нет, вирус не выполняет. Поэтому на дискете, содержащей на 41 дорожке какую-то информацию (например, "замок" защиты от копирования), она будет уничтожена. Как обычно, для заражения достаточно единственного обращения к дискете при резидентном вирусе.
Похоже, автор лишь поверхностно знаком с особенностями формата 1.2M. Распознавание дискет 1.2M выполняется некорректно -- с помощью попытки чтения 17 сектора. Поэтому возможно распознавание дискет 1.2М как 360K и "вклеивание" тела вируса в середину дискеты с соответствующими последствиями.
При заражении винчестера голова вируса записывается в MBR, аналогично вирусу M-05 (Stoned). При этом хвост вируса располагается в восьми секторах, начиная с абсолютного адреса 0/0/2, т.е. сектора, следующего за MBR (как уже отмечалось, обычно эти сектора представляют собой неиспользуемое пространство между MBR и началом логического диска С). Из этих восьми секторов 6 заняты собственно хвостом вируса, следующий седьмой сектор -- пустой, а восьмой содержит оригинальный MBR. Как и при заражении дискеты, при заражении винчестера вирус не проверяет содержимое этих секторов. Зараженный MBR при резидентном вирусе не виден. Механизм обеспечения данного эффекта заимствован из вируса Dx3-E9 (Brain): вирус анализирует запросы к винчестеру и перенаправляет операцию чтения нулевого сектора на сектор, где хранится "спрятанная" Partition Table.
В памяти вирус размещается в старших адресах, "откусывая" у MS DOS 6К. Вирус перехватывает прерывания 8h, 9h, 13h и 21h -- почти как какой-нибудь файловый вирус.
Как уже указывалось, отличительной особенностью данного вируса является то, что он перехватывает прерывание от клавиатуры, что позволяет этому вирусу "выживать" при теплой перезагрузке (с помощью Ctrl-Alt-Del).
Исторические сведения. Вирус WM-1F впервые был обнаружен в Индии в июне 1990 г. В нашей стране появился уже в июле. В Киеве был обнаружен Б.Ю.Литвиновым, а в Москве Д.Н.Лозинским.
Неформальные названия. Полидетектор Scan называет данный вирус Joshi - Джоши. Среди других названий отметим Happy Birthday -- С днем рожденья.
Методы и средства защиты. При попытке разметить дискету 1.2M на зараженной машине начинаются "фокусы": из меню PC Tools этот формат может пропасть, размеченные дискеты сбоят и т.д. Эта характерная особенность может служить достаточно надежным признаком заражения компьютера данным вирусом. Рекомендуемые детекторы и полифаги приведены в прил.2. В частности для входного контроля можно использовать полидетектор Scan в сочетании с полифагом SOS. В организациях, использующих ADM или Disk Manager, при обнаружении случаев заражения рекомендуется перейти к систематическому резервированию системных блоков, например с помощью вставки вызова программ Image или Mirror в AUTOEXEC.BAT. Наличие резервной копии системных блоков позволяет восстановить их "предпоследнее" (а для MBR и бут-сектора -- последнее, поскольку они являются статическими) содержимое, что позволит провести восстановление с минимальными потерями информации. Вообще говоря, с учетом записи хвоста этого и некоторых других вирусов в область между MBR и бут-сектором логического диска С, хранение какой-то информации в секторах первой дорожки винчестера представляется нецелесообразным.
Фрагменты дампа MBR винчестера, зараженного вирусом WB-1F 000: EB1F90C007E99900 021B0300C8E40080 ................ 010: 7F007C00001E5080 FC02721780FC0002 ..|...P...r..... 020: 80FA8CC88ED88ED0 BC00F0FBA11304B1 ................ 030: 06D3E08EC0B80002 2D2100BF0000BE00 ........-!...... 040: 7C03F003F8B97901 2BC8FCF3A675108C |.....y.+....u.. 050: C00520008EC0BB00 000653B80100CBA1 .. .......S..... 060: 13042D0600A31304 B106D3E08EC0BE00 ..-............. 070: 7CBF0000B90002FC F3A48CC00520008E |............ .. 080: C0BB000006530E1F B402B0018A2E1E7C .....S.........| 090: 8A0E1F7CB6008A16 207C50B800B88ED8 ...|.... |P..... 0A0: 585053515206CD13 075A595B58731050 XPSQR....ZY[Xs.P 0B0: 53515206B400CD13 075A595B58EBE2FE SQR......ZY[X... 0C0: C181C300021E0E1F 508AC12A061F7C2C ........P..*..|, 0D0: 08581F72CCB80000 CB00000000000000 .X.r............ 0E0: 0000000000000000 0000000000000000 ................ *** расположенные далее байты вирусом не меняются ***
Неформальное название вируса связано с тем, что вирус вызывает в определенные моменты времени прерывание 5 (печать экрана на принтер). Cпецификация вируса мало чем отличается от спецификаций представителей итальянской группы. Правда в отличие от них B-21 имеет вырожденный хвост, состоящий лишь из оригинального бут-сектора.
При инсталляции "откусывает" 2К. Как и все бутовые вирусы перехватывает вектор 13h. Хвост вируса, состоящий из оригинального бут-сектора записывается по адресу 1/3/13 при заражении винчестера или 0/3/13 при заражении дискеты.
При заражении винчестера вирус не определяет реального положения бутсектора диска С, а исходит из предположения, что бут-сектор всегда расположен по адресу 0/1/1. Хотя это предположение оправдывается в большинстве случаев, при любом другом положении бутсектора вирус "попадает пальцем в небо".
Фаза проявления связана с использование местом хранения хвоста, что может привести к уничтожению одного из секторов FAT. По замыслу автора, при каждом обращении к диску должно вызывать прерывание 5h (печать экрана), но из-за ошибки, этого, по-видимому, никогда не происходит.
Исторические сведения. Вирус WM-1F впервые был обнаружен в Бомбее (Индия) в ноябре 1989 г. Невилем Булсара (Neville Bulsara). Это первый известный индийский вирус. Автору был передан Д.Н.Лозинским. Это сравнительно редкий вирус, не получивший, в отличие от предыдущего, сколько-нибудь значительного распространения. Имеется два штамма, причем второй -- более отлаженная версия первого.
Неформальные названия. Полидетектор Scan называет данный вирус Print Screen. Среди других названий отметим EB 21, 8290, PRTSC Virus.
Методы обнаружения и средства защиты. Основным признаком заражения компьютера данным вирусом является резкое замедление доступа к винчестеру. Рекомендуемые детекторы и полифаги приведены в прил.2. Входной контроль можно выполнять полидетектором Scan.
Дамп бут-сектора дискеты, зараженной вирусом M-21 000: EB2190504320546F 6F6C730002020100 .!.PC Tools..... 010: 027000D002FD0200 0900020000000000 .p.............. 020: 000000FA33C08ED0 BC00F01E161FA113 ....3........... 030: 042D0200A31304B1 06D3E08EC033FFBE .-...........3.. 040: 007CB90002FCF2A4 BFB401BE4C008B04 .|..........L... 050: 89058B4402894502 BB95008CC0891C89 ...D..E......... 060: 4402FB06B8690050 CB33C08EC00E1FB9 D....i.P.3...... ... .. .. .. .. .. .. .. .. . . . . . . . . 140: 5F5E5B07FAA15801 8ED08B265A01FB58 _^[...X....&Z..X 150: 1FCD6DCA02008290 6A02460801030000 ..m.....j.F..... 160: 2001A06001FEC875 07CD05FEC8A26001 ..`...u......`. 170: C34F532020434F4D 494F202020202020 .OS COMIO 180: 5359534D53444F53 2020205359530A0D SYSMSDOS SYS.. 190: 4469736B20426F6F 74204661696C7572 Disk Boot Failur 1A0: 65000A0D4E6F6E2D 53797374656D2064 e...Non-System d 1B0: 69736B206F722064 69736B206572726F isk or disk erro 1C0: 72000A0D5265706C 61636520616E6420 r...Replace and 1D0: 707265737320616E 79206B6579207768 press any key wh 1E0: 656E207265616479 0A0D000000000000 en ready........ 1F0: 0000000000000000 00000000000055AA ..............U.
Представители пакистанской группы вирусов отличаются тем, что они не заражают винчестер, заражая только дискеты. Первым представителем этой группы является вирус Dx3-E9. Известные представители группы имеют в бутовом секторе фразу "Welcome to the Dungeon" -- "Добро пожаловать в долговую тюрьму", связанную с мотивами авторов вирусов, освещенными в гл.1.
Вирус Dx3-E9 во многом аналогичен вирусу Bx1-1C, однако, в отличие от Bx1-1C, он никогда не инфицирует винчестер. При заражении дискеты ее имя меняется на (С)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К, менее половины кода вируса действительно выполняется. Часть кода, похоже, не получает управления ни при каких обстоятельствах и, возможно, вставлена для затруднения дизассемблирования и анализа.
Вирус заражает только 40-дорожечные двухсторонние 9-ти секторные дискеты (360K).
Исторические сведения. Оригинальная версия вируса Dx3-E9 является первым бутовым вирусом для MS DOS, получившим массовое распространение, и была выявлена в США в октябре 1987 г., где она вызвала настоящую эпидемию. Название Brain связано с тем, что он присваивает имя Brain любой зараженной дискете. Это один из немногих вирусов, для которых установлены авторы: Basit Farood Alvi (19 лет) и Bruder Amgad (23 года) из Лахора (Пакистан). Поэтому иногда этот вирус называют "Душманские мозги". П.Хоффман отмечает наличие ряда штаммов:
Рассматриваемый сингапурский штамм Dx3-E9 был первым штаммом Brain, обнаруженным в СССР. Его выделил А.В.Сесса в Днепропетровске в начале сентября 1989 г. на "дистрибутивных" дискетах с пакетами Dr. Halo III и GeniScan Edit, входивших в поставочный пакет сканера фирмы Genius. По данным А.В.Сессы, вирус попал в Днепропетровск вместе с компьютерами, привезенными из Тайваня на компьютерную ярмарку.
Первым детектором для данного вируса был полидетектор Scan, а первым фагом -- программа NoBrain. Как детектор, так и фаг были известны в СССР до появления самого вируса (распространялись через бюллетень Софтпанорама в сентябре-октябре 1989 г.).
Неформальные названия. Помимо приведенного в заголовке, используется название Brain-88 -- Душманские мозги-88.
Методы и средства защиты. Рекомендуемые полифаги приведены в прил.2. Как уже указывалось, вирус нельзя идентифицировать путем визуального просмотра содержимого бут-сектора, например, с помощью PCTools, на зараженной машине; его можно определить, только загрузившись с системной защищенной дискеты. Вакцинирование дискет от данного вируса удобно выполнять с помощью бутовой вакцины VitaminB, которая полностью предотвращает возможность заражения компьютера данным вирусом при нечаянной загрузке с дискеты.
Бут-сектор, зараженный вирусом Brain 000: FAE94A0134120102 0600010020202000 ..J.4....... . 010: 2020202020205765 6C636F6D6520746F Welcome to 020: 207468652044756E 67656F6E20202020 the Dungeon 030: 2020202020202020 2020202020202020 040: 2020202020202020 2020202020202020 050: 2028432920313938 3820426173697420 (C) 1988 Basit 060: 2620416D6A616420 2870767429204C74 & Amjad (pvt) Lt 070: 642E202020202020 2020202020202020 d. 080: 20425241494E2043 4F4D505554455220 BRAIN COMPUTER 090: 5345525649434553 2E2E373330204E49 SERVICES..730 NI 0A0: 5A414D20424C4F43 4B20414C4C414D41 ZAM BLOCK ALLAMA 0B0: 20495142414C2054 4F574E2020202020 IQBAL TOWN 0C0: 2020202020202020 20204C61686F7265 Lahore 0D0: 2C50616B69737461 6E2E2050683A2034 ,Pakistan. Ph: 4 0E0: 33303739312C2034 34333234382E2056 30791, 443248. V 0F0: 6572202853696E67 61706F7265292020 er (Singapore) 100: 426577617265206F 6620746869732022 Beware of this " 110: 7669727573222E20 49742077696C6C20 virus". It will 120: 7472616E73666572 20746F206D696C6C transfer to mill 130: 696F6E206F662044 69736B6574746573 ion of Diskettes 140: 2E2E2E2E20242340 2524402121208CC8 .... $#@%$@!! .. ... .. .. .. .. .. .. .. .. . . . . . . . . Фрагменты дампа хвоста вируса Brain, расположенного в псевдосбойных кластерах +----- начало оригинального бут-сектора | 000: EB349049424D4D53 332E330002020100 .4.IBMMS3.3..... 010: 027000D002FD0200 0900020000000000 .p.............. 020: 0000000000000000 0000000000000012 ................ 030: 000000000100FA33 C08ED0BC007C1607 .......3.....|.. ... .. .. .. .. .. .. .. .. . . . . . . . . 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 ......=.. ... .. .. .. .. .. .. .. .. . . . . . . . . 4A0: 9F8D989F8EE02028 432920427261696E ...... (C) Brain 4B0: 2024E8DB00720A57 E81F005F7203E8D7 $...r.W..._r... 4C0: 00C3BB9B04B90B00 8A07F6D888044643 ..............FC +----- еще одна копия | оригинального | бут-сектора 6B0: 09C606090000FE06 0B00C3647461EB34 ...........dta.4 6C0: 9049424D4D53332E 3300020201000270 .IBMMS3.3......p ... .. .. .. .. .. .. .. .. . . . . . . . . 8A0: 424D444F53202043 4F4D000000000000 BMDOS COM...... 8B0: 0000000000000000 0000000055AA0000 ............U... 8C0: 0000000000000000 0000000000000000 ................ *** последующие строки идентичны предыдущей *** AB0: 0000000000000000 000000000000FDFF ................ AC0: FF03400005600007 800009A0000BC000 ..@..`.......... AD0: 0DE0000F00011120 0113400115600117 ....... ..@..`.. AE0: 800119A0011BC001 1DE0011F00022120 ..............! AF0: 0223400225600227 800229A0022BC002 .#@.%`.'..)..+.. B00: 2DE0022F00033120 0333F0FF00000000 -../..1 .3...... B10: 70FFF77FFF000000 0000000000000000 p............... B20: 0000000000000000 0000000000000000 ................ *** последующие строки идентичны предыдущей *** BF0: 0000000000000000 0000000000000000 ................
Оригинальная версия Brain в СССР, по-видимому, не отмечалась. Приводимый ниже фрагмент бут-сектора воспроизводится по статье [Highland88h].
Исторические сведения. Данный вирус является одним из первых компьютерных вирусов, созданных для IBM-совместимых PC и первым компьютерным вирусом, вызвавшим эпидемию.
Неформальные названия. Помимо приведенных выше, используется название Pakistani virus -- Пакистанский вирус.
Методы и средства защиты. Рекомендуется использовать любой полифаг, пригодный для описанных выше версий.
Голова вируса Brain (видна только на незараженной вирусом машине) 000: FAE94A0134120102 2700010000000020 ╨щJ.4...' . 010: 2020202020205765 6C636F6D6520746F Welcome to 020: 207468652044756E 67656F6E20202020 the Dungeon 030: 2020202020202020 2020202020202020 040: 2020202020202020 2020202020202020 050: 2028632920313938 3620426173697420 (c) 1986 Basit 060: 2620416D6A616420 2870767429204C74 & Amjad (pvt) Lt 070: 642E202020202020 2020202020202020 d. 080: 20425241494E2043 4F4D505554455220 BRAIN COMPUTER 090: 5345525649434553 2E2E373330204E49 SERVICES..730 NI 0A0: 5A414D20424C4F43 4B20414C4C414D41 ZAM BLOCK ALLAMA 0B0: 20495142414C2054 4F574E2020202020 IQBAL TOWN 0C0: 2020202020202020 2020204C41484F52 LAHOR 0D0: 452D50414B495354 414E2E2E50484F4E E-PAKISTAN..PHON 0F0: 45203A3433303739 312C343433323438 E :430791,443248 100: 2C3238303533302E 2020202020202020 ,280530. 110: 2020426577617265 206F662074686973 Beware of this 120: 2056495255532E2E 2E2E2E436F6E7461 VIRUS.....Conta 130: 637420757320666F 722076616363696E ct us for vaccin ... .. .. .. .. .. .. .. .. . . . . . . . .
Данный штамм отличается от предыдущего тем, что, по данным П.Хоффман, помимо дискет, он заражает и винчестер. Содержит модифицированное по отношению к предыдущему вирусу текстовое сообщение "VIRUS_SHOE RECORD, v9.0. Dedicated to the dynamic memories of millions of virus who are no longer with us today". Последнее, как и в предыдущем случае, не видно при просмотре бут-сектора на зараженной машине. Используемое неформальное название связано с строкой "(c)ashar", которая обычно содержится в теле вируса со смещением 04A6h.
Исторические сведения. Данный штамм описан П.Хоффман в версии от 10.08.90. Широко распространен в США. Имеется версия 9.1, которая в отличие от рассматриваемой версии 9.0 не заражает винчестер. В СССР выделен Д.H.Лозинским в начале 1990 г.
Неформальные названия. Помимо приведенного в заголовке, используются названия Shoe_Virus, UIUC Virus.
Методы и средства защиты. См. предыдущий штамм.
Фрагменты дампа штамма Ashar 000: FAE94A0134120009 1700010000000000 ..J.4........... 010: 57656C636F6D6520 746F207468652020 Welcome to the 020: 44756E67656F6E20 2020202020202020 Dungeon 030: 2863292031393836 20427261696E1726 (c) 1986 Brain.& 040: 20416D6A61647320 2870767429204C74 Amjads (pvt) Lt 050: 6420202056495255 535F53484F452020 d VIRUS_SHOE 060: 5245434F52442020 2076392E30202020 RECORD v9.0 070: 4465646963617465 6420746F20746865 Dedicated to the 080: 2064796E616D6963 206D656D6F726965 dynamic memorie 090: 73206F66206D696C 6C696F6E73206F66 s of millions of 0A0: 2076697275732077 686F20617265206E virus who are n 0B0: 6F206C6F6E676572 2077697468207573 o longer with us 0C0: 20746F646179202D 205468616E6B7320 today - Thanks 0D0: 474F4F444E455353 2121202020202020 GOODNESS!! 0E0: 2042455741524520 4F46205448452065 BEWARE OF THE e 0F0: 722E2E5649525553 20203A205C746869 r..VIRUS : \thi 100: 732070726F677261 6D20697320636174 s program is cat 110: 6368696E67202020 20202070726F6772 ching progr 120: 616D20666F6C6C6F 7773206166746572 am follows after 130: 207468657365206D 657373656765732E these messeges. 140: 2E2E2E2E20242340 2524402121208CC8 .... $#@%$@!! .. 150: 8ED88ED0BC00F0FB A0067CA2097C8B0E ..........|..|.. 160: 077C890E0A7CE857 00B90500BB007EE8 .|...|.W......~. 170: 2A00E84B0081C300 02E2F4A113042D07 *..K..........-. 180: 00A31304B106D3E0 8EC0BE007CBF0000 ............|... 190: B90410FCF3A406B8 000250CB5153B904 ..........P.QS.. ... .. .. .. .. .. .. .. .. . . . . . . . . Фрагменты дампа хвоста вируса, расположенного в псевдосбойных кластерах 200: EB26286329203139 383620427261696E .&(c) 1986 Brain 210: 202620416D6A6164 7320287076742920 & Amjads (pvt) 220: 4C74642000040000 2EC60625021F33C0 Ltd .......%..3. 230: 8ED8A14C00A3B401 A14E00A3B601B876 ...L.....N.....v 240: 02A34C008CC8A34E 00B9040033C08EC0 ..L....N....3... ... .. .. .. .. .. .. .. .. . . . . . . . . 340: 0000000000000000 0000000000000000 ................ 350: EB25900300202863 2920313938362042 .%... (c) 1986 B 360: 7261696E20262041 6D6A616473202870 rain & Amjads (p 370: 767429204C7464E8 AD00A1BE063DFDFF vt) Ltd......=.. ... .. .. .. .. .. .. .. .. . . . . . . . . 490: 0363000303BE0E01 000101E0D89DD7E0 .c.............. 4A0: 9F8D989F8EE02028 6329206173686172 ...... (c) ashar 4B0: 2024E8DB00720A57 E81F005F7203E8D7 $...r.W..._r... 4C0: 00C3BB9B04B90B00 8A07F6D888044643 ..............FC ... .. .. .. .. .. .. .. .. . . . . . . . . +----- начало | оригинального | бут-сектора 6B0: 09C606090000FE06 0B00C3647461EB34 ...........dta.4 6C0: 9049424D2020332E 3300020201000270 .IBM 3.3......p ... .. .. .. .. .. .. .. .. . . . . . . . . 8B0: 0000000000000000 0000000055AA0000 ............U... ... .. .. .. .. .. .. .. .. . . . . . . . .
Неформальное название данного вируса связано с тем, что вирус выдает на экран надпись Den-Zuk. Формально данный вирус относится к бутовым вирусам типа D, поскольку заражает только дискеты, причем хвост вируса расположен на 41 дорожке дискеты, что приводит к тому, что при копировании зараженной дискеты с помощью команды DISKCOPY или утилиты PC Tools, он теряется.
Следует обратить внимание, что вирус сохраняет характерные для незараженного вируса текстовые сообщения в бут-секторе. Данный вирус, как и большинство бутовых вирусов, конфликтует с драйверами дискет, поддерживающих нестандартные форматы (например, 720K). При этом либо система зависает, либо выдается сообщение о делении на нуль. Хвост вируса расположен на 41 дорожке дискеты. В теле хвоста имеются текстовые строки
"Welcome to the C l u b --The HackerS- Hackin' All The Time The HackerS"
При заражении дискет, уже зараженных вирусами Brain и Ohio, вирус Den Zuk распознает эти вирусы и удаляет их с дискет. Дискеты, зараженные вирусoм Brain, могут также быть переименованы в "Y.C.1.E.R.P.".
Исторические сведения. По данным П.Хоффман, вирус был разработан в Индонезии программистом или программистами, которые разработали вирус Ohio. В СССР был впервые обнаружен в Москве С.Алексеевым весной 1990 г. Существуют штаммы вируса, подсчитывающие количество перезагрузок, и после того, как счетчик достигнет значения 5 или 10, форматирующие дискету.
Неформальные названия. Полидетектор Scan называет данный вирус Den Zuk. Другими названиями являются Search (поиск) и Venezuelan (венесуэльский).
Методы и средства защиты. Вирус можно идентифицировать путем визуального просмотра содержимого бут-сектора, например, с помощью Norton Utilities. В качестве детектора может использоваться полидетектор Scan. Вместо фага можно использовать команду SYS.
Дамп бут-сектора, зараженного вирусом D-29 000: EB29904934120001 002E320002020100 .).I4.....2..... 010: 027000D002FD0200 0900020000000000 .p.............. 020: 000000000F000000 000100FAFA8CC88E ................ 030: D88ED0BC00F0FBB8 787C50C3730ABB90 ........x|P.s... 040: 7C53C3B9B07C51C3 33C08ED8A1130483 |S...|Q.3....... 050: 3EF604007509A3F6 042D0700A31304B1 >...u....-...... 060: 06D3E00E1F8EC0BE 007C33FFB90014FC .........|3..... 070: F3A406B8000450CB 32E4CD13720D33D2 ......P.2...r.3. ... .. .. .. .. .. .. .. .. . . . . . . . . 150: 0A36307C8BCA86E9 8B161E7CCD13C30D .60|.......|.... 160: 0A4E6F6E2D537973 74656D206469736B .Non-System disk 170: 206F72206469736B 206572726F720D0A or disk error.. 180: 5265706C61636520 616E642073747269 Replace and stri 190: 6B6520616E79206B 6579207768656E20 ke any key when 1A0: 72656164790D0A00 0D0A4469736B2042 ready.....Disk B 1B0: 6F6F74206661696C 7572650D0A004942 oot failure...IB 1C0: 4D42494F2020434F 4D49424D444F5320 MBIO COMIBMDOS 1D0: 20434F4D00000000 0000000000000000 COM............ 1E0: 0000000000000000 0000000000000000 ................ 1F0: 000000497A616B00 00000000000055AA ...Izak.......U.
Данный вирус представляет интерес как первый вирус, имеющий "дезинформирующее" проявление: осыпание букв, полностью заимствованное из вируса RC-1701.CAS.
Формально данный вирус относится к бутовым вирусам типа Mx3: он заражает как дискеты, так и винчестер, а его хвост расположен в трех кластерах, помеченных как сбойные, причем как на дискетах, так и на винчестере. На винчестере голова вируса располагается в MBR.
Фаза проявления наступает только на компьютерах типа PC AT через месяц после заражения.
Исторические сведения. Обнаружен в Ленинграде в январе 1990 г. Автору передан Д.Н.Лозинским. Приводимые сведения основаны на документации к Aidstest.
Неформальные названия. В документации к полифагу Aidstest данный вирус назван Peter. Hазвание Pseudo Cascade (Псевдо-буквопад) предложено автором.
Методы и средства защиты. Вирус можно идентифицировать путем визуального просмотра содержимого бут-сектора, например, с помощью Norton Utilities. Полидетектор Scan (версии до 77, включительно) его не опознают. Вместо фага можно использовать команду SYS.
Фрагменты дампа бут-сектора дискеты, зараженной вирусом Mx3-34 000: EB3690504320546F 6F6C730002020100 .6.PC Tools..... 010: 027000D002FD0200 090002000000000C .p.............. 020: 000100006C2100C8 0000000007000002 ....l!.......... 030: 0600020003000400 EA3D00C00733C08E .........=...3.. 040: D88ED0BC007C2E88 161E00FAA14C008B .....|.......L.. 050: 1E4E002EA324002E 891E2600FBA11304 .N...$....&..... 060: 2D0500B106D3E08E C02EA37C00B90002 -..........|.... ... .. .. .. .. .. .. .. .. . . . . . . . . 100: 9303061C0033D2F7 361800FEC28AEA33 .....3..6......3 110: D2F7361A00B106D2 E40AE58BC886E98A ..6............. 120: F28BC38A161E008B DF8BE8B80400508B ..............P. 130: C59C2EFF1E240058 730E5033C09C2EFF .....$.Xs.P3.... 140: 1E2400584875E7F9 C38BC32D020033DB .$.XHu.....-..3. 150: 8A1E0D00F7E30306 1F008BD8C30D0A4E ...............N 160: 6F6E2D5379737465 6D206469736B206F on-System disk o 170: 72206469736B2065 72726F720D0A5265 r disk error..Re 180: 706C61636520616E 6420737472696B65 place and strike 190: 20616E79206B6579 207768656E207265 any key when re 1A0: 6164790D0A000000 0000000000000000 ady............. 1B0: 0000000000000000 0000000000000000 ................ *** последующие строки идентичны предыдущим *** 1F0: 0000000000000000 0000000000000000 ................ Фрагменты дампа псевдосбойных кластеров с телом вируса Mx3-34 000: 33C08ED8812E1304 05008CC88EC08ED8 3............... 010: C7068C0200008A16 1E0052C6061E0080 ..........R..... 020: E8F5035A88161E00 E8B000E89101B8DC ...Z............ 030: 05E87C00402EA38A 022EA3AC022EC706 ..|.@........... 040: AE02010033C08ED8 FAC7064C0092058C ....3......L.... 050: 0E4E00FBB404CD1A 722D2E3B0E2C0077 .N......r-.;.,.w 060: 0A2E3B162E007303 EB1D90FAA170008B ..;...s......p.. 070: 1E72002EA328002E 891E2A00C7067000 .r...(....*...p. 080: 1A058C0E7200FBE9 5DFE820008000516 ....r...]....... 090: F101000000000001 8001941429280000 ............)(.. 0A0: 0000000000000000 3D02000082000100 ........=....... 0B0: 1E0E1F53515250B9 0700BB9C02FF378B ...SQRP.......7. 0C0: 47FE11074B4BE2F7 5811078B17580BC0 G...KK..X....X.. 0D0: 7402F7E28BC25A59 5B1FC31E06565751 t.....ZY[....VWQ 0E0: 0E07B940008ED9BF 8E02BE6C00B90800 ...@.......l.... 0F0: FCF3A5595F5E071F C3561E528AC6F626 ...Y_^...V.R...& 100: 9E02B60003C2D1E0 0306A6028BF0F706 ................ ... .. .. .. .. .. .. .. .. . . . . . . . . 600: BA2201412E890E2C 002E89162E00B801 .".A...,........ 610: 0333D28A161E00B9 0100BB0000E809F9 .3.............. 620: C32028632920436F 7079726967687420 . (c) Copyright 630: 3139393020204B65 7964726F7020696E 1990 Keydrop in 640: 632E20EB29905043 20546F6F6C730002 c. .).PC Tools.. 650: 020100027000D002 FD02000900020000 ....p........... 660: 0000000000000000 000000000000FA33 ...............3 670: C08ED0BC007C161F BE007DAC0AC07409 .....|....}...t. 680: B40EBB0700CD10EB F232E4CD16CD1900 .........2...... 690: 0000000000000000 0000000000000000 ................ *** последующие строки идентичны предыдущим *** 740: 0000000A0D4E6F6E 2D53797374656D20 .....Non-System 750: 6469736B2E2E2E0A 0D5265706C616365 disk.....Replace 760: 20616E6420707265 737320616E79206B and press any k 770: 6579207768656E20 72656164790A0D00 ey when ready... 780: 0000000000000000 0000000000000000 ................ *** последующие строки идентичны предыдущим *** 800: EB2990504320546F 6F6C730002020100 .).PC Tools..... 810: 027000D002FD0200 0900020000000000 .p.............. 820: 0000000000000000 000000FA33C08ED0 ............3... 830: BC007C161FBE007D AC0AC07409B40EBB ..|....}...t.... 840: 0700CD10EBF232E4 CD16CD1900000000 ......2......... 850: 0000000000000000 0000000000000000 ................ *** последующие строки идентичны предыдущим *** 900: 0A0D4E6F6E2D5379 7374656D20646973 ..Non-System dis 910: 6B2E2E2E0A0D5265 706C61636520616E k.....Replace an 920: 6420707265737320 616E79206B657920 d press any key 930: 7768656E20726561 64790A0D00000000 when ready...... 940: 0000000000000000 0000000000000000 ................
Темпы появления в СССР новых бутовых вирусов на порядок ниже, чем файловых. Несколько упрощая ситуацию, этот класс вирусов можно отнести к вымирающим, поскольку он постепенно вытесняется появившимися недавно файлово-бутовыми вирусами. За время подготовки рукописи появилось всего два новых бутовых вируса, имеющих неформальные названия Form и Love Child. Оба эти вируса "выкусываются" полифагом Aidstest (версией 100 и более поздними). Приводимые ниже сведения основаны на информации Д.Н.Лозинского.
Вирус Form относится к типу Bх1. Он заражает бут-сектор дискет и винчестера. При заражении винчестера, хвост записывается в последних секторах, а при заражении дискет -- в создаваемом псевдосбойном кластере. Фаза проявления наступает 24-го числа каждого месяца. При этом вирус сопровождает писком каждое нажатие на клавишу. Детектируется полидетектором Scan.
Вирус LoveChild относится к типу M. Вырожденный хвост, состоящий из оригинального бут-сектора, размещает как вирус M-05 (Stoned). Подобно своему файловому "родственнику", рассмотренному в гл.5, данный вирус относится к вирусам-вандалам. Фаза проявления состоит в уничтожении содержимого диска С. Тело вируса содержит текстовую строку
"LoveChild b3 in reward for software stealing.".
Касаясь чисто бутовых вирусов, интересно отметить, что если файловые вирусы имеют, в основном, западное происхождение, то бутовые -- восточное (Индия, Индонезия, Новая Зеландия, Пакистан, Сингапур, Тайвань, Южная Корея). Учитывая, что из Индии, Сингапура, Тайваня, Южной Кореи мы получаем основную массу персональных компьютеров, эти вирусы имеют определенные шансы на появление в нашей стране.
Некоторые из упоминаемых в зарубежной литературе бутовых вирусов пока в СССР выделены не были. Другие -- практически полностью уничтожены и представляют, в основном, исторический интерес. Третьи -- скорее всего существуют только на страницах литературы.
Изложение материала данной главы начнем со сравнительно нового типа вирусов -- вирусов, способных размножаться как файловые, но при этом заражать бут-сектор и инсталлироваться в оперативной памяти с зараженного бут-сектора (файлово-бутовые вирусы по классификации, приведенной в гл.2). На момент сдачи рукописи в печать вирусы этого типа уже начали попадать в СССР и в дальнейшем следует ожидать, что эта группа будет представлена несколькими выявленными в СССР разновидностями. К сожалению, подробного описания этих вирусов автор подготовить не успел, и ниже приводятся лишь фрагментарные сведения.
Данный тип вирусов является попыткой увеличить выживаемость вирусов при наличии средств входного контроля. Действительно, поскольку бутовый вирус запускается до MS DOS, то он может беспрепятственно стать резидентным, а затем уже пытаться обходить средства слежения за операциями ввода-вывода. В то же время размножение по типу файлового вируса создает значительно лучшие шансы проникновения на новые компьютеры. Для удаления бутовой части данного типа вирусов можно использовать команду SYS.
Данный вирус является комбинацией нерезидентного файлового вируса С-648.VEN (Vienna) и фрагментов бутового вируса Bx1-1C (Пинг-понг), обеспечивающих зарактерный для последнего визуальный эффект. При запуске зараженной программы заражает бут-сектор дискеты или винчестера бутовой частью, основанной на вирусе Bx1-1C, в которой сохранен визуальный эффект движущегося светлого пятна, однако отсутствует способность к размножению. При этом, если бут-сектор восстановлен каким-нибудь фагом, то он повторно заражается при первом же запуске зараженной программы.
Формально данный вирус можно рассматривать как файловый вирус, имеющий троянскую компоненту, записываемую в бут-сектор (подобно рассмотренному в гл.5 вирусу RCE-04096.FRD (Frodo)). Однако происхождение троянской компоненты таково, что она может быть легко доработана до бутового вируса. Этот факт позволяет рассматривать данный вирус в качестве первой, хотя и неполной, попытки реализации вируса рассматриваемого типа.
Исторические сведения. Вирус был обнаружен в октябре 1989 г. в Исландии известным исландским вирусологом Фридрихом Скуласоном (Fridrik Skulason).
Неформальные названия. Помимо приведенного в заголовке, используются названия Ghost Boot и Ghost COM.
Методы и средства защиты. Вирус легко обнаруживается по визуальному эффекту. Детектируется политетектором Scan (версии, начиная с 66).
Данный вирус заражает как COM-файлы, так и бут-сектор дискет и MBR винчестера. При выполнении зараженной программы вирус инсталлируется в младшие адреса свободной памяти и виден как дополнительная резидентная программа, занимающая 2128 байтов (общий размер системной памяти не изменяется) и перехватывающая прерывания 08h, 13h, 21h, 60h. Затем вирус заражает MBR винчестера или бут-сектор дискеты в зависимости от конфигурации компьютера.
Являясь резидентным, вирус заражает каждый выполняемый COM-файл, дописываясь в конец файла и вставляя в начало файла команду перехода. Размер зараженных файлов увеличивается на 1253 байта. При этом вирус не делает попытки скрыть это увеличение. Зараженные файлы содержат строку "V-1" (562D31), расположенную с четвертого байта, сразу после команды перехода.
Если при резидентном вирусе выполняется доступ к дискете, то бут-сектор заражается вирусом. В частности, отформатированные на зараженном компьютере дискеты уже заражены. Куда вирус прячет хвост, в настоящее время не известно.
При попытке загрузки с зараженной дискеты вирус инсталлируется по типу бутового вируса, уменьшая системную память на 7840 байтов.
Фаза проявления заключается в уничтожении содержимого дискеты или винчестера и наступает, по данным П.Хоффман, 24 декабря. Уничтоженная дискета имеет повторяющуюся структуру из девяти секторов.
Исторические сведения. Вирус обнаружен в августе 1990 г. в Австрии и, по-видимому, написан там же.
Неформальные названия. Помимо приведенных выше, отсутствуют.
Методы и средства защиты. Характерным проявлением данного вируса являются неожиданные попытки доступа к неактивным дисководам гибких дисков при форматировании. Например, если форматируется дискета в дисководе А, то зажигается лампочка в дисководе B. Детектируется полидетектором Scan (начиная с версии 66).
Неформальное название данного вируса связано с тем, что в теле вируса имеются текстовые строки "(c)Damage, Inc." и "ANTHRAX". Формально данный вирус относится к файлово-бутовым резидентным вирусам. Заражает как COM-, так и EXE-файлы, включая COMMAND.COM. Помимо этого, заражает MBR винчестера и бут-сектор дискет.
При заражении файлов их длина увеличивается на 1040 -- 1232 байта. При выполнении зараженной программы вирус инсталлируется в оперативной памяти, однако в отличие от большинства известных вирусов не начинает заражать файлы немедленно. Только после того, как наступает некоторое событие, по-видимому связанное с количеством введенных с клавиатуры символов, он начинает заражать по одному файлу при каждом выполнении какой-нибудь программы. При этом заражается не сама выполняемая программа, а другой файл, выбираемый вирусом для заражения сначала на диске С, начиная с корневого каталога, и далее по всему дереву каталогов, затем на диске D и т.д.
Детали заражения дискет и бут-сектора неясны.
Проявления вируса в настоящий момент неизвестны.
Исторические сведения. Вирус был выделен в Нидерландах в июле 1990 г. Он был загружен в несколько BBS с троянской копией антивирусной программы USCAN.ZIP. Это третий в 1990 г. вирус, распространявшийся с троянской копией антивирусной программы. Первыми двумя были RCE-2100 (также распространялся с UScan) и RCE-1600 (распространялся с Aidstest). По-видимому, вирус имеет восточноевропейское (болгарское?) происхождение.
Неформальные названия. Помимо приведенных выше, отсутствуют.
Методы и средства защиты. Детектируется полидетектором Scan (версии, начиная с 66).
Помимо COM- и EXE-файлов, вирус заражает MBR первого винчестера. При этом от первого логического диска указанного винчестера "откусывается" 6 секторов. Вирус заражает командный процессор. Фаза проявления связана с видео-эффектом, ориентированным на дисплеи типа EGA: изображения букв и текста на экране переворачиваются. По данным Д.Н.Лозинского, вирус выполняет модификацию программных файлов, вставляя в начало определенной последовательности команд вызов прерывания 9Fh.
Вирус написан квалифицированным программистом и к моменту публикации разобраться в его коде автор не успел.
Исторические сведения. Вирус был выделен в СССР в начале 1991 г.
Методы и средства защиты. Детектируется Scan (версии 77 и последующие). В качестве фага можно использовать Aidstest (версию 100 и последующие).
Как и многие другие вирусы, данный вирус основан на распространенном файловом вирусе RCE-1813.IER. Подобно прототипу, вирус различает тип файла по расширению. При заражении сегментированных программ может записываться в середину, затирая один из сегментов.
Вирус заражает как COM-, так и EXE-файлы, так и бут-сектор дискет и винчестера. Не заражает COMMAND.COM.
Вирус имеет несколько проявлений. Из прототипа сохранено замедление работы компьютера. Иногда каждые полчаса играет вальс Штрауса "На прекрасном голубом Дунае". В других случаях после нажатия на клавиши Ctrl+Alt+Del затирает доступные диски и CMOS (энергонезависимая память компьютеров типа AT, в которой записываются данные о конфигурации, включая тип используемого винчестера и объем установленной оперативной памяти).
По данным Д.Н.Лозинского, уровень программирования невысок.
Исторические сведения. Вирус был выделен в Хабаровске в начале 1991 г. Автору передан Д.Н.Лозинским. Приводимые сведения основаны на документации к Aidstest.
Методы и средства защиты. Детектируется полидетектором Scan (версии 66 и последующие). В качестве фага можно использовать Aidstest (версию 100 и последующие).
Ряд бутовых вирусов в настоящее время можно считать полностью уничтоженными. Ниже приводятся сведения о некоторых из таких вирусов.
Вирус Alameda, подобно вирусу M-05.STN (Stoned), имеет вырожденный хвост, который размещается на последнем треке дискеты по адресу 39/8/0. При этом кластер не отмечается как сбойный, оставаясь доступным для распределения. В результате перезапись содержимого этого кластера ведет к зависанию системы при перезагрузке. После загрузки вирус уменьшает доступную память на 1К.
Отличительной особенностью данного вируса является то, что он перехватывает прерывание от клавиатуры, что позволяет этому вирусу "переживать" теплую перезагрузку (с помощью Ctrl-Alt-Del). Более того, данный вирус размножается не путем заражения всех дискет, к которым идет обращение, а только дискет, которые расположены в дисководе в момент нажатия Ctrl-Alt-Del. Заражаются только пятидюймовые дискеты 360К.
Оригинальная версия вируса не содержала кода, ориентированного на нанесение какого-либо ущерба, однако, как любой вирус, вызывала ряд побочных эффектов. В частности, на некоторых машинах, зараженных этим вирусом, зависают отдельные программы или драйверы. В настоящее время известны штаммы, разрушающие бут-сектор дискет (штамм Alameda-C). Кроме того, оригинальная версия работоспособна только на PC XT, поскольку содержит команды, отсутствующие в микропроцессорах 80286 и 80386. Более поздние версии размножаются и на PC AT.
Исторические сведения. Один из первых бутовых вирусов и первый вирус, способный "выживать" при "теплой" перезагрузке. Впервые обнаружен в США в 1988 г. в Merritt College, Oakland, California. По мнению сотрудников университета, вирус написан студентом из колледжа Peralta community college, входящим в данный округ. В СССР отмечен лишь один случай заражения.
Неформальные названия. Помимо приведенного выше, используются названия Merritt, Peking, Seoul, Yale.
Методы и средства защиты. Данный вирус диагностируется полидетектором Scan.
Заражает только 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+).
Неформальное название данного вируса связано с тем, что в теле вируса имеются текстовые строки "Welcome to the New Dungeon", "Chaos" и "Letz be cool guys". Формально данный вирус является бутовым вирусом, заражающим как дискеты, так и винчестер. Отличительной особенностью вируса является то, что при заражении он перезаписывает оригинальный бут-сектор, не копируя его в новое место. Стадия проявления заключается в пометке всех свободных кластеров как сбойные. Условия наступления стадии проявления неизвестны.
Исторические сведения. Обнаружен в декабре 1989 г. в Англии Джеймсом Беррри (James Berry). В СССР не отмечался. Приводимые данные базируются на списке П.Хоффман.
Неформальные названия. Помимо приведенного выше, неизвестны.
Методы и средства защиты. Данный вирус диагностируется полидетектором Scan.
Данный вирус при каждой активизации переводит часть имеющихся свободных кластеров в потерянные и тем самым уменьшает размер доступного дискового пространства. Это пространство, естественно, становится недоступным, если не использовать утилиту CHKDSK с последующим удалением всех файлов с расширением CHK. Вторым эффектом является форматизация первого трека диска.
Исторические сведения. Вирус был описан в статье [Solomon88].
Сетевые вирусы более точно называть не вирусами, а репликаторами, поскольку они не заражают выполняемые программы, а просто распространяются по сети от одной ЭВМ к другой. Буквальный перевод соответствующего англоязычного термина Worm -- червяк представляется менее удачным, чем предлагаемый термин репликатор. В свою очередь, репликатор, подобно кассетной боеголовке, может переносить с собой троянских коней и обычные вирусы. К счастью, два наиболее известных случая создания таких вирусов не связаны с вандализмом.
Рассматриваемый вирус написан студентом университета Clausthal-Zellerfeld (Германия), который в конце декабря 1987 г. запустил его в университетской сети. Название вируса связано с тем, что он рисовал на экране дисплея новогоднюю елку и затем рассылал себя по всем адресам, найденным на зараженном компьютере, используя механизм электронной почты. Вирус был написан на языке управления заданиями REXX операционной системы VM/CMS. Фактически это один из немногих вирусов, написанных на языке управления заданиями, и это свидетельствует о мощности и гибкости REXX -- несомненно лучшего из множества языков управления заданиями для компьютеров системы 360/370.
Поскольку программа распространялась в виде исходного текста, автор предпринял определенные меры по маскировке, продемонстрировав неплохое понимание человеческой психологии. В начале программы стояли комментарии:
/**********************/ /*************************/ /* LET THIS EXEC */ /* ЗАПУСТИТЕ ЭТОТ */ /* RUN */ /* EXEC-ФАЙЛ */ /* AND */ /* И */ /* ENJOY */ /* РАЗВЛЕКИТЕСЬ */ /* YOURSELF */ /* */ /**********************/ /*************************/
За ними следовал фрагмент, состоящий из стилизованного рисунка новогодней елки и поздравления "Счастливого Рождества и наилучшие пожелания на следующий год", который, естественно, также не вызывал особых подозрений:
'VMFCLEAR' SAY ' * ' SAY ' * ' SAY ' *** ' SAY ' ***** ' SAY ' ******* ' SAY ' ********* ' SAY ' ************* A' SAY ' ******* ' SAY ' *********** VERY' SAY ' *************** ' SAY ' ******************* HAPPY' SAY ' *********** ' SAY ' *************** CHRISTMAS' SAY ' ******************* ' SAY ' *********************** AND' SAY ' *************** ' SAY ' ******************* BEST WISHES' SAY ' *********************** ' SAY ' *************************** FOR THE NEXT' SAY ' ****** ' SAY ' ****** YEAR' SAY ' ****** '
Для тех, кто еще сомневался, запускать ли программу или посмотреть текст до конца, далее следовал еще один комментарий, содержавший "ненавязчивый" совет о том, что "просмотр этого файла совсем не интересен, просто наберите команду CHRISTMAS и посмотрите, что получится":
/* browsing this file is no fun at all just type CHRISTMAS from cms */
И только после этого шел непосредственно текст репликатора, лишенный, естественно, каких-то комментариев.
Из университетской сети вирус попал в западноевропейскую сеть EARN (European Academic Research Network) и связанную с ней американскую сеть BitNet. Интересно отметить, что впоследствии автор вируса утверждал, что просто хотел поздравить своих товарищей и не подозревал, что университетская сеть подсоединена к EARN.
В свою очередь, сеть BitNet имеет связь с внутренней сетью компании IBM -- Vnet. В этой сети репликатор размножался особенно успешно, поскольку сеть состоит в основном из машин и программного обеспечения фирмы IBM. Большие списки рассылки у многих пользователей этой сети привели к ее перегрузке, и она была выключена. В течение двух дней, пока сеть была выключена, вся электронная почта фирмы "отлеживалась". Фирмой IBM были выполнены модификации сети, затрудняющие повторение подобных инцидентов.
Название данного вируса связано с тем, что его автором является Роберт Моррис младший (Robert Morris), аспирант факультета информатики Корнеллского Университета (США). 2 ноября 1988 г. он запустил вирус в американскую национальную сеть Internet, инфицировав большое количество компьютеров, подключенных к сети. Internet объединяет машины университетских центров, частных фирм и правительственных агентств, включая Национальное управление по аэронавтике и исследованию космического пространства, а также некоторые военные НИИ и лаборатории. Поскольку при программировании автор допустил ошибку, вызвавшую превышение скорости размножения и распространения по сравнению с задуманной, вирус был достаточно быстро (в течение нескольких часов) обнаружен. Тем не менее он успел заразить в общей сложности порядка 6000 компьютеров из порядка 60000, подключенных к сети.
Вирус Морриса заражал только компьютеры типа Sun 3 и VAX, которые использовали варианты ОС Unix версии 4 BSD. В процессе работы вирус оставлял необычные файлы в каталоге /usr/tmp на некоторых машинах и странные сообщения в log-файлах некоторых утилит, в частности, управляющей почтой утилиты SendMail. Для своего распространения вирус использовал некоторые дефекты стандартного программного обеспечения, установленного на многих системах, эксплуатирующих Unix. Он также использовал механизм, предназначенный для облегчения использования ресурсов удаленным компьютерам для проведения вычислений, позволяющий запускать задачу на удаленной машине. Вирус состоял из двух частей: главной программы и программы, обеспечивающей его распространение. Главная программа после запуска на очередной машине собирала информацию относительно других машин в сети, с которыми данная ЭВМ имеет связь. Она выполняла эту работу с помощью анализа конфигурационных файлов и путем прогона системной утилиты, которая дает информацию о текущем состоянии соединений в сети. Затем она использует определенные недостатки программного обеспечения для пересылки себя на другие машины.
Пересылка выполнялась специальной частью вируса, называемой модулем распространения. Этот модуль представляет собой исходный текст программы, состоящей из 99 строк на языке С, которые должны быть откомпилированы и выполнены на удаленной машине. Для этого исходный текст должен быть сначала передан очередной жертве (используя способ, кратко описываемый ниже), а затем откомпилирован и выполнен с тремя аргументами: сетевой адрес инфицирующей машины (т.е. ЭВМ, с которой происходит заражение), количество сетевых портов, которые нужно соединить с этой машиной для передачи основных файлов вируса, и "магическое число", которое использовалось как однократная проверка паспорта. Если инфицирующая машина не получала в ответ от посланного ею модуля распространения этого "магического числа", она немедленно отсоединялась от этой машины. Это, по-видимому, было сделано в расчете на предотвращение попыток получения файлов вируса путем имитации действий модуля распространения. В самом модуле распространения были предприняты определенные усилия по маскировке. Для этой цели он обнулял свою командную строку и немедленно создавал собственную копию. Если в процессе пересылки файлов с инфицирующей машины происходил сбой, то модуль распространения сначала удалял все пересланные файлы, а лишь затем возвращал управление.
Как уже указывалось, после запуска на очередной жертве модуль распространения обеспечивал пересылку всех файлов вируса для машин этого типа (SUN или VAX). Каждый файл представлял собой версию вируса для определенной архитектуры ЭВМ. Кроме того, модуль распространения обеспечивал получение еще одной своей копии для рассылки по очередным сетевым адресам. Хотя в модуле распространения предусматривалась пересылка до 20 файлов, только три на самом деле пересылались данной версией вируса. Это породило гипотезы о том, что Моррис планировал разработку более совершенной версии и что эта версия могла пересылать другие командные файлы, паспорта пользователей или, возможно, вирусы для конкретного типа ЭВМ. После пересылки загрузочных модулей модуль распространения обеспечивал их сборку с местной версией системной библиотеки. Затем эти программы вызывались одна за другой и их действие заключалось в попытке раскрыть пароли пользователей, работающих на данной машине. Если это удавалось, то вирус рассылал модуль распространения по всем адресам, найденным в списке соответствующего "взломанного" абонента. Если ни один из методов дешифровки паролей не срабатывал, то машина, породившая модуль распространения, обеспечивала удаление с диска всех улик (т.е. файлов, созданных в процессе работы вируса).
Общий объем вируса достигал 68К. На момент написания данного материала это, по-видимому, самый большой из известных компьютерных вирусов.
Исторические замечания. Вирус разработал Роберт Моррис младший, аспирант Корнеллского университета, впоследствии осужденный за это американским судом (некоторые сведения об этом процессе приведены в гл.1). Роберт Моррис является сыном ведущего ученого (chief scientist) американского национального центра безопасности компьютеров (U.S. National Computer Security Center) -- отделения Нациoнального управления безопасности (National Security Agency). Последнее специализируется на глобальной телекоммуникационной разведке. Моррис-старший, длительное время проработавший в Bell Laboraries, является одним из разработчиков игры Darvin -- одного из первых экспериментов в области саморазмножающихся программ. В дальнейшем он участвовал в разработке UNIX, в частности, системы парольной защиты.
Вирус был запущен в сеть приблизительно между 12 и 13 ч 2.11.88. Из-за ошибки, вызвавшей превышение скорости размножения и распространения по сравнению с задуманной, в течение нескольких часов (к концу дня) вирус заразил порядка 6000 компьютеров (данная оценка основана на экстраполяции и не претендует на особенную точность). Всего к сети Internet подключены более 60 000 компьютеров. Пораженные компьютеры были расположены на значительной территории (Массачусетский технологический институт, Калифорнийский университет в Беркли, университет в Пэдью, Стенфордский университет и др.).
Наиболее заметным эффектом при распространении вируса, помимо некоторых необычных сообщений операционной системы, была все же непрерывно возраставшая загрузка пораженных вирусом машин. По истечении некоторого времени отдельные компьютеры оказались настолько загруженными распространением копий вируса, что не были способны выполнять никакой полезной работы; некоторые компьютеры исчерпали память для своппинга или таблицу текущих процессов, и их приходилось перегружать. Это существенно затруднило обмен сообщениями и координацию работы по уничтожению вируса, поскольку, судя по репортажам, большинство американских программистов привыкло пользоваться электронной почтой. Задержки привели к потере очень ценных сообщений, посланных пользователем, который, по-видимому, знал детали работы вируса или они были сообщены ему Моррисом, испугавшимся последствий своего "эксперимента". Тем не менее, сеть оставалась работоспособной, и между программистами шел интенсивный обмен сообщениями.
Утром 3 ноября персонал Калифорнийского университета в Беркли и Массачусетского технологического института (МТИ) получили копии вируса и начали его анализ. Общим опасением было, что к моменту, когда будет изготовлено противоядие, будут изменены системные файлы или разрушена некоторая информация. К пяти часам вечера 3 ноября группа исследователей в Университете в Беркли разработала серию мер для прекращения его дальнейшего распространения. Соответствующее сообщение было передано по сети, однако его распространение было задержано нагрузкой, созданной распространением вируса и отключением некоторых частей сети "на карантин". К 9 часам вечера другой простой и эффективный метод борьбы с распространением вируса был найден в Университете Пэдью и быстро распространен всем заинтересованным пользователям. К концу суток с вирусом было покончено.
Дизассемблирование и реконструкция текста вируса представляла собой достаточно сложную задачу, поскольку Моррисом были предприняты специальные меры по ее затруднению, в частности, шифровка текстовых строк. Основная часть работы была выполнена Марком Эйчином (Маrk Eichin), специалистом по дизассемблированию ROM, который одновременно являлся и координатором работы других программистов. Основная работа по реконструкции вируса была завершена в субботу. Тогда же исследователями, после жарких дискуссий, было принято решение не распространять восстановленный исходный текст вируса и, в то же время, свободно распространять информацию об алгоритмах, используемых данным вирусом. Это, конечно, несет опасность, что они могут быть использованы для написания новых вирусов, однако уровень знаний, требуемых для этой цели, неизмеримо выше, чем умение перекомпилировать программу с двумя или тремя измененными строчками.
На следующее утро, в пятницу 4 ноября, в МТИ состоялась пресс-конференция, на которой выступили ведущие участники "охоты на вирус". Во вторник, 8 ноября, в Балтиморе состоялась конференция по вирусу Морриса, на которой подробно обсуждались хронология событий, предпринятые действия и детальный анализ функционирования вируса. Кроме того, были обсуждены вопросы, касающиеся уроков инцидента и подготовки к отражению новых атак.
Ниже приведено несколько первых представляющих исторический интерес сообщений о вирусе Морриса, переданных по сети. Они наглядно демонстрируют огромную ценность национальной сети как инструмента оперативного обмена информацией между исследователями.
From: Stoll@DOCKMASTER.ARPA Subject: Virus on the Arpanet-- Milnet Date: Thu, 3 Nov 88 06:46 EST Re Arpanet "Sendmail" Virus attack November 3, 1988 Hi Gang! It's now 3:45 AM on Wednesday 3 November 1988. I'm tired, so don't believe everything that follows... Apparently, there is a massive attack on Unix systems going on right now. I have spoken to systems managers at several computers, on both the east & west coast, and I suspect this may be a system wide problem. Symptom: hundreds or thousands of jobs start running on a Unix system bringing response to zero. Systems attacked: Unix systems, 4.3BSD unix & variants (eg: SUNs) any sendmail compiled with debug has this problem. See below. This virus is spreading very quickly over the Milnet. Within the past 4 hours, I have evidence that it has hit >10 sites across the country, both Arpanet and Milnet sites. I suspect that well over 50 sites have been hit. Most of these are "major" sites and gateways. Method: Apparently, someone has written a program that uses a hole in SMTP Sendmail utility. This utility can send a message into another program. Step 1: from a distant Milnet host, a message is sent to Sendmail to fire up SED, (SED is an editor). This is possible in certain versions of sendmail (see below). 2: A 99 line C program is sent to SED through Sendmail. 3: The distant computer sends a command to compile this C program. 4: Several object files are copied into the Unix computer. There are 3 files: one targeted to Sun one targeted to SUN-3 one targeted to vax (ultrix probably, not vms) 5: The C program accepts as address other Milnet sites 6: Apparently, program scans for other Milnet/arpanet addresses and repeats this process. The bug in Sendmail: When the Unix 4.3 BSD version of Sendmail is compiled with the Debug option, there's a hole in it. Most Unix systems (BSD 4.3 and Suns) apparently do not have this bug. It exists only where the system manager recompiled Sendmail and enabled debugging. This is bad news. Cliff Stoll dockmaster.arpa --------------------------------------------------------------------- From: Gene Spafford <spaf@purdue.edu> Subject: More on the virus Date: Thu, 03 Nov 88 09:52:18 EST All of our Vaxen and some of our Suns here were infected with the virus. The virus forks repeated copies of itself as it tries to spread itself, and the load averages on the infected machines skyrocketed. In fact, it got to the point that some of the machines ran out of swap space and kernel table entries, preventing login to even see what was going on! The virus seems to consist of two parts. I managed to grab the source code for one part, but not the main component (the virus cleans up after itself so as not to leave evidence). The way that it works is as follows: 1) Virus running on an infected machine opens a TCP connection to a victim machine's sendmail, invokes debug mode, and gets a shell. 2) The shell creates a file in /tmp named $$,l1.c (where the $$ gets replaced by the current process id) and copies code for a "listener" or "helper" program. This is just a few dozen lines long and fairly generic code. The shell compiles this helper using the "cc" command local to the system. 3) The helper is invoked with arguments pointing back at the infecting virus (giving hostid/socket/passwords as arguments). 4) The helper then connects to the "server" and copies a number of files (presumably to /tmp). After the files are copied, it exec's a shell with standard input coming from the infecting virus program on the other end of the socket. From here, I speculate on what happens since I can't find the source to this part lying around on our machines: 5) The newly exec'd shell attempts to compile itself from the files copied over to the target machine. I'm not sure what else the virus does, if anything -- it may also be attempting to add a bogus passwd file entry or do something to the file system. The helper program has an array of 20 filenames for the "helper" to copy over, so there is room to spare. There are two versions copied -- a version for Vax BSD and a version for SunOS; the appropriate one is compiled. 6) The new virus is dispatched. This virus opens all the virus source files, then unlinks the files so they can't be found (since it has them open, however, it can still access the contents). Next, the virus steps through the hosts file (on the Sun, it uses YP to step through the distributed hosts file) trying to connect to other machines' sendmail. If a connection succeeds, it forks a child process to infect it, while the parent continues to attempt infection of other machines. 7) The child requests and initializes a new socket, then builds and invokes a listener with the new socket number and hostid as arguments (#1, above). The heavy load we see is the result of multiple viruses coming in from multiple sites. Since local hosts files tend to have entries for other local hosts, the virus tends to infect local machines multiple times -- in some senses this is lucky since it helps prevent the spread of the virus as the local machines slow down. The virus also "cleans" up after itself. If you reboot an infected machine (or it crashes), the /tmp directory is normally cleaned up on reboot. The other incriminating files were already deleted by the virus itself. Clever, nasty, and definitely anti-social. --spaf ------------------------------------------------------------------------ From: bishop@bear.Dartmouth.EDU (Matt Bishop) Subject: More on the virus Date: Thu, 3 Nov 88 16:32:25 EST ... This program introduced itself through a bug in sendmail. At these sites, sendmail was compiled and installed with a debugging option turned on. As near as I can figure (I don't have access to the sendmail sources), by giving a specific option to the "debug" command in sendmail (there are lots of those, controlling what exactly you get information about) you can cause it to execute a command. As sendmail runs setuid to root, guess what privileges the command is executed with. Right. Apparently what the attacker did was this: he or she connected to sendmail (ie, telnet victim.machine 25), issued the appropriate debug command, and had a small C program compiled. (We have it. Big deal.) This program took as an argument a host number, and copied two programs -- one ending in q.vax.o and the other ending in .sun.o -- and tried to load and execute them. In those cases where the load and execution succeeded, the worm did two things (at least): spawn a lot of shells that did nothing but clog the process table and burn CPU cycles; look in two places -- the password file and the internet services file -- for other sites it could connect to (this is hearsay, but I don't doubt it for a minute.) It used both individual .rhost files (which it found using the password file), and any other remote hosts it could locate which it had a chance of connecting to. It may have done more; one of our machines had a changed superuser password, but because of other factors we're not sure this worm did it. This last part is still sketchy; I have the relevant sun.o file and will take it apart to see just what it was supposed to do. As of now, it appears there was no serious damage (just wasted CPU cycles and system administrator time). Two obvious points: 1. Whoever did this picked only on suns and vaxen. One site with a lot of IRISes and two Crays (ie, NASA Ames) got bit on their Suns and Vaxen, but the attempt to get the other machines didn't work. 2. This shows the sorry state of software and security in the UNIX world. People should NEVER put a program with debugging hooks in it, especially when the hook is (or can be made) to execute an arbitrary command. But that is how the sendmail which was used was distributed! One more interesting point: initially, I thought an application of the "principle of least privilege" would have prevented this penetration. But the attacker used a world-writeable directory to squirrel the relevant programs in, so -- in effect -- everything could have been done by any user on the system! (Except the superuser password change, of course -- if this worm did in fact do it.) I think the only way to prevent such an attack would have been to turn off the debug option on sendmail; then the penetration would fail. It goes to show that if the computer is not secure (and like you, I don't believe there ever will be such a beastie), there is simply no way to prevent a virus (or, in this case, a worm) from getting into that system. I know this is somewhat sketchy, flabby, and fuzzy, but it's all I know so far. I'll keep you posted on developments ... Matt ------------------------------------------------------------------------
Проблемы, связанные с локальными сетями, во многом зависят от типа используемой сети. Так, например, в некоторых дешевых локальных сетях дисковод сетевого сервера, доступен как обычный диск. Это означает, что файловый вирус, попав на диск центрального сервера, будет распространяться по всей сети как будто по обычной файловой системе отдельного персонального компьютера.
Вместе с тем, само наличие сетевого программного обеспечения ведет к изменению вычислительной среды и многие вирусы теряют работоспособность в этих условиях. Так, например, многие резидентные файловые вирусы неработоспособны в сети Novell.
В более дорогих системах имеется некоторая степень регламентирования доступа, обычно аналогичная той, которая используется в многозадачных системах на больших ЭВМ. В этих системах особую опасность представляет так называемый "суперпользователь", т.е. пользователь, имеющий наивысший уровень доступа ко всем системным ресурсам. Небрежное отношение к паролям таких пользователей или злоупотребление работой с самым высоким статусом доступа существенно облегчают попадание и быстрое распространение по сети файловых вирусов, поскольку фактически отключают имеющиеся защитные механизмы.
В качестве примера вируса, специально приспособленного к функционированию в определенной сети рассмотрим вирус NС-1260, который является сильно модифицированным вариантом вируса С-648 и способен распространяться по сети Novell. Хотя вирус не является резидентным, он распространяется достаточно быстро. Длины зараженных файлов увеличиваются на 1260 байтов, причем при заражении они шифруются ключом, меняющимся от файла к файлу. Вирус был обнаружен в Миннесоте (США) в январе 1990 г. Детектируется полидетектором SCAN.
В настоящее время для MS DOS существует несколько сотен компьютерных вирусов и их число продолжает расти. Поэтому следует, с одной стороны, ожидать постепенного проникновения в СССР новых, более опасных и изощренно написанных вирусов, включая стелс-вирусы, и с другой -- потока сравнительно простых, а зачастую и безграмотно написанных вирусов в результате "вирусного взрыва" внутри самой страны. Не следует думать, что эволюция вирусов пойдет только в направлении их усложнения. Опыт показал, что сложность стелс-вирусов существенно снижает их жизнеспособность. Как отмечал С.Н.Паркинсон в одном из своих знаменитых законов, "рост означает усложнение, а усложнение -- разложение". По-видимому, эволюция компьютерных вирусов будет идти сразу в нескольких направлениях, лишь одним из которых являются стелс-вирусы.
Хотя общее количество вирусов велико, лежащие в их основе идеи сравнительно малочисленны и не так просто поддаются расширению. Поэтому основной тенденцией, наблюдаемой в настоящее время, является не столько появление новых типов вирусов, сколько комбинирование уже известных идей. Такие "гибриды", как правило, оказываются опаснее базисных видов. Примером проявления указанной тенденции являются файлово-бутовые вирусы. Еще чаще наблюдается тенденция к минимальной модификации одного из получивших широкое распространение вирусов, что приводит к образованию вокруг "базисного" вируса группы штаммов, причем их количество в некоторых случаях превышает десяток.
Не следует думать, что только пользователи клонов IBM PC страдают от этой новой напасти. Компьютерные вирусы отмечались и на других типах персональных компьютеров, в особенности на Macintosh. Среди других ЭВМ, для которых существует один или несколько вирусов, следует отметить VAX-11, Apple-II, Amiga, Atari. Еще раз отметим, что по своей природе вирусы не являются программами, ориентированными на использование каких-то дефектов операционных систем. Для функционирования вирусу достаточно обычных средств практически любой файловой системы. Поэтому проблема компьютерных вирусов носит долговременный характер, что требует и соответствующей организации защиты от них.
В свете имеющихся фактов, налаживание сплошного входного контроля и исследования поступающего программного обеспечения является важной задачей, решение которой не терпит отлагательства. Помимо входного контроля батареей детекторов, важное значение приобретает контроль целостности программ "on the fly" ("на лету"), т.е. при загрузке в оперативную память. В то же время нельзя полагаться на какой-то один метод защиты -- защита должна быть многоуровневой, комплексной и включать хорошо отлаженную систему архивирования. Без последней любой метод защиты по сути является самообманом.
Другим важным методом противодействия, выходящим в настоящее время на передний план, является индивидуализация вычислительной среды. Например, можно использовать нестандартный дисковый драйвер (скажем, SpeedStore или Advanced Disk Manager) и командный процессор (например, 4DOS). Следует рекомендовать уменьшенный до 1К размер кластера на винчестере, который также является уходом от стандарта, одновременно улучшая степень использования винчестера. Последнее особенно важно на наиболее распространенных 40М винчестерах. На более мощных компьютерах целесообразен переходом к мультизадачным "MS DOS-совместимым" операционным системам (MS Windows, Desqview), тем более, что по своим эксплуатационным характеристикам эти системы превосходят MS DOS. На устаревших компьютерах типа AT/286 положительный эффект может дать переход к MS DOS 5.0.
В настоящее время первостепенное значение приобретает обмен информацией между пользователями и координация усилий между разработчиками антивирусных программ. В какой-то мере в Киеве эту роль играет семинар "Системное программирование" и выпускаемый им электронный бюллетень Софтпанорама. Постепенно налаживаются связи и с разработчиками и пользователями антивирусных средств в других городах, что позволяет оперативно распространять антивирусные программы и описания новых вирусов. Учитывая сравнительно медленную скорость распространения компьютерных вирусов от центра к периферии (обычно вирус, появившийся в Москве, Киеве, Ленинграде, становится проблемой в других городах через три-шесть месяцев), для большинства пользователей создается возможность встретить опасность во всеоружии. Как уже было подчеркнуто, скрывать друг от друга "свежие" антивирусные программы просто невыгодно. Поэтому обмен должен налаживаться не только от города к городу, региона к региону, но и внутри конкретного города: заинтересованные пользователи могут и должны организоваться и наладить обмен информацией и программами. Для этой цели может послужить такое "проверенное" средство, как организация ежемесячного городского семинара.
Несмотря на обилие различного рода антивирусных программ, вопросы конструирования средств защиты от вирусов остаются практически неизученными. Отечественные разработчики вынуждены опираться на свой собственный опыт и на немногочисленные исходные тексты антивирусных средств, дошедшие до нас, в основном, с Запада. При этом часто оказывается, что человек изобретает велосипед. Поэтому обобщение имеющейся практики и создание какого-то "конструктора" для облегчения написания антивирусных программ (детекторов, фагов, вакцин и др.) представляется достаточно актуальным. Автор надеется посвятить этому вопросу вторую часть настоящей работы. Другим важным направлением является создание специальных инструментальных средств, облегчающих анализ загрузочных модулей.
Человек лишь недавно осознал, до какого кошмарного состояния он довел окружающую среду. На наших глазах мир превращается в глобальную свалку. Компьютерные вирусы, наряду с троянскими программами, являются опасными загрязнителями информационной среды. Поэтому борьбу с компьютерными вирусами можно рассматривать как часть экологического движения. Как и проблема загрязнения природы, проблема компьютерных вирусов уже вышла за рамки национальных границ. Локальное загрязнение какой-то территории (например, Софии) почти всегда превращается в национальную, а затем и в международную проблему. Транснациональное распространение вирусов наносит экономический ущерб, который лишь по размеру отличается от ущерба, наносимого транснациональным распространением радиации или кислотных дождей. Понятно, что должна существовать ответственность за эти "грязные потоки" и какая-то система санкций. СССР в настоящее время присоединился ко многим международным соглашениям по охране окружающей среды. В области загрязнения информационной среды нам этого еще предстоит добиваться. Лучше добровольно привести свое законодательство к международным нормам, не дожидаясь, когда нам это придется сделать под давлением (к сожалению, обоснованным) со стороны других членов мирового сообщества. Первоочередным шагом в этом направлении должно стать принятие законов, охраняющих права разработчиков на созданное ими программное обеспечение (авторское право на программное обеспечение). К сожаления, сейчас в СССР этот вид продуктов признается принципиально отличным от материальных и человек, уничтоживший, скажем, уникальную базу данных, стоимость информации в которой может исчисляться сотнями тысяч рублей, а убытки пострадавшего предприятия -- миллионами, у нас вообще не является преступником. А ведь, в сущности, разница между уничтожением информации в компьютере или программного обеспечения и, скажем, поджогом автомашины не столь уж велика. В обоих случаях уничтожаются результаты длительного труда. В обоих случаях возможны человеческие жертвы. Известно, что безнаказанность развращает, а абсолютная безнаказанность тем более. И вот уже не единицы, а десятки отечественных техно-крыс "упражняются" в создании компьютерных вирусов. К чему может привести подобная безнаказанность в наших социально-экономических условиях, наглядно показывает пример Болгарии.
Говоря о необходимости координации усилий отечественных вирусологов нельзя не упомянуть об опасности попыток чисто бюрократического решения этих проблем, путем создания очередной "головной организации". Нужны более современные и гибкие формы координации исследователей и разработчиков антивирусных средств. Первоочередными задачами представляются создание антивирусной BBS (тем более, что количество установленных модемов последнее время быстро растет), с возможностью выхода на такие международные сети как EARN, BitNet и Internet и организация всесоюзного фонда, нечто вроде компьютерного "АнтиСПИДа". Такой фонд мог бы не только финансировать функционирование BBS, но и поддержать талантливых разработчиков антивирусных программ, которые в нынешней ситуации в значительной мере предоставлены сами себе и могут "захлебнуться" в потоке создаваемых и попадающих в страну компьютерных вирусов. Учредителями и членами этого фонда могли бы стать организации и предприятия, производящие и продающие в нашей стране программные средства к персональным компьютерам, сами персональные компьютеры и их комплектующие.
Важной задачей фонда могла бы стать издательская и просветительская деятельность. Необходимо дегероизировать в глазах общества (в первую очередь молодежи) деятельность техно-крыс. Ведь они мало чем отличаются от тех, кто бьет окна в трамваях и электричках, пакостят в лифтах и подъездах домов. Необходимо добиться, чтобы в отечественной прессе доминировал взвешенный, объективный подход к данной проблеме, без элементов погони за сенсациями. Последний тип публикаций, учитывая влияние газет на своих читателей, имеет отрицательный эффект, способствуя росту количества техно-крыс.
В данной работе используются символические ссылки на приведенные ниже источники. В самих библиографических описаниях приняты следующие сокращенные названия периодических изданий:
Burger R. Computer viruses -- a high-tech disease.-- Abacus, 1988.-- 276 p.-- (2-е издание);
Бургер Р. Компьютерные вирусы.-- М.: Всес. центр переводов, 1989, пер. No.С-48102.-- 67 с.; No.С-48103.-- 67 с.; No.С-48104.-- 97 с.; No.С-48105.-- 93 с.-- (пер. 1-го изд. 1987 г.)).
Дьюдни А.К. В игре "Бой в памяти" компьютерные программы ведут битву за биты // В мире науки, 1984, No. 7.-- С.96-101).
Дьюдни А.К. Обзор читательских откликов на статьи, посвященные игре "Бой в памяти", экологической войне на планете АкваТор и охоте с компьютером на бобра-работягу // В мире науки, 1985, No. 5.-- С.70-75).
Дьюдни А.К. Анализ результатов первого турнира по компьютерной игре "Бой в памяти" // В мире науки, 1987, No. 3.-- С.96-100).
Дьюдни А.К. О вирусах, червяках и войне в памяти // В мире науки, 1989, No. 5.-- С.82-86).
Толкиен Дж.Р.Р. Хранители. Летопись первая из эпопеи "Властелин Колец".-- М.: Детская литература, 1983.-- 335 с.).
ББК 32.973-01я2 Б 40 Безруков Н.Н. Б 40 КОМПЬЮТЕРНАЯ ВИРУСОЛОГИЯ: Справ. руководство. - К: УРЕ.- 1991. - 416 с.: ил.- Библиогр. ISBN 5-88500-031-X В книге рассмотрен спектр проблем, связанных с компьютер- ными вирусами, включая историю их разработки и принципы функ- ционирования. Приведены классификационные таблицы, охватываю- щие более 100 вирусов, что позволяет пользователям в большинстве случаев самостоятельно определить тип вируса, за- разившего программу. Даны подробные описания наиболее расп- ространенных вирусов, примеры дампа зараженной программы, ре- комендуемые средства защиты. Для пользователей операционной системы MS DOS, специалис- тов в области ЭВМ, инженеров электронных систем, студентов технических вузов. 2404040000-002 Б ----------------- БЗ-1-1391 ББК 32.973-01я2 М222(04)-91 ISBN 5-88500-031-X (С) Безруков Н.Н., 1991[Вернуться к списку] [Комментарии (0)]