扫描器没告警就安全吗?
TOPIC SOURCE
JavaSecLab 隔离靶场搭建与工具评估教程:从易受攻击/已修复代码对照到 SAST/DAST 验证
扫描器没告警,顶多说明“这次扫描没有发现问题”,离“系统安全”还差一截。就像小区保安巡楼时没看到异常,不代表每扇门都检查过,更不代表屋里一定没有隐患。扫描结果首先反映的是扫描范围、规则、入口和运行条件,而不是系统安全的全部答案。
SAST 主要看源码里的风险模式和数据流,DAST 则观察运行中应用的外部行为。两者关注点不同,不能互相替代。比如,DAST 没有告警,可能是爬取范围不够、认证状态不对、路由没有覆盖,或者请求根本没到达漏洞所在的处理逻辑。SAST 报了警,也不能只看告警位置就下结论,得确认输入源、传播路径和敏感操作是否真的连得上。
比较靠谱的做法,是拿同一漏洞的易受攻击实现和修复实现做对照。固定项目版本、模块、运行环境、请求内容、工具配置和数据状态,只改变实现版本。先验证易受攻击版本是否能在记录的条件下触发,再复测修复版本,观察漏洞相关行为是否消失、正常功能是否仍然存在。这样才能看出扫描器是否识别了真正的差异。
每条告警都应该回到证据上:源码位置、调用路径、必要的请求和响应摘要、工具版本、规则配置、扫描范围,以及人工复核理由。没有告警时,也要检查入口是否可达、请求是否送达、认证是否有效、扫描器是否覆盖了目标路径。否则,“未发现”只能标记为未验证或覆盖不足。
大家真正要问的不是“扫描器有没有响”,而是“它检查了哪里、依据是什么、漏掉了什么”。在隔离靶场中保留易受攻击版本、修复版本和原始结果,才能把一次扫描变成可复核的判断。安全结论应当跟着证据走,不能跟着安静的扫描界面走。

参与讨论
扫描器不响反而更让人心里没底