这个 ZIP 文件能安全打开吗?解压前先检查
解压 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 多余文件的新压缩包,原始文件保持不变。推荐的操作顺序如下:
特殊情况
- 压缩包里套压缩包。 查看器只显示外层列表。请单独打开内层压缩包,并用同样的方法检查。
- 损坏的压缩包。 中央目录位于末尾,因此末尾损坏可能导致 ZIP 根本无法打开。这属于损坏问题,并不能证明压缩包是安全的。请检查是否损坏。
- 自解压文件。 附带程序的压缩包,通常命名为 .exe,本身就是一个程序。除非你信任其来源,否则不要运行。
- 列表干净不等于绝对安全。 整洁的列表只说明名称和大小看起来正常,并不能证明每个文件都无害。即使检查过,也不要运行来自不可信压缩包的程序。
由 AI 辅助翻译自英文原文。
评论
还没有评论。快来抢沙发。


