过去的48小时,估计是全球互联网最“团结”的时刻——大批网站开始紧急维护,很多游戏选择停服,大家纷纷关上门来修 bug。
原因之一你大概率能猜到,是因为 PHP(一种 Web开发语言)漏洞。甚至日本政府都专门为这事儿发了篇帖子。。。

这可是被黑客当新手村刷的日本,连他们都着急了,可以看出来是非常紧急了。
我还看到有段子说,这几天歇业整顿的日料才最正宗,这下不得不吃寿司郎了。(bushi
除此之外,日本游戏与二次元领域,也是这次维护潮的重灾区,因为不少游戏登录、商城、数据接口都依赖 PHP。。。
比如《最终幻想14》国服,用旧版启动器暂时登不上是正常的,换成新版启动器或 WeGame就能进。

所以啊,那些用 PHP的团队这几天怕是要通宵打补丁了。。。
玩笑归玩笑,PHP这次的漏洞确实不是闹着玩的。
作为一种广泛用于网站开发和 Web后端的编程语言,PHP的存在感,远比很多人想象的还要强。
不光全球大约70%的网站都在用 PHP,而且这次发现的两个漏洞,危险程度直接拉满了。根据 PHP的官方安全公告,事故的 CVSS评分(通用漏洞评分,满分10分)为9.2分。。。
属于不经过身份验证,就可以远端执行代码(RCE)的危险漏洞。轻则网站内容被篡改、用户数据遭窃取,重则服务器被直接拿下,甚至整个服务瘫痪。
好在目前来看,这次的情况并没有失控。
PHP开发团队已经紧急发布了修复补丁。对于来不及打补丁的系统,也有部分机构选择直接把网线下线——修不好之前,最安全的网站,就是暂时不存在的网站。。。
但话又说回来,“PHP漏洞”至少还有个比较明确的应对办法。
这两天互联网上爆出的另一个 bug,解决起来可真就没个头了。因为这不是官方打一轮补丁就能解决的,甚至某种程度上,需要我们自查解决。
是的,可能有些小伙伴也听说了,一家印度公司把他们的互联网数字证书的私钥值(相当于是证书的密码),设置成了“4”、“56”、“155”等几个类似的255以内的数。。。

更麻烦的是,这批有问题的证书,已经进入全球互联网的信任体系了,对咱们的影响也非常大。就比如说,即使事情已经过去6天了,微信客户端内置的浏览器,竟然还能连接到有问题的 emsign数字证书。。。

这里要稍微解释一下,互联网是一张网没错,但是我们的手机连接到网站/ APP/服务器,不是直接从手机拉一根线就过去了,中间需要无数的交换机、路由器作为节点去帮你跳转,代为传输数据包。
在传统的网络流量环境里,中间的任何一个节点被安插了恶意软件,都可以在你毫不知情的情况下偷偷监听你和网站之间传输的明文数据。
为了解决这个问题,现代互联网引入了数字证书对流量进行加密,只要你的浏览器里提示连接是安全的,就代表你的这段通信是加密的。
只有你和最终收到这个信息的服务器,能看到数据的明文。中间的每一跳、每一个路由节点只能代为转发——他们只知道自己转发了一个数据包,但是无法查看数据的具体内容。
这套加密体系叫 TLS。为了保障这套体系顺畅运作,需要有一个绝对可信的第三方机构充当中间人,为网站颁发数字证书——具体怎么回事儿,大家可以问一问豆包。碍于篇幅,我们就不展开了。
然后问题来了,这次事件的主角 eMudhra,就是其中一家“中间人”机构。他手里头攥着的中间 CA证书,可以给几乎任何网站签发数字证书,并且签发的证书被所有联网设备所信任。
结果这些“中间人证书”自己的私钥出问题了,凡是掌握了这次漏洞的人,都能以 eMudhra的身份给任何网站签发证书。即使是假网站,也能拥有一张合法可信的证书。
理论上,eMudhra这批证书的私钥长达384位,有2³⁸⁴种组合。正常情况下暴力破解几千、几万亿次都无法命中。。。
但根据安全员的报告,eMudhra这次的私钥,前面的 byte全部设置成了0,直到最后的1 byte,才开始有实际的熵,也就是随机数。1 byte的长度能储存的数字,对应到十进制,就只剩256种可能了。。。
换句话说,从1开始一个数字一个数字地试,最多试255次,就可能拿到私钥。更难绷的是,其中一个私钥竟然就是数字4。
而且顺着出事的 CA证书往上捋,你会发现 eMudhra还跟一些老牌根证书机构,进行过全球交叉签名认证。也就是说,通过这些几乎不设防的中间证书,攻击者能进一步把手伸到全球互联网的其他角落。

假如你的浏览器、手头的设备,用的还是公告里说的旧证书。那么别人就有机会通过伪造数字证书,躲在你网络的上层节点当中,拦截你通信的流量,扒你的数据。
他们不光可以监听你所有的聊天记录、生活轨迹,甚至对一些加密比较弱的场景,还能伪造虚假数据。比如正常使用 app的时候突然弹出来一个“你中奖了”,假如你要信了,就有可能被骗。
所以10月21日,事件公开发酵后,eMudhra股价在印度市场直接触发20%的跌停。。。漏洞一经曝光,各大浏览器和根证书项目,也马上进入了“拔网线”模式——
最早从17号开始,Chrome、Firefox、苹果、微软这些公司,就已经在系统层面停止信任 eMudhra旗下的相关证书了。Google甚至宣布把签发这些中间 CA的根证书,从 Chrome的受信任根证书库中移除。

如果你不放心,有个叫 emudhra.we-have-a-problem的网站,可以测试你的浏览器有没有中招。
我试了一圈,发现苹果在21号,已经在系统层面( Safari)撤销了全部证书支持(22号恢复了三个),Firefox则是完全撤销了12个证书的信任。微信在这方面的动作,确实是慢了一拍嗷。。。
除了这一点,我之所以说“互联网证书”导致的问题,最后需要咱们去自查自修。是因为上面这些大公司的操作,只能保证你的手机、电脑是安全的。
实际上在我们的互联网环境里,还有大量的服务器、物联网设备和后台程序,并没有 Chrome、Firefox那种独立的证书黑名单热更新机制。
举个例子,我们家里的摄像头、闺蜜机、智能音箱,它们普遍依赖 Linux系统里边的 CA certificate包、软件自带的 CA信任库,或者固件里预置的根证书。
换句话说,如果运维人员不更新系统、或者推送固件,一些老 Linux、嵌入式 IoT、工控设备和无人维护的内网服务器,还会信任已经出问题的证书,相当于顶着被劫持的风险裸奔。
这种信任库的遗留问题,收尾过程会非常漫长。全球数不清的跨国供应链、老旧服务器、物联网设备,估计后面有的忙了。
而更让人无语的是,这么大篓子,源头可能只是一次非常低级的人为失误。
eMudhra数字证书这事,最新的说法是 eMudhra的技术人员“手滑”了,用于迁移测试的弱密钥,在迁移完成之后忘了换,最后流入了生产环境。真是让人看得咬牙切齿。。。
虽说印度这次的事情,可能只是人为操作的问题,但后来 OpenAI出来认领,说 PHP的高危漏洞是 ChatGPT协助发现的。
而且目前的 PHP问题,只是他们已经找到、正在协调修复的多个重大漏洞中的一部分。更大的“惊吓”还在后面。。。
过去,一些漏洞可能藏在代码里十几年都没人发现。现在,我们进入了技术发展最快的时代,发现它们的门槛正在降低,接下来整个互联网安全领域,恐怕都不会太平静。
对于咱们这些普通用户来说,保持浏览器、系统,还有常用应用的更新,可以避开绝大多数问题。
但是,如果家里的物联网设备比较多、日常生活和科技绑定得比较深的话,那我确实建议,大家多关注点儿安全方面的消息,让自己少一些可以被攻击的暴露面。













