前言
早在之前,有收到一個(gè)白客的郵件,說我們發(fā)送電子郵件的域名缺少安全檢查,讓我們最好補(bǔ)上對應(yīng)的安全檢查:
I'm an independent cyber security researcher i have found multiple issues in your website.
Vulnerability : Missing SPF
I am just looking at your SPF records then found following. SPF Records missing safe check which can allow me to send mail and phish easily any victim.
PoC:
<?php
$to = "VICTIM@example.com";
$subject = "Password Change";
$txt = "Change your password by visiting here - [VIRUS LINK HERE]l";
$headers = "From: https://karve.io";
mail($to,$subject,$txt,$headers);
?>
SPF record lookup and validation for: xxx.com
后面檢查了一下,發(fā)現(xiàn)確實(shí)是這樣子,我們的電子郵件沒有加上對應(yīng)的安全檢查,很容易被別人冒發(fā),從而有可能對我們的用戶造成嚴(yán)重的電子郵件欺詐。
發(fā)送欺詐電子郵件的危害
舉個(gè)例子,黑客可以通過這個(gè)站點(diǎn) emkei.cz 來冒充我們的官方 support 郵箱來發(fā)送一些釣魚郵件給用戶。如果用戶信以為真,那么就會(huì)對用戶的利益造成損失,這就是電子郵件欺詐

這時(shí)候我們的用戶就會(huì)收到這一封冒充的郵件,如果用戶相信了,就很容易被騙子給利用了。

所以電子郵件欺詐的危害性還是很高的。這方面的安全問題,一定要盡快解決。
電子郵件的缺陷
在解決這個(gè)問題的時(shí)候,我們要了解一下為啥電子郵件會(huì)有這個(gè)問題?
電子郵件系統(tǒng)的基礎(chǔ)是簡單郵件傳輸協(xié)議(Simple Mail Transfer Protocol
, SMTP
), SMTP是發(fā)送和中繼電子郵件的互聯(lián)網(wǎng)標(biāo)準(zhǔn). 但是, 正如1981年最初設(shè)想的, SMTP
不支持郵件加密、完整性校驗(yàn)和驗(yàn)證發(fā)件人身份。
由于這些缺陷, 發(fā)送方電子郵件信息可能會(huì)被網(wǎng)絡(luò)傳輸中的監(jiān)聽者截取流量讀取消息內(nèi)容導(dǎo)致隱私泄漏, 也可能遭受中間人攻擊(Man-in-the-Middle attack
, MitM
)導(dǎo)致郵件消息篡改, 帶來網(wǎng)絡(luò)釣魚攻擊. 為了解決這些安全問題應(yīng)對日益復(fù)雜的網(wǎng)絡(luò)環(huán)境, 郵件社區(qū)開發(fā)了諸多電子郵件的擴(kuò)展協(xié)議, 例如STARTTLS
, S/MIME
, SPF
, DKIM
和DMARC
等協(xié)議。 當(dāng)前的郵件服務(wù)廠商大都也是采用以上擴(kuò)展協(xié)議的一種或幾種組合, 輔以應(yīng)用防火墻、貝葉斯垃圾郵件過濾器等技術(shù), 來彌補(bǔ)電子郵件存在的安全缺陷.
你可以理解為 SMTP
本身有毛病,機(jī)密性和安全性都不夠,所以就多了幾個(gè)插件來幫他:
1.提高傳輸?shù)臋C(jī)密性,包括端對端加密 --> STARTTLS
, S/MIME
2.郵件的身份驗(yàn)證 --> SPF
, DKIM
, DMARC
電子郵件欺詐本質(zhì)上就是郵件接收端沒法判斷這一封郵件來源是否合法。所以這邊就涉及到了郵件的身份驗(yàn)證這一塊。而且雖然STARTTLS
和SMTP-STS
保證了郵件在傳輸過程中的加密, 防止遭受竊聽讀取, 但是其仍無法解決發(fā)件方身份偽造、消息篡改等問題。 所以郵件的身份驗(yàn)證這一塊尤為重要。
所以本節(jié)主要講 SPF
, DKIM
,DMARC
這三個(gè)協(xié)議的設(shè)置并結(jié)合我們的站點(diǎn)來實(shí)踐。
SPF
SPF 概念
發(fā)件人策略框架(Sender Policy Framework
, SPF
)是一種以IP地址認(rèn)證電子郵件發(fā)件人身份的檢測電子郵件欺詐的技術(shù), 是非常高效的垃圾郵件解決方案。SPF允許組織授權(quán)一系列為其域發(fā)送郵件的主機(jī), 而存儲(chǔ)在DNS中的SPF記錄則是一種TXT資源記錄, 用以識別哪些郵件服務(wù)器獲允代表本網(wǎng)域發(fā)送電子郵件。 SPF阻止垃圾郵件發(fā)件人發(fā)送假冒本網(wǎng)域中的“發(fā)件人”地址的電子郵件, 收件人通過檢查域名的SPF記錄來確定號稱來自該網(wǎng)域的郵件是否來自授權(quán)的郵件服務(wù)器。 如果是, 就認(rèn)為是一封正常的郵件, 否則會(huì)被認(rèn)為是一封偽造的郵件而進(jìn)行退回。 SPF還允許組織將其部分或全部SPF策略委托給另一個(gè)組織, 通常是將SPF設(shè)置委托給云提供商。
簡單的來說,這個(gè)協(xié)議就是去核實(shí)郵箱源IP地址然后匹配它的dns中txt記錄的spf信息,如果查找到,那么就是合法的。如果沒有查找到,那就郵件的來源有問題。這時(shí)候一般郵箱接收端就會(huì)有三種處理方式:
1.直接拒絕或者刪除
2.認(rèn)為是垃圾
3.正常的收件箱,但是郵件會(huì)有?的等警告,告訴收件者無法驗(yàn)證郵件的真實(shí)身份
至于哪一種,不同的郵箱接收端的策略不一樣。 下面的圖(網(wǎng)絡(luò)圖片)說的很清楚:

SPF 設(shè)置
SPF 的設(shè)置非常簡單,直接在公共的 dns 上進(jìn)行配置即可。因?yàn)槲覀冋军c(diǎn)的域名 dns 是在 aws 的 router 53 中設(shè)置的。 而且因?yàn)槲覀兊陌l(fā)送 mail 的郵箱有兩種:
1.發(fā)送提醒郵件的 no-reply
郵箱, 這一類郵件是接的 aws 的 ses 服務(wù)發(fā)送的,是程序自動(dòng)發(fā)送的
2.發(fā)送營銷郵件的 support 和 sale 郵箱,這一類的郵箱是 gmail 郵箱,是人工發(fā)送的
所以 ses 和 google 這兩個(gè)域名都要配置,所以我們就在 router 53
在 xxx.com
這個(gè)二級域名中在原有的 TXT 記錄中,添加這一條:
"v=spf1 include:_spf.google.com include:amazonses.com -all"

這樣子 SPF 就配置好了。 是不是非常的簡單。
測試 SPF 是否生效
配置之后,我們測一下 SPF 是否真的生效, 同樣用 emkei.cz 這個(gè)站點(diǎn)發(fā)送一封欺詐郵件到 gmail ,這時(shí)候可以看到收到了:文章來源:http://www.zghlxwxcb.cn/news/detail-490348.html

郵件收到了,但是好像跟沒有配置沒啥差別??? 其實(shí)不然,我們打開 顯示原始郵件
看下文章來源地址http://www.zghlxwxcb.cn/news/detail-490348.html
到了這里,關(guān)于電子郵件欺詐防護(hù)之 SPF+DKIM+DMARC的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!