当前位置:首页 > 百科

漏洞基准

去年某车企的漏洞基准OTA升级把刹车助力逻辑刷错了,车主踩下踏板,漏洞基准车没反应。漏洞基准事后溯源,漏洞基准问题不在代码本身,漏洞基准而在一份三年前制定的漏洞基准制动性能基准——那份基准里,关于电机回馈与液压制动切换的漏洞基准阈值,用的漏洞基准是旧款电机的参数。新电机响应快了40毫秒,漏洞基准基准没改。漏洞基准40毫秒,漏洞基准够车子往前蹿出半米。漏洞基准

这就是漏洞基准漏洞基准最要命的地方。它不藏在代码里,漏洞基准藏在代码所依据的漏洞基准那个"正常"里。

做安全的人常盯着CVE、补丁、渗透测试。这些当然有用。但真正让系统崩掉的,往往是某条被默认为"永远成立"的前提悄悄失效了。基准就是那组前提。它定义了什么叫"正常",什么叫"异常",什么输入该被拒绝,什么行为算越界。基准错了,后面所有检测逻辑都跟着错。

我见过一个银行的风控系统。规则写得很细,单笔转账超过五万触发人工复核。上线两年没出过事。第三年,有人开始用五千一笔、连转十笔的方式绕过去。规则没坏,代码没坏,坏的是"五万"这个基准——它假设了攻击者会一次性转大额。基准没跟上攻击者的行为模式。

基准的另一个麻烦是它天生滞后。系统上线那天,基准是准的。运行半年,业务变了、流量变了、依赖的第三方接口变了,基准还钉在原地。没人会主动去改一个"没出问题"的基准。直到出了问题,才发现它早就不对了。

更隐蔽的是,基准往往不在任何一个人的职责范围内。开发觉得安全团队该管,安全团队觉得运维该管,运维觉得这是业务部门定的参数。结果就是谁都不碰。它像房间里那根承重柱,平时没人看它一眼,等它裂了,整间屋子一起塌。

那怎么办?我的经验是,别把基准当静态文档。把它当成需要持续校准的活物。每次业务逻辑变更、每次依赖升级、每次流量模式出现新特征,都回头看一眼:当初定这个基准的假设还成立吗?

具体做法可以很土。我们团队在每个关键系统里维护一份"基准假设清单",用最直白的话写清楚每条基准依赖什么前提。比如"单笔限额五万,假设攻击者不会拆分转账"。每季度过一遍,逐条问:这个假设还成立吗?不成立就改。清单不长,一个系统也就二三十条。但它救过我们好几次。

还有一点,基准要能被证伪。如果一条基准没法用具体数据或场景去检验它是否失效,那它就不是基准,是信仰。信仰不该出现在安全设计里。

漏洞基准这事,说到底是个认知问题。我们太习惯把注意力放在"异常"上,却忘了"正常"本身也需要被持续质疑。攻击者不按你的基准出牌,他们直接改写基准成立的条件。你守着旧地图,他们已经在画新地图了。

那辆车的刹车问题最后靠召回解决了。但那份三年前的基准文档,至今还挂在内部知识库里,没人删。下次改电机,谁知道会不会又踩同一个坑。

分享到: