Anubis: Il Guardiano che Blocca i Bot AI e Protegge i Tuoi Server dal Caos

I sysadmin devono spesso affrontare attacchi che prosciugano risorse server, aumentano i costi di hosting e compromettono la privacy dei dati in un mondo digitale sempre più invaso da bot automatizzati e scrapers AI. Una soluzione innovativa e potente è Anubis, un’utility open-source ispirata al dio egizio che “pesa le anime”: un reverse-proxy basato su Proof-of-Work (PoW) che filtra le connessioni entranti senza utilizzare CAPTCHA intrusivi.

Ad oggi, Anubis è stato adottato da gruppi come GNOME, FFmpeg e UNESCO. È leggero e protegge la privacy. Questo articolo esplorerà alcuni dettagli tecnici di Anubis, dall’architettura all’installazione, per aiutarti a integrarlo nelle tue infrastrutture e proteggere i tuoi ambienti web da attacchi DDoS e scraping non autorizzato.

Cos’è Anubis e Perché Dovresti Considerarlo? Link to heading

Anubis è un’utility Web AI Firewall open-source che ha lo scopo di proteggere siti web, API e servizi self-hosted dai bot e dai scrapers AI. Anubis funziona come un reverse-proxy che “pesa il rischio” di ogni richiesta HTTP in entrata. Ciò lo distingue dai tradizionali sistemi di difesa, che spesso si basano su blacklist IP o CAPTCHA visivi facilmente aggirabili da intelligenza artificiale avanzata. Identifica e blocca i bot prima che possano consumare risorse più avanti utilizzando una combinazione di euristica e sfide PoW.

Il programma è particolarmente utile in situazioni in cui gli scrapers generano un gran numero di traffico e ignorano robots.txt e fingono User-Agent legittimi. Questi scenari includono i crawler di OpenAI o Perplexity AI, che rappresentano oltre il 50% delle visite automatizzate su molti siti. Anubis ha dimostrato di ridurre downtime e costi bloccando il 90% del traffico indesiderato in casi reali, come nelle librerie della Duke University, dal suo lancio nel 2025.

Perché considerarlo? È leggero, non richiede interazioni utente visibili e mantiene la privacy senza tracciare i dati. Per gli amministratori di sistema, significa meno spese di gestione e una difesa scalabile contro le nuove minacce AI.

Come Funziona Tecnicamente Anubis Link to heading

Anubis funge da ponte tra il tuo reverse-proxy esterno, come Nginx o Caddy, e il tuo servizio target. Il flusso di lavoro principale è questo:

  1. Prima valutazione con euristiche: Ogni richiesta HTTP viene esaminata utilizzando metadati come User-Agent, headers (come Accept-Encoding, Sec-Ch-Ua), IP address e pattern di comportamento. Anubis classifica le richieste utilizzando regole personalizzabili: accettare (passare direttamente), bloccare (bloccare) o sfidare (challenge PoW).
  2. Challenge Proof-of-Work (PoW): Anubis invia una pagina HTML contenente JavaScript nel caso in cui la richiesta sia sospetta. Il browser deve eseguire un puzzle basato su SHA256: hashare una challenge (derivato da richieste di metadata e nonce) fino a ottenere un hash con un numero predefinito di zeri iniziali. Questo si verifica in un Web Worker per evitare di bloccare l’interfaccia utente, e su un browser moderno richiede solo millisecondi.
  3. Token e verifiche: Il client invia la soluzione al server dopo aver risolto. Anubis valida e crea un JWT firmato (che è la chiave che è stata creata all’inizio) che viene salvato in un cookie valido per una settimana. Le richieste successive che contengono un cookie valido vengono soddisfatte; altrimenti verrà effettuata una nuova challenge. Per evitare abusi, il server può rivalidare randomicamente.

Anubis è efficace perché molti bot non eseguono JavaScript o non supportano funzionalità moderne come i moduli ES6 e l’API Web Crypto, e quindi non riescono a superare la verifica. Non utilizza database di reputazione, tutto è gestito localmente e si concentra sulla privacy.

Installazione e Configurazione Passo per Passo Link to heading

Anubis è pensato per essere inserito tra il tuo reverse-proxy (come Nginx o Caddy) e il tuo servizio di destinazione; è facile da deployare, con opzioni per ambienti containerizzati o bare-metal.

flowchart LR LoadBalancer/ReverseProxy-->Anubis Anubis-->Website

I primi passi per configurare una versione basilare dello stack sopra descritto sono:

  1. Configurare il proprio sito web

  2. Configurare Anubis facendolo puntare al proprio sito. Che si stia usando l’installazione tramite docker o pacchetto nativo l’unica variabile fondamentale è:

TARGET="http://localhost:3000"

È possibile consulatare la lista delle variabili d’ambiente per personalizzare Anubis

  1. Configurare il Reverse Proxy in modalità proxy pass
server {
    listen 80;
    location / {
        proxy_pass http://anubis:8923;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Ho già predisposto una configurazione basilare in un mio repository GitHub, costruita interamente con Docker per consentire esecuzioni di test rapide e ripetibili.

Prossimi passi:

  • Inizia con difficoltà bassa; monitora log.
  • Crea una Allowlist contenente i bot utili (eg. Googlebot).
  • Integra con alerting (Prometheus + Grafana).
  • Testa in staging e aggiorna regolarmente per evitare blocchi legittimi.

Casi d’Uso e Integrazioni Link to heading

  • Protezione API e Siti Statici: Blocca scrapers su Forgejo/Gitea, bloccando 78.000+ richieste al giorno.
  • Difesa da AI Training: Organizzazioni come UNESCO usano Anubis per prevenire furto di dati per modelli AI.
  • Integrazione con Load Balancer: Posizionalo dietro GCP LB o AWS ALB per layer extra.
  • Confronti: reCAPTCHA (ha modelli a pagamento, meno privacy), hCaptcha (invasivo se si usa una VPN); Anubis è gratis, open-source e self-hosted.
  • Honeypots per Tuning: Usa server esca per loggare scrapers e aggiornare policies, come con DuckDB per query SQL su pattern (es. User-Agent senza Sec-Ch-Ua).

Vantaggi e Limiti Link to heading

Vantaggi:

  • Efficace contro AI (blocca 90% bot senza JS).
  • Scalabile, basso overhead.
  • Open-source, community-driven.
  • Riduce costi: Meno bandwidth, no outage.

Limiti:

  • Dipende da JS: Blocca utenti no-JS o text-browser.
  • Default paranoid: Blocca good bots; necessita tuning.
  • Non supporta WebSockets.
  • PoW costoso per bot a scala, ma overhead minimo per umani (100-500ms).

Conclusione Link to heading

Anubis segna un cambiamento nella difesa web, trasformando la lotta contro i bot AI in una strategia intelligente e proattiva. È uno strumento essenziale per gli admin per mantenere server e dati sicuri senza compromettere l’esperienza utente. Anubis è uno strumento essenziale per proteggere la tua infrastruttura in un futuro in cui lo scraping AI diventerà ancora più aggressivo.