刚过去的这个周末,程序员们忙坏了。

所有人都在加班加点修补同一个漏洞。

Apache Log4j是一个基于Java的日志记录组件。Apache Log4j2是Log4j的升级版本,通过重写Log4j引入了丰富的功能特性。该日志组件被广泛应用于业务系统开发,用以记录程序输入输出日志信息。

2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。由于Log4j2组件在处理程序日志记录时存在JNDI注入缺陷,未经授权的攻击者利用该漏洞,可向目标服务器发送精心构造的恶意数据,触发Log4j2组件解析缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。

CNVD对该漏洞的综合评级为“高危”。

这是国家互联网应急中心对这个漏洞的介绍。

也许这个描述对非程序员的人群来说,仍显复杂。若简单“翻译”,就是这个漏洞意味着只需要一个字符串,无需密码或认证,就可以访问任何使用Log4j2这个Java库的服务器,甚至直接在里面运行自己的代码。

某种程度上就相当于任何人都可以拿到一个万能钥匙,进入使用Log4j2的任意一户“人家”,然后想做什么能做什么就全看“小偷”的发挥了。

问题的严重性已经很明显。这个漏洞很快被冠以“核弹级漏洞“、“现代计算机史上最大漏洞”等称号,原因就在于,Log4j2这个Java库实在太流行。

“几乎所有你能想到的互联网公司,都有在使用它”。

而且,这个漏洞还是一个“零日漏洞”。也就是说发现漏洞的同时,利用这个漏洞的攻击就已经在发生了。与那些漏洞已经有了补丁后才出现的黑客攻击相比,这种零日漏洞带来的攻击的手法和带来的危害的可能性都是未知的,这让防御者处在明处,而攻击者却在暗处且看得清你的一举一动。

如应急中心所说,漏洞最早在11月底就已经提交给官方。但修补尚未出现时,事情先变得严重起来——《我的世界》这款最流行的游戏之一,在12月9日遭受了利用这个漏洞的大规模攻击,这款微软旗下的游戏,不少服务器直接关闭。

更多的开发者意识到问题严重:苹果、亚马逊、Steam、腾讯,Github上60644个开源项目的321094个软件包,都在这个名单里。

而且据Apache方面表示,Log4j2作为一个开源组件被用在不同的系统中,使它根本无法追踪到底有多少代码里使用了它。

所有互联网公司都慌了。上周五开始,“几乎所有程序员都在修Log4j2”。

而根据漏洞相关信息开始进行的“攻击”也瞬间猛增。有互联网安全机构记录到12月10日当天开始的海量攻击,其中除了恶意的黑客行为,也有很多是来自试图进一步了解这个漏洞对自己以及一些知名公司安全性影响的“研究”。不少人在百度、谷歌等最基础的服务的登陆或搜索框里输入相关的漏洞字符希望一窥究竟。

这个漏洞的特性意味着,它就像一个夹子,你可以用它掀起一些公司平日遮蔽的较为严实的盖头,看看里面——于是,在更加影响恶劣的数据泄露事件尚未发生时,一些意想不到的“次生灾害”却更早到来。

就在安全圈为之沸腾,讨论如何快速修复,以及不停测试哪些公司在受到影响时,一次针对特斯拉的测试却带出了意想不到的新问题。

12月13日,一名互联网安全人士在微博上公布了几张截图。并配上文字:

特斯拉还是把数据传回美国了嘛。

根据这些截图,这名发布者对这个漏洞在特斯拉移动端App上进行了测试,而特斯拉服务器的IP地址很快被暴露出来,拿着这些IP地址一查,结果显示这些服务器归属美国。

“所有中国业务所产生的所有数据完全存储在中国境内”——特斯拉CEO伊隆· 马斯克今年9月曾经言之凿凿,但似乎被这个漏洞掀起的一角将了一军。

那么这几张截图说明了什么呢?



让我们把这个测试简化到大部分人都可以理解的程度。(这其中可能会丧失一些严谨性——比如下面会提到的“打开网页”,其实是对于dns解析的简单化解释——但能够更直观的理解这个操作的过程)。

要做这个测试,首先需要一个dnslog.cn或ceye.io这样的网站。这个网站提供两个功能,一是生成二级域名,也就是网址。二是当你把这个网址发给别人,对方用手机或电脑等设备打开了这个网址,你都能在这个网站上得到反馈,最基本的信息包括了打开时间以及IP地址。

理论上,这个“别人”可以是你隔壁领居,也可以是特斯拉,但是一般来说特斯拉的服务器是没道理点开你发的地址的,除非你能让他不得不点开。而Log4j2的漏洞正是危险在此。当把这个特定的测试语句加进网址,在代码里使用了Log4j2组件的特斯拉软件系统,就会“不由自主”自动打开它,然后这些痕迹会回到发送者这里。

通过这个办法,同样可以测试苹果或者亚马逊以及其他任何网站有没有漏洞。做个比喻:

我面前有3个小孩(即三家不同公司),分别标记为A、B、C,每人手里有一根火柴,有两根火柴受潮了不能使用,有一根是正常的可以被点燃(可燃即代表有漏洞)。 为了验证谁的火柴是可燃的(即为了验证哪个公司有漏洞),我找了3枚鞭炮,分别标记为a、b、c 。

a给小孩A,b给B,c给C,让他们去点鞭炮。

