Я:
Результат
Архив

МЕТА - Украина. Рейтинг сайтов Webalta Уровень доверия



Союз образовательных сайтов
Главная / Учебники / Учебники на русском языке / Компьютерные науки / Компьютерная вирусология


Компьютерные науки - Учебники на русском языке - Скачать бесплатно


Кощеем Бессмертным и добрым молодцем.



2.13. Легенды о полезных вирусах

"Как часто мы промахиваемся
еще при выборе цели!"


Виктор Власов

Идея о том, что "подобное излечивается подобным", распространен-
ная среди средневековых знахарей, периодически реанимируется при-
менительно к компьютерным вирусам. Она принимает несколько основ-
ных форм, которые мы разберем последовательно.
Первой по распространенности является идея создания "вируса-за-
щитника" у вирусоподобной программы защиты. Следует отметить, что
эта идея использования для борьбы c вирусом другого вируса носится
в воздухе с момента появления первых вирусов, т.е. примерно с 1984
года (см. главу 1). Исторически, первые фаги создавались именно
как вирусы, охотящиеся на тот или иной вирус. Ничего хорошего из
этого не получилось. Опыт показал, что распространение вируса-
охотника существенно медленнее, чем вируса, за которым охотятся, и
эффективность такой погони невелика.
Эта идея весьма неудачна и в других своих модификациях. Напри-
мер, часто предлагается вариант "вируса-контролера", который при
заражении программы подсчитывает и запоминает ее контрольную сум-
му. Тогда при запуске зараженной программы вирус подсчитывал бы
контрольную сумму файла, из которого она была считана, и при
несовпадении сигнализировал бы о заражении. Вообще говоря, отсут-
ствие подобной проверки у это серьезный дефект MS DOS, и исправ-
лять его стоит именно на уровне операционной системы. Однако то-
тальное заражение "вирусом-контролером" неизбежно ведет к потере
работоспособности части программ. Кроме того, заражение всех про-
грамм таким "контролирующим" вирусом неизбежно приведет к увеличе-
нию размеров программ, причем заметному, поскольку каждой исполня-
емой программе придется сделать прививку. Если на диске 20M хра-
нится, скажем, 1000 программ и размер прививки составляет 1024
байта, то получается, что в среднем теряется мегабайт дискового
пространства. Реально, учитывая квантование дискового пространства
по кластерам, эти потери могут оказаться и больше, в особенности,
если на диске записано много программ, близких к размеру кластера.
Кроме того, процесс поиска очередной "жертвы" не так прост, и бу-
дет занимать некоторое время, замедляя загрузку программы. Поэтому
закрывать эту "дыру" предпочтительнее с помощью маленькой резиден-
тной программы, перехватывающей прерывание 21-4B. Возможно, пере-
хват следует выполнить сплайсингом, т.е. врезкой команды JMP в
оригинальный обработчик этой команды с тем, чтобы исключить воз-
можность того, что вирус предварительно перехватит 21 прерывание.
Кстати, перехватить 21 прерывание вирусу можно просто не дать, как
бы он не старался (на этой идее основаны сторожа CHECK21 и SBM у
см. прил.5). Получив управление, эта "заплатка" должна проверять
контрольную сумму. Для COM-файлов достаточно проверить первый
блок, а для EXE-файлов у заголовок и блок, куда передается управ-
ление. При этом для COM-файлов контрольную сумму можно хранить в
неиспользуемых байтах оглавления, а для EXE у в соответствующем
поле заголовка. Метод подсчета контрольной суммы должен быть пара-
метризуемым. Кстати, аналогичным способом можно закрыть другую
"дыру" в MS DOS, связанную с тем, что снятие атрибута READ ONLY не
требует подтверждения оператора. При этом можно предусмотреть воз-
можность отключения выдачи запроса с помощью специального, задава-
емого пользователем, пароля.
Другой идеей, связанной с поисками "полезных" применений компью-
терных вирусов, является автоматическое преобразование программы в
какую-то более приемлемую форму. Наиболее часто при этом предлага-
ется автоматическое сжатие программы. Действительно, имеется ряд
программ, выполняющих сжатие EXE-файлов, наиболее удачной среди
которых является LZEXE, которая обеспечивает экономию порядка 30%
на каждом EXE-файле при очень высокой скорости распаковки (практи-
чески не увеличивая время загрузки). Идее применить для этой цели
вирус уже более 15 лет и она высказывалась еще Ф.Коэном для обос-
нования своих работ. Теоретически здесь вроде бы "все чисто". Ви-
рус, заражая программы, свертывает их с помощью какого-то метода,
а при запуске развертывает. Однако с практической точки зрения эта
идея не выдерживает никакой критики. Дело в том, что включаемый в
сжатые программы распаковщик должен иметь минимальную длину (600
байтов для LZEXE), что в случае вируса обеспечить невозможно. Бо-
лее правильным подходом к реализации идеи сжатия информации на
диске, если уж добиваться "тотального" ее осуществления, является
написание специального дискового драйвера, который во-первых, не
включается в сжатую программу, а во-вторых, может сжимать не толь-
ко исполняемые файлы, а и все файлы, помеченные определенным атри-
бутом. Кстати, такие драйверы были реализованы и успешно применя-
ются. Однако широкое их распространение сдерживает тот факт, что
достигаемый эффект составляет порядка 20%, т.е. невелик и не ком-
пенсирует все возникающие при этом сложности и неудобства. Есть
все основания предполагать, что для "вируса сжатия" общий эффект
будет отрицательным, поскольку на каждой программе вирус должен
экономить не менее 12-16К (размер одного кластера, скажем, 4К +
собственный размер вируса, который для этого довольно сложного ви-
руса вряд ли составит меньше 8К), что для программ, меньших 64K,
т.е. для всех COM-файлов, практически нереально. Кроме того, если
не прибегать к каким-то ухищрениям, то вирусу придется хранить в
сжатой программе и достаточно объемную программу упаковки, которая
там совершенно не нужна, но которую нельзя выкинуть, т.к. иначе
вирус теряет способность к размножению. Ну и наконец, поскольку
часть программ при сжатии теряет работоспособность, то неясно как
предохранить такие программы от заражения.
Конечно, не исключены и какие-то другие возможные приложения
"полезного" вируса, однако такая форма коммуникации программ дол-
жна учитываться уже при разработке операционной системы, а экспе-
риментирование должно быть ограничено лабораторными экспериментами
на новых операционных системах. Возможно, что "вирусоподобные"
программы окажутся полезными в каких-то узких областях системного
программирования. Нельзя бросаться в "запретительство" только по-
тому, что в MS DOS вирусы создают серьезные проблемы. В то же
время автор убежден, что безвредных вирусов для MS DOS, как и для
любой операционной системы, ориентированной на широкий круг поль-
зователей, принципиально не существует. По определению, процесс
размножения вируса неконтролируем (иначе это, строго говоря, не
вирус). Если операционная система широко используется, то она не-
избежно будет "мигрировать" с одного компьютера на другой, попадая
туда, где ее совсем не ждали. А возникающая в ряде организаций при
обнаружении нового вируса паника зачастую наносит больший ущерб,
чем сам вирус, парализуя работу на несколько дней. Как бы ни была
прививка тщательно написанной, неизбежно окажется, что она вызыва-
ет потерю работоспособности части программ, какие-то тонкие взаи-
модействия с другими резидентными программами. В общем, пользова-
телей ожидают приключения. А ведь лекарство не должно быть опас-
нее, чем болезнь.
Принципиальной проблемой любой реализации "полезного" вируса яв-
ляется его переносимость. В силу своей природы вирусы сильно зави-
сят от версии операционной системы у значительно больше, чем обыч-
ные программы. Опыт показал, если зараженная вирусом программа ра-
ботоспособна в версии 3.3, то это совсем не означает, что она ока-
жется работоспособной в версии 4.0 или даже в версии 3.3 с
нестандартным командным процессором. В особенности плохо дело об-
стоит с резидентными программами, которые часто после заражения
теряют работоспособность. А ведь развитие операционной системы мо-
жет продолжаться десятилетиями. Получается, что при получении но-
вой версии операционной системы все программы нужно срочно лечить,
затем доставать новый штамм и заражать повторно. В общем, вопросов
здесь явно больше, чем ответов.
И, наконец, последний аргумент в пользу ограничения эксперимен-
тов по созданию "полезных" вирусов специализированными операцион-
ными системами связан с тем, что по определению "полезный" вирус
будет распространяться свободно. Тем самым, доступность механизма
размножения (центральной части любого вируса), делает его обще-
доступной базой для совсем небезобидных экспериментов. В частнос-
ти, он легко может быть модифицирован злоумышленником в троянскую
программу, которая, скажем, защищая от некоторых вирусов, сама пе-
риодически стирает FAT.
Накопленный автором опыт изучения вирусов позволяет сделать вы-
вод о том, что в существующих вариантах любой вирус является опас-
ной программой, неизбежно вызывающей побочные эффекты. Последние
связаны либо с повреждением заражаемых программ, либо с нарушением
функционирования операционной системы. Если сравнивать переноси-
мость вирусов с переносимостью резидентных программ, то обычно ви-
русы в большей степени зависят от версии операционной системы. При
размножении в среде отличной от "естественной" (например, более
поздняя версия операционной системы или нестандартный командный
процессор) вирусы, как правило, вызывают дополнительные побочные
эффекты вплоть до зависания операционной системы. Учитывая выска-
занные доводы трудно не прийти к мнению о том, что "безвредных"
вирусов не существует, а эксперименты по их созданию для MS DOS
связаны со значительным риском "выпустить джинна из бутылки".



















































