Protecting against gmail dot trick in Discourse

Je ne sais pas, @sam, j’ai l’impression que nous avons plutôt besoin d’un plugin CAPTCHA pour la création de comptes. Je ne pense pas que « interdire les points et les signes plus » traite la cause profonde du problème ; cela ne fait que s’attaquer aux symptômes :thinking:

Historiquement, la tendance est à une augmentation des spammeurs humains au fil du temps. Je veux dire, ils remplissent les profils utilisateurs, téléchargent des images de profil, et ainsi de suite. Les spammeurs automatisés (à l’exception de bamwar) n’ont pas vraiment été un problème majeur sur Discourse, car il est très difficile d’automatiser des attaques contre une application JavaScript complète. Notez que la plupart de vos commentaires, @neounix, relèvent de la catégorie décrite dans ma phrase précédente : il est très difficile de nous automatiser car nous sommes si complexes par rapport à un site web en HTML 1.0 de 1999. Élever ce seuil de difficulté élimine la majeure partie du problème, selon ce que nous avons observé avec nos clients et ici sur meta.

Enfin, TL;DR : je ne suis pas nécessairement opposé à un simple paramètre « interdire certains caractères dans les adresses e-mail », je suppose, mais au fond de moi, je ne pense rien d’autre qu’un CAPTCHA ne puisse vraiment aider dans ce cas ? Nous pourrions faire les deux ?

5 « J'aime »

Mais certains utilisateurs (dont moi-même) utilisent le + pour trier réellement les e-mails dans leur client de messagerie.

3 « J'aime »

Pas de souci, ce n’est pas activé par défaut ; il s’agit plutôt d’un mode « verrouillage en cas d’attaque » via les paramètres du site.

7 « J'aime »

@neounix Légendaire. Merci pour les conseils, très appréciés — cela m’a lancé dans une chasse aux spams. J’ai temporairement activé le mode « Je suis sous attaque » de Cloudflare (ce qui a stoppé leurs inscriptions — ils créaient un nouveau compte toutes les 1 à 2 minutes) et j’ai consulté les journaux du pare-feu Cloudflare pour repérer certaines adresses IP qu’ils utilisaient, constatant que chaque visiteur était soumis à un défi ou enregistré. Ils utilisaient effectivement des user-agents identiques.

J’ai ajouté une règle de pare-feu pour soumettre à un défi les utilisateurs avec ce user-agent et désactivé le mode « Je suis sous attaque » sur CF. Je ne pense pas que beaucoup d’utilisateurs innocents aient été confrontés à ce défi, et cela a complètement stoppé leurs inscriptions de spam.

J’ai ensuite découvert la fonctionnalité de blocage par numéro d’autonome (ASN) de Cloudflare et mis en place des règles de pare-feu supplémentaires pour bloquer une partie importante d’entre eux, en me référant aux journaux de blocage par user-agent. Il existe des contournements pour cela, je suis sûr que vous les connaissez, mais cela représente un coût et un effort supplémentaires pour eux.

:content:

@codinghorror Je suis d’accord avec vous que les captchas seraient utiles. Je dirais qu’un bon objectif principal de prévention du spam serait d’augmenter le coût global des ressources pour les spammeurs.

