發(fā)布時(shí)間:2020-11-11 分類(lèi): 電商動(dòng)態(tài)
開(kāi)發(fā)人員社區(qū)中最近的討論是XcodeGhost。事實(shí)上,20年前,出現(xiàn)了更復(fù)雜的手段。
1984年,UNIX創(chuàng)作者之一Ken Thompson獲得了ACM圖靈獎(jiǎng)。他的獲獎(jiǎng)演講名為“信任信任的思考”。
1984年圖靈獎(jiǎng)得主Ken Thompson
在這個(gè)三頁(yè)的演講中,手稿描述了如何構(gòu)建一個(gè)很難找到的編譯器后門(mén)。這后來(lái)被稱(chēng)為Ken Thompson Hack(KTH),它被認(rèn)為是所有邪惡的根密碼。
在第一步中,Thompson展示了一個(gè)可以輸出自己的源代碼的C程序。這需要一些技巧,但許多人已經(jīng)將其作為編程練習(xí)。
在第二步中,Thompson向C編譯器添加了一段代碼(后門(mén)),以便在檢測(cè)到它正在編譯UNIX登錄命令時(shí)將后門(mén)插入到輸出中。此后門(mén)將允許作者使用特定密碼以root身份登錄系統(tǒng)。
在第三步中,Thompson使用第一步方法在編譯器的第二步中添加另一段代碼(后門(mén)生成器),以便編譯器在檢測(cè)到它正在編譯時(shí)自動(dòng)檢測(cè)第二步的后門(mén)。并且第三步的后門(mén)發(fā)電機(jī)插入輸出。
獲得第三步編譯器后,您可以從源代碼中刪除代碼的第二步和第三步,因?yàn)樾戮幾g器將自動(dòng)編譯自己的“干凈”源代碼。后門(mén)和后門(mén)發(fā)電機(jī)增加了。許多語(yǔ)言編譯器使用“bootstrap”方法進(jìn)行編譯,也就是說(shuō),編譯器將使用舊版本的編譯器來(lái)編譯新版本的源代碼,因此可以在開(kāi)源項(xiàng)目中找到這樣一個(gè)高風(fēng)險(xiǎn)的后門(mén)程序。 。通過(guò)閱讀此編譯器的源代碼無(wú)法找到此后門(mén)。
KTH也可以增強(qiáng),使其更難檢測(cè)。例如,這個(gè)編譯器可以污染開(kāi)發(fā)過(guò)程中使用的工具,例如由它編譯的調(diào)試器和反編譯器,這樣即使程序員反編譯編譯器,它仍然會(huì)看到干凈的代碼,除非他使用KTH注入。的版本。因此,當(dāng)使用KTH注入的此編譯器來(lái)自官方渠道時(shí),其后門(mén)幾乎不會(huì)引起注意并影響所有用戶。
最新的XcodeGhost只能被視為Ken Thompson Hack的簡(jiǎn)化版本。它不會(huì)試圖隱藏自己,它不是編譯器本身,而是Xcode附帶的框架庫(kù)。
湯普森在演講中總結(jié)說(shuō)即使是開(kāi)源項(xiàng)目也無(wú)法保證安全。無(wú)論硬件還是微代碼后門(mén),只有當(dāng)每個(gè)正在運(yùn)行的程序完全由自己編寫(xiě)時(shí),才能保證安全性。但是誰(shuí)只能運(yùn)行他們?cè)谟?jì)算機(jī)上編寫(xiě)的程序?我擔(dān)心只有Ken Thompson和Dennis Ritchie可以用自己語(yǔ)言編寫(xiě)的操作系統(tǒng)上自己的編譯器編譯自己的操作系統(tǒng)。
肯·湯普森在貝爾實(shí)驗(yàn)室退休后幾年加入谷歌。在谷歌,他與他的老貝爾同事一起發(fā)明了Go語(yǔ)言。自1.5版以來(lái),Go已在引導(dǎo)模式下編譯。 ; - )
« 螞蟻是更多的騙局。螞蟻已經(jīng)對(duì)相關(guān)業(yè)務(wù)進(jìn)行了處罰 | 《邪惡力量》在第15季拍攝!該電視網(wǎng)CW續(xù)訂公開(kāi)名單的情節(jié) »
周一周五 8:30 - 18:00
客服QQ