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

Обновлено: 24.04.2024

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

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

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

Обзор комплексных вирусов

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

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

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

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

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

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

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

Определение угрозы

Все эти примеры стоят нескольких дней (и ночей) работы, имея ввиду реверсинг, репликацию вируса и написание алгоритма определения вируса. Исследователю будет легче написать сначала отдельную программу на Си, и после этого интегрировать алгоритм в антивирусный продукт.

Ограничения в технологии поиска вирусов

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

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

Некоторые новые вирусы, найденные в 2004 году, нацеленные на платформу Win64 и довольно сложно определяемые, включают в себя W64/Rugrat (документ PDF) (IA64), W64/Shruggle (AMD64) и несколько вирусов с MSIL-инфекторами. Соответствующие форматы исполняемых файлов варьируются, так что даже задача подбора поисковой строки превращается в трюк акробата, если антивирус не поддерживает эти форматы.

Важность своевременного обнаружения комплексных вирусов

Кроме времени реакции, различается и способность к обнаружению вирусов, это видно при измерении способности обнаружить все виды полиморфных вирусов, учитывая допустимую погрешность. А что такое допустимая погрешность? Хотя она разная у каждой компании, обычно она составляет лишь небольшой процент ложных обнаружений, но есть и исключения. Последний пример – W32/Zelly – этому вирусу была разрешена большая (50%) погрешность некоторыми компаниями лишь для того, чтобы стать первыми его находчиками.

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

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

Один хакер может причинить столько же вреда, сколько 10 000 солдат! Подпишись на наш Телеграм канал, чтобы узнать первым, как выжить в цифровом кошмаре!

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

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

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

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

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

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

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

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

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

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

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

Создатели вирусов нападают

Антивирусный сканер может быстро обнаружить изменения в программе, проверяя ее размер. Если размер файла был изменен в процессе запуска, это хороший индикатор того, что вирус инфицировал программу. Чтобы обойти эту проверку, пустотные (cavity) вирусы прятали свой код в пустых пространствах внутри файла программы, оставляя размер файла неизменным. Пустотные вирусы пошли еще со времен MS-DOS, начиная с вируса Lehigh. Использование этой техники в создании вирусов значительно возросло, когда Microsoft разработал Windows PE формат для возможности взаимодействия Windows программ в разных ОС Windows. С целью ускорить загрузку программ в формате PE, компиляторы Windows программ создавали пустые пространства внутри файлов. Многие вирусы, такие как W2K/Lamchi, использовали эти пустые пространства для сокрытия вирусного кода.

Создатели вирусов также стали применять технику сокрытия точки входа (entry point obscuration - EPO), чтобы прятать место нахождения jump-инструкции к коду вируса. Червь W32/MTX@M и вирус Win95/SK были одними из первых, использующих эту технику. Существует множество разновидностей этой идеи, от сокрытия блока вирусного кода в теле программы до фактического интегрирования вирусного кода в код программы. Многие АВ профессионалы рассматривают EPO вирусы как наиболее перспективные.

Создатели вирусов стали использовать техники шифрования для предотвращения быстрой идентификации антивирусным ПО. Изменяя ключ шифрования от компьютера к компьютеру, вирус может защитить свой код от быстрой идентификации. Группы разработчиков вирусов, такие как 29A VX, и отдельные разработчики, например Zombie и Black Baron, работают над усовершенствованием методов шифрования и мутации.

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

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

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

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

Вирус W32.Simile - один из последних метаморфных вирусов. Этот очень сложный вирус способен существовать как на Linux, так и на Windows платформах. Большая часть кода вируса, содержащего более 14000 ассемблерных команд, посвящена собственному метаморфическому механизму. Этот вирус, написанный создателем вирусов The Mental Driller, и обнаруженный в марте 2002 г., имеет множество антиэмуляторных функций. Он использует псевдослучайный алгоритм дешифровки, который использует модульные арифметические функции для дешифровки тела вируса нелинейным способом, не от начала до конца, а кусками, выбранными, по видимому, случайным образом, для того, чтобы запутать эмулятор.

Чтобы еще больше запутать эмулятор, вирус Simile воспользовался инструкцией RDTSC (Read Time Stamp Counter). Вирус анализирует внутренний процессорный счетчик и случайным образом определяет, пора расшифровывать код, или еще подождать. Это означает, что вирус может не расшифроваться с первой или даже с нескольких попыток. Ввиду сложности вирусного кода, он содержит множество ошибок, которые могут помешать расшифровке вируса в течение длительного времени.

Сложность Simile также указывает на то, что мало кто из создателей вирусов возьмется за написание действительно сложных вирусов. Наоборот, успех Hybris, Klez , Magistr, MTX, и Sircam указывает на то, что вирусам, эффективно использующим поддельные адреса возврата или изменение тела вируса, обеспечена долгая жизнь на мировой арене.

Антивирусные программисты отражают атаку!

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

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

Один хакер может причинить столько же вреда, сколько 10 000 солдат! Подпишись на наш Телеграм канал, чтобы узнать первым, как выжить в цифровом кошмаре!


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

Полиморфные вирусы могут атаковать компьютеры с Windows, Linux или Mac; смартфоны; таблетки; ноутбуки; умные часы и т. д. Любое устройство, которое может подключиться к Интернету по любой причине, находится в опасности.

Что такое полиморфный вирус?

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

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

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

Исследования Webroot показывают, что почти все современные вирусы содержат полиморфные аспекты. Версии этого типа вируса были впервые обнаружены в начале 1990-х годов, и хакеры быстро заметили, как он может им помочь. К 2015 году ФБР и Европол объединили свои усилия, чтобы уничтожить бот-сеть , в которой использовался полиморфный вирус, чтобы измениться до 19 раз в день, чтобы контролировать около 12 000 частных компьютеров по всему миру. Все это, конечно же, было неизвестно владельцам компьютеров.

Как работает полиморфный вирус?

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

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

Как я узнаю, есть ли у меня такой вирус?

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

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

Как я получил такой вирус?

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

Как мне избавиться от полиморфного вируса?

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

Есть и другие варианты, которые вы можете попробовать:

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

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

Если проблема связана с мобильным устройством, вам может потребоваться использовать другие методы для удаления вируса из Android .

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

Как я могу избежать заражения вирусом снова?

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

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