3. КЛАССИФИКАЦИЯ КОМПЬЮТЕРНЫХ ВИРУСОВ

"Я никаким насекомым не радуюсь,
потому что я их боюсь,у призналась Алиса. у
т Но я могу вам сказать, как их зовут."
"А они, конечно, идут, когда их зовут?"
у небрежно заметил Комар.
"Нет, кажется, не идут."
"Тогда зачем же их звать, если они не идут?"
"Им это ни к чему, а нам все-таки нужно.
Иначе зачем вообще знать, как что называется"
Льюис Керрол

Cерьезность и долговременный характер проблемы защиты от компью-
терных вирусов уже практически ни у кого не вызывают сомнений. По-
этому необходимо организовать оперативный обмен информацией по
данной проблеме и наладить взаимодействие работающих в этой обла-
сти специалистов. Это, в свою очередь, требует решения ряда подза-
дач, одной из которых является выработка стандартной классификации
компьютерных вирусов.
Стандартная классификация существенно облегчает накопление и
распространение знаний в любой области, и компьютерные вирусы не
являются исключением. Применительно к компьютерной вирусологии она
помогает решению такой важной задачи, как однозначное определение
типа обнаруженного вируса. При этом должен использоваться ограни-
ченный набор сравнительно простых и непротиворечивых признаков, не
требующих проведения глубокого анализа зараженных программ и эле-
ментов операционной системы. Существующие в настоящее время клас-
сификации, как правило, основаны на "кличках" у распространенных
среди программистов названиях, отражающих то или иное свойство ви-
руса. Анализируя имеющиеся неформальные названия, можно выявить
четыре основные тенденции их образования. Первая основана на ука-
зании места обнаружения или разработки вируса (Lehigh, Jerusalem,
Vienna, Alameda), вторая у на содержащихся в теле вируса текстовых
строках (Vacsina, Eddie, Dark Avenger, Disk Killer, sUMsDos),
третья у на вызываемом вирусом эффекте (Time Bomb, DOS-62,
Cascade, Black Fridaу) и наконец, четвертая у на длине тела вируса
или на приращении длины файла при заражении (524, 648, 1800, 2000
и т.д.). При этом один и тот же вирус может иметь множество
названий, и новое название, использованное разработчиком той или
иной антивирусной программы, далеко не всегда соответствует новому
вирусу.
Для широко известных вирусов перечень названий напоминает список
имен арабского шейха. Например, автор встречал более десяти назва-
ний вируса, обнаруженного в декабре 1987 года в Иерусалимском уни-
верситете (RСE-1813 по предлагаемой ниже классификации), среди ко-
торых три: Israeli virus (Израильский), Jerusalem (Иерусалим) и
PLO (ООП) у относятся к первому типу, два названия (sUMsDos и
sU) у ко второму типу, и, наконец, еще четыре: Black Hole (Черная
дыра), Black Friday (Черная пятница), Friday 13 (Тринадцатая пят-
ница) и Вирус замедления у к третьему типу (данный вирус "выреза-
ет" в левом углу экрана черную дыру, удаляет все запускаемые файлы
по пятницам, пришедшимся на 13 число и, кроме того, примерно через
20 мин. после запуска зараженной программы искусственно замедляет
работу компьютера в несколько сотен раз).
Конечно же, такое многообразие названий создает определенные за-
труднения, особенно если учитывать, что данный вирус имеет не-
сколько отличающихся по деталям функционирования штаммов. Поэтому
необходим какой-то выход из создавшейся ситуации. На определенном
этапе среди разработчиков антивирусных средств наблюдалась стихий-
ная тенденция к использованию в качестве основных названий, приме-
няемых известным зарубежным полидетектором SCAN (фирма McAfee
Associates, США); однако он, естественно, запаздывает с классифи-
кацией болгарских вирусов, не говоря уже о вирусах отечественного
изготовления. Поэтому набор обнаруживаемых им вирусов не соответ-
ствует советским условиям, а используемые строки для контекстного
поиска (сигнатуры) часто неудачны (например, дают много ложных
срабатываний). При этом для ранних версий SCAN неоднократно наблю-
дались случаи, когда наиболее актуальные для нас вирусы могут
классифицироваться неверно (как это было с подгруппой Vacsine
группы ТР-вирусов) или попадали в две группы сразу (например,
Vacsine и Yankee Doodle). В последнем случае создавалось ложное
впечатление о том, что файл заражен двумя вирусами сразу. Кроме
того, недавно появился другой достаточно мощный полидетектор
TNTVIRUS (фирма CARMEL Software Engineering), в котором в ряде
случаев используются другие названия. Не исключено, что будет тре-
тий, четвертый и т.д. Поэтому необходим какой-то менее субъектив-
ный и учитывающий нашу информационную изолированность (отсутствие
сетей, слабое развитие и низкое качество телефонной связи) подход.



3.1. Принцип построения классификации

По мнению автора, основным требованием к приемлемой для всех
классификации является ее объективность, т.е. классификация должна
основываться на фиксированном наборе непротиворечиво измеряемых
или наблюдаемых признаков. В идеальном случае эти признаки должны
быть выбраны так, чтобы, скажем, два разработчика антивирусных
средств, независимо работающих в Киеве и Москве, использовали одно
и то же название для одинаковых вирусов и разные названия для раз-
ных вирусов. Это обеспечивало бы быстрое выявление новых штаммов
вирусов и новых, еще не исследованных, разновидностей. Очевидно,
что объективная классификация существенно облегчает систематиза-
цию, распространение и накопление знаний, а также выбор программ-
ных средств для борьбы с тем или иным вирусом.
Однако важно не только наличие классификации как таковой, а и
принятие ее в качестве стандартной. Уже сейчас отсутствие стандар-
тной классификации приводит к ряду нежелательных эффектов. Во-пер-
вых, у разработчиков наблюдается тенденция по-своему называть об-
наруженный или сравнительно малораспространенный вирус, а в даль-
нейшем продолжать использовать собственное название (см., напри-
мер, документацию к полифагу Aidstest Д.Н.Лозинского). В результа-
те получается, что каждый разработчик антивирусных средств исполь-
зует в определенной степени свою уникальную классификацию. Поэтому
для пользователей, столкнувшихся с вирусом, необнаруживаемым тем
или иным детектором или полифагом, часто неясно, относится ли он к
какой-то разновидности (один основной тип вируса обычно представ-
лен рядом штаммов со сходными, но не идентичными свойствами) уже
известного вируса, что дает возможность в значительной степени
предсказать его свойства, или это совершенно новый, еще не иссле-
дованный, вирус. Во-вторых, у самих пользователей наблюдается тен-
денция аппроксимировать общее количество вирусов общим количеством
названий, используемых в имеющемся у них наборе средств защиты и
прежде всего программ-фагов (т.е. программ, "выкусывающих" тело
вируса из зараженной программы, там самым восстанавливая ее в ра-
ботоспособном и близком к первоначальному состоянии). Такая апп-
роксимация приводит к существенной переоценке общего количества
имеющихся компьютерных вирусов, однако человек быстро "рационали-
зирует" этот факт путем разбиения одного реального вируса на не-
сколько "виртуальных", приписывая каждому свой набор признаков.
Так, автору приходилось сталкиваться с "самодельной" классифика-
цией, в которую вирусы С-648 и RСE-1813 входили в двух "ипостасях"
каждый, причем второй ипостаси вируса С-648 приписывались черты
вируса RСE-1813 (замедление работы компьютера).
В процессе чтения лекций и проведения семинаров по данной про-
блеме автором была выработана схема классификации, включающая три
основных элемента: код вируса (несколько напоминающий схему клас-
сификации транзисторов); дескриптор вируса (формализованный список
основных свойств); сигнатуру вируса (строка для контекстного по-
иска данного вируса в зараженной программе).
Классификационный код вируса. В предлагаемой схеме каждому виру-
су присваивается код, состоящий из буквенного префикса,
количественной характеристики и факультативного буквенного суффик-
са. Например, в коде RCE-1813c RСE у префикс, 1813 у корень (ха-
рактеристика), а c у суффикс.
Главным требованием к классификационному коду вируса является
возможность определения большинства входящих в него свойств на не-
зараженном компьютере. Выполнение каких-либо действий по исследо-
ванию вируса на зараженном компьютере является наиболее распрост-
раненной и одновременно наиболее грубой ошибкой, которую допускают
неопытные пользователи. Следует подчеркнуть, что любые действия на
компьютере, зараженном неизвестным вирусом, сопряжены с определен-
ным риском вызвать срабатывание троянской компоненты вируса. Кроме
того, резидентный вирус с целью маскировки может перехватывать за-
просы и искажать выдаваемую информацию. В настоящий момент изве-
стен ряд вирусов, обладающих указанным свойством. Например, группа
файловых вирусов, известная под названием TP-вирусов, начиная с
вируса TP-34 (члены этой группы имеют номера, хранящиеся в пред-
последнем байте вируса в 16-ричном виде) обладает интересным свой-
ством: при попытке трассировать зараженную программу резидентный
вирус выполняет "выкусывание" вируса из программы, "подсовывая"
отладчику уже излеченную программу. Аналогично бутовые вирусы,
входящие в группу пакистанских (Brain, Ashar), при попытке про-
смотреть бутсектор на зараженном компьютере "подсовывают" пользо-
вателю оригинальный бутсектор, сохраненный вирусом в одном из сек-
торов, помеченных как дефектный (и, тем самым, исключенным из рас-
пределения под файлы).
Префикс характеризует место расположения головы вируса и состоит
из букв и цифр, начинаясь с прописной буквы. В соответствии с этим
будем различать следующие типы вирусов (будем рассматривать только
реально существующие типы, а не все принципиально возможные):
1) файловые (голова вируса располагается в COM-, EXE-файлах и
оверлеях у символы С, Е в префиксе. При этом дополнительную букву,
отражающую заражение оверлеев в префикс вводить не будем, чтобы
избежать его переусложнения, а вынесем в дескриптор);
2) бутовые (голова вируса располагается в бутсекторе или блоке
MBR у символы B,D или M в префиксе);
3) пакетные (голова вируса расположена в пакетном файле, т.е.
представляет собой строку или программу на языке управления зада-
ниями операционной системы у префикс J). Отметим, что наряду с чи-
стыми вирусами, использующими одну среду, в настоящее время появи-
лись гибридные у сочетающие свойства файловых и бутовых вирусов.
Характеристика вируса представляет собой количественно измеряе-
мое свойство вируса, допускающее простое определение и отличающее-
ся для большинства типов вирусов. Например, для файловых вирусов в
качестве характеристики может использоваться величина приращения
длины файлов при заражении, хотя здесь имеются определенные труд-
ности.
Суффикс используется, когда два разных вируса или два штамма од-
ного и того же вируса имеют одинаковый префикс и характеристику. В
этом случае для того, чтобы получить уникальные коды, будем ис-
пользовать в качестве суффикса латинскую букву. Например, в коде
RС-1704f буква f означает "штамм-f".
Дескриптор вируса. Конечно, предложенный код вируса не охватыва-
ет, да и не может охватывать основные свойства вируса. В то же
время систематизация свойств вирусов представляет значительный ин-
терес как для разработчиков антивирусных программ, так и их поль-
зователей, поскольку позволяет интегрировать разнородные факты,
относящиеся к поведению того или иного вируса в систему, тем самым
облегчая их запоминание и сопоставление. Поэтому автором в каче-
стве второго элемента классификации предлагается так называемый
дескриптор.
Дескриптор представляет собой систематизацию основных характери-
стик вируса в закодированном виде. Кодировка состоит из групп сим-
волов, начинающихся с заглавной латинской буквы, за которой следу-
ют строчные латинские буквы или цифры. При этом заглавная латин-
ская буква определяет вид характеристики, а следующие за ней ма-
ленькие буквы или цифры у значение характеристики для конкретного
вируса. Например, в дескрипторе "Хab Yc Zdmt" имеются три свойст-
ва: Х у со значением "аb", Y у со значением "c", и Z у со значе-
нием "dmt".
Сигнатура вируса. Поскольку подавляющее большинство известных в
настоящее время вирусов допускают детектирование с помощью контек-
стного поиска, одной из важных задач классификации является со-
ставление списка строк для контекстного поиска (сигнатур). Знание
сигнатур позволяет проверять поступающее программное обеспечение
на их наличие, тем самым существенно повышая степень защищенности
ЭВМ. Стандартизация сигнатур особенно важна, когда вирус имеет
много штаммов, поскольку формальные схемы, подобные описанным выше
классификационному коду и дескриптору, обладают тем недостатком,
что некоторые штаммы будут неразличимы в заданном пространстве
признаков. В то же время сравнительно легко обеспечить уникаль-
ность сигнатуры, по крайней мере вирусов, известных в СССР, хотя
возможно создание вируса не имеющего ни одной сигнатуры, т.е. ко-
торый нельзя найти с помощью контекстного поиска.
Хотя в дальнейшем в качестве сигнатур используются только тек-
стовые строки, для них применимы и регулярные выражения. Последние
существенно устойчивее к некоторым мутациям и, кроме того, при
меньшей длине обеспечивают лучшее качество распознавания (меньшее
количество ложных срабатываний). Все это делает их предпочтитель-
нее простых текстовых строк. Версию приводимых ниже таблиц с сиг-
натурами из регулярных выражений автор надеется опубликовать не-
сколько позднее.
Очевидно, что сигнатура, соответствующая участку, содержащему
команды, надежнее сигнатуры участка, содержащего данные, например,
текстовые строки (последние могут быть модифицированы). Поэтому
выбор сигнатуры целесообразно выполнять на основе анализа дизас-
семблированного кода вируса. Длина сигнатуры не должна быть слиш-
ком большой, поскольку длинную сигнатуру труднее правильно набить
вручную. В то же время при недостаточной длине или выборе нехарак-
терных участков кода сигнатура будет вызывать много ложных сраба-
тываний, что весьма нежелательно. Правильная сигнатура не должна
содержаться ни в одной из наиболее распространенных в MS DOS сис-
темных программ, включая, конечно, сами компоненты MS DOS. Таким
образом, для выбора отвечающей указанным требованиям сигнатуры не-
обходим ряд экспериментов, а сами сигнатуры могут являться предме-
том сравнения и анализа.
В настоящее время имеется ряд программ, обеспечивающих детекти-
рование вирусов путем поиска в файлах соответствующих строк и ис-
пользуемые в них сигнатуры естественно "принять за основу". Наи-
большую ценность представляют строки, используемые в известном за-
рубежном детекторе SCAN фирмы McAfee Associates (США), поскольку
новые версии этого детектора появляются регулярно и охватывают
практически все вирусы, появляющиеся за рубежом. Из других зару-
бежных детекторов следует отметить VIRSCAN фирмы IBM и TNTVIRUS
фирмы CARMEL (Израиль). Для определенности назовем строку, исполь-
зуемую SCAN, М-сигнатурой, строку, используемую VIRSCAN, у I-сиг-
натурой, а строку, используемую TNTVIRUS, у С-сигнатурой. В то же
время необходимо отметить, что сигнатуры для ряда вирусов, распро-
страняющихся в нашей стране, таких как RCE-1600 (Voronez у Воро-
неж), C-1024 (Bebe у Бебе) и др. в существующих версиях этих про-
грамм отсутствуют, а сигнатуры для болгарских вирусов часто неу-
дачны. В таких случаях в статье используются выбранные автором
сигнатуры, которые обозначены буквой B (B-сигнатуры) или так назы-
ваемые J-сигнатуры. Последние представляют собой начальные байты
кода вируса (т.е. первые исполняемые команды тела вируса). Опыт
показывает, что они достаточно специфичны и в большинстве случаев
позволяют отличать один вирус от другого. При этом для файловых
вирусов, дописывающих свое тело в конец файла, будем считать, что
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" резервируется за так называемыми группами вирусов о ко-
торых сказано выше.
Дескриптор файлового вируса. Используемые характеристики вирусов
приведены в прил.1. Для файловых вирусов, неизвестных в СССР
(прил.3), информация комбинировалась из различных источников и
возможно содержит ошибки.
Сигнатура файлового вируса. Как уже указывалось, для сигнатур
целесообразно использовать шестнадцатиричные строки, соответствую-
щие характерным последовательностям команд в теле вируса. Располо-
жение сигнатур в прил.1 подчиняется правилу: если сигнатура M вхо-
дит в сигнатуру V, то она приводится после сигнатуры V. Как уже
указывалось в предыдущей части, сигнатуры T существуют не для всех
файловых вирусов. Одной из наиболее удобных сигнатур для файловых
вирусов являются J-сигнатуры. Их можно очень быстро определить с
помощью любого отладчика (DEBUG, Turbo Debugger, AFD и т.д.).
Пользователи, не умеющие работать с отладчиками, могут использо-
вать для определения J-сигнатур программу, входящую в пакет VL
(см. прил.5).
Следует отметить, что контекстный поиск можно использовать не
только для поиска зараженных вирусом программ, но и для поиска
программ и файлов, уничтоженных или поврежденных вирусом. Напри-
мер, вирус С-648 при определенных значениях таймера вместо зараже-
ния программы уничтожает ее, записывая в первые 5 байтов строку,
соответствующую переходу на подпрограмму перезагрузки BIOS. Для
поиска уничтоженных вирусом программ можно использовать строку
"EAF0FF00F0". Аналогично вирус RCE-1800 уничтожает сектора на вин-
честере, записывая в первые байты сообщение "Eddie lives ...
somewhere in time". По этому сообщению с помощью Norton Utilities
или PC Tools можно выявить все пораженные сектора и определить, к
каким файлам они относятся.



