过去的 48 小时,全球互联网似乎经历了一次前所未有的“团结”时刻。各大网站紧急维护,众多游戏选择停服,大家纷纷关门修 Bug。原因之一大概率是 PHP 语言出现漏洞,连日本政府都专门为此发文。在黑客眼中,日本简直就是“新手村”,连他们着急了,可见事态之紧急。甚至有段子调侃,这几天歇业整顿的日料才最正宗,这下只能吃寿司郎了(开玩笑的)。此外,日本游戏及二次元领域也是重灾区,因为许多游戏登录、商城、数据接口都依赖 PHP。比如《最终幻想 14》国服暂时无法登录,换成新版启动器或 WeGame 即可。玩笑归玩笑,PHP 这次的漏洞确实不容小觑。作为一种广泛用于网站开发的编程语言,全球约 70% 的网站都在使用 PHP。官方安全公告显示,此次漏洞的 CVSS 评分高达 9.2 分,属于不经过身份验证即可远程执行代码的危险漏洞。轻则网站内容被篡改、用户数据遭窃取,重则服务器被接管甚至服务瘫痪。好在 PHP 开发团队已紧急发布修复补丁,部分机构甚至选择直接断网维护。
然而,这两天互联网上爆出的另一个 Bug,解决起来却没个头。这不是靠官方打补丁就能解决的,甚至某种程度上需要我们自查。一家印度公司将他们的数字证书私钥(相当于密码)设置成了 4、56、155 等简单的数字。更糟糕的是,这批有问题的证书已进入全球互联网信任体系。即使事情过去 6 天,微信内置浏览器仍能连接到有问题的 emsign 数字证书。
互联网数据传输并非直接连线,中间需要无数交换机和路由器作为节点。传统网络环境下,任何节点被安插恶意软件都可能监听明文数据。TLS 加密体系解决了这个问题,通过第三方机构颁发数字证书来验证身份。eMudhra 就是其中一家“中间人”机构,拥有给几乎所有网站签发证书的权限。但这次,其私钥出问题了。攻击者掌握了私钥,就能以 eMudhra 身份伪造任何网站的合法证书。理论上,384 位的私钥有 2 的 384 次方种组合,但 eMudhra 的私钥前面 383 位全是 0,只有最后 1 位是随机数。这意味着暴力破解最多只需尝试 255 次就能命中。其中一个私钥竟然就是数字 4。更麻烦的是,eMudhra 还与其他老牌根证书机构进行了全球交叉签名,攻击者可借此渗透全球互联网。
一旦浏览器或设备使用旧证书,攻击者可在网络节点拦截流量,窃取聊天记录、生活轨迹,甚至注入虚假数据诱导诈骗。10 月 21 日事件发酵后,eMudhra 股价在印度市场直接触发 20% 跌停。各大厂商迅速进入“拔网线”模式,从 17 号起,Chrome、Firefox、苹果、微软等公司已停止信任相关证书。Google 甚至将签发这些证书的根证书从受信任根证书库中移除。目前有网站可检测浏览器是否受影响,苹果在 21 号撤销了全部支持,22 号恢复部分,Firefox 完全撤销了 12 个证书,而微信的反应则稍显迟缓。
之所以说这个问题需要“自查自修”,是因为大公司的操作只能保证终端设备安全。大量服务器、物联网设备后台程序,缺乏 Chrome 那样的热更新机制。家庭摄像头、智能音箱等依赖 Linux CA 包或固件,如果运维不更新系统,这些老旧设备仍会信任出问题的证书,面临被劫持风险。全球供应链、老旧服务器、物联网设备,收尾过程将非常漫长。更让人无语的是,这起大事件可能源于技术人员的一次“手滑”。
虽然印度这次主要是人为失误,但 OpenAI 提及 PHP 高危漏洞是 ChatGPT 发现的,且目前只是已知的一部分,更大的“惊吓”还在后面。过去漏洞可能藏代码里十几年无人知晓,如今技术发展快,发现门槛降低,互联网安全领域恐怕不会太平静。对于普通用户,保持更新可避开多数问题;但如果物联网设备多、生活科技绑定深,建议多关注安全新闻,减少暴露面。
