大多数安全团队扫描归档文件的方式是错误的
若询问大多数安全团队如何处理收到的ZIP文件,你得到的答案往往如出一辙:“我们会对其进行扫描。”他们的意思是,其反恶意软件或EDR解决方案会读取压缩包的头部信息,提取内容,并扫描已知的威胁。问题在于,大多数扫描引擎都会信任压缩包自身申报的信息。多年来,攻击者一直深谙如何利用这一漏洞。
2026年初,研究人员公布了一项名为“僵尸ZIP”(CERT/CC安全通告编号VU#976247和 CVE-2026-0866)的技术细节,展示了如何通过一个故意畸形的ZIP压缩包绕过98%的反恶意软件引擎。 这种规避机制无需利用零日漏洞或国家级的攻击工具,仅需一个十六进制编辑器,以及对大多数安全工具解析归档元数据时存在疏漏的理解。
什么是 Zombie ZIP
“僵尸ZIP”是一种利用ZIP归档格式结构不一致性的规避技术。它并非依赖于特定应用程序或操作系统的漏洞,而是利用ZIP规范本身,在归档文件的声明结构与其实际内容之间制造差异,从而能够绕过跨平台的扫描器。
标准的 ZIP 归档文件使用一个名为“压缩方法”(Compression Method)的头字段来指示存储数据的编码方式。当 Method=0 时,表示数据以未压缩形式存储;而 Method=8 则表示采用 DEFLATE 压缩。Zombie ZIP 会故意将该字段设置为 Method=0,即使其有效载荷实际上仍采用 DEFLATE 压缩。CRC-32 校验和是基于未压缩数据计算的,而非归档文件中实际存储的压缩字节。
结果是一个声明结构与其实际内容不符的归档文件。大多数安全工具缺乏验证这种不一致的机制。
Zombie ZIP 是如何实现规避的
当安全扫描器遇到“僵尸 ZIP”文件时,它会从文件头读取声明的压缩方法,将有效载荷视为原始未压缩字节,并扫描这些字节以查找已知的恶意特征码。由于有效载荷实际上是经过 DEFLATE 压缩的,扫描器读取到的是一组高熵压缩数据,该数据与任何特征码都不匹配。因此,它会返回“安全”的判定结果,并放行该文件。
攻击者在目标系统上的加载器运作方式有所不同。它会忽略声明的方法字段,强制将数据流作为 DEFLATE 格式进行解压,并完整恢复有效载荷。

- 攻击者将 ZIP 头部设置为 Method=0(STORED),而实际有效载荷仍保持 DEFLATE 压缩格式。CRC-32 校验和也被故意设置为不匹配。
- 杀毒软件或EDR扫描程序读取到Method=0,将有效载荷视为原始字节,仅检测到压缩噪声,未匹配到任何特征码,并返回“无威胁”的判定结果。
- 一个由攻击者控制的自定义加载器会忽略声明的方法,强制解压 DEFLATE 流,并恢复完整的有效载荷以供执行。
- 有效载荷已在终端设备上部署——无论是勒索软件、远程访问工具(RAT)还是凭证窃取器——而所有边界扫描器均报告该文件为干净文件。系统未触发任何警报。
大多数扫描引擎都会无条件地信任归档文件的元数据。它们处理的是文件自称的类型,而非其实际内容。这种假设不仅适用于 ZIP 格式,更是攻击者在多种归档格式中加以利用的漏洞。
声明的格式与实际格式不一致
Zombie ZIP 是“格式混淆”这一更广泛攻击类别的一个例子。攻击者通常会:
- 将可执行文件重命名为具有无害扩展名的文件(例如将 .exe 改为 .pdf,将 .js 改为 .txt)
- 嵌入同时符合两种不同格式的多语言文件
- 使用许多扫描程序会完全跳过的冷门或过时的归档格式(如 RAR4、ACE、ARJ,以及带有非标准头信息的 7z)
- 在存档中嵌套存档,以耗尽扫描器的递归限制
- 仅对元数据进行恰到好处的篡改,以使归档文件无法被扫描,从而导致许多工具会默默放行该文件,而非将其拦截
这些技术都利用了同一个根本性缺陷:依赖文件自身的声明,而非对其实际结构进行深入验证。
一旦穿透,会发生什么
CERT/CC VU#976247 正式确认,归档扫描层存在一个结构性盲点,该漏洞已在实际运行的勒索软件和远程访问木马(RAT)攻击活动中被利用。
一个通过外围检测的“僵尸压缩包”可以在不触发警报的情况下,将勒索软件释放器、远程访问工具或凭证窃取程序植入终端设备。在文件频繁跨越信任边界的行业中——例如处理客户文件的金融服务、接收保险单的医疗系统以及处理承包商提交文件的政府机构——这种风险始终存在,且在常规扫描下难以察觉。
如何检测和防范僵尸ZIP文件
检测到格式错误的归档文件固然有用,但仅靠检测是不够的。最有效的应对措施是将归档文件的重建纳入清理流程中。
该平台不会直接信任收到的归档文件,而是将其内容提取到受控环境中,检查每个提取的文件,并根据经过验证的内容重建一个干净的归档文件。生成的输出文件是从头开始构建的,并带有准确且格式规范的元数据。
这种方法消除了“僵尸 ZIP”攻击途径。由于文件头是由净化引擎生成的,因此不存在会误导扫描器的畸形文件头。原始归档文件是否声明了 Method=0 或使用了 DEFLATE 压缩都无关紧要,因为重建过程首先需要成功解压。如果符合标准的解压工具无法解压有效载荷,则该文件会被拦截,而非放行。
借助OPSWAT MetaDefender Core™实现分层防护
要有效抵御“僵尸ZIP”和文件格式混淆攻击,仅靠单一检测方法是远远不够的。MetaDefender Core 依次Core 三项技术:文件类型检测、压缩包解压以及 Deep CDR™ 技术。每项技术针对威胁的不同维度,三者协同作用,弥补了基于签名的扫描无法覆盖的结构性漏洞。

文件类型检测是验证的第一步。它不会直接采信声明的文件扩展名或文件头,而是通过魔术字节分析、格式感知解析以及经过专门训练以识别伪造或不匹配类型的AI模型,对文件的实际字节结构进行分析。在“僵尸ZIP”中,声明的Method=0与压缩有效载荷的高熵内容在结构上存在不一致,这种不匹配在该阶段即可被检测到。
归档提取操作直接处理实际数据流,而非依赖声明的元数据。该操作要么成功提取内容以进行逐文件扫描,要么因循环冗余校验(CRC)不匹配而将归档标记为无法提取。通过可配置策略,可以决定提取失败时是阻塞操作,还是无提示地跳过。
Deep CDR™ 技术会对每个提取的文件进行净化处理,并基于经过验证的输出结果重建压缩包。该技术在保留文档可用性的同时,会移除潜在的恶意动态内容,包括宏、嵌入式脚本和漏洞利用代码。生成的压缩包完全由净化引擎生成,因此不会继承原始文件中存在的结构错误。
主要收获
- 扫描前请先验证文件类型。Zombie ZIP 利用了“声明的文件类型等于实际文件类型”这一假设。文件类型检测功能会在任何签名扫描运行之前,就发现结构不匹配的情况。
- 在做出决定前请先解压。不解压内容就扫描压缩包,相当于扫描的是容器本身,而非其中的有效载荷。解压压缩包可以显示其内部的实际内容,以便对每个文件进行检查。
- 重建,而非仅进行检查。Deep CDR™ 技术会对每个文件进行清理,并从头开始重建归档文件。由于原始归档文件的元数据均未被保留,因此生成的文件不会包含任何结构异常。
- 应将解压失败视为阻塞条件。对于无法被符合标准的解压工具解压的“僵尸 ZIP”文件,应予以阻塞并标记,而非将其作为损坏文件默默放行。
- 请配置您的平台,而不仅仅是签名规则。Zombie ZIP 设计上就旨在规避基于签名的扫描。应对之策是配置工作流,在文件进入环境的每个环节强制执行解压、类型验证和数据净化。
