与 PDF 文件相关的安全风险有哪些?

信息安全 javascript pdf 文件类型
2021-08-13 17:48:01

与 PDF 文件相关的安全风险有哪些?

当然,与任何类型的文件相关的一般风险是:任何用于读取它的应用程序都会有一个错误,该错误可以被文件中的某些字节序列利用,从而导致系统崩溃,或者更糟糕的是,执行任意代码。

这是一个非常标准的安全问题。 关于PDF 文件特有的一般风险还有什么额外的吗?

除了上述一般风险之外,还有哪些与 PDF 文件相关的风险?

由于 PDF 文件可以包含javascript (JS),这会带来什么风险或者它是否适用于所有主要的 PDF 查看器/编辑器(Adobe Reader、PDF-XChange、Sumatra、Foxit、Nitro,以及 Firefox 和 Chrome 中的内部查看器)?

是否还有其他风险?

某些 PDF 文件是否具有“回拨”例程,可以在打开或编辑它们时向服务器发送 ping(或其他数据)?

怎么样修改保护的PDF文件密码保护的PDF文件那里有什么特别的吗?

我对与 Windows 和 Android 相关的答案最感兴趣,但也对与 linux、unix、OS X 和 iOS 相关的答案以及与操作系统无关的答案感兴趣。

1个回答

一个 PDF 特有的风险是支持 Adob​​e 和第三方阅读器扩展:您的 PDF 查看器可能加载了额外的模块,或者可能需要它们打开某些文档。示例包括:

这两者都努力限制数字文档的使用。充其量,此类功能会增加攻击面,最坏的情况可能会拒绝您访问您的某些文件、报告您的活动或以其他方式侵犯您的隐私、文档、计算机或网络。(听起来很熟悉?似乎类似于需要 Flash 或类似专有插件的浏览器和网页。)

另请参阅涵盖 PDF phone-home 功能的这个问题。Javascript、嵌入式多媒体(包括但不限于Flash)和 Xobjects(外部流)至少是实现这一目标的一些方法。

与 PDF 相关但并非完全特定于 PDF 的一些不太明显的风险:

  • PDF 可以包含附件,尽管并非所有读者都支持这一点,而且那些不总是在视觉上表明它们的存在。这些可以是任何类型的文件,包括另一个 PDF。加密的 PDF(通常为 RC4 或 AES)可识别为 PDF(仅加密数据流,而不是整个文件),在这种情况下附件的存在并不明显。行为至少在某些平台上受到限制,请参阅 Adob​​e 的KB 331371KB 328671(我认为这是一个潜在的风险,因为它让很多人感到惊讶,并且它可能被用于隐形传输。“Peachy”蠕虫是一个概念验证示例)

  • 对本机“安全功能”的错误信念,例如禁止复制、禁止打印、禁止编辑。这些实际上是任意控制,由查看器软件本身决定。

  • PDF 格式的结构/布局非常松散,PDF 适合作为变色龙或多语言格式 (PDF)使用和滥用,请参阅 Corkami 的示例: http ://code.google.com/p/corkami/wiki /mix?show=content这通过在这些格式中使用类似的“slack”来显示同时是 PDF、本机二进制可执行文件、.jar 和 .html 的文件。

  • 元数据可能会泄露有关文档来源或历史的信息。马虎的编辑也是问题。

  • 对丰富内容(通过 Flash 的多媒体、嵌入式字体)和浏览器集成的支持有助于对阅读器/查看器本身之外的客户端软件组件的攻击

有关详细信息,请参阅Acrobat 应用程序安全指南

PDF 密码有两种类型,在 Adob​​e 术语中是用户密码和所有者密码。用户密码用于加密,所有者密码用于自主访问控制。这些可以通过扩展的专有控件来增强。

密码保护可以是安全的(使用RC4-128,AES-128,AES-256具有良好的密钥派生),仍然支持RC4-40,和Adobe漏接球与初始AES-256实现在Acrobat 9 / PDF 1.7通过省略 KDF 中的迭代

虽然这允许 256 位 AES 密码保护的文档在 Acrobat 9 中更快地打开,但它还可以允许外部暴力破解工具更快地猜测文档密码,因为测试每个密码猜测所需的处理器周期更少。

适用于 Acrobat 9 PDF 1.7 ExtensionLevel 3 (2008),已在 Acrobat X PDF 1.7 ExtensionLevel 8(后来成为 ISO PDF 2.0)中修复。您可以在软件安全的 24 条致命罪中的第21中阅读该问题的一些背景信息PDF版本的具体细节可以在这里找到: https ://www.pdflib.com/pdf-knowledge-base/pdf-password-security/encryption/

总之:

  • PDF功能丰富,实现可能很复杂,这两者都会增加攻击面
  • 支持是多平台的,因为它仍然是事实上的文档格式,接近无处不在,使其成为一个受欢迎的目标。PDF 2.0 的 ISO 标准化进一步推动了这一点。
  • PDF 为攻击负载(Javascript、多媒体格式、字体、任意附件)提供了设计和意外的载体

与 Flash 一样,我一直担心 Adob​​e Reader 的浏览器集成方法对浏览器的攻击面没有任何积极作用。借助对 PDF 的本机浏览器支持,这个问题至少不再是 Acrobat 问题。

在Acrobat/Reader 的 CVE 统计数据中可以看到上述结果(加上标准 PDF 阅读器近乎传奇的膨胀)(但请注意,还有其他几个 Acrobat/Reader 变体具有单独的计数,并且这些统计数据在 2018 年左右停止)。