Spammers veranderen continu van aanpak om spamfilters te slim af te zijn. Een spamfilter kan dus niet stil blijven staan. Vorige keer legden we uit hoe spamfilters leren van het analyseren van woordcombinaties in e-mails. Behalve naar de woorden kijken spamfilters ook naar de opbouw van een mail. Hoe leren ze daarvan?

Strafpunten voor spam

Spamfilters checken de opbouw van een mail aan de hand van duizenden ‘regels’. Bevat de mail een invulformulier? Is er naast de opgemaakte html-versie een platte tekstversie beschikbaar? Hoe lang bestaat de domeinnaam al waar vandaan de mail is verstuurd? Uit hoeveel letters bestaat die domeinnaam? Je kunt het haast zo gek niet bedenken of er is wel een regel voor.
En aan al die regels zijn punten gekoppeld. Of eigenlijk: strafpunten. Want hoe hoger het aantal punten, hoe meer het neigt naar spam. Komt de eindscore van een mailtje boven de harde grens van bijvoorbeeld 10 punten uit, dan hebben we volgens deze methode onmiskenbaar van doen met spam.
Nu weegt ene regel zwaarder dan de andere. Zo is ooit eens uit een mogelijk niet helemaal zuivere analyse gekomen dat een domeinnaam met twaalf letters vaak duidt op spam. Omdat dit geen hele sterke aanwijzing is voor spam, worden voor deze regel maar een paar tienden punten toegekend. Bij een sterkere aanwijzing voor spam, bijvoorbeeld als de body en header van een mail meer dan 78 tekens per regel bevatten, worden meer punten toegekend. Andersom worden er ook punten afgetrokken voor regels die juist geassocieerd worden met normaal mailverkeer.

Nieuwe spelregels

Deze anti-spam tool, genaamd SpamAssassin, kan iedereen op opensource-basis downloaden. Erg slim is het systeem alleen niet: het leert niet van wat het tegenkomt, terwijl de spamwereld natuurlijk continu in beweging is. Daarom past Onlinespamfilter regelmatig de ‘spelregels’ aan. Op basis van nieuwe kennis laten we sommige regels zwaarder wegen en andere lichter.
Soms stellen we de puntentelling handmatig bij. Zo verlagen we het aantal punten voor regels die aanslaan op ‘geen tekstversie aanwezig’ en ‘domeinnaam bestaat niet’, als een klant werkt met een printer die ingescande documenten per e-mail verstuurt. Zulke apparaten slaan namelijk nogal eens wat etiquetteregels in de wind, zoals het bijvoegen van tekst en het instellen van een bestaande domeinnaam. Pas als er ook nog allerlei andere zaken mankeren aan zo’n mail zal deze de ‘vast en zeker spam’-score bereiken.

Automatisch leren

Maar het spamfilter komt zelf met voorstellen. Het vergelijkt namelijk de uitkomst van de puntentelling met die van andere scanmethodes, zoals de statistische woordanalyse die we de vorige keer bespraken. Zit het filter er een paar keer naast, dan zal het voorstellen om voor bepaalde regels meer of minder ‘spampunten’ te rekenen.
Volautomatisch verloopt dat proces trouwens nog niet. Hoewel het filter soms met degelijke suggesties komt, slaat het de plank in minstens de helft van de gevallen volledig mis. Zo is 99% van alle mails die uit China komen spam, maar een te hoge geografisch gebaseerde score kan, zo weten we bij Onlinespamfilter uit ervaring, leiden tot onterecht als spam aangemerkte e-mail. Hoe slim het filter ook is, als het om het herkennen van spam gaat hebben wij als mens nog altijd het laatste woord!

Share This

Share this post with your friends!