可见漏洞
去年十月,可见漏洞我买了一个二手路由器。可见漏洞卖家说九成新,可见漏洞到手发现电源接口松得厉害,可见漏洞插头得用胶带缠三圈才通电。可见漏洞我拆开后盖想看看能不能焊一下,可见漏洞结果在主板角落发现一颗电容鼓包了——顶部十字防爆纹已经撑开,可见漏洞像一颗随时要炸的可见漏洞微型炸弹。这就是可见漏洞可见漏洞。它就在那儿,可见漏洞肉眼能看见,可见漏洞但设计者当初没管,可见漏洞使用者也不会天天盯着看。可见漏洞
软件世界里的可见漏洞漏洞大多藏得深,可有些偏偏就摆在明面上。可见漏洞2014年心脏出血漏洞爆发时,我还在读大学。宿舍里几个人熬夜刷新闻,看到那段有问题的OpenSSL代码被贴出来——memcpy那行少了个边界检查。懂C语言的人扫一眼就明白,多读的那64KB内存里可能有私钥、密码、会话令牌。可这行代码在开源仓库里躺了两年多,无数双眼睛扫过,没人停下来。大家默认“这么基础的函数不会出错”。
这种默认最要命。我后来做代码审计,发现一个规律:越是显眼的地方,越容易被跳过。开发者在登录框上反复测试SQL注入,却忘了注册页面那个“邀请码”参数直接拼进了数据库查询。测试人员盯着支付流程的加密传输,忽略了退款接口用明文记录了完整的银行卡号。漏洞不藏在犄角旮旯,它就贴在正门上,只是没人觉得那扇门需要锁。
物理世界同样如此。我家楼下快递柜的触摸屏,输入取件码时按键有声音反馈。有次我取完件没走,站在旁边听。一个女生输六位码,前四位按键声清脆,后两位明显发闷——她手指移到了屏幕边缘。我数了数按键间隔,大概猜出是哪几个数字。当然我没试。但那个柜子从安装到现在三年了,没人觉得按键音是个问题。设计者可能还觉得“有反馈更友好”。
更常见的是权限漏洞。前公司内部wiki有个“已删除页面”的入口,普通员工看不到菜单,但URL直接访问就行。里面存着历年离职员工的交接文档、项目复盘、甚至薪资调整记录。IT部门每季度做安全扫描,报告永远写“未发现高危漏洞”——因为扫描器只爬公开链接,不猜隐藏路径。漏洞就挂在浏览器地址栏里,改个参数就能看见,可没人去改。
为什么这些明摆着的洞没人补?我观察下来,原因特别朴素:责任分散。开源项目里,每个人都觉得“别人会看这行代码”。公司里,开发觉得测试会覆盖,测试觉得运维会加固,运维觉得安全团队会扫描。物理设备上,用户觉得厂家设计时考虑过了。一层层“觉得”叠起来,漏洞就获得了永久居住权。
还有个原因更隐蔽:我们习惯用“正常使用”来验证系统。登录页面只测正确密码,表单只填合法字符,接口只传预期参数。那些“非正常”路径——空值、超长字符串、特殊符号、直接访问——被自动过滤出测试范围。漏洞不在功能里,在功能的边缘。边缘没人站岗。
那颗鼓包的电容我最后还是换了。焊的时候发现旁边两个电容也快不行了,顶部微微凸起。它们并排站着,像三个沉默的哨兵,早就发出了信号,只是没人收到。路由器修好之后我用了半年,直到搬家时摔了一下,彻底不亮。有些漏洞修一次能用一阵子,但更多时候,我们只是在等它彻底坏掉的那天。









