2023年9月,软件MOVEit文件传输软件的安全零日漏洞被黑客利用,全球超过2000家企业遭殃,漏洞英国航空、事件BBC、软件壳牌石油的安全员工数据被拖走。这起事件不是漏洞孤例,而是事件软件安全领域的一个残酷切片。
漏洞的软件根源往往不在神秘的代码深处,而在最普通的安全地方。MOVEit的漏洞问题出在SQL注入——一个被讨论了二十年的老毛病。开发团队在拼接数据库查询语句时,事件忘了过滤用户输入。软件就这么简单。安全但简单不意味着容易修复,漏洞因为漏洞藏在第三方组件里,厂商自己都没发现。
我见过太多初创公司的代码库,安全措施形同虚设。他们追求快速迭代,功能优先,测试能跑就行。安全工程师的职位预算被砍,安全测试被压缩到发版前的最后一个通宵。这种文化下的软件,就像没扎安全带就上高速的车。
更讽刺的是,很多漏洞早在被利用前就有了公开的CVE编号和补丁。MOVEit的漏洞在4月就被报告给了厂商,但补丁直到5月底才发布,而黑客在补丁发布前一周就开始了攻击。这个时间窗口,就是安全界常说的“零日窗口”,也是攻防双方最残酷的博弈期。
企业买再多防火墙、入侵检测系统也没用,如果软件本身有后门。安全不是买来的盒子,而是写进每一行代码里的习惯。我曾在一次代码审计中,发现某个内部工具硬编码了数据库密码,开发者的解释是“方便调试”。这种方便,就是灾难的温床。
换个角度看,安全漏洞也是某种意义上的“免疫系统”。每次大规模事件后,行业都会被迫升级。MOVEit事件后,不少公司开始重新审视供应链安全,要求所有第三方组件必须经过漏洞扫描。但这个过程太慢了,慢到黑客们已经转移到了下一个目标。
软件安全最吊诡的地方在于,你永远不知道自己的系统是否已经被攻破,直到攻击者自己说出来。有些公司被入侵了半年,数据被慢慢抽走,却毫无察觉。这种不确定性,比漏洞本身更让人焦虑。
所以,别再迷信“安全软件”了。真正的安全,是承认每个软件都有缺陷,然后建立快速响应机制。是开发者在写代码时多问一句“如果输入包含恶意代码怎么办”。是管理层愿意为安全测试留出足够的时间和预算。这些事做起来不酷,但管用。
软件漏洞事件会继续发生,这是技术演进的必然代价。我们能做的,只是让下一次攻击来得更慢一些,造成的破坏更小一些。这已经是最好的结果了。