Вирус RС-1701 (Cascade - Буквопад)
Данный вирус, по-видимому, является родоначальником группы. Его название связано с тем, что в зараженной им системе при определенных условиях начинается "падение" букв с верхних строк экрана вниз, сопровождаемое негромким звуком, напоминающим шорох, и бло
🕛 12.02.2009, 17:54
Формально вирус 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