|
2017年5月12日,漏洞图WannaCry勒索病毒横扫全球,漏洞图超过20万台电脑在三天内被加密锁死。漏洞图英国国家医疗服务体系被迫取消近两万次手术和预约,漏洞图雷诺汽车在法国的漏洞图工厂直接停产。事后调查发现,漏洞图病毒利用的漏洞图是美国国家安全局开发的“永恒之蓝”漏洞工具。NSA早就知道这个漏洞的漏洞图存在,却没告诉微软。漏洞图他们留着它,漏洞图像攥着一张底牌。漏洞图这张底牌后来被人偷走,漏洞图改成了炸弹。漏洞图 漏洞这东西,漏洞图本质上是漏洞图信息不对称的产物。一个人知道系统哪里薄弱,另一个人不知道,前者就握住了后者的命门。问题在于,这种不对称从来不会乖乖待在原地。 我认识一个做渗透测试的朋友,他的工作就是替企业找漏洞。他跟我说过一个细节:大部分中小企业的内部系统,用的还是五六年前的老版本框架,补丁从来没打过。不是不知道有风险,是觉得“我这小破站谁看得上”。结果呢?2021年,一家做外贸的小公司被勒索了,攻击者从他们一台没更新的VPN设备进去,横向移动,最后把财务系统锁了。赎金要了40万。他们一年的利润也就这个数。 漏洞图不是一张静态的地图。它更像天气图,随时在变。今天安全的地方,明天可能因为一个新披露的CVE编号变成重灾区。Log4j那个漏洞爆出来的时候是2021年12月,一个叫“Log4Shell”的东西,影响范围覆盖了几乎所有Java应用。那几天,全球的安全工程师都在加班。有人在推特上说,感觉像是整个互联网同时着了火。 这里有个很拧巴的逻辑:软件越复杂,漏洞越多。Windows XP的代码量大约4500万行,到了Windows 10,这个数字膨胀到接近2亿行。代码行数和漏洞数量不是线性关系,是超线性关系。每增加一行新代码,它和已有代码之间可能产生的交互路径就多出好几条。这些路径里,总有一些没人走过,没人测过,没人想过。 更麻烦的是,漏洞不只存在于代码里。人也是系统的一部分。钓鱼邮件能成功,不是因为防火墙不行,是因为有人点了链接。2020年推特被黑那次,几个高中生水平的攻击者,打电话骗过了推特员工,拿到了内部管理工具的权限。然后他们用这些权限,控制了奥巴马、马斯克、比尔·盖茨的账号,发了一轮比特币骗局。技术漏洞可以打补丁,人的漏洞很难。 我有时候想,我们其实生活在一张巨大的、不断被修补的网上。每一次系统更新,每一次安全公告,都是在往这张网上打补丁。但打补丁的速度,永远追不上漏洞被发现的速度。攻防之间有个时间差,这个时间差就是攻击者的窗口期。窗口期有多长?取决于有多少人还在用旧版本,有多少人还没装补丁,有多少人觉得“这事不会落在我头上”。 WannaCry爆发前两个月,微软其实已经发布了针对“永恒之蓝”的补丁。但全球仍有大量机器没更新。有些是因为系统太老,微软早就不支持了;有些是因为管理员嫌麻烦,想着“下次再打”。这个“下次”,就是漏洞图上那块永远补不上的灰色区域。 说到底,漏洞图不是给攻击者看的,是给防守者看的。它画的不是哪里会出事,而是哪里已经出过事、哪里正在出事、哪里迟早要出事。看懂这张图的人,不会问“我会不会被攻击”,只会问“我还能撑多久”。 |