3.3. Классификация бутовых вирусов

Как и для файловых вирусов, будем выделять группы бутовых виру-
сов, а для каждого отдельного вируса у классификационный код, де-
скриптор и сигнатуры.
Группы бутовых вирусов. Большинство распространенныx бутовых ви-
русoв имеют штаммы, которые можно объединить в группы. В настоящее
время можно выделить следующие группы бутовых вирусов:
1) итальянская (первым представителем вирусов этой группы был
вирус, Bx1-1C, появившийся примерно в конце 1987 г.);
2) пакистанская (в нее входят вирусы Brain, Ashar; первым пред-
ставителем этой группы был вирус Dx3-E9 (Brain-86), разработанный
в 1986 г. в Лахоре (Пакистан));
3) новозеландская (родоначальником которой был вирус M-05 у
Stoned);
4) индийская (включающая большую группу вирусов, из которых в
СССР обнаружен один у Joshy).
Классификационный код бутового вируса состоит из префикса и
количественной характеристики.
Префикс. Поскольку все бутовые вирусы являются резидентными, ис-
пользование символа R в префиксе их классификационного кода неце-
лесообразно. Наиболее важным свойством бутовых вирусов, сопостави-
мым по значению с резидентностью файловых вирусов, является
спосoбность некоторых бутовых вирусов сохраняться в памяти после
"мягкой" пeрезагрузки путем нажатия последовательности клавиш
Ctrl-Alt-Del. Это свойство мы будем обозначать буквой W (survive
Warm reboot) в префиксе. Все бутовые вирусы заражают дискеты, од-
нако некоторые из них заражают винчестер, а другие нет. Вирусы,
инфицирующие только дискеты (Brain, Den Zuk) будем обозначать пре-
фиксом D.
При заражении бутсектора возможны два случая: заражение бутсек-
тора раздела С винчестера (префикс B) и заражение MBR у исполняе-
мой части таблицы разделов (префикс M). Поскольку одним из наибо-
лее распространенных случаев расположения хвоста бутового вируса
является его расположение в псевдосбойных кластерах (что легко оп-
ределить, просмотрев их содержимое с помощью Norton Utilities), то
для таких вирусов в суффикс будем включать букву х, за которой
следует количество этих кластеров, например Bx1.
Количественная характеристика бутового вируса. Выбор количест-
венной характеристики для бутовых вирусов имеет определенную спе-
цифику: если для файловых вирусов наиболее характерным признаком
заражения является увеличение длины файла, то для бутовых вирусов
аналогичную роль играет уменьшение размеров оперативной памяти,
доступной для MS DOS. Однако, как указывалось выше, важным требо-
ванием к выбору свойств вируса, используемых для классификации,
является возможность их определения на незараженной машине. Объем
оперативной памяти, сообщаемый MS DOS, этому критерию не отвечает.
Количество блоков памяти, используемых бутовым вирусом, этому кри-
терию не отвечает, поэтому от этой характеристики пришлось отка-
заться. Было решено использовать другую "доступную для обозрения"
характеристику бутового вируса у содержимое зараженного бутсектора
(точнее первых его байтов). Вместе с тем, анализ объема памяти,
сообщаемого MS DOS, является очень полезным диагностическим при-
емом, и при подозрении на заражение тем или иным вирусом, вызов
программы CHKDSK, сообщающей это значение (а также ряд других по-
лезных сведений, включая объем памяти, занятый на диске сбойными
кластерами), целесообразно вставлять в файл AUTOEXEC.BAT.
В качестве характеристики выбрано значение второго байта зара-
женного бутсектора, поскольку его содержимое различно для извест-
ных автору бутовых вирусов. В то же время содержимое этого байта
записывается в 16-ричной системе счисления, что создает определен-
ную несогласованность с характеристикой файловых вирусов, являю-
щейся десятичным числом. Именно поэтому в предлагаемом варианте
классификационного кода вируса прeфикс и характеристика разделяют-
ся знаком "-" (минус).
Следует еще раз подчеркнуть, что просматривать содержимое бут-
сектора следует только предварительно загрузившись с защищенной от
записи резервной дискеты с операционной системой и требуемыми ан-
тивирусными программами, поскольку сама операция просмотра на за-
раженной машине может либо перехватываться вирусом для подстановки
"чистого" бутсектора (так, например, маскируется вирус Brain), ли-
бо, что еще хуже, служить триггером для каких-то несанкционирован-
ных действий. Следует использовать так называемую "холодную" пере-
загрузку (с помощью клавиши RESET, если она есть, или путем выклю-
чения питания, если ее нет), а не "теплую" перезагрузку (нажатием
клавиш CTRL-ALT-DEL). Это требование основано на том факте, что
ряд бутовых вирусов перехватывает прерывание от клавиатуры и при
"теплой" перезагрузке MS DOS сохраняет себя в памяти, даже если
перезагрузка идет с защищенной системной дискеты.

