
Sistema Anti-Automazione
Predator è un'applicazione web prototipo progettata per dimostrare tecniche anti-crawling, anti-automazione e di rilevamento dei bot. Può essere utilizzato come honeypot, sistema anti-crawling o banco di prova per falsi positivi per scanner di vulnerabilità.
Attenzione: Sconsiglio vivamente l'uso dei metodi dimostrati in un server di produzione senza sapere esattamente cosa fanno. Ricorda, solo le tecniche che sembrano utilizzabili secondo l'applicazione web dovrebbero essere implementate. Predator è una raccolta di tecniche, il suo codice non dovrebbe essere usato così com'è.
La mappa mentale qui sotto è una visualizzazione approssimativa di come le tecniche dimostrate qui possono essere implementate in un ambiente di produzione.

Nota: I numeri e i fattori nella "Fase di Osservazione" possono essere usati per impostare una reputazione a un client che poi può essere usata come forte indicatore di attività malevola una volta raggiunta una soglia.
Gli header HTTP inviati dai bot spesso sono in ordine diverso rispetto a un browser reale o mancano del tutto. Molti bot si rivelano nell'header User-Agent per etica mentre altri non ne inviano affatto.
La maggior parte delle tecniche di mutazione HTML descritte qui possono essere aggirate con framework basati su browser come selenium e puppeteer, ma possono essere rilevati con vari test come implementato in isBot.js.
La maggior parte dei bot effettua richieste solo a pagine web e immagini, ma file di risorse come .css vengono spesso ignorati perché non vengono scaricati dall'implementazione HTTP in uso. I bot possono essere rilevati quando il rapporto tra pagine web/immagini e tali file di risorse diventa superiore a una soglia predefinita.
Molti parser HTML utilizzati nei crawler non sono in grado di gestire HTML rotto come fanno i browser. Ad esempio, cliccare sul seguente link in un browser porta a page_1 ma i parser affetti analizzano il secondo valore, cioè page_2
<a/href="page_1"/href="page_2">Click</a>
Può essere usato per tenere lontani e bannare i crawler senza influenzare l'esperienza utente.
Alcuni link sono nascosti agli utenti tramite CSS, ma i programmi automatizzati possono comunque vederli. Questi link possono essere usati per rilevare i bot e intraprendere un'azione desiderata come il ban dell'indirizzo IP.
Quando Predator sospetta che il visitatore sia un bot, genera un numero casuale di link casuali che portano a una pagina (limbo.php) contenente altri link casuali e questo processo si ripete.
Gli scanner di vulnerabilità di solito inseriscono un payload e verificano se l'applicazione risponde in un certo modo. Predator può fingere di avere una vulnerabilità includendo la risposta attesa, cioè la firma, all'interno dell'HTML. Predator attualmente imita le seguenti vulnerabilità:
Questo metodo rende possibile configurare un honeypot senza effettivamente ospitare codice vulnerabile e funge da banco di prova per test sui falsi positivi.
PatheticGeek ha fatto tutta la magia del front-end per rendere Predator bello.