Forum Linux.général Comment gérer les spams intelligement ?

Posté par (page perso) . Licence CC by-sa
Tags : aucun
5
13
oct.
2014

Je n’avais plus touché à ma gestion des spams depuis plusieurs années, et je suis en train de la revoir.

SA est toujours toujours aussi gourmand, et casse-pied à maintenir dans la durée. Les RBL ont toujours la gâchette aussi facile. Bogofilter est pratique et léger, mais peu laisser passer certains spams. Les spamworms semblent désormais inclure un serveur smtp digne de ce nom, pour contrer le greylisting. DSPAM semblait destiné à devenir la nouvelle référence ? Raté, il n’est plus maintenu. D’autres solutions prometteuses apparaissent puis périclitent.

Vu de ma fenêtre, c’est quand même assez bordélique. Tout le monde fini par laisser tomber et migrer chez gmail, ou quoi ?

Je pense que rejeter un mail définitivement est une mauvaise idée. Il faut fonctionner avec un système de notes, et enchaîner différents tests, différents outils. Avant de me replonger dans tout ça, j’imaginais que quelqu’un avait tiré la même conclusion et que je trouverais un outil permettant de faire un truc de ce style :

  • arrivée d’un mail, sa note part de 1
  • pas d’entrée spf/dkim = -0,2
  • pas de reverse = -0,2
  • présent dans une rbl = -0,3
  • si score en-dessous de 0,8 : greylisting (si serveur respecte le greylisting : +0,2)
  • bogofilter qui ajoute sa note
  • etc

et on prend une décision (inbox, suspects, spams) suivant la note final.

But so far, zippo. Est-ce que quelqu’un connaîtrait un outil qui permet de faire ça, si possible compatible avec postfix ?

Merci beaucoup,
Almin.

  • # pymilter

    Posté par . Évalué à 5.

    Je suis arrivé à la même conclusion que toi concernant les antispams et j'ai donc créé mon propre outil personnalisé. J'ai utilisé python et le module pymilter qui s'interface avec postfix.
    J'ai pu créé exactement les règles que je souhaitais et aussi implémenter différents traitements : tag, quarantaine, rejet, rejet sans erreur, etc
    Le plus long a été le design, l'implémentation a été rapide et facile. Le résultat est trés satisfaisant.

    • [^] # Re: pymilter

      Posté par . Évalué à 4. Dernière modification le 13/10/14 à 10:10.

      pour info: pymilter

      as-tu décidé de diffuser ton outil et si oui, sous quelle licence ?
      est-ce que tu as réalisé des tests de performance pour le comparer aux autres filtres anti-spams ?

      • [^] # Re: pymilter

        Posté par . Évalué à 2.

        Effectivement j'ai pensé à publier le code en open-source mais je dois enlever tout le code propre à notre configuration. Cela serait un refactoring utile mais en ce moment je n'ai pas le temps.

        Nous avons fait des tests à 250 connections SMTP par sec et le script encaissait bcp plus. Mais je crois que les tests n'étaient pas trés réalistes, il faudrait un botnet comme ceux des spammeurs.

        J'ai optimisé le code python pour éviter les analyses inutiles comme les pièces jointes car nous avons un antivirus. J'ai aussi optimisé postfix : désactiver les filtres intégrer (postscreen), mieux gérer les botnets, éviter les requêtes DNS inutiles, etc

        Pour info, ce nouvel anti-spam en python/pymilter a remplacé avec succès un anti-spam commercial plutôt performant (Vamsoft ORF) mais pas suffisament personnalisable malgré les scripts. Et le plus c'est que je suis débutant en Python ;)

  • # c'est pas deja le cas ?

    Posté par . Évalué à 2.

    Avant de me replonger dans tout ça, j’imaginais que quelqu’un avait tiré la même conclusion et que je trouverais un outil permettant de faire un truc de ce style :

    arrivée d’un mail, sa note part de 1
    pas d’entrée spf/dkim = -0,2
    pas de reverse = -0,2
    présent dans une rbl = -0,3
    si score en-dessous de 0,8 : greylisting (si serveur respecte le greylisting : +0,2)
    bogofilter qui ajoute sa note
    etc

    et on prend une décision (inbox, suspects, spams) suivant la note final.

    il me semblait que c'etait deja le cas avec postfix/spamassisin/clamav,
    si je regardes mes entetes, il me semble bien qu'il y a des notes, et que si la note depasse un seuil c'est un "SPAM",
    vient ensuite seulement la question de savoir quoi faire cet email flagué spam,
    là encore c'est le score qui decide, spam certains (note elevée) => poubelle, spam à confirmer (note moyenne) => flag et mis dans la boite utilisateur…

  • # Reverse

    Posté par (page perso) . Évalué à 6. Dernière modification le 14/10/14 à 10:16.

    C'est à peu près ce que fait SpamAssassin il me semble.

    En revanche, mauvaise idée de qualifier des messages en fonction de la présence ou de l'absence de nom DNS inverse pour l'adresse IP d'où ils proviennent, pour une raison simple : ça ne donne aucune information sur l'utilisateur de cette adresse IP (ça ne dépend pas de lui mais de son fournisseur d'accès) et encore moins sur le message lui-même. C'est, au mieux, un moyen statistique aussi pertinent que de mettre une note négative aux messages rédigés en anglais : c'est le cas de pas mal de spam, mais c'est tout ce qu'on peut dire de cette caractéristique, en revanche il y a des messages corrects qui sont dans cette langue, et des spams qui sont dans une autre langue..

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.