PowerScan
UK

Як працюють антидетект-браузери: повне технічне пояснення

Антидетект-браузери · 11 хв читання · Автор: PowerOps

Фото: Unsplash

Поверхні відбитка, генерація узгодженої ідентичності, ізоляція сховищ на диску, маршрутизація для кожного профілю та чесні межі всього підходу.

Антидетект-браузер виконує чотири завдання. Він окремо зберігає дані перегляду кожного профілю, керує ідентичністю пристрою, яку повідомляє кожен профіль, незалежно маршрутизує трафік кожного профілю і підтримує узгодженість усього цього в часі. Ця стаття розбирає, як виконується кожне завдання, на рівні механізму, і завершується тим, чого цей підхід не вміє.

Поверхні відбитка

Почніть із того, що може прочитати сторінка, бо все інше — відповідь на це. Скрипт на будь-якому сайті може ставити браузеру запитання, і відповіді описують комп’ютер. Поверхні природно групуються.

ПоверхняЩо читає сторінка
NavigatorНазва й версія браузера, платформа, список мов, повідомлена кількість процесорів і обсяг пам’яті, підтримка дотику
ЕкранШирина, висота, доступна робоча область, глибина кольору, співвідношення пікселів пристрою
CanvasТочні пікселі, отримані малюванням тексту й фігур поза екраном, згорнуті в стабільне значення
WebGLРядки виробника й рендерера графіки та хеші відтворених сцен
АудіоВихід осцилятора, пропущений через граф обробки звуку, який залежить від стека
ШрифтиЯкі гарнітури встановлено, що виводиться з вимірювань тексту
Часовий пояс і годинникПовідомлений пояс і зсув, порівняні з тим, звідки приходить трафік
МережаСама адреса, погляд WebRTC на кандидатів з’єднання та форма рукостискання TLS

Жоден окремий рядок не ідентифікує комп’ютер. Це робить комбінація, і саме в ній ловлять брехню: значення, які не можуть належати одному справжньому комп’ютеру, — гучніший сигнал, ніж будь-яке значення саме по собі.

Збирання дешеве й безшумне. Кожне значення в таблиці доступне будь-якій сторінці через задокументовані API без жодного запиту дозволу, і більшість надходить за першу секунду візиту. Яку б позицію ви не обіймали щодо цієї практики, це стале явище сучасного вебу і та база, проти якої проєктують антидетект-браузер.

Як генерується узгоджена ідентичність

Наївний підхід — перехопити кожне запитання й рандомізувати відповідь. Він не працює з структурної причини. Відповіді описують один комп’ютер, тож вони корелюють, а незалежні випадкові відповіді ці кореляції ламають. User-Agent Windows поруч зі шрифтами, що постачаються лише з macOS, розмір екрана, з яким жоден ноутбук не випускався, рядок графіки, який ніколи не співіснував із заявленою платформою: кожне з цього — суперечність, яку перевіряльник перевіряє дешево.

Тому працездатний антидетект-браузер генерує ідентичність як набір. Він виходить зі справжнього поширеного класу комп’ютерів і виводить із цього вибору кожне значення. Платформа визначає правдоподібний список шрифтів, рядки графіки й підтримку дотику. Екран береться з розмірів, з якими такий клас комп’ютерів справді постачається. Мова й часовий пояс походять із призначеного регіону профілю. Значення узгоджені між собою, бо їх обрано разом — з одного опису одного комп’ютера.

Друга властивість не менш важлива: набір зберігається. Його записують у профіль під час створення профілю, і кожна сесія повідомляє однакові значення, бо пристрій, що змінюється між візитами, описує обладнання, якого ні в кого немає. Стабільність — це здебільшого й є правдоподібність.

Ізоляція сховищ на диску

Завдання зі сховищем — найменш ефектне й найбезкомпромісніше. Кожен профіль володіє каталогом, і все, що браузер зберігає, лежить усередині нього: база cookie, Local Storage, IndexedDB, HTTP-кеш, реєстрації service worker, стан розширень, історія та збережені облікові дані. Два профілі — це два непересічні каталоги, і кожен запущений браузер спрямований на свій.

Перевіряти слід повну неперетинність, бо часткова ізоляція ламається непомітно. Cookie розділити легко. Кеш може ідентифікувати браузер, що повертається, через збережені ресурси. Service worker можуть тримати ідентифікатори й працювати між візитами. IndexedDB — це місце, де сучасні застосунки тримають записи, яким справді довіряють. Ізоляція, що охоплює відомі сховища і ділить будь-які інші, ізолювала лише видиму частину проблеми.

Персистентність — друга половина. Сесії накопичують цінність: пройдені перевірки безпеки, усталена історія входів, образ відвідувача, що повертається. Профіль зберігає свій каталог між сесіями, і саме це робить можливою роботу з акаунтами. Запис при закритті робить каталог довговічним, тому примусове завершення процесу профілю посеред сесії може коштувати щойно встановленої сесії.

Мережева маршрутизація

Кожен профіль має власний маршрут, який застосовується під час запуску його браузера, тож трафік виходить через проксі цього профілю, не зачіпаючи системних налаштувань чи маршруту будь-якого іншого профілю.

Маршрут — також компонент, який найважливіше перевіряти незалежно, бо його купують у третьої сторони. Перевірка точки доступу перед призначенням і зчитування спостережуваної адреси замість заявленої виявляє збій, поки він ще є проблемою конфігурації, а не проблемою акаунта.

Що змінює сам браузер

Є два місця, де інструмент може змінити відповіді, які отримує сторінка, і різниця між ними — найтехнічніша розвилка цієї теми.

ПідхідЯк це працюєСлабке місце
Ін’єкція скриптівРозширення або вбудований скрипт перевизначає функції, що викликає сторінка, тож читання canvas і запити navigator повертають підставлені значенняСамі перевизначення видимі. Підмінені функції можна розпізнати як підмінені, а будь-яка поверхня, про яку ін’єктор забув, відповідає справжнім значенням
Усередині власного коду браузераРеалізація браузера відповідає збереженими значеннями профілю в тих шляхах коду, де справжні значення й утворюютьсяЗначно більше роботи зі створення й підтримки, чим спеціалізовані інструменти й відрізняються від розширень

Підхід з ін’єкцією — звідти ця категорія починалася, і його стеля добре відома: сторінка може перевірити, чи функції досі виглядають рідними, і може дістатися тієї самої поверхні шляхом, який ін’єкція не охопила. Тому спеціалізовані антидетект-браузери вносять зміни всередині самого браузера, щоб збережена ідентичність була тим, що реалізація повідомляє через кожен шлях, який її читає.

Що насправді відбувається, коли відкривається профіль

  1. Завантажується збережена ідентичність: один узгоджений набір значень пристрою, той самий, що й минулого разу.
  2. Браузер запускається на власному каталозі профілю, тож кожне постійне сховище — власне сховище профілю.
  3. Застосовується маршрут: проксі, розв’язання імен через нього, WebRTC, обмежений ним.
  4. Сесія працює, накопичуючи стан усередині каталогу.
  5. Під час закриття стан записується, тож наступне відкриття відновлює той самий пристрій, те саме сховище й той самий маршрут.

Кожну частину цього списку можна перевірити ззовні. Двічі відкрийте сторінку тесту відбитка й порівняйте значення між відкриттями. Погляньте на каталог профілю на диску. Зчитайте спостережувану адресу. Інструмент цієї категорії має запрошувати до такої перевірки, бо механізм і є продуктом.

Чесні межі

У підходу є краї, і знати їх — частина компетентного використання.

Читайте межі як означення, а не як розчарування. Антидетект-браузер — це інструмент узгодженості: окреме сховище, стабільна й правдоподібна ідентичність, відповідний маршрут, об’єднані для кожного профілю та однаково повторювані при кожному відкритті. У цьому весь механізм, а все інше, що пишуть про категорію, — варіації на цю тему.

Усі статті · Запустити перевірку