《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 供應鏈攻擊,從源頭上摧毀信任的故事在40年前就已上演

供應鏈攻擊,從源頭上摧毀信任的故事在40年前就已上演

2021-06-12
來源: FreeBuf
關鍵詞: 供應鏈

  從NotPetya到SolarWinds,這是一個不會很快消失的問題。

  長期以來,網(wǎng)絡安全問題一直被老生常談地用一些簡單的信任術語來描述:要提防陌生來源的電子郵件附件,不要將憑據(jù)交給欺詐性網(wǎng)站。但是,越來越多老練的黑客正在破壞這種基本的信任感,并提出一個關鍵性問題:如果構成網(wǎng)絡的合法硬件和軟件從源頭上受到損害怎么辦?

  這就是供應鏈攻擊,一種攻擊者將惡意代碼甚至惡意組件插入受信任的軟件或硬件中的攻擊方式。通過攻擊單個供應商,攻擊者可以劫持其分發(fā)系統(tǒng),將供應商銷售的任何應用程序、推出的任何軟件更新,甚至是他們運送給客戶的物理設備,都變成特洛伊木馬。

  通過一次“適當”的入侵,攻擊者就能以供應商的客戶網(wǎng)絡為跳板,斬獲成百上千的受害者。這是因為攻擊者清楚——客戶是信任其整個生態(tài)的,包括信任自己的供應商的。他們“巧妙地”利用了這些信任。

  從編譯器開始的信任摧毀

  供應鏈威脅的嚴重性在去年 12 月得到了大規(guī)模證明。俄羅斯黑客(后來被美國指認為俄羅斯情報機構 SVR)入侵了軟件公司 SolarWinds 并在其 IT 管理工具 Orion 中植入了惡意代碼,從而允許訪問全球使用該應用程序的多達 18000 個網(wǎng)絡。攻擊者甚至利用這個立足點深入挖掘了至少9個美國聯(lián)邦機構的網(wǎng)絡,包括 NASA、美國國務院、國防部和司法部。

  無獨有偶。就在上個月,有消息稱黑客入侵了CodeCov公司出售的軟件開發(fā)工具,該工具使黑客能夠訪問數(shù)百個受害者的網(wǎng)絡。2017年名為Sandworm的俄羅斯黑客組織(隸屬于俄羅斯GRU軍事情報部門)則劫持了烏克蘭會計軟件 MEDoc的軟件更新,并利用軟件更新來分發(fā) NotPetya代碼,最終在全球造成 100 億美元的損失。

  事實上,最早的供應鏈攻擊大約在40年前就首次出現(xiàn)。

  當時Unix操作系統(tǒng)的創(chuàng)造者之一Ken Thompson想看看他是否可以在Unix的登錄功能中隱藏一個后門。因此,Ken Thompson自己植入了一段惡意代碼,這使他能夠登錄任何系統(tǒng),并且他還構建了一個編譯器,一個將可讀源代碼轉換為機器可讀的可執(zhí)行程序的工具。該工具會在編譯時秘密地將后門放置在函數(shù)中,接著,Ken Thompson進一步地破壞了編譯編譯器的工具。

  簡單來說,這是一種編譯器“學會”編譯后門,并在將來的編譯器代碼中移除它從而無法在源碼中發(fā)現(xiàn)篡改痕跡,最終利用人們對編譯器的信任來激活后門的攻擊方式。

  1984 年,Ken Thompson在的一次演講中分享了這件事,他說“你不能相信不是完全由你自己創(chuàng)造的代碼(尤其是那些雇用像我這樣的人的公司的代碼)。”

  此后,2015年的PoC||GTFO電子雜志上也刊登了一篇名為Deniable Backdoors Using Compiler Bugs的文章,講述如何通過一個可利用的編譯器 miscompilation bug,并且向目標的開源社區(qū)提交看起來不怎么像后門的patch,從而實現(xiàn)提權。這種針對特定版本的編譯器的利用方式更為隱蔽更難察覺。有興趣的可以自己看一下原文:https://www.alchemistowl.org/pocorgtfo/pocorgtfo08.pdfDeniable Backdoors Using Compiler Bugs的作者當時也對開源社區(qū)防御后門植入提出了相應建議,雖然文章距今數(shù)年,但仍然具備參考價值。

  編譯器開發(fā)人員

  盡快修復已知的錯誤編譯bug

  考慮將錯誤編譯bug的修復程序向后移植(backport)到維護版本中使用fuzz工具尋找問題

  開源包的維護人員

  對提交過來的奇怪的patch持懷疑態(tài)度

  考慮重寫patch

  操作系統(tǒng)打包人員

  在選擇系統(tǒng)編譯器之前評估編譯器的可靠性

  在所有平臺上測試編譯代碼后再開始部署

  在系統(tǒng)編譯器上運行trusting trust test測試終端用戶

  使用不同的編譯器或編譯器版本從源代碼重新編譯系統(tǒng)在預編譯的應用程序上運行驗收測試

  研究人員

  創(chuàng)建可以被證明不會被此種方式利用的編譯器

  創(chuàng)建可檢測到 miscompilation的編譯驗證功能創(chuàng)建可在后門執(zhí)行中檢測到的多版本編程系統(tǒng)

  用“不完全信任”瓦解供應鏈攻擊

  研究認為,供應鏈攻擊的增長是因為基本攻擊防御已經(jīng)得到改善,因此黑客不得不尋求更為脆弱的入口。而且供應鏈攻擊的規(guī)模效應——破壞一個供應商即可訪問上百個網(wǎng)絡,也讓黑客覺得“物超所值”。

  預防未來的供應鏈攻擊并非易事,公司也沒有簡單的方法來確保他們購買的軟件和硬件沒有被損壞。

  注:硬件供應鏈攻擊,攻擊者在設備中植入惡意代碼或組件,一般特別難以檢測。

  因此,美國網(wǎng)絡安全和基礎設施安全局的高級顧問 Beau Woods 認為,供應鏈攻擊的解決方案與其說是技術上的,不如說是組織上的。公司和政府機構需要知道他們的軟件和硬件供應商是誰,對他們進行審查,并確保他們符合某些標準。簡單來說,最好可以簡化供應鏈,讓更少的供應商提供更高質量的組件,而軟件開發(fā)和 IT 運營在某些方面也需要重新學習這些供應鏈原則。

  值得注意的是,白宮在早些時候發(fā)布了網(wǎng)絡安全行政命令,為任何想要向聯(lián)邦機構出售軟件的公司設定了新的最低安全標準,可以作為一定的參考。

  最后,Reflect on Trusting Trust,反思你所信任的。只有不能完全相信任何不是自己編寫的代碼,但是相信你所信任且經(jīng)過審查的供應商代碼,或許這是應對供應鏈攻擊的理念前提。

  




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