Бесплатно Экспресс-аудит сайта:

10.07.2024

Код-призрак: как хакеры используют движок V8 для обхода обнаружения

Компания Check Point провела детальное расследование использования злоумышленниками компилированного JavaScript -движка V8. Эксплуатируемый хакерами метод позволяет компилировать JavaScript в низкоуровневый байт-код. Такая техника помогает скрывать исходный код и избегать статического анализа, что делает анализ вредоносных файлов практически невозможным.

V8 — это JavaScript-движок с открытым исходным кодом, разработанный Google и используемый в браузере Chrome, а также в других проектах, таких как Node.js. Основная задача V8 — оптимизация и ускорение выполнения JavaScript-кода путём его преобразования в байт-код. Однако эта функция также используется злоумышленниками для сокрытия исходного кода своих вредоносных программ.

Для компиляции JavaScript в байт-код используется модуль vm в Node.js, который предоставляет метод vm.Script. Этот метод компилирует JavaScript-код и сохраняет его в виде байт-кода. Более удобным способом является использование библиотеки bytenode, которая упрощает процесс компиляции и выполнения байт-кода.

Для анализа компилированного V8 JavaScript специалисты CPR разработали инструмент View8. Этот инструмент позволяет декомпилировать байт-код V8 в читаемый высокоуровневый код, что помогает выявлять и анализировать вредоносные файлы. С его помощью были проанализированы тысячи вредоносных приложений, включая трояны удалённого доступа, инфостилеры, криптомайнеры и программы-вымогатели.

Один из примеров использования компилированного V8 JavaScript — это ChromeLoader . Этот вредоносный софт «угоняет» аккаунты, крадёт данные и запускает прочие вредоносные программы. Вредоносное ПО использует байт-код V8, что затрудняет его обнаружение и анализ. В последних версиях ChromeLoader, вредоносное ПО использует фреймворк Electron для создания настольных приложений, в которые внедряются вредоносные скрипты.

Также были обнаружены образцы программ-вымогателей и вайперов, которые шифруют файлы жертв или перезаписывают их случайными данными. Эти программы тоже используют байт-код V8 для сокрытия своих действий. Например, один из обнаруженных образцов программ-вымогателей шифрует файлы на диске с использованием алгоритма AES и отправляет информацию о жертве злоумышленнику через Discord.

Ещё один тип вредоносного ПО — загрузчики оболочек, которые загружают и выполняют вредоносный код с удалённых серверов. Эти программы используют модули ffi-napi и ref-napi для выполнения динамических библиотек и загрузки оболочки в память системы. Загрузчики устанавливают связь с C2 -сервером для получения и выполнения вредоносного кода.

Злоумышленники постоянно ищут новые способы сокрытия своих действий, и использование V8 JavaScript становится одним из таких методов. Для защиты от подобных угроз рекомендуется использовать современные инструменты анализа, такие как View8, регулярно обновлять антивирусное ПО, и быть внимательными к подозрительным файлам и ссылкам.