阴影攻击:隐藏和替换签名PDF中的内容

2020-07-25 00:28:15

在模拟世界中,通常在文档末尾添加手写签名。这有一个主要缺点:可以用任意内容交换签名页面之前的所有页面。使用数字签名时,这种交换是不可能的,因为数字签名保护文档的整个内容。因此,假设来自模拟世界的此类攻击不能转移到数字签名。

我们通过引入一个新的攻击类:*影子攻击*证明了这一假设是错误的。影子攻击的思想是攻击者创建一个具有两个不同内容的PDF文档:PDF的签名者接收文档、审阅文档并对文档进行签名。攻击者使用签名的文档,对其稍加修改,然后将其发送给受害者。受害者打开签名的PDF后,会检查数字签名是否验证成功。然而,受害者看到的内容与西格纳夫妇不同。

我们引入了影子攻击的三种不同变体,允许攻击者隐藏、替换和隐藏和替换数字签名PDF中的内容。

根据我们在2019年2月发现的攻击,PDF应用程序会分析签名后所做的更改,并尝试估计这些更改是否合法。例如,不允许覆盖文档页面上的内容,从而导致签名验证无效。不过,PDF应用程序认为某些更改是无害的,不会抛出任何警告。我们分析了这些合法的更改,并滥用这些更改来交换PDF文档中的全部内容。

在我们的研究中,我们发现28个桌面查看器应用程序中有15个易受我们的至少一个攻击。您可以在以下网页上找到我们评估的详细结果:桌面查看器应用程序。

我们在2020年3月2日开始了负责任的披露程序。在与BSI-CERT的合作中,我们联系了所有供应商,提供概念验证漏洞,并帮助他们解决问题。这些攻击记录在CVE-2020-9592和CVE-2020-9596中。

您可以在以下网页上找到该报告和所有利用漏洞:报告和利用漏洞来测试您的应用程序。

如果您使用其他读卡器,则应联系您的应用程序的支持团队。或者,您可以使用提供的利用漏洞来测试您的应用程序。

为了保证机密性,可以对PDF文件进行加密。这实现了敏感文档的安全传输和存储,而无需任何进一步的保护机制。

发送者和接收者之间的密钥管理可以是基于密码的(接收者必须知道发送者使用的密码,或者必须通过安全信道将其传送给他们)或基于公钥的(即,发送者知道接收者的X.509证书)。

在这项研究中,我们分析了加密的PDF文件的安全性,并展示了攻击者如何在没有相应密钥的情况下渗出内容。

我们的研究发现的称为PDFex的安全问题可以概括如下:

即使不知道相应的密码,拥有加密PDF文件的攻击者也可以操纵其部分内容。

更确切地说,PDF规范允许混合密文和明文。与允许通过HTTP加载外部资源的进一步PDF功能相结合,一旦受害者打开文件,攻击者就可以运行直接渗出攻击。

PDF加密使用不带完整性检查的密码块链接(CBC)加密模式,这意味着密文可延展性。

这允许我们使用CBC延展性小工具创建自渗漏密文部分。我们使用该技术不仅可以修改现有的明文,还可以构建全新的加密对象。

PDF加密被广泛使用。佳能(Canon)和三星(Samsung)等知名公司在文档扫描仪中应用PDF加密来保护敏感信息。

此外,像IBM这样的提供商通过将PDF文档和其他数据(例如机密图像)包装成PDF来为它们提供PDF加密服务。不同的医疗产品也支持PDF加密来传输健康记录,例如Innoport、Ricoh、Rimage。

由于S/MIME和OpenPGP电子邮件加密的部署和可用性方面的缺陷,一些组织使用特殊的网关将电子邮件自动加密为加密的PDF附件,例如CipherMail、Encryptomatic、NoSpamProxy。解密这些PDF的密码可以在诸如文本消息(即,SMS)的第二信道上传输。

为了衡量PDF规范中漏洞的影响,我们分析了27个广泛使用的PDF查看器。我们发现其中23人(85%)容易受到直接渗出攻击,所有人都容易受到CBC小工具的攻击。

我们严格按照负责任的披露程序,于2019年5月17日上报了结果。与BSI-CERT合作,我们联系了所有受影响的供应商,提供概念验证漏洞,并帮助他们缓解问题。

您可以查看您正在使用的PDF Reader并比较版本,请参阅评估。

如果您打开一个PDF文档,而您的查看器显示一个面板(如下所示),表明。

自从应用签名以来,文档就没有被修改过,您假设显示的内容就是[email protected]创建的内容。

在最近的研究中,我们发现几乎所有的PDF桌面查看器和大多数在线验证服务都不是这样。

利用我们的攻击,我们可以使用现有的签名文档(例如,amazon.de Invoice)并任意更改文档的内容,而不会使签名无效。因此,我们可以伪造一份发票@amazon.de签名的文件来退还我们一万亿美元。

要检测攻击,您需要能够深入阅读和理解PDF格式。大多数人可能做不到这样的事情(例如PDF文件)。

简单地说,您可以使用任何签名的PDF文档,并以签名用户、公司、部门或州的名义创建包含任意内容的文档。