Spammers veranderen continu van aanpak om spamfilters te slim af te zijn. Een spamfilter kan dus niet stil blijven staan. Het spamfilter van Onlinespamfilter leert op maar liefst vier verschillende manieren. De komende weken gaan we op elk van die manieren in. In deel 1 van deze serie: de statistische analyse van woorden in e-mailberichten.
Verdachte woordcombinaties
In deze methode staan woordcombinaties centraal. Eén woord is namelijk vaak niet genoeg om te beoordelen of het om spam gaat. Neem een spamgevoelig woord als viagra. Komen er in hetzelfde bericht ook woorden voor als ‘bestelling’ of ‘betaling’, dan is die mail voor een groothandel in medicijnen wel degelijk relevant. Waar je als bedrijf niet op zit te wachten zijn mails waarin behalve ‘viagra’ ook woorden voorkomen als ‘manhood’ of ‘add size in the bedroom’. Staan zulke woorden dichtbij elkaar in de tekst, bijvoorbeeld met maximaal zes woorden ertussen, dan slaat het spamfilter alarm.
Slimme kansberekening
Komt het spamfilter een bepaalde woordcombinatie tegen, dan laat het daar vervolgens een slimme manier van kans berekenen op los, gebaseerd op de Bayesiaanse statistiek. Het filter berekent namelijk niet alleen de kans dat het om spam gaat, maar geeft ook een betrouwbaarheidsniveau aan: hoe zeker weet het filter dat de kansberekening klopt? Die zekerheid baseert het op eerdere ervaringen. Bij elkaar opgeteld komt er een totaalkans uit, die voorspelt of een gevonden woordcombinatie op spam duidt of niet.
Stel, er komt een mail binnen en het filter geeft aan dat de kans dat het hier om spam gaat 90% is. Maar de betreffende woordcombinatie is nog maar zo weinig voorgekomen dat het filter er maar voor 30% zeker van is. Bij zo’n grote twijfel gaan we ervanuit dat het mailtje onschuldig is en zal het gewoon worden doorgelaten.
Snelle leercurve
Maar hoe leert het spamfilter nou, zodat het met steeds meer zekerheid kan zeggen of een woordcombinatie op spam duidt of niet? Allereerst geef je het filter een bepaalde basiskennis mee. Zo zijn wij in het begin dagenlang bezig geweest met het aanleggen van een database. We namen duizenden mails van onze eigen mailservers en die van onze klanten, en die deelden we in twee categorieën in: de ene met duidelijk onschuldige mails, de ander met zeker weten spam.
Vervolgens moet je het spamfilter trainen. Zodra het een keer een berichtje onterecht aanwijst als spam, krijgt het als het ware een corrigerende tik. Hoe sneller je fouten corrigeert, hoe sneller het filter de nieuwe lesstof oppikt. Eén tik is dan al voldoende om het niet nog een keer dezelfde fout te laten maken. Onze spamfilters leren zo razendsnel; al binnen een paar weken voorspelden ze 99,99% van de gevallen juist.
Individueel africhten
Naast de basis die Onlinespamfilter meegeeft, kunt u uw spamfilter naar wens verder ‘africhten’. Iedere klant legt namelijk een eigen ‘laag’ over de database van verdachte woordcombinaties heen, waardoor het spamfilter zich bij u net iets anders gedraagt dan bij een andere klant. Zo zagen we dat een farmaceutische groothandel bepaalde mails over viagra wel wil ontvangen. En een massaal uitgestuurde mail uit China waarin radiateurs of velgen worden aangeboden kan voor een bedrijf dat handelt in auto-onderdelen heel interessant zijn.
Wat wij leren van het spamfilter
Onze spamfilters zijn zo slim, dat we tegenwoordig regelmatig zélf iets van ze leren. Dan wordt er een mailtje tegengehouden waarvan we denken: dit is toch geen spam? Kijken we vervolgens naar de statistieken, dan blijkt die mail toch echt met honderden tegelijk verstuurd te zijn. Wat een spamfilter meteen doorheeft, ziet een mens soms pas – bij heel goed lezen – in de tweede of derde alinea.
Benieuwd naar de andere leermethoden van spamfilters? Lees het in onze volgende blogs!