It took a year to ship WebAssembly in Anubis
Anubis — это система защиты веб-сайтов от агрессивного скрапинга со стороны ИИ-компаний, использующая механизм Proof-of-Work, вдохновлённый Hashcash. При небольшом трафике нагрузка пренебрежимо мала, но при массовом скрапинге она резко увеличивает стоимость таких операций, делая их экономически невыгодными. Разработка заняла год, поскольку требовалось тщательно оптимизировать реализацию под WebAssembly, чтобы обеспечить достаточную производительность вычислений прямо в браузере пользователя без значительного влияния на легитимный трафик.
Цель Anubis — временное решение, позволяющее выиграть время для разработки более точных методов обнаружения headless-браузеров, например, через анализ особенностей рендеринга шрифтов. В будущем планируется полностью отказаться от показа капчи-подобных страниц обычным пользователям, направляя проверку только на подозрительный трафик. Система требует поддержки современных JavaScript-функций, поэтому пользователям с плагинами вроде JShelter, блокирующими такие возможности, необходимо отключить их для корректной работы защиты. Anubis не блокирует доступ полностью, но делает массовый сбор данных слишком дорогим для злоупотребляющих сторонами.
Комментарии (103)
Обсуждение дополняет статью практическими замечаниями: необходимость fallback‐механизмов при отключённом WebAssembly, экономическая природа защиты, инструменты тестирования совместимости, готовые расширения для ускорения PoW, а также вопросы о применимости подхода к старым браузерам и реальной эффективности предположения о вычислительных ограничениях скреперов. **Fallback и старые браузеры:** Пользователям с отключённым WebAssembly нужно явное уведомление, аналогичное сообщению при отключённом JavaScript. Альтернативой служит JavaScript‐fallback — транспиляция WASM обратно в JS для совместимости. Однако старые браузеры на Smart TV могут не поддерживать WASM и будут вынуждены использовать JS‐fallback, что потенциально открывает путь скреперам к обходу более тяжёлого алгоритма. **Экономика защиты:** Защита от ботов — экономическая задача: достаточно повысить стоимость скрейпинга, чтобы он перестал быть прибыльным, а не делать его полностью невозможным. Скрейпинг вреден даже для статического HTML: боты собирают контент независимо от динамичности сайта. **Инструменты и оптимизации:** Для базового WASM рекомендуется целевой триплет Rust `wasm32v1-none` (ограничение до `#[no_std]`, упрощённая совместимость). Проверить поддержку WebAssembly можно через онлайн‐детектор wasm-feature-detect.surma.technology. Предлагается предоплачивать PoW через систему кредитов/токенов по модели Privacy Pass, чтобы избежать ожидания в реальном времени. Уже существуют браузерные расширения на WebAssembly и WebGPU, ускоряющие решение Anubis‐PoW. **Критика подхода:** Предположение об ограниченности скреперов вычислительными ресурсами ставится под сомнение: современные скрейперы могут использовать GPU и специализированные ускорители, что снижает эффективность чисто CPU‐ориентированных PoW. Также требует уточнения формула, по которой увеличение сложности на 1 бит даёт 1024‐кратный рост.
An update on residential proxies and the scraper situation 🔥 Горячее 💬 Длинная дискуссия
Масштабный рост скрейперов, направленных на сбор данных для обучения ИИ, превратил открытый веб в источник огромного трафика, исходящего из миллионов уникальных IP‑адресов. Большая часть запросов генерируется из «жилых» и мобильных сетей, где устройства задействованы как часть ботнетов без ведома их владельцев; такие сети часто называют residential proxies. Запросы выглядят как обычные браузеры, но почти не скачивают изображения или CSS, а после обнаружения IP‑адрес обычно игнорируют.
После публикации статьи о проблеме в начале 2025 г. Google заблокировал крупный провайдер IPIDEA, что временно снизило нагрузку, однако вскоре появились новые источники — в том числе уязвимые медиа‑стриминговые устройства и компании, продающие «этично» полученные IP‑адреса, например Bright Data, предлагающие бесплатный VPN, превращающий каждый клиент в узел сети‑прокси. Эти практики позволяют операторам запускать произвольный код на миллионах устройств, не ограничиваясь лишь сбором контента. Таким образом, борьба с скрейп‑ботнетами требует не только технических фильтров, но и внимания к экосистеме устройств, которые могут стать частью злоумышленнических сетей.
Комментарии (292)
- Обсуждается рост агрессивных веб‑скрейперов и их влияние на сайты, особенно на новостные ресурсы и архивные проекты.
- Упоминаются резиденциальные прокси‑сети, которые используют обычных пользователей в качестве «масок» для ботов.
- Предлагаются альтернативы вроде proof‑of‑work, но отмечается, что они добавляют задержки и не всегда эффективны против масштабных ботнетов.
- Вызываются идеи по улучшению общих архивов (Common Crawl) и защите контента без ущерба для обычных пользователей.
Why are anime catgirls blocking my access to the Linux kernel? 🔥 Горячее 💬 Длинная дискуссия
Anubis — «весы душ» для HTTP-запросов, защищают сайты от ИИ-ботов. Вместо CAPTCHA требует перебора nonce, чтобы SHA-256(challenge+nonce) начиналась с 4 нулей (16 бит). Это Proof-of-Work, как в биткоине, но не майнинг.
Проблема: задача легка для дата-центра ИИ, но трудна для обычных пользователей без мощного железа.
Сайты ядра Linux (git.kernel.org, lore.kernel.org) теперь требуют этот PoW, что ломает скрипты и консольные клиенты.
Цифры
- Сложность 4 → 2¹⁶ ≈ 65 536 SHA-256 на токен.
- Токен живёт 7 дней.
- 11 508 «звёзд» GitHub ≈ столько сайтов с Anubis.
- На бесплатной e2-micro GCP: 3688 кБ/с SHA-256 → ≈ 230 000 хэшей/с.
- Для обхода всех сайтов за неделю: 11 508 × 65 536 ≈ 754 млн хэшей → 54 минуты CPU на одном ядре.
Цена: копейки, даже в облаке. ИИ-вендору это ничто, а владельцу VPS-128 МБ — проблема.
Альтернативы
- Rate-limit, WAF, robots.txt, API-ключи, CDN, client-cert.
- Использовать Tor Browser (JS включён) или Selenium.
- Патчить curl/wget, добавляя JS-движок или готовый PoW-скрипт.
- Прокси-браузер (Puppeteer, Playwright) в headless-режиме.
Workarounds
anubis-pass— консольный майнер на Go, решает задачу и выдаёт cookie.- Пользовательские скрипты, которые запрашивают страницу, вычисляют PoW и продолжают сессию.
Комментарии (770)
- Anubis — это PoW-заглушка, которая заставляет клиента выполнить небольшой вычислительный «тест» и получить токен на неделю; таким образом сервер получает идентификатор для рейт-лимита и борется с массовым «распылением» запросов ботами.
- Многие участники считают, что PoW легко обходится при наличии вычислительных ресурсов, но пока большинство AI-краулеров просто не стали заморачиваться, поэтому Anubis «работает» в реальности, хоть и не идеален.
- Критика: задержки 10–20 с на слабых устройствах, проблемы с доступом без JS, «аниме-девочка» вызывает у кого-то раздражение, а у кого-то ностальгию.
- Часть комментаторов предлагает альтернативы: микроплатежи, «человеческие» вопросы, лабиринты-ловушки, VPN-сети или просто блокировки по ASN.
- Самое главное: Anubis не решает проблему окончательно, но добавляет достаточно трения, чтобы заставить владельцев краулеров пересмотреть объёмы сканирования.