天天看點

基于USB的攻擊向量總結

基于USB的攻擊向量總結

本文,我将主要通過上圖的分類方式來探讨針對USB的攻擊向量問題。最上層涉及到更多關于人類應用、業務的基本互動場景。傳輸層包括裝置的固件、協定棧等。實體層則主要描述USB總線上的通信問題。

一、人類因素

本節從人類本身的特點讨論USB的攻擊行為。例如:機密USB被外部人員或組織的利用等。

0xA1 外部威脅

大部分安全從業人員認為,所有的USB攻擊都是主機插入了外部usb裝置,而這些裝置通常帶有不同形式的惡意代碼。惡意人員會想方設法的欺騙使用者,将一個不可信的裝置插入到他們的主機中。在社會工程學範疇,這并不是很困難的事情。根據Steve Stasiukonis報告《Social engineering, theUSB way》說,2006年的滲透測試行動中,黑客在三天内将威脅U盤插入了目标公司内部的75%的主機上。美國國土安全部(Department of Homeland Security)在一項類似的實驗中也證明了了這一結果,60%的政府裝置有機會會被外部人員接觸;更有意思的是,報告還指出,當司機、文秘等職業得到更多的場所準入權之後,外部人員接觸終端裝置的數字上升到90%。

0xA2 内部威脅

USB裝置快速下降的成本使公司和消費者選擇利用USB裝置存儲和傳輸涉密資料。與任何實體裝置一樣,USB驅動器也可能因人為錯誤而損壞,丢棄。這種處理往往會導緻有害的結果。2011年,Ponemon Institute(波耐蒙研究所)釋出了一項研究,記錄了400家不同的公司;他們發現這些公司因為随意丢棄USB裝置而損失了250萬美元。2011年晚些時候,一名澳洲國防援助人員在經過科威特時丢失了存儲在U盤上的絕密檔案。完美的人越是容易犯錯誤,這樣總會給公司甚至國家帶來沉重的代價。

基于USB的攻擊向量總結

USB媒體也為内部攻擊者洩露機密資訊提供了便利途徑。2010年,二等兵Chelsea Manning違反《反間諜法》被捕,原因是洩露了美國軍方的私人視訊。曼甯使用了便攜式儲存設備,因為出口管制很松,為了突破軍隊網絡的空擋,向外界洩露資訊。Edward Snowden(斯諾登)使用類似的技術從位于夏威夷的軍事基地竊取了美國國家安全局的絕密資料。當然國内的黃*事件也是很典型的案例(下圖)。USB裝置的普遍性和可移植性既是挑戰也是機遇。一方面,它們的易用性極大地幫助了消費者和公司完成日常任務。另一方面,USB裝置本身實際上是超越技術範疇的行政安全道德領域,可能會對組織造成巨大的影響。

基于USB的攻擊向量總結

二、應用層

應用層攻擊涉及主機使用者空間程序及其與裝置功能的互動。這一層的攻擊通常分為兩類:代碼注入攻擊和資料過濾攻擊。

0xB1 代碼注入

USB存儲已被多個惡意軟體利用。據本人知道的案例,Duqu病毒使用應用層rootkit來隐藏USB儲存設備上的惡意檔案。Conficker、Flame病毒則使用了0day攻擊和惡意autorun。當U盤連接配接到主機時,inf檔案自動執行惡意軟體。盡管自動運作功能在成為Windows平台的主要威脅之一後受到了限制,但由于作業系統的漏洞(Bad-USB等),類似的功能仍然可用。

0xB2 資料過濾

由于USB裝置通常不會對主機上正在通信的應用程式進行身份驗證,是以應用程式可能會對USB裝置寫入或者讀取資料。例如,網絡攝像頭本地的資料的存儲,USB裝置本地日志的儲存、usb應用層存在的各種安全漏洞都可能會成為關鍵的因素。

三、傳輸層

0xC1 協定僞造

