Как взлом Adform подменял криптокошельки?

Злоумышленники внедрили вредоносный код в JavaScript-файл trackpoint-async.js, распространявшийся рекламной технологической компанией Adform с узла s2.adform[.]net. Скрипт распознавал адреса кошельков Bitcoin, Ethereum и Tron, после чего менял их на строки, заданные атакующими. Согласно документации Adform, этот код отслеживания можно устанавливать на одной странице, в нескольких разделах или сразу на всём сайте. Поэтому преступникам не требовалось взламывать каждого клиента отдельно: заражение общего ресурса превратило инцидент в атаку на цепочку поставок программного обеспечения.
Adform сообщила, что обнаружила вредоносный код 27 июля 2026 года, удалила его, уведомила затронутых клиентов и обратилась в правоохранительные органы. В публичном извещении эта же дата указана как период инцидента. С хронологией, впрочем, остаётся проблема. Независимый исследователь безопасности Кевин Бомонт (Kevin Beaumont) заявил, что наблюдал вредоносную активность, доставлявшуюся через Adform, в течение предыдущей недели. Компания пока не объяснила расхождение между его наблюдениями и собственной датировкой.
Рисковал любой человек, который открыл сайт с изменённым скриптом и работал там с криптовалютным адресом. Посетитель, скопировавший 27 июля адрес Bitcoin, Ethereum или Tron, мог вставить уже другую строку и отправить деньги постороннему получателю. Буфер обмена был лишь одним из каналов подмены. Код переписывал адреса в тексте страницы, в полях форм и в значениях, которые сайт заносил туда программно; он также вмешивался в операции копирования, вырезания, вставки и ввода.
Макс Маас (Max Maass) опубликовал сохранённую копию заражённого скрипта 27 июля 2026 года. К обычной библиотеке Adform были дописаны два вредоносных блока. В обоих находились зашифрованные шестибайтовым XOR-ключом строки подмены для шаблонов адресов Bitcoin, Ethereum и Tron. В исследованном образце строки были жёстко записаны в коде, хотя Бомонт заметил, что адреса получателя, по-видимому, менялись.
Первый блок следил за событием copy и каждые четыре секунды пытался прочитать буфер обмена. Найдя криптовалютный адрес подходящего формата, он заменял его строкой атакующего. При загрузке страницы блок также пытался отправить HTTP-запрос на 84.32.102[.]230:7744. В запрос включались имя хоста открытого сайта и путь страницы. Сам образец подтверждает наличие такой функции, но не доказывает, что соединение состоялось и сервер действительно получил данные.
Второй блок перебирал текстовые узлы документа и искал адреса внутри элементов input, textarea и contenteditable. После правки он восстанавливал положение курсора, поэтому пользователь мог ничего не заметить. Код перехватывал сеттер value у полей input и textarea, меняя даже те значения, которые записывал сам сайт, а также обрабатывал события copy, cut, paste и input. Повторное копирование не гарантировало спасения. Бомонт описал это так: «Даже если вы заметите, что адрес неверный, и снова скопируете кошелёк, код продолжит его подменять».
На момент проверки Бомонтом сервис VirusTotal не обнаруживал угроз ни в заражённом файле, ни в связанных URL-адресах, доменах и IP-адресах. Из опубликованных технических признаков известны файл trackpoint-async.js, хост s2.adform[.]net, адрес 84.32.102[.]230:7744, шестибайтовая XOR-обфускация и обработка трёх типов кошельков. Поведение охватывало проверку буфера каждые четыре секунды, прямой ввод, программную запись значений и четыре браузерных события. При этом Adform не выпустила формального перечня индикаторов компрометации.
По данным Adform, код не устанавливал программы на устройства посетителей и не создавал механизмов постоянного присутствия. Он действовал лишь пока заражённая страница оставалась открытой. Но копия trackpoint-async.js могла сохраниться в кэше браузера и загружаться уже после удаления вредоносной версии с серверов. Компания поэтому рекомендовала очистить кэш, внимательно проверять конечный адрес перед переводом, особенно для Bitcoin, Ethereum и Tron, и сверять именно строку, показанную в момент оплаты. Простое повторное копирование адреса не считалось надёжной проверкой.
Adform заявила, что не нашла доказательств передачи IP-адресов посетителей или сведений о посещённых ими сайтах. Одновременно в уведомлении компании сказано: «Технический анализ указывает, что такая передача могла быть возможна». Эта оговорка согласуется с функцией отправки имени хоста и пути страницы на внешний сервер. Неизвестно, выполнился ли запрос, принял ли сервер сведения и дошли ли они до атакующего либо оператора инфраструктуры.
Масштаб заражения не установлен. В годовом отчёте Adform за 2025 год указаны около 1800 клиентов, 1,5 миллиарда показов рекламы ежедневно и обслуживание либо проведение рекламных операций более чем в 180 странах. Эти цифры описывают всю платформу, а не число пострадавших: Adform не сообщила, сколько клиентов и сайтов загрузили изменённый файл, сколько посетителей его получили и сколько переводов могло быть перенаправлено. Нет данных о числе заражённых загрузок страниц, способе проникновения в канал распространения скрипта, успешной краже средств и фактической передаче сведений на внешний сервер. Также не установлены точная продолжительность атаки и личность злоумышленника; Adform публично никого не назвала. Пока версия компании о единственном дне не согласована с недельным периодом, замеченным Кевином Бомонтом, достоверно оценить общее число подвергшихся риску пользователей невозможно.


Новое на сайте

Ссылка