Компания 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 отличается способностью сохранять постоянство на системе, масштабами атак и агрессивным использованием PowerShell.