Hvad en SPF record ikke kan bruges til

SPF record Det er åbenbart en særdeles udbredt og sejlivet misforståelse at man ene og alene ved hjælp af en SPF record på et domænenavn kan forhindre phishing.
Jeg har tit set den slags snak på både Computerworld.dk og Version2.dk, og endda personlig overhørt snak om emnet her for et par dage siden.

Det må være tid til en forklaring og en demonstration.
Lad os bruge et domænenavn de kriminelle er helt vilde med at phishe, og hvor de garanteret også har rimelig stor success, fordi vi alle i forvejen også modtager legitime emails derfra.

Skat.dk er ekstremt populært at phishe, jeg tvivler på der findes danskere med en emailadresse som ikke på et eller andet tidspunkt har modtaget en skat.dk phishing email.

skat.dk’s SPF record ser således ud :


"v=spf1 ip4:92.43.124.143 ip4:92.43.124.218 ip4:195.85.251.156 
ip4:147.29.109.227 ip4:85.119.135.105 ip4:85.119.135.96 
ip4:147.29.27.196 ip4:194.239.239.148 ip4:194.239.239.150 -all"

Nu er jeg ikke ansat hos skat.dk så istedet for at bruge deres mailservere låner jeg lige en på arbejde, den har ipadressen 213.174.68.98, og er altså ikke i skat.dk SPF recorden.

Man kan afsende en phishing email med en enkelt linje PHP kode som f.eks:


mail("henrik.schack@outlook.com", "Du skal have 3232,75 kroner tilbage i skat", 
"Standard phishing email","From: info@skat.dk","-fnoreply@crime.schack.dk");

Emailen der havner hos Outlook.com ser sådan her ud:
skat.dk phishing email
Den email vil de fleste almindelige mennesker nok se som en ægte info@skat.dk email, lad os tage et kig på mailheaderen som fortæller om emailen har bestået et SPF tjek, den ser sådan her ud:


Authentication-Results: hotmail.com; spf=pass (sender IP is 213.174.68.98)

Hvordan kan det nu lade sig gøre ?
Det kan det fordi, SPF INGEN relation har til hvad der står i From: feltet i en email, SPF beskriver hvilke ipadresser der må anvende det pågældende domænenavn som Envelope sender, Envelope senderen er bare ikke noget helt almindelige brugere ser når de læser en email, idet den er skjult.
I eksemplet herover anvendte jeg noreply@crime.schack.dk som Envelope Sender adresse, altså en emailadresse på et domæne hvor jeg selv kunne oprette en SPF record som ville resultere i at min phishing email ville kunne klare et SPF tjek.

Så burde det være slået fast at SPF ikke kan anvendes til at forhindre phishing, og at alle i hele verden frit kan afsende falske skat.dk emails.