Etikett: E-postsäkerhet

  • Skydda dig mot falska mejl med SPF, DKIM och DMARC

    Skydda dig mot falska mejl med SPF, DKIM och DMARC

    För att skydda din domän mot spam, phishing, spoofing och andra bluffmejl finns det tre tekniker du måste känna till: SPF, DKIM och DMARC.

    Tillsammans ser de till att mejl som skickas i ditt namn verkligen kommer från dig, och skyddar mot att någon missbrukar din domän för bedrägerier.

    I den här guiden går vi igenom hur varje teknik fungerar, hur du implementerar dem, och hur de samverkar till ett komplett skydd.


    SPF – Vilka servrar som får skicka mejl

    Sender Policy Framework (SPF) skyddar mejl mot förfalskning (även kallat spoofing). Tanken är enkel – du som ägare av en domän anger vilka servrar som får skicka mejl i ditt namn.

    Du gör detta genom att lägga till en TXT-post i din DNS. I posten anger du de IP-adresser som får skicka mejl för din räkning.

    v=spf1 ip4:40.92.0.0/15 -all

    I exemplet ovan har jag lagt till en av de nätadresser som Microsoft 365 använder för att skicka mejl. Men Microsoft använder många olika adresser och istället för att behöva lägga till dessa manuellt kan du inkludera Microsofts färdiga SPF-post:

    v=spf1 include:spf.protection.outlook.com -all

    Här är en snabb förklaring av de vanligaste taggarna i en SPF-post:

    TaggBetydelse
    v=spf1Anger vilken version som SPF-posten använder. Den här taggen ska alltid stå först.
    ip4:Specificerar en IPv4-adress, eller en nätadress som får skicka mejl från domänen.
    include:Används för att inkludera en annan domäns SPF-post.
    -allAnger vad som ska hända med mejl som inte matchar någon tillåten server:
    -all = neka
    ~all = markera som misstänkt
    ?all = låter mottagaren avgöra
    Den här taggen ska alltid stå sist.

    Jag skriver att mejl kan ”blockeras”, ”flaggas” eller ”accepteras”, men det är viktigt att förstå att det inte är din SPF-post som bestämmer detta. SPF fungerar snarare som en rekommendation till mottagarens mejlserver.

    Låt säga att företaget ”Fiffel & Båg” försöker göra ett bedrägeriförsök i ditt namn. Det finns inget som hindrar dem från att skicka ett mejl och ange din domän som avsändare. Det är först när mejlet når mottagarens server som SPF-kontrollen görs:

    • Servern kontrollerar vilken IP-adress mejlet skickades från.
    • Den läser din SPF-post i DNS.
    • Och den avgör om mejlet ska blockeras, flaggas eller accepteras utifrån resultatet.

    Om du använder Microsoft 365 sköts detta automatiskt – du behöver bara lägga till SPF-posten i DNS.


    Så aktiverar du SPF för din domän

    För att implementera SPF behöver du bara lägga till en TXT-post i DNS. Hur du gör det beror på din DNS-leverantör, men principen är densamma.

    Här är ett exempel från min post hos Loopia där jag har konfigurerat SPF för Microsoft 365. I Loopia loggar man in i kundzonen, klickar på det domännamn man vill konfigurera, väljer knappen DNS-editor” och lägger sedan till en ny post under ’@’.

    💡 Tips: Glöm inte att även inkludera andra tjänster du använder för mejl, t ex verktyg för nyhetsbrev eller maillistor.


    DKIM – Skriv under dina mejl digitalt

    SPF är en bra grund, men för att få bästa möjliga skydd måste du även konfigurera DKIM.

    Så här fungerar tekniken: du som ägare av en domän skapar ett nyckelpar (en privat och en publik nyckel). Den privata nyckeln är hemlig och finns bara på din mejlserver. Den publika nyckeln är, precis som det låter publik, och läggs upp som en TXT-post i din DNS (i formatet id._domainkey.dittföretag.com). På så vis kan alla ta del av den.

    När du skickar mejl skapar mejlservern en signatur med den privata nyckeln och lägger till den i mejlet. När mottagaren får mejlet hämtar deras server den publika nyckeln från din DNS och verifierar signaturen. På så sätt kan mottagaren vara säker på att mejlet verkligen kommer från dig. Dessutom säkerställer signaturen att innehållet i mejlet inte blivit förändrat på vägen.


    Så lägger du till DKIM-signering

    Konfigurationen kan se lite olika ut beroende på vilken DNS- och mejlleverantör du använder. I mina exempel använder jag Loopia och Microsoft 365.

    1. Logga in i Defender-portalen
    2. Klicka på ”Email & collaboration” > ”Policies & rules” > ”Threat policies”
    3. Skrolla ner till rubriken ”Rules” och klicka på ”Email authentication settings”
    1. Klicka på fliken ”DKIM” och markera ditt domännamn i listan.
    2. Klicka på ”Create DKIM keys”

    När du klickar på ”Create DKIM keys” skapas ett nyckelpar automatiskt i bakgrunden. Exchange Online konfigureras med den privata nyckeln, medan den publika nyckeln görs tillgänglig via DNS.

    Microsoft hanterar det här automatiskt, så du behöver inte lägga upp den publika nyckeln manuellt. Istället publiceras den under en domän som är unik för din tenant. Guiden visar sedan två CNAME-poster som du ska lägga till i din DNS för att peka på den publika nyckeln.

    CNAME-postPekar på (exempel)
    selector1._domainkeyselector1-learntodefend-se._domainkey.learntodefend.k-v1.dkim.mail.microsoft
    selector2._domainkeyselector2-learntodefend-se._domainkey.learntodefend.k-v1.dkim.mail.microsoft
    1. Logga in i Loopias kundzon och lägg till dessa poster

    🛡️ Säkerhetstips: När man aktiverar DKIM i Defender-portalen genererar Microsoft nycklar som är 1024 bitar långa. Idag är best practice att använda 2048 bitar. Tyvärr går det inte att välja nyckellängd i webbgränssnittet men det går att göra om man roterar nycklarna med PowerShell.

    Install-Module -Name ExchangeOnlineManagement
    Import-Module ExchangeOnlineManagement
    Connect-ExchangeOnline
    Rotate-DkimSigningConfig -Identity “learntodefend.se” -KeySize 2048

    DMARC – Så hänger SPF, DKIM och DMARC ihop

    DMARC samarbetar med SPF och DKIM för att upptäcka och rapportera försök att missbruka din domän.

    Diagrammet nedan visar hur processen ser ut när ett mejl skickas och tas emot:

    Även denna teknik är enkel. Du skapar en TXT-post i DNS med formatet _dmarc.dindomän.se.

    När en mottagare får mejl från din domän kontrollerar deras server först SPF och DKIM. Om något inte stämmer läser servern din DMARC-post för att avgöra hur den ska hantera och rapportera mejlet.

    • None: gör ingenting, bara rapportera
    • Quarantine: lägg i skräppost
    • Reject: blockera

    Därefter skickar mottagarens mejlserver tillbaka en rapport. På så sätt ser du snabbt om någon försöker missbruka din domän.


    Så ställer du in din DMARC-policy

    Precis som för SPF och DKIM så behöver du lägga till en TXT-post i DNS med namnet _dmarc.dindomän.se.

    v=DMARC1;p=reject;rua=mailto:dmarc@learntodefend.se;

    I det här exemplet har jag konfigurerat policyn (p) till “reject” och rapportering (rua) till dmarc@learntodefend.se


    Få ut mer av dina DMARC-rapporter

    När du lagt till din DMARC-post börjar mottagande servrar att skicka rapporter till den adress du angivit i rua-fältet.

    Rapporterna kommer i XML-format och ser ut ungefär såhär:

    <?xml version="1.0" encoding="UTF-8" ?>
    <feedback>
      <report_metadata>
        <org_name>gmail.com</org_name>
        <email>noreply-dmarc-support@google.com</email>
        <report_id>1234567890</report_id>
        <date_range>
          <begin>1730697600</begin>
          <end>1730783999</end>
        </date_range>
      </report_metadata>
    
      <policy_published>
        <domain>learntodefend.se</domain>
        <adkim>r</adkim>
        <aspf>r</aspf>
        <p>reject</p>
        <sp>none</sp>
        <pct>100</pct>
      </policy_published>
    
      <record>
        <row>
          <source_ip>192.0.2.15</source_ip>
          <count>24</count>
          <policy_evaluated>
            <disposition>none</disposition>
            <dkim>pass</dkim>
            <spf>fail</spf>
          </policy_evaluated>
        </row>
        <identifiers>
          <header_from>learntodefend.se</header_from>
        </identifiers>
        <auth_results>
          <dkim>
            <domain>learntodefend.se</domain>
            <result>pass</result>
          </dkim>
          <spf>
            <domain>learntodefend.se</domain>
            <result>fail</result>
          </spf>
        </auth_results>
      </record>
    </feedback>

    Här är en snabb förklaring av de viktigaste taggarna i rapporten:

    TaggFörklaring
    <report_metadata>Anger vem som skickat rapporten och vilken tidsperiod den gäller.
    <policy_published>Din aktuella DMARC-konfiguration.
    <record>En eller flera resultat med IP-adress, antal mejl och om de klarade SPF/DKIM-kontrollerna.

    Men ingen blir lycklig av att få dessa rapporter mejlade och behöva granska dem manuellt. För att verkligen dra nytta av DMARC behöver du ett verktyg som:

    • tar emot rapporterna automatiskt
    • sammanställer tydliga grafer och statistik
    • och skickar larm om någon försöker missbruka din domän

    Det finns en mängd olika tjänster som gör detta, även en del gratisalternativ. För learntodefend.se använder jag URIports. I deras dashboard ser jag tydligt alla mejl som är skickade från min domän och om de klarat SPF/DKIM-kontrollerna:

    I exemplet ovan ser du två testmejl. Ett giltigt som är skickat från min Microsoft 365-tenant, och ett fejkmejl som jag skickat med ett verktyg för att spoofa min domän.


    Sammanfattning

    Om du följer de här tipsen och aktiverar SPF, DKIM och DMARC så får du ett bra skydd mot falska mejl och bedrägerier.

    Alla tre teknikerna arbetar tillsammans och kompletterar varandra, men det går så klart fint att börja med exempelvis SPF och sedan bygga på med DKIM och DMARC efter hand.

    Finns det några risker med att aktivera SPF, DKIM och DMARC?

    Ja, det finns en viss risk att giltiga mejl blir blockerade. Jag har arbetat på flera företag där vi använt SPF, DKIM och DMARC med en blockerande policy, och det vanligaste problemet är avsändare som konfigurerat SPF felaktigt (dvs att de skickar mejl från en IP-adress som inte finns med i deras SPF-post).

    Men jag föredrar att dessa blockeras, och att jag får en rapport så att jag kan kontakta avsändaren och hjälpa dem rätta till felet. Hellre det än att blunda och släppa igenom felaktiga poster. I de flesta fall brukar avsändare bli glada när man hör av sig och vill hjälpa dem förbättra sin säkerhet.

    Och tänk på att även om du har aktiverat SPF, DKIM och DMARC finns det nästan alltid möjlighet att lägga till undantag i mejlservern.

    Det finns andra tekniker som också är värda att nämna – DANE, MTA-STS och TLS-RPT. De tillför ytterligare en nivå av skydd utöver SPF, DKIM och DMARC. Men jag återkommer till dem i en kommande bloggpost.