Čo je SPF záznam
SPF je skratka pre Sender Policy Framework. Je to jediný DNS TXT záznam publikovaný na koreni vašej domény a každému serveru, ktorý dostane poštu tváriacu sa ako od vás, odpovedá na jedinú otázku: prišla táto správa z IP adresy, ktorú som povolil?
Typický záznam firmy, ktorá používa Google Workspace aj Microsoft 365, vyzerá takto:
v=spf1 include:_spf.google.com include:spf.protection.outlook.com -all
Zľava doprava to znamená: toto je SPF verzie 1; servery uvedené v zázname Googlu a v zázname Microsoftu sú oprávnené; čokoľvek iné neprejde. Prijímajúci server vyhodnocuje mechanizmy v poradí a zastaví sa pri prvom, ktorý odosielajúcej IP adrese zodpovedá.
Čo SPF v skutočnosti kontroluje
Práve tu vzniká v praxi najviac zmätku, a preto to povedzme priamo: SPF overuje odosielateľa v obálke správy, nie hlavičku From, ktorú číta príjemca.
Každý e-mail má dve adresy odosielateľa. Adresa v obálke - nazývaná aj Return-Path alebo MAIL FROM - sa používa počas SMTP komunikácie a chodia na ňu neúspešné doručenia. Hlavička From je tá, ktorú zobrazí poštový klient. Často sú rovnaké, no nič to nevyžaduje.
SPF sa tiež rozbije pri preposielaní. Keď si príjemca poštu automaticky preposiela, preposielajúci server ju odošle zo svojej vlastnej IP adresy, ktorá vo vašom zázname nie je, takže SPF v cieli zlyhá. Nejde o chybu nastavenia, ale o vlastnosť samotného SPF, a je to hlavný dôvod, prečo je dôležitý DKIM - jeho podpis preposlanie prežije neporušený.
Mechanizmy a kvalifikátory
Záznam tvorí značka verzie a za ňou zoznam mechanizmov, z ktorých každý môže mať predradený kvalifikátor.
| Mechanizmus | Čomu zodpovedá | Počíta sa do limitu vyhľadaní? |
|---|---|---|
| ip4: / ip6: | Konkrétna IP adresa alebo rozsah CIDR. | Nie |
| a | IP adresy zo záznamov A/AAAA danej domény. | Áno |
| mx | IP adresy poštových serverov danej domény. | Áno |
| include: | Načíta SPF záznam inej domény a vyhodnotí ho. | Áno, aj so všetkým vnútri |
| exists: | Zodpovedá, ak sa uvedená doména dá preložiť. | Áno |
| ptr | Zhoda cez spätné DNS. Zastarané - nepoužívajte. | Áno |
| all | Zodpovedá všetkému. Vždy posledný mechanizmus. | Nie |
Kvalifikátory určujú, čo zhoda znamená. Sú štyri:
- + znamená Pass a je predvolený, keď sa žiadny kvalifikátor nenapíše. include:example.com a +include:example.com sú to isté.
- - znamená Fail. -all hovorí, že čokoľvek, čo predtým nezodpovedalo, sa má odmietnuť.
- ~ znamená SoftFail. ~all hovorí, aby sa správa brala ako podozrivá, ale rovno neodmietala.
- ? znamená Neutral, čiže nehovorí vôbec nič a v praxi sa rovná tomu, že pre daný zdroj politiku nemáte.
Praktický rozdiel medzi -all a ~all je menší, než ľudia čakajú, pretože väčšina príjemcov dnes dáva oveľa väčšiu váhu politike DMARC než kvalifikátoru v SPF. Použite -all, keď ste si istí, že máte zoznam odosielateľov kompletný; ~all je rozumné miesto na prečkanie, kým odosielateľov ešte hľadáte.
Chyby, ktoré ho potichu rozbijú
SPF zlyháva ticho. Neexistuje chybová hláška ani upozornenie - pošta jednoducho začne niekomu o pár týždňov padať do spamu. Tieto zlyhania sa oplatí preveriť priamo.
- Dva SPF záznamy na jednej doméne. Podľa špecifikácie je to neplatné a väčšina príjemcov to vyhodnotí ako trvalú chybu, takže reálne nemáte SPF vôbec. Stáva sa to, keď nová služba pridá vlastný záznam namiesto zlúčenia do existujúceho. Zlúčte ich do jedného záznamu s viacerými include.
- Zakončenie cez +all. Tým povolíte celému internetu posielať poštu za vašu doménu, čo je horšie než nemať nič, lebo to vyzerá nastavene. Občas sa pridá ako dočasná záplata pri probléme s doručovaním a potom sa zabudne.
- Prekročenie desiatich DNS vyhľadaní. Špecifikácia obmedzuje vyhodnotenie na desať dotazovacích mechanizmov a každý vnorený include sa počíta, takže tri či štyri cloudové služby limit nenápadne prekročia. Nad limitom vráti príjemca PermError, čo sa berie ako žiadne SPF.
- Zabudnutý odosielateľ. Fakturačný systém, helpdesk, marketingová platforma, ktorú si niekto z iného oddelenia zriadil sám. Práve na ich nájdenie slúžia súhrnné reporty z DMARC, a preto existuje fáza monitorovania.
- Publikovanie SPF na doméne, ktorá poštu neposiela, a nič ďalšie. Odstavená doména má mať v=spf1 -all a k tomu DMARC záznam s p=reject, inak sa dá naďalej bez problémov falšovať.
- Použitie ptr. Je zastarané, pomalé a niektorí príjemcovia ho ignorujú úplne. Neexistuje situácia, kde by bolo správnou odpoveďou.
Berte SPF ako tretinu celku, nie ako samostatné opatrenie. Samo osebe len povoľuje servery a nezastaví nič, čo by odhodlaný odosielateľ neobišiel; spolu s DKIM a vynútené cez DMARC ukončí falšovanie domény. A ani jedno z troch sa nedotkne útočníka, ktorý vašu doménu vôbec nefalšuje, čo je väčšina z nich - širšiu sadu opatrení popisuje článok phishingový test zamestnancov a to, prečo overovanie nerieši preposielanie prihlásenia, rozoberá heslo dokáže phishing obísť MFA?.