据The Hacker News 2月23日报道,研究人员最新展示了一类新型PDF文档攻击,攻击者可以在保证文档数字签名有效的前提下,进行隐藏、篡改或替换文档内容等恶意操作,常见的操作有替换收款人、付款订单或更改合同条款等。
该攻击技术被德国波鸿鲁尔大学的学者称为“影子攻击”,它的主要攻击原理是“视图层”概念,即在PDF文档中重叠的不同内容集。它利用“PDF灵活的技术规范,使影子文件在标准合规范围内运行”。
该研究结果2月22日在网络和分布式系统安全研讨会(NDSS)上发表。在测试的29个PDF阅读器中,有16个易遭受影子攻击-,包括Adobe Acrobat、Foxit Reader、Perfect PDF和Okular。
研究小组表示,该影子攻击存在三种变体:
- 隐藏:攻击者使用PDF规范中的增量更新功能隐藏某层内容。
- 替换:攻击者使用PDF规范中的“交互式表单”功能将原始内容替换为修改后的内容。
- 隐藏和替换:攻击者使用原始文档中包含的第二个PDF文档完全替换它。
在攻击中,攻击者会创建一个具有两种不同内容的PDF文档:一种是文档签署方所期望的内容,另一种是文档签署后才显示隐藏内容。
“PDF的签署者收到该文件后,会进行常规审核和签署,”研究人员解释,“攻击者获取签署文件后稍加篡改并将其发送给受害者。受害者接收文档后会检查数字签名是否被成功验证,但受害者看到的是篡改后的内容。”
在模拟世界中,该攻击相当于故意在纸质文档中留下空位让相关方签署,而攻击者可以在空位中插入任意内容。
研究小组补充,隐藏和替换是危害最大的变体攻击,因为它可以替换整个文档的内容。“攻击者可以建立一个完整的影子文档,影响每一页的呈现内容,甚至影响页面总页数以及其中包含的每项内容的显示。”
攻击的关键是利用不会使签名无效的PDF原生功能,比如允许对PDF进行修改的“增量更新”功能(如填写表格)和“交互式表格”功能(如文本字段、单选按钮等),将恶意内容隐藏在看似无害的覆盖对象后面,或在签署后直接替换原始内容。
简单地说,这个想法是创建一种形式,它在签署前后显示相同的内容,但攻击者篡改后会显示一组完全不同的内容。
为了测试攻击,研究人员发布了两个新的开源工具PDF-Attacker和PDF-Detector。这两个工具可以用来生成影子文件,并检测文档在签署之前和修改之后的篡改。
这个影子攻击利用的漏洞被追踪编码为CVE-2020-9592和CVE-2020-9596,Adobe在2020年5月12日发布的更新中解决了该威胁。但截至2020年12月17日,测试的29个PDF阅读器中有11个仍然未修复。
据介绍,影子攻击建立在研究人员2019年2月设计的同类威胁基础上。当时,研究人员发现该类威胁可在保证签名有效的前提下修改文档,从而使伪造PDF文档成为可能。
虽然此后厂商采取了安全措施修复该问题,但新的研究旨在扩展这一攻击模型,以证实攻击者能否在保证签名有效的前提下,修改文档的可见内容。
这并不是PDF安全问题第一次受到关注。研究人员此前已经展示了提取有密码保护的PDF文档的方法,利用PDF规范支持的部分加密技术,一旦用户打开该文档,就可以远程渗出内容。
另外,研究人员上个月又发现了另一组影响PDF标准的11个漏洞(CVE-2020-28352至CVE-2020-28359以及CVE-2020-28410至CVE-2020-28412),这些漏洞可能导致拒绝访问、信息泄露、数据操纵攻击,甚至执行任意代码。