某电商平台去年被拖走的网站用户数据,源头不是安全0day,而是检测一个三年前就该打补丁的Struts2漏洞。扫描报告里它躺在“高危”栏里,漏洞没人点开看。扫描这事说明一个问题:漏洞扫描的风险分布风险等级,如果只当标签看,等级迟早出事。网站
我见过太多扫描器输出的安全表格,满屏红黄蓝绿,检测像超市货架。漏洞CVSS评分7.5以上标红,扫描4到6.9标黄,风险分布以下标蓝。等级这套规则本身没问题,网站问题出在“谁在看”和“看了之后干什么”。运维扫完导出PDF,扔给安全部;安全部批注“已阅”,归档。循环往复。真正被利用的漏洞,往往不是分数最高的那个,而是最容易被脚本小子批量利用的那个——比如未授权访问的Redis,CVSS可能只有5.0,但攻击成本几乎为零。
扫描器报“远程代码执行”就一定是紧急?得看上下文。一个内网测试环境的Jenkins未授权,和面向公网的WebLogic反序列化,同样标红,处理优先级差三个数量级。我习惯先看资产标签:有没有暴露在互联网、有没有WAF、是不是核心业务。去年帮一家公司做应急,扫描列表里高危有47个,真正需要当天修的只有两个——一个公网Shiro反序列化,一个数据库弱口令。剩下的要么在内网隔离区,要么需要复杂前置条件。盲目全修,团队连轴转三天,结果漏了那个真正被利用的。
中危漏洞是重灾区。XSS、CSRF、信息泄露——扫描器给5.3分,报告里黄色一片。开发觉得“又不是RCE”,排期排到下季度。但攻击链往往从这里开始。某次红队评估,入口就是一个中危的反射型XSS,配合社工拿到后台权限,再通过后台的文件上传(高危)拿下服务器。中危是跳板。我的做法:中危漏洞按“可利用性”二次分级。能直接获取敏感信息(比如Swagger接口泄露、.git源码泄露)的,提到高危处理;需要用户交互且无敏感数据的,可以缓,但必须记录在案。
低危漏洞经常被一键忽略。但有些信息类发现比漏洞更值钱。比如扫描器报“服务器版本泄露”,低危;可如果版本号对应一个已知的、但扫描器没检测出来的漏洞呢?我遇到过Apache 2.4.49,扫描器只报了版本泄露,但那个版本有路径穿越CVE-2021-41773。人工看一眼版本号,直接提权到高危。低危是线索,不是垃圾。另外,开放端口、目录列表、备份文件——这些在扫描器里可能连低危都算不上,但实战中经常是突破口。
漏报比误报更危险。某次客户坚持说“扫描器没报,肯定没问题”,我手动测了一下,一个SQL注入点,扫描器因为参数编码问题没触发。风险等级分布图看起来干干净净,实际上一堆盲区。我的习惯:扫描器结果只信70%,剩下30%靠手工验证——尤其是登录后的功能、API接口、业务逻辑漏洞。扫描器不懂你的业务,它只匹配规则。
风险等级是参考,不是判决书。真正决定优先级的,是资产重要性、暴露面、攻击成本和漏洞利用的难易程度。扫描报告可以自动生成,但修复顺序得靠人脑判断。别让颜色牵着走。