《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > Trojan Source:源碼漏洞隱藏技術分析

Trojan Source:源碼漏洞隱藏技術分析

2021-11-06
來源:嘶吼專業(yè)版
關鍵詞: 源碼漏洞

  研究人員發(fā)現(xiàn)可在源碼中隱藏惡意代碼的漏洞。

  濫用文本編碼標準

  英國劍橋大學研究人員Nicholas Boucher和Ross Anderson發(fā)現(xiàn)了一種可以在源碼中隱藏漏洞的新方法——Trojan Source。與傳統(tǒng)的插入邏輯漏洞相比,研究人員發(fā)現(xiàn)可以通過攻擊源碼文件的編碼方式來注入漏洞。Trojan Source攻擊對軟件和供應鏈來說是巨大的威脅。

  研究人員發(fā)現(xiàn)用C、C++、C#、JavaScript、Java、Rust、Go和Python編寫的項目都可能會成為攻擊者的目標。具體的方式就是使用Unicode控制字符來對源碼中的token進行在編碼層進行重新排序。攻擊利用Unicode這樣的文本編碼標準中的微小差異(變化)來生成源碼,將token邏輯嵌入到不同的順序中,使得漏洞無法被人類觀察者感知到。

  通過利用嵌入在注釋和字符串中的控制字符,攻擊者可以對源碼邏輯進行重新排序以實現(xiàn)新的邏輯,并創(chuàng)建一個可利用的漏洞。

  微信圖片_20211106131334.jpg

  雙向和同形字攻擊

  研究人員指出其中一種攻擊方式就是對雙向文本使用Unicode控制以表明內(nèi)容展示的方向。該方法CVE編號為CVE-2021-42574。

  雙向控制LRI和RLI是不可見的字符。但這并不是唯一不可見的字符。此外,通過注入這些指令,編譯器可以編譯出與人眼看到的完全不同的代碼。

  如下圖所示,通過對第二行的字符進行RLI/LRI控制,人眼認為其是編譯器會忽略的注釋,但事實并不是。

  微信圖片_20211106131337.jpg

  Trojan Source攻擊——雙向控制覆寫字符

  另一種攻擊方式是同形字攻擊,CVE編號為CVE-2021-42694。即利用看著很像的不同字符,比如數(shù)字0和字母O,小寫的l和大寫的I。

  微信圖片_20211106131339.jpg

  Trojan Source 攻擊—— 同形字

  PoC

  研究人員對多個主流的代碼編輯器和基于web的庫進行了Trojan Source攻擊測試,發(fā)現(xiàn)大多數(shù)受測的代碼編輯器和基于web的庫都受到Trojan Source攻擊的影響。

  PoC代碼參見:https://github.com/nickboucher/trojan-source

  其他

  7月25日,研究人員通知了受到Trojan Source攻擊影響的產(chǎn)品維護廠商,并設置了一個99天的漏洞修復期限。研究人員從其中5個廠商收到了平均2246美元的漏洞獎勵。

  雖然目前大多數(shù)編譯器是無法應對Trojan Source攻擊的,但有3個廠商稱正在部署針對Trojan Source攻擊的防護措施。

  關于Trojan Source攻擊的論文下載地址:

https://www.trojansource.codes/trojan-source.pdf




電子技術圖片.png


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。