本文,我將主要通過上圖的分類方式來探討針對USB的攻擊向量問題。最上層涉及到更多關(guān)于人類應(yīng)用、業(yè)務(wù)的基本交互場景。傳輸層包括設(shè)備的固件、協(xié)議棧等。物理層則主要描述USB總線上的通信問題。
USB介質(zhì)也為內(nèi)部攻擊者泄露機密信息提供了便利途徑。2010年,二等兵Chelsea Manning違反《反間諜法》被捕,原因是泄露了美國軍方的私人視頻。曼寧使用了便攜式存儲設(shè)備,因為出口管制很松,為了突破軍隊網(wǎng)絡(luò)的空擋,向外界泄露信息。Edward Snowden(斯諾登)使用類似的技術(shù)從位于夏威夷的軍事基地竊取了美國國家安全局的絕密數(shù)據(jù)。當然國內(nèi)的黃*事件也是很典型的案例(下圖)。USB設(shè)備的普遍性和可移植性既是挑戰(zhàn)也是機遇。一方面,它們的易用性極大地幫助了消費者和公司完成日常任務(wù)。另一方面,USB設(shè)備本身實際上是超越技術(shù)范疇的行政安全道德領(lǐng)域,可能會對組織造成巨大的影響。
二、應(yīng)用層
應(yīng)用層攻擊涉及主機用戶空間進程及其與設(shè)備功能的交互。這一層的攻擊通常分為兩類:代碼注入攻擊和數(shù)據(jù)過濾攻擊。
1. 代碼注入
USB存儲已被多個惡意軟件利用。據(jù)本人知道的案例,Duqu病毒使用應(yīng)用層rootkit來隱藏USB存儲設(shè)備上的惡意文件。Conficker、Flame病毒則使用了0day攻擊和惡意autorun。當U盤連接到主機時,inf文件自動執(zhí)行惡意軟件。盡管自動運行功能在成為Windows平臺的主要威脅之一后受到了限制,但由于操作系統(tǒng)的漏洞(Bad-USB等),類似的功能仍然可用。
2. 數(shù)據(jù)過濾
由于USB設(shè)備通常不會對主機上正在通信的應(yīng)用程序進行身份驗證,因此應(yīng)用程序可能會對USB設(shè)備寫入或者讀取數(shù)據(jù)。例如,網(wǎng)絡(luò)攝像頭本地的數(shù)據(jù)的存儲,USB設(shè)備本地日志的保存、usb應(yīng)用層存在的各種安全漏洞都可能會成為關(guān)鍵的因素。
三、傳輸層
1. 協(xié)議偽造
USB設(shè)備利用主機對任何連接設(shè)備的完全信任,它們往往為終端操作系統(tǒng)提供附加的驅(qū)動層接口。像USB橡皮鴨或USBdriveby(http://samy.pl/usbdriveby/)這樣的設(shè)備連接到主機系統(tǒng)時,它驅(qū)動層協(xié)議棧所有的回調(diào)接口(包括用戶不知道的)都會被枚舉。這種功能可以通過將惡意代碼嵌入到其他正常的設(shè)備(例如,藍牙耳機中的網(wǎng)絡(luò)適配器)來隱藏。
TURNIPSCHOOL項目(http://www.nsaplayset.org/turnipschool)是一個改進的USB電纜,該設(shè)備具有4層PCB板、內(nèi)置芯片的接口擴展 USB HUB、來自德州儀器的內(nèi)置射頻收發(fā)器單片機和一個3D打印的塑料模具。設(shè)備連接到主機后,主機上運行的軟件可以通過RF接口提取數(shù)據(jù)或接收命令。使得USB傳輸層變成可二次編程,可以用于USB設(shè)備的安全過濾產(chǎn)品的開發(fā)。
識別和減輕這些惡意的接口在傳統(tǒng)上是困難的。因為對手可以簡單地重新編程任何USB基本數(shù)據(jù)(VID、PID)來規(guī)避操作系統(tǒng)中的設(shè)備白名單或黑名單規(guī)則。此外,由于惡意人員可以合理地使用了音頻耳機等組合設(shè)備,攻擊面廣、隱藏率高,降低了攻擊的成本。
2. 協(xié)議漏洞
主機的USB協(xié)議棧只要符合USB標準就可以了,第三方完全可以自由擴展,所以肯定會有大量的傳輸協(xié)議層漏洞。使用FaceDancer進行Fuzzing技術(shù)(筆者未來會寫個Facedancer使用教程),我們會發(fā)現(xiàn)了許多內(nèi)核層的任意代碼執(zhí)行漏洞,在2017年,谷歌研究員也在不同的Linux內(nèi)核USB驅(qū)動中發(fā)現(xiàn)了超過40個漏洞。在某些情況下,這些漏洞可能在主機的設(shè)備枚舉期間被利用。也可能作為一個中間人設(shè)備進行數(shù)據(jù)的嗅探。
四、物理層
物理層攻擊包括對USB總線通信中的機密性和完整性的攻擊。
1. 物理竊聽
無論數(shù)據(jù)是否敏感,傳輸?shù)倪^程中總是需要暴露在管道一段時間。排除透明加密的情況,大部分流量一定會滿足USB底層傳輸標準,我們使用硬件鍵盤記錄器,來進行一次大流量審計,提取USB存儲、甚至USB鍵盤的重要信息。鍵盤記錄器都是小型設(shè)備,放置在主機端口和外設(shè)間抓包。在usb3.0之前,惡意外設(shè)可以竊聽所有連接設(shè)備的下行流量。
(A transparent defense againstUSB eavesdropping attacks)M.Neugschwandtner
我們甚至可以通過USB電流嗅探,示波器信道采集等方式進行攻擊,從信道數(shù)據(jù)可以獲得當前主機的重要特征信息,惡意智能手機可以使用該信息來組成攻擊目標的提權(quán)shellcode。(Android安全研究綜述)蔣紹林
Usb嗅探的另一種方法是使用USB協(xié)議分析儀提取總線狀態(tài)的時序特征,并使用機器學習分類來推斷主機的操作系統(tǒng),獲取具體信息。Betas提出了一種基于時間間隔的指紋打印方案,該方案可以從商用智能電話啟動。他們表明,特定的操作系統(tǒng)版本和型號可以以高達90%的準確度通過設(shè)備之間發(fā)送數(shù)據(jù)包的間隔來檢測。盡管基于時序的指紋顯著提高了規(guī)避漏洞的門檻,但是經(jīng)驗豐富的木馬設(shè)計者可以修改其時序特征來逃避檢測。
2. 側(cè)信道攻擊(電磁、電源攻擊)
近年來,研究人員研究攻擊者如何使用植入射頻發(fā)射器的從普通的終端中竊取數(shù)據(jù)。這種方法需要一個硬改的USB插頭或設(shè)備,還要有一個專用嵌入式的射頻發(fā)射機。USBee是一款作為射頻發(fā)射器發(fā)射電磁輻射的設(shè)備,對敏感數(shù)據(jù)進行編碼/抓取等操作。當然如果無法接觸到目標機器的時候,黑客可以用一根普通的電線觸摸目標機器暴露的金屬部分,得到的信號可以用來提取重要的密鑰信息。Oswald等人展示了如何基于功耗和電磁輻射從Yubikey 2中提取AES 128位密鑰。(Side-channel attacks on the yubikey2one-time password generator) Oswald
-
usb
+關(guān)注
關(guān)注
60文章
7847瀏覽量
263306 -
總線
+關(guān)注
關(guān)注
10文章
2849瀏覽量
87840
發(fā)布評論請先 登錄
相關(guān)推薦
評論