Vidar усложняет расшифровку строк виртуальной машиной и шифрами

Vidar, семейство вредоносного ПО для кражи информации, меняло механизм обфускации строк от простого однобайтового шифрования XOR до механизмов, специфичных для отдельных сборок. В ранних версиях применялось шифрование XOR, во внутренней версии 1.5 появился механизм на основе ChaCha20, а начиная с версии 1.8 ChaCha20 модифицировали для усложнения обнаружения и расшифровки.

Начиная с внутренней версии 2.0 Vidar объединяет легковесную виртуальную машину с собственными потоковыми шифрами. Такая архитектура сохраняется в версиях 2.x и 3.x. Виртуальная машина использует интерпретатор байткода с циклом «получение, декодирование, выполнение». Каждое значение байткода индексирует разреженную таблицу диспетчеризации из 256 записей. При инициализации таблица содержит 14 обработчиков операций, а неопределённые записи приводят к завершению выполнения.

Интерпретатор не использует стек и в основном работает с однобайтовым аккумулятором. Обработчики операций выполняют базовые действия:

  • операцию XOR;
  • сложение;
  • вычитание;
  • побитовые циклические сдвиги;
  • побитовое отрицание;
  • умножение;
  • подстановку по таблице.

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

Vidar использует два широких класса собственных потоковых шифров. Версии 2.0 и 2.1 реализуют модифицированный шифр на основе ChaCha с собственным начальным состоянием размером 128 бит, ключом длиной восемь байт, одноразовым значением длиной четыре байта и поворотами в четвертных раундах, специфичными для образца. Версия 2.2 и более поздние используют шифр ARX, основанный на операциях сложения, циклического сдвига и XOR.

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

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Технологии киберугроз
Автор: Технологии киберугроз
Технологии киберугроз – технологическая компания, специализирующаяся на решениях по анализу угроз для предприятий любого размера. Мы собираем, нормализуем, обогащаем информацию о киберугрозах со всего мира. Нашими источниками являют более 260 открытых фидов, более 100 открытых поставщиков Threat Intelligence-отчетов, открытые online sandbox, социальные сети и репозитории GitHub. Мы также предоставляем ряд сервисов по: семантическом анализу Threat Intelligence-отчетов и приведения их в машиночитаемый формат STIX 2.1, проверки IoC на потенциальные ложноположительные сработки, а также получению WHOIS-записей для доменных имен.
Комментарии:

Как мы обрабатываем данные: политика обработки персональных данных