Полиморфные вирусы что это такое и как

физико-математические науки

  • Абдуллина Розалия Расиховна , бакалавр, студент
  • Башкирский государственный аграрный университет
  • Похожие материалы

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

    Полиморфизм – высококлассная техника, позволяющая вирусу быть незамеченным по стандартной сигнатуре. Все полиморфные вирусы снабжаются расшифровщиком кода, который по определенному принципу преобразует переданный ему код, вызывая при этом стандартные функции и процедуры операционной системы. Сами методы шифрования могут быть разными, но, как правило, каждая операция имеет свою зеркальную пару. В ассемблере это реализуется очень просто, и таких пар может быть очень много – ADD/SUB, ROL/ROR и т.п. Немаловажной особенностью полиморфного вируса является то, что вирус содержит операнды, функции и процедуры, которые служат лишь для запутывания кода.

    Выделяют несколько уровней полиморфизма, используемых в вирусе:

    – самые простые олигоморфные вирусы. Они используют постоянные значения для своих расшифровщиков, поэтому легко определяются антивирусами;

    – вирусы, имеющие одну или две постоянные инструкции, которые используются в расшифровщиках;

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

    – использование взаимозаменяемых инструкций с перемешиванием в коде без дополнительного изменения алгоритма расшифровки, помогает полностью запутать антивирус;

    – неизлечимый уровень. Существуют вирусы, которые состоят из программных единиц – частей. Они постоянно меняются в теле и перемещают свои подпрограммы. Характерной особенностью такой заразы являются пятна. При этом в различные места файла записываются несколько блоков кода, что обуславливает название метода. Такие пятна в целом образуют полиморфный расшифровщик, который работает с кодом в конце файла. Для реализации метода даже не нужно использовать команды-мусор, подобрать сигнатуру будет все равно невозможно.

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

    Первый полиморфный вирус появился в 1990 году и назывался Chameleon. Он вписывал свой код в конец COM-файлов, а также использовал два алгоритма шифрования. Первый шифрует тело по таймеру в зависимости от значения заданного ключа. Второй использует динамическое шифрование и при этом активно мешает трассировки вируса. Он не был опасен, хотя содержал в коде ряд ошибок, из-за которых генератор не мог расшифровать тело вируса. При этом исполняемый файл переставал функционировать. После длительного простоя системы Phantom выводил на экран видеоизображение с надписью. Она гласила, что компьютер находится под наблюдением опасного вируса.

    Параллельно вирусам появлялись и полиморфик - генераторы, одним из которых был MtE, открывший целые вирусные семейства. Он уже использовал зеркальные функции, чем затруднял своё детектирование. Теперь вирусологу не нужно было писать свой дешифратор, а лишь воспользоваться MtE. MtE-вирус был перехвачен антивирусной лабораторией, поэтому быстрый выход защиты от первого серьёзного поли морфного вируса защитил множество рабочих стан- ций от заразы. Другое семейство вирусов Daemaen записывает себя в COM, EXE и SYS файлы. С виду эти вирусы выглядят вполне безопасно, но на самом деле происходит запись в MBR винчестера и в boot-сектора дискет, а тело заразы хранится в последних секторах.

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

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

    Список литературы

    Электронное периодическое издание зарегистрировано в Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), свидетельство о регистрации СМИ — ЭЛ № ФС77-41429 от 23.07.2010 г.

    Соучредители СМИ: Долганов А.А., Майоров Е.В.

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

    Содержание

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

    Полиморфные вирусы

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

    Каждый экземпляр полиморфного вируса шифруется своим ключом. Для шифрования кода полиморфного вируса могут использоваться случайные ключи и алгоритмы шифрования.

    Для обнаружения полиморфных вирусов, как правило, используются специально разрабатываемые для каждого полиморфного вируса алгоритмы обнаружения.

    Уровни полиморфизма

    В классификации CARO полиморфные вирусы в зависимости от их сложности разделяют на несколько уровней.

    Уровень 1. Вирусы первого уровня полиморфизма используют постоянные значения для разных расшифровщиков. Их можно обнаружить по некоторым постоянным участкам кода расшифровщика. Такие вирусы принято называть "не совсем полиморфными", или олигоморфными (oligomorphic).

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

    Уровень 3. Вирусы, использующие в расшифровщике команды, не участвующие в расшифровании вирусного кода, или "команды-мусора", относят к третьему уровню полиморфизма. Это такие команды ассемблера, как NOP, MOV AX, AX, STI, CLD, CLI и т.д. Данные вирусы также можно определить с помощью некоторой сигнатуры, если произвести отсеивание всех "мусорных" команд.

    Уровень 4. Вирусы четвертого уровня используют в расшифровщике взаимозаменяемые инструкции и "перемешанные" инструкции без изменения алгоритма расшифрования. Например, ассемблерная команда MOV AX,BX имеет взаимозаменяемые инструкции: PUSH BX - POP AX; XCHG AX,BX; MOV CX,BX - MOV AX,CX и т. д. Детектирование данных вирусов возможно с помощью некоторой перебираемой сигнатуры.

    Уровень 5. Пятый уровень полиморфизма включает свойства всех перечисленных уровней, а кроме того, расшифровщик может использовать различные алгоритмы расшифрования вирусного кода. Для расшифровки возможно использование основного вирусного кода, расшифровки части самого же декриптора или нескольких расшифровщиков, поочередно расшифровывающих друг друга либо непосредственно вирусный код. Как правило, обнаружение вирусов данного уровня полиморфизма с помощью сигнатуры невозможно. Если для обнаружения такого вируса возможен серьезный анализ кода только самого расшифровщика, то для лечения необходимо произвести частичную или полную расшифровку тела вируса, чтобы извлечь информацию о зараженном файле.

    Уровень 6. К нему относятся нешифрованные вирусы - т. е. вирусы, состоящие из программных единиц-частей, которые "перемешиваются" внутри тела вируса. Данные вирусы, как "кубики", тасуют свои подпрограммы (инсталляции, заражения, обработчика прерывания, анализа файла и т. д.). Такие вирусы еще называются пермутирующими (permutating).

    История

    Первым представителем полиморфных вирусов стал "Chameleon" в начале 1990 года, однако проблема стала серьезней чуть позже – в апреле 1991 года была зарегистрирована эпидемия "Tequila". Идея полиморфных вирусов стала столь популярна, что дошло до создания генераторов полиморфных вирусных кодов – первым стал MtE. Кроме того, генератор позволял получать полиморфный вирус из обычного – путем присоединения к OBJ-файлу вируса файла полиморфного кода с идентичным расширением.

    Фактически, с появлением генераторов для создания полиморфного вируса не требовалось знать код оригинального вируса – достаточно было просто "скормить" его генератору, и тот делал всю работу за начинающего хакера. Впоследствии полиморфные вирусы стали крайне популярны, так как для их отлова требуются специальные математические алгоритмы восстановления исходного кода вируса, эмуляция исполняемого вирусом действий и другие сложности.

    Генераторы полиморфных вирусов также совершенствовались – в середине девяностых это были MTE 0.90 (Mutation Engine), TPE (Trident Polymorphic Engine), четыре версии NED (Nuke Encryption Device) и DAME (Dark Angel's Multiple Encryptor).

    Полиморфные вирусы активно развивались примерно до начала XXI века, однако затем произошел общий крен вирусописательства в сторону червей и троянов. Технология постоянной мутации кода для затруднения обнаружения антивирусными программами временно оказалась невостребованной.

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

    Введение в полиморфизм

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

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

    Все полиморфные вирусы обязательно снабжаются расшифровщиком кода, который по определенному принципу преобразует переданный ему код, вызывая при этом стандартные функции и процедуры операционной системы. Сами методы шифрования могут быть разными, но, как правило, каждая операция имеет свою зеркальную пару. В ассемблере это реализуется очень просто, и таких пар может быть много - ADD/SUB, XOR/XOR, ROL/ROR и т.п. Подобные операции проводятся для расшифровки ячеек памяти.

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

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

    2. Увеличение элемента случайности в расшифровщике. Место их вставки имеет огромное влияние на размер кода. С мусором же появляются новые варианты компоновки кода. Размер при каждом из них будет разным.

    Ассемблер дает безграничные возможности по вставке мусора, поэтому вставки могут быть различными. Вот некоторые их виды:

    1. Регистровые операции. Как правило, арифметические и логические. Примером могут служить следующие команды: inc ax; mov ax, [si+bx-04]; add ax, 1234h и др.

    2. Зеркальные команды. Такие, как add/sub, inc/dec и прочие.

    3. Ложные переходы, а также вызов подпрограмм, содержащих мусор (jmp $+10h; call XXXXh).

    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.

    Уровень 5. Реализация всех вышеизложенных уровней с поддержкой различных алгоритмов в расшифровщике помогает достичь высокого уровня полиморфизма. При этом может существовать несколько параллельных процессов расшифровки, когда один будет преобразовывать код другого или наоборот. Распознавание таких вирусов - очень сложный процесс. Для этого необходимо произвести тщательный анализ кода самого расшифровщика. С лечением сложнее - приходится трассировать не только генератор, но и тело самого вируса для выявления полной информации о зараженном файле. Эта процедура занимает довольно продолжительное время и может закончиться неудачно. Лечить вирусы этого уровня может лишь DrWeb, в остальных программах это попросту не реализовано. К представителям уровня относятся DAME и др.

    Уровень 6 (неизлечимый). И, наконец, существуют вирусы, которые состоят из программных единиц-частей. Они постоянно меняются в теле и перемещают свои подпрограммы. Лечение таких вирусов пока не производится, но и для написания нужно очень хорошо разбираться в ассемблере. Характерной особенностью такой заразы являются пятна. При этом в различные места файла записывается несколько блоков кода, что обуславливает название метода. Такие пятна в целом образуют полиморфный расшифровщик, который работает с кодом в конце файла. Для реализации метода даже не нужно использовать команды-мусор - подобрать сигнатуру будет все равно невозможно. Такой алгоритм используют вирусы BadBoy, CommanderBomber, Leech и т.п.

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

    Любой может написать хороший полиморфный вирус. Необходимо лишь немного разбираться в ассемблере. На создание среднего полиморфного вируса тратится не более шести часов.

    Очень проста реализация поиска зеркальных команд. Для этого необходимо создать сводную таблицу с операндами. К ней должна прилагаться дополнительная информация: наличие зеркала, необходимость замены команды и прочее. Если человек немного понимает в вирусологии и ассемблере, то составить подобную таблицу ему будет несложно. С командами-мусором можно поступить аналогичным образом, как и с зеркалами.

    Кстати о мусоре. К таким инструкциям прилагается ряд ограничений, которые должен исполнять каждый вирусописатель, чтобы его творение работало как следует. Итак, команда не должна:

    1. Передавать управление за внешнюю программу. То есть управлять кодом может лишь расшифровщик и никто другой. Если нарушить это правило - вирус будет замечен.

    2. Изменять регистры, которые используют рабочие команды. Мусор есть мусор и он никоим образом не должен пересекаться с правильным кодом.

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

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

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

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

    Вирусописатели прежде всего акцентируют внимание на трех главных вещах в своем творении:

    1. Маскировка. Цель каждого полиморфного вируса - как можно дольше продержаться в системе до детектировании антивирусом.

    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.

    Вирусописатели обычно оставляют вместе с вирусом какую-либо информацию. Так, например, полиморфный вирус Invisible записывается в конец исполняемых файлов. В зависимости от времени зараза заменяет файл другой программой, при запуске которой юзер слышит музыку и видит перед собой текст песни I'm the invisible man (хит тех времен). Еще один пример - вирус Seat. После заражения вирус перехватывает 21h, записывает себя в исполняемые файлы. Время от времени на экране компьютера появляется визульные эффекты, а при нажатии на клавиши раздаются звуки ;).

    В это же время группа программистов из болгарской школы создает полиморфный вирус 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 и сектора дисков. Процесс происходил каждый понедельник. После экзекуции вирус показывал надпись, сообщающую, что жесткий диск был поврежден.

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

    Как вирусы скрывают свое присутствие в системе?

    Основная задача вируса - распространение. И поэтому вирусу необходимо как можно дольше скрывать свое присутствие в системе, ведь чем дольше он будет оставаться незамеченным, тем дальше он сможет распространиться.

    Вирусы скрывают свое присутствие по-разному.

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

    а) многие вирусы проявляются в один или некоторые определенные дни;

    б) другие вирусы ставят свое проявление в зависимость от случайностей всевозможного рода. Например, только если значение минут таймера меньше N ; или проверяет отсутствие ввода с клавиатуры в течение N минут; v ногие загрузочные вирусы любят уничтожать секторы дисков, вычисляя вероятность (1/8 или 1/16 );

    в) иногда авторы вирусов ставят счетчики на количество нажатий на клавиши, на количество зараженных файлов или секторов и в зависимости от их значений обнаруживают свои вирусы.

    Авторы вирусов заменяют некоторые компоненты операционной системы, например, прерывания, драйверы так, что программа-вирус становится невидимой для других программ. Такие вирусы называются вирусами-невидимками, или стелс-вирусами (Stealth - невидимка ).

    Stealth-вирусы всегда резидентны. Резидентный модуль перехватывает обращение операционной системы к пораженным файлам или секторам дисков и “подставляет” вместо них исходные объекты.

    Так Stealth-вирусы скрываются от опытного пользователя и многих антивирусных средств, которые осуществляют ранний поиск вирусов по изменениям длин файлов контрольных сумм и содержимого загрузочных секторов.

    Необходимо заметить, что Stealth-вирус невидим только тогда, когда его резидентный модуль находится в оперативной памяти компьютера.

    Для того, чтобы затруднить обнаружение, некоторые вирусы шифруют свой код.

    С понятием компьютерного вируса тесно связано другое понятие - сигнатура.

    Сигнатура - это фрагмент кода, встречающийся во всех копиях вируса и только в них. Сигнатура однозначно определяет наличие или отсутствие вируса.

    Очевидно, что для поиска тела вирусов на дисках антивирусными средствами невозможно (не хватит памяти!) хранить полные коды программ-вирусов. Поэтому разработчики антивирусных средств поступают следующим образом: для поиска вирусов они хранят их сигнатуры. Такой поиск кодов вирусов называется сигнатурным поиском.

    Простейшая техника шифрования выглядит следующим образом: каждый раз, когда вирус заражает новую программу, он зашифровывает свой собственный код, используя новый ключ. Ключ шифрования зависит от заражаемого файла (например, его имени или длины). В результате два экземпляра одного и того же вируса могут значительно отличаться друг от друга, и даже иметь различную длину! Это затрудняет обнаружение вируса с помощью сигнатурного поиска. Ведь зашифрованный код уже не имеет той же сигнатуры.

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

    Шифрующиеся вирусы называют иногда вирусами-”призраками”.

    Все дальнейшие усовершенствования алгоритмов вирусов уже продиктованы выживанием вирусов при работе под всевозможными антивирусными средствами.

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

    Авторы вирусов на такой подход ответили полиморфными вирусами. Эти вирусы для шифрования используют не только разные ключи, но и разные процедуры шифрования (соответственно, дешифрования). Два экземпляра такого вируса не имеют ни одной совпадающей последовательности кода!

    Вирусы, которые благодаря использованию разных расшифровщиков, могут полностью изменять свой код, называются полиморфными вирусами (polymorphic).

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

    Первый полиморфный вирус был написан в США Марком Вошборном (Mark Washburn) в качестве экспериментального. Он получил название “V2Px”, или “V-1260”, и хотя не был распространен как вирус, послужил примером для авторов вирусов.

    Авторы компьютерных вирусов “вывели” самые современные виды вирусов, в которых нет ни одного постоянного БИТА информации.

    Это достигается перестановкой команд расшифровщика, разбавлениями ничего не значащими командами типа NOP, STI, CLI, STC, CLC и т.д. и т.п. В результате в начале файла, зараженного подобным образом, идет набор бессмысленных на первый взгляд команд, и среди них изредка проскальзывают рабочие команды.

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

    Как создаются MtE - вирусы?

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

    В 1991 г. в Болгарии самым известным автором вирусов, именующим себя Dark Avenger (Черный Мститель), был разработан алгоритм создания полиморфных вирусов. Это очень сложный алгоритм, который порождает дешифровщики, абсолютно непохожие друг на друга. Их размер колеблется в диапазоне от 0 до 512 байт, а в теле могут встречаться практически все команды процессора. Этот алгоритм его автор назвал Mutation Engine (машина мутаций), сокращенно он называется MtE или DAME ( Dark Angel MuTation Engine ).

    Вирусы с подключенным к ним молулем MtE для порождения дешифровщиков, называют MtE - вирусами. Это полуавтоматические вирусы.

    Вслед за Mutation Engine появилось еще несколько средств разработки полиморфных вирусов. В Казани был создан AWME (Anti WEB Mutation Engine). А вот названия зарубежных разработок полиморфных вирусов:

    · CLME ( Crazy Lord Mutation Engine ),

    · DSCE ( Dark Slayer Confusion Engine ),

    · GCAE ( Golden Cicada Abnormal Engine ),

    · NED ( NUKE Encription Device ),

    · SMEG ( Simulated Metamorfic Encri p tion Generator ),

    · TPE ( Trident Polymorfic Engine ),

    · VICE ( Virogen’s Irreguar Code Engine ).

    Даже по количеству автоматизированных разработок для создания полиморфных вирусов становится очевидным широкое распространение полиморфных вирусов.

    В современных условиях выживают и распространяются только сложные вирусы, которые используют все известные возможности для внедрения в компьютерные системы и для того, чтобы скрыть свое присутствие.

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

    А для того, чтобы достичь наибольшей неуязвимости, вирусы комбинируют и все известные методы маскировки: от менее опытных пользователей и одного вида антивирусных средств скрываются, используя Stealth-технологию, от более опытных пользователей и более мощных антивирусных средств - реализовывая полиморфные механизмы.

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

Читайте также:

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.

Copyright © Иммунитет и инфекции