Вирус RCE-1813 (Jerusalem - Иерусалим, Black Friday - Черная пятница)
Вирус RСЕ-1813 получил название Black Friday - Черная пятница, поскольку, если 13 число месяца приходится на пятницу, то он удаляет все запускаемые файлы.
🕛 12.02.2009, 17:56
Впервые обнаружен в Израиле, поэтому другим распространенным названием вируса является Israeli Virus - Израильский вирус. Формально вирус RСЕ-1813 является резидентным файловым вирусом, поражающим как СОМ-, так и ЕХЕ-файлы. Работоспособен на версиях, начиная с 2.0, как на PC XT, так и на PC AT.При выполнении зараженной программы вирус вначале проверяет наличие своей копии в памяти компьютера. Для этой цели используется вызов функции 21h-E0h. Если получен ответ "вирус уже имеется", то в случае, когда вирусоносителем является COM-файл, вызывается функция 21h-DDh, которая выполняет перезапись хозяина на место вируса. Иначе управление передается зараженной программе.
Если проверка показала, что вирус в памяти отсутствует, то вирус инсталлируется, выполняя следующие действия:
1. запоминает в своем теле значения байтов памяти с адресами 003FCh-003FEh; 2. размещает по указанным адресам программу копирования и передает ей управление; 3. программа копирования перемещает тело вируса в самые младшие адреса, выделенные для основной программы (при этом вирус в COM-программе копируется сам в себя, а в EXE-программе стирает часть кода основной программы), и возвращает управление в копию вируса; 4. восстанавливает старое содержимое байтов памяти с адресами 003FCh-003FEh; 5. определяет имя основной программы и функцией EXEC (21h-4Bh) запускает ее на выполнение (т.е. в памяти компьютера в этот момент находятся 2 копии основной программы); 6. по окончании работы программы вирус освобождает лишнюю память и остается резидентным в памяти (с помощью прерывания 21h-31h).
Использование для постановки в резидент прерывания 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