Дескриптор бутового вируса. Структура дескриптора бутового виру-
са приведена в прил.2.
Сигнатура бутового вируса. Для бутовых вирусов сигнатуры M, I и
B будут использоваться аналогично тому, как это было для файловых
вирусов, а J-сигнатура у в несколько измененном виде. В отличие от
J-сигнатуры для файловых вирусов, в которой байты, соответствовав-
шие команде перехода, не учитывались, здесь они будут учитываться.
Это связано с тем, что первой командой бутсектора всегда является
команда обхода таблицы параметров диска (см. прил.6), размер кото-
рой, в отличие от размера заражаемого файла, не меняется. Поэтому
для бутовых вирусов мы преимущественно будем использовать J-сигна-
туру, состоящую из первых трех байтов бутсектора и лишь при необ-
ходимости дополнять ее, начиная с байта, на который выполняется
команда перехода.
Для незараженного бутсектора MS DOS версии 3.3 J-сигнатура равна
EB3490h (объектный код команды JMP, служащий для обхода таблицы
параметров). Ценность этой эталонной J-сигнатуры состоит в том,
что она легко запоминается. Поэтому несовпадение первых трех бай-
тов анализируемого бутсектора с указанной эталонной J-сигнатурой
свидетельствует о зараженности бутсектора (отметим, что совпадение
еще ни о чем не говорит). В прил.2 приведены краткие сведения о
бутовых вирусах, обнаруженных в СССР.



3.4. Использование классификационных таблиц

в качестве части документации
к антивирусным программам
В заключение отметим, что предлагаемая классификация является,
по существу, одной из первых попыток стандартизации, поэтому она,
конечно, не лишена недостатков, и естественно, должна совершенст-
воваться. В то же время любой классификации присущи те или иные
недостатки и ожидание идеальной классификации глубоко ошибочно.
Здесь, как и в большинстве областей программирования (например, в
языках высокого уровня), пожалуй, важнее во-время сделать ставку
на какой-то более или менее приемлемый вариант, чем самому тратить
время и силы на разработку более удачной альтернативы.
Поэтому разработчикам антивирусных программ имеет смысл исполь-
зовать описанную классификацию при подготовке документации и выда-
че диагностических сообщений, даже имея некоторые возражения к
принятому подходу. Поскольку автор регулярно обновляет приведенные
таблицы вирусов, основанные на предложенной классификации, их ис-
пользование в качестве части документации к распространяемым анти-
вирусным программам не только повысит полноту и качество послед-
ней, но и сэкономит время на последующую корректировку, которая
может быть выполнена просто путем замены предыдущей редакции таб-
лиц на текущую.
Использование в антивирусных программах кода и дескриптора
вируса упрощает программирование ряда компонент и создает
некоторые нетривиальные возможности. В простейшем случае
дескриптор вируса можно рассматривать как способ упаковки файла
оперативной подсказки сведений о найденном вирусе. При выдачи
информации о вирусе по клавише HELP (F1) содержащуюся в нем
достаточно подробную информацию можно развернуть до практически
полного описания найденного вируса путем замены значения каждого
из полей дескриптора на соответствующие ему стандартные фразы на
русском или английском языке. В этом случае, вместо двух-трех
малоинформативных фраз, выдаваемых на экран в виде оперативной
подсказки (по принципу "получи и отвяжись"), пользователь получает
действительно полезную информацию.











