Shawn the R0ck 寫道 "PoC||GTFO是最近幾年深受0ld sch00l黑客喜愛的電子雜志,最近的一期(第8期)里有一篇名為Deniable Backdoors Using Compiler Bugs(利用編譯器Bug的可抵賴后門)的文章,作者向我們展示了一種可能的威脅,,這個(gè)威脅模型是需要兩個(gè)條件:1)一個(gè)可利用的編譯器miscompilation bug; 2) 向目標(biāo)的開源社區(qū)提交看起來不怎么像后門的patch,。作者修改了Sudo 1.8.13的少量代碼去利用Clang/LLVM 3.3的一個(gè)bug,最終導(dǎo)致提權(quán),。相比傳統(tǒng)的編譯器后門和傳統(tǒng)軟件后門(比如疑似NSA對(duì)Linux內(nèi)核代碼的植入),,這種方式更加的隱蔽,因?yàn)樗轻槍?duì)特定版本的編譯器下手,。
作者也對(duì)自由軟件社區(qū)的不同角色給出了對(duì)于這種后門植入的防御性建議:
編譯器開發(fā)者
* 優(yōu)先修復(fù)miscompilation bugs
* 考慮miscompilation bug針對(duì)維護(hù)版本的backport修復(fù)
* 使用fuzz工具(文章中提到了Csmith和afl)
開源包的維護(hù)人員
* 謹(jǐn)慎的接收代碼提交
* 考慮重新實(shí)現(xiàn)一些patch
GNU/Linux發(fā)行版打包人員
* 評(píng)估編譯器的可靠性
* 在所有的平臺(tái)上測(cè)試編譯的程序后再進(jìn)行部署
* 對(duì)系統(tǒng)編譯器進(jìn)行"trusting trust"測(cè)試
終端用戶
* 使用不同的編譯器或者編譯器版本對(duì)源代碼進(jìn)行重新編譯
* 對(duì)預(yù)編譯的程序進(jìn)行你自己定制的測(cè)試(比如針對(duì)某些程序功能的回歸測(cè)試)
研究人員
* 開發(fā)可被證明對(duì)這種利用方式免疫的編譯器
* 開發(fā)可檢測(cè)miscompilation的驗(yàn)證模式
* 開發(fā)可檢測(cè)后門執(zhí)行的多版本編程系統(tǒng)"