当前位置:首页 > 时尚

漏洞扫描无法发现所有漏洞

凌晨两点,漏洞漏洞某金融公司安全主管老周盯着屏幕上的扫描扫描报告,眉头拧成了疙瘩。无法报告显示“全部通过”,发现可三小时前,漏洞漏洞攻击队明明用一个小众的扫描CMS漏洞摸进了内网。这种打脸场景,无法在行业里反复上演。发现

漏洞扫描器的漏洞漏洞原理,本质是扫描拿着已知漏洞的“通缉令”去比对系统指纹。它认得出那些挂过号的无法、有CVE编号的发现、被厂商发过通告的漏洞漏洞“惯犯”。可真正的扫描威胁,往往穿着新衣服。无法零日漏洞自不必说,就连那些老漏洞的变种,稍微改改参数、换种触发方式,扫描器就认不出来了——它的比对规则是死的,攻击者的脑子是活的。

我见过最典型的案例,是一家电商公司。他们的扫描器每周跑一次,每次都是绿油油一片。结果被攻击者利用了一个log4j的老漏洞——不是那个被炒翻天的CVE-2021-44228,而是它后续衍生出的、未收录进扫描规则库的绕过变种。攻击者把JNDI查询的格式做了URL双重编码,扫描器傻眼了,但业务系统照样执行了。事后复盘,扫描器日志显示“未发现风险”,那行绿色字体,现在看起来格外刺眼。

再说说扫描器的“视力”问题。它站在网络层,看到的是端口、服务、响应头。但真正的漏洞往往藏在业务逻辑里——越权访问、验证码绕过、支付金额篡改。这些事,扫描器根本看不见。它连登录页面后面的东西都摸不着,除非你配置了复杂的登录流程模拟,可就算配置了,面对多步操作、动态token、人机验证,它照样抓瞎。有个做OA系统的朋友跟我说过,他们的扫描器能扫出SQL注入,但扫不出“普通员工能查看CEO日程”这种权限漏洞——后者才是真正致命的。

还有一层尴尬:扫描器跑完,给出的是一堆“可能存在的风险”。安全人员得挨个验证,很多是误报。我见过某单位的扫描报告,两千条告警,最后人工确认真正有效的不到二十条。剩下的全是“疑似”“可能”“建议确认”。这就像用渔网捞鱼,捞上来一堆水草和破鞋子,真正的鱼反而从网眼溜了。时间都花在筛垃圾上,哪还有精力去挖深层问题?

更现实的是,扫描器只能扫出“它知道的漏洞”。新漏洞从公开到被写进扫描规则,中间隔着时间差。这个窗口期,攻击者在疯狂利用,而你的扫描器还在傻乎乎地按老剧本检查。说白了,扫描器是个勤奋但迟钝的哨兵,它尽职尽责,但视野有限。你不能指望一个哨兵替你把所有潜入者都揪出来——它连敌人都长什么样都不知道。真正靠谱的做法,是把扫描结果当参考,配合渗透测试、代码审计、威胁情报,甚至偶尔让安全人员像攻击者一样去“胡思乱想”。毕竟,漏洞的藏身之处,往往在规则覆盖不到的暗角里。

分享到: