根據原文(附後),有以下信息:
1.兩名攻擊者Nohl和Lell花了幾個月的時間對壹個USB設備的控制器固件進行逆向工程。註意,USB設備(應該是指USB通信芯片)有壹個控制器芯片。他們發現,USB設備的固件可以被重新編程,以植入攻擊代碼(具體來說,這是指設備的固件,可以在註入攻擊代碼後重新刷入設備)。
2.目前還沒有廠商或權威機構證實這個漏洞。Nohl和Lell聯系了臺灣省的壹家USB設備制造商(具體名稱未透露)進行安全警告,制造商壹再否認攻擊的可能性。《連線》聯系了非營利組織USB實現者論壇,該組織發言人給出了壹個程式化的回答,即人們在使用USB設備時,應始終確認設備來源的可信度。
3.這篇文章和相關文件在細節上晦澀難懂,沒有更多的信息。
以下是針對本文所述攻擊的USB安全性分析:
1.大多數USB設備控制器都是ASIC,也就是這些控制器是高度定制的,沒有能力擴展其他設備,更不用說執行其他代碼了。根據原文,攻擊需要修改USB設備類型,而標記USB設備類型和各種信息的USB端點在大多數情況下都是固化在設備中的,因為這些信息不會需要更改。
但是,由於大多數USB設備控制器都是ASIC,很少有設備可能被感染。鑒於廠商對成本的敏感性,他們制造的設備盡量簡單,不具備運行惡意代碼的條件。換句話說,即使妳感染了某些設備,也只是可能被感染的設備無法運行,而不是惡意代碼。所謂USB控制器固件,大多是針對邏輯電路的配置文件,即使被篡改或破壞,也只能讓設備無法運行。很少有廠商會生產通用USB控制器。
大多數USB設備不能通過固件升級/重新編程來改變,這將使控制器非常昂貴。事實上,大多數USB設備控制器根本不支持重編程。很多ASIC沒有MCU核,完全依賴邏輯電路,這使得這類攻擊完全不可能。
2.攻擊的前提是設備固件的逆向工程。首先,不同設備、不同廠商由於設備結構不同,固件也不壹樣,不存在可以感染的惡意代碼。大部分ASIC使用定制的MCU核,根本沒有外部寄存器/編程指南,所以逆向工程是不可能的。其次,廠商通常非常註意保護設備固件,因為它通常包含敏感信息,這些信息從不公開;最後,廠商會在控制器運行時檢查固件的有效性,也就是廠商通常會對固件進行簽名和檢查。這些使得可能的攻擊只能在極少數設備上進行。
3.即使攻擊者發現由於某種原因,他可以通過改變固件來支持其他USB類和端點,並且攻擊者成功地逆轉了固件,攻擊者也必須將被篡改的固件寫入設備。USB設備控制器的固件通常存儲在芯片的金屬層中,只是只讀,不可寫。即使固件可以寫入或用外部存儲器存儲,攻擊者仍然需要制造商提供的特殊命令或特殊設備。
4.根據這篇文章,攻擊者的惡意程序位於USB控制器的空間。USB控制器的固件和PC等系統的BIOS/ firmware /OS是絕對完全隔離的,只能運行控制器預定義的USB命令。壹旦涉及到通過USB行為惡意影響PC的OS(如鍵盤鼠標輸入等。),必然會涉及繞過防火墻,獲取系統權限,不可能悄無聲息。
但必須說明的是,以上分析主要是針對我們實際使用的絕大多數USB設備;該漏洞的利用,根據其最初的描述,是通過支持通用編程開發的USB設備控制器,成功完成固件的逆向工程,然後成功將固件寫入USB設備控制器(可能直接使用開發工具)來實現的。