4. НЕРЕЗИДЕНТНЫЕ ФАЙЛОВЫЕ ВИРУСЫ,
ОБНАРУЖЕННЫЕ В СССР


Ниже приводятся описания нерезидентных файловых вирусов, изу-
ченных автором на момент выхода данной работы. В целях системати-
зации описываемые вирусы разбиты на несколько групп. Как для самих
групп, так и вирусов внутри группы изложение ведется в основном в
хронологическом порядке (по появлению в Киеве).



4.1. Венская группа

Венская группа берет свое начало с вируса С-648. Для данной
группы характерен механизм поиска зараженных файлов, который вы-
полняется во всех каталогах, сцепленных командой PATH, и использо-
вание поля секунд для отметки зараженных файлов. В настоящее время
включает три штамма, наиболее распространенным из которых является
исторически первый у С-648. Указанные штаммы отличаются по методу
включения троянской компоненты, которая вызывает уничтожение COM-
файлов путем перехода на подпрограмму перезагрузки операционной
системы. Большинство штаммов используют для этой цели текущее зна-
чение таймера (см.ниже), однако некоторые (которыми мы не распо-
лагаем) у значение даты создания файла. Наиболее распространены
штаммы с длинами 648, 623, 627 байтов.


4.1.1. Базисный вирус С-648 (Vienna у Вена)

Название вируса С-648 связано с тем, что после запуска заражен-
ной программы вирус активируется и ищет файл-жертву. Если файл-
жертва был найден в определенный момент времени (среди последних
трех битов 16-ричного представления секунд нет ни одной единицы),
то вместо заражения программы, содержащейся в этом файле, С-648
вставляет в начало этой программы команды перехода на подпрограмму
"теплого рестарта", делая тем самым программу в соответствующем
СОМ-файле неработоспособной. "Убитые" вирусом программы не могут
быть восстановлены без наличия информации о начале программы, а
зараженные могут "излечиваться" с помощью соответствующего фага.
Формально вирус С-648 у файловый нерезидентный вирус, поражающий
файлы типа СОМ. Функционирует на версиях MS DOS, начиная с 2.0.
Стратегия заражения у поиск файла с расширением СOM в каталогах,
сцепленных в PATH. Заражение СOMMAND.COM выполняется так же, как и
заражение любого другого COM-файла: никаких механизмов по поиску
размещения командного процессора вирус не содержит. При заражении
он дописывается в конец программы и одновременно вставляет в пер-
вые три байта COM-файла команду перехода на тело вируса. При этом
размер файла увеличивается на 648 байтов, дата создания файла и
атрибуты файла не меняются. Заражение выполняется однократно. Ми-
нимальный размер заражаемых файлов у 10 байтов (0Ah), максималь-
ный у (FA00h). Поскольку вирус определяет тип файла только по рас-
ширению, заражение EXE-файлов с расширением COM выполняется непра-
вильно. Это приводит к потере работоспособности зараженных файлов
указанного типа: их запуск обычно ведет к зависанию системы. После
обработки такой программы фагом работоспособность восстанавливает-
ся.

