fixmint
ZH

这个 ZIP 文件能安全打开吗?解压前先检查

作者: · · 阅读约 4 分钟

解压 ZIP 文件之前,先检查一下。它的目录列表会列出每个文件的名称、大小以及压缩后缩小了多少。ZIP 包要捣乱时,列表里通常能看出五种迹象:解压后体积暴涨、文件名试图跳出所在文件夹、第二个扩展名掩盖真实类型、加密条目,以及真实类型与文件名对不上的文件。先查看 ZIP 内容,只解压你预期之内的文件。

ZIP 文件查看器这个 ZIP 里面有什么?免费使用

ZIP 目录列表显示什么

ZIP 把每个文件存为一个条目。压缩包末尾保存着一份列表,叫做中央目录,每个条目对应一条记录。每条记录包含条目的名称和路径、压缩前后的大小、压缩方法、一个叫 CRC-32 的校验值(根据内容计算出的短数字,用来发现损坏),以及该条目是否加密。

解压工具会先读取这份列表。ZIP 查看器只读取这份列表,所以无需解压就能看到里面有什么,压缩包里的任何东西也都不会运行。

Zip 炸弹:小文件解压后巨大

压缩的原理是用短代码替换重复的数据,所以重复越多,结果就越小。压缩比是原始大小除以压缩后大小。长段重复数据压缩效果极好,常见的 ZIP 方法可以把一长串相同字节压缩到约原来的千分之一。

Zip 炸弹正是利用了这一点。它是一个很小的压缩包,解压后能变成好几个 GB,有时还会把压缩包套压缩包来成倍放大体积。解压它会占满磁盘,甚至让电脑卡死。

普通文件能让你对常见压缩比有个概念。文本和代码能压缩很多,照片、视频以及本身已经压缩过的文件,如 .docx、.xlsx 和 .jpg,几乎压不小。如果一份本应是普通文档的文件,压缩比达到几百,就是警告信号。

试图跳出文件夹的名称

每个条目名称都可以包含文件夹。比如 ../../Startup/update.bat 会让解压工具往上走两级,写进启动文件夹,程序就会在每次登录时运行。这叫做路径遍历,也称“zip slip”。谨慎的解压工具会去掉 ../ 部分,但老旧工具和自制脚本未必会这样做。

以斜杠开头的名称,比如 /etc/... 或 C:\...,是同一类问题:它试图写入磁盘上的固定位置。查看器会按照压缩包里存储的原样显示名称,所以在任何内容被写入之前,你就能看到它们。

双扩展名与隐藏类型

文件名最后的扩展名,决定了系统认为它是什么类型的文件。invoice.pdf.exe 以 .exe 结尾,因此它是一个程序,哪怕名字开头看起来像 PDF。Windows 默认会隐藏已知文件类型的扩展名,于是这个文件在界面上可能只显示为“invoice.pdf”。

从文件开头的字节检查真实类型

每种文件类型都以几个特征字节开头。扩展名只是一个标签,任何人都可以改。检测文件的真实类型会读取这些开头字节,并与文件名进行比对。

类型开头字节(十六进制)
PDF 文档25 50 44 46(文本为 %PDF)
PNG 图片89 50 4E 47
JPEG 图片FF D8 FF
ZIP,以及 Word 或 Excel 文件(它们本质上是 ZIP)50 4B 03 04(文本为 PK)
Windows 程序4D 5A(文本为 MZ)

类型不匹配并不能证明文件有害,但它说明文件并不是名字所声称的那样,这已经足够让你停下来,查一查它从哪里来。

加密条目

带密码的条目会隐藏其内容。查看器仍能显示名称和大小,但里面的东西无法在这里检查,扫描工具也读不进去。这就是攻击者用加密压缩包来绕过过滤器的原因。银行对账单和税务表格也常常是有意加密的。如果发件人是你认识的人,请通过其他渠道索要密码,并且只在确定发件人身份后再打开压缩包。

Mac 和 Windows 产生的多余文件

有两类系统会添加你并未创建的文件:

  • macOS 会在一个隐藏的 __MACOSX 文件夹里为每个文件保存额外数据,并在文件旁边生成以 ._ 开头的文件,还会写入 .DS_Store 文件来保存访达的视图设置。
  • Windows 会添加 Thumbs.db(缩略图缓存)和 desktop.ini(保存文件夹显示设置)。

这些文件本身无害,但会让压缩包变得杂乱,也会让收到它的人感到困惑。

发送前先清理压缩包

清理 ZIP会生成一个去掉 Mac 和 Windows 多余文件的新压缩包,原始文件保持不变。推荐的操作顺序如下:

  1. 在 ZIP 查看器中打开压缩包,逐一查看每个名称。
  2. 用文件类型检测检查名称或类型看起来不对的文件。
  3. 清理压缩包,然后打开清理后的副本,确认里面仍然是你想发送的内容。
  4. 发送清理后的副本。

特殊情况

  • 压缩包里套压缩包。 查看器只显示外层列表。请单独打开内层压缩包,并用同样的方法检查。
  • 损坏的压缩包。 中央目录位于末尾,因此末尾损坏可能导致 ZIP 根本无法打开。这属于损坏问题,并不能证明压缩包是安全的。请检查是否损坏。
  • 自解压文件。 附带程序的压缩包,通常命名为 .exe,本身就是一个程序。除非你信任其来源,否则不要运行。
  • 列表干净不等于绝对安全。 整洁的列表只说明名称和大小看起来正常,并不能证明每个文件都无害。即使检查过,也不要运行来自不可信压缩包的程序。

由 AI 辅助翻译自英文原文。

评论

    还没有评论。快来抢沙发。

    你的评分(可选)

    你的邮箱不会被显示或保存。

    Digital Workflow Toolkit 的封面Digital Workflow Toolkit

    一套食谱、模板和模式,用于串联小型文件任务(转换、重命名、压缩、合并),让工作流每次都以相同的方式运行。

    $19.00在 Gumroad 获取英文阅读