Navigatie overslaan.
Start

Spamfilters

Als je een secure mailsysteem wil opzetten, dan moet je natuurlijk niet zomaar mails van om het even waar aannemen.
Je weet nooit wie welke inhoud doorstuurd.

Spam kan je voor het grootste gedeelte tegenhouden met een deftige mailserverconfiguratie die bijvoorbeeld geen mails accepteert van TOR exit nodes, DHCP ip adressen, bogon netwerken, mailservers die zich onjuist identificeren, etc...

Voor het overige deel, kan je een spamfilter gebruiken.

De laatste 2 jaren is het aandeel spam dat door een spamfilter tegegehouden wordt, groter en groter geworden, terwijl het aandeel spam dat tegengehouden wordt door de serverconfiguratie kleiner is geworden.
Dit komt omdat spam vaker van correct geconfigureerde bedrijfssystemen verstuurd wordt, waarbij het bedrijf in kwestie vaak niet eens weet dat hun systemen misbruikt worden.

Deze spamfilter configuratie wordt dus belangrijker en kan verbeterd worden op een aantal manieren.

Gebruik de input van greylisting bij het bepalen van de spamscore.
Niemand doet dit. Een mail van een "nieuw" email adres is dus niet noodzakelijk spam, maar toch verdachter dan de rest.
Dit is natuurlijk niet ideaal voor een "info@..."-email adres, maar voor een persoonlijk adres kan dit erg handig zijn.

De meest voorkomende methode van anti-spam is om, net zoals bij een anti-virus, met signature updates te werken waarbij iemand al heeft aangegeven dat een mail met bepaalde inhoud of headers een spammail is.
Dit is natuurlijk een belachelijke manier van werken, ook voor anti-virus, omdat je dan per definitie steeds minstens 1 stap achter zit.
Voor de rest wordt een bepaalde spam mail meestal maar tijdens een erg korte tijdsperiode gebruikt, en moet je dus niet je spamfilter slechts ieder uur updaten, want dan ben je te laat.
Vaak is het ook niet mogelijk om op een secure manier dergelijke updates uit te voeren, zodat je dus geen enkele garantie hebt dat jouw spam filter ook correct geupdate wordt. Misschien is iemand jouw spamfilter aan het trainen om een bepaalde spammail juist als niet-spam te categoriseren?
En dan heb ik het nog niet gehad over al die mensen die mails raporteren als spam die geen spam zijn.
Spamfilters gebruiken van externen vereist dus dat je op een derde partij moet vertrouwen om jouw security te garanderen, en dat staat dus haaks op wat security eigenlijk wil zeggen, vooral als die derde partij een commerciëel bedrijf is.

Een 2de manier is om met vaste rules te werken.
Iedere spamfilter heeft rules, en deze kan je niet alleen aanpassen, je kan er ook zelf maken.
Ik communiceer niet v14 L337sP3Ak, dus mails die dergelijke taal bezigen (V14gr4, etc...) beschouw ik sowieso als spam.
Er zijn genoeg analyses gedaan en met enkele rules kan je al heel veel spam tegenhouden.

Voor de rest spreek ik ook geen Chinees, dus mails die niet geschreven zijn in de talen die ik spreek zijn altijd verdacht, en dus mogelijk spam.
Mijn spamfilter kan perfect talen herkennen, en aan de hand van het IP adres weet ik ook van waar een mail komt.
Ik vind een mail naar een Belg, afkomstig uit Estland, geschreven in het Engels met een afzender adres dat claimt uit Frankrijk te komen nogal verdacht. En gelukkig mijn spamfilter ook.

Naast deze vaste regels, zijn er ook dynamische. De zogenoemde heuristic rules.
Op basis van bepaalde patronen in de tekst (grootte, zinsconstructies, woorgebruik, etc...), kan er bepaald worden of iets spam is of niet. (Je kan zelfs voor een groot deel bepalen "wie" een tekst geschreven heeft. Dit heet stylometrie.)
Moest er dan toch eens af en toe een spammail binnenglippen, dan kan je je heuristic filter zelf trainen met deze nieuwe mail.
Iedere mailclient laat toe dat gebruikers spam raporteren. Dergelijke mails worden dan vaak geforward naar een "spam@..." email adres en de spamfilter leest deze mails om zichzelf te verbeteren.

Dus, kan je een eigen gratis spamfilter opzetten, zonder enige afhankelijkheid van een derde partij?
Volgens mij wel:

  • Reeds meer dan 6 jaar onine met dezelfde mailserverconfiguratie.
  • Gemiddeld 7000+ inkomende emails per dag.
  • False negatives: 1 mail per 210.000 mails. (Ongeveer.)
  • False positives: 3 mails tot nu toe. (Dat is 3 mails in 6 jaar en in ongeveer 20.000.000 mails.)