新的PDFex攻击可以从加密的PDF文件中窃取数据
作者:ZDNet 发布时间:2019-10-01

德国学者已经开发出一种新攻击,可以从加密的PDF文件中提取和窃取数据,有时无需用户交互即可。

名为PDFex的新攻击有两种变体,已针对27种台式机和Web PDF查看器进行了成功测试,包括Adobe Acrobat,Foxit Reader,Evince,Nitro,Chrome和Firefox的内置PDF查看器等流行软件。

该攻击的目标不是外部软件应用于PDF文档的加密,而是针对可移植文档格式(PDF)标准本身支持的加密方案。

PDF标准支持本机加密,因此PDF应用程序可以对可以被任何其他应用程序打开的文件进行加密,并可以防止由于使用了不安全的加密方案而导致用户锁定一种特定的PDF软件。

但是,德国波鸿鲁尔大学和明斯特大学的六位学者组成的团队发现了PDF标准的加密支持问题。

研究小组说:“我们的攻击允许通过使用基于符合标准的PDF属性的渗透通道来恢复加密文档的整个纯文本。”

PDFEX版本1

研究人员说,加密的PDF文档容易受到两种攻击类型的攻击。这两个变体没有特殊名称,但是通过它们用于执行攻击和泄露数据的方法而闻名。

第一个被称为“直接渗透”,它利用了以下事实:PDF应用程序不会加密整个PDF文件,而不会加密某些部分。

pdfex-a.png


图片:Müller等。

研究团队说,攻击者可以篡改这些未加密的字段,并创建一个诱骗陷阱的PDF文件,该文件在解密和打开后会尝试将文件内容发送回攻击者。

这可以通过三种方式实现:

  1. 通过更改PDF文件的纯文本数据以添加PDF表单,当受害者解密并打开加密的PDF时,该表单自动将PDF的内容提交给攻击者的服务器;

  2. 通过更改PDF文件的纯文本数据以添加一个链接,该链接在受害者解密并打开加密的PDF时自动触发;

  3. 通过更改PDF文件的纯文本数据以添加JavaScript代码,该JavaScript代码在受害者解密并打开加密的PDF时自动运行。

在三种“直接渗透” PDFex攻击中,第一种是更易于执行且最有效,因为它不需要用户交互。第二个要求打开外部浏览器,用户可以阻止此操作。

第三种是不太可靠的方法,主要是因为许多PDF应用程序限制了JavaScript支持,因为其他安全风险(使PDF文件在后台运行JS代码)。

PDFEX版本2

第二个PDFex攻击变体不是在未加密的PDF文件之后,而是在加密的文件之后。它通过使用CBC小工具来实现。这些是针对加密内容并修改其原始数据的代码段。

PDFex研究人员之一塞巴斯蒂安·辛泽尔(Sebastian Schinzel)在Twitter上说:“ CBC小工具意味着对密文进行修改,使其在解密后能够自我渗透。”

之所以可行,是因为a)PDF标准允许混合使用纯文本和加密的内容b)不定义用于加密的身份验证方法(即非MAC),以及c)允许从远程HTTP服务器获取内容并将其发布到远程HTTP服务器。#PDFex 6 / n

-Sebastian Schinzel(@seecurity)2019年9月30日

就像第一个一样,PDFex CBC小工具攻击也有三个较小的变体。前两个与第一次攻击相同。

攻击者可以使用CBC小工具修改加密的内容,以便他们创建诱捕的PDF文件,这些文件通过PDF表单或URL将自己的内容提交到远程服务器。

第三次CBC小工具攻击依赖于以恶意方式修改合法的PDF对象流(压缩数据),因此,再次将PDF文件解密并在易受攻击的PDF查看器应用程序中打开后,会将其内容提交到远程服务器。

PDFEX结果

研究小组说:“我们的评估表明,在27个广泛使用的PDF查看器中,他们所有人都容易受到其中至少一种攻击的攻击。”

pdfex-results.png
图片:Müller等。

研究人员说:“这些令人震惊的结果自然引发了实际解密渗透攻击的根本原因。我们确定了其中两个。”

“首先,许多数据格式仅允许加密部分内容(例如XML,S / MIME,PDF)。这种加密灵活性很难处理,并且允许攻击者包括其自己的内容,这可能导致渗漏渠道。

“第二,在加密方面,仍广泛支持AES-CBC或通常没有完整性保护的加密。即使2017年发布的最新PDF 2.0规范仍然依赖它,”研究团队补充说。

“这必须在将来的PDF规范中解决。”

所有这些攻击都要求攻击者可以修改加密的PDF文件。这包括拦截受害者的网络流量或对存储系统进行物理访问的位置(例如,在机场检查设备,在员工不在时访问员工的工作站等等)。

但是,说这些是降低PDFex可用性的标准是错误的。正是应该防止加密的这些情况,使PDFex成为PDF标准中的主要漏洞。