КОМПЬЮТЕРНАЯ ВИРУСОЛОГИЯ

отмечалось, из-за ошибки в тексте вируса при заражении как COM-,
так и EXE-файлов, имеющих размер, дающий при увеличении на 1808 —
1821 байтов величину, превосходящую 64К, 128К и т.д., заражаемая
программа необратимо портится, перезаписываясь в начале.
Исторические замечания. Вирус RСE-1813 появился в Израиле в на-
чале 1988 г. В СССР обнаружен в ноябре 1988 г. в одном из москов-
ских кооперативов. Первый детектор был, по-видимому, разработан в
Институте программных систем (Переславль-Залесский), однако эта
программа до Киева не дошла. По результатам анкеты, проведенной
автором на апрельском семинаре, этот вирус был обнаружен в 10 ор-
ганизациях из 50 участников семинара, принявших участие в анкети-
ровании. Поскольку создание средств защиты несколько запоздало (в
Киеве эпидемия началась приблизительно в апреле, а средства защиты
появились примерно в июне), вирус распространился довольно широко
и нанес определенный ущерб: десятки, если не сотни тысяч часов бы-
ли потеряны на восстановление и перезапись зараженных программ.
Первыми использовавшимися в киевской практике детекторами для
этого вируса были DOCTOR А.А.Чижова и ANTIDOS киевской разработки.
Первые фаги, использовавшиеся в Киеве для борьбы с этим вирусом,
были разработаны А.А.Чижовым (DOCTOR1) и Л.И.Обуховым (FAG1813 —
август 1989 г.). Программа FAG1813, распространявшаяся как
SHAREWARE по цене 1 рубль за копию (см.СП 1-1), работала устойчи-
во, однако не могла рекурсивно обрабатывать подкаталоги (впрочем,
программа очень мала (1808 байтов)). Для рекурсивной обработки
подкаталогов использовалась с RUNTREE. Кроме того, Л.И.Обуховым
была разработана резидентная вакцина VAC1813R, а позднее VAC1813Q.
Вакцина содержит обработчик неиспользуемого в MS DOS прерывания
Е0, используемого вирусом для определения, имеется ли в оператив-
ной памяти копия вируса или нет. Если этот обработчик возвращает
значение 3, то вирус считает, что он уже является резидентным и
загрузку собственной копии в список резидентных программ не выпол-
няет. Данная вакцина является первым отечественным продуктом тако-
го типа и позволяет, в частности, работать на зараженной машине
без дезактивации всех зараженных файлов. Версия VAC1813Q выдает
предупреждающее сообщение всякий раз, когда делается попытка запу-
стить зараженную программу. Таким образом, она является одновре-
менно резидентным детектором для данного типа вируса. Позднее
В.В.Пономаренко была разработана поливакцина NEATVAC (СП 2-7).
Зарубежные программы появились в СССР несколько позднее. Первой
из них была программа FAG_SU, разработанная Joe Ratcatcher & Anre
Molnar.
Неформальные названия. Данный вирус имеет более десятка нефор-
мальных названий. Среди них: Hebrew University, PLO (ООП), Black
Hole (Черная дыра), Вирус замедления, Time (Время — О.Котик). По-
лидетектор SCAN называет данный вирус «Jerusalem Virus Version B
[Jeru]«.
Методы и программные средства защиты. В настоящее время все по-
лифаги и полидетекторы распознают этот вид вируса. Однако почти
все из указанных программ не обрабатывают случай, когда вирус на-
ходится в середине файла. Поэтому результаты их работы необходимо
контролировать с помощью контекстного поиска по всему диску. В по-
следних версиях полифага DOCTOR введен новый ключ, задающий расши-
ренную обработку файлов. В этом случае проводится полный просмотр
файлов. Поскольку для каждого зараженного СОМ-файла вирус в конце
дописывает признак зараженности, который состоит из 5 байтов, со-
держащих слово MsDos, можно реализовать пассивное вакцинирование
СОМ-файлов от этого типа вирусов. Для этой цели применима, напри-
мер, команда COPY, если заготовить слово MsDos в отдельном файле,
а затем конкатенировать COM-файлы с этим файлом.

Фрагмент дампа дрозофилы, зараженной вирусом RCE-1813

+—————- команда обхода области данных
| (дрозофила перемещена в конец файла — см. ниже)
+——+
0000:|E9920073554D7344 6F7300018F250000 …sUMsDos…%..
0010: 001000D800AD0F5C 06FD1856059D1007 …….\…V….
0020: 7E00000000000000 0000000000000000 ~……………
0030: 000E258000000080 000E255C000E256C ..%…….%\..%l
0040: 000E250004FABA29 0053A1000000004D ..%….).S…..M
0050: 5A8000C300730160 00EA0AFFFF771710 Z….s.`…..w..
0060: 078419C50077171E 0000009090909090 …..w……….
0070: 0500200021001B01 00021000707D0100 .. .!…….p}..
0080: B9412A9B434F4D4D 414E442E434F4D01 .A*.COMMAND.COM.
0090: 0000000000
+——— J-сигнатура
|
0095 |FCB4E0 CD2180FCE0731680 ………!…s..
00A0: FC037211B4DDBF00 01BE100703F72E8B ..r………….
00B0: 8D1100CD218CC805 10008ED0BC000750 ….!……….P
00C0: B8C50050CBFC062E 8C0631002E8C0639 …P……1….9
00D0: 002E8C063D002E8C 0641008CC0051000 ….=….A……
00E0: 2E010649002E0106 4500B4E0CD2180FC …I….E….!..
… .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
05E0: 1B00B82425CD2107 1F5F5E5A595B589D …$%.!.._^ZY[X.
05F0: 2EFF2E1700000000 0000000000000000 …………….
0600: 4D9D100010383133 522E434F4D000122 M….813R.COM..»
0610: E9920073554D7344 6F7300018F250000 …sUMsDos…%..
0620: 001000D800AD0F5C 06FD1856059D1007 …….\…V….
0630: 7E00000000000000 0000000000000000 ~……………
0640: 000E258000000080 000E255C000E256C ..%…….%\..%l
0650: 000E250004FABA29 0053A1000000004D ..%….).S…..M
0660: 5A8000C300730160 00EA0AFFFF771710 Z….s.`…..w..
0670: 078419C50077171E 0000009090909090 …..w……….
0680: 0500200021001B01 00021000707D0100 .. .!…….p}..
0690: B9412A9B434F4D4D 414E442E434F4D01 .A*.COMMAND.COM.
06A0: 0000000000FCB4E0 CD2180FCE0731680 ………!…s..
… .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
+———————— тело дрозофилы
|
0710:|9090909090909090 9090909090909090 …………….
0720:|4D73446F73 MsDos
+———-+
+—————- признак зараженности COM-файла

Пример карты памяти зараженного компьютера. В приводимой ниже
карте памяти резидентная часть вируса занимает последнюю строку
(1CD0) таблицы резидентных программ. Перехватываемые прерывания
соответствуют действительности.

Addr Program Parent Sg Bytes Hooked Vectors
—— ——— ——— — —— ——————

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128