过了一会,鞭炮响了,凑近一看,残渣碎屑上看出是b鞭炮,那么就证明小朋友B手中的火柴是可燃的(有漏洞的)。

如前所述,在这个漏洞得到广泛重视后,大量这样的放鞭炮行为开始发生。而这个微博所记录的也是一次类似的测试。但这个测试不仅显示特斯拉存在漏洞,真的打开了一个这样的“钓鱼”网址,而且它因此暴露的服务器地址,也揭露了更多信息:

当这名测试者把自己在中国境内登陆特斯拉系统而得到的IP地址,放在whatsmyip(一个IP查询网站)上一搜,IP地址显示的ASN归属地却在美国境内。包括华盛顿、新泽西和爱荷华。



其中一个IP地址显示关联到华盛顿。


顿时一片哗然。

特斯拉App对于这款智能电动汽车的重要性不言而喻。

特斯拉车主很多时候就是在依靠移动端App管理自己的用车。去年5月,国内曾有多位车主表示由于特斯拉App出现大面积宕机,导致手机无法关联上车辆,进而导致手机钥匙失效,车辆信息无法获取,车内的中控屏和仪表盘因此无法激活的状态。

包括行驶和购买行为在内,中国特斯拉车主的个人信息几乎都被录入在移动端的App上。在今年10月升级了哨兵模式后,手机端已经可以实时查看汽车摄像头内容。特斯拉当时对此的声明是,实时摄像头将会是端对端加密的,特斯拉无法访问。

集成了包括实时车内内容在内的移动端App无疑是一个越发敏感的零件。大量中国车主的敏感信息积累在移动端App中。而现在,这些截图显示,App所连接的服务器却指向了美国。

不过,就在这个微博下面,许多不同的解读也在出现。这个信息能说明的数据安全的严重性并没有达到“共识”。尤其作为聪明人聚集的经常针锋相对的计算机安全领域,对于这个结论,不同人给出不同的理解。

有人称,这只是一种常规操作。“不一定是传输数据,可能是调了某个接口。”有人评论。

一位数据安全人士举了个更通俗的例子:

“比如,腾讯要统计全球有多少QQ用户同时在线,这时候,也会统计到美国用户的对吗?但这时候从美国传到中国的,其实只是个统计的在线人数,不涉及用户个人信息。此时你说中国的腾讯公司是在收集美国数据吗,你说是也行,说不是也没错。”

具体到特斯拉,或者苹果以及其他相似状况的公司,他是仅仅调用了一下美国服务器上的服务接口,还是真的有用户个人信息的传输,也成了判断这些信息流动行为是否合适的关键。

“这不能证明其他个人信息,比如通讯录、短信、照片等,也传到了美国。并且对方采集个人信息是否是加密传输及存储,是否符合相关法规的数据安全生命周期处置规范,这些都不是依据当前信息可以判断的。”有安全从业者表示。

除此之外,服务器地址和数据库地址并不一定在同地。

由于跨海沟通会增加延时,公司一般不会这么做,但如果没有即时通信需求——比如数据备份——服务器和数据库被放置在两个国家的可能性是存在的,另一位开发者表示。

显然,大家对此十分谨慎。不过,一个事实是,从这些截图和操作来看,一个包含域名的漏洞测试语句,的确从中国传回了美国服务器。一名认证为蚂蚁高级安全专家的博主表示,从这个截图来看,别的数据不知道,但车辆的名称数据是肯定传回了美国。

不远万里把车主的车名数据传回美国,这背后不知道是出于什么考虑。

这显然又让特斯拉中国陷入一个十分敏感又令人困惑的境遇。一次针对漏洞的测试却再次让人们意识到,特斯拉和特斯拉中国所宣称的数据留存在中国究竟执行的如何、究竟哪些数据依然需要去美国转一圈、以及它们会以什么形式转一圈?可能至今就连特斯拉中国车主们也不清楚。

在2021年11月已经正式生效的个人信息保护法里,这样规定:

第三十九条个人信息处理者向中华人民共和国境外提供个人信息的,应当向个人告知境外接收方的名称或者姓名、联系方式、处理目的、处理方式、个人信息的种类以及个人向境外接收方行使本法规定权利的方式和程序等事项,并取得个人的单独同意。

除此之外,也有不少开发者表示,这个在12月13日发布的测试也说明,在全世界都在10日就开始加班加点急着补上这个漏洞的时候,特斯拉似乎直到13日也还没开始处理这个漏洞。有国外媒体引述知名机构Fortress Information Security相关负责人称,整个互联网对于这个漏洞的修复工作远未结束。

“但看看日历表,两周后是什么,圣诞假期”。



12月14日,马斯克带着他的儿子参加《时代》举办的庆祝活动。此前他被《时代》选为今年的年度人物。

“由于Apache Log4j2在框架组件和软硬件产品二次开发中应用较为广泛,CNVD平台建议各厂商单位对开发的软硬件产品和服务进行积极自查,重点检查对Apache Apache Log4j2组件的引用情况,若发现受此漏洞影响的请立即修复,并通知产品用户及时更新。”12月13日,国家互联网应急中心也发布公告,建议厂商及时自查并通知用户。

这个漏洞带来的混乱还会持续一段时间。可能会有更多的“次生”信息因它而披露。而在此需要提醒的是,有互联网安全相关人士表示,不建议大家拿着这段漏洞代码去各大网站上随便尝试,因为这可能带来不必要的糟糕的影响,进而让操作者自己也惹上风险。