Maximize
Bookmark

VX Heaven

Library Collection Sources Engines Constructors Simulators Utilities Links Forum

Вирусные технологии: что дальше

Z0mbie
Top Device Online [11]
Ноябрь 2000

[Вернуться к списку] [Комментарии]

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

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

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

Как показывает практика, технология UEP (unknown entry point), она же EPO, то бишь варианты вставки перехода на вирус в середину файла, не очень помогает в плане недетектируемости.

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

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

Каким же образом улучшить UEP?

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

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

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

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

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

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

Почему сложность вируса должна увеличиваться?

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

Рассмотрим такую ситуацию:

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

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

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

В результате подобной техники станет возможным "собирать" новые модификации наших недетектируемых вирусов "на местах"... К чему это приведет -- можно только догадываться. Там посмотрим. ;-)

By accessing, viewing, downloading or otherwise using this content you agree to be bound by the Terms of Use! vxheaven.org aka vx.netlux.org
deenesitfrplruua