Mon site prend de l'ampleur et commence à attirer beaucoup de spam par différents canaux. Le site comporte de nombreux types de CGU (profils, forums, commentaires de blog, mises à jour de statut, messages privés, etc.) J'ai mis en place plusieurs mesures d'atténuation, que j'espère déployer de manière éclair pour convaincre les spammeurs que nous ne sommes pas une cible valable. J'ai une grande confiance dans ce que je fais au niveau des fonctionnalités, mais il manque une pièce pour tuer tous les anciens spams d'un seul coup.
Voici ce que j'ai :
- Grands corpus bons/mauvais (5 chiffres pour les mauvais, 6 ou 7 chiffres pour les bons). Une grande partie du spam a des empreintes digitales très fiables, et le fait que je l'ai en quelque sorte ignoré pendant 6 mois aide :)
- Grand site Rails modulaire déployé sur AWS . Ce n'est pas un site à fort trafic, mais nous utilisons 8 instances avec les prémices d'une SOA.
- Ruby, Redis, Resque, MySQL, Varnish, Nginx, Unicorn, Chef, le tout sur Gentoo
Mes exigences :
- Je veux qu'il soit raisonnablement performant compte tenu du volume de données (je me méfie donc d'une solution purement ruby).
- Je devrais être en mesure d'entraîner des classifications multiples pour différents types de contenu (escroquerie 419 vs spam de liens de botnet).
- J'aimerais pouvoir ajouter des facteurs manuels basés sur notre propre travail de détective (correspondance de modèles, réutilisation d'IP, etc.).
- En fin de compte, je veux construire une interface agréable à utiliser avec Ruby. Si cela nécessite de se salir les mains en C ou autre, je peux le faire, mais je l'éviterai si je peux.
Je me rends compte que c'est une question longue et vague, mais ce que je recherche avant tout, c'est une liste de bons paquets et, accessoirement, les réflexions de quelqu'un qui a construit un système similaire sur la façon de l'aborder.