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