USB裝置利用主機對任何連接配接裝置的完全信任,它們往往為終端作業系統提供附加的驅動層接口。像USB橡皮鴨或USBdriveby(http://samy.pl/usbdriveby/)這樣的裝置連接配接到主機系統時,它驅動層協定棧所有的回調接口(包括使用者不知道的)都會被枚舉。這種功能可以通過将惡意代碼嵌入到其他正常的裝置(例如,藍牙耳機中的網絡擴充卡)來隐藏。

TURNIPSCHOOL項目(http://www.nsaplayset.org/turnipschool)是一個改進的USB電纜,該裝置具有4層PCB闆、内置晶片的接口擴充 USB HUB、來自德州儀器的内置射頻收發器單片機和一個3D列印的塑膠模具。裝置連接配接到主機後,主機上運作的軟體可以通過RF接口提取資料或接收指令。使得USB傳輸層變成可二次程式設計,可以用于USB裝置的安全過濾産品的開發。

識别和減輕這些惡意的接口在傳統上是困難的。因為對手可以簡單地重新程式設計任何USB基本資料(VID、PID)來規避作業系統中的裝置白名單或黑名單規則。此外,由于惡意人員可以合理地使用了音頻耳機等組合裝置,攻擊面廣、隐藏率高,降低了攻擊的成本。

0xC2 協定漏洞

主機的USB協定棧隻要符合USB标準就可以了,第三方完全可以自由擴充,是以肯定會有大量的傳輸協定層漏洞。使用FaceDancer進行Fuzzing技術(筆者未來會寫個Facedancer使用教程),我們會發現了許多核心層的任意代碼執行漏洞,在2017年,谷歌研究員也在不同的Linux核心USB驅動中發現了超過40個漏洞。在某些情況下,這些漏洞可能在主機的裝置枚舉期間被利用。也可能作為一個中間人裝置進行資料的嗅探。

基于USB的攻擊向量總結

四、實體層

實體層攻擊包括對USB總線通信中的機密性和完整性的攻擊。

0xD1 實體竊聽

無論資料是否敏感,傳輸的過程中總是需要暴露在管道一段時間。排除透明加密的情況,大部分流量一定會滿足USB底層傳輸标準,我們使用硬體鍵盤記錄器,來進行一次大流量審計,提取USB存儲、甚至USB鍵盤的重要資訊。鍵盤記錄器都是小型裝置,放置在主機端口和外設間抓包。在usb3.0之前,惡意外設可以竊聽所有連接配接裝置的下行流量。

(A transparent defense againstUSB eavesdropping attacks)M.Neugschwandtner

基于USB的攻擊向量總結

我們甚至可以通過USB電流嗅探,示波器信道采集等方式進行攻擊,從信道資料可以獲得目前主機的重要特征資訊,惡意智能手機可以使用該資訊來組成攻擊目标的提權shellcode。(Android安全研究綜述)蔣紹林

Usb嗅探的另一種方法是使用USB協定分析儀提取總線狀态的時序特征,并使用機器學習分類來推斷主機的作業系統,擷取具體資訊。Betas提出了一種基于時間間隔的指紋列印方案,該方案可以從商用智能電話啟動。他們表明,特定的作業系統版本和型号可以以高達90%的準确度通過裝置之間發送資料包的間隔來檢測。盡管基于時序的指紋顯着提高了規避漏洞的門檻,但是經驗豐富的木馬設計者可以修改其時序特征來逃避檢測。

基于USB的攻擊向量總結

0xD2 側信道攻擊(電磁、電源攻擊)

近年來,研究人員研究攻擊者如何使用植入射頻發射器的從普通的終端中竊取資料。這種方法需要一個硬改的USB插頭或裝置,還要有一個專用嵌入式的射頻發射機。USBee是一款作為射頻發射器發射電磁輻射的裝置,對敏感資料進行編碼/抓取等操作。當然如果無法接觸到目标機器的時候,黑客可以用一根普通的電線觸摸目标機器暴露的金屬部分,得到的信号可以用來提取重要的密鑰資訊。Oswald等人展示了如何基于功耗和電磁輻射從Yubikey 2中提取AES 128位密鑰。(Side-channel attacks on the yubikey2one-time password generator) Oswald

基于USB的攻擊向量總結

電量注入的能力也被用來對終端造成實體損壞。USB Killer在USB key的PCB闆的兩側嵌入多個電容。一旦連接配接到主機,USB殺手從主機USB總線消耗電流,對自己的電容器進行充電。一旦完全充電,負200V DC通過主機的USB資料線放電。這個充電/放電循環一直進行,直到USB killer移除或終端被破壞。在新版本的USB電源傳輸和Type-C連接配接器标準中,裝置能夠擷取和傳輸高達100W的電量,它們可以損壞主機且不可修複。(完)

基于USB的攻擊向量總結

*本文原創作者:李泉@戰争販子,本文屬于FreeBuf原創獎勵計劃,未經許可禁止轉載