Классификация файловых вирусов
Файловые вирусы являются наиболее распространенным типом компьютерных вирусов; они составляют примерно 80% от общего числа компьютерных вирусов, известных для компьютеров, совместимых с IBM PC.
🕛 11.02.2009, 12:44
Этот класс компьютерных вирусов обладает весьма высокой инфицирующей способностью. При отсутствии противодействия они вызывают настоящие эпидемии. Так, например, произошло с вирусом RCE-1813.IER, известным также под названиями Jerusalem (Иерусалим), Black Friday (Черная пятница) и др. Классификационная таблица файловых вирусов, обнаруженных в СССР, приведена в прил.1.Группы файловых вирусов. Большинство распространенныx файловыx вирусoв имеют штаммы, незначительно отличающиеся от базовой версии. Поэтому можно говорить о группах файловых вирусов и, соответственно, групповых дескрипторах и групповых сигнатурах. В настоящее время количество найденных в СССР файловых вирусов превысило сто, поэтому запоминание их классификационных кодов существенно облегчается, если они используются с расширением, показывающим, к какой группе принадлежит данный вирус. Наиболее распространенными группами файловых вирусов являются следующие:
1. Венская группа (расширение VEN). Первым представителем этой группы был вирус С-648.VEN, обнаруженный в Вене примерно в 1987 г. Его дизассемблированный код был опубликован и распространялся в виде файла на дискетах с соответствующими антивирусными программами, поэтому попытки его модификации наиболее многочисленны. 2. Группа CASCADE (расширение CAS). Первым представителем этой группы был вирус RС-1701.CAS, обнаруженный примерно в середине 1988 г. 3. Иерусалимская группа (расширение IER). Первым представителем этой группы был вирус RCE-1813.IER, обнаруженный в Иерусалимском университете в конце 1987 г. Данная группа имеет значительное число штаммов (более десятка). 4. Группа TP-вирусов (расширение TP). Большинство представителей этой группы имеют характерный "хвост" длиной четыре байта, в котором за двумя первыми байтами (F4FAh) следует байт с 16-ричным значением версии вируса (как уже указывалось, этот байт является предпоследним байтом в зараженной программе). В свою очередь, эта группа разбивается на три подгруппы - "VACSINE" (TP-4, TP-5, TP-16), "музыкальной перезагрузки" (TP-24, TP-25) и "самоедов" (TP-34 и старше). Две последние подгруппы часто называют "Yankee Doodlе" (Янки дудль), поскольку они при определенных условиях проигрывают мелодию "Yankee Doodlе Dandy". Данная группа имеет наибольшее количество штаммов - порядка двух десятков (не все номера версий соответствуют реальным вирусам). 5. Группа Dark Avenger (расширение DAV). Представители этой группы, включающей в настоящее время около двух десятков вирусов, созданы известной болгарской техно-крысой, скрывающейся под псевдонимом Dark Avenger. Это изощренно написанные вирусы, многие из которых получили глобальное распространение. Большинство обладает более высокой инфицирующей способностью по сравнению с вирусами, входящими в предыдущие группы, поскольку заражают файлы не только при выполнении, но и при открытии и чтении. Некоторые представители этой группы относятся к опасным вирусам-вандалам.
Расширения для остальных групп вирусов приведены в прил.1. Следует отметить, что на базе некоторых вирусов начинают образовываться новые группы. Фактически это происходит с каждым вирусом, получившим значительное распространение.
Классификационный код файлового вируса. Как уже указывалось, файловые вирусы можно разделить на резидентные и нерезидентные, что во многом определяет поведение вируса и, прежде всего, его инфицирующую способность (резидентные вирусы обладают существенно более высокой инфицирующей способностью, чем нерезидентные). Поэтому код резидентных вирусов будем начинать с префикса R, например RC-1701.CAS.
Префикс. Помимо символа R, классификационный код файлового вируса может включать символы С и Е или их сочетание. Как уже указывалось, символы С и E определяют типы файлов, заражаемых данным вирусом. Например, если резидентный вирус заражает COM- и EXE-файлы, то его классификационный код будет иметь префикс RCE.
Количественная характеристика. К непосредственно наблюдаемым объективным свойствам файловых вирусов прежде всего относится приращение длины файлов при заражении. Это приращение, обусловленное наличием вируса, можно использовать для определения его типа. Здесь есть две основные проблемы. Во-первых, величина приращения может варьироваться в зависимости от длины заражаемого файла (многие вирусы при дописывании своего кода в конец заражаемого файла выравнивают свое тело на ближайший адрес, кратный 16, т.е. на границу параграфа). Во-вторых, величина приращения может не совпадать для COM-файлов и EXE-файлов. Поэтому в качестве количественной характеристики необходимо использовать нормированное приращение, называемое инфективной длиной (infective length) и определяемое по следующим правилам.
1. Для вирусов с префиксом С и CE (RC, RCE) характеристика классификационного кода принимается равной минимальному приращению длины зараженного COM- (для вирусов типа С и CE) или EXE- (для вирусов типа Е) файла. 2. Для вирусов, не изменяющих длину файла, указывается ноль, а через тире действительная длина тела вируса, например RC-0-346.LEH. 3. Для вирусов, маскирующих увеличение длины файла на зараженной машине к характеристике, определенной по правилам п.1, слева добавляется незначащий ноль (например, RCE-02000.DAV).
Отметим, что предложенный в п.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.IER), определенная таким образом инфективная длина совпадает с длиной кода вируса.
В качестве количественной характеристики классификационного кода могут применяться и другие параметры. На них стоит кратко остановиться, поскольку использованные в них подходы будут безусловно открываться и переоткрываться другими авторами. По-видимому, наиболее распространенными можно считать следующие два подхода.
1. Использование в качестве количественной характеристики длины кода вируса, определенной по константе, содержащейся во фрагменте, который обеспечивает дописывание кода вируса в заражаемый файл (эту константу можно сравнительно легко определить, анализируя дизассемблированный код вируса). Такая характеристика является объективной, поэтому ее часто используют разработчики антивирусных программ, достаточно хорошо владеющие языком ассемблера. Однако определенная таким образом характеристика в ряде случаев не совпадает с наблюдаемым значением приращения длин файлов, что снижает ее ценность с точки зрения использования при попытке классификации пользователем, не владеющим языком ассемблера, нового, еще неизвестного ему вируса. Hапример, для упомянутого выше иерусалимского вируса длина кода вируса составляет 1808 байтов, а приращение длины при заражении файлов типа СОМ - 1813 байтов, что объясняется дополнительным дописыванием в конец зараженного файла типа COM пятибайтовой константы "MsDos" (используется как признак зараженности файла). 2. Использование в качестве количественной характеристики приращения длины какого-то конкретного файла, полученного в результате его заражения. В ранних редакциях данной работы автор использовал этот подход, причем в качестве эталонного был выбран файл COMMAND.COM версии 3.3 MS DOS. Этот действительно удобный подход утратил свою привлекательность с появлением ряда вирусов, не заражающих командный процессор, а также распространением версии 4.0 MS DOS, в которой длина файла COMMAND.COM составляет 37637.
Суффикс. Возможны случаи, когда два разных вируса или два штамма одного и того же вируса имеют одинаковые префикс и характеристику. В этом случае, для того, чтобы получить уникальные классификационные коды вирусов, будем использовать в качестве суффикса одну букву. Например, в коде RС-1704f буква f означает "штамм-f".
Дескриптор файлового вируса. Используемые характеристики вирусов приведены в прил.1. Для удобства дескрипторы, приведенные в прил.1, разбиты на части.
Сигнатура файлового вируса. Как уже указывалось, для сигнатур целесообразно использовать шестнадцатиричные строки, соответствующие характерным последовательностям команд в теле вируса. Расположение сигнатур в прил.1 подчиняется правилу: если M-сигнатура входит в V-сигнатуру, то она приводится после V-сигнатуры. Как уже указывалось в предыдущей части, T-сигнатуры существуют не для всех файловых вирусов. Одной из наиболее удобных сигнатур для файловых вирусов являются J-сигнатуры. Их можно очень быстро определить с помощью любого отладчика (Debug, Turbo Debugger, AFD и т.д.). Пользователи, не умеющие работать с отладчиками, могут использовать для определения J-сигнатур программу "маскоискатель", входящую в пакет VL (см. прил.3).
Следует отметить, что контекстный поиск можно использовать не только для поиска зараженных вирусом программ, но и для поиска программ и файлов, уничтоженных или поврежденных вирусом. Например, вирус С-648.VEN при определенных значениях таймера вместо заражения программы уничтожает ее, записывая в первые 5 байтов строку, соответствующую переходу на подпрограмму перезагрузки BIOS. Для поиска уничтоженных вирусом программ можно использовать строку "EAF0FF00F0". Аналогично вирус RCE-1800.DAV уничтожает сектора на винчестере, записывая в первые байты сообщение "Eddie lives ... somewhere in time". По этому сообщению с помощью Norton Utilities или PC Tools можно выявить все пораженные сектора и определить, к каким файлам они относятся.