xz后门的作者Jia Tan是谁?
【WQC】
- 疑问句式的标题,点出热点事件里人们最大的关注点;
- 叙事手法、节奏,都值得学习:从现象问题入手,追溯来龙去脉,落脚在追查黑客的真实身份。环环相扣,引人入胜。
- 语言简洁,短语、句子层级的排布没有废话,长短句安排得当。
【原文】
互联网行业最近的重大事件,莫过于 xz 软件的后门。
先一句话点出事件是当下的最大热点;
xz 是一种压缩软件,大量用于 Linux 系统,比如系统管理器 systemD 就用它压缩日志。它是 Linux 的基本组件之一,每台服务器几乎都有它。
今年3月底,有人发现它的新版本有点奇怪,让 SSH 的启动时间慢了500毫秒。进一步调查发现,里面竟然有一个后门。
这件事震惊了业界,因为新版本即将纳入主要的 Linux 发行版(比如 Debian 和 Fedora),只差几天而已。到了那时,服务器带有后门,后果不堪设想。
而且,整个事件经过精心策划,过程长达数年,每一步都毫无破绽,心思之缜密,耐心之好,能力之强,令人后怕。
WQC:四段话简洁明快地介绍了事件的来龙去脉和之所以引发这么大关注的原因。语言要简洁,控制住表达欲不要给不必要的废话解释,力求句句到位,在这里可以得到学习的典范。
先介绍xz是什么,为什么重要,此为背景。然后以叙事方式展开,时间、起因、经过,结果,如同一部电影的起头,把问题怎么被发现,为什么这么严重,以及关键是,点出了值得关注的矛盾焦点:背后不简单,时间这么长居然没有被发现,这个黑客精心布局几年之久。。。引人入胜。
WQC: 在上述起头的基础上,故事也就此正式展开。叙事技巧娴熟,采用倒叙方式,引起读者的兴趣,然后再从头开始讲。如果反过来,可能就到不到这样的效果。
叙事节奏很好,起点(前几次提交,如同万千开源软件贡献者一样,毫无异样);情节发展1(添加管理员权限的建议被采纳);情节发展2(添加了后门,催促发行版收入);结果,回到开头,并补充了这个黑客就此消失。
这个事件开始于2021年4月,一个网名叫做 Jia Tan 的人,第一次向 xz 软件包提交了一个正常的补丁,被顺利合并。
2021年11月和2022年4月,他又提交了两个正常的补丁,也被合并。
然后,突然冒出了几个网友,在邮件列表上向管理员建议,xz 项目缺乏人手,响应迟缓,应该给予 Jia Tan 管理员权限。这个建议被采纳了。但是,人们现在发现,这几个网友都是陌生的邮件地址和名字,根本找不到其他的活动痕迹。
就这样,Jia Tan 成为了管理员,拥有独立发布新版本的权限,先后发了几个版本。虽然他的这些代码可能是无害的,但是扩展了功能,为后面要做的坏事打下了基础。
2024年2月,他添加了后门。代码做了混淆,而且后门不在源代码里面,要在构建阶段才会生成,很难发现。他发了这个版本以后,就开始发信,催促几个大型发行版,尽快收入这个版本。
后门曝光后,Jia Tan 就彻底消失了,没有任何身份信息,也没有其他痕迹,谁也不知道他到底是谁。人们开始搜集线索,试图找出这个人。
WQC: 叙述到这里,故事跟开头的引子接上了,并继续往下走:寻找这个黑客。这个处理方式,如同阿甘正传一样。
用线索和假设猜疑的方式展开寻找的过程。从仅有的信息线索来看,可以自然得出结论指向的是A;接着推翻A,有没有可能是B?
他的网名是汉语拼音,邮件全名是 Jia Cheong Tan,中间的 Cheong 似乎是粤语。他的 GitHub 提交时间采用东八时区。他的 IP 地址是新加坡。
一切都在指向,他是一个在新加坡的华人。真的是这样吗?
网名显然是假的,代码提交时间可以更改,至于 IP 地址,已经查明是 VPN 地址。
有没有一种可能,他伪装成华人,栽赃给中国?
有人分析了,他在 GitHub 的所有提交。虽然提交时间可以更改,但也不能改得太过分,毕竟要保持提交顺序和及时性,所以还是能看出一点东西。
他的提交,绝大部分采用东八时区的时间,但是有一些是东二时区和东三时区。
研究者相信,他很可能是一个东二时区的欧洲人,伪装成东八时区的中国人。他更改了计算机的时区,但是偶尔有几次忘记了更改。
WQC:图示给出了猜测B的指向,并给出了B可能性更大的几个支持理由论据。如果这些猜测成立,只能说,这个黑客只能说是机关算尽,百密一疏。
不过好在网络世界并非现实世界,虽然留下马脚让自己的伪装被识破,但做到如此这般缜密,足以让调查止步于此了(东二区国家),而自己真实身份不会被发现。
最后给出这件事的启发意义,以及后续的补丁建议。
东二时区的国家(上图的绿色部分),主要是东欧国家,以及一部分北欧国家(芬兰和瑞典)和中东国家(以色列和埃及)。
他来自东二时区,主要理由有三点。
(1)他在东二时区的提交日期是冬季,而东三时区的提交日期是夏季。这正好符合欧洲国家和以色列的夏令时切换。
(2)他明显在手动切换时区。举例来说,2022年10月6日,他先在东八时区的17:00:38进行了一次提交,然后又在东三时区的21:53:09再次提交。两次相差不到十个小时,很难相信这一点时间,他已经从中国来到欧洲写代码。
(3)他在中国的农历假日(中秋节、清明节、春节)都有提交,尤其是2023年春节假期(1月21日到1月27日),他有五天提交记录(分别是22日、23日、24日、26日、27日),这说明他不过春节。相反地,他在欧洲人很重视的假期(圣诞节和新年)却没有提交记录。
综上所述,这个 Jia Tan 很可能来自东二时区。不过,这个人(或者组织)非常小心,而且是技术高手,也许永远也发现不了真实身份。
这件事情提醒我们,开源社区的参与者形形色色,不全是好人,有些人非常阴险,不仅干坏事,还伪装身份,栽赃给他人。因此,我们对他人保持善意的同时,也不能丢失警惕。已经有人提议,重要的开源项目不能接受匿名身份的代码提交者。