Les captchas y contribueraient. Environ 2 $ par mille résolutions de reCAPTCHA (en utilisant une API de résolution de captcha, par exemple https://anti-captcha.com). Sans compter les complexités supplémentaires requises pour leurs bots.

Note annexe : Anti-captcha propose une extension de navigateur pour résoudre automatiquement vos captchas, cela fonctionne bien et c’est une commodité amusante. :goodnews:

Les adresses e-mail constituent généralement un autre coût de ressources pour la création de comptes en masse. Cependant, ce n’est pas le cas lorsqu’un seul utilisateur peut créer virtuellement un nombre illimité de comptes à partir d’une seule adresse Gmail. Le coût de 1000 comptes Gmail est assez important, ils ont donc souvent recours à d’autres fournisseurs moins stricts ou à des domaines de type catchall. Cela leur coûtera tout de même des ressources et cela reste plus facile à identifier comme spam.

Je pense qu’il s’agit vraiment du principe « plus c’est mieux ». Aucune défense unique ne sera suffisamment forte ; augmenter simplement la quantité de ressources et d’efforts nécessaires aux spammeurs en général constitue des pas dans la bonne direction. Le meilleur scénario est que spammer les forums Discourse demande plus d’efforts aux spammeurs que de bloquer ces tentatives et supprimer en masse ce qui passe à travers pour les administrateurs.

@itsbhanusharma J’aime beaucoup pouvoir utiliser le +, mais c’est pour cela qu’on ne peut pas avoir de belles choses, haha. Ce serait bien d’avoir la possibilité de l’activer si nécessaire pour lutter contre les spammeurs.

2 « J'aime »

Après y avoir réfléchi, j’ai tendance à être d’accord avec toi sur ce point. @sam, pouvons-nous prioriser ce paramètre de verrouillage des e-mails pour la semaine prochaine ?

5 « J'aime »

Ce sujet a déjà été largement discuté plus haut, dans ce même fil de discussion.
« Interdire » les points et les signes plus provoquerait probablement certains problèmes (du moins pour certains utilisateurs). L’idée était de stocker une version « canonique » de l’adresse e-mail (une version « nettoyée »), et d’empêcher l’inscription d’utilisateurs supplémentaires ayant la même version canonique pour Gmail (c’est-à-dire en réalité la MÊME adresse e-mail, grâce aux astuces de Gmail).

C’est peut-être ce dont parle Sam lorsqu’il dit :

Peut-être est-ce aussi ce que vous vouliez dire, @codinghorror, et non pas vraiment « interdire » les . et +.
Mais je suis d’accord avec vous : cela ne « résoudrait » le problème que pour Gmail (et non pas, par exemple, l’utilisation d’une adresse « catchall » avec un domaine).

Un CAPTCHA résoudrait-il vraiment quelque chose, alors que vous dites vous-même :

[quote=“codinghorror, post:61, topic:22627”]
la tendance a été, au fil du temps, vers des spammeurs 100 % humains. Je veux dire qu’ils remplissent les profils utilisateurs, téléchargent des images de profil, et tout le reste.
[/quote] ?

Cela ressemble à une étape que nous avons oubliée.

Imposer l’utilisation de l’e-mail canonique pose problème, mais bloquer plus d’un compte par e-mail canonique par défaut semble tout à fait raisonnable.

La plupart d’entre nous possèdent plusieurs adresses e-mail si nous avons besoin d’un compte de test. Cela ne posera pas de problème majeur dans ce cas. Si c’est une option par défaut, nous n’aurons pas besoin d’expliquer aux utilisateurs comment l’activer après qu’un abus se soit produit.

1 « J'aime »

Les signes plus (+) dans les e-mails peuvent, je crois, être traités de manière plus ou moins identique sur tous les domaines de messagerie, sans trop de problèmes.

Pour des adresses comme sp.a.mmer.king@gmail.com ou s.pa.mmerking@gmail.com, dans le cas de Gmail, il s’agit de la même adresse e-mail. Cependant, pour certains autres fournisseurs, ce n’est peut-être pas le cas et ces deux adresses correspondent à des utilisateurs distincts.

Je pense qu’une bonne solution à long terme serait quelque chose de similaire à la fonctionnalité de liste noire des domaines de messagerie.

Ajouter un domaine personnalisé que vous souhaitez interdire pour éviter les astuces d’inscription en double. Ensuite, permettre d’activer ou de désactiver individuellement le blocage de ces deux types d’inscriptions en double. Autrement dit, proposer des options séparées pour interdire les doublons utilisant l’astuce du signe + et ceux utilisant l’astuce des points.

Stocker l’adresse e-mail enregistrée telle quelle (en ce qui concerne la connexion de l’utilisateur et l’adresse à laquelle les e-mails sont envoyés), tout en bloquant les inscriptions supplémentaires qui sont déterminées comme étant la même adresse.

Une autre amélioration, qui rendrait la solution légèrement plus efficace, consisterait à regrouper plusieurs domaines dans un seul enregistrement de domaine personnalisé, afin qu’ils soient traités comme un même domaine. Par exemple, gmail.com et googlemail.com. Ainsi, une personne pourrait être empêchée de s’inscrire deux fois avec, par exemple, example@gmail.com et example@googlemail.com. Il existe d’autres fournisseurs qui proposent plusieurs domaines interchangeables ; j’ai envoyé quelques exemples à Sam. Cela pourrait ajouter un peu plus de protection, mais globalement, le principal problème exploitable concerne les inscriptions utilisant les astuces du signe + et des points.

Sinon, une implémentation potentiellement plus simple consisterait en ce qui précède, mais avec deux options pour chaque domaine e-mail personnalisé : bloquer toutes les inscriptions contenant des signes + et/ou des points. Si un utilisateur s’inscrit avec ce domaine en utilisant un signe + ou un point, lui afficher une erreur l’invitant à supprimer les points et/ou les signes + de son adresse e-mail (éventuellement en le faisant automatiquement) et à réessayer. Ce n’est pas parfait, mais cela resterait très efficace.

Exactement, c’est pourquoi nous réduisons l’adresse à sa forme canonique pour garantir l’unicité. Cela a été mentionné ci-dessus. Nous ne pouvons toutefois pas stocker l’adresse canonique comme adresse e-mail de l’utilisateur, car ce n’est pas celle qu’il a fournie.

Les listes noires de domaines existent déjà, mais nous ne pouvons pas supposer que, simplement parce qu’un utilisateur peut également être joint via une adresse googlemail ou gmail, nous devions rejeter l’une ou l’autre. D’où le recours à une adresse « maîtresse » canonique.

Il existe aujourd’hui des sites où les utilisateurs utilisent légitimement l’adressage avec le signe « + » et les points. L’objectif n’est pas de gêner les pratiques légitimes, mais uniquement de limiter les effets secondaires déraisonnables, tels que la création de deux comptes pour une seule adresse canonique.

Si la fourniture de l’adresse e-mail avec les points et le signe plus supprimés est requise lors du processus d’inscription, côté client et avec consentement (similaire à une validation de formulaire), le stocker comme adresse e-mail du compte serait acceptable.

Ce n’est pas idéal ni parfait, mais potentiellement plus simple et un compromis valable dans certains cas où le choix est de gêner quelques utilisateurs ou de gêner l’ensemble d’un forum avec du spam.

Il existe des comptes Gmail dont l’e-mail canonique principal inclut des points. Ce seraient les utilisateurs les plus touchés et les plus confus par une suppression forcée de ces points lors de l’inscription.

Je ne pense pas que ce soit la meilleure implémentation non plus, et cela ne serait certainement pas l’option par défaut la plus conviviale.

Exact, ce que je voulais dire, c’est avoir un menu d’options similaire à la liste noire de domaines e-mail déjà existante, pour spécifier quels domaines e-mail devraient être concernés et les paramètres à utiliser (ou non) pour décider si une adresse e-mail est unique/canonique, comme discuté dans ce fil. Potentiellement aussi, quels domaines devraient être considérés comme le même hôte, par exemple gmail/googlemail.

Concernant gmail et googlemail, je pense que nous sommes d’accord. Idem pour les points et les signes +.

Essentiellement, permettre à la première inscription de passer, mais empêcher l’utilisateur de créer plusieurs comptes avec la même adresse e-mail. Ou du moins, minimiser cela dans la mesure du raisonnable.

john@googlemail.com s’inscrit en premier → accepté
john@gmail.com s’inscrit plus tard → rejeté

matthew+{randomstring}@gmail.com s’inscrit en premier → accepté
matthew@gmail.com s’inscrit plus tard → rejeté
matthew@googlemail.com s’inscrit plus tard → rejeté
m.att.he.w@gmail.com s’inscrit plus tard → rejeté
matthew+{randomstring}@gmail.com s’inscrit plus tard → rejeté
m.a.tt.ew+{randomstring}@googlemail.com s’inscrit plus tard → rejeté

La distinction entre googlemail et gmail (et d’autres fournisseurs ayant plusieurs domaines alternatifs) est bien moins significative que les problèmes liés aux points et aux signes +. Gérer ces cas serait néanmoins appréciable.

C’est un changement vraiment hostile pour l’utilisateur et totalement inutile. La raison pour laquelle ces fonctionnalités existent à la base est d’identifier la source des e-mails. Si je m’inscris en utilisant l’adresse e-mail stephen+meta@gmail.com, je peux configurer une règle permettant d’étiqueter tout e-mail envoyé à cette adresse. Si meta est compromis et que mon adresse e-mail commence à recevoir du spam à cet alias, je saurai alors où la faille s’est produite. Entraver la façon dont j’utilise l’e-mail n’est pas la solution ; réduire mon adresse e-mail à une version canonique pour la comparaison atteint le même résultat sans créer aucune gêne pour l’utilisateur.

Exactement, et cela est lié au concept d’adresse canonique. Si la fonctionnalité était mise en œuvre comme initialement discutée, nous bénéficieraient grandement de la possibilité d’associer des domaines. Chaque permutation de points et de signes plus, ainsi que chaque variation de domaine, serait comparée à « la seule et unique adresse e-mail » pour cette boîte aux lettres, sans créer aucune friction.

À condition de ne causer aucune difficulté aux utilisateurs, il n’y a aucune raison pour que cette fonctionnalité ne puisse pas être activée par défaut.

Je suis d’accord, une solution imparfaite reste imparfaite. Je l’ai seulement mentionné comme une alternative potentiellement plus simple à mettre en œuvre. C’est la dernière partie de mon message, présentée comme une alternative aux suggestions principales que j’ai formulées, lesquelles s’accordent avec une grande partie des discussions dans ce fil, tout en autorisant les signes « + » et les points, mais pas les comptes en double.

Cela dit, l’utilisation de signes « + » dans les e-mails par des utilisateurs légitimes sur des forums ou sites non techniques est généralement un cas marginal, d’après ce que j’ai observé.

Cela sonne vraiment fantastique. :content:

Mon message visait principalement à expliquer comment les adresses canoniques sont calculées pour différents domaines d’e-mail. Il ne s’agit donc pas d’une fonctionnalité limitée à l’utilisation avec Gmail ou Googlemail uniquement. J’essayais essentiellement de dire qu’il pourrait être judicieux, à long terme, de proposer aux utilisateurs des options pour déterminer comment les adresses canoniques sont calculées, domaine par domaine.

Certains autres fournisseurs autorisent le signe « + » mais pas les permutations de points, par exemple. Cela signifie que les permutations de points constituent des e-mails uniques.

Une implémentation limitée à Gmail/Googlemail serait toutefois excellente, et je ne vois aucune raison pour laquelle elle ne pourrait pas non plus être activée par défaut.

Pourriez-vous en donner un exemple ? Je pose la question car la majorité des utilisateurs de Gmail ignorent l’astuce des points. Ils se sont inscrits avec une adresse contenant des points, ils communiquent cette version à tout le monde et seraient très confus si on leur disait que « leur adresse e-mail » était invalide.

Je rencontre rarement des gens qui réalisent même que leur alias sans les points les parviendra toujours.

1 « J'aime »

Bien sûr, je vais vous envoyer par message privé un exemple que j’ai déjà envoyé à Sam. Je ne suis pas certain que ce soit une bonne idée de publier cela publiquement dans un fil de discussion avec ce titre, car il semble que beaucoup de spammeurs ignorent encore cela, heureusement.

Oui, d’accord, ce serait la principale source de confusion pour les utilisateurs réguliers avec cette solution imparfaite.

Il n’est pas question que nous adoptions une approche aussi compliquée. Nous ne allons pas « normaliser » les adresses e-mail.

Soit vous êtes en mode verrouillage des e-mails, ce qui interdit complètement certains caractères problématiques dans une adresse e-mail (selon le domaine e-mail codé en dur, peut-être), soit vous ne l’êtes pas.

C’est tout. Un simple interrupteur booléen. Mode verrouillage des e-mails, O/N ?

3 « J'aime »

Par :

Ceci est désormais terminé.

Utilisez le paramètre du site enforce_canonical_emails (valeur par défaut : false) pour activer cette protection.

Une fois activé, nous interdisons les inscriptions dupliquées pour les personnes utilisant l’astuce du . dans googlemail.com et gmail.com, ainsi que l’astuce du + de manière globale.

La correction est très sûre et n’a aucun impact par défaut lorsqu’elle est désactivée.

Un effet secondaire de l’implémentation est qu’une adresse e-mail dupliquée supplémentaire pourra passer une fois le paramètre activé, car nous ne stockons pas les adresses e-mail sous leur forme canonique dans la table des e-mails des utilisateurs tant que le paramètre n’est pas activé. Cela est tout à fait acceptable selon moi, car en général, je ne parviens pas à trouver de cas précis de cet abus exact sur de nombreux sites que nous hébergeons.

8 « J'aime »

Le fait de stocker la forme canonique est problématique. Quel format adoptent-elles ?

La spécification est ici :

Si le paramètre du site n’est pas activé, rien ne se produit… zéro, rien du tout.

5 « J'aime »

Merci pour vos aimables mots @markersocial

Désolé de ne pas avoir répondu plus tôt, j’ai été occupé par d’autres tâches… Je rattrape juste le retard sur les aspects méta :

Détecter les spams, les inscriptions frauduleuses, les attaques DDOS, les intrusions et assurer une conscience situationnelle du cyberespace en général, ainsi que toutes les autres catégories similaires de problèmes de cybersécurité axés sur la détection et la fusion de données multi-capteurs, est l’un de mes sujets préférés, comme vous semblez le savoir :slight_smile:

Ayant été sur la ligne de front et ayant mené de nombreuses batailles cybernétiques « en direct » en temps réel, laissez-moi vous donner deux autres indices lorsque vous êtes sous attaque comme celle-ci :

(1) La détection est souvent plus un art qu’une science pure. La raison en est que plus les attaquants en savent sur vos algorithmes et techniques de détection et d’atténuation, plus ils vont muter et s’adapter à vos défenses.

(2) N’oubliez jamais non plus la « boucle OODA ». Observer-Orienter-Décider-Agir. Celui ou ceux qui, dans la bataille cybernétique, parviennent à entrer dans la boucle OODA de l’adversaire seront généralement les vainqueurs.

Je suis ravi de lire que vous appréciez la cyberdéfense et que vous avez une vision plus large. Il semble que vous ayez tout sous contrôle (d’après ce que j’ai lu rapidement en résumé dans cette discussion) et que l’équipe méta ait également apporté un changement utile pour vous.

Si vous subissez une attaque et avez besoin d’aide, n’hésitez pas à me contacter. Je suis depuis longtemps retiré du monde de la quête de profits et de l’accumulation de richesses (heureusement !), donc il n’y a jamais de frais pour consulter avec moi. Aider les autres qui ont des problèmes techniques intéressants, en particulier dans le domaine de la cybersécurité et de la cyberguerre, est une priorité plus élevée pour moi que l’accumulation de davantage de richesses.

Je suis là pour vous si vous avez besoin de quelqu’un avec qui échanger des idées et, d’après ce que j’ai lu de vos récentes réponses, il semble que vous ayez les choses sous contrôle.

Excellent travail !

5 « J'aime »

@codinghorror mon raisonnement ici est que ce changement est inutile et que je devrais simplement annuler ma modification.

Aucun de nos sites hébergés ne le demande, ni les modes de blocage extrême des e-mails. Rien de tout cela ne pose de problème en pratique, car nous purgeons nos comptes inactifs de toute façon et nous analysons les profils contre le spam.

Les spammeurs peuvent simplement exécuter un serveur SMTP, ce qui est plus facile que d’automatiser Gmail, et ils ont ainsi accès à une infinité d’adresses e-mail.

De plus, l’adressage est très largement utilisé de manière légitime.

Le problème le plus courant lié aux points dans Gmail n’est pas le spam, mais les erreurs de frappe dans les adresses e-mail.

Je pense que le seul changement que je soutiens dans le cœur du système est d’étendre le blocage des e-mails pour inclure les adresses canoniques ; c’est du moins une amélioration de la fonction de blocage des e-mails et cela résout le problème soulevé par l’auteur du sujet (OP).

Par exemple, si vous bloquez Jane@gmail.com, cela bloque également j.ane+1@gmail.com.

Toute autre modification peut être réalisée via des plugins.

Est-ce que cela vous semble correct ?

7 « J'aime »