Открыть сервис

Полиморфизм вирусов

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

История возникновения

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

Практическая реализация полиморфизма впервые была продемонстрирована в 1990 году с появлением вируса 1260 (также известного как V2P1), созданного Марком Вашингтоном. Этот вирус использовал простейший генератор мусорных команд, вставляемых в тело кода для изменения сигнатуры. Однако подлинный прорыв произошёл в 1992 году с выходом вируса Dark Avenger (MtE — Mutation Engine), который представлял собой не сам вирус, а библиотеку, позволяющую любому вирусу стать полиморфным. MtE использовал сложные методы шифрования и генерации случайных инструкций, что сделало его крайне опасным и стимулировало развитие антивирусной индустрии.

В 1990-е годы полиморфизм стал стандартной техникой для многих вирусов, особенно для макровирусов (например, Concept, Melissa) и вирусов, заражающих исполняемые файлы. С развитием интернета и появлением сетевых червей (например, Nimda, Code Red) полиморфизм начал применяться для обхода сетевых экранов и систем обнаружения вторжений.

Принцип работы

Полиморфный вирус состоит из двух основных компонентов: тела вируса (полезной нагрузки) и движка мутации (полиморфного генератора). Движок мутации отвечает за изменение кода вируса при каждом копировании.

Основные механизмы

  1. Шифрование: Вирус шифрует своё тело с помощью случайного ключа. Расшифровщик (небольшой фрагмент кода, который расшифровывает основное тело) остаётся неизменным, но сам ключ шифрования меняется каждый раз. Это делает зашифрованное тело уникальным.
  2. Генерация мусорного кода: Движок вставляет в код расшифровщика или в само тело вируса случайные, но синтаксически правильные инструкции, которые не влияют на логику работы (например, NOP, MOV AX, AX, ADD BX, 0). Эти инструкции меняют последовательность байтов, но не меняют функциональность.
  3. Перестановка инструкций: Движок может переставлять местами независимые блоки кода (например, блоки, не зависящие друг от друга по данным), что приводит к изменению порядка выполнения и, следовательно, сигнатуры.
  4. Подмена регистров и адресов: Вирус может заменять используемые регистры процессора (например, AX на BX) или адреса памяти на эквивалентные, что также меняет машинный код.
  5. Использование полиморфных декодеров: В более сложных вариантах сам расшифровщик может быть полиморфным, то есть он тоже изменяется при каждом заражении, что делает его обнаружение по сигнатуре расшифровщика практически невозможным.

Пример упрощённого цикла

  1. Вирус получает управление в заражённой системе.
  2. Движок мутации генерирует новый случайный ключ шифрования.
  3. Движок вставляет в код расшифровщика случайные мусорные инструкции.
  4. Вирус шифрует своё основное тело новым ключом.
  5. Создаётся новая копия, состоящая из изменённого расшифровщика и зашифрованного тела.
  6. Копия внедряется в новый файл или систему.

Классификация полиморфных вирусов

Полиморфные вирусы можно классифицировать по сложности и методам мутации.

По сложности мутации

  • Слабополиморфные (Oligomorphic): Имеют ограниченное количество (обычно от нескольких десятков до нескольких тысяч) вариантов кода. Примеры: вирус Whale (1990) — имел около 10 вариантов.
  • Полиморфные (Polymorphic): Генерируют практически неограниченное количество вариантов кода. Примеры: вирусы, использующие MtE, Dark Avenger, OneHalf.
  • Метаморфные (Metamorphic): Наиболее сложная разновидность. В отличие от полиморфных, которые шифруют своё тело, метаморфные вирусы полностью переписывают свой собственный код, не используя шифрование. Они могут менять структуру, алгоритмы, порядок блоков, заменять одни инструкции на другие (например, ADD на SUB с отрицательным числом). Примеры: вирус Win32.Swen, червь Win32.Simile.

По типу заражения

  • Файловые полиморфные вирусы: Заражают исполняемые файлы (.exe, .com, .dll).
  • Макровирусы: Заражают документы Microsoft Office, используя встроенные макросы (Visual Basic for Applications). Полиморфизм достигается за счёт изменения структуры макроса.
  • Скриптовые вирусы: Написаны на скриптовых языках (JavaScript, VBScript, Python) и могут изменять свой код с помощью динамических функций (например, eval в JavaScript).
  • Загрузочные вирусы: Заражают загрузочный сектор диска (MBR, VBR). Полиморфизм используется для сокрытия от антивирусов, проверяющих загрузочные сектора.

Методы обнаружения и противодействия

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

Эвристический анализ

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

Эмуляция (песочница)

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

Анализ на основе поведения (поведенческий блокиратор)

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

Облачные технологии и репутационные базы

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

Примеры известных полиморфных вирусов

  • Dark Avenger (MtE): (1992) — первый широко распространённый полиморфный вирусный движок. Позволял создавать вирусы с практически неограниченным количеством мутаций.
  • OneHalf: (1994) — полиморфный вирус, шифрующий данные на жёстком диске. Известен своим эффектом «половинного» шифрования, когда данные становятся недоступными постепенно.
  • Win32.Swen: (2003) — метаморфный червь, распространявшийся через электронную почту и файлообменные сети. Полностью переписывал свой код при каждом заражении.
  • Win32.Simile: (2002) — один из самых сложных метаморфных вирусов, написанный на ассемблере. Мог генерировать миллионы различных вариантов своего кода.
  • Virlock: (2014) — полиморфный вирус-вымогатель, который шифровал файлы пользователя и требовал выкуп. Использовал полиморфизм для затруднения обнаружения.

Значение и влияние

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

В настоящее время полиморфизм широко используется не только в классических вирусах, но и в современных угрозах, таких как банковские трояны, программы-вымогатели (ransomware) и бэкдоры. Он остаётся одним из основных инструментов для обхода антивирусных решений, что делает его изучение актуальным для специалистов по информационной безопасности.

Источники

  • Касперски К. «Техника и философия хакерских атак». — М.: СОЛОН-Пресс, 2003.
  • Шостак А. «Компьютерные вирусы: теория и практика». — М.: ДМК Пресс, 2004.
  • Szor P. «The Art of Computer Virus Research and Defense». — Addison-Wesley Professional, 2005.
  • Ludwig M. «The Giant Black Book of Computer Viruses». — American Eagle Publications, 2009.
  • Материалы конференций по компьютерной безопасности (Virus Bulletin, Black Hat, Defcon).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →