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

Trojan Source:源碼漏洞隱藏技術(shù)分析

2021-11-06
來(lái)源:嘶吼專業(yè)版
關(guān)鍵詞: 源碼漏洞

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

  濫用文本編碼標(biāo)準(zhǔn)

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

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

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

  微信圖片_20211106131334.jpg

  雙向和同形字攻擊

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

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

  如下圖所示,通過(guò)對(duì)第二行的字符進(jìn)行RLI/LRI控制,人眼認(rèn)為其是編譯器會(huì)忽略的注釋,但事實(shí)并不是。

  微信圖片_20211106131337.jpg

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

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

  微信圖片_20211106131339.jpg

  Trojan Source 攻擊—— 同形字

  PoC

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

  PoC代碼參見(jiàn):https://github.com/nickboucher/trojan-source

  其他

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

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

  關(guān)于Trojan Source攻擊的論文下載地址:

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




電子技術(shù)圖片.png


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