Nella lista ce ne sono molti di più, hai qualche idea?
Ho visto questo oggi nei log di uno dei nostri clienti, quindi è più di una coincidenza.
AGGIORNAMENTO: No, penso che sia una coincidenza. Cercando ymwears .cn emergono altre lamentele sullo spam dei referral, ad esempio queste (della durata di oltre un anno): Relevanssi shows weird search queries on my page | WordPress.org e Block specific referrer or agent to enter url | WordPress.org
Il mese scorso ho avuto un cliente che si è lamentato di questi. Ho bloccato alcuni indirizzi IP e ho pensato di configurare fail2ban per bloccare gli IP che cercavano alcuni di quegli URL, ma non ho mai fatto nulla a riguardo. Ho cercato di bloccare per area geografica, ma sembrava che fosse necessario un database da 20 dollari al mese per farlo.
Lo spam dei referrer è un problema piuttosto rilevante, che nemmeno i grandi player (cioè Google Analytics) stanno combattendo con successo al 100%. Per ora, l’unica cosa che mi viene in mente è rimuovere manualmente queste voci.
Dato che questi siti sembrano essere, almeno in parte, gli stessi su più siti Discourse indipendenti (considerando il fatto che i nostri screenshot mostrano praticamente la stessa lista), forse una blacklist (dinamica) potrebbe essere un’idea? @codinghorror, hai qualche suggerimento?
Abbiamo osservato, affrontato e mitigato questo problema su larga scala per anni e, nel corso degli ultimi anni, abbiamo scoperto che il metodo più affidabile per bloccare i bot malevoli è quello di bloccare in base alla stringa User Agent (UA), a volte in combinazione con informazioni geolocalizzate (GeoIP).
Nel corso degli anni abbiamo bloccato centinaia di milioni di accessi provenienti da bot cinesi e raramente abbiamo constatato che il blocco degli indirizzi IP funzioni nel tempo tanto bene quanto il blocco dei client basato sulle stringhe UA.
Ecco un estratto di un frammento di codice che utilizziamo su uno dei nostri siti a titolo di esempio:
$user_agents = explode('|',$string_of_bad_user_agents,-1);
$hide_content_useragent = $_SERVER['HTTP_USER_AGENT'];
$IS_A_BAD_BOT = FALSE;
foreach($user_agents as $hcag) {
trim($hcag);
if (preg_match("/$hcag/i", "$hide_content_useragent")) {
$IS_A_BAD_BOT = TRUE;
break;
}
}
Quasi tutti (non tutti) i bot malevoli utilizzano stringhe UA che possono essere identificate e bloccate abbastanza facilmente (in questa epoca; non sono sicuro che sarà lo stesso in futuro, man mano che le cose evolvono); per questo motivo abbiamo abbandonato anni fa il metodo di tentare di bloccare i bot malevoli in base agli indirizzi IP. Il motivo per cui abbiamo smesso di bloccare in base agli IP è che molti paesi, come la Cina, la Russia, la Corea del Nord e molti altri, gestiscono ora i loro campi di bot da server situati in altri paesi. Gli indirizzi IP non sono un buon indicatore della reale origine o dell’intento. Inoltre, bloccando vasti blocchi di indirizzi IP, si rischia di bloccare indirizzi validi, negando l’accesso a utenti legittimi.
Ad esempio, la Cina gestisce enormi server farm di bot dal Brasile e da altri paesi più vicini (geograficamente agli Stati Uniti) per mascherare la propria origine e recuperare i dati più velocemente (con un percorso Internet più breve).
A volte i dati WHOIS corrispondono a un indirizzo fisico cinese, nordcoreano o russo (ad esempio), ma altre volte no e vengono utilizzati indirizzi fisici locali. Nel corso degli ultimi anni abbiamo visto molti bot cinesi malevoli registrati a società brasiliane, dove abbiamo potuto vedere (e confermare) che le stringhe User Agent corrispondevano a bot malevoli provenienti dalla Cina. Inoltre, quando eseguiamo ricerche su Google per quelle stringhe UA, vediamo che altri hanno identificato molte delle stesse stringhe UA come cinesi (ad esempio).
In sintesi, mentre molte persone ricorrono immediatamente al blocco degli indirizzi IP per bloccare l’attività dei bot malevoli, la maggior parte dei campi di bot più sofisticati è molto brava a far funzionare i propri bot da altri paesi. È facile configurare un VPS nella maggior parte dei paesi e, naturalmente, più il bot è vicino al paese target, più dati può raccogliere. I VPS possono apparire e scomparire in pochi minuti e il software per bot può essere distribuito molto rapidamente in quasi tutti i data center VPS a livello globale.
Negli ultimi anni, il blocco basato sulla stringa UA si è rivelato il metodo più affidabile (a volte in combinazione con informazioni GeoIP, a volte no); ma naturalmente anche gli spammer, i padroni dei bot e i loro agenti stanno iniziando a mascherare le stringhe UA, come fanno già da anni con gli indirizzi IP.
Spero che questo sia utile.
Saluti e buona caccia ai bot!
Sì, sono assolutamente d’accordo che il blocco degli indirizzi IP non sia efficace.
Il blocco basato sugli user agent tende a funzionare piuttosto bene, tranne quando gli spammer lo modificano costantemente.
Per questo motivo, ho pensato di mettere semplicemente in blacklist l’URL effettivo che viene utilizzato per lo spam del referrer.
Semplicemente “sembra meglio” perché non stiamo bloccando qualcosa basandoci su un’assunzione sottostante (cioè: “questo user agent fornisce un referrer inaffidabile, quindi non ci fidiamo di esso”), ma stiamo effettivamente bloccando ciò che vogliamo bloccare (“vediamo che questo sito web viene utilizzato per lo spam del referrer su più siti Discourse, quindi non inseriamolo nel nostro database”). Almeno in questo modo è più difficile aggirare il blocco.
Ottimi pensieri.
Non esiste una soluzione universale per fermare i bot malintenzionati e fuorvianti; ogni sito deve valutare quali controlli funzionano meglio per le proprie esigenze.
A proposito…
I siti che si affidano principalmente a blacklist e database di spam o bot malintenzionati possono incontrare problemi. Immagina, ad esempio, che qualcuno non ami il sito www.our-arch-rival.com perché è un concorrente (o semplicemente perché ci ha fatto arrabbiare o offeso). Alcune persone invieranno allora il sito www.our-arch-rival.com a una blacklist o a un database, e di conseguenza altri siti filtreranno un sito legittimo a causa di questa sorta di “conseguenza negativa” derivante dal metodo di blacklisting dei database.
Naturalmente, i sostenitori delle blacklist diranno: “Puoi andare sui siti di blacklisting, inviare un rapporto e richiedere la rimozione”, ma per molti siti attivi da tempo e molto impegnati, questo può diventare una perdita di tempo.
In generale, è importante analizzare il problema e creare una strategia di mitigazione basata sullo scenario specifico, poiché ogni “avversario” è diverso. È il vecchio principio del “Conosci il tuo nemico” tratto da Sun Tzu e L’arte della guerra. Ogni situazione è leggermente diversa nel mondo reale e, purtroppo, sono necessarie capacità analitiche agli amministratori di sistema per creare strategie di mitigazione ottimali contro attività cyber malintenzionate o indesiderate.
Questo è anche un buon motivo per eseguire Discourse dietro un reverse proxy, poiché il reverse proxy è un luogo ideale per analizzare, classificare e controllare le attività malintenzionate prima che il traffico raggiunga l’applicazione Discourse.
Nel 2020, controllare e mitigare i bot malintenzionati e altre attività dannose nel cyberspazio può diventare un lavoro a tempo pieno. Non appena gli amministratori sviluppano una buona strategia di rilevamento e mitigazione, gli spammer e i scraper si adattano e trovano modi per aggirarla. Tendo a consigliare alle persone di sovradimensionare i propri server per assicurarsi di avere un margine di sicurezza sufficiente, poiché questo tipo di problemi nel cyberspazio è destinato a peggiorare nel tempo, non a migliorare.
Ready Player One!
Il che è un ulteriore motivo per evitare il blocco degli indirizzi IP: gli spammer sapranno che stai adottando misure.
Penso di poter bloccare la maggior parte degli spammer tramite Cloudflare, ma non sono sicuro di cosa inserire nelle regole per l’agente del browser.
@neounix, cosa intendi per “UA strings”? E come possono essere utilizzate nelle regole del firewall di Cloudflare?
Ma questo non è nemmeno spam dei referrer, vero? È solo che stanno cercando quell’URL, quindi in realtà non sta facendo nulla, giusto? Ho frainteso completamente di cosa si tratta in quel rapporto? Non è disponibile a nessuno tranne agli amministratori, giusto?
Credo tu abbia ragione @pfaffman: il rapporto sembra riferirsi solo alle ricerche effettuate sul forum. Include anche il CTR, il che non avrebbe senso se si trattasse di un rapporto sui referrer.
No, tecnicamente questo non è spam del referrer, ma non sono sicuro che esista un termine specifico per questo tipo esatto di abuso. Penso che sia molto simile allo spam del referrer, ma solo per un rapporto di query di ricerca?
Lo spam del referrer non fa mai nulla; serve solo a comparire nei rapporti.
Eccoti qui…
In HTTP, la stringa User-Agent è spesso utilizzata per la negoziazione dei contenuti, dove il server originario seleziona contenuti o parametri operativi adatti per la risposta. Ad esempio, la stringa User-Agent potrebbe essere utilizzata da un server web per scegliere varianti in base alle capacità note di una particolare versione del software client. Il concetto di adattamento dei contenuti è integrato nello standard HTTP nell’RFC 1945 “al fine di adattare le risposte per evitare determinati limiti degli user agent”.
La stringa User-Agent è uno dei criteri con cui i crawler web possono essere esclusi dall’accesso a determinate parti di un sito web utilizzando lo Standard di esclusione dei robot (file robots.txt).
Come per molti altri header delle richieste HTTP, le informazioni nella stringa “User-Agent” contribuiscono alle informazioni che il client invia al server, poiché la stringa può variare notevolmente da utente a utente.[5]
Riferimento:
@Yassine_Yousfi. ci sono innumerevoli riferimenti su Internet riguardo alle stringhe User-Agent (UA) HTTP e su come utilizzarle in vari modi, incluso come sensore per il rilevamento di bot e altre attività cyber malevole.
Buona caccia ai bot!
Note:
- Puoi vedere la vista
Discoursedegli user agent dei bot qui (alcune stringhe UA sono troncate):
https://discourse.your-great-domain.com/admin/reports/web_crawlers
-
Nessun algoritmo di rilevamento può rilevare tutti i bot con una precisione del 100%.
-
Puoi anche ottenere le stringhe UA dai file di log del tuo server web e con altri metodi.
Vedi anche:

