2024-01-26
Skydda din e-post från spoofing, del 3: DMARC
I denna artikelserie tar jag upp grundläggande mekanismer för att skydda din epost mot spoofing. I del 1 avhandlades SPF, del 2 handlade om DKIM och denna tredje del fokuserar på Domain-based Message Authentication, Reporting and Conformance, eller som det vanligare benämns: DMARC.
DMARC såg dagens ljus 2012 och kom till som ett samarbete mellan PayPal, Google, Microsoft och Yahoo!. Arbetet gick ut på att skapa en standard för att ”autentisera e-post”. DMARC-standarden baseras på de redan befintliga initiativen SPF och DKIM, men en av de nya sakerna som DMARC tillför är just delen kring rapportering. Idag beskrivs DKIM i RFC 7489, https://tools.ietf.org/html/rfc7489
Vad är DMARC?
I korthet kan man säga att DMARC är ett protokoll för att se till att du kan begränsa och styra vilka servrar som kan skicka e-post som en specifik avsändardomän. Men en sak som är helt ny med DMARC är att man även får rapportering på vem som faktiskt skickar e-post i en viss domäns namn. Med DMARC kan man även styra hur mottagaren ska reagera på e-post som kommer från någon av våra domäner. Man kan till exempel säga att om ett brev från magnus.bjork@exobe.com som inte klarar ett DKIM- och/eller SPF-test ska hamna i karantän (skräppost eller liknande beroende på e-postsystem) eller helt enkelt inte tas emot alls.
Hur fungerar DMARC?
En DMARC-policy gör att din organisation kan bestämma hur e-post som skickas från din domän ska hanteras. Denna policy bygger på SFP och DKIM, så därför är det viktigt att du konfigurerat båda dessa på ett korrekt sätt. Så här fungerar det:
- När ett mejl skickas (av dina servrar eller någon som spoofar dig) så kollar mottagande mejlserver om du har ett DMARC-record i din DNS
- Mottagande mailserver testar DKIM och SPF för att avgöra om mejlet kommer från dina servrar:
- Har mejlet en korrekt DKIM-signaur?
- Matchar IP-adressen det som anges i avsändande domäns SPF-record?
- Matchar mejlets header de tester som körs?
- När resultatet av testerna är klara kan mottagande mejlsystem applicera din DMARC-policy. Denna kan säga tre olika saker:
- ”reject” (vägra ta emot, dock hanterar t ex Office 365 detta en smula annorlunda)
- ”quarantine” (kan betyda olika saker beroende på mejlsystem. Office 365 lägger dessa i skräppost och inte karantän som namnet antyder)
- gör ingenting (dvs skicka mejlet som vanligt)
- Det sista steget när mottagande mejlsystem bestämt sig för vad det ska göra med mejlet är att rapportera till det avsändande mejlsystemet (via den e-postadress som står i DMARC-record) vad mottagaren gjort med mejlet (och alla andra mejl det tagit emot från samma domän).
Varför ska du ha DMARC?
Det finns många bra saker med DMARC. För det första så är det ett utmärkt sätt att få koll på vem som skickar mejl och utger sig för att vara din domän. Det är väldigt vanligt när man kollar på var vi som organisation skickar mejl från, att vi (åter)upptäcker servrar vi inte hade en aning om. Övervakningssystem, backupsystem, leverantörer av olika tjänster, nyhetsbrev och liknande – listan kan göras hur lång som helst. Med DMARC får du koll på dina källor som skickar mejl och du får också veta vilka som utger sig för att vara från din domän. Detta är steg ett, och det är fantastiskt enkelt att komma till denna nivå. Men det är inte detta som är slutmålet. Du vill nå ”reject” eller ”quarantine”, det vill säga att när ett mejl som skickas i din domäns namn men inte kommer från din organisation, så vägrar mottagande system att ta emot det eller lägga det i karantän/skräppost.
Hur inför du DMARC?
Du behöver någon form av tjänst som kan analysera de rapporter som kommer att komma via mejl. Det finns en uppsjö av sådana tjänster, men en som faktiskt är gratis för dig som Office 365-kund är Valimail
Notera att Exobe inte ger rekommendationer utan att först analysera dina behov. Detta är alltså endast att se som ett exempel på tjänst.
Beroende på tjänst så är detaljerna lite olika, men gemensamt för alla är att du för in ett DMARC-record i DNS. I vårt fall ser DMARC-record ut som nedan:
v=DMARC1; p=none; pct=100; rua=mailto:dmarc@exobe.com; ruf=mailto:dmarc@exobe.com; fo=1
Se DMARC-syntax nedan för detaljer.
DMARC-syntax
Se nedanstående tabell för förklaringar till DMARC-syntax. Jag har valt att inte översätta dessa från engelska för att undvika förvirring.
Tag | Förklaring | Exempel |
v | Protocol version | v=DMARC1 |
pct | % of messages subjected to filtering | pct=20 |
ruf | Reporting URI for forensic reports | ruf=mailto:dmarc@a365.com |
rua | Reporting URI of aggregate reports | rua=mailto: dmarc@a365.com |
p | Policy for organizational domain | p=quarantine |
sp | Policy for subdomains of the OD | sp=reject |
adkim | Alignment mode for DKIM | adkim=s |
aspf | Alignment mode for SPF | aspf=r |
fo | Failure Reporting Options | fo=1 |
Sammanfattning
DMARC kan lösa en massa problem för dig, du får koll på varifrån dina mejl skickas, du kan begränsa vilka källor mottagare tar emot från och ditt ”rykte” som avsändare kan förbättras. Det sker dock inte av sig själv och du kommer behöva lägga en del tid innan du kan uppnå ”reject”, men väl där kommer du ha väldigt mycket bättre koll på din e-postmiljö, utöver att du sover gott om nätterna.
Relaterade inlägg
Vill du vara säker på att inte missa något
Som du märker brinner vi för att dela med oss av våra erfarenheter, nyttiga lärdomar och spaningar ut i exosfären. Se till att följa vårt nyhetsbrev eller vårt flöde på Linkedin så du inte missar något.