崔 寧,薛 質(zhì),施 勇,郭鳳嬋
(1.上海交通大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,上海 200240;2.廣東電網(wǎng)公司 江門供電局,廣東江門 529099)
當(dāng)前,電子郵件是互聯(lián)網(wǎng)中應(yīng)用最廣的服務(wù)之一,在網(wǎng)絡(luò)通信中扮演著十分重要的角色。近年來,根據(jù)反釣魚網(wǎng)絡(luò)工作組(Anti-Phishing WorkingGroup,APWG)最新發(fā)布的網(wǎng)絡(luò)釣魚活動趨勢報(bào)告顯示,網(wǎng)絡(luò)釣魚在2021 年第一季度繼續(xù)保持創(chuàng)紀(jì)錄的增長水平[1]。報(bào)告顯示,網(wǎng)絡(luò)釣魚數(shù)量在2021 年1 月達(dá)到峰值,創(chuàng)下245 771 個的歷史高位[2]。而針對商務(wù)電子郵件攻擊,黑客最常用的手段就是網(wǎng)絡(luò)釣魚[3]。網(wǎng)絡(luò)釣魚電子郵件攻擊指,攻擊者利用仿冒的電子郵件欺騙受害者將賬戶、口令等信息內(nèi)容發(fā)送給特定的接受者;或者是指,引導(dǎo)受害者點(diǎn)擊仿冒正常網(wǎng)頁的頁面,如仿冒的金融機(jī)構(gòu)或投資理財(cái)?shù)木W(wǎng)頁頁面,從而導(dǎo)致賬戶名稱及登陸密碼等被竊取。這種攻擊也讓越來越多的企業(yè)遭受經(jīng)濟(jì)損失,甚至?xí)?dǎo)致整個公司無法正常運(yùn)轉(zhuǎn)。為了確保公司交易的機(jī)密,各大公司都逐漸開始重視電子郵件安全。現(xiàn)實(shí)應(yīng)用中,由于簡單郵件傳輸協(xié)議(Simple Mail Transfer Protocol,SMTP)并沒有過多的安全性設(shè)計(jì)[4],因此電子郵件系統(tǒng)的安全性基本依賴于之后添加的SPF[5]、DKIM[6]、DMARC[7]等安全協(xié)議,但是這些協(xié)議目前各公司的采用率卻并沒有很高。
現(xiàn)階段,電子郵件身份認(rèn)證有發(fā)件人策略框架(Sender Policy Framework,SPF)、域名密鑰識(DomainKeys Identified Mail,DKIM)、基于域的消息認(rèn)證、報(bào)告和一致性(Domain-based Message Authentication,Reporting and Conformance,DMARC)這3 種安全擴(kuò)展協(xié)議。SPF 可防止域名欺騙,令郵件服務(wù)器能夠確定郵件是何時從其所用域名發(fā)出的。DKIM 協(xié)議可確保郵件內(nèi)容不被偷窺或篡改。DMARC 協(xié)議以一組協(xié)調(diào)一致的策略融合了SPF 和DKIM 協(xié)議,能夠?qū)l(fā)件人域名與郵件頭中“From:”域列出的內(nèi)容相關(guān)聯(lián),還具備更好的收件人反饋機(jī)制[8]。三大電子郵件安全協(xié)議互為補(bǔ)充,可為電子郵件提供最佳的安全防護(hù)。但是,根據(jù)筆者日常的工作經(jīng)驗(yàn)發(fā)現(xiàn),很多公司甚至一些世界500 強(qiáng)的大公司,都沒有使用或錯誤配置了SPF和DMARC 這兩種最被接受和使用的電子郵件安全機(jī)制,所有域的SPF 和DMARC 記錄都可以公開查詢。這意味著如果出現(xiàn)配置問題,任何攻擊者都可以掌握情況并發(fā)起釣魚攻擊,并且攻擊的結(jié)果是可預(yù)測的。
當(dāng)前,一種新的電子郵件安全標(biāo)準(zhǔn),稱為命名實(shí)體的基于DNS的身份驗(yàn)證(DNS-based authentication,DANE)[9],它為郵件傳輸提供了更安全的方法。DANE 依靠域名系統(tǒng)安全擴(kuò)展(Domain Name System Security Extensions,DNSSEC)[10]來實(shí)現(xiàn)完整性和真實(shí)性。目前DANE 很少使用,流行起來還需要時間。而本文工作側(cè)重于使用最廣泛的電子郵件安全框架SPF 和DMARC,并嘗試調(diào)查和分析現(xiàn)有安全機(jī)制的實(shí)施不足并提供解決方案。
與此同時,許多研究人員對SPF、DKIM 和DMARC的部署進(jìn)行了深度研究[11-13]。目前郵件認(rèn)證技術(shù)主要包括基于IP的認(rèn)證與基于加密的認(rèn)證兩大類[14]。目前,美國國土安全部要求所有聯(lián)邦機(jī)構(gòu)部署嚴(yán)格DMARC 政策[15]。同時,也已經(jīng)開發(fā)出新的協(xié)議來增強(qiáng)欺騙檢測,比如經(jīng)過身份驗(yàn)證的接 收鏈(Authenticated receiving chain,ARC)[16]。ARC 建立在SPF、DKIM 和DMARC 之上,旨在解決修改郵件轉(zhuǎn)發(fā)器導(dǎo)致的認(rèn)證失敗問題。ARC 允許每個郵件轉(zhuǎn)發(fā)器將他們的身份驗(yàn)證評估結(jié)果附加到轉(zhuǎn)發(fā)的郵件中,以便接收服務(wù)器可以根據(jù)早期轉(zhuǎn)發(fā)器的身份驗(yàn)證結(jié)果做出明智的決定。由于ARC 依賴于DMARC 驗(yàn)證的正確性,所以仍不能解決問題。
開放完美隱私(OpenPretty Good Privacy,OpenPGP)[17]和安全多用途Internet 郵件擴(kuò)展(Secure Multipurpose Internet Mail Extensions,S/MIME)[18]是通過數(shù)字簽名提供端到端消息真實(shí)性的標(biāo)準(zhǔn)。研究人員發(fā)現(xiàn)許多電子郵件客戶端容易受到簽名欺騙或純文本滲漏攻擊。他們的一些攻擊會制作格式錯誤的MIME 消息,以利用簽名驗(yàn)證程序和電子郵件顯示組件之間的不一致。
有許多研究討論基于從電子郵件內(nèi)容和標(biāo)題中提取的特征的網(wǎng)絡(luò)釣魚檢測方法,其中大部分依賴于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)?;诠埠退饺耸占碾娮余]件數(shù)據(jù)集構(gòu)建他們的模型,并使用自然語言處理(Natural Language Processing,NLP)方法處理電子郵件樣本,包括詞頻-逆文檔頻率(term frequency-inverse document frequency,TF-IDF)、詞袋(Bag of Words,BoW)等[19]。使用來自UCI存儲庫的垃圾郵件數(shù)據(jù)集,以及用于特征選擇的多節(jié)優(yōu)化器(Multi-Verse Optimizer)和K-最近鄰算法(K-Nearest Neighbor,KNN),并實(shí)現(xiàn)了高精度[20]。使用常見的NLP 文本處理方法,如BoW 和TF-IDF文本表示進(jìn)行特征提取[21]。他們將多種機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法用于檢測模型,發(fā)現(xiàn)各種深度學(xué)習(xí)架構(gòu)的性能非常接近。
本文掃描并分析目前世界上影響力最大的4 800多個公司或組織的域,發(fā)現(xiàn)90%以上的域存在SPF 配置問題,70%以上的域存在DMARC 配置問題。并針對發(fā)現(xiàn)的問題,提出SPF和DMARC的全面配置建議。
SMTP 是用于電子郵件傳輸?shù)囊蛱鼐W(wǎng)(Internet)標(biāo)準(zhǔn)[4],它于1982 年設(shè)計(jì)。圖1 顯示了典型的電子郵件傳輸過程。SMTP的一個關(guān)鍵限制是它沒有內(nèi)置的安全功能來防止人們(攻擊者)冒充或欺騙任意發(fā)件人地址。
電子郵件服務(wù)的簡易工作流程如圖1 所示。在電子郵件系統(tǒng)中,主要涉及到4 個角色,分別為發(fā)件人、收件人、轉(zhuǎn)發(fā)者和用戶界面(User Interface,UI)渲染器。每個角色應(yīng)承擔(dān)不同的安全職責(zé)。發(fā)件人寫的電子郵件是從郵件用戶代理(Mail Transfer Agent,MUA)通過SMTP 或超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)協(xié)議傳送到發(fā)件人的郵件傳輸代理(MailTransferAgent,MTA)。發(fā)送方的MTA 通過SMTP 協(xié)議將郵件發(fā)送給接收方的MTA,接收方的MTA 通過HTTP、交互式郵件存取協(xié)議(Internet Mail Access Protocol,IMAP)或郵局協(xié)議版本3(Post Office Protocol -Version 3,POP3)協(xié)議將郵件內(nèi)容發(fā)送給接收方的MUA[9]。
圖1 電子郵件工作流程
攻擊者在執(zhí)行欺騙攻擊,有以下流程。首先,在建立SMTP 連接后,攻擊者可以使用“MAIL FROM”命令將發(fā)件人地址設(shè)置為他們想要模擬的任何人。其次,“MAIL FROM”地址作為“Return-Path”插入到頭部。同時,攻擊者還可以修改電子郵件標(biāo)頭中名為“發(fā)件人”的另一個字段,該“發(fā)件人”字段可以指定顯示在電子郵件界面上的地址。當(dāng)用戶收到電子郵件時,用戶將看到“發(fā)件人”地址。如果用戶回復(fù)郵件,回復(fù)信息將轉(zhuǎn)到“MAIL FROM”設(shè)置的“Return-Path”,這就是電子郵件欺騙。電子郵件欺騙是網(wǎng)絡(luò)釣魚攻擊獲取受害者信任的關(guān)鍵步驟。
使用域名系統(tǒng)(DomainNameSystem,DNS)允許域所有者創(chuàng)建一種記錄,該記錄可以將地址域名與授權(quán)郵件發(fā)送代理(MailSendingAgent,MSA)使用的一個或多個IP 地址塊相關(guān)聯(lián)。
一般使用的SPFTXT 記錄示例為:
“v=spf1 ip4:202.112.26.0/24 -all”
各字段含義如表1 所示。
表1 SPF TXT 記錄示例字段含義
假設(shè)郵件服務(wù)器收到一封郵件,來自主機(jī)地址是202.112.26.1,并且聲稱發(fā)件人是email@example.com。郵件服務(wù)器為了確認(rèn)發(fā)件人不是偽造的,會查詢example.com的SPF 記錄。如果域的SPF 記錄設(shè)置允許IP 地址202.112.26.1 發(fā)送郵件,服務(wù)器會通過SPF 檢查,認(rèn)為郵件是合法的;如果不允許,它通常會退回郵件或?qū)⑵錁?biāo)記為垃圾郵件或假冒郵件。
DKIM 定義了一種簽名機(jī)制,該機(jī)制使用非對稱加密技術(shù)對電子郵件消息進(jìn)行加密和簽名,電子郵件收件人可以通過簽名確定郵件來自何處。[6]
消息接收者可以通過直接查詢簽名者的域并檢索公鑰來驗(yàn)證簽名,從而確認(rèn)消息是由擁有簽名域私鑰的一方發(fā)送的。消息簽名寫在消息頭域中,這樣消息體中簽名相關(guān)的內(nèi)容就不會造成混淆。如果出現(xiàn)簽名驗(yàn)證失敗,郵件則會被拒絕。
DKIM 和SPF 可以嚴(yán)格限制域名來源的合法性,但不能限制域名的子域名,即子域名不會受到保護(hù)。DMARC 聲明放在頂級域名上以保護(hù)子域。一些公司在同一個公司郵箱提供商處注冊了公司郵箱,他們的SPF 記錄都指向同一個IP 列表。
Paypal,Google,微軟,雅虎等公司建立了這樣一種反饋機(jī)制,讓發(fā)送域所有者知道其SPF 和DKIM 策略的比例有效性,并向接收器發(fā)送在攻擊場景中應(yīng)該采取什么行動。在設(shè)置策略以建議接收者發(fā)送、隔離或拒絕SPF、DKIM 失敗的郵件后,郵件服務(wù)器將電子郵件處理的DMARC 聚合和/或失敗報(bào)告返回給域所有者,域所有者可以查看結(jié)果并可能細(xì)化策略。圖2 是DMARC的基本工作流程。
圖2 DMARC 工作流程
與example.com 關(guān)聯(lián)的示例DMARC TXT 記錄將在DNS 中_dmarc.example.com 上發(fā)布,記錄是:
“v=DMARC1;adkim=r;aspf=s;p=none;pct=100;
rf=afrf;ri=86400;ruf=mail:test.example.com;”
各字段含義如表2 所示。
表2 DMARC TXT 記錄示例字段含義
其中最重要的機(jī)制是p。它包含三個選項(xiàng),即“無(none)”“隔離(quarantine)”和“拒絕(reject)”。對于未通過DMARC 檢查的郵件,如果將“p”設(shè)置為“none”,則服務(wù)器將不對郵件采取任何操作并接收;如果“p”設(shè)置為“reject”,服務(wù)器會在郵件到達(dá)客戶端之前直接拒絕郵件。當(dāng)“p”設(shè)置為“quarantine”時,會發(fā)生什么取決于服務(wù)器/客戶端設(shè)置,郵件可能會被放入隔離區(qū)或垃圾郵件文件夾以進(jìn)行進(jìn)一步調(diào)查,或者被接受并通知用戶這是一封可疑郵件。
雖然DMARC 可以很大程度遏制欺騙和網(wǎng)絡(luò)釣魚,但它確實(shí)需要詳細(xì)配置。轉(zhuǎn)發(fā)郵件的中介有很多正當(dāng)理由重寫標(biāo)頭,通常與操作郵件列表、郵件組和最終用戶郵件轉(zhuǎn)發(fā)等合法活動有關(guān)。需要注意的是,郵件服務(wù)器轉(zhuǎn)發(fā)會改變源IP 地址,并且無需重寫“envelope-From:”字段,這可能會使SPF檢查失敗。另一方面,標(biāo)題重寫或向郵件內(nèi)容添加頁腳可能會導(dǎo)致DKIM 簽名失敗。這兩種干預(yù)都會導(dǎo)致DKIM 驗(yàn)證和消息傳遞出現(xiàn)問題。
本節(jié)將介紹本文電子郵件安全評估的基本信息、范圍、結(jié)果和主要發(fā)現(xiàn)。
筆者分別從中國各個行業(yè)中篩選出公司或組織,其中包括中國服飾70 強(qiáng)、中國國企100 強(qiáng)、中國互聯(lián)網(wǎng)100 強(qiáng)、中國建筑業(yè)100 強(qiáng)、中國運(yùn)輸業(yè)100 強(qiáng)、中國銀行100 強(qiáng)、中國飲食業(yè)100 強(qiáng)、中國醫(yī)療機(jī)構(gòu)100 強(qiáng)、中國制藥業(yè)200 強(qiáng)以及上海民企100 強(qiáng)。同時還在世界500 強(qiáng)公司、中國500強(qiáng)公司、Alexa排名前3 000(Alexa Top Domains 3000)和谷歌排名前200(Google Top Domains 200)中選擇了4 819 個域。
本文的評估是針對已啟用郵件服務(wù)且具有正常郵件交換(mail exchanger,MX)配置記錄的域。在運(yùn)行MX 服務(wù)掃描后,最終選擇了4 253 個域名作為評估范圍。評估側(cè)重于測試域的SPF 和DMARC 配置。本文編寫了腳本來掃描被測域名并查詢MX 記錄、SPF 記錄和DMARC 記錄,然后使用MXToolBox 來確認(rèn)第一次腳本檢查的結(jié)果并實(shí)施進(jìn)一步的安全評估,以檢查SPF 和MARC 配置是否滿足電子郵件安全要求。
實(shí)驗(yàn)環(huán)境的軟硬件配置信息如表3 所示。
表3 配置情況
3.3.1 風(fēng)險分析
本文將評估中發(fā)現(xiàn)的配置問題根據(jù)對郵件系統(tǒng)安全的風(fēng)險程度分為高風(fēng)險和低風(fēng)險。其中高風(fēng)險的幾種情況如下文所述。
(1)找不到SPF 記錄或SPF 語法無效。部分域沒有SPF 配置或SPF 記錄有語法錯誤,無法生效。在這種情況下,郵件系統(tǒng)沒有安全防護(hù)能力,任何具有基本SMTP 知識的攻擊者都可以進(jìn)行釣魚攻擊。
(2)包含的查找過多。6.80%的測試域包含10 個以上“l(fā)ookup”。SPF 實(shí)施將DNS 查找的機(jī)制和修飾符的數(shù)量限制為每次SPF 檢查中最多有10 個。“include”“a”“mx”“ptr”“exists”和“redirect”修飾符也計(jì)入此限制?!癮ll”“ip4”和“ip6”不需要DNS 查找,因此不計(jì)入此限制。如果在檢查過程中超過這個數(shù)字,將返回“permError”并且SPF 將失效。出現(xiàn)這個問題的主要原因是現(xiàn)在很多公司將郵件服務(wù)外包給第三方服務(wù)商,每個服務(wù)商都會在SPF 記錄中添加“l(fā)ookup”。如果它們還包含DNS 查詢機(jī)制/修飾符,它將很快達(dá)到極限。
(3)找到多個記錄。根據(jù)RFC7489[7],如果同一個域中有多個SPF 記錄,SPF 將無法正確驗(yàn)證郵件。如果找到多個這樣的記錄,服務(wù)器將返回“permError”。
(4)子域未找到SPF 記錄。繞過SPF 檢查的方法有很多,包括無子域SPF 配置[5]。由于SPF的工作機(jī)制,a.com 和test.a.com 完全是兩個不同的SPF 檢查域,即使公司主域正確配置了SPF,攻擊者也可以欺騙子域并且它仍然可以通過SPF 檢查,因?yàn)閷τ谖磁渲玫挠蛎?,默認(rèn)返回值是“neutral”。
(5)未找到DMARC 記錄或DMARC 無效語法。如果不使用DMARC,有很多方法可以繞過單個SPF 檢查。
(6)DMARC使用“NONE”策略。在這種情況下,DMARC的策略標(biāo)簽設(shè)置為“none”。本文建議不要在策略設(shè)置中使用“none”,因?yàn)檫@通常比沒有DMARC 配置更糟糕。當(dāng)策略“p”設(shè)置為“none”時,當(dāng)郵件無法通過SPF 或DKIM 檢查時,郵件服務(wù)器將不采取任何行動并接收可能有問題的郵件。
低風(fēng)險的幾種情況如下文所述。
(1)在SPF 中使用“~”或“?”。在SPF配置中,當(dāng)使用“~”或“?”時,表示軟失?。╯oft fail)。如果郵件系統(tǒng)管理員不更改默認(rèn)設(shè)置,SPF 驗(yàn)證失敗的郵件可能會被接受,而不是被隔離(quarantine)或被拒絕(rejected)。本文建議在SPF 記錄的末尾使用“-all”,以嚴(yán)格限制接收有問題的電子郵件。
3.3.2 SPF、DMARC 統(tǒng)計(jì)分析
根據(jù)這幾種風(fēng)險情況,對各域名結(jié)果進(jìn)行統(tǒng)計(jì)分析,結(jié)果如表4 和表5 所示。配置情況結(jié)果如圖3 所示。
圖3 配置情況評估結(jié)果
表4 SPF 配置情況表
表5 DMARC 配置情況
本節(jié)針對上節(jié)提出的問題,提出一些緩解措施,其中主要針對SPF 和DMARC 提出一些安全配置建議。
每個公司和組織都應(yīng)該部署SPF 來指定哪些IP 地址被授權(quán)代表域傳輸電子郵件。因此,本文在SPF 配置上提出以下建議。
(1)合適的修飾符。建議使用“-all”,避免使用“~all”或“?all”。
(2)對于第三方的郵件服務(wù)配置,以Exchange 為例,SPF 記錄必須包含微軟郵件發(fā)送服務(wù)器的域名:
“v=spf1[ip] include:spf.protection.outlook.com”
2.可操作性。指標(biāo)體系指標(biāo)數(shù)據(jù)易于獲取,既體現(xiàn)完整性,又要進(jìn)行必要的簡化,突出關(guān)鍵指標(biāo),能夠體現(xiàn)信息化對企業(yè)運(yùn)營的支撐。
(3)避免太多查找。應(yīng)該避免創(chuàng)建導(dǎo)致超過10 個DNS 查找的SPF 記錄。如果使用第三方郵件服務(wù),管理員應(yīng)定期查看SPF 記錄,避免“l(fā)ookup”記錄超過10 條。此外,如果可能,需要將“include”語句替換為網(wǎng)際協(xié)議版本4(Internet Protocol version 4,ipv4)和網(wǎng)際協(xié)議版本6(Internet Protocol version 6,ipv6)機(jī)制,并避免使用指針記錄(Pointer Record,ptr)機(jī)制。
(4)子域SPF 配置。對于所有沒有郵件服務(wù)的子域,建議在DNS 設(shè)置中添加一條txt 記錄為:
“Type:txt Host:*.example.com Value:v=spf1 -all”
如果子域名有郵件服務(wù),這個配置不會影響正常的郵件收發(fā),因?yàn)镈NS 匹配機(jī)制是先找到可以匹配的域,如果沒有找到匹配的記錄,它將匹配“*”記錄。
(1)將標(biāo)簽“rua”設(shè)置為特定的電子郵件地址,并定期安排員工查看DMARC 發(fā)送的報(bào)告。如有必要,可將報(bào)告設(shè)置為每天發(fā)送。
(2)定期檢查報(bào)告以確保當(dāng)前的DMARC 設(shè)置不會產(chǎn)生太多誤報(bào),如避免來自域的合法電子郵件被拒絕。
(3)如果需要向外部域名發(fā)送“rua”或“ruf”報(bào)告,則需要在DNS 配置中添加一條記錄。
DMARC的正確推薦配置為:
“v=DMARC1;p=quarantine;sp=reject;rua=mailto:ruareport@example.com;ruf=mailto:rufreport@example.com;fo=0;ri=3600;pct=100;”
目前大部分公司或組織的面臨的網(wǎng)絡(luò)威脅最多的就是電子郵件仿冒,其中電子郵件中承載了大量的公司或組織的敏感信息甚至是商業(yè)機(jī)密。本文采集了4 253 個域名,這其中包括世界500 強(qiáng)、中國500 強(qiáng)、GoogleTop 200 和AlexaTop 3 000中的公司或組織。研究發(fā)現(xiàn)超過60%的域存在SPF 配置問題,近70%的域沒有使用DMARC 或使用錯誤的策略設(shè)置。研究發(fā)現(xiàn)大約97%的公司沒有為沒有電子郵件服務(wù)的子域?qū)嵤㏒PF 安全配置。根據(jù)實(shí)驗(yàn)結(jié)果,本文總結(jié)出了影響公司電子郵件安全服務(wù)的問題,并針對此提出了緩解措施。希望通過本文的實(shí)驗(yàn)數(shù)據(jù)能夠讓郵件服務(wù)提供商可以采用有效的郵件服務(wù)保護(hù)措施,提升郵件服務(wù)系統(tǒng)部署安全性,以保護(hù)用戶傳輸電子郵件的真實(shí)性,免受網(wǎng)絡(luò)釣魚攻擊。下一步,筆者會總結(jié)這些措施,結(jié)合日常工作經(jīng)驗(yàn),設(shè)計(jì)一個有效地郵件安全系統(tǒng)檢測模型。