Altijd al een mooi wit Security.NL T-shirt willen hebben? Nu heb je de kans. Security.NL is namelijk op zoek naar mensen die interessante, security-gerelateerde artikelen of recensies willen schrijven. Je kunt het artikel naar redactie@security.nl sturen. De redactie zal de beste artikelen op Security.NL plaatsen en de schrijvers met het felbegeerde Security.NL tshirt belonen.
Door Erik van Straten
SPF, dat staat voor Sender Policy Framework (voorheen Sender Permitted From), is een controversieel middel om spam te bestrijden. Zie hier een aardige grafische voorstelling.
FairUCE is een vergelijkbaar mechanisme dat recentelijk door een IBM medewerker is voorgesteld, en wordt momenteel in verschillende maillijsten en forums besproken.
De kern van beide mechanismes is dat een email in principe als spam wordt beschouwd als het IP-adres van de aanbiedende server (of PC) niets te maken heeft met het domain-deel van het afzenderadres in het Return-Path. Het IP-adres is bekend zodra de TCP/IP verbinding tot stand is gebracht; kort daarna, aan het begin van de SMTP transactie, wordt het Return-Path uitgewisseld, d.w.z. nog voordat de email zelf (inclusief alle headers tot op dat moment) wordt overgedragen.
SMTP transacties
Een SMTP transactie kun je vergelijken met een koerier die een pakje komt bezorgen. In het onderstaande gesprek is O de ontvanger en K de koerier:
De bel gaat, je doet open en ziet een busje met kenteken 12-AB-CD.
1 O: "Goedenmorgen"
2 K: "Hallo, ik ben van koerier zoefzoef"
3 O: "Okay"
4 K: "Ik heb hier een pakje van posterderbedrijf X"
5 O: "Okay, dat klinkt als een legitieme afzender"
6 K: "Het is bestemd voor Max Laadvermogen"
7 O: "Dat klopt, die woont hier!"
8 K: De koerier geeft het pakje en zegt: "Nog een prettige dag"
9 O: "Tot ziens!"
Het begin van een SMTP transactie kan er als volgt uit zien:
IP-adres 213.156.1.80 maakt verbinding met jouw mailserver
1 O: 220 ontvanger.nl ESMTP Postfix
2 K: HELO www.security.nl
3 O: 250 Nice to meet you
4 K: MAIL FROM: spammer@example.com
Werking
Zowel SPF als FairUCE grijpen in tussen de regels 4 en 5. Om SPF te laten werken dient posterderbedrijf X een lijst met autokentekens te publiceren van koeriers die namens posterderbedrijf X mogen bezorgen; na regel 4 zal de ontvanger via SPF op zoek gaan naar die gegevens. Als posterderbedrijf X daarwerkelijk zo'n lijst heeft gepubliceerd, en het kenteken 12-AB-CD komt daar NIET op voor, dan zal de ontvanger bij 5 een negatief antwoord geven om daarna de verbinding te verbreken.
Terzijde, om misverstanden te voorkomen: hoewel een autokenteken eenvoudig is te vervalsen lukt dat met IP-adressen in de praktijk niet, waarmee dit de enige zekere factor in een email transactie is. Vergelijkbaar met de koerier hoeft het IP-adres echter niets te zeggen over de identiteit van de afzender, dit is nl. vaak van een mailserver tussen de afzender-PC en jouw mailserver.
SPF records worden in DNS gepubliceerd, en geven aan "wie namens mij mag bezorgen". Om precies te zijn, deze DNS records geven aan welke IP-adressen (of reeksen) namens een domain mail mogen aanbieden aan derden. Dat werkt echter alleen als de ontvangende partij deze check daadwerkelijk uitvoert, en dat gebeurt nauwelijks.
In tegenstelling tot SPF maakt FairUCE geen gebruik van speciale DNS records, maar probeert die gegevens uit het "Return-Path" te halen, d.w.z. het afzenderadres in regel 4. Daarbij probeert FairUCE te gokken wat de IP-reeks van het domain zal zijn, om daarna te bepalen of het IP-adres van de aanbieder binnen die reeks valt. Als dat zo is gaat FairUCE ervan uit dat het NIET om spam gaat. Valt het adres niet binnen die reeks, dan wordt een mailtje "teruggestuurd" met het verzoek om een bevestiging van het eerste mailtje, bijv. door een webpage te bezoeken en iets in te vullen, of door een response-mail als reply op die challenge naar een opgegeven adres te zenden.
Effectiviteit
Zolang dergelijke mechanismes nauwelijks worden toegepast, zullen ze inderdaad een deel van de spam tegenhouden, echter hoofdzakelijk junk die vanaf zombie machines wordt verzonden. Spammers die "netjes" vanaf hun eigen mailservers reclame verzenden (waarbij in veel gevallen regelmatig van IP-adressen wordt gewisseld, zodat blacklisten niet altijd even effectief is), pak je hier niet mee. Niets belet ze om naast hun gewone DNS records ook SPF records aan te passen, en van FairUCE hebben deze spammers al helemaal geen last.
Maar ook spammers die zombies misbruiken hebben niets te vrezen van SPF of FairUCE. Het enige dat ze hoeven te doen is het domain van de PC in het afzenderadres opnemen (i.p.v. een random domain, dit is een koud kunstje). Vanaf een backdoored Chello PC kunnen ze als afzenderadres
Problemen
Waarom klaag ik er zo over als het voorlopig wel een beetje werkt? Omdat gesuggereerd wordt dat dit goede oplossingen zijn tegen spam, terwijl ze andere zaken slopen en tot extra overlast leiden. "Sender" uit SPF wekt de indruk dat de afzender geauthenticeerd wordt; dat is onjuist. Er wordt alleen naar een IP-adres gekeken dat vaak van een legitieme mailserver "onderweg" is, en van het afzenderadres wordt het userdeel genegeerd. Sterker nog, SMTP staat toe dat het afzenderadres geheel ontbreekt (regel 4 luidt dan: MAIL FROM: ); SPF en FairUCE zijn kansloos bij dergelijke mails. Bovendien voeren beide geen enkele check uit op de From: en Reply-To: velden die, in tregenstelling tot het Return-Path, in veel email programma's worden getoond. Daar kunnen spammers dus nog steeds liegen wat ze willen.
Beide mechanismes maken forwarding nagenoeg onmogelijk. Als je bijv. van provider wisselt, en je nieuwe provider checkt SPF records, zal een email die afkomstig is vanaf een domain dat SPF records publiceert en door je oude provider wordt doorgestuurd, door je nieuwe provider worden geweigerd. Ook kun je alleen nog goed vanaf je PC thuis "namens de zaak" mail verzenden als je die via de mailserver van je zaak kunt relayen. FairUCE gaat al mank indien de uitgaande mailserver een IP-adres in een andere reeks heeft dan de MTA waar het MX record voor is gedefinieerd (en meerdere MTA's maken het testen er niet eenvoudiger op).
Daarnaast is FairUCE, net als alle andere "challenge/response" antispam emails, op z'n minst egoistisch te noemen. Deze C/R wordt namelijk toegepast als er twijfel bestaat over de authenticiteit van de afzender. Maar als die liegt, waar gaan die challenges dan wel naar toe? Als je "pech" hebt spoofen spammers JOUW email adres als afzender in een miljoen spams, resulterend in een Joe-job (genoemd naar ene Joe die dit als een van de eersten overkwam). Opzettelijke DoS-attacks zijn zo ook mogelijk; jouw account en/of server wordt dan niet bestookt door die zombies zelf, maar door ISP mailservers. Dit is erger dan gewone spambounces (die het gevolg zijn van spam die niet kan worden afgeleverd), want die worden door de meeste spamfilters ook als spam herkend; deze requests niet. Ten slotte zullen "legitieme" onvangers van challenge/response requests (bijv. omdat jij je mail laat forwarden, wat zeker problemen geeft als je op een maillijst staat ingeschreven) deze nauwelijks op prijs stellen.
Toch zinvol?
SPF is ooit ontworpen om "site-Joe-jobs" te voorkomen, maar is daarna vooral als anti-spam oplossing gepromote. Als je kunt leven met de nadelen, dan kun je voor jouw site SPF records publiceren, en daarmee voorkomen dat email die NIET vanaf jouw site verzonden is daar wel vandaan lijkt te komen. Mits alle ontvangers SPF records checken, en dat zijn er niet zoveel dus is het de vraag of dit veel uithaalt, en je nooit voorkomt dat iemand anders jouw mail adres in het From: veld opneemt. Wel kun je SPF-record checks meenemen als weegfactor bij spamfilters die ook op andere criteria checken. Zolang niet iedereen dit doet (en spammers zich niet aanpassen) hou je er wellicht wat spam mee tegen - maar mogelijk ook legitieme forwards en maillist posts.
FairUCE zou ik helemaal links laten liggen, behalve het aantal spams in je inbox zou ook het aantal vrienden of klanten wel eens af kunnen nemen...
Deze posting is gelocked. Reageren is niet meer mogelijk.