главное в кибербезопасности Читать в канале
Уязвимости 22 сентября 2026 2 мин

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

Vidar эволюционировал от XOR к виртуальной машине и потоковому шифру

Vidar — это вредоносное ПО для кражи информации, впервые обнаруженное в 2018 году. Разработчик постоянно совершенствует методы обфускации строк, чтобы затруднить обнаружение и анализ. В период с мая по сентябрь 2026 года Zscaler ThreatLabz отслеживал изменения в обфускации строк Vidar. Изначально использовался простой XOR, затем алгоритм ChaCha20, а в последних версиях — пользовательская виртуальная машина (ВМ) с интерпретатором байт-кода и пользовательский потоковый шифр, который меняется в каждой сборке.

Виртуальная машина и потоковый шифр усложняют анализ

В версиях 2.x и 3.x Vidar применяет простую виртуальную машину для обфускации строк. ВМ выполняется с помощью интерпретатора байт-кода, который включает цикл выборки-декодирования-исполнения. Код ВМ представлен в виде массива байт. Каждый байт опкода индексирует таблицу диспетчеризации, состоящую из 256 записей. Соответствующий обработчик изменяет однобайтовый аккумулятор и выдает выходной байт при обнаружении определенного опкода. Таблица диспетчеризации инициализируется при первом использовании и содержит 14 обработчиков опкодов. Остальные слоты таблицы пусты и завершают выполнение. Интерпретатор ВМ не использует стек или регистры, кроме аккумулятора. Обработчики применяют простые примитивы: XOR, сложение, вычитание, вращение, побитовое НЕ, умножение и подстановку через таблицу поиска. Интерпретатор использует структуру контекста, передаваемую каждому обработчику, и выполняется до исчерпания байт-кода или выходного буфера.

ВМ используется двумя способами: для прямой деобфускации строк и для расшифровки ключа и nonce для строк, зашифрованных пользовательским потоковым шифром. В версиях 2.0 и 2.1 первые 9 байт используются как ключ, а последние 4 байта — как nonce. Начиная с версии 2.2, ключ составляет 8 байт. Пользовательский потоковый шифр затем использует ключ и nonce для расшифровки дополнительного массива байт с зашифрованной строкой.

Пользовательский потоковый шифр дополняет обфускацию ВМ

Помимо обфускации на основе ВМ, Vidar использует пользовательский потоковый шифр для расшифровки некоторых строк. Интерфейс шифра остается неизменным, но реализация варьируется. Zscaler ThreatLabz выделил две основные реализации: модифицированный шифр на основе ChaCha и шифр на основе операций сложения-вращения-XOR (ARX). В версиях 2.0 и 2.1 Vidar применяет шифр на основе ChaCha с модификациями: пользовательское 128-битное начальное состояние, 8-байтный ключ, 4-байтный nonce и различные вращения в четверть-раундах, меняющиеся между образцами. Версии 2.2 и новее используют пользовательский потоковый шифр, который инициализирует состояние, а затем применяет ARX-преобразования для генерации потока ключей. Поток ключей инициализируется с использованием ранее расшифрованных ключа и nonce из ВМ. Инициализация состояния с ключом выполняется с использованием умножения на константу FNV-1a. Затем применяются ARX-преобразования для генерации байта потока ключей, который XOR-ится с входными данными.

Zscaler обеспечивает защиту от Vidar

Многоуровневая облачная платформа безопасности Zscaler обнаруживает индикаторы, связанные с Vidar, на различных уровнях. Облачная песочница Zscaler предоставляет детали обнаружения вредоносного ПО. Помимо обнаружения в песочнице, платформа Zscaler выявляет угрозы, связанные с Vidar, под различными именами угроз.

Источник: Zscaler ThreatLabz