позволяют отличать один вирус от другого. При этом для файловых
вирусов, дописывающих свое тело в конец файла, будем считать, что
J-сигнатура начинается с байта, на который передает управление ко-
манда JMP. Кроме того, в теле некоторых вирусов встречаются харак-
терные текстовые строки. Такие строки будем называть T-сигнатурами
и использовать как вспомогательные.
Следует отметить, что контекстный поиск может использоваться не
только для поиска зараженных вирусом программ, но и для поиска
программ и файлов, уничтоженных или поврежденных вирусом. Напри-
мер, вирус С-648 при определенных значениях таймера вместо зараже-
ния программы уничтожает ее, записывая в первые 5 байтов строку,
соответствующую переходу на подпрограмму перезагрузки BIOS. Для
поиска уничтоженных вирусом программ можно использовать строку
"EAF0FF00F0". Аналогично вирус RCE-1800 уничтожает сектора на вин-
честере, записывая в первые байты сообщение "Eddie livesЄ
somewhere in time". По этому сообщению с помощью Norton Utilities
или PC Tools можно выявить все пораженные сектора и определить, к
каким файлам они относятся.
При наличии сигнатуры проверку зараженности файлов вирусом дан-
ного типа удобно выполнять, используя специальные программы, из
которых, по мнению автора, наиболее удачной является программа VL
(см. прил.5), позволяющая проводить поиск в каталоге или заданных
его ветвях. В случае обнаружения зараженных программ целесообразно
дополнительно проконтролировать результаты с помощью Norton
Utilities (NU) или PCTools, которые всегда под рукой (для просмот-
ра всех файлов можно использовать режим глобального поиска по дис-
ку).
3.2. Классификация файловых вирусов
Файловые вирусы являются наиболее распространенным типом компью-
терных вирусов; они составляют примерно 80% от общего числа компь-
ютерных вирусов, известных для компьютеров, совместимых с IBM PC.
Этот класс компьютерных вирусов обладает весьма высокой инфицирую-
щей способностью. При отсутствии противодействия они вызывают на-
стоящие эпидемии. Так, например, произошло с вирусом RCE-1813, из-
вестным также под названиями Jerusalem (Иерусалим), Black Friday
(Черная пятница) и др. Классификационная таблица файловых вирусов,
обнаруженных в СССР, приведена в прил.1.
Группы файловых вирусов. Большинство распространенныx файловыx
вирусoв имеют штаммы, незначительно отличающиеся от базовой вер-
сии. Поэтому можно говорить о группах файловых вирусов и, соответ-
ственно, групповых дескрипторах и групповых сигнатурах. В настоя-
щее время можно выделить следующие группы файловых вирусов.
1) Венская группа. Первым представителем этой группы был вирус
С-648, обнаруженный в Вене примерно в 1987 г. Его дизассемблиро-
ванный код был опубликован и распространялся в виде файла на дис-
кетах с соответствующими антивирусными программами, поэтому попыт-
ки его модификации наиболее многочисленны.
2) Группа CASCADE. Первым представителем этой группы был вирус
RС-1701, обнаруженный примерно в середине 1988 г.
3) Иерусалимская группа. Первым представителем этой группы был
вирус RCE-1813, обнаруженный в Иерусалимском университете в конце
1987 г. Данная группа имеет значительное число штаммов (более де-
сятка).
4) Группа TP-вирусов (эти вирусы, вероятно, разработаны в Болга-
рии; большинство представителей этой группы имеют характерный
"хвост" длиной четыре байта, в котором за двумя первыми байтами
(F4FAh) следует байт с 16-ричным значением версии вируса (как уже
указывалось, этот байт является предпоследним байтом в зараженной
программе). В свою очередь, эта группа разбивается на три подгруп-
пы є "VACSINE" (TP-4, TP-5, TP-16), "музыкальной перезагрузки"
(TP-24, TP-25) и "самоедов" (TP-34 и старше). Две последние под-
группы часто называют "Yankee Doodlе" (Янки дудль), поскольку они
при определенных условиях проигрывают мелодию Yankee Doodlе Dandy.
Данная группа имеет наибольшее количество штаммов є порядка двух
десятков (не все номера версий соответствуют реальным вирусам).
5) Группа Avenger. Представители этой группы обладают более вы-
сокой инфицирующей способностью по сравнению с предыдущими
группами, поскольку заражают файлы не только при выполнении, но и
при открытии и чтении. Один из представителей этой группы периоди-
чески уничтожает сектора на винчестере, записывая в них текстовое
сообщение.
6) Голландская группа (Datacrime). Представители этой группы ак-
тивизируются 12 октября текущего года и уничтожают первые 8 секто-
ров логических дисков A, B, C и D.
7) Исландская группа (Icelandic).
Следует отметить, что две из упомянутых выше групп вирусов пока,
по-видимому, не попали в нашу страну (группа Datacrime и исланд-
ская группа). Кроме того, в настоящее время на базе некоторых ви-
русов начинают образовываться новые группы. Фактически это проис-
ходит с каждым вирусом, получившим значительное распространение.
Классификационный код файлового вируса. Как уже указывалось,
файловые вирусы можно разделить на резидентные и нерезидентные,
что во многом определяет поведение вируса и, прежде всего, его ин-
фицирующую способность (резидентные вирусы обладают существенно
более высокой инфицирующей способностью, чем нерезидентные). Поэ-
тому код резидентных вирусов будем начинать с префикса R, например
RC-1701.
Префикс. Помимо символа R, классификационный код файлового виру-
са может включать символы С и Е или их сочетания. Как уже указыва-
лось, символы С и E определяют типы файлов, заражаемых данным ви-
русом. Например, если резидентный вирус заражает COM- и EXE-
файлы, то его классификационный код будет иметь префикс RCE.
Количественная характеристика. К непосредственно наблюдаемым
объективным свойствам файловых вирусов прежде всего относится при-
ращение длины файлов при заражении. Это приращение, обусловленное
наличием вируса, можно использовать для определения его типа.
Здесь есть две основные проблемы. Во-первых, величина приращения
может варьироваться в зависимости от длины заражаемого файла (мно-
гие вирусы при дописывании своего кода в конец заражаемого файла
выравнивают свое тело на ближайший адрес, кратный 16, т.е. на гра-
ницу параграфа). Во-вторых, величина приращения может не совпадать
для COM-файлов и EXE-файлов. Поэтому в качестве количественной ха-
рактеристики необходимо использовать нормированное приращение, оп-
ределяемое по следующим правилам.
1) Для вирусов с префиксом С и CE (RC, RCE) характеристика клас-
сификационного кода принимается равной минимальному приращению
длины зараженного COM (для вирусов типа С и CE) или EXE (для виру-
сов типа Е) файла.
2) Для вирусов, не изменяющих длины файла, указывается ноль, а
через тире действительная длина тела вируса, например RC-0-346.
3) Для вирусов, маскирующих увеличение длины файла на зараженной
машине к характеристике, определенной по правилам п.1, слева до-
бавляется незначащий ноль (например, RCE-02000).
Отметим, что предложенный в п.1 подход позволяет исключить влия-
ние выравнивания на границу параграфа для вирусов, выравнивающих
свое тело указанным способом. Кроме того, для вирусов, изменяющих
приращение случайным образом, например, путем подгонки его до ве-
личины, кратной 51, минимальное приращение также позволяет исклю-
чить влияние вставляемых байтов (этот случай можно рассматривать
как разновидность выравнивания). И наконец, для вирусов, много-
кратно заражающих один и тот же файл, использование минимального
приращения позволяет исключить влияние многократного заражения.
Для определения указанной характеристики не требуется проведение
экспериментов по заражению файлов с такой длиной. Ее достаточно
просто определить, сопоставив приращения длин двух или более зара-
женных файлов типа COM. Чаще всего файловые вирусы заражают коман-
дный процессор MS DOS (файл COMMAND.COM) и программы, вызываемые в
файле AUTOEXEC.BAT. При анализе нескольких зараженных файлов воз-
можны два наиболее типичных (хотя и не единственно возможных) слу-
чая.
Если приращения длин двух или более зараженных файлов совпадают,
а остатки от деления длин исходных файлов на 16 отличны друг от
друга, то скорее всего вирус не выполняет выравнивание своего кода
на границу параграфа и полученное приращение является характери-
стикой данного вируса. Если приращения отличны, то скорее всего
вирус выполняет выравнивание своего тела на границу параграфа, и
характеристику L данного вируса можно получить по формуле L = D є
(16єmod(LEN,16)), т.е. путем вычитания из полученного приращения
(D) дополнения (до 16) остатка от деления исходной длины файла на
16. Например, файл COMMAND.COM, который файловые вирусы обычно по-
ражают в числе первых, в наиболее распространенной в настоящее
время версии MS DOS 3.3 обычно имеет длину 25307. При этом
mod(25307,16)=11, т.е. остаток от деления 25307 на 16 равен 11 .
Очевидно, что дополнение до 16 равно 5 и для выравнивания на гра-
ницу параграфа требуется вставка пяти дополнительных байт. В этом
случае характеристика вируса будет на 5 меньше, чем приращение
длины файла COMMAND.COM. Достоинством принятого подхода является
то, что, за редким исключением (например, вирус RCE-1813), опреде-
ленная таким образом числовая характеристика совпадает с длиной
кода вируса.
В качестве количественной характеристики классификационного кода
могут применяться и другие параметры. На них стоит кратко остано-
виться, поскольку использованные в них подходы будут безусловно
открываться и переоткрываться другими авторами. По-видимому, наи-
более распространенными можно считать следующие два подхода.
1) Использование в качестве количественной характеристики длины
кода вируса, определенной по константе, содержащейся во фрагменте,
который обеспечивает дописывание кода вируса в заражаемый файл
(эту константу можно сравнительно легко определить, анализируя ди-
зассемблированный код вируса). Такая характеристика является объ-
ективной, поэтому ее часто используют разработчики антивирусных
программ, достаточно хорошо владеющие языком ассемблера. Однако
определенная таким образом характеристика в ряде случаев не совпа-
дает с наблюдаемым значением приращения длин файлов, что снижает
ее ценность с точки зрения использования при попытке классификации
пользователем, не владеющим языком ассемблера, нового, еще неизве-
стного ему вируса. Hапример, для упомянутого выше иерусалимского
вируса длина кода вируса составляет 1808 байт, а приращение длины
при заражении файлов типа СОМ є 1813 байтов, что объясняется до-
полнительным дописыванием в конец зараженного файла типа COM пяти-
байтовой константы "MsDos" (используется как признак зараженности
файла).
2) Использование в качестве количественной характеристики прира-
щения длины какого-то конкретного файла, полученного в результате
его заражения. В ранних редакциях данной работы автор использовал
этот подход, причем в качестве эталонного был выбран файл
COMMAND.COM версии 3.3 MS DOS. Этот действительно удобный подход
утратил свою привлекательность с появлением ряда вирусов, не
заражающих командный процессор, а также распространением версии
4.0 MS DOS, в которой длина файла COMMAND.COM составляет 37637.
Суффикс. Возможны случаи, когда два разных вируса или два штамма
одного и того же вируса имеют одинаковые префикс и характеристику.
В этом случае, для того, чтобы получить уникальные классификацион-
ные коды вирусов будем использовать в качестве суффикса одну бук-
ву. Например, в коде RС-1704f буква f означает "штамм-f". При этом
буква "G" резервируется за так называемыми группами вирусов о ко-
торых сказано выше.
Дескриптор файлового вируса. Используемые характеристики вирусов