德國安全研究人員Sabri Haddouche已經發現了一系列漏洞,他統稱為Mailsploit。允許攻擊者欺騙電子郵件身份,并在某些情況下,在用戶的計算機上運行惡意代碼。
雖然,Mailsploit的遠程代碼執行部分是令人擔憂。但真正的問題是電子郵件欺騙攻擊,它繞過了幾乎所有現代反欺騙保護機制,如DMARC(DKIM / SPF)或各種垃圾郵件過濾器。
這使得攻擊者能夠發送具有欺騙性身份的電子郵件,使得用戶和電子郵件服務器很難檢測出其實質上是假冒的,這反過來又使得釣魚攻擊和惡意軟件郵件更加難以被發現。
Mailsploit如何工作Mailsploit漏洞源于電子郵件服務器如何解釋采用RFC-1342編碼的電子郵件地址。這是1992年開始采用的一個標準,它描述了一種在電子郵件標題中編碼非ASCII字符的方法。
通過規則,郵件頭中包含的所有內容必須是ASCII字符。在發送電子郵件時,RFC-1342自動將非ASCII字符轉換為標準ASCII字符,以避免使用非ASCII字符主題或電子郵件地址的電子郵件在通過郵件服務器時發生錯誤。
Haddouche發現大量的電子郵件客戶端會采用RFC-1342編碼的字符串,將其解碼為非ASCII狀態,但之后不會對其進行清理以檢查惡意代碼。
此外,如果RFC-1342解碼的電子郵件字符串包含空字節或者是兩個或兩個以上的電子郵件地址時,電子郵件客戶端將只讀取空字節之前的電子郵件地址或其遇到的第一個有效電子郵件地址。
這意味著攻擊者可以創建一個欺騙性電子郵件地址,RFC-1342編碼的字符串如下:
From:=?utf-8?b?cG90dXNAd2hpdGVob3VzZS5nb3Y =?==?utf-8?Q?= 00?==?utf-8?b?cG90dXNAd2hpdGVob3VzZS5nb3Y =?= @ mailsploit.com
電子郵件客戶端解碼后則為:
From:potus @ whitehouse.gov 0(potus @ whitehouse.gov) @ mailsploit.com
脆弱的電子郵件客戶端解析這些字符串將只讀取第一個電子郵件地址([email protected]),而忽略真實的地址(@ mailsploit.com)。簡單來說,攻擊者可以通過這種方式,將自己真實的發件地址隱藏,而偽裝成另外一個發件地址(比如,來自企業、政府或其他合法的個人或組織)。
如上所述,原因來自空字節( 0)或者是因為[email protected]是電子郵件客戶端遇到的第一個有效的電子郵件地址,導致其忽略了字符串的其余部分。
全球33個電子郵件客戶端和Web服務受影響Haddouche在今年早些時候發現了Mailsploit漏洞,并說對一些電子郵件客戶端和Web服務進行了測試。下圖Haddouche的完整測試結果,你也可以通過以下鏈接進行查看:
https://docs.google.com/spreadsheets/d/1jkb_ZybbAoUA43K902lL-sB7c1HMQ78-fhQ8nowJCQk/htmlview?sle=true
盡管Haddouche聯系了所有易受攻擊的電子郵件客戶端和Web服務運營商,但在最終發布的33個的補丁中只有8個用于修復了電子郵件地址解析錯誤問題。
其他12家供應商對這個漏洞進行了分類管理,但是并未打算在解決這個問題前做出任何回應,另有12家供應商甚至不承認Haddouche提交的漏洞報告。
比如,Mozilla和Opera從一開始就表示,他們不會修復這個漏洞,因為他們認為這是一個服務器端問題。
DMARC將不會檢測到電子郵件欺騙更糟糕的是,利用Mailsploit漏洞編碼的電子郵件地址對運行反欺騙協議(如DMARC)的現代電子郵件服務器同樣有效。
“這并不是說DMARC會直接受到攻擊,而是被繞過,在欺騙性電子郵件中仍然顯示了合法的發件人名稱。”Haddouche解釋說,“服務器仍只會去驗證原始地址的DKIM簽名,而不是用于欺騙的地址。”
Haddouche說:“這使得這些欺騙性電子郵件在目前來說幾乎是不可阻擋的。”
Mailsploit也可以在一些機器上運行代碼此外,Mailsploit漏洞不僅允許攻擊者在電子郵件的“From:”字段中隱藏多個電子郵件地址,也允許他們隱藏惡意代碼。
一些電子郵件客戶端在清理解碼后的字符串方面做得非常差,可能會導致這些惡意代碼能夠在用戶的計算機上運行,進而帶來例如XSS和其他代碼注入攻擊。