Код вируса достаточно примитивен и содержит много ошибок и
неточностей. В частности, вирус не закрывает открываемые файлы (по
одному на заражаемую программу). При этом открыть их может очень
много (в зависимости от количества файлов в текущем каталоге). При
просмотре дампа зараженной программы видна текстовая строка
"*.COM".
Исторические замечания. Происхождение неизвестно. Обнаружен ле-
том 1990 г.
Неформальные названия. Полидетектор SCAN данный вирус не детек-
тирует.
Программные средства защиты. Полифаг Aidstest версий, начиная с
44. Находятся в стадии разработки. Детектирование можно выполнять
по сигнатуре, приведенной в прил.1.
Фрагмент дампа дрозофилы, зараженной вирусом С-257
000: 92E81500D8A10800 8B1E0A00891E0800 ................
010: A30A00B8004CCD21 125BE800005A5289 .....L.!.[...ZR.
020: D681C6C10089D82D 040089C7B90400A4 .......-........
... .. .. .. .. .. .. .. .. .. .. .. .. ..
0C0: B80242CD2172D15A 5283EA04B90001B4 ..B.!r.ZR.......
0D0: 40CD21CC139090E9 3B1092E81500B840 @.!.....;......@
0E0: 008E2A2E434F4D00 B43ECD21B42CCD21 ..*.COM..>.!.,.!
0F0: 80FA0A7DE2909090 90909090909090EA ...}............
100: 0000FFFF00000000 0000000000000000 ................
110: 0000000000000000 00 .........
5. РЕЗИДЕНТНЫЕ ФАЙЛОВЫЕ ВИРУСЫ,
ОБНАРУЖЕННЫЕ В СССР
5.1. Группа "Буквопад"
Данная группа берет начало с вируса RС-1701 и в настоящее время
включает ряд вирусов с длиной порядка 1700 байтов, имеющих харак-
терный визуальный эффект "опадания" букв на экране. Большинство
штаммов однократно заражает файлы типа COM, однако автор встречал
упоминания о штаммах, многократно заражающих файлы.
5.1.1. Вирус RС-1701 (Cascade -- Буквопад)
Данный вирус, по-видимому, является родоначальником группы. Его
название связано с тем, что в зараженной им системе при определен-
ных условиях начинается "падение" букв с верхних строк экрана
вниз, сопровождаемое негромким звуком, напоминающим шорох, и бло-
кировкой клавиатуры. Длина вируса 1701 (6А5h). Формально вирус RС-
1701 -- файловый резидентный вирус, поражающий файлы типа СОМ. Фун-
кционирует на версиях MS DOS, начиная с 2.0 (в теле вируса имеется
проверка). Распространяется как на PC/XT, так и на PC/AT. Страте-
гия заражения -- при запуске файлов на выполнение. Файлы заражаются
однократно. Максимальная длина заражаемого файла составляет 63803
(F93Bh) байта.
Подобно вирусу С-648, при заражении RС-1701 дописывается в конец
программы и одновременно вставляет в первые три байта COM-файла
команду перехода на тело вируса. При этом размер файла увеличива-
ется на 1701 байт, дата создания файла и атрибуты файла не меняют-
ся. Так же, как и вирус С-648, вирус RC-1701 не проверяет, нахо-
дится ли заражаемая программа (которая загружается на выполнение)
на защищенной дискете или нет, и пытается выполнить запись на за-
щищенную от записи дискету. При этом операционная система выдает
сообщение:
Write protect error writing device <лог.имя.устр.>
Abort, Retry, Ignore, Fail?
Этот эффект можно использовать для обнаружения данного и некото-
рых других резидентных вирусов, поскольку на зараженной ими машине
попытка загрузить программу с защищенной дискеты всегда приводит к
выдаче указанного выше сообщения. В то же время, как уже указыва-
лось, это сообщение часто воспринимается неопытными пользователями
не как предупреждение о попытке выполнить какие-то несанкциониро-
ванные действия, а как просьба снять защитную наклейку.
Механизм функционирования данного вируса существенно отличается
от С-648. В частности, для того, чтобы различать зараженные и
незараженные файлы используетсял не время создания, а первые три
байта файла. Кроме того, вирус по BIOS определяет фирму-изготови-
тель для того, чтобы в случае, если таковой является IBM, сразу
передать управление зараженной программе, не проявляя никаких при-
знаков активности (латентная фаза). Возможно, разработчик опасался
санкций со стороны такой могущественной фирмы, как IBM. Однако при
программировании указанной проверки допущена ошибка, и вирус зара-
жает и ПЭВМ фирмы IBM.
При запуске зараженной программы RС-1701 сначала проверяет, име-
ется ли уже резидентная копия данного вируса с помощью подфункции
FF прерывания 21-4B (не используемой в версиях MS DOS 3.3 и ни-
же). Если нет, вирус инсталлируется в младших адресах свободной
оперативной памяти, перехватывая прерывания 1Ch, 21h и 28h. В ре-
зультате, при запуске любой программы вирус получает управление,
проверяет, является ли запускаемая программа зараженной, и если
нет, то заражает данную программу на диске. В процессе заражения
файла вирус создает в памяти свою копию, кодирует ее и дописывает
в конец заражаемого файла. Затем у файла изменяются первые 3 байта
(организуется переход на начало тела вируса).
При выполнении зараженной программы управление командой JMP
(Е9h) передается на начало вируса. Первыми командами вирус узнает
длину исходного файла и раскодирует свое тело. Затем вирус восста-
навливает измененные им при заражении файла первые три байта про-
граммы, проверяет, заражен компьютер или нет, и если не заражен,
то посредством манипуляций с MCB, PSP и 2 раза копируя себя, оста-
ется резидентным в памяти. Чтобы по окончании работы программы-ви-
русоносителя резидентная часть вируса не была удалена из памяти,
данный вирус выполняет достаточно тонкую операцию, заключающуюся в
сдвиге загруженной программы в область старших адресов, записи се-
бя на освободившееся место и соответствующей корректировки систем-
ных блоков.
Демонстрационный эффект привязан к часам, причем условие запуска
выбрано так, что он проявляется в основном на машинах типа XT, при
установленной дате. На AT визуальный эффект в обычных условиях не
наблюдается, хотя вирус успешно размножается. По некоторым данным,
он возникает при установке даты на третий квартал 1988 г. В ука-
занных случаях, если загружается файл COMMAND.COM и он отмечен как
зараженный, то вирус демаскируется, демонстрируя свое присутствие
с помощью эффекта "падающих букв" на экране монитора. Сеансы опа-
дания букв происходят через определенные интервалы времени. В про-
цессе падения букв клавиатура блокируется и работать с компьютером
становится невозможно до полного опадания букв на экране. При этом
падение каждой буквы сопровождается характерным звуком, напоминаю-
щим шорох. На неспециалистов эта "шутка" часто производит впечат-
ление аппаратной неисправности.
Никаких других несанкционированных действий вирус не выполняет,
поэтому в целом его деятельность можно было бы охарактеризовать
как мелкое хулиганство, если бы не одно обстоятельство. При зара-
жении некоторых системных программ, используемых преимущественно в
AUTOEXEC.BAT, он может вызывать блокировку загрузки MS DOS. Эта
блокировка, в частности, возникает на ПЭВМ ЕС-1840 при заражении
обычно включаемой в AUTOEXEC.BAT программы E1840.COM (EDISK.COM),
обеспечивающей разделение одного физического диска на два логиче-
ских, по 360К каждый (А и С на одном дисководе, B и D на другом).
Этот эффект не был предусмотрен разработчиком вируса, что, впро-
чем, не освобождает его от ответственности. Вместе с тем, ситуация
с EС-1840 может служить наглядной иллюстрацией того факта, что при
заражении системных программ любой вирус может создавать опасные
побочные эффекты. Поэтому любые компьютерные вирусы следует немед-
ленно удалять, как только они появились, даже если путем анализа
или из надежных источников установлено, что никаких разрушительных
действий они не выполняют.
Резидентная часть вируса легко обнаруживается путем просмотра
списка резидентных программ (с помощью утилит MAP, SMAP, MMAP и
т.д.). Как видно из приводимой ниже карты памяти, в списке загру-
женных программ появляется дополнительная строка, описывающая без-
ымянную программу, не имеющую имени родителя.
Вирус RC-1701 является одним из первых вирусов, в которых пред-
приняты определенные усилия, направленные на усложнение процесса
его дизассемблирования. В частности, основная часть тела вируса
шифруется с помощью операции "исключающее ИЛИ". Поэтому непосред-
ственное дизассемблирование зараженной программы пакетным дизас-
семблером полной информации о структуре вируса не дает. Ключ шиф-
ровки зависит от длины файла, поэтому два зараженных файла разной
длины не имеют общих подстрок, за исключением начала инсталлятора.
По той же причине текстовых строк тело вируса не содержит.
Исторические замечания. Данный вирус появился в Западной Европе
в первой половине 1988 г. (см., например, статью [50]). Об этом
также свидетельствуют даты создания версий программы SERUM. Вирус
также распространялся на вирусной дискете В.Бончева в файле
V1700.COM, датированном 16 января 1989 г.
В СССР впервые был выделен в конце 1988 г. в Институте приклад-
ной математики имени М.В.Келдыша АН СССР. B Киеве появился в нача-
ле 1989 г. Одним из первых этот вирус исследовал Е.Ю.Портной, ко-
торый самостоятельно разработал фаг для этого вируса, работающий
как постпроцессор протокола детектора Ладыгина. Средства защиты
появились примерно одновременно с вирусом, поэтому существенного
вреда вирус не нанес.
В Киеве первым фагом для данного вируса была австрийская про-
грамма SERUM3, которая может также работать и в режиме детектора.
Среди отечественных программ, использовавшихся на начальной стадии
борьбы с вирусом, следует отметить детектор Ладыгина (ИПМ АН СССР)
VIRUS_D1.
Неформальные названия. Данный вирус имеет порядка десятка нефор-
мальных названий. Среди них отметим следующие: Falling Letters
(Падающие буквы), LetterFall (Буквопад), Rash (Сыпучка), вирус
падающих букв, 1701, Letters (буквы -- О.Котик), "Слезы капали".
SCAN называет данный вирус "1701/1704 Virus -- Version B [170X]".
Программные средства защиты. Общие средства защиты достаточно
эффективны против данного вируса. В частности, попытки записи ви-
руса в запускаемый СОМ-файл детектируются всеми имеющимися фильт-
рами. Фильтр ANTI4US2 не срабатывает на попытку вируса стать рези-
дентным, поскольку вирус предварительно перехватывает прерывание
21. При использовании системы управления доступом к винчестеру
(Disk Manager, Advanced Disk Manager и т.д.) вирус не в состоянии
попасть в разделы винчестера, для которых установлен статус READ
ONLY. Однако при этом становится невозможным вызов программ с за-
щищенной дискеты или раздела винчестера.
Специальные средства защиты от данного вируса принципиально мо-
гут включать детектор, фаг для резидентной части, резидентный и
пакетный фаги для зараженных файлов, активную и пассивную вакцину.
Детектор может быть создан только на основе поиска начальных 16
байтов вируса, поскольку остальная часть вируса шифруется и раз-
вертывается уже в процессе выполнения.
В настоящее время все сопровождаемые полидетекторы и полифаги
обрабатывают программы, зараженные данным вирусом. Автор рекомен-
дует компактную и удобную программу AIDSTEST Д.Н.Лозинского.
Фрагмент дампа программы MORE.COM,
зараженной вирусом RC-1701
000: E90E009090909090 9090909090909090 ................
+------------------------ J-сигнатура
| (программа раскодировки)
|
010:|01FA8BECE800005B 81EB31012EF6872A .......[..1....*
020: 0101740F8DB74D01 BC82063134312446 ..t...M....141$F
030: 4C75F8
+--------------- закодированная часть
| тела вируса
|
3A575901DE 4243CC634242DEDE Lu.:WY..BC.cBB..