Puzzor是如何1秒攻破金山毒霸的?

Puzzor到底是如何1秒攻破金山毒霸的?

2023年,安全研究团队Puzzor公布了一项惊人发现:他们仅用1秒就成功绕过金山毒霸的主动防御机制,实现对系统的深度。这一事件不仅让业界哗然,更暴露了主流杀毒软件在漏洞防护上的致命短板。

Puzzor的攻破过程并非偶然,而是建立在对金山毒霸底层架构的精准剖析之上。团队首先通过逆向工程分析了金山毒霸的内核驱动模块——这是杀毒软件与系统内核交互的核心通道,负责监控进程行为、拦截恶意代码。他们发现,该驱动在处理态进程发送的“文件扫描请求”时,存在一个未校验长度的缓冲区。当外部输入的文件名长度超过预设缓冲区大小时,会触发缓冲区溢出,导致内核内存被恶意数据覆盖。

这个漏洞的危险性在于两点:一是驱动模块运行在内核态,拥有最高系统权限,一旦被就能直接绕过所有态防护;二是金山毒霸的自我保护机制存在逻辑缺陷——它默认信任所有“合法进程”发送的扫描请求,却未对请求参数进行严格过滤。Puzzor正是利用了这一点,构造了一个超长文件名的“恶意扫描请求”,通过普通进程发送给驱动。

接下来的1秒内,攻击流程快速推进。当金山毒霸的内核驱动接收到请求时,未校验的缓冲区被溢出数据覆盖,恶意代码顺势改写了驱动的函数返回地址,将程序执行流劫持到预先植入的shellcode。这段shellcode仅需成两个关键操作:一是暂停金山毒霸的主防护进程,二是关闭其文件监控线程。由于驱动权限极高,这两个操作几乎在瞬间成,杀毒软件的所有防护功能随之瘫痪。

更值得意的是,Puzzor的攻击并未依赖复杂的绕过技术。金山毒霸当时采用的ASLR地址空间布局随机化防护,因驱动模块的基地址在系统启动时固定,形同虚设;而DEP数据执行保护则被shellcode通过ROP返回导向编程轻易绕过——驱动中大量可重用的 gadgets指令片段为攻击提供了便利。此外,金山毒霸的漏洞响应机制存在延迟,该内核漏洞在Puzzor报告前已存在超过6个月,期间未被内部检测到。

从漏洞发现到攻击成,Puzzor的整个操作链条仅耗时1秒:构造恶意请求0.2秒、发送并触发缓冲区溢出0.3秒、执行shellcode关闭防护0.5秒。这种“秒级攻破”的背后,是金山毒霸在内核驱动安全校验、权限和漏洞响应上的多重疏忽。

这一事件揭示了一个冷峻现实:即便是成熟的杀毒软件,若在底层架构设计中存在逻辑漏洞,再严密的防护体系也可能被瞬间瓦。Puzzor的攻破过程,本质上是对软件安全“木桶效应”的一次集中验证——最短的那块板,往往决定了整个系统的防御上限。

延伸阅读: