Рекламна кампанія SourTrade не поширює готовий шкідливий файл. Її сторінки передають браузеру жертви інструкції складання, той завантажує чисте середовище виконання Bun зі стороннього домену й самостійно збирає з нього виконуваний файл для Windows. Через це кожен відвідувач отримує файл з унікальним хешем, а перевірка за сигнатурами втрачає більшу частину сенсу.
Хто стоїть за кампанією і кого вона атакує
Компанія Confiant, що спеціалізується на безпеці рекламних екосистем, оприлюднила технічний розбір кампанії 23 липня 2026 року. За її даними, SourTrade купує програматик-рекламу з кінця 2024 року й видає свої сторінки за сервіси TradingView, Solana та Luno. Оголошення показують у 12 країнах 25 мовами.
До переліку цільових ринків увійшли Японія, Таїланд, Південна Корея, Тайвань, Гонконг, Болівія, Бразилія, Нігерія, Туреччина, Південно-Африканська Республіка, Австралія та Велика Британія. України серед них немає, проте рекламні кампанії такого типу змінюють географію разом із ротацією доменів, тож перелік країн є станом на дату публікації звіту, а не постійною характеристикою загрози.
Набір брендів підібрано так, щоб охопити весь цикл дій роздрібного трейдера: аналітичний термінал, блокчейн-мережу першого рівня та біржу для введення й виведення коштів.
Сторінки кампанії використовують клоакінг. Вони знімають відбиток відвідувача і показують передбачуваним дослідникам та ботам порожню сторінку, тоді як відібрані жертви бачать переконливу копію сервісу, якому довіряють. Захист від цього залишається звичайним: торгове ПЗ і гаманці варто встановлювати лише з офіційного сайту виробника, а не за посиланням із рекламного блоку.
Чотири етапи складання файлу всередині браузера
Описаний Confiant ланцюжок не використовує вразливість браузера й не знімає з файлу мітку походження Mark of the Web (MotW). Аналіз документує саме доставку файлу, а не його запуск, і не встановлює, чи починається фінальне завантаження автоматично, чи потребує кліку користувача.
Підготовка починається ще до того, як відвідувач натисне кнопку завантаження. Сторінка реєструє ServiceWorker за адресою /sw.js у межах власного домену, а потім створює SharedWorker із JavaScript-коду, вже вбудованого в саму сторінку. Через це вихідний код воркера ніколи не зʼявляється в мережевих логах окремим запитом.
Далі SharedWorker звертається до кінцевої точки /config. У відповідь приходить не файл, а шаблон складання, адреса другого домену з середовищем виконання та випадкові значення, унікальні для сесії. Браузер завантажує й розпаковує з цієї адреси чисте середовище Bun — у наведеному в звіті зразку це домен purelogicbox[.]org.
Разом із шаблоном у відповіді /config надходять закодовані в Base64 блоки: заголовок Portable Executable (PE), таблиця секцій і секція .bun зі шкідливим байткодом JavaScriptCore для файлу app.js. Bun працює на рушії JavaScriptCore від Apple і штатно підтримує компіляцію застосунків і байткоду в автономні виконувані файли для Windows — саме цю легітимну функцію й експлуатують зловмисники.
Потім воркер генерує великий псевдовипадковий потік байтів за допомогою AES у режимі лічильника (AES-CTR) і виконує шаблон як покрокову інструкцію копіювання: він поєднує відібрані діапазони з середовища Bun, згенерованого потоку та підконтрольного зловмисникам виконуваного матеріалу.
На завершення сторінка передає зібраний файл до ServiceWorker у вигляді потоку. Прихований iframe переходить на адресу в межах того самого домену, а воркер повертає згенеровані байти із заголовком Content-Disposition: attachment. У результаті мітка MotW фіксує джерелом завантаження саме посадкову сторінку, а не окремий домен, з якого надійшло середовище Bun. Сама мітка при цьому нікуди не зникає.
Що метод дає зловмисникам і чого він не дає
Оскільки зерно та розмір псевдовипадкового потоку змінюються в кожній відповіді /config, кожна жертва може отримати інший за структурою файл — хеш змінюється, а код корисного навантаження залишається тим самим. «У мережі ніколи не існує готового шкідливого ПЗ», — стверджує в звіті Майкл Стіл із команди threat intelligence Confiant.
Це формулювання варто читати точно. Готового бінарного файлу в мережі справді немає, але структури PE та шкідливий байткод усе одно передаються по мережі — у вигляді Base64 у відповіді /config. Власний розділ звіту про практичні наслідки сформульовано стриманіше: унікальні збірки для кожної сесії знижують цінність простих перевірок за хешем. Це не те саме, що повна невидимість.
Патча для цієї схеми не існує, бо йдеться не про вразливість, а про поєднання штатних можливостей браузера й легітимного інструмента розробника. Тому Confiant радить аналізувати весь ланцюжок: рекламний перехід, клоакінгову сторінку, запит /config, звернення до вторинного домену за середовищем виконання та завантаження через ServiceWorker — замість того щоб вважати вирішальним якийсь один мережевий або файловий артефакт.
Як кампанія змінювалася і що відомо про кінцеве навантаження
Нинішній метод виріс із активності, яку Confiant відстежувала до 30 квітня 2026 року. Тоді сторінки підвантажували StreamSaver.js — відкриту бібліотеку для потокового завантаження — з адреси GitHub Pages її автора, і записаний шлях завантаження вказував саме на цю GitHub-адресу. Сучасні сторінки зберегли архітектуру потокового завантаження й навіть назви повідомлень із префіксом streamsaver:, але більше не звертаються до GitHub.
Повʼязаний кластер шкідливої реклами з підробкою TradingView описала Bitdefender у вересні 2025 року. Компанія нарахувала понад 500 доменів і субдоменів, зафіксувала захоплені бізнес-акаунти Google і Meta, а також зразки для macOS та Android. Початковий завантажувач вона детектує як Variant.DenoSnoop.Marte.1, а фінальним навантаженням називає стилер, який Check Point відстежує під назвою JSCEAL, а WithSecure — як WeevilProxy: перехоплення трафіку, збір паролів і cookie, кейлогінг, знімки екрана, викрадення даних криптогаманців і закріплення в системі.
Тут потрібне застереження. Confiant описує спільні характеристики кампанії та виконуваних файлів, але не демонструє, що три опубліковані нею зразки несуть саме це навантаження. У звіті також ідеться, що Bitdefender виявила в цьому кластері модифікований виконуваний файл Bun, — однак у вересневій публікації Bitdefender, на яку посилається Confiant, згадок про Bun немає. Тому перелічені вище можливості стилера поки не можна переносити на актуальні файли SourTrade.
Як захиститися
- Завантажувати торгові термінали, криптогаманці та будь-яке інше ПЗ лише з офіційного сайту розробника — переходячи із закладки або набраної вручну адреси, а не з рекламного оголошення в пошуку чи соцмережі.
- Вимкнути автоматичне збереження файлів у браузері, щоб жодне завантаження не починалося без підтвердження, — покрокова інструкція для основних браузерів.
- Не запускати щойно завантажений виконуваний файл одразу: перевірити цифровий підпис у властивостях файлу та реальну назву видавця.
- Тримати увімкненими вбудовані механізми Windows — SmartScreen і Microsoft Defender; їхню роботу можна перевірити на безпечних тестових сценаріях.
- Основні криптоактиви зберігати на апаратному («холодному») гаманці, а сид-фразу тримати офлайн: саме викрадення даних гаманців є кінцевою метою подібних кампаній.
- Памʼятати, що завантажувач із рекламного оголошення — класичний спосіб доставки троянських програм, і зовнішній вигляд сторінки нічого не гарантує.
Для команд захисту Confiant опублікувала три хеші SHA-256 і перелік шкідливих доменів — 96 записів. Автора кампанії дослідники не називають, а аналіз зупиняють на моменті, коли файл потрапляє на диск.
Хеші SHA-256 зразків:
- 9a29d26b94b708830c6eaea8a6c17616ec677adaf09114190d0e129564b2ca1b
- 05c0d056a6b3e76736d4f378541d28f24ecdf40060eeed24d8aa283d2f0120f6
- ad542ed44df306bdcbb022ae210da74abad74e978cc1e3992016976282f31976
Повний перелік доменів наведено в оригінальному звіті Confiant.

