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

Обновлено: 22.04.2024

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

Каталог решений и проектов ИБ - Антивирусы доступны на TAdviser

Содержание


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

Классификация

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

Классификация вирусов по способу заражения

Резидентные

Такие вирусы, получив управление, так или иначе остается в памяти и производят поиск жертв непрерывно, до завершения работы среды, в которой он выполняется. С переходом на Windows проблема остаться в памяти перестала быть актуальной: практически все вирусы, исполняемые в среде Windows, равно как и в среде приложений Microsoft Office, являются резидентными вирусами. Соответственно, атрибут резидентный применим только к файловым DOS вирусам. Существование нерезидентных Windows вирусов возможно, но на практике они являются редким исключением.

Нерезидентные

Получив управление, такой вирус производит разовый поиск жертв, после чего передает управление ассоциированному с ним объекту (зараженному объекту). К такому типу вирусов можно отнести скрипт-вирусы.

Классификация вирусов по степени воздействия

Безвредные

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

Неопасные

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

Опасные

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

Очень опасные

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

Классификация вирусов по способу маскировки

При создании копий для маскировки могут применяться следующие технологии:

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

Шифрованный вирус

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

Вирус-шифровальщик

На практике встречаются случаи получения по электронной почте обычного `вордовского` (с расширением .doc) файла, внутри которого, помимо текста, есть изображение, гиперссылка (на неизвестный сайт в Интернете) или встроенный OLE-объект. При нажатии на такой объект происходит незамедлительное заражение.

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

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

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

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

Классификация вирусов по среде обитания

  • загрузочные;
  • файловые
  • макро-вирусы;
  • скрипт-вирусы.

В эпоху вирусов для DOS часто встречались гибридные файлово-загрузочные вирусы. После массового перехода на операционные системы семейства Windows практически исчезли как сами загрузочные вирусы, так и упомянутые гибриды. Отдельно стоит отметить тот факт, что вирусы, рассчитанные для работы в среде определенной ОС или приложения, оказываются неработоспособными в среде других ОС и приложений. Поэтому как отдельный атрибут вируса выделяется среда, в которой он способен выполняться. Для файловых вирусов это DOS, Windows, Linux, MacOS, OS/2. Для макровирусов — Word, Excel, PowerPoint, Office. Иногда вирусу требуется для корректной работы какая-то определенная версия ОС или приложения, тогда атрибут указывается более узко: Win9x, Excel97.

Файловые вирусы

Файловые вирусы при своем размножении тем или иным способом используют файловую систему какой-либо (или каких-либо) ОС. Они:

  • различными способами внедряются в исполняемые файлы (наиболее распространенный тип вирусов);
  • создают файлы-двойники (компаньон-вирусы);
  • создают свои копии в различных каталогах;
  • используют особенности организации файловой системы (link-вирусы).

Число вредоносных программ неуклонно растет и уже в скором будущем может достичь масштабов эпидемии. Распространение вирусов в цифровом мире не имеет границ, и даже при всех имеющихся возможностях нейтрализовать деятельность преступного киберсообщества сегодня уже невозможно. Бороться с хакерами и вирусописателями, которые неустанно совершенствуют свое мастерство, становится все сложнее. Так, злоумышленники научились успешно скрывать цифровые каналы распространения угроз, что значительно затрудняет отслеживание и анализ их онлайн-движения. Меняются и пути распространения, если раньше киберпреступники предпочитали электронную почту для распространения вирусов, то сегодня лидерские позиции занимают атаки в режиме реального времени. Также наблюдается рост вредоносных веб-приложений, которые оказались более чем пригодны для атак злоумышленников. Как заявил Говинд Раммурти, генеральный и управляющий директор компании eScan MicroWorld, сегодня хакеры научились успешно уклоняться от детектирования традиционными антивирусными сигнатурами, которые по ряду причин обречены на неудачу, когда дело доходит до обнаружения веб-угроз. Судя по образцам, исследованным в eScan, веб-угрозы превалируют среди вредоносных программ. 82% выявленных вредоносных программ - файлы с расширением PHP, HTML и EXE, а MP3, CSS и PNG - менее чем 1%.

