Как хакеры используют движок V8 для обхода обнаружения
10/07/24
Компания Check Point провела детальное расследование использования злоумышленниками компилированного JavaScript-движка V8. Эксплуатируемый хакерами метод позволяет компилировать JavaScript в низкоуровневый байт-код. Такая техника помогает скрывать исходный код и избегать статического анализа, что делает анализ вредоносных файлов практически невозможным, пишет Securitylab.
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-сервером для получения и выполнения вредоносного кода.