Что такое полиморфные вирусы почему их сложно обнаруживать
Что такое полиморфные вирусы почему их сложно обнаруживать
Выделяют несколько уровней полиморфизма, используемых в вирусе:
— самые простые олигоморфные вирусы. Они используют постоянные значения для своих расшифровщиков, поэтому легко определяются антивирусами;
— вирусы, имеющие одну или две постоянные инструкции, которые используются в расшифровщиках;
— вирусы, использующие в своем коде команды-мусор. Это в своем роде ловушка от детектирования, помогает запутать собственный код. Но такой вирус может быть засечен с помощью предварительного отсеивания мусора антивирусом;
— использование взаимозаменяемых инструкций с перемешиванием в коде без дополнительного изменения алгоритма расшифровки, помогает полностью запутать антивирус;
Полиморфизм стал весьма распространенным лишь благодаря расшифровщику. Удобно то, что один файл может работать со многими вирусами. Этим и пользуются вирусописатели, используя чужой модуль. В полиморфы нередко встраивают код, который выполняется в зависимости от определенной ситуации. Например, при детектировании вируса он может вызвать процедуру самоуничтожения. Как самого себя (частичная или полная безвозвратная модификация кода), так и системы (массовое заражение системных файлов без возможности восстановления). Это очень осложняет поиск антивируса от полиморфного вируса, до антивирусной лаборатории вирус доходит уже в нерабочем состоянии.
Первый полиморфный вирус появился в 1990 году и назывался Chameleon. Он вписывал свой код в конец COM-файлов, а также использовал два алгоритма шифрования. Первый шифрует тело по таймеру в зависимости от значения заданного ключа. Второй использует динамическое шифрование и при этом активно мешает трассировки вируса. Он не был опасен, хотя содержал в коде ряд ошибок, из-за которых генератор не мог расшифровать тело вируса. При этом исполняемый файл переставал функционировать. После длительного простоя системы Phantom выводил на экран видеоизображение с надписью. Она гласила, что компьютер находится под наблюдением опасного вируса.
Параллельно вирусам появлялись и полиморфик-генераторы, одним из которых был MtE, открывший целые вирусные семейства. Он уже использовал зеркальные функции, чем затруднял своё детектирование. Теперь вирусологу не нужно было писать свой дешифратор, а лишь воспользоваться MtE. MtE-вирус был перехвачен антивирусной лабораторией, поэтому быстрый выход защиты от первого серьёзного полиморфного вируса защитил множество рабочих станций от заразы.
Другое семейство вирусов Daemaen записывает себя в COM, EXE и SYS файлы. С виду эти вирусы выглядят вполне безопасно, но на самом деле происходит запись в MBR винчестера и в boot-сектора дискет, а тело заразы хранится в последних секторах.
Ремонт компьютеров
Ремонт компьютеров, выезд мастера в течении часа!
Ремонт и настройка компьютера производится в основном, в течении сегодняшнего дня, иногда и ночью!
Ремонт компьютера
Полиморфный вирус
Полиморфный вирус представляет собой вирус, который шифрует свой код в процессе заражения системных секторов диска или файлов, благодаря чему может легко обойти антивирусную защиту. Он не просто модифицирует свое тело различными способами, но и снабжен кодом генерации шифровщика/расшифровщика, чем отличается от простых шифровальных вирусов. Поэтому шифрующийся полиморфный вирус обнаружить очень сложно. Сегодня эта разновидность вирусов считается наиболее опасной.
Принцип действия полиморфных вирусов
Полиморфные вирусы используют случайные пароли и другие способы шифрования, что затрудняет или делает невозможным обнаружение вируса. Вместе с тем постоянно изменятся и сам модуль изменения кода. Возможно изменение части кода путем замены на аналогичные участки, либо же разбавление кода различным мусором. Перед началом действия данный вирус расшифровывается при помощи особой системы расшифровки, которая преобразует зашифрованные данные в обычные. Для расшифровки тела вируса система расшифровки получает управление машиной. Затем управлять компьютером начинает расшифрованный вирус.
Существуют следующие виды полиморфных вирусов:
1. Олигоморфные вирусы – самый простой вид полиморфных вирусов, который легко обнаруживается антивирусами, поскольку он применяет для своих расшифровщиков постоянные инструкции. К подобным вирусам относится Slovakia, Cheeba, Whale, December_3 и V-Sign.
2. Вирусы, использующие при расшифровке одно или два постоянных значения. В отличие от первых, они имеют более сложную структуру. Среди них можно выделить Phoenix, ABC, Stasi, Otario, DM, Seat, Jerusalem, Sumi, PC-Flu и Flip.
3. Вирусы, которые для того, чтобы запутать свой код, применяют команды-мусор. Чтобы выявить данный вирус, нужно при помощи антивируса сначала избавиться от мусора. К примерам таких вирусов можно отнести V2Px, Tequila, DeWhite и StarShip.
4. Вирусы, которые практически невозможно выявить обычным антивирусом, поскольку их значения, перемешиваясь в коде, постоянно заменяют друг друга.
При этом каждый из вышеперечисленных полиморфных вирусов захватывает различный размер зараженных файлов.
Защита от полиморфных вирусов
Полиморфные макро-вирусы. (Часть первая)
Введение
Первый вопрос, который приходит на ум – что именно классифицирует макровирусы, как полиморфные? Большинство макро-вирусов очень примитивны и не относятся к полиморфным. Однако есть несколько более сложных экземпляров зашифрованных вирусов, некоторые из которых даже имеют полиморфное кодирование.
Ранние Ridiculo-морфы
Первым, еще детским, шагом к полиморфизму был Outlaw. Фактически, его даже нельзя назвать полноценным полиморфом. Сам вирусный код не изменялся ни на байт, менялось только название несущего макроса. Поэтому, Outlaw полиморфом не являлся, хотя его первоначально и отнесли именно к этому классу вирусов. Все дело в том, что ранние (преимущественно, WordBasic-основанные) защитные программы, созданные для борьбы с макровирусами, проверяли только имя макроса (примитивно, но именно так и обстояло дело!) и подобная смена названия макроса позволяла довольно долго водить за нос антивирусы. Позже, когда ранние антивирусы сменились более совершенными, проверяющими код или логику программы, обнаружилось, что Outlaw не является полиморфом, а относится к обычным, неморфическим макровирусам.
Вирусы, использующие вставки цифрового мусора
‘SiR DySTyKSDINFECTEDINFECTED.DOC5/22/2001 6:04: 06 AM
On Error Resume Next
‘SiR DySTyKSDINFECTEDINFECTED.DOC5/22/2001 6:04:06 AM
Options.SaveNormalPrompt = 0
‘SiR DySTyKSDINFECTEDINFECTED.DOC5/22/2001 6:04:06 AM
Options.ConfirmConversions = 0
А вот этот же фрагмент в другом зараженном файле:
‘SiR DySTyKSDGOAT1GOAT1.DOC5/22/2001 6:04:16 AM
On Error Resume Next
‘SiR DySTyKSDGOAT1GOAT1.DOC5/22/2001 6:04:16 AM
Options.SaveNormalPrompt = 0
‘SiR DySTyKSDGOAT1GOAT1.DOC5/22/2001 6:04:16 AM
Options.ConfirmConversions = 0
Эта методика привела к совершенствованию антивирусов – в ответ на нее, в антивирусные сканеры была добавлена технология игнорирования строк-коментариев при просмотре кода.
С каждым шагом инфицирования запрашивался макрос FileSaveAs и вирус несколько видоизменял свой код. Добавлялись случайные числа в виде комментариев и добавлялись дополнительные пустые строки. Через несколько стадий макрос напоминал следующий фрагмент:
dlg.Format = 1
‘ 0.38007424142506
jqp$ = FileName$()
Но все равно вскоре появились макровирусы, использующие вставки всякого мусора, которые смогли обойти существовавшие процедуры нормализации кода. Для примера можно привести макровирус Polymac.A, также известный под «кличкой» Chydow.A, который перемешивал свой значимый код (выделен зеленым шрифтом) с произвольно составленными ничего не значащими в большинстве случаев командами:
Loop While DjFeUOL2kkwJCIE6 ActiveDocument.Save
DwFNV1qyGsV4 = 187
For LU1VyC6 = 8 To 54 Step 3:
If dDGlb7 <> Rnd * 28 Then
Do
PjN7FDkGwkU7 = PjN7FDkGwkU7 + 6
Loop While PjN7FDkGwkU7 ActiveDocument.Close: TzLPGXn3lZ6 = 1
В дополнение к вышеописанному, в данном вирусе применилась достаточно революционная по тем временам новинка – в командах заменялось написание некоторых символов – с заглавных на строчные и наоборот. Ну и, к тому же, вирус использовал опыт предшественников и, особенно в первых модификациях, активно использовал вставку комментариев в код. Надо признать, что различные экземпляры данного вируса даже в одинаковых поколениях были крайне непохожи друг на друга. Вирус был достаточно успешным и распространенным, но только до тех пор, пока в антивирусах в процедурах нормализации кода не были учтены все применяемые новинки.
Все, этого было бы достаточно для сканеров и подсчета контрольных сумм. Но, как вы, конечно, понимаете, это – отнюдь не быстрый процесс, и могло пройти несколько недель (а то и месяцев!), прежде чем был бы выявлен уникальный, характерный для данного макровируса отпечаток кода. И все это время вирус абсолютно беспрепятственно размножался бы по всей планете.
Code Collectors
Вскоре вирусы научились генерировать не только случайный цифровой мусор, но и части собственного значимого вирусного кода. Этот тип вирусов известен как Code Collectors. Примером такого типа вирусов может служить вирус Hope.AF. Его особенностью являлась способность альтернативной замены собственных фрагментов – функций и переменных. К примеру, объект ActiveDocument мог быть представлен в теле вируса случайным образом несколькими способами:
При каждом копировании производился случайный выбор одного из вариантов:
Фактически, логика программы от этого не менялась, происходили лишь небольшие, но многочисленные флуктуации относительного первоначального варианта. Но именно это и не позволяло привести код в единый нормальный вид или выделить характерную строку (хотя, в нашем примере можно выделить длинный фрагмент, но для этого необходимо предварительно провести декомпиляцию).
Вирусы данного класса являлись интересной разработкой, требующей от разработчиков антивирусных программ немалых затрат времени и ресурсов. Но, в итоге, все рано в каждом конкретном случае находились достаточно длинные фрагменты, пригодные для CRC-детектора.
Статичное кодирование
Наверное, читая эту статью и встречая описания различных способов изменения кода, вы уже сами обдумали этот самый очевидный вариант изменения кода – шифрование. Действительно, вся история полиморфных вирусов неразрывно связана с кодированием. Еще в славную эпоху седых 286-ых и 386-ых компьютеров кодированные полиморфы уже вовсю бегали по планете.
Конечно, мысль о кодированных макровирусах пришла в голову не только вам. Многие макровирусы используют статичное шифрование частей вирусного кода, применяя для этого, как правило, какой-нибудь простенький алгоритм (XOR или Shift). Ключ шифрования может изменяться от поколения к поколению, но, как правило, не претерпевает сильных изменений. Здесь в качестве примера можно привести макровирус Antisocial.F, в котором механизм кодирования и ключ к нему хранится в комментариях в коде. В процессе размножения код меняется, но также выделен в комментариях к каждому конкретному экземпляру вируса.
В принципе, сам код подобных вирусов, за исключением комментариев, для каждого вируса не меняется, и, теоретически, его легко выявить CRC-детекторами. Существует небольшое затруднение – предварительно код вируса надо расшифровать. При использовании примитивных механизмом кодированиях затруднение, действительно, небольшое, так как в комментариях находится и ключ шифра. Но в большинстве случаев процесс расшифровки является очень тяжелым и длительным по времени процессом, и не существует единого легкого способа получения макрокода. Но только после того, как разработчикам антивирусов удается изучить механизм кодирования, антивирусы становятся способны проводить расшифровку кода и выявлять подобные вирус. А до той поры применяется другой путь – защитные программы эмулируют запуск программы в «sandbox» и проводят изучение ее действия. На основании этого, антивирусные программы пытаются выяснить, является ли данный код вирусом или нет.
Различные смены названий
Разнообразные вирусы, использующие смену названий, были еще одной интересной попыткой создания полиморфного вируса. Самыми известными вирусами этой серии было семейство IIS. Так, IIS.I использовал различные методики смены названий и функций. По-видимому, автор вируса предпринял попытку изменять все обозначения, используемые в вирусном коде, но по каким-то неизвестным причинам (программные недоработки или элементарная забывчивость) не смог изменить часть из них. Вирус генерирует разнообразные имена, которые используют символы ASCII кода (от 130 до 204). Получаемый код труден для чтения и восприятия, как в приведенном примере:
Вирус хранит свой код в глобальном шаблоне во временных строках буфера. Там же содержится массив разнообразных имен – старых и новых, которые могут встретиться в процессе мутации. Имена выбираются из набора, хранящегося внутри вирусного кода. Существует целая серия строк-комментариев, в которых хранятся эти постоянно изменяющиеся обозначения, с соответствующими инструкциями к ним. После перебора всех имеющихся случайных обозначений, вирус генерирует новые. Новые обозначения имеют случайную длину (от 2 до 22 символов) и состоят из случайных символов ASCII с кодом в пределах от 130 до 204. Новые имена также хранятся в массиве в случайном месте
В отличие от других полиморфов, IIS.I даже осуществлял проверки для избежания конфликтов названий. Проверка проводилась по двум причинам: (обе могут вести к ошибке):
После того, как вирус проводил проверку и решал, что новое обозначение годится, вирус начинал поиск в буфере строчка за строчкой. Строки, содержащие свой код, вирус отмечал специальными метками из ASCII таблицы с символами менее 65. Как только вирус находил свою старую переменную, он заменял ее на новую, после чего процесс продолжался.
If Left(var_1, 1) = «‘» Then
var_3(var_2, 1) = Mid(var_1, 2, Len(var_1))
Но тут всегда существовала опасность, что вирус мог и не записывать свой код в пустые модули, а дописывать в уже существующие (примером являются Win32 вирусы EPO viruses). В этом случае метка переменной вируса могла начинаться не с, допустим, var_1, а с var_234 и даже var_7458. В таком случае сканер должен искать четкое соответствие между названием переменной и ее нахождением в макрокоде и удалять исключительно переменные, имеющиеся в базе данных вируса. Здесь очень важно, с одной стороны, не пропустить вирусных компонентов, а с другой, очень осторожно подходить к их замене, иначе результатом будет потеря огромных массивов данных и сбой в работе основной программы, что никак не допустимо для антивирусных программ.
Заключение
В этой статье рассмотрены ранние этапы создания полиморфизма в вирусах, эволюция полиморфных макровирусов, используемые вирусные технологии и их методы обнаружения. В следующей статье будут рассмотрены первые серьезные макровирусы, которые действительно сумели достичь полиморфизма, их эволюция до настоящего времени, наблюдающиеся пути дальнейшего развития, а также метаморфы – вирусы будущего.
Полиморфные вирусы
Выделяют несколько уровней полиморфизма, используемых в вирусе:
— самые простые олигоморфные вирусы. Они используют постоянные значения для своих расшифровщиков, поэтому легко определяются антивирусами;
— вирусы, имеющие одну или две постоянные инструкции, которые используются в расшифровщиках;
— вирусы, использующие в своем коде команды-мусор. Это в своем роде ловушка от детектирования, помогает запутать собственный код. Но такой вирус может быть засечен с помощью предварительного отсеивания мусора антивирусом;
— использование взаимозаменяемых инструкций с перемешиванием в коде без дополнительного изменения алгоритма расшифровки, помогает полностью запутать антивирус;
Полиморфизм стал весьма распространенным лишь благодаря расшифровщику. Удобно то, что один файл может работать со многими вирусами. Этим и пользуются вирусописатели, используя чужой модуль. В полиморфы нередко встраивают код, который выполняется в зависимости от определенной ситуации. Например, при детектировании вируса он может вызвать процедуру самоуничтожения. Как самого себя (частичная или полная безвозвратная модификация кода), так и системы (массовое заражение системных файлов без возможности восстановления). Это очень осложняет поиск антивируса от полиморфного вируса, до антивирусной лаборатории вирус доходит уже в нерабочем состоянии.
Первый полиморфный вирус появился в 1990 году и назывался Chameleon. Он вписывал свой код в конец COM-файлов, а также использовал два алгоритма шифрования. Первый шифрует тело по таймеру в зависимости от значения заданного ключа. Второй использует динамическое шифрование и при этом активно мешает трассировки вируса. Он не был опасен, хотя содержал в коде ряд ошибок, из-за которых генератор не мог расшифровать тело вируса. При этом исполняемый файл переставал функционировать. После длительного простоя системы Phantom выводил на экран видеоизображение с надписью. Она гласила, что компьютер находится под наблюдением опасного вируса.
Параллельно вирусам появлялись и полиморфик-генераторы, одним из которых был MtE, открывший целые вирусные семейства. Он уже использовал зеркальные функции, чем затруднял своё детектирование. Теперь вирусологу не нужно было писать свой дешифратор, а лишь воспользоваться MtE. MtE-вирус был перехвачен антивирусной лабораторией, поэтому быстрый выход защиты от первого серьёзного полиморфного вируса защитил множество рабочих станций от заразы.
Другое семейство вирусов Daemaen записывает себя в COM, EXE и SYS файлы. С виду эти вирусы выглядят вполне безопасно, но на самом деле происходит запись в MBR винчестера и в boot-сектора дискет, а тело заразы хранится в последних секторах.
Полиморфные вирусы
Введение в полиморфизм
Как известно, первые вирусы появились давно. Они заражали древние компьютеры, и ничто не могло их остановить, кроме бдительного пользователя машины. Затем были придуманы антивирусы, определяющие их по характерным симптомам. Но через какое-то время вирус перестал быть тупой мишенью для антивируса. Теперь вирус был наделен специальными возможностями, что позволяло ему быть незамеченным в системе. Одним из вариантов защиты от определения является полиморфизм. В далеком 1990 году он чуть было не погубил всю антивирусную индустрию. Только благодаря профессионализму работников лаборатории были внедрены сложные методы, направленные на уничтожение полиморфных вирусов.
Немаловажной особенностью полиморфного вируса является то, что вирус содержит мусор, то есть операнды, функции и процедуры, которые служат лишь для запутывания кода. При этом реализуются две цели:
1. Сложность изучения кода при трассировке файла. Эта цель актуальна лишь для новичка, профессионал, который изучением вирусов занимался многие годы, сразу во всем разберется.
2. Увеличение элемента случайности в расшифровщике. Место их вставки имеет огромное влияние на размер кода. С мусором же появляются новые варианты компоновки кода. Размер при каждом из них будет разным.
Ассемблер дает безграничные возможности по вставке мусора, поэтому вставки могут быть различными. Вот некоторые их виды:
1. Регистровые операции. Как правило, арифметические и логические. Примером могут служить следующие команды: inc ax; mov ax,[si+bx-04]; add ax,1234h и др.
2. Зеркальные команды. Такие, как add/sub, inc/dec и прочие.
4. Простой мусор из одиночных операндов (daa; nop; cld и т.д.).
Выделяют несколько уровней полиморфизма, используемых в вирусе. Каждый из них по-разному реализует неодинаковый размер файлов, которые были заражены.
Уровень 1. Самые простые олигоморфные вирусы. Они используют постоянные значения для своих расшифровщиков, поэтому легко определяются антивирусами. Из за этого такие вирусы прозвали «не очень полиморфными». Примеры таких вирусов: Cheeba, December_3, Slovakia, V-Sign, Whale.
Уровень 2. Вирусы, имеющие одну или две постоянные инструкции, которые используются в расшифровщике. Также определяются по сигнатуре, но имеют более сложное строение, чем представители первого уровня. Примеры: ABC, DM, Flip, Jerusalem, Ontario, PC-Flu, Phoenix, Seat, Stasi, Suomi.
Уровень 3. Вирусы, использующие в своем коде команды-мусор. Это, в своем роде, ловушка от детектирования, помогает запутать собственный код. Но такой вирус может быть засечен с помощью предварительного отсеивания мусора антивирусом. Вирусы Tequila, StarShip, V2Px, DrWhite принадлежат к третьему уровню полиморфизма.
Уровень 4. Использование взаимозаменяемых инструкций с перемешиванием в коде, без дополнительного изменения алгоритма расшифровки, помогает полностью запутать антивирус. При этом невозможно «поймать» вирус по стандартной маске. Приходится выполнять перебор, после которого нужная сигнатура будет найдена. Так были написаны вирусы Uruguay, CLME, APE.
Полиморфизм стал очень распространенным лишь благодаря расшифровщику. Удобно то, что один файл может работать со многими вирусами. Этим и пользуются вирусописатели, используя чужой модуль. Подводным камнем при таком раскладе может стать ситуация, когда в базе антивируса хранится используемый расшифровщик. Если это случилось, все вирусы, подключенные к нему, будут детектироваться.
Любой может написать хороший полиморфный вирус. Необходимо лишь немного разбираться в ассемблере. На создание среднего полиморфного вируса тратится не более шести часов.
Очень проста реализация поиска зеркальных команд. Для этого необходимо создать сводную таблицу с операндами. К ней должна прилагаться дополнительная информация: наличие зеркала, необходимость замены команды и прочее. Если человек немного понимает в вирусологии и ассемблере, то составить подобную таблицу ему будет несложно. С командами-мусором можно поступить аналогичным образом, как и с зеркалами.
Кстати о мусоре. К таким инструкциям прилагается ряд ограничений, которые должен исполнять каждый вирусописатель, чтобы его творение работало как следует. Итак, команда не должна:
2. Изменять регистры, которые используют рабочие команды. Мусор есть мусор и он никоим образом не должен пересекаться с правильным кодом.
3. Вызывать фатальные ошибки, а также генерировать исключения, так как это остановит работу расшифровщика, либо сделает ее неверной.
Вирусописатели прежде всего акцентируют внимание на трех главных вещах в своем творении:
2. Защита. После обнаружения заразы происходит вызов исключающего кода.
3. Сложность. Код вируса должен быть очень запутанным, содержать в себе инструкции-зеркала, команды-мусор и прочее. Это обычно работает против новичка, но профессионал в течение нескольких часов изучения кода при трассировке, проследит за алгоритмом вируса.
Первый полиморфный вирус появился в 1990 году и назывался Chameleon. Он вписывал свой код в конец COM-файлов, а также использовал два алгоритма шифрования. Первый шифрует тело по таймеру в зависимости от значения заданного ключа. Второй использует динамическое шифрование и при этом активно мешает трассировке вируса. Существовала и модификация Chameleon. Вторая версия 1 апреля форматировала диск A: (учитывая объемы того времени, это было весьма неприятно).
После этого эволюция полиморфов завершилась. Только через три года вышел вирус Phantom1, который добрался и до русских компьютеров. Он не был опасен, хотя содержал в коде ряд ошибок, из-за которых генератор не мог расшифровать тело вируса. При этом исполняемый файл переставал функционировать. После длительного простоя системы фантом выводил на экран видеоизображение с надписью. Она гласила, что компьютер находится под наблюдением опасного вируса.
Параллельно вирусам появлялись и полиморфик-генераторы, одним из которым был MtE, открывший целое вирусное семейство. Он уже использовал зеркальные функции, чем затруднял свое детектирование. Теперь вирусологу не нужно было писать свой дешифратор, а лишь воспользоваться MtE, в результате чего мир узнал о новом семействе вирусов. Что интересно, первый MtE-вирус был перехвачен антивирусной лабораторией, поэтому быстрый выход защиты от первого серьезного полиморфного вируса защитил множество рабочих станций от заразы.
На 1993 год пришлось очень много полиморфных вирусов. При этом программисты, видимо, соревновались между собой и решали, чей вирус окажется круче всех. Появлялись все новые дешифраторы, которые использовались другими вирусописателями для своих грязных целей. Одним из таких опасных вирусов был Predator, который перехватывал прерывания 13h и 21h и записывал себя в конец всех COM-файлов. Используя int 13h, вирь проверял сектора, считываемые с дисков, и изменял в них один бит в определенное время.
Другое семейство вирусов Daemaen записывает себя в COM, EXE и SYS-файлы. При этом бинарники, начинающиеся на SC, VF и F-, не заражаются. С виду эти вирусы выглядят вполне безопасно, но на самом деле происходит запись в MBR винчестера и в boot-сектора дискет, а тело заразы хранится в последних секторах. Вирь содержит в себе ряд ошибок, которые вполне могут разрушить FAT.
В это же время группа программистов из болгарской школы создает полиморфный вирус Todor. Он не использовал высококлассных алгоритмов. Его изящность заключалась в том, чтоон разрабатывался по новой технологии. Вес вируса составлял ровно 1993 байта, что соответствовало году выпуска.
При запуске Тодора происходит расшифровка его тела. Для этого используется довольно простой алгоритм, основанный на XOR. С каждым шагом слово вируса XOR’ится с непостоянным ключом. После активации перехватывается адрес 24h и происходит заражение файла command.com. В довершение вирус поражает 5 файлов с расширением COM или EXE.
Особенностью вируса является то, что он проверяет носитель на возможность записи. Перед заражением каждого бинарника создается временный файл (затем удаляется). Когда это невозможно (адрес 24h нужен для возврата именно таких ошибок), зараза прекращает свою деятельность, считая, что носитель защищен от записи. Атрибуты и дата файла после заражения становятся прежними. Лишь значение секунд становится равным 22. Это сделано для того, чтобы не инфицировать бинарник повторно (вирус проверяет дату во время поиска). К тому же, 15 числа каждого месяца, вирус случайным образом шифрует сектор жесткого диска. Это делает полиморфного вируса довольно опасным, так как сектором может являться и Root Directory.
Не обошлось и без ошибок. Todor некорректно проверяет длину файла. Точнее, если она будет более 64 Кб, заразить файл не удастся, а компьютер зависнет. Вторая ошибка заключается в том, что в теле расшифровщика содержится лишняя команда POP. Файл, в который она попадет, неминуемо повиснет после запуска. И напоследок, заражая бинарник, вирус сначала изменяет заголовок файла, а затем записывает себя в его конец. При ошибке записи либо переполнении носителя исполняемый файл будет испорчен, и восстановить его уже не удастся.
После выхода Тодора мир узнал о новом полиморфик- генераторе TPE (Trident Polymorphic Engine), который распространялся в архивах BBS с подробным кодом и документацией по использованию. Благодаря этому, стали появляться вирусы (семейство TPE),использующие этот модуль.
К концу 1993 года генераторов стало выпускаться очень много. Антивирусы не справлялись с таким потоком, это также обуславливалось улучшением технологии полиморфизма.
Рассмотрим примеры. Дешифратор SPE позволял записывать код вируса в исполняемые файлы и организовывал специальный счетчик. При его определенных значениях, вирус стирал содержимое MBR винчестера и перезагружал компьютер. Некоторые генераторы реагировали на команды, введенные пользователем. Например, VICE заражал файлы в каталоге лишь тогда, когда пользователь в него входил. Также дешифратор умел удалять базы антивируса.
Генератор SMEG был очень опасен. Этот расшифровщик умел вписывать свой код в исполняемые файлы, а также стирать CMOS и сектора дисков. Процесс происходил каждый понедельник. После экзекуции вирус показывал надпись, сообщающую, что жесткий диск был поврежден.
В наше время многие вирусы используют полиморфизм высоких уровней в своих алгоритмах. Но развития технологии практически не наблюдается, можно сказать, что она уже изжила себя. Помимо полиморфизма существуют и другие методы маскировки, например, стелс-технологии. Возможно, скоро вирусописатели придумают мощный алгоритм защиты своих творений, который не сможет разгадать ни один продвинутый антивирус.









