Этот блок виден только в dev — в проде собирается тихо и отправляется на сервер.
🎯 UNIFIED RISK SCORE — summary
Запускает все probes и агрегирует risk score по casino-activity indicators.
В продакшне эта секция НЕ показывается плательщику — отправляется в antifraud backend.
—
—
Embed Profile — определяем контекст загрузки
...
Server-side headers (Sec-Fetch-* и прочее)
загружается...
Casino Session Probes — Storage Access timing
Проверяем, посещал ли этот плательщик известные казино недавно (эвристика Storage Access API)
(ожидание)
Browser fingerprint (слой 2)
Network — WebRTC IPs
загружается...
⭐⭐ Connection POOL EXHAUSTION (техника Abello 2025) — настоящая
Заполняем ГЛОБАЛЬНЫЙ пул 256 сокетов висящими запросами на *.localhost:9000/hang
(каждый субдомен = своя socket group). Остаётся 1 сокет. Целевой запрос к казино
берёт его. Наш probe к /fast ЖДЁТ освобождения. Время probe ≈ время завершения
целевого — замер через socket contention, БЕЗ Timing-Allow-Origin.
Chrome это НЕ чинит (глобальный лимит 256 общий даже при партиционировании reuse).
Открой табы казино + подожди, потом жми.
Socket pool в Chrome НЕ партиционирован (в отличие от HTTP cache). Если у юзера
открыт/недавно был таб казино — живой keep-alive коннект. Наш cross-origin fetch
переиспользует его → connectTime≈0. Нет коннекта → полный handshake.
Чтобы протестить: держи открытым таб oldkush-spin.com / luckmore / himera, потом жми.
(ожидание)
HTTP Cache Oracle — DEMO что НЕ работает в современных браузерах
Демонстрация: пытаемся по тайммингу load'а бандла узнать, был ли юзер на казино.
До Chrome 86 (октябрь 2020) это работало. Сейчас — cache partitioned by top-level site,
cross-site cache lookup MISS, идёт в сеть. Сигнала нет.
(ожидание)
📱 Localhost App Detection (Yandex/Meta technique)
Казиковые mobile apps (Pin-Up, 1xBet, Fonbet, BetBoom, Winline) часто держат
LOCAL http-сервер на известных портах для push/sync/deeplinks. Если `fetch('http://127.0.0.1:PORT/')`
отвечает — приложение установлено и запущено на устройстве. Работает только когда юзер на том же устройстве.
На desktop браузере вернёт negative. На mobile Chrome / Yandex Browser — реально палит installed apps.
(ожидание)
⭐⭐ DNS / Connect Timing Oracle (NDSS 2026)
DNS cache ОС-уровня не партиционирован в Chrome 155+ (ранее Google убрал только :visited partition).
Для каждого казикового домена грузим favicon через `new Image()` и замеряем total time.
Если домен недавно резолвился (TTL 60-300s) → быстрый hit (DNS cached).
Плюс TLS session ticket (lifetime 1h-7d) → ещё быстрее через 0-RTT resumption.
Deterministic на recent visits (<5min для DNS, <24h для TLS).
NXDOMAIN filter: <25ms + outcome=error = домен не существует (DNS negative cache), не считаем hit'ом.
(ожидание)
Тест произвольного домена
Вбей любой домен — покажет median timing (5 прогонов), outcome, verdict.
(ожидание)
⭐⭐⭐ WebGPU Pipeline Cache Oracle (FRONTIER 2026)
Техника из arXiv 2606.26412 (июнь 2026). Chrome кэширует скомпилированные WGSL
shaders. Cache persists across origins/profiles/placements. Cold compilation = первый
раз (slow), warm = уже скомпилирован в этом профиле (fast). Если shader характерен
для казиковых игр и у юзера warm compilation — он недавно был на сайте с такой графикой.
(ожидание)
:visited GPU Timing Oracle — browser history leak
Генерим 500 ссылок на target URL + 500 на control URL. CSS triggers compositor
layer rebuild на :visited без визуального изменения. Замеряем frame commit time
через double requestAnimationFrame. Статистически Welch t-test на разницу mean.