ArrayKit

PDF 净化

看清陌生发件人的 PDF 能运行什么,把它清掉,再把保存出来的副本读回来,证明它确实干净。

PDF 净化

看清陌生发件人的 PDF 能运行什么,把它清掉,再把保存出来的副本读回来,证明它确实干净。

你不信任的文档在这个标签页里被读取、剥离和复查,从不交给阅读器打开,也从不发往任何地方。脚本只被当作文本检查,绝不会被执行。

看看文档透露了你的哪些信息

关于 PDF 净化

PDF 与其说是页面,不如说也是一个小程序。它可以藏一段文档一打开就运行的脚本、一个在机器上启动另一个程序的动作、一个把填好的表单提交到作者指定地址的按钮、一整个作为附件内嵌的可执行文件,以及一层自带脚本能力的 XML 表单。凡是动作可能藏身之处,这里都会走一遍——打开动作,文档、页面、注释和表单域的触发器,书签,文档级脚本树——而且链条会被追到尽头,所以第一步无害、后面排着一个启动动作的组合照样会被抓住。每一条发现都会说明它住在哪里、指向什么、是否需要点击。选定该走的东西,重写出来的副本会从它自己的字节被读回来,再扫描一遍。

功能特性

  • 十个类别,分为高、中、低三级,高和中默认勾选
  • 每一条发现都显示它位于何处、指向什么,以及是否无需点击就会运行
  • 动作链条会被一路追下去,没有什么能藏在一个无害的第一步后面
  • 名字像程序的内嵌文件会与普通附件分开列出
  • 对文件字节做一遍原始关键字扫描,并解出用 #xx 转义伪装的名称
  • 清理后的副本会被重新载入并再次扫描,只有一无所剩才标为干净
  • 可一次处理多个 PDF,逐个下载或一起打包成 ZIP
  • 对每一项清除会改变什么给出警告,例如某个表单不再自动计算

如何使用 PDF 净化

  1. 拖入一个或多个 PDF;每一个到达时都会被读取并扫描
  2. 逐条看过发现,想要第二种意见就打开原始关键字计数
  3. 取消勾选你需要保留的——网页链接和元数据默认不勾
  4. 执行净化,读一遍重新扫描的结果,然后下载清理好的副本

示例

输入

invoice_urgent.pdf — unexpected, from a sender nobody recognises

输出

6 findings: 2 scripts that run on opening, 1 launch action, 1 attachment named invoice.pdf.exe, 1 web link, document information · after sanitizing, the re-scan is clean

两段脚本都在文档打开的那一刻就跑了,用不着点任何东西。

常见错误与故障排除

  • 净化之后表单不再自动求和了。 — 它的合计是靠脚本算出来的,而脚本已经走了。如果你确实需要这些算式,请取消勾选 JavaScript 再跑一次——同时要知道,这一类正是最常被用来携带攻击的。
  • 加密的 PDF 被扫描了,却始终没被清理。 — 带密码保护的文件在被打开之前无法重写。先用 PDF 解密去掉密码,再把结果拿回来这里。
  • 关键字表里列出的名称,发现列表里却没有。 — 它们回答的是不同的问题。关键字扫描统计原始字节里出现的名称,包括位于无人指向的对象中的;而发现列表只包含文档实际能触及的东西。
  • 表单现在只显示一页「Please wait…」,别的什么都没有。 — 整个表单都活在 XFA 层里,而普通页面只是那页占位提示。如果你必须填这份表单,就保留 XFA 层——并对它保持警惕,因为它同样带有脚本能力。

常见问题

PDF 里的哪些东西算活动内容?
凡是做事而不是显示的东西:脚本,打开、关闭、保存或打印时触发的触发器,启动程序或提交表单的动作,打开另一个文件的链接,内嵌文件,XFA 表单层,以及富媒体和 3D 对象。
PDF 真的能在我打开的那一刻就运行什么吗?
它可以尝试。打开动作以及文档和页面触发器全都无需点击就会触发,正因如此它们在这里被单独计数。阅读器是否照办取决于它的设置,但那条指令无论如何都写在文件里。
清除 JavaScript 会弄坏文档里的表单吗?
可能会。合计、日期与数字的格式化,以及对你输入内容的检查,都是脚本做的,这些都会停止。字段本身和已经填好的内容不受触动,而这个取舍在你动手之前就会讲清楚。
我怎么知道清理后的副本真的干净?
因为这一点不靠信任。重写出来的字节会被当作一份新文档重新载入,从头再扫描一遍,只有第二次扫描一无所获的文件才被标为干净。你看到的数字就是这第二次的读数。
为什么名字以 .exe 结尾的附件与其他附件区别对待?
因为打开它就会运行代码,而表格或图片都不会。凡是以可执行扩展名结尾的——.exe、.js、.bat、.ps1、.vbs 以及另外二十几种——都被评为高级而不是中级,并单独列出。
净化会改变页面的样子吗?
不会。页面内容不被触动,所以文字、图形和版面都原样通过。消失的是行为:失去用途的多媒体播放器和链接会被丢掉,而元数据只有在你要求时才会走。

相关工具

  • PDF 隐私扫描 — 找出 PDF 里隐藏的元数据与个人信息。
  • PDF 附件 — 列出、提取、添加或删除 PDF 内部嵌入的文件。
  • PDF 检查器 — 查看 PDF 的版本、页面尺寸、字体、表单、安全性与标准声明。
  • 删除 PDF 批注 — 剥掉评论、高亮、手绘和图章,链接可保留。
  • PDF元数据编辑器 — 查看、修改或清除PDF的标题、作者等字段。
  • 解密 PDF — 移除已加密 PDF 的密码保护。
  • PDF 拍平 — 把填好的表单字段固定进页面内容。
  • 文件哈希校验和 — 计算文件的 MD5、SHA-256 等并核对预期值

更多安全工具

查看全部安全工具 (27) · 全部工具