Как антифрод вычисляет VM по аппаратным API: 6 следов, которые трудно спрятать
Антифрод редко ищет «виртуалку» по одному признаку. Он собирает профиль из низкоуровневых ответов и анализирует энтропию параметров. Браузерное окружение передает больше данных, чем кажется: часть из них приходит через аппаратные API, часть — через косвенные тайминги и расхождения между слоями.
Типовые маркеры:
— серийные номера и UUID, повторяющиеся между инсталляциями;
— MAC-адреса и vendor-идентификаторы, не совпадающие с ожидаемой платформой;
— CPUID-флаги и модель CPU, не бьющиеся с набором доступных инструкций;
— размеры RAM, диска и GPU, слишком «чистые» для железа пользователя;
— артефакты в WebGL, Canvas, AudioContext и MediaDevices;
— нестабильные тайминги системных вызовов и аномальная латентность I/O.
Критичен не сам факт виртуализации, а согласованность слоя. Когда API ядра, браузерные объекты и поведение планировщика дают разные ответы, модель помечает среду как синтетическую. Разбираем сигнатуру на уровне syscall: именно там проще всего поймать несовпадение между заявленным железом и реальным исполнением.
Скрытность — это не отсутствие следов, это шум, сливающийся с фоном. Практика защиты строится не на «маскировке одного поля», а на согласовании всего стека: от идентификаторов устройств до стабильности ответов API и временных характеристик.
Fingerprint-кузница
@fingerprint_forge_ubt
Как антифрод вычисляет VM по аппаратным API: 6 следов, которые трудно спрятать
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.