Protecting against gmail dot trick in Discourse

Non so, @sam, mi sembra che serva un plugin per la creazione di utenti con CAPTCHA. Non credo che “disabilitare punti e simboli +” curi la malattia alla radice; sta solo affrontando i sintomi del problema? :thinking:

Storicamente, la tendenza è stata verso spammer completamente umani nel tempo. Voglio dire, compilano i profili utente, caricano immagini del profilo e così via. Gli spammer automatizzati (a parte bamwar) non sono stati un grosso problema su Discourse perché siamo molto difficili da automatizzare, essendo un’applicazione JavaScript completa. Nota che la maggior parte dei tuoi commenti, @neounix, rientra nella categoria descritta nella frase precedente: è molto difficile scriptarci perché siamo così complessi, rispetto a un sito web HTML 1.0 dell’epoca del 1999. Alzare così tanto la barra della difficoltà elimina la maggior parte del problema, in base a ciò che abbiamo osservato con i nostri clienti e qui su meta.

Comunque, TL;DR: non sono necessariamente contrario a una semplice impostazione “disabilita determinati caratteri negli indirizzi email”, suppongo, ma nel profondo non penso che nulla, tranne un CAPTCHA, possa aiutare molto in questo caso? Potremmo fare entrambe le cose?

5 Mi Piace

Ma alcuni utenti (incluso me) usano il + per ordinare effettivamente le email nel nostro client di posta.

3 Mi Piace

Nessun problema, questa opzione non è attiva per impostazione predefinita; si tratta piuttosto di una modalità “blocco per attacchi” attivabile tramite le impostazioni del sito.

7 Mi Piace

@neounix Leggenda. Grazie per i consigli, molto apprezzati — mi hai lanciato in una caccia allo spam. Ho messo Cloudflare in modalità “Sono sotto attacco” temporaneamente (il che ha bloccato le loro registrazioni: creavano un nuovo account ogni 1-2 minuti) e ho controllato i log del firewall di Cloudflare per alcuni IP che stavano utilizzando, notando che sfidava/registrava ogni visitatore. Stavano effettivamente utilizzando user-agent identici.

Ho aggiunto una regola del firewall per sfidare gli utenti con quello user-agent e ho disattivato la modalità “Sono sotto attacco” su CF. Non credo che molti utenti innocenti siano stati sfidati da essa e ha completamente fermato le loro registrazioni spam.

Poi ho scoperto la funzionalità di blocco del numero di sistema autonomo (ASN) che Cloudflare offre e ho configurato regole aggiuntive del firewall per bloccare una quantità significativa di loro, facendo riferimento ai log del blocco degli user-agent. Ci sono delle soluzioni alternative, ne sono sicuro che tu ne conosca, ma comportano un costo e uno sforzo aggiuntivi per loro.

:content:

@codinghorror Concordo con te che i captcha sarebbero utili. Direi che un buon obiettivo primario per la prevenzione dello spam sarebbe aumentare i costi complessivi delle risorse per gli spammer.

I captcha contribuirebbero a questo. Circa $2 per mille risoluzioni di reCAPTCHA (utilizzando un’API di risoluzione dei captcha, ad esempio https://anti-captcha.com). Più le complessità aggiuntive richieste per i loro bot.

Nota a margine: Anti-captcha ha un’estensione per browser per risolvere automaticamente i tuoi captcha, funziona bene ed è una comodità divertente. :goodnews:

Gli indirizzi email sono solitamente un altro costo di risorse per la creazione di account in blocco. Tuttavia, non è il caso quando un singolo utente può creare virtualmente account illimitati per un singolo indirizzo Gmail. Il costo di 1000 account Gmail è piuttosto significativo, quindi spesso ricorrono ad altri provider meno rigorosi o domini catch-all. Questo comunque comporta ancora costi di risorse ed è più facile da identificare come spam.

Penso che sia davvero un caso in cui “di più è meglio”. Nessuna singola difesa sarà abbastanza forte; aumentare semplicemente la quantità di risorse e di sforzo necessari agli spammer in generale sono passi nella direzione giusta. Lo scenario migliore è che sia più faticoso per gli spammer inviare spam ai forum Discourse rispetto agli amministratori che bloccano e rimuovono in blocco tutto ciò che passa.

@itsbhanusharma Mi piace molto poter usare anche il simbolo +, ma è per questo che non possiamo avere cose belle, haha. Sarebbe bello avere l’opzione per abilitarne il blocco, se necessario per combattere gli spammer.

2 Mi Piace

Dopo averci pensato, tendo ad essere d’accordo con te su questo.. @sam possiamo dare priorità a questa impostazione di blocco delle email per la prossima settimana?

5 Mi Piace

La questione è stata discussa abbastanza sopra, proprio in questa discussione.
“Disabilitare” punti e più probabilmente causerebbe alcuni problemi (almeno per alcuni utenti). L’idea era di memorizzare una versione “canonica” dell’indirizzo email (versione “pulita”) e impedire la registrazione di ulteriori utenti con la stessa versione canonica per Gmail (=in realtà lo STESSO indirizzo email, grazie ai trucchi di Gmail).

Forse è a questo che si riferisce Sam quando dice:

Forse è quello che intendevi anche tu @codinghorror, e non davvero “disabilitare” . e +
Ma sono d’accordo con te sul fatto che ciò “risolverebbe” il problema solo per Gmail (non per l’uso di un “catchall” con un dominio, ad esempio).

Un CAPTCHA risolverebbe davvero qualcosa quando dici tu stesso:

?

Sembra proprio che abbiamo saltato un passaggio.

Forzare l’uso dell’email canonica è problematico, ma bloccare più di un account per ogni email canonica di default è piuttosto ragionevole.

La maggior parte di noi ha più di un indirizzo email se ha bisogno di un account di test. Non creerebbe problemi significativi in tal caso; se è un’impostazione predefinita, non dovremo istruire le persone ad attivarla dopo che si è verificato un abuso.

1 Mi Piace

I segni più (+) nelle email possono essere gestiti più o meno allo stesso modo in tutti i domini di posta, credo senza troppi problemi.

Per email come sp.a.mmer.king@gmail.com o s.pa.mmerking@gmail.com, nel caso di Gmail si tratta dello stesso indirizzo. Tuttavia, per alcuni altri provider potrebbe non essere così e entrambi gli indirizzi potrebbero essere considerati utenti distinti.

Penso che un’implementazione valida nel lungo termine sarebbe simile alla funzionalità di blacklist dei domini email.

Aggiungere un dominio personalizzato per cui si desidera impedire registrazioni duplicate tramite trucchi. Quindi permettere di abilitare/disabilitare separatamente il blocco di questi due tipi di registrazioni duplicate. Cioè, impedire duplicati tramite il trucco del simbolo + e impedire duplicati tramite il trucco dei punti come opzioni separate.

Archiviare l’email registrata così com’è (per quanto riguarda il login dell’utente e l’indirizzo a cui vengono inviate le email), ma bloccare registrazioni aggiuntive che risultano essere lo stesso indirizzo.

Un’altra cosa che renderebbe il sistema leggermente più efficace sarebbe inserire più domini in un singolo record di dominio personalizzato, in modo che vengano trattati come lo stesso dominio. Ad esempio, gmail.com e googlemail.com. In questo modo, qualcuno potrebbe essere bloccato dal registrarsi due volte usando ad esempio example@gmail.com e example@googlemail.com. Ci sono altri provider che dispongono di domini intercambiabili; ho inviato alcuni esempi a Sam. Questo potrebbe aggiungere un po’ di protezione in più, ma nel complesso il problema principale sfruttabile riguarda le registrazioni con il trucco del simbolo + e dei punti.

In alternativa, un’implementazione potenzialmente più semplice sarebbe come sopra, ma con due opzioni per ogni dominio email personalizzato: bloccare tutte le registrazioni con il simbolo + e/o punti. Se un utente si registra con quel dominio usando un + o un punto, mostrare un errore che lo invita a rimuovere i punti e/o il simbolo + dall’email (eventualmente facendolo automaticamente) e a riprovare. Non è perfetto, ma sarebbe comunque molto efficace.

Esatto, ecco perché ridurremmo tutto all’indirizzo email canonico per garantire l’unicità. Questo è già stato spiegato sopra. Non possiamo tuttavia memorizzare l’indirizzo email canonico come indirizzo email dell’utente, poiché non è quello che ha fornito.

Le blacklist dei domini esistono già, ma non possiamo assumere che, solo perché un utente può essere raggiunto anche tramite un indirizzo googlemail o gmail, dobbiamo rifiutare uno o l’altro. Da qui il riferimento a un indirizzo “master” canonico.

Oggi ci sono siti in cui gli utenti utilizzano in modo perfettamente legittimo l’indirizzamento plus e i punti. L’obiettivo non è creare disagi per pratiche legittime, ma solo limitare gli effetti collaterali irragionevoli, come la presenza di due utenti per un unico indirizzo canonico.

Se durante la registrazione è richiesto fornire l’email con punti e simboli + rimossi, lato client e con consenso (simile alla validazione del modulo), memorizzarla come email dell’account sarebbe accettabile.

Non è l’ideale né perfetto, ma in alcuni casi potrebbe essere più semplice e un compromesso valido, specialmente quando la scelta è tra creare disagio a pochi utenti o a un intero forum a causa dello spam.

Esistono account Gmail in cui l’email canonica primaria include punti. Sarebbero gli utenti più colpiti e confusi dalla rimozione forzata di questi punti durante la registrazione.

Non credo che questa sarebbe l’implementazione migliore e sicuramente non sarebbe un’opzione predefinita amichevole.

Giusto, ciò che intendevo era avere un menu di opzioni simile alla già esistente blacklist di domini email, per specificare quali domini email dovrebbero essere interessati e i parametri da utilizzare (o non utilizzare) per decidere se un indirizzo email è unico/canonico, come discusso in questa discussione. Potrebbe anche includere quali domini dovrebbero essere considerati lo stesso host, ad esempio gmail/googlemail.

Per quanto riguarda gmail e googlemail, credo siamo d’accordo. Lo stesso vale per i punti e i simboli +.

In sostanza, permettere la prima registrazione, ma impedire all’utente di creare più account utilizzando lo stesso indirizzo email. O almeno minimizzare questa possibilità entro limiti ragionevoli.

john@googlemail.com si registra per primo → accettato
john@gmail.com si registra dopo → rifiutato

matthew+{randomstring}@gmail.com si registra per primo → accettato
matthew@gmail.com si registra dopo → rifiutato
matthew@googlemail.com si registra dopo → rifiutato
m.att.he.w@gmail.com si registra dopo → rifiutato
matthew+{randomstring}@gmail.com si registra dopo → rifiutato
m.a.tt.ew+{randomstring}@googlemail.com si registra dopo → rifiutato

La differenza tra googlemail e gmail (e altri provider con più domini alternativi) è molto meno significativa rispetto ai problemi relativi a punti e simboli +. Tuttavia, gestire anche questi casi sarebbe utile.

Questo è un cambiamento davvero ostile all’utente e del tutto inutile. Il motivo per cui queste funzionalità esistono è identificare la fonte dell’email. Se mi registro utilizzando l’indirizzo stephen+meta@gmail.com, posso configurare una regola che consente di etichettare qualsiasi email inviata a quell’indirizzo. Se Meta viene compromesso e il mio indirizzo inizia a ricevere spam su quell’alias, saprò da dove è avvenuta la violazione. Limitare il modo in cui uso la posta elettronica non è la soluzione; ridurre il mio indirizzo email a una versione canonica per il confronto raggiunge lo stesso risultato senza creare alcun disagio per l’utente.

Esatto, e questo è legato al concetto di indirizzo canonico. Se la funzionalità fosse implementata come inizialmente discusso, trarremmo grande vantaggio dalla possibilità di associare i domini. Ogni permutazione di punti e segni più e ogni variazione di dominio verrebbe confrontata con l’“unico vero indirizzo email” per quella casella di posta, senza causare alcuna frizione.

Purché non creiamo alcun disagio per gli utenti, non c’è motivo per cui questa funzionalità non possa essere attivata di default.

Concordo, una soluzione imperfetta è imperfetta. L’ho menzionata solo come un’alternativa potenzialmente più semplice da implementare. È l’ultima parte del mio post, presentata come alternativa alle principali suggerimenti che ho fatto, i quali sono in linea con molte delle discussioni in questo thread e permettono anche l’uso di ‘+’ e punti, ma non di account duplicati.

Detto questo, per quanto ne ho visto, gli utenti legittimi che usano ‘+’ nelle email su forum/siti non tecnologici sono generalmente un caso limite.

Sembra davvero fantastico. :content:

Il mio post mirava principalmente a spiegare come vengono calcolati gli indirizzi canonici per diversi domini di posta elettronica. Quindi non è limitato all’uso con Gmail/GoogleMail. Stavo essenzialmente cercando di dire che potrebbe essere una buona implementazione a lungo termine offrire agli utenti opzioni per il calcolo degli indirizzi canonici su base per dominio.

Alcuni altri provider consentono l’uso di ‘+’ ma non delle permutazioni con i punti, ad esempio. Ciò significa che le permutazioni con i punti sono email uniche.

Un’implementazione limitata a Gmail/GoogleMail sarebbe comunque ottima e non vedo alcun motivo per cui non possa essere attivata di default.

Potresti fornire un esempio? Chiedo perché la maggior parte degli utenti Gmail non è a conoscenza del trucco del punto. Si sono registrati con un indirizzo che include il punto, forniscono a tutti quella versione della loro email e rimarrebbero molto confusi se venissero informati che “la loro email” non è valida.

Raramente incontro persone che si rendono conto che il loro alias senza i punti arriva comunque a loro.

1 Mi Piace

Certo, ti invio subito un esempio via messaggio privato, lo stesso che ho mandato a Sam. Non sono sicuro che sia una buona idea pubblicarlo in un thread con questo titolo, dato che, per fortuna, sembra che molti spammer non ne siano ancora a conoscenza.

Sì, concordo, sarebbe la principale fonte di confusione per gli utenti comuni con quella soluzione imperfetta.

Non c’è modo che optassimo per un approccio così complicato. Non “normalizzeremo” gli indirizzi email.

O sei in modalità blocco email, che disabilita completamente determinati caratteri problematici in un indirizzo email (in base a un dominio email hardcoded, forse), oppure no.

Questo è tutto. Interruttore booleano. Modalità blocco email, Sì/No?

3 Mi Piace

Da:

Questo è ora completo.

Utilizza l’impostazione del sito enforce_canonical_emails (predefinito: false) per abilitare questa protezione.

Una volta attivata, non saranno consentite registrazioni duplicate per chi utilizza l’inganno del punto . in googlemail.com e gmail.com, né l’inganno del più + a livello globale.

La correzione è molto sicura e non ha alcun impatto immediato quando è disabilitata.

Un effetto collaterale dell’implementazione è che, una volta attivata l’impostazione, passerà un account duplicato in più, poiché non memorizziamo gli indirizzi email nella forma canonica nella tabella degli indirizzi email degli utenti a meno che non si attivi l’impostazione. Questo è perfettamente accettabile a mio avviso, dato che in generale non riesco a trovare casi di questo specifico abuso su molti siti che ospitiamo.

8 Mi Piace

Archiviare la forma canonica è problematico. Che formato assumono?

La specifica è qui:

Se l’impostazione del sito non è abilitata, non succede nulla… zero, niente di niente.

5 Mi Piace

Grazie per le parole gentili @markersocial

Scusa per non aver risposto prima, sono stato occupato con altre attività… sto solo recuperando in ambito meta:

Rilevare spam, registrazioni false, attacchi DDOS, intrusioni e la consapevolezza situazionale nello cyberspazio in generale, insieme a tutte le altre classi simili di problemi di cybersecurity orientati al rilevamento e alla fusione di dati da più sensori, è uno dei miei argomenti preferiti, come sembra tu sappia :slight_smile:

Avendo operato in prima linea e combattuto molte battaglie informatiche “a mano” in tempo reale, permettimi di darti altri due consigli quando si è sotto attacco in questo modo:

(1) Il rilevamento è spesso più un’arte che una scienza pura. Il motivo è che più gli aggressori conoscono i tuoi algoritmi, le tue tecniche di rilevamento e mitigazione, più muteranno e si adatteranno alle tue difese.

(2) Inoltre, non dimenticare mai il “Ciclo OODA”. Osserva-Orienta-Decidi-Agisci. Chi, nella battaglia informatica, riesce a entrare nel ciclo OODA dell’avversario, sarà generalmente il vincitore.

Sono contento di leggere che stai apprezzando la difesa informatica e stai guardando al quadro più ampio. Sembra che tu abbia tutto sotto controllo (da quello che ho letto rapidamente in sintesi in questa discussione) e che anche il team di meta abbia apportato un cambiamento utile per te.

Se dovessi subire un attacco e avessi bisogno di aiuto, non esitare a contattarmi. Sono da tempo ritirato dal mondo della ricerca del profitto e dell’accumulo di ricchezze (grazie al cielo!), quindi non c’è mai un compenso per consultarmi con me. Aiutare gli altri che hanno problemi tecnici interessanti, specialmente nell’ambito della cybersecurity e della guerra informatica, è una priorità più alta per me rispetto all’accumulare ulteriore ricchezza.

Sono qui per te se hai bisogno di qualcuno con cui confrontare le idee e, da quello che ho letto delle tue recenti risposte, sembra che tu abbia le cose sotto controllo.

Ottimo lavoro!

5 Mi Piace

@codinghorror la mia opinione è che questa modifica sia inutile e che dovrei semplicemente annullarla.

Nessuno dei nostri siti ospitati la richiede, né le modalità di blocco email estreme. Nella pratica, tutto questo non è un problema perché eliminiamo comunque gli account inattivi e scansioniamo i profili alla ricerca di spam.

Uno spammer può semplicemente gestire un server SMTP, il che è più facile che automatizzare Gmail, e in questo modo ha accesso a un numero infinito di indirizzi email.

Inoltre, l’indirizzamento è ampiamente utilizzato in modo legittimo.

Il problema più comune legato ai punti in Gmail non riguarda lo spam, ma gli errori di battitura negli indirizzi email.

Credo che l’unica modifica che sostengo nel core sia l’espansione del blocco degli indirizzi email per includere anche le versioni canoniche; almeno questo migliorerebbe la funzionalità di blocco email e risolverebbe il problema sollevato dall’OP.

Ad esempio, se blocchi Jane@gmail.com, verrebbe bloccato anche j.ane+1@gmail.com.

Qualsiasi altra modifica può essere gestita tramite plugin.

Ti sembra ragionevole?

7 Mi Piace