2021年12月,攻击Apache Log4j2 被曝出一个远程代码执行漏洞,攻击CVSS评分10.0。攻击那几天安全圈几乎没人睡觉。攻击运维在凌晨三点爬起来改JVM参数,攻击安全工程师在群里疯狂转发临时缓解方案,攻击攻击者也没闲着——他们比防守方更快地扫描到了全球暴露在公网上的攻击Log4j服务。这就是攻击Nday攻击的经典画面:漏洞补丁已经发布,但攻击者利用的攻击是那些还没来得及修补的系统。
Nday,攻击全称"1-day",攻击指的攻击是已经公开披露但尚未被广泛修复的漏洞。它和0day最大的攻击区别在于:0day是攻击者手里攥着、厂商还不知道的攻击牌;Nday是牌已经摊在桌面上了,所有人都能看到,攻击但桌上还有大量玩家没来得及换牌。
很多人有个误解,觉得漏洞公开了、补丁发了,威胁就解除了。现实恰恰相反。漏洞公开的那一刻,才是大规模攻击的起点。安全研究者发布PoC(概念验证代码),攻击者拿到PoC后稍作修改就能武器化,自动化扫描工具随即全网撒网。从补丁发布到首次在野利用,这个窗口期在近几年已经缩短到以小时计。
2017年的Equifax数据泄露是个典型。Apache Struts 2 的一个漏洞在3月被修补,Equifax的安全团队确实收到了通知,但内部流程出了问题,补丁没有及时部署。攻击者在5月利用这个Nday漏洞入侵,1.47亿人的个人信息被泄露。不是没有补丁,是补丁没打上。
Nday攻击之所以有效,根本原因不在技术层面,而在管理层面。一个中型企业可能有几百台服务器、上千个容器实例、几十种中间件。每次漏洞披露,安全团队要做的不是"修一个漏洞",而是"在几百个地方确认这个组件是否存在、版本是否受影响、修复方案是否兼容现有业务"。这个过程的复杂度远超外人想象。
更麻烦的是资产清点本身。很多公司根本不知道自己跑了哪些服务。影子IT、遗留系统、外包团队部署的组件——这些东西不在CMDB里,扫描器也未必覆盖得到。攻击者用Shodan或者FOFA搜一下,反而比内部安全团队更清楚暴露面。
我观察到一个现象:每次大漏洞爆发后,真正被攻破的往往不是那些没有安全团队的小公司,而是那些"有安全团队但流程僵化"的中大型企业。小公司可能因为系统简单,一个脚本就全量更新了。大企业要走变更审批、要过测试环境、要等维护窗口,等一切走完,攻击者早就进来了。
防守方在Nday面前的核心困境是时间不对称。攻击者只需要找到一个没打补丁的点,防守方需要确保所有点都打上补丁。这种不对称意味着,即使修复率达到95%,剩下的5%仍然是敞开的门。而攻击者的扫描器不会累,不会放假,7×24小时在找那扇门。
有人寄希望于虚拟补丁——在WAF层面拦截利用流量,争取修复时间。这确实有用,但虚拟补丁的规则依赖对攻击手法的准确理解。稍微变形一下payload,规则就可能被绕过。它是一层缓冲,不是替代方案。
说到底,Nday攻击考验的不是某个安全产品的能力,而是整个组织的响应速度和执行力。漏洞永远会存在,补丁永远会延迟,攻击者永远在扫描。能做的,无非是把从"漏洞公开"到"修复完成"的这条链路,压缩得再短一点,再短一点。
顶: 5331踩: 3938






评论专区