Группа "второй половины таблицы прерываний"; вирус RC-492 (sI)
🕛 01.03.2009, 11:49
Данная группа включает вирусы, которые при заражении оперативной памяти размещают свое тело во второй половине таблицы прерываний. Очевидно, что такое размещение накладывает жесткие ограничения на размер вируса и выполняемые функции. Из-за ограничения длины возможно заражение только одного типа файлов (обычно типа СОМ). В настоящее время известны два вируса этого типа. Один из них рассмотрен ниже, а второй - в разделе о троянизирующих вирусах.Неформальное название 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..