游客发表
2019年,研究漏洞一个叫Zerodium的研究漏洞公司挂出悬赏:iOS零点击漏洞,出价250万美元。研究漏洞不是研究漏洞买手机,是研究漏洞买一个能远程打开你iPhone摄像头的秘密。那笔钱最终花落谁家没人知道,研究漏洞但圈内人都清楚,研究漏洞这种级别的研究漏洞漏洞,从来不会出现在新闻里。研究漏洞
漏洞这东西,研究漏洞和大多数人想的研究漏洞不太一样。它不一定是研究漏洞代码写错了。2014年Heartbleed爆发的研究漏洞时候,OpenSSL那行代码逻辑上完全正确,研究漏洞问题出在没人检查对方发来的研究漏洞心跳包长度。程序员写了个功能,安全研究员发现这个功能本身就能当武器用。漏洞常常不是bug,是feature的阴暗面。
我见过一个做渗透测试的家伙,他在某次内部演练里花了三周时间,没找到任何技术漏洞。最后他走进办公楼,跟前台聊了二十分钟,拿到了一张访客卡,然后进了机房。他的结论是:技术漏洞修得差不多了,但人的漏洞永远修不完。这话听着像老生常谈,但他给我看了他整理的“社会工程学词典”——从“我今天忘带工牌了”到“IT部门让我来检查网络”,一共47种话术,每一种都在真实场景里成功过。
零日漏洞市场已经变成了一个奇怪的生态系统。政府买,企业买,犯罪团伙也买。同一个漏洞,可能先卖给防守方打补丁,再卖给攻击方做利用。中间商赚的不是信息差,是时间差。有个做漏洞收购的朋友告诉我,他经手过一个Windows内核漏洞,从发现到被微软修复,中间隔了11个月。那11个月里,这个漏洞被三家不同的买家使用过,每一次使用都在不同的国家,针对不同的目标。“你没法追踪,”他说,“因为每个买家都以为自己是唯一知道这个漏洞的人。”
漏洞研究最讽刺的地方在于,你越是认真找,越容易找到那些没人想修的。2021年我参与过一个开源项目的安全审计,发现了一个权限提升问题。报告提交上去,维护者的回复是:“这是设计如此。”我问他,那攻击者利用这个设计怎么办?他说,那就不该让攻击者拿到本地访问权限。这个逻辑闭环了,但闭环的代价是用户。
真正的漏洞研究不是找错,是找预期和现实之间的裂缝。系统设计者假设A,实现者假设B,使用者假设C,三个假设之间的空隙就是漏洞的温床。有人统计过,CVE数据库里超过60%的漏洞属于“设计缺陷”而非“编码错误”。这意味着修代码没用,得改设计。而改设计意味着承认自己当初想错了,这比修bug难一百倍。
我认识一个在漏洞赏金平台混了五年的人,他有个习惯:每找到一个漏洞,就写一份“如果我是攻击者”的利用场景。这份文档不提交,只留给自己看。他说,提交漏洞报告的时候,你得让厂商相信这个漏洞值得修。但写利用场景的时候,你得让自己相信这个漏洞真的能杀人。“前者是工作,后者是训练。”他去年靠一个SSRF漏洞拿了四万美元,但他说最值钱的是那份没提交的利用文档,因为里面记录了他对目标系统最真实的恶意。
漏洞不会消失。它们只是从代码里搬到协议里,从协议里搬到流程里,从流程里搬到人的习惯里。你修得越快,攻击者找得越深。这不是一场竞赛,是一场没有终点的迁徙。研究漏洞的人,说到底是在研究人类自己——我们怎么构建系统,就怎么在系统里留下破绽。
友情链接