无需密码读取加密 PDF 文件内容
星期六, 十月 12, 2019
现在还真有可能了。在特定条件下,攻击者可以运用新型攻击技术访问加密 PDF 文件的全部内容。
该方法名为 PDFex ,所用技术中包含两类攻击方法,利用了 PDF 内置标准加密保护中的安全漏洞。
需要指出的是,PDFex 攻击并不能使攻击者获知或去除加密 PDF 的密码,而是在合法用户打开该文档时可使攻击者远程渗漏其中内容。
换句话说,PDFex 使攻击者可在不知道相应密码的情况下修改受保护 PDF 文档,方法就是当持有正确密码的用户打开文档时,文件自动向互联网上远程攻击者控制下的服务器发送文档解密内容副本。
研究人员针对 27 种广泛使用的 PDF 阅读器做了 PDFex 攻击测试,无论是桌面阅读器还是基于 Web 浏览器的 PDF 阅读器,两种攻击方式中总有一种能攻破,而且绝大部分阅读器两种攻击方法都适用。
受影响 PDF 阅读器涵盖了适用于 Windows、macOS 和 Linux 桌面操作系统的流行软件,比如:
以及 Web 浏览器内置 PDF 阅读器:
PDFex 由德国安全研究团队发现,利用 PDF 加密中的两个主要漏洞:
1. 部分加密
标准 PDF 规范从设计上支持部分加密,允许仅加密字符串和流,而定义 PDF 文档结构的对象则保留未加密状态。
因此,对密文和明文混杂的支持就给攻击者留下了操纵文档结构并注入恶意载荷的机会。
2. 密文可塑性
PDF 加密采用密码块链接 (CBC) 加密模式,没有完整性检查,可被攻击者利用来创建自渗出密文块。
PDFex 攻击类型:直接渗漏和 CBC 小工具
下面我们简要阐述这两类 PDFex 攻击。
类型 1:直接渗漏:利用受保护 PDF 文件的部分加密功能。
尽管不触及待渗漏内容,攻击者可向目标加密 PDF 中添加额外的未加密对象,用于定义合法用户成功打开 PDF 文件时触发的恶意动作。
如下面列出的,这些动作定义了远程攻击者可以渗漏文档内容的方法:
研究人员在论文中写道:该恶意动作将加密部分引用为包含在请求中的内容,这样就能渗出其明文发至任意 URL 了。动作的执行可在 PDF 文件被打开(解密后)时自动触发,也可以通过用户互动触发,比如点击文档内的对象。
类型 2:CBC 小工具:不是所有 PDF 阅读器都支持部分加密文档,但其中很多都没有文件完整性保护,也就让攻击者得以直接修改加密对象中的明文数据。
基于 CBC 小工具的攻击场景与直接渗漏攻击类似,惟一的区别是攻击者用 CBC 小工具修改已有加密内容,或创建新内容,以便添加定义数据渗漏方法的动作。
除此之外,如果 PDF 包含压缩流以削减文件大小,攻击者需用半开放对象流来盗取数据。
研究团队由来自德国波鸿鲁尔大学和明斯特大学的六名学术界人士组成,已向所有受影响供应商报告了他们的发现,并公开发布了 PDFex 攻击的漏洞利用概念验证。
该团队早前的其他研究包括 2018 年 5 月披露的 eFail 攻击,影响十多种常用 PGP 加密电子邮件客户端。
研究团队在专属网站上发布了题为《实用解密 exFiltration:破解 PDF 加密》的研究论文,可访问该网站以获取更详细的技术细节。
评估:
https://pdf-insecurity.org/encryption/evaluation_2019.html
概念验证:
https://pdf-insecurity.org/download/exploits-encryption/exploits.tgz
PDF 安全网站:
https://pdf-insecurity.org/encryption/encryption.html
PDFex 攻击论文:
https://www.pdf-insecurity.org/download/paper-pdf_encryption-ccs2019.pdf
相关阅读