存在漏洞

 人参与 | 时间:2026-10-17 06:50:49

2017年9月,存漏洞Equifax泄露了1.47亿人的存漏洞信用数据。事后调查发现,存漏洞问题出在一个叫Apache Struts的存漏洞开源组件上。这个组件的存漏洞漏洞补丁早在当年3月就发布了。Equifax的存漏洞安全团队确实收到了通知,也确实安排了修复——但他们漏掉了其中一台服务器。存漏洞

一台。存漏洞

就这么一台没打补丁的存漏洞机器,让攻击者拿到了入口。存漏洞接下来几个月里,存漏洞他们在内网横向移动,存漏洞最终搬走了姓名、存漏洞社会安全号、存漏洞出生日期、存漏洞驾照号码。一家市值百亿美元的征信巨头,被一个已知漏洞加一次疏忽击穿了。

这件事常被拿来讲“补丁管理的重要性”。但我觉得它真正说明的问题更基础:系统的安全性不取决于最强的那个环节,而取决于最弱的那个。你有99台服务器都打了补丁,第100台没打,那你的安全水平就等于第100台。

漏洞不是bug,是逻辑的裂缝

很多人把漏洞和bug当成一回事。不完全对。

Bug是代码没按预期运行,比如一个按钮点了没反应。漏洞是代码按预期运行了,但这个“预期”本身有问题。举个例子:某网站重置密码时,会先验证用户的邮箱,验证通过后跳转到一个页面让你填新密码。问题在于,那个填新密码的页面URL里带着用户ID参数。你把URL里的ID改成别人的,就能改别人的密码。代码没出错,流程跑通了,但设计逻辑从一开始就是错的。

这类漏洞靠杀毒软件扫不出来,靠代码扫描工具也未必能发现。它藏在“设计者觉得理所当然”的假设里。设计者假设用户不会去改URL,假设前端校验就够了,假设内部网络是可信的。每一个假设都是一扇没锁的门。

“低危”漏洞的杀伤力

安全圈有个坏习惯:给漏洞分级。高危、中危、低危。然后低危的就被扔到列表底部,排期排到“下个季度再说”。

但攻击者不看你的分级标签。他们看的是组合。

一个信息泄露漏洞,单独看可能只是暴露了某个内部员工的邮箱地址。一个弱密码策略,单独看可能只是允许“123456”作为密码。一个没有速率限制的登录接口,单独看可能只是能快速尝试。三个“低危”串起来,就是一次精准的密码喷洒攻击。攻击者用泄露的邮箱找到目标,用弱密码策略猜中密码,用没有限制的接口快速验证。全程不需要什么高级技术。

我见过一家公司,内部Wiki上有个页面记录了所有服务器的IP和用途,权限设置是“仅限内部访问”。他们觉得这不算漏洞,因为外网访问不了。但他们的VPN用的是员工姓名拼音加生日做初始密码。一个离职员工没被及时清理账号,半年后登进来,把Wiki页面导出了。

人是最难打补丁的组件

技术漏洞可以修,流程漏洞可以改。但人的问题最难办。

钓鱼邮件至今仍然是最有效的攻击手段之一,不是因为技术多高明,而是因为它直接绕过了所有技术防御。你防火墙再厚,WAF再强,员工自己把凭证交出去了,后面的事就跟你没关系了。

更麻烦的是,安全措施本身会制造新的人为漏洞。强制90天改一次密码,结果大家把“Summer2024”改成“Summer2025”。要求密码包含大小写字母和数字,结果“Password1!”成了最常用的密码之一。这些不是用户的错,是设计者没想清楚人在真实场景下会怎么应对。

安全不是一道墙,是一张网。网的强度不由最粗的那根线决定,而由最细的那根决定。你可以买最贵的防火墙,做最严的渗透测试,写最长的安全规范。但只要有一台服务器没打补丁,一个员工点了钓鱼链接,一个“低危”漏洞被组合利用——整张网就破了。

Equifax那台服务器后来打了补丁。但1.47亿人的数据已经出去了。补丁永远不嫌晚,但有些代价,补不回来。

顶: 26389踩: 98873