2023年,安全某头部电商平台的漏洞一名运维人员在做例行巡检时,发现一台边缘节点的检测CPU占用率持续在90%以上。他起初以为是工具流量突增,排查了半小时才意识到,安全服务器上多了一个从没见过的漏洞进程。事后溯源发现,检测攻击者利用了一个三周前公开的工具Log4j漏洞,而他们的安全安全扫描工具压根没覆盖那台边缘机器——因为资产清单里根本没登记它。
这不是漏洞孤例。安全漏洞检测工具最容易被忽视的检测问题,往往不是工具"扫不出来",而是安全"压根没扫到"。工具再强,漏洞资产盘点不到位,检测等于锁了前门,后窗大开。
扫描器到底在做什么
大多数人理解的漏洞扫描,就是工具对着目标IP跑一遍,然后吐出一份报告。实际流程比这复杂得多。以Nessus或OpenVAS这类主流工具为例,一次完整的扫描至少包含四个阶段:主机发现、端口扫描、服务识别、漏洞匹配。
主机发现靠的是ICMP、TCP SYN等探测手段。听着简单,但很多云环境默认禁ping,工具如果只依赖ICMP,结果就是"扫了个寂寞"。端口扫描阶段,全端口扫描(1-65535)和常见端口扫描(Top 1000)的差异,直接决定了你能不能发现跑在8443上的管理后台。服务识别更微妙——同样是80端口,跑的是nginx还是Tomcat,对应的漏洞库完全不同。指纹识别错一个版本号,后面的漏洞匹配全是白费功夫。
漏洞匹配环节最考验工具的功底。拿CVE-2021-44228(Log4j2的JNDI注入)来说,光靠版本号判断并不可靠,因为很多项目会backport补丁但版本号不变。好的工具会发一个带外DNS请求去验证,确认漏洞真实存在,而不是甩一堆误报让你自己去试。
误报比漏报更让人头疼
我见过一个安全团队,每周收到扫描器推送的3000多条告警。三个人轮班看,看了两个月,真正需要修复的不到5%。后来他们干脆把高危以下的全部忽略——结果漏掉了一个中危的SSRF,被攻击者拿去打内网,损失七位数。
误报的根源在于工具的设计哲学。有些工具追求"宁可错杀一千",把所有疑似项都报出来,把判断成本转嫁给用户。另一些工具偏保守,只报确认的漏洞,但可能放过需要多步验证才能触发的场景。选哪种,取决于你的团队规模和响应能力。五个人以下的团队,用高误报率的工具就是自残。
DAST和SAST,别指望一个工具全包
动态检测(DAST)在运行时找漏洞,能发现配置错误、认证缺陷这类静态分析看不到的问题。静态检测(SAST)直接读源码,擅长发现SQL注入、硬编码密钥这类问题。两者互补,但很多团队只上一个。
我接触过一家做SaaS的创业公司,他们只用了SAST,代码层面确实干净。但上线后发现,API的速率限制没配,攻击者可以无限撞库。这种问题SAST看不见,DAST一扫就出来。工具选型这件事,没有银弹,只有组合拳。
工具之外的事
漏洞检测工具的检出率再高,也解决不了一个根本问题:你不可能扫描你不知道的资产。影子IT、临时开的测试环境、离职员工没交回的云主机——这些才是真正的高危区。我自己的做法是,每季度做一次全网的资产测绘,用nmap加被动流量分析交叉验证,把扫描器的目标列表和实际资产做diff。这个习惯帮我发现过三台被遗忘的Redis,全都没设密码。
工具是死的,资产是活的。把资产管清楚,比换一个更贵的扫描器有用得多。
顶: 6251踩: 6






评论专区