Unix的作者Ken Thompson有種神奇的本事,他大搖大擺地走到公司任何一臺(tái)Unix電腦前,輸入自己的用戶名和密碼,就可以以root身份登錄系統(tǒng),為所欲為。
圖片
貝爾實(shí)驗(yàn)室人才濟(jì)濟(jì),看到Ken這么“囂張”,另外一些大牛發(fā)誓要把這個(gè)漏洞給找出來(lái),他們通讀了Unix源碼,終于找到了Ken安放的登錄的后門,清理后編譯Unix,再次運(yùn)行,可是Ken Thompson還能以root身份登錄。
圖片
既然源碼沒(méi)問(wèn)題,那肯定是編譯的過(guò)程出了問(wèn)題!
編譯器一定被Ken動(dòng)了手腳,在編譯Unix時(shí)植入后門!
于是,大牛們重新寫了一個(gè)干凈的編譯器,用這個(gè)干凈的編譯器去編譯干凈的Unix,這下世界清凈了吧?
可依然不管用,Ken像上帝一般,照樣以root身份登錄。
這實(shí)在是太讓人崩潰了!
后來(lái),還是Ken Thompson本人解開了這個(gè)秘密。
原來(lái),問(wèn)題在于Ken寫的第一個(gè)C編譯器,它在編譯Unix源碼時(shí),會(huì)植入后門。
圖片
但這還不夠,更牛的是,當(dāng)其他人寫了編譯器,肯定也需要編譯成二進(jìn)制的代碼,用什么來(lái)編譯呢?當(dāng)然是Ken寫的那第一個(gè)編譯器,于是,這個(gè)新的編譯器也被污染了。
再用新的編譯器去編譯Unix,也會(huì)植入后門。
圖片
所以,這就是Ken在1984年獲得圖靈獎(jiǎng)演講時(shí),提出的關(guān)鍵問(wèn)題:
如果你沒(méi)有編寫全部的代碼,那你自己寫的代碼是不能被信任的。
無(wú)論多少源代碼級(jí)別的審核都不能保證安全性,因?yàn)槟阋蕾嚨能浖拖到y(tǒng)中還是可能有后門。
Ken選擇了C編譯器做手腳,但實(shí)際上他還可以選擇匯編器,load程序,甚至硬件級(jí)別的微代碼,隨著程序級(jí)別越來(lái)越低,這些錯(cuò)誤越來(lái)難以被檢測(cè)到。
相比而言,相信編寫軟件的人更加重要。
那么這個(gè)后門僅僅局限于貝爾實(shí)驗(yàn)室,還是外界也能用?
開源先鋒Eric S. Raymond提到過(guò),有兩份獨(dú)立的報(bào)告展示,那個(gè)帶后門的Unix版本確實(shí)從貝爾實(shí)驗(yàn)室“泄露了”,進(jìn)入了BBN公司。
BBN即雷神公司,曾經(jīng)深度參與互聯(lián)網(wǎng)的前身——ARPANET——的構(gòu)建。
圖片
報(bào)告稱,有人在深夜通過(guò)網(wǎng)絡(luò)用“kt”這個(gè)登錄名進(jìn)行了登錄BBN的Unix,kt很可能就是Ken Thompson的縮寫。
如果BBN的電腦被感染,那么其他地方的電腦被感染的可能性也非常高。
你可能會(huì)好奇,Ken的密碼是什么?知道了它不就可以登錄任意一臺(tái)Unix電腦了?
2014年,一個(gè)叫l(wèi)eah的網(wǎng)友在BSD 3 源碼樹的文件轉(zhuǎn)儲(chǔ)中發(fā)現(xiàn)了一個(gè)/etc/passwd 文件。
這真是一個(gè)寶藏,因?yàn)槔镞叞亩际荱nix前輩的密碼,每一個(gè)人都大名鼎鼎,如雷貫耳!
如Dennis Ritchie, Brian W. Kernighan, Steve Bourne and Bill Joy,當(dāng)然,Ken Thompson的密碼也在內(nèi)。
圖片
由于該密碼用基于 DES 的 crypt(3) 算法加密后的散列hash值,而 crypt(3) 是一種弱加密算法(最多限于 8 個(gè)字符),Leah 覺(jué)得破解起來(lái)應(yīng)該比較容易,所以決定嘗試。
很快,那些簡(jiǎn)單的密碼就被破解了,但是Ken Thompson的密碼卻如同一座高山,一直巋然不動(dòng)。
Leah花了好幾天,用小寫字母和數(shù)字不斷組合,徹底搜索,也不管用。
更有趣的是,這個(gè)crypt算法就是Ken Thompson和另外一位密碼學(xué)家Robert Morris編寫的,也許Ken在算法中弄了手腳?
嘗試無(wú)果的Leah把這個(gè)消息發(fā)到了郵件列表中,讓全球的黑客一起想辦法。
5年以后,澳大利亞人 Nigel Williams 宣稱終于破解 Ken Thompson 的密碼,他的密碼是:p/q2-q4!
圖片
猛一看,這像一個(gè)數(shù)學(xué)公式。而實(shí)際上是一種古老的符號(hào),代表國(guó)際象棋中棋子的走位,意思是“線上的棋子向前移動(dòng) 2 個(gè)方格(Pawns in the line move forward 2 squares”)。q 代表 Queen,p 代表 Pawn,這種走棋記法屬于國(guó)際象棋的代數(shù)記譜法。
圖片
Ken Thompson為什么用這個(gè)當(dāng)密碼呢?
因?yàn)镵en熱愛(ài)國(guó)際象棋,也是個(gè)國(guó)際象棋的高手,他在PDP-11上寫了一個(gè)國(guó)際象棋程序,后來(lái)又制作了加速運(yùn)算的特殊硬件, 最終形成了一臺(tái)叫Belle的國(guó)際象棋計(jì)算機(jī)。
圖片
Belle戰(zhàn)績(jī)驕人,在于人類的常規(guī)比賽中,獲得了2200等級(jí)分,成為第一臺(tái)榮升國(guó)際象棋大師的計(jì)算機(jī),還獲得了1980年世界計(jì)算機(jī)國(guó)際象棋大賽的冠軍。
當(dāng)然了,p/q2-q4!不一定是那個(gè)后門的密碼,即使是,那個(gè)到后門的Unix版本估計(jì)也找不到了。

本文鏈接:http://m.www897cc.com/showinfo-26-93365-0.html操作系統(tǒng)大神制造的木馬,到底有多可怕?
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com