跳到主要内容
ConvertOwl
技术阅读需 1 分钟作者 ConvertOwl

PDF 文件会携带病毒或恶意软件吗?

会的,PDF 确实可能携带恶意软件,但方式和多数人想的不一样。了解 PDF 漏洞利用的真正原理,以及如何安全打开可疑文件。

像素风格的猫头鹰拿着放大镜检查一个 PDF 文件图标,旁边浮现出骷髅头警告标志

一封来自陌生人的邮件里附了一个 PDF,那句老话立刻浮现在脑海:不要打开陌生人发来的附件。这条建议原本是针对 .exe 文件的,但 PDF 其实也曾真实携带过恶意软件,从以简历为幌子的钓鱼工具包,到国家支持的高级漏洞利用都有先例。老实说,答案是肯定的:PDF 确实可能带来危险,但不是大多数人想象的那种方式。了解真正的攻击机制,才能分辨出一个危险文件和一个普通文件的区别。

那么 PDF 真的会感染你的电脑吗?#

会,不过 PDF 本身并不是可执行代码:它是一种文档格式,查看它并不会像双击 .exe 文件那样运行程序。危险来自 PDF 支持的三种超出纯文本和图片范畴的特性:

  • 嵌入式 JavaScript。 PDF 规范允许在文档内嵌入脚本,最初是为了实现表单字段自动计算之类的功能。恶意脚本可能在文件于存在漏洞的阅读器中打开的那一刻就运行。
  • 嵌入文件和启动操作。 PDF 可以在内部捆绑另一个文件(一个 .docx、一个 .zip,甚至一个可执行文件),并提示查看者打开它。PDF 本身是无害的,真正的载荷是它诱导你启动的那个东西。
  • 阅读器软件本身的漏洞。 历史上真正的更大风险其实根本不在 PDF 格式本身,而在解析它的阅读器软件里的漏洞。一个畸形的 PDF 可能触发旧版 Adobe Reader 或类似软件中的内存损坏漏洞,让攻击者代码在你除了打开文件之外不做任何操作的情况下运行。

这也是为什么关于 PDF 恶意软件的新闻标题通常点名某个具体的、未打补丁的阅读器版本,而不是笼统地指责"PDF"这个格式。文件只是投递工具,真正的漏洞在打开它的软件里。

为什么攻击者偏爱用 PDF#

攻击者喜欢 PDF 的原因和所有人一样:它能在任何设备上打开,不会弹出"你信任这个应用吗"的提示;它看起来很正式;而且大多数人已经习惯了对 .exe 文件保持警惕,却没有对文档养成同样的防备心。一个伪装成发票、物流通知或简历的 PDF,能轻松绕过那种一个装满可执行文件的 .zip 根本过不了的心理防线。

如何判断一个 PDF 是否真的有风险#

比文件扩展名更重要的是以下几个信号:

  1. 文件来源。 来自陌生发件人的意外 PDF,尤其是催促你"启用内容"或点击文件内部链接的,是迄今为止风险最高的模式。
  2. 它是否要求你做某件事。 一个只是显示文字和图片的 PDF 本身做不了太多事。如果它提示你打开嵌入的附件、点击链接"验证"某事,或启用宏/JavaScript,那就是在向你索要它自己无法触发的那一步。
  3. 你的阅读器补丁版本。 大多数 PDF 漏洞利用针对的都是已经修复的特定已知漏洞。让你的阅读器(Adobe Acrobat、Preview、浏览器自带的查看器)保持最新,就能挡住绝大多数真实世界的攻击,因为攻击工具包大多重复利用已知漏洞,而非全新漏洞。

查看陌生 PDF 最安全的方式#

包括 Chrome、Firefox 和 Safari 内置查看器在内的基于浏览器的 PDF 查看器,对于一个你不完全信任的文件来说,比专门的桌面阅读器要安全得多。浏览器的 PDF 渲染引擎运行在系统访问权限受限的沙盒中,而且值得注意的是,大多数默认禁用嵌入式 JavaScript 的执行。如果你不只是想看一眼,而是需要真正处理这个文件(压缩、拆分、提取图片),使用一个完全在本地处理的浏览器工具会更安全:使用ConvertOwl 的压缩 PDF 工具时,文件永远不会离开你的设备或被上传到服务器,所以即使是一个你不太确定的文件,在处理过程中也不会被交给第三方。

