新型“影子攻击”绕过数字签名篡改PDF文件

最近,德国的波鸿鲁尔大学发布了一份研究,发现28个桌面PDF浏览应用中,有15个受到最新的PDF攻击影响。该攻击可以让恶意的攻击者修改数字签名的PDF文件。受影响的应用包括Adobe Acrobat Pro、Adobe Acrobat Reader、Perfect PDF、Foxit Reader、PDFFelement等。

研究者将这种类型的攻击命名为“影子攻击”。

影子攻击的主要攻击理念基于“图层”——即PDF文件中不同内容按顺序叠放形成的最终效果。

影子攻击的模式是由攻击者准备一份不同图层的文件,并发给被攻击者。被攻击者在最高图层进行数字签名,但是一旦攻击者收到了该文件,他们再将可见的图层修改到另一个文件中。

因为该图层包括在被攻击者已经签名的原始文件中农,而修改图层的可见性本身并不会影响数字签名的结果,从而使得攻击者能使用这份具有法律效力的文件实行恶意行为——比如替换收据、修改PDF订单中的数额或者修改合同条款等。

根据研究团队,影子攻击有三种变体:

  • 隐藏:攻击者使用PDF标准的增量式更新隐藏图层,而不需要替换任何其他东西。
  • 替换:攻击者使用PDF标准的交互式表单替换原文件中的数值。
  • 隐藏加替换:攻击者使用原文件中的另一个PDF文件进行 完全替换。

研究团队表示,隐藏加替换是最具威胁的变种,因为该变种能替换整个文件;攻击者可以建造一个完整的影子文件,从而影响每一页的展示内容,甚至文件中的页数。

研究人员称,影子攻击得以生效的原因,在于PDF文档即使被数字签名后,依然能在他们的内容中显示未被使用的PDF对象。

因此,会在文件签名时移除未被使用的PDF对象的PDF阅读器能够免疫影子攻击。

研究团队表示,他们已经和德国的安全应急响应团队CERT-Bund合作,联系了相关的PDF应用厂商,上报了该攻击,并在他们发布这份相关报告前进行了修复。

影子攻击当前的CVE编号为CVE-2020-9592与CVE-2020-9596,。

企业需要尽快更新他们的PDF阅读器,以确保他们签字的PDF文件不会被影子攻击所篡改。

这是该团队第二次破解了PDF阅读器的数字签名了。在2019年2月,该团队破解了22个桌面PDF阅读器中21个,以及7个在线签名服务中5个的数字签名机制,制造出虚假签名的文件。

这次的影子攻击和之前的破解不同,因为影子攻击并不针对签名进行攻击,而是在不篡改签名的情况下修改内容。

另外,该团队还发现一种针对27种PDF阅读器的破解密码方式PDFex,可以从加密的PDF文档中直接获取数据。