
AliExpress: фингерпринтинг через API Web Audio
Security NetworkСодержание
Вы открываете интернет-магазин, и музыка на смартфоне внезапно замолкает. В браузере не воспроизводится видео, реклама не звучит, и даже отключение звука вкладки ничего не меняет. Лишь после закрытия вкладки AliExpress Bluetooth-наушники снова корректно переключаются на телефон.
То, что выглядело как сбой Bluetooth Multipoint, привело разработчика Мэтта Каллагана к двум сильно обфусцированным JavaScript-файлам на главной странице AliExpress. Оба в фоновом режиме создавали постоянно работающий граф Web Audio. Уровень на выходе был нулевым, поэтому ничего не было слышно. Однако для браузера, операционной системы и наушников аудиотракт оставался активным.
Находка технически интересна тем, что непреднамеренный аппаратный побочный эффект выдал невидимое измерение браузера. С точки зрения безопасности она еще интереснее, поскольку Web Audio был лишь одним компонентом. Скрипты также проверяли Canvas, WebGL, экран, оборудование, поддерживаемые медиаформаты, WebRTC и взаимодействия пользователя. В результате получается комплексный отпечаток браузера и устройства.
Опасность этого случая не в особо секретном аудиотрюке, а в широте измерений и в том, что они незаметно начинались уже на обычной главной странице магазина.
Сбой Bluetooth, который оказался не сбоем
Каллаган использует наушники Multipoint, одновременно подключенные к ПК и смартфону. Обычно он слушает музыку с телефона. Когда ПК действительно воспроизводит звук, он перехватывает воспроизведение. Именно это переключение приоритета стало зависать, если AliExpress был открыт в Firefox или Chrome. Другие браузеры он не тестировал.
Обычные подозреваемые отпали. На странице не было аудио- или видеоэлементов, вызовов HTMLMediaElement.play(), активной Media Session или заметного медиафайла в сетевом трафике. Выделялось лишь то, что помеха возникала через несколько секунд после загрузки страницы.
Поэтому Каллаган инструментировал API Web Audio. Он заменил конструктор AudioContext оберткой, регистрировал новые аудиоконтексты и отслеживал соединения через AudioNode.connect(). Появились два активных контекста, трассировки стека которых указывали на следующие скрипты:
assets.aliexpress-media.com/g/AWSC/uab/1.140.0/collina.js
assets.aliexpress-media.com/g/AWSC/fireyejs/1.231.67/fireyejs.js
Оба находились в пути AWSC и по своим функциям выглядели как части инфраструктуры Alibaba для безопасности браузера и выявления злоупотреблений. Такая атрибуция правдоподобна, но одни имена файлов не доказывают ее окончательно. При этом Alibaba Cloud прямо описывает для своего Anti-Bot Web SDK веб-сборщик, работающий вместе с серверной оценкой.
Поведение удалось сузить: после блокировки обеих групп скриптов в контрольном измерении Каллагана не создавались ни аудиоконтексты, ни соединения с аудиовыходом. Главная страница и обычный поиск товаров в его тесте продолжали работать.
Что именно делает граф Web Audio
Web Audio не является скрытой функцией прослушивания. Это мощный интерфейс браузера для игр, синтезаторов, видеоконференций и других интерактивных приложений. Вместо простого воспроизведения файла сайт может связать отдельные узлы обработки в граф.
В упрощенном виде исследованные скрипты AliExpress строили следующую цепочку:
OscillatorNode с пилообразной волной
-> AnalyserNode
-> ScriptProcessorNode
-> GainNode с усилением 0
-> AudioContext.destination
Осциллятор генерирует известный сигнал. AnalyserNode предоставляет данные обработки, а JavaScript считывает значения частот. Затем GainNode устанавливает уровень в ноль. Сигнал становится неслышимым, но граф остается соединенным с AudioContext.destination, то есть с выходом реального времени.
Именно это соединение объясняет побочный эффект. Нулевая громкость не означает нулевую обработку. Браузер продолжает рассчитывать граф, и на Windows-системе Каллагана этого, по-видимому, хватало для сохранения аудиотракта ПК активным. Автоматическое переключение Multipoint поэтому продолжало считать ПК активным источником.
Для чисто вычислительного измерения логичнее использовать OfflineAudioContext. Он рендерит граф прямо в буфер памяти, не отправляя его на динамики или аудиоустройство системы. В графе AliExpress осциллятор и анализ также расположены до обнуленного выхода. Подключение к живому выходу не давало видимой дополнительной пользы уже считанным частотным данным, зато вызывало заметный побочный эффект.
Mozilla зафиксировала тот же эффект еще в 2023 году
В 2026 году наушники Каллагана дали получившую огласку подсказку. Однако базовый эффект браузера Mozilla зарегистрировала еще в ноябре 2023 года как Bug 1863193. Первоначальный отчет о Firefox 119 описывал страницы AliExpress, которые в Windows 11 создавали постоянный запрос питания для аудио. powercfg /requests показывал активный аудиопоток, хотя во вкладке не отображалось воспроизведение. Компьютер переставал автоматически переходить в спящий режим. После закрытия вкладки запрос исчезал.
Разработчик Mozilla Карл Томлинсон включил журналирование Web Audio. Журнал дважды показал именно ту цепочку, которую позднее описал Каллаган: OscillatorNode, AnalyserNode, ScriptProcessorNode, беззвучный GainNode и AudioDestinationNode. Томлинсон наблюдал похожее постоянное использование устройства в Chrome и отметил, что AliExpress мог бы прекратить его с помощью AudioContext.suspend().
Это важное независимое подтверждение. Аппаратный побочный эффект основан не только на интерпретации обфусцированного скрипта Каллаганом. За несколько лет до этого Mozilla напрямую зарегистрировала в браузере активный граф и его влияние на управление питанием Windows. Баг до сих пор открыт. Он также показывает разделенную ответственность: AliExpress мог приостановить контекст после измерения, а браузер мог раньше отключить от аудиоустройства фактически беззвучный и больше не нужный граф.
Ни микрофона, ни ультразвука в комнате
Здесь важна точность формулировок. В этом тесте AliExpress не записывал микрофон и не слушал звуки в комнате. Доступ к микрофону выполнялся бы через getUserMedia() и потребовал бы разрешения пользователя.
Столь же ошибочно представлять, будто магазин излучал ультразвуковой сигнал через динамики, а затем физически принимал его обратно. Измерение происходило внутри аудиообработки браузера. Пилообразная волна рассчитывалась, анализировалась и обнулялась перед выходом. Эффект на наушниках возникал потому, что виртуальный граф все равно оставался подключен к реальному выходу.
Почему одинаковые вычисления могут давать разные результаты
Цифровая обработка сигналов включает множество операций с плавающей точкой. Архитектура CPU, математические библиотеки, решения компилятора, реализация браузера и округление могут создавать небольшие различия. Стандарт Web Audio прямо называет OscillatorNode, DynamicsCompressorNode, частоту дискретизации, задержку и временные измерения возможными поверхностями фингерпринтинга. Поэтому браузеры должны ограничивать такие различия.
Однако результат Web Audio не является волшебным серийным номером оборудования. Несколько устройств могут выдавать одинаковое значение, а браузер может унифицировать или изменять результаты. Распознаваемость возрастает при сочетании с другими признаками.
Метод используется как минимум с 2016 года
Аудиофингерпринтинг не является открытием 2026 года. Стивен Энглхардт и Арвинд Нараянан исследовали миллион сайтов для работы OpenWPM, опубликованной на ACM CCS в 2016 году. Они обнаружили фингерпринтинг AudioContext в трех скриптах на 67 сайтах. По результатам ручного анализа два скрипта действительно активно применяли эту технику.
Там осциллятор также генерировал известный сигнал, который обрабатывался, считывался и хешировался. Один из документированных вариантов проводил граф через AnalyserNode, ScriptProcessorNode и беззвучный GainNode к выходу. Структура удивительно близка к схеме AliExpress. Исследователи из Принстона уже тогда подчеркивали, что микрофон не нужен, а методы фингерпринтинга обычно комбинируются.
Новизна случая AliExpress заключается не в основной идее. Новы конкретная находка на одном из крупнейших маркетплейсов, широкое сочетание других характеристик и прежде всего побочный канал, сделавший измерение заметным.
Аудиозначение было лишь одной частью пазла
В исследованных пакетах Каллаган нашел запросы и измерения множества других характеристик:
- рендеринг Canvas и
toDataURL() - рендерер WebGL, расширения и точность шейдеров
- размеры экрана и viewport, а также Device Pixel Ratio
hardwareConcurrencyиdeviceMemory- установленные плагины и поддерживаемые медиаформаты
- поведение WebRTC и измерение производительности
- события мыши, касания, фокуса и прокрутки
- движение и ориентация устройства
- свойства, способные указать на автоматизацию браузера или ботов
Код также содержал процедуры сериализации и шифрования результатов и их передачи через fetch() или sendBeacon(). На стороне клиента тем самым доказано, что широкий набор пригодных для фингерпринтинга данных может собираться и отправляться сервисам Alibaba.
Что происходит на сервере, не доказано. Из браузера нельзя узнать ни срок хранения, ни последующее связывание с аккаунтами, заказами, другими предложениями Alibaba или рекламными профилями. Сам Каллаган прямо указывает на это ограничение.
В политике конфиденциальности AliExpress среди прочего упоминает данные браузера и ОС, характеристики оборудования и ПО, уникальные идентификаторы устройства, шаблоны использования и взаимодействия. Среди целей наряду с работой и персонализацией названы выявление мошенничества, отмывания денег и инцидентов безопасности. Политика не делает наблюдаемую техническую реализацию прозрачной, но показывает, что обширные данные об устройстве и использовании входят в описанную модель данных.
Фингерпринтинг не обязательно означает рекламное отслеживание
Отпечатки браузера применяются в самых разных контекстах. Рекламные сети могут узнавать браузер даже после удаления cookie. Интернет-магазины и платежные сервисы используют похожие сигналы для оценки риска, обнаружения захвата аккаунтов, злоупотребления купонами, скрейпинга, ботов или автоматизированных покупок.
Эти цели не исключают друг друга. Один идентификатор устройства может одновременно служить интересам безопасности и маркетинга. Однако найденный JavaScript не доказывает конкретную межсайтовую рекламную кампанию. Вывод «AliExpress отслеживает каждого пользователя на всех сайтах» выходит за рамки имеющихся доказательств.
Тем не менее для оценки безопасности случай остается проблемным:
- Измерение начиналось уже на общей главной странице, а не только при входе или оплате.
- Скрипты были сильно обфусцированы и практически непонятны пользователям.
- Сбор охватывал намного больше одного антибот-сигнала.
- Активный аудиограф не был внятно виден в интерфейсе и не прекращался при отключении звука вкладки.
- Фоновая функция настолько вмешивалась в локальный аудиотракт, что меняла поведение внешнего оборудования.
Понятная защита от мошенничества не обязана публиковать инструкцию по реализации. Но она требует минимизации данных, четкого ограничения цели и интерфейса, поведение которого не противоречит ожиданиям пользователя. Беззвучная вкладка магазина не должна занимать аудиотракт реального времени.
Насколько уникальным был этот аудиоотпечаток?
Разработчик Firefox Том Риттер извлек соответствующее вычисление Web Audio и сравнил его с телеметрией Firefox. Результат существенно смягчает алармистские представления.
Начиная с Firefox 118, Web Audio на всех платформах использует математическую библиотеку FDLIBM, чтобы уменьшить системные различия. В анализе Риттера 99,24 процента пользователей приходились всего на три результата. Еще у 0,76 процента точка измерения завершалась ошибкой и возвращала ноль. Три основные группы в основном соответствовали классам CPU: x86 или x64 без FMA, x64 с FMA и ARM с NEON.
Для конкретного метода AliExpress это означает, что в Firefox аудиозначение не было индивидуальным почти для всех исследованных пользователей. Оно скорее раскрывало грубый класс процессора, чем отдельное устройство. Однако сохранялся небольшой длинный хвост других значений, а редкие значения как раз способны сильнее выделить соответствующие системы.
Слабое отдельное значение не становится безобидным, если входит в сильный профиль из графики, оборудования, поведения и уже имеющейся информации аккаунта.
Фингерпринтинг работает с комбинациями. Размер экрана, часовой пояс или класс CPU по отдельности обычно банальны. Canvas, WebGL, шрифты, сведения об оборудовании, особенности браузера, модели взаимодействия и существующий вход в аккаунт вместе могут быть гораздо более различающими. Поэтому значение Web Audio не обязано быть уникальным, чтобы оставаться полезным в общей оценке.
Защита браузера — гонка вооружений с побочными эффектами
Браузеры придерживаются разных стратегий. Firefox унифицирует некоторые вычисления и блокирует известные сервисы фингерпринтинга. Начиная с Firefox 145, расширенные меры защиты первоначально активны в приватном режиме и при строгой усиленной защите от отслеживания. Mozilla сама подчеркивает, что более агрессивная унификация может нарушать законные функции.
Brave слегка изменяет пригодные для фингерпринтинга результаты, например значения Canvas и Web Audio. Такое Farbling остается стабильным в рамках одного сайта и сеанса, но должно давать разные результаты между сайтами и сеансами. Приложение продолжает получать правдоподобные значения, но ему сложнее использовать их как устойчивый глобальный идентификатор.
WebKit ограничивает в Safari различные поверхности фингерпринтинга, включая локально установленные шрифты и некоторые данные устройства. Особо рискованные интерфейсы WebKit иногда вообще не реализует, пока не появится безопасный, по его мнению, способ. Это показывает основной конфликт: интерфейсы, позволяющие создавать сложные веб-приложения, одновременно расширяют поверхность измерения браузера.
Ни один обычный браузер не может гарантировать исчезновение всех форм фингерпринтинга. Когда один признак унифицируется, поставщики переходят к другим признакам или поведенческим сигналам. А особенно необычная комбинация расширений, шрифтов и ручных настроек защиты в худшем случае может сделать сам браузер еще более редким.
Что конкретно могут сделать пользователи
Разумная основа — актуальный браузер с активной защитой от фингерпринтинга. В Firefox для расширенного уровня важны строгая усиленная защита от отслеживания или приватное окно. Brave по умолчанию включает Shields и противодействие фингерпринтингу. В Safari следует использовать актуальные версии ОС и браузера. Tor Browser и Mullvad Browser идут дальше для чувствительных сеансов: они стараются сделать отпечатки максимально большого числа пользователей похожими. В них как раз не следует добавлять собственные отклонения и расширения.
Одних приватных окон недостаточно. Они ограничивают сохраненное состояние, но не делают аппаратные и браузерные характеристики автоматически невидимыми. Удаление cookie также не сбрасывает отпечаток так же, как идентификатор cookie.
VPN решает другую проблему. Он заменяет видимый публичный IP-адрес и в зависимости от применения защищает транспорт до VPN-провайдера. Но VPN не меняет автоматически Canvas, WebGL, аудиовычисления, шрифты или аппаратные характеристики. Поэтому VPN может быть полезен, но сам по себе не защищает от браузерного фингерпринтинга.
Точечная блокировка двух скриптов в uBlock Origin
Каллаган опубликовал два намеренно узких фильтра для uBlock Origin:
! AliExpress AWSC fingerprinting scripts
||assets.aliexpress-media.com/g/AWSC/uab/*/collina.js$script,domain=aliexpress.com
||assets.aliexpress-media.com/g/AWSC/fireyejs/*/fireyejs.js$script,domain=aliexpress.com
После добавления в раздел Мои фильтры уже открытые вкладки AliExpress необходимо закрыть. Последующая блокировка скрипта не завершает ранее созданный им аудиоконтекст.
Эти правила являются снимком текущего состояния. Пути, версии и имена файлов могут измениться. Поскольку скрипты, вероятно, относятся к антибот- и риск-инфраструктуре, возможны дополнительные CAPTCHA или проблемы со входом и оформлением заказа. Если законную транзакцию завершить не удается, правило можно временно отключить только для этой операции, а затем снова закрыть вкладку.
Блокировка всего хоста assets.aliexpress-media.com на уровне DNS была бы гораздо грубее. Там могут размещаться другие ресурсы магазина. Узкое правило URL поэтому контролируемее полной блокировки домена.
Полное отключение JavaScript редко практично
Без JavaScript это измерение работать не может. Но современные магазины при этом почти перестают функционировать. Глобальное отключение также создает необычное состояние браузера и не заменяет разумное разделение аккаунтов, профилей и чувствительных действий.
Для особенно чувствительных исследований может пригодиться отдельный, минимально измененный браузер. Это ограничивает связывание с повседневным профилем, но не гарантирует анонимность. IP-адрес, вход в аккаунт, платежные данные и серверные сигналы остаются неизменными.
Юридический вопрос выходит за рамки cookie
В Европе «без cookie» не означает «без согласия». Окончательные Рекомендации 2/2023 Европейского совета по защите данных намеренно трактуют техническую область статьи 5(3) Директивы ePrivacy шире классических cookie. Значимым может быть и доступ к информации, хранящейся на конечном устройстве или создаваемой там программным и аппаратным обеспечением.
Допустима ли конкретная реализация AliExpress, зависит, среди прочего, от фактической цели, необходимости, регионального внедрения правил ePrivacy, прозрачности и дальнейшей обработки. Борьба с мошенничеством может быть законной целью. Но это не дает автоматического ответа, необходим ли каждый собираемый на главной странице признак для этой цели и требуется ли согласие.
Эта статья не заменяет юридическую оценку. Технически случай показывает, почему одни баннеры cookie не полностью отражают реальность современной идентификации. Пользователь может отклонить все видимые маркетинговые cookie и все равно измеряться first-party JavaScript.
Основа проверки и ограничения
Последний раз я проверял технический анализ, данные браузеров и общедоступные политики 31 августа 2026 года. Конкретная находка AliExpress основана на документированном тесте Каллагана в Windows с Firefox и Chrome и его инструментировании API Web Audio. Дополнительно использованы независимый отчет Mozilla, анализ Риттера извлеченного аудиометода, исследование OpenWPM и первичная документация W3C, Mozilla, Brave, WebKit, Alibaba Cloud, AliExpress и EDPB.
Два указанных Каллаганом версионированных URL скриптов при моей проверке по-прежнему отвечали HTTP 200 с типом application/javascript. Однако я не запускал скрипты сам в контролируемом аккаунте AliExpress и не воспроизводил Bluetooth-эффект на собственных наушниках. Другие ОС, браузеры, регионы, A/B-тесты или измененные версии скриптов могут вести себя иначе. Серверное хранение, скоринг, связывание идентичностей и использование переданных значений не были видны и поэтому не являются собственными выводами этой статьи.
Мой вывод
Случай не доказывает тайного ультразвукового наблюдения и не подтверждает, что одно аудиозначение однозначно идентифицирует каждый компьютер. Зато он хорошо показывает, насколько широко современные сайты могут использовать браузер как измерительный инструмент незаметно для пользователей.
Антифрод-объяснение технически правдоподобно. Крупному маркетплейсу приходится бороться с ботами, захватом аккаунтов, платежным мошенничеством и злоупотреблением купонами. Но это не оправдывает автоматически любое измерение на любом этапе пути клиента. Тот, кто уже на главной странице собирает аудио-, графические, аппаратные, WebRTC- и поведенческие характеристики, должен отвечать на вопросы о необходимости, прозрачности и побочных эффектах.
В итоге измерение сделала видимым не панель конфиденциальности. Это была пара Bluetooth-наушников, отказавшаяся притворяться, что браузер молчит.
До следующего раза,
Джо
Источники
- Мэтт Каллаган: исходный анализ скриптов AliExpress и фильтры uBlock
- Том Риттер: значения и классы CPU отпечатка Web Audio AliExpress в Firefox
- Mozilla Bug 1863193: AliExpress сохраняет аудиотракт Windows активным
- Princeton Web Census: фингерпринтинг AudioContext на 67 сайтах
- W3C: Web Audio API, аспекты безопасности и конфиденциальности
- AliExpress: политика конфиденциальности о данных устройства, использования и безопасности
- EDPB: Рекомендации 2/2023 о технической области статьи 5(3) Директивы ePrivacy