如果一个 PDF 带有密码保护而你并没有预期到这一点,应该把它当作更强的警示信号,而不是对你有利的安全特性。合法的密码保护 PDF(税务文件、人力资源表格)很常见,但保护本身丝毫不能阻止文件携带嵌入式威胁。我们关于 PDF 密码保护实际能保护什么 的指南详细说明了这种保护在哪些方面有用,在哪些方面没用。如果你从可靠来源收到了一个受保护的文件,只是需要打开它,解锁 PDF 会在你的浏览器中本地移除密码,不会把文档发送到任何地方。

真正能降低风险的做法#

  • 保持 PDF 阅读器更新。 这能堵住大多数真实攻击所依赖的漏洞,因为攻击工具包绝大多数针对的是已知的、已修复的漏洞,而非零日漏洞。
  • 除非确实需要,否则不要在 PDF 阅读器中启用 JavaScript 或宏。 日常的 PDF(发票、表格、报告)几乎从不需要脚本才能正常显示。
  • 对任何要求你点击、启用或打开其他内容的 PDF 保持警惕。 一个只是展示内容的 PDF 是在做它该做的事;一个要求进一步操作的 PDF,是在索要它自己无法完成的那一步。
  • 查看陌生文件时优先选择浏览器标签页而非专用桌面阅读器,需要真正处理文件时使用基于浏览器的工具,因为这样文件不会离开你的设备。

常见问题#

仅仅打开一个 PDF 文件就会感染病毒吗?#

在极少数情况下会,前提是你的 PDF 阅读器存在一个未打补丁的漏洞,而这个恶意 PDF 正是专门针对这个漏洞设计的;但这需要一个过时的阅读器和一次有针对性的漏洞利用,并不是打开任何 PDF 都会遇到的常规风险。

PDF 在避免恶意软件方面比 Word 文档更安全吗?#

两种格式本身都不算更安全,因为它们都支持嵌入脚本,也都出现过真实的漏洞利用案例;Word 的宏攻击如今更常见,因为把宏武器化比利用 PDF 的 JavaScript 更容易,但潜在的风险模式(过时的阅读器加上一个要求你启用某项功能的文件)是一样的。

杀毒软件能查出恶意 PDF 吗?#

大多数杀毒软件会扫描 PDF,能识别已知的恶意软件特征和常见的漏洞利用模式,但可能漏掉全新、从未出现过的漏洞利用,这也是为什么保持阅读器更新和安装杀毒软件同样重要。

打开来自陌生发件人的 PDF 附件安全吗?#

比运行一个可执行文件风险要低,但并非零风险,尤其是当这个 PDF 提示你启用内容、点击嵌入的链接或打开捆绑的附件时。用浏览器标签页而不是桌面阅读器打开,能进一步降低风险。

压缩或转换 PDF 能去除其中的恶意软件吗?#

不能可靠地做到这一点,因为重新编码 PDF 中的图片不一定能清除嵌入的 JavaScript 或捆绑的文件,所以一个可疑的 PDF 应该被扫描或直接避免打开,而不是指望通过转换工具"清洗"干净。

为什么密码保护的 PDF 仍然会被标记为有风险?#

密码只是限制谁能打开这个文件,它完全不会检查或限制文件打开之后能做什么,所以一个来自陌生发件人的受保护 PDF,和未受保护的一样,都带有相同的嵌入式威胁风险。

简而言之#

  • PDF 携带恶意软件的方式是通过嵌入式 JavaScript、捆绑文件,或利用过时阅读器软件中的漏洞,而不是因为它本身就是可执行文件。
  • 单一的最大风险因素是未打补丁的 PDF 阅读器;大多数真实攻击针对的都是已知的、已修复的漏洞。
  • 一个意外收到的、要求你启用内容、点击链接或打开内部捆绑内容的 PDF,是最明显的警示信号。
  • 用浏览器标签页查看陌生 PDF,并使用 压缩 PDF保护 PDF解锁 PDF 这类本地化、基于浏览器的工具处理文件,能让文件在整个过程中都不接触第三方服务器。

想了解文件格式底层的更多工作原理,可以浏览博客的技术分类

试用这些工具

免费、私密、即时 - 一切都在你的浏览器中运行。

像素风格的猫头鹰看着一个装有照片、音乐和文档的100MB文件夹压缩后只变成96MB
技术1 分钟

为什么ZIP文件压缩不了多少?

把一堆照片或视频打包成ZIP,体积几乎不变。这里讲清楚为什么ZIP对已经压缩过的文件几乎榨不出什么空间。