Это явно говорит о том, что выбор хакеров – это Интернет, а не атаки с использованием уязвимостей программного обеспечения. Угрозы имеют полиморфный характер, это означает, что вредоносные программы могут быть эффективно перекодированы удаленно, что делает их трудно обнаружимыми. Поэтому высокая вероятность заражения связана, в том числе, и с посещениями сайтов. Согласно данным eScan MicroWorld, количество перенаправляющих ссылок и скрытых загрузок (drive-by-download) на взломанных ресурсах увеличилось более чем на 20% за последние два месяца. Социальные сети также серьезно расширяют возможности доставки угроз.

Загрузочные вирусы

MosaicRegressor (вирус)

Загрузочные вирусы записывают себя либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный загрузчик винчестера (Master Boot Record), либо меняют указатель на активный boot-сектор. Данный тип вирусов был достаточно распространён в 1990-х, но практически исчез с переходом на 32-битные операционные системы и отказом от использования дискет как основного способа обмена информацией. Теоретически возможно появление загрузочных вирусов, заражающих CD-диски и USB-флешек, но на текущий момент такие вирусы не обнаружены.

Макро-вирусы

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

Скрипт-вирусы

Скрипт-вирусы, также как и макро-вирусы, являются подгруппой файловых вирусов. Данные вирусы, написаны на различных скрипт-языках (VBS, JS, BAT, PHP и т.д.). Они либо заражают другие скрипт-программы (командные и служебные файлы MS Windows или Linux), либо являются частями многокомпонентных вирусов. Также, данные вирусы могут заражать файлы других форматов (например, HTML), если в них возможно выполнение скриптов.

Классификация вирусов по способу заражения файлов

Перезаписывающие

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

Паразитические

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

Внедрение вируса в начало файла

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

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

Внедрение вируса в конец файла

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

Внедрение вируса в середину файла

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

Вирусы без точки входа

Вирусы-компаньоны

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

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

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

Вирусы-ссылки

Файловые черви

Некоторые файловые черви могут записывать свои копии в архивы (ARJ, ZIP, RAR). Другие записывают команду запуска зараженного файла в BAT-файлы.

OBJ-, LIB-вирусы и вирусы в исходных текстах

Вирусы, заражающие библиотеки компиляторов, объектные модули и исходные тексты программ, достаточно экзотичны и практически не распространены. Всего их около десятка. Вирусы, заражающие OBJ- и LIB-файлы, записывают в них свой код в формате объектного модуля или библиотеки. Зараженный файл, таким образом, не является выполняемым и неспособен на дальнейшее распространение вируса в своем текущем состоянии. Носителем же "живого" вируса становится COM- или EXE-файл, получаемый в процессе линковки зараженного OBJ/LIB-файла с другими объектными модулями и библиотеками. Таким образом, вирус распространяется в два этапа: на первом заражаются OBJ/LIB-файлы, на втором этапе (линковка) получается работоспособный вирус.

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

Распространение

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

  • при заражении доступных дисков вирус проник в файлы, расположенные на сетевом ресурсе;
  • вирус скопировал себя на съёмный носитель или заразил файлы на нем;
  • пользователь отослал электронное письмо с зараженным вложением.

Интересные факты

  • 1986 Brian – первый компьютерный вирус; он распространялся за счет записи собственного кода в загрузочный сектор дискет.
  • 1988 червь Морриса заразил примерно 10% компьютеров, подключенных к Интернету (т.е. около 600 компьютеров).
  • 1992 Michelangelo – первый вирус, который привлек внимание СМИ.
  • 1995 Concept – первый макровирус.
  • 1999 Melissa ознаменовал наступление эры массовых рассылок вредоносного ПО, приводящих к глобальным эпидемиям.
  • 26 апреля 1999 года произошла первая глобальная компьютерная катастрофа. Вирусом "Чернобыль" или CIH программисты, разве что, не пугали своих детей. По различным данным, пострадало около полумиллиона компьютеров по всему миру, и никогда еще до этого момента последствия вирусных эпидемий не были столь масштабными и не сопровождались такими серьезными убытками
  • 2003 Slammer – бесфайловый червь, вызвавший широкомасштабную эпидемию по всему миру.
  • 2004 Cabir – первый экспериментальный вирус для Symbian; распространялся через Bluetooth.
  • 2006 Leap – первый вирус для платформы Mac OSX.
  • 2007 Storm Worm [Zhelatin] – впервые использовал для управления зараженными компьютерами распределенные командные серверы.
  • 2008 Koobface – первый вирус, целенаправленно атаковавший пользователей социальной сети Facebook.
  • 2008 Conficker – компьютерный червь, вызвавший одну из крупнейших в истории эпидемий, в результате которой заражению подверглись компьютеры компаний, домашних пользователей и правительственных организаций в более чем 200 странах.
  • 2010 FakePlayer – SMS-троянец для смартфонов на базе Android.
  • 2010 Stuxnet – червь, с помощью которого была осуществлена целевая атака на системы SCADA (Supervisory Control And Data Acquisition – Диспетчерское управление и сбор данных), ознаменовавший начало эры кибервойн.
  • 2011 Duqu – сложная троянская программа, которая собирает информацию промышленных объектах.
  • 2012 Flame – сложная вредоносная программа, которая активно используется в ряде стран в качестве кибероружия. По сложности и функционалу вредоносная программа превосходит все ранее известные виды угроз.

Panda Security: рейтинг вирусов 2010 года

Введение

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

Ранние Ridiculo-морфы

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

Вирусы, использующие вставки цифрового мусора

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

Sub Document_Close()

'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

А вот этот же фрагмент в другом зараженном файле:

Sub Document_Open()

'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$()

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

Различные смены названий

Разнообразные вирусы, использующие смену названий, были еще одной интересной попыткой создания полиморфного вируса. Самыми известными вирусами этой серии было семейство IIS. Так, IIS.I использовал различные методики смены названий и функций. По-видимому, автор вируса предпринял попытку изменять все обозначения, используемые в вирусном коде, но по каким-то неизвестным причинам (программные недоработки или элементарная забывчивость) не смог изменить часть из них. Вирус генерирует разнообразные имена, которые используют символы ASCII кода (от 130 до 204). Получаемый код труден для чтения и восприятия, как в приведенном примере:

If Left(+ÿ¦, 1) = "'" Then

Вирус хранит свой код в глобальном шаблоне во временных строках буфера. Там же содержится массив разнообразных имен – старых и новых, которые могут встретиться в процессе мутации. Имена выбираются из набора, хранящегося внутри вирусного кода. Существует целая серия строк-комментариев, в которых хранятся эти постоянно изменяющиеся обозначения, с соответствующими инструкциями к ним. После перебора всех имеющихся случайных обозначений, вирус генерирует новые. Новые обозначения имеют случайную длину (от 2 до 22 символов) и состоят из случайных символов ASCII с кодом в пределах от 130 до 204. Новые имена также хранятся в массиве в случайном месте

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

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

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

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

If Left(var_1, 1) = "'" Then

var_2 = var_2 + 1

var_3(var_2, 1) = Mid(var_1, 2, Len(var_1))

Но тут всегда существовала опасность, что вирус мог и не записывать свой код в пустые модули, а дописывать в уже существующие (примером являются Win32 вирусы EPO viruses). В этом случае метка переменной вируса могла начинаться не с, допустим, var_1, а с var_234 и даже var_7458. В таком случае сканер должен искать четкое соответствие между названием переменной и ее нахождением в макрокоде и удалять исключительно переменные, имеющиеся в базе данных вируса. Здесь очень важно, с одной стороны, не пропустить вирусных компонентов, а с другой, очень осторожно подходить к их замене, иначе результатом будет потеря огромных массивов данных и сбой в работе основной программы, что никак не допустимо для антивирусных программ.

Заключение

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

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

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

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

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

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

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

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

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

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

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

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

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


Первый макровирус, получивший название Concept, появился в июле 1995. Впоследствии макровирусы (чаще всего заражающие документы Word) стали основным типом вирусов и оставались таковыми до конца прошлого века, когда Microsoft по умолчанию отключила макросы в Office (версии Office 2000 и выше).

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


Как распространяются макровирусы

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

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

Риски

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

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

Эти вирусы также могут быть предназначены для удаления или заражения сохраненных данных. Кроме того, важно отметить, что макровирусы являются кросс-платформенными: они могут заражать компьютеры Windows и Mac, используя один и тот же код.

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

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

Типы макровирусов

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

  • Вирус Concept
    Первым макровирусом был Concept. Он появился в июле 1995 и заражал текстовый процессор Microsoft Word. Впоследствии макровирусы стали основным типом вирусов.
  • Вирус Melissa
    Melissa вошла в историю как первый макровирус с функцией почтового червя. Он начал распространяться по электронной почте 26 марта 1999 года, заразив десятки тысяч в течение нескольких часов. Это была одна из самых серьезных эпидемий в истории Интернета.

Статьи и ссылки по теме:

Продукты:

Что такое макровирус?

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