操作系统大神制造的木马,到底有多可怕?

开发 前端
Ken选择了C编译器做手脚,但实际上他还可以选择汇编器,load程序,甚至硬件级别的微代码,随着程序级别越来越低,这些错误越来难以被检测到。

Unix的作者Ken Thompson有种神奇的本事,他大摇大摆地走到公司任何一台Unix电脑前,输入自己的用户名和密码,就可以以root身份登录系统,为所欲为。

图片图片

贝尔实验室人才济济,看到Ken这么“嚣张”,另外一些大牛发誓要把这个漏洞给找出来,他们通读了Unix源码,终于找到了Ken安放的登录的后门,清理后编译Unix,再次运行,可是Ken Thompson还能以root身份登录。

图片图片

既然源码没问题,那肯定是编译的过程出了问题!

编译器一定被Ken动了手脚,在编译Unix时植入后门!

于是,大牛们重新写了一个干净的编译器,用这个干净的编译器去编译干净的Unix,这下世界清净了吧?

可依然不管用,Ken像上帝一般,照样以root身份登录。

这实在是太让人崩溃了!

后来,还是Ken Thompson本人解开了这个秘密。

原来,问题在于Ken写的第一个C编译器,它在编译Unix源码时,会植入后门。

图片图片

但这还不够,更牛的是,当其他人写了编译器,肯定也需要编译成二进制的代码,用什么来编译呢?当然是Ken写的那第一个编译器,于是,这个新的编译器也被污染了。

再用新的编译器去编译Unix,也会植入后门。

图片图片

所以,这就是Ken在1984年获得图灵奖演讲时,提出的关键问题:

如果你没有编写全部的代码,那你自己写的代码是不能被信任的。

无论多少源代码级别的审核都不能保证安全性,因为你依赖的软件和系统中还是可能有后门。

Ken选择了C编译器做手脚,但实际上他还可以选择汇编器,load程序,甚至硬件级别的微代码,随着程序级别越来越低,这些错误越来难以被检测到。

相比而言,相信编写软件的人更加重要。

那么这个后门仅仅局限于贝尔实验室,还是外界也能用?

开源先锋Eric S. Raymond提到过,有两份独立的报告展示,那个带后门的Unix版本确实从贝尔实验室“泄露了”,进入了BBN公司。

BBN即雷神公司,曾经深度参与互联网的前身——ARPANET——的构建。

图片图片

报告称,有人在深夜通过网络用“kt”这个登录名进行了登录BBN的Unix,kt很可能就是Ken Thompson的缩写。

如果BBN的电脑被感染,那么其他地方的电脑被感染的可能性也非常高。

你可能会好奇,Ken的密码是什么?知道了它不就可以登录任意一台Unix电脑了?

2014年,一个叫leah的网友在BSD 3 源码树的文件转储中发现了一个/etc/passwd 文件。

这真是一个宝藏,因为里边包含的都是Unix前辈的密码,每一个人都大名鼎鼎,如雷贯耳!

如Dennis Ritchie, Brian W. Kernighan, Steve Bourne and Bill Joy,当然,Ken Thompson的密码也在内。

图片图片

由于该密码用基于 DES 的 crypt(3) 算法加密后的散列hash值,而 crypt(3) 是一种弱加密算法(最多限于 8 个字符),Leah 觉得破解起来应该比较容易,所以决定尝试。

很快,那些简单的密码就被破解了,但是Ken Thompson的密码却如同一座高山,一直岿然不动。

Leah花了好几天,用小写字母和数字不断组合,彻底搜索,也不管用。

更有趣的是,这个crypt算法就是Ken Thompson和另外一位密码学家Robert Morris编写的,也许Ken在算法中弄了手脚?

尝试无果的Leah把这个消息发到了邮件列表中,让全球的黑客一起想办法。

5年以后,澳大利亚人 Nigel Williams 宣称终于破解 Ken Thompson 的密码,他的密码是:p/q2-q4!

图片图片

猛一看,这像一个数学公式。而实际上是一种古老的符号,代表国际象棋中棋子的走位,意思是“线上的棋子向前移动 2 个方格(Pawns in the line move forward 2 squares”)。q 代表 Queen,p 代表 Pawn,这种走棋记法属于国际象棋的代数记谱法。

图片图片

Ken Thompson为什么用这个当密码呢? 

因为Ken热爱国际象棋,也是个国际象棋的高手,他在PDP-11上写了一个国际象棋程序,后来又制作了加速运算的特殊硬件, 最终形成了一台叫Belle的国际象棋计算机。

图片图片

Belle战绩骄人,在于人类的常规比赛中,获得了2200等级分,成为第一台荣升国际象棋大师的计算机,还获得了1980年世界计算机国际象棋大赛的冠军。

当然了,p/q2-q4!不一定是那个后门的密码,即使是,那个到后门的Unix版本估计也找不到了。

责任编辑:武晓燕 来源: 码农翻身
相关推荐

2019-01-15 08:50:41

泄露人脸数据

2016-09-22 16:47:55

iOSAndroidWindows Pho

2022-04-08 07:52:00

架构多机房多活

2024-08-01 16:06:22

2019-10-29 15:00:26

12306架构高并发

2020-07-20 07:55:53

微信支付架构

2018-04-16 11:34:59

2020-11-20 09:23:01

高可用异地淘宝

2009-06-15 18:20:27

2022-03-28 18:08:50

通信网络绿色通信节能减排

2022-09-23 08:47:01

DMA网卡CPU

2013-09-24 10:20:35

代码代码异味

2019-08-01 15:06:49

离职成本员工

2022-03-28 07:15:56

Unsafe框架工具

2020-08-05 07:00:00

SSD硬盘存储

2016-10-25 09:25:36

大数据楼市走势

2022-07-10 14:59:57

机器学习人工智能预测模型

2023-04-17 07:34:17

电商平台ChatGPT表格

2021-02-02 16:21:42

IoT授时模组科技

2022-06-12 23:01:59

元宇宙韩国贫富差距
点赞
收藏

51CTO技术栈公众号