J'ai un formulaire de courriel sur le site Web. J'utilise un CAPTCHA personnalisé pour empêcher le spam des robots. Malgré cela, je reçois toujours du spam.
Pourquoi? Comment les robots battent-ils le CAPTCHA? Utilisent-ils une sorte d'OCR avancée ou obtiennent-ils simplement la solution d'où elle est stockée?
Comment puis-je éviter cela? Dois-je passer à un autre type de CAPTCHA?
Je suis sûr que les e-mails proviennent du formulaire, car ils sont envoyés par mon expéditeur qui sert les messages du formulaire. Le style des lettres est également le même.
Pour mémoire, j'utilise PHP + MySQL, mais je ne cherche pas de solution à ce problème. Je m'intéressais à la situation générale de la façon dont les robots les ont battus Je viens de citer cette situation à titre d'exemple, afin que vous puissiez mieux comprendre ce que je demande.
Deux façons les plus simples de traverser CAPTCHA:
Utilisez des fermes humaines, c'est-à-dire demandez aux gens de remplir CAPTCHA pour de l'argent, tout comme ProTypers le fait.
Utilisez un OCR.
Il peut également y avoir un bogue dans le mécanisme CAPTCHA lui-même ou dans l'application environnante, permettant à quelqu'un de contourner le CAPTCHA.
Soit dit en passant, le article du W3C sur l'accessibilité de CAPTCHA: Alternatives aux tests de Visual Turing sur le Web explique également comment les CAPTCHA pourraient être compromis:
[...] L'une des premières attaques documentées contre le système a été perpétrée par un étudiant de Carnegie Mellon, qui a associé des images CAPTCHA à l'accès à un site Web pour adultes, gagnant ainsi du travail humain gratuit pour casser l'authentification. [...]
Des projets externes [...] ont montré des méthodologies et des résultats indiquant que de nombreux systèmes peuvent être vaincus par des ordinateurs avec une précision comprise entre 88% et 100%, grâce à la reconnaissance optique des caractères.
Alors, comment pouvez-vous empêcher ces attaques?
Si vous avez votre CAPTCHA implémenté personnalisé, vous pouvez essayer de passer à un populaire, comme reCAPTCHA .
Cela vous aidera si votre propre CAPTCHA était trop facile à OCR, ou s'il y avait un bug qui a été exploité avec succès.
Si vous utilisez un mécanisme CAPTCHA populaire, le passage à un mécanisme personnalisé ou à un autre populaire peut empêcher l'OCR.
Techniquement, rien n'empêcherait les fermes humaines: vous pouvez créer des GIF animés où plusieurs images affichent du texte différent très rapidement, et une seule image est réellement visible par l'utilisateur, vous pouvez déformer ou plier le texte dans toutes les directions ou trouver de nouvelles façons alternatives d'empêcher Les OCR de reconnaissance de texte, les humains toujours payés pour résoudre les CAPTCHA les résoudront avec succès.
Vous souhaiterez peut-être passer du CAPTCHA visuel au son (si vous n'utilisez pas déjà les deux, et vous devriez le faire), mais cela signifie que les utilisateurs malentendants ne pourront pas utiliser votre application.
FrustratedWithFormsDesigner et GalacticCowboy mentionnés dans les commentaires CAPTCHA spécifiques au domaine. J'ai essayé de trouver des informations sur leur efficacité, mais sans succès, voici donc mon opinion personnelle:
Les CAPTCHA spécifiques au domaine peuvent être extrêmement ennuyeux lorsque les utilisateurs réels n'ont aucune idée de la réponse.
Exemple: je visite une page d'un site Web axé sur les films. Je constate une erreur dans un article et je souhaite faire un commentaire pour informer l'auteur de l'erreur. Le formulaire de commentaires me demande, en tant que mécanisme CAPTCHAs, de fournir le nom de l'actrice affiché sur une photo. Je n'ai aucune idée de qui est cette actrice, donc la seule chose que je puisse faire est de quitter le site Web (ou de passer les deux prochaines minutes à utiliser Google Images).
Autre exemple: un site Internet demande de donner un synonyme de "mystérieux". Aussi simple que cela puisse paraître pour une personne non handicapée qui parle couramment l'anglais, il serait impossible de résoudre sans aide extérieure pour les personnes qui ne parlent pas bien anglais ou les personnes ayant des troubles du développement, sans compter les Il est toujours difficile de trouver des synonymes ou des antonymes.
La plupart de ces problèmes spécifiques au domaine peuvent être résolus par programme. Les deux exemples que j'ai donnés sont facilement résolus à l'aide de ressources externes (dictionnaire Google Images et Synonymes). Celui sur les transistors donné à titre d'exemple par FrustratedWithFormsDesigner est meilleur, mais peut toujours être résolu avec un bot sur mesure.
Aucun ne résiste aux fermes humaines.
Soit ils génèrent des données, tout comme les CAPTCHA de texte ordinaire dessinent des caractères déformés, auquel cas l'algorithme de génération peut être lui-même exploité pour régler les bots, soit ils trouvent des données quelque part, tout comme reCAPTCHA prend le texte des livres numérisés , auquel cas le bot peut utiliser ces données contre lui (par exemple, si vous prenez des mots d'un dictionnaire, en demandant à l'utilisateur de fournir des synonymes, le bot peut utiliser le même dictionnaire pour avoir un succès à 100%).
Ajout à réponse de MainMa ...
Les spammeurs incitent les autres à faire le CAPTCHA pour eux
Fondamentalement, les spammeurs ont créé un site warez ou un site porno qui semble avoir un CAPTCHA, mais ce n'est pas un vrai CAPTCHA. Un bot extrait le CAPTCHA du site qu'il souhaite spammer (ou autrement exploiter), puis l'affiche sur le site warez ou un site porno où quelqu'un le complète pour lui. Ensuite, la valeur CAPTCHA est renvoyée à leur bot ...
Un peu plus sur les spammeurs
J'utilise reCAPTCHA , et j'ai trouvé que cela ne valait rien. J'utilise également un filtre anti-spam personnalisé qui capture le spam qui a passé reCAPTCHA, et je dois le vérifier tous les quelques jours pour détecter les faux positifs.
Mon forum est également entièrement personnalisé et il reçoit très peu de trafic. Je ne crois pas que quiconque ait codé une attaque spécifique sur mon site. Pourtant, mon filtre anti-spam capte 2 000 messages de spam par jour! Aucun n'est jamais affiché sur le site. Les spammeurs ne tirent aucun avantage du spam, mais ils le font toujours.
Je peux voir des schémas dans les tentatives de spam parce que j'enregistre tout. Je peux vous dire ceci: mis à part la façon dont ils dépassent le CAPTCHA, les spammeurs utilisent clairement une technique de force brute variant les champs qui sont remplis et le type de données et de mélanges de mots qui peuplent ces champs. Apparemment, ils le font à si bas prix (y compris en contournant le CAPTCHA) qu'il n'est même pas payant de faire une analyse des sites individuels pour voir si ce qu'ils font fonctionne ou ne fonctionne pas.
Année après année, ils continuent de cibler mon site avec des milliers de spams par jour uniquement pour en obtenir un tous les mois, et celui-ci est supprimé manuellement un jour plus tard. C'est aussi bon marché que de spammer!
Ce sera une bataille pour les années à venir. Particulièrement pour les petits sites de modérateurs individuels comme le mien.
EDIT 6/22/2017 : Je veux ajouter que depuis ce post, google a complètement remanié reCAPTCHA et que depuis cette écriture, il fonctionne parfaitement. Bien que je soupçonne qu'il y ait un peu de faux positifs ou que c'est une douleur pour les utilisateurs, car le message a un peu baissé depuis que je l'ai implémenté. Les 2 grands changements sont
1) Ils utilisent des images au lieu du texte (donc plus d'OCR)
2) Ils le combinent avec l'activité des utilisateurs sur tous les sites qui utilisent reCAPTCHA. Donc, si vous dépassez le reCAPTCHA sur le site A, alors allez sur le site B, cela ne vous invitera peut-être même pas à prouver que vous êtes humain! Aussi (je pense) si vous frappez trop de reCAPTCHA sur trop de sites, cela vous signalera également. Je suis sûr qu'il utilise également d'autres types d'IA basés sur l'activité des utilisateurs.
Je suis sûr que ce n'est qu'une question de temps avant que les spammeurs ne battent cela aussi ...
Avez-vous déjà essayé d'utiliser le captcha chat-chien? J'ai un forum qui avait captcha standard et l'a changé et je n'ai plus de spams invités depuis.
Il est possible que votre site soit ciblé par une main-d'œuvre ultra-bon marché exploitée et qu'un être humain entre manuellement vos phrases CAPTCHA.
Si la solution que vous utilisez n'est pas trop sophistiquée, il est possible que votre attaquant effectue une reconnaissance d'image.
Il est également possible que vous ayez un bogue quelque part dans votre code qui permette de contourner le CAPTCHA.
Ne faites pas l'hypothèse qu'un robot bat votre CAPTCHA. Pensez à votre système de manière globale et voyez s'il a été compromis.
D'autres ont discuté de la façon dont les spammeurs contournent les CAPTCHA. Voici quelques conseils sur Comment puis-je éviter cela:
Notez qu'il n'y a pas de solution miracle et les spammeurs semblent avoir une longueur d'avance sur le match. Vous devrez donc utiliser une combinaison de plusieurs techniques
Pour faire écho aux autres réponses, vous rencontrerez probablement des robots qui utilisent des fermes humaines pour entrer les captchas pour eux.
J'ai récemment discuté d'une technique (et publié un module Drupal) qui bloque les robots collecteurs de spam en exigeant du JavaScript côté client. Pour autant que je sache, cela a fonctionné avec une efficacité de 100% sur tous les sites qui ont utilisé ce code. L'idée est d'utiliser AJAX pour générer un hachage unique et le soumettre avec les autres données du formulaire, puis calculer ce même hachage sur le backend une fois le formulaire est soumis et comparer les deux valeurs.
Tous les détails dans mon article de blog (par coïncidence, puisque vous avez mentionné l'utilisation de PHP + MySQL, ce sont les mêmes technologies décrites ici) - Version du module: Badbot; élimination du spam ...