|
2023年11月,漏洞获某安全团队在GitHub上公开了一个Apache ActiveMQ的漏洞获远程代码执行漏洞利用脚本。从漏洞披露到脚本可下载,漏洞获间隔不到48小时。漏洞获这不是漏洞获个例。漏洞获取的漏洞获门槛,已经低到让人不安。漏洞获 我最早接触漏洞获取是漏洞获2015年。那时候要拿到一个像样的漏洞获PoC,得混进几个封闭的漏洞获IRC频道,或者翻墙去Exploit-DB上蹲着。漏洞获有些漏洞的漏洞获利用代码只在少数人手里流转,换资源、漏洞获换人情,漏洞获甚至换钱。漏洞获现在呢?一个CVE编号公布出来,Google搜一下,GitHub上已经有三四个仓库在维护利用工具了。有的还带Docker环境,一键搭建靶机。 这个变化背后有一条清晰的链条。漏洞披露机制本身在加速。CVE、CNVD这些平台把漏洞信息标准化了,厂商的补丁节奏也被逼着加快。但补丁和利用之间的时间差,就是攻击者的窗口期。这个窗口期在缩短,可获取利用代码的速度缩得更快。 我观察到一个现象:很多漏洞的利用代码,最早不是安全研究员放出来的,而是攻击者在实战中流出的。比如Log4Shell那会儿,12月9号漏洞公开,12月10号就有挖矿团伙在用。那些利用代码写得粗糙,但能跑。后来GitHub上出现的“干净版本”,反而是安全社区从恶意样本里逆向整理出来的。这个顺序很讽刺——先有攻击,后有研究。 获取漏洞的渠道也变了。以前是论坛、邮件列表、私人群组。现在主要是三个地方:GitHub、Telegram频道、暗网市场。GitHub上的项目质量参差不齐,有的直接是半成品,跑起来一堆报错。但胜在公开,谁都能clone。Telegram频道更杂,有人发广告卖0day,有人发免费exp引流。暗网市场相对“专业”,但骗子也多。我见过一个卖Citrix漏洞利用的,收了0.5个比特币,发过来一个加密压缩包,密码是错的。 说个具体案例。今年年初,某国产OA系统爆出一个前台RCE。漏洞细节没公开,但两天后,一个Telegram频道里有人发了一段Python脚本,声称能打。我下载下来看了,代码里硬编码了一个测试IP,注释写着“仅供学习”。脚本逻辑很简单,就是构造一个恶意的序列化数据包。但问题在于,它依赖的某个库版本很老,新环境根本跑不起来。发脚本的人显然没做兼容性测试,或者他根本不在乎——能打中一个算一个。 这种“半成品”漏洞利用的泛滥,带来一个后果:攻击者的门槛降低了,但攻击的成功率也降低了。以前拿到一个exp,基本能打穿。现在拿到十个,可能只有两三个能用。这反而让那些真正高质量的0day更值钱。黑市上,一个能稳定利用的Chrome 0day,报价能到七位数美元。而一个公开的Nday exp,可能只值一顿饭钱。 漏洞获取的另一个变化是自动化。有人写了爬虫,专门监控GitHub上带CVE编号的新仓库,一旦发现利用代码,自动拉取、编译、测试,然后推送到自己的武器库。整个过程不需要人工干预。我见过一个框架,叫“漏洞狩猎者”,作者是个巴西人。它能在漏洞公开后平均6小时内生成可用的利用模块。这个速度,比很多厂商发补丁还快。 但自动化也有问题。它只能处理那些结构清晰的漏洞,比如反序列化、SQL注入。遇到逻辑漏洞或者需要多步交互的,就抓瞎了。所以人工分析仍然不可替代。我认识几个做漏洞研究的朋友,他们现在的工作模式是:自动化工具筛一遍,把可疑的仓库标出来,然后人工看代码、调环境、写exp。效率比纯手工高,但也没高到哪儿去。 漏洞获取这件事,本质上是在和信息不对称赛跑。厂商知道漏洞的时间,和攻击者知道漏洞的时间,差距在缩小。但攻击者获取利用代码的速度,已经超过了厂商修复的速度。这个剪刀差,就是当前网络安全最头疼的问题之一。你补丁还没推完,人家已经拿着exp在扫全网了。 我写这些不是要制造恐慌。漏洞获取的便利化,对防守方也有好处。你能拿到exp,我也能拿到。我可以拿来测试自己的系统,验证补丁是否有效。关键是别装鸵鸟。看到GitHub上冒出新的exp,别光顾着收藏,跑起来试试。打不穿,说明你的防护到位了。打穿了,赶紧修。 就这么简单。漏洞就在那里,获取它的人越来越多。你不动,别人会动。 |