Для отличения зараженных файлов от незараженных используются
младшие четыре бита времени создания файла (для зараженных файлов
они все устанавливаются в единицу, что соответствует несуществую-
щему количеству секунд у 62 с.). Следует отметить, что как команда
DIR, так и распространенные оболочки типа Norton Commander не по-
казывают поле секунд, выдавая содержимое каталога на экран. Поэто-
му это изменение достаточно хорошо скрыто от пользователя.
При запуске инфицированной программы управление сначала получает
сам вирус. Получив управление, вирус устанавливает свою область
передачи данных, осуществляет поиск файлов типа COM на всех дисках
и во всех каталогах, сцепленных с помощью команды PATH. При нахож-
дении такого файла вирус прежде всего проверяет его время созда-
ния, по которому определяет, заражен уже этот файл или нет. Если
файл отмечен как незараженный и его длина больше десяти байтов, то
он рассматривается как "потенциальная жертва" и вирус приступает к
его заражению. При этом вирус не проверяет, не является ли файл на
самом деле файлом типа EXE (начинающимся с "MZ"), ошибочно или на-
меренно "замаскированным" под файл типа COM. Указанные файлы в
случае заражения уничтожаются.
Следует отметить, что защита файлов атрибутами READ ONLY и
HIDDEN в MS DOS недостаточно эффективна, поскольку вирус легко из-
меняет эти атрибуты. Сначала вирус запоминает атрибуты, дату и
время создания заражаемого файла. Затем сбрасывает атрибут READ
ONLY, если он был установлен, открывает файл на запись и считывает
текущее время. Если выданное по прерыванию 21-2С содержимое реги-
стра DH содержит в последних трех битах нули (т.е. системные часы
показывают 0, 8, 16, 24, 32, 40, 48 или 56 с.), то вирус предпри-
нимает попытку уничтожения "потенциальной жертвы". Иначе выполня-
ется попытка заражения. Другими словами, приблизительно в 12% по-
раженных вирусом программ уничтожены первые пять байтов.
Уничтожение выполняется путем записи в первые пять байтов коман-
ды перехода на подпрограмму перезагрузки BIOS (переход по адресу
F000:FFF0). В дальнейшем при попытке выполнить "пораженную" про-
грамму вместо ее выполнения будет выполняться перезагрузка MS DOS.
Если при этом программа входит в AUTOEXEC.BAT, то при загрузке
произойдет зацикливание и с винчестера или данной системной диске-
ты загрузиться нельзя без корректировки AUTOEXEC.BAT.
При заражении, которое выполняется, только если хотя бы один из
последних трех битов времени создания файла равен единице, вирус
переписывает свой код в конец файла и заносит в первые три байта
команду JMP для передачи ему управления. После этого С-648 восста-
навливает дату, время и атрибуты уже зараженного файла, и управле-
ние передается программе-вирусоносителю. При восстановлении даты
количество секунд устанавливается равным 62 (т.е. последним четы-
рем битам присваиваются значение 1111). По этому значению вирус
отличает зараженные файлы от незараженных, что обеспечивает
однократность заражения. Впрочем, при архивировании зараженных
файлов поле секунд может теряться (количество секунд во времени
создания файла не выдается ни одной командой MS DOS), что приведет
к повторному заражению.
Поскольку вирус C-648 не проверяет, находится ли заражаемый или
уничтожаемый файл на защищенной дискете или нет, то в этом случае
выдается обычное сообщение операционной системы:

Write protect error writing device <элог.имя.устр.>
Abort, Retry, Ignore, Fail?

в ответ на которое неопытные пользователи часто снимают защитную
заклейку прорези дискеты, тем самым разрешая вирусу заразить оче-
редную программу. Этот эффект представляет интерес как наглядная
демонстрация того непреложного факта, что человек является важней-
шим звеном в любой системе обеспечения безопасности.

Исторические замечания. Данный вирус появился в США в 1987 г. и
получил широкое распространение в Западной Европе в 1988 г. Об
этом, в частности, свидетельствует тот факт, что среди средств
борьбы с этим вирусом имеются немецкие, польские, чешские и авст-
рийские программы.
В СССР вирус С-648 появился приблизительно в августе 1988 г.,
когда он был обнаружен в лаборатории Института программных систем
(Переславль-Залесский). Возможно, он попал туда во время проведе-
ния институтом (совместно с ЮНЕСКО) Международного детского компь-
ютерного летнего лагеря. Поскольку этот вирус к середине 1988 г.
был уже довольно распространен в Западной Европе, включая соцстра-
ны, он несомненно завозился в СССР неоднократно, c различного рода
новыми версиями программного обеспечения и компьютерными играми. В
Киеве этот вирус появился в конце 1988 г., а наибольшее распрост-
ранение получил примерно в апреле 1989 г., после чего его эпидемия
пошла на убыль, что прежде всего связано с достаточной распростра-
ненностью средств защиты от этого вируса. Одним из переносчиков
этого вируса в Киеве являлся адаптированный вариант программы
SideKick (шестерка). К сожалению, по стране распространяется от-
комментированный исходный текст данного вируса, который, в частно-
сти, был включен В.Бончевым в его "вирусную" дискету. Доступность
исходных текстов сделало этот вирус базой для многочисленных штам-
мов и несколько таких штаммов уже выявлено в СССР(см. ниже описа-
ние вирусов С-534 и С623).
Первыми антивирусными программами, попавшими в Киев и ориентиро-
ванными на борьбу с этим вирусом, были зарубежные программы, рас-
пространявшиеся в виде случайного набора набора на дискете. Среди
них наибольшей популярностью на начальном этапе пользовались де-
тектор DIAG и фаг CURE Д.Сопчека (ПНР), DR_NO, FAG_OM и др. Отече-
ственные средства появились несколько позднее, однако со временем
основным средством борьбы стали такие отечественные полифаги, как
AIDSTEST, DOCTOR, VDEATH и др.
Неформальные названия. Данный вирус имеет не менее десятка не-
формальных названий. Среди них: Vienna (Вена), DOS-62, Time Bomb
(Часовая мина), Flea (Блоха), вирус перезагрузки, VHP-648',
RESTART (Рестарт у О.Котик), Rebooter (Перезагрузчик), P-virus,
Omega (Омега). Полидетектор SCAN называет данный вирус "Vienna




Назад


Новые поступления

Украинский Зеленый Портал Рефератик создан с целью поуляризации украинской культуры и облегчения поиска учебных материалов для украинских школьников, а также студентов и аспирантов украинских ВУЗов. Все материалы, опубликованные на сайте взяты из открытых источников. Однако, следует помнить, что тексты, опубликованных работ в первую очередь принадлежат их авторам. Используя материалы, размещенные на сайте, пожалуйста, давайте ссылку на название публикации и ее автора.

281311062 © insoft.com.ua,2007г. © il.lusion,2007г.
Карта сайта