我电脑里那个杀毒软件弹窗又响了,漏洞多提示我系统有十七个漏洞需要修复。漏洞多我没理它,漏洞多继续写稿子。漏洞多这软件从年初就天天催我升级,漏洞多说漏洞多么多么严重,漏洞多不修就会怎样怎样。漏洞多可我这台破笔记本用了五年,漏洞多除了慢点,漏洞多也没见谁真黑进来偷走我的漏洞多小说大纲。
漏洞这个词,漏洞多被安全厂商用得太廉价了。漏洞多好像每个漏洞背后都站着一个黑客,漏洞多正磨刀霍霍等着你犯错。漏洞多实际上,漏洞多绝大多数漏洞躺在系统里几个月甚至几年,既没人发现也没人利用。我朋友在国企做运维,他们内网系统还跑着Windows 7,补丁打不上,漏洞一抓一大把。可那网连外网都费劲,黑客想进来得先穿过三层防火墙,再破解物理隔离,最后面对的是个装着十年前财务软件的老古董。谁费这劲?
当然,我不是说漏洞无所谓。去年Log4j那事儿,全球运维熬了几个通宵,我也跟着改了配置。但那是因为它影响面太广,且利用门槛低到随便一个脚本小子都能扫到。真正危险的从来不是漏洞多,而是漏洞被广泛知晓且容易触发。就像你家门锁有缺陷,但小偷不知道,或者知道了也撬不开,那这个缺陷在现实中就约等于不存在。安全圈管这叫“可利用性”。可惜厂商不这么宣传,他们得让你焦虑,焦虑了才会掏钱买服务。
还有个更荒诞的现象。有些漏洞是被厂商自己制造出来的。为了“安全”,软件加了复杂验证,结果引入新问题。我见过某银行APP,每次登录要人脸识别加短信加密码,三重验证。结果呢?验证码接口被人刷爆,短信轰炸用户。这算不算漏洞?算,但它是为了防漏洞才造出来的漏洞。人有时候真该承认,系统越复杂,漏洞越多,这是铁律。
我自己也写过代码,知道那种感受。你修复一个bug,往往带出两个新bug。不是程序员不细心,是逻辑链条太长了。一个功能涉及十几个模块,每个模块之间交互,总有意想不到的边界情况。所以那些号称“零漏洞”的产品,要么是吹牛,要么是根本没被认真测过。
最后说个实在的。你手机里那些App,天天提示更新,说修复了若干漏洞。你真更新了,会发现新版本可能更耗电、更卡,甚至又冒出别的毛病。我有个老款阅读器,厂商早停止维护了,漏洞公告列了一长串。可我用它看了三年电子书,屁事没有。漏洞是纸面上的,风险是实际发生的。这两者之间,隔着使用场景、攻击意愿和现实运气。别被那串数字吓住,该干嘛干嘛去。真到了该紧张的时候,你电脑会先蓝屏的。