Малварь по шагам [№6] Полиморфизм

Здравствуйте, мои маленькие любители малвари! Чувствую острую потребность расставить все точки над i в теме полиморфизма.

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

Полиморфизм, как свойство – это наличие разных ассемблерных форм, для одного и того же кода.

Мутация – это процесс морфинга кода:

  • замена опкодов на аналоги
  • смешивание целевого кода с мусорным
  • математические преобразования
  • перестановка местами блоков кода
  • генерация случайного алгоритма декриптора
  • и многие другие бинарные девиации

History chanel

В своём первоначальном значении, которое появилось более десятка лет назад:

  • Полиморфный вирус – тело вируса накрыто полиморфным декриптором.
  • Метаморфный вирус – способный мутировать своё тело целиком, пересобирая его по внутренним “чертежам”.
  • Пермутирующий вирус – способный мутировать откомпилированный код, обычно свой. То есть, он дизассемблирует код, мутирует его и кладёт на место.

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

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

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

Декрипторы

Зашифровать код и вызвать декриптор перед исполнением – наиболее распространённое решение. Код меняет свою бинарную форму? Да, он превращается в мусор и без исполнения декриптора бесполезен. Но как быть с появлением сигнатур на декрипторе? Тут на нам помощь приходит полиморфизм!

decryptor
Поиграть с этим декриптором можно здесь.

У декрипторов в современных ОС есть одна проблемка – для работы расшифрованного кода, он должен иметь атрибуты памяти Read|Write|Execute, что достигается:

  1. назначением таких прав в pe-хидерах, на что плохо реагирует эвристика хидеров.
  2. динамическим вызовом VirtualProtect(PAGE_EXECUTE_READWRITE) или VirtualAlloc(PAGE_EXECUTE_READWRITE), что может заинтересовать эвристику эмулятора.

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

Генераторы

Алгоритмы, способные создавать разные ассемблерные представления одного кода, называют полиморфными движками:

Суть любого движка в абстрагировании: от бинарной реализации мы переходим к всё более высокоуровневым формам.

Давайте мысленно проследим развитие одной команды полиморфного генератора:

  1. GEN_MOV_REG_0 – умеет генерировать одну команду mov reg,0
  2. SET_REG_0 – умеет генерировать случайную из 21 варианта
  3. SET_REG_0_TRASH – прошлый шаг щедро разбавляется мусором
  4. SET_REG_0_MEGATRASH – мусор становится сложнее, на каждый целевой опкод приходится по сотне вложенных функций с WinApi.

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

Ссылки

Почитайте эти тщательно отобранные труды, но помните о чём мы говорили выше =)

P/S Кидaйте в комменты ссылки на ваши любимые генераторы =)

Ну и конечно, Вы можете помочь Ретвитами!

8 thoughts on “Малварь по шагам [№6] Полиморфизм

  1. Не хотели бы вы написать статью посвященную запуску и ввода в эксплуатацию малвари на Win7-10 с включёнными (стандартными: смартскин, вин дефендер , uac) механизмами защиты? Также интересует мнение по поводу того, что ожидает малварщиков в будущем, ведь браузеры все больше становятся непробиваемыми, ввод новых технологий против эксплойтов на уровне ОС итп. В общем статью посвящённую запуску софта, когда юзер скачал и кликнул по нему.
    А также нигде нет внятных статей посвященых анонимной разработке софта. ФФ, ИЕ и Хром активно сливают данные о всех посещенных сайтах пользователем, мб и современные IDE от Мs не хило сливают инфу на свои сервера о разрабах? Каким образом необходимо действовать чтобы: не оставить мета данные в .ехе, не засветить айпи (даже своего ультра-квад впн-а). Если глупость написал то извините, опыта в этой сфере нету.
    Спасибо за статью.

    1. >что ожидает малварщиков в будущем
      порог вхождения будет расти, малварь будет жить

      >не оставить мета данные
      интересная тема, мб освещу далее

      >с включёнными механизмами защиты?
      обязательно будет обзор новых защит, как дойдут руки

  2. доброжелатель задал отличные вопросы. Тоже интересовался(на уровне а что если) на счет метаданных в exe, но что то подзабил. И вот уже спустя пару месяцев вижу пост доброжелателя! В общем тема про метаданные в exe актуальна. Ну а так если на вскидку то качаем vs с торрентов и ставим ее на ноут не подключенный к сети. А на счет поиска информации думаю поможет какая нибудь связка vpn + tor и т.п – но это все костыли, наверно?!

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

    1. >Почему?
      Они призваны сделать вирус недектируемым по скан-строке, оставляя детекты по проактивке. Сложность реализации не даст ожидаемой (на момент создания этих идей) побед на ав.

      1. Понятно. Скажите, а планируется ли в дальнейшем обзор актуальных техник инфекта в РЕ файлы (UEP a.k.a EPO и проч.)? Какие перспективы развития в этом направлении ожидаются в ближайшем будущем?

Добавить комментарий