張乃珩
(紐卡斯?fàn)柎髮W(xué),紐卡斯?fàn)朜E1 7RV,英國)
目前,雖然USB設(shè)備作為在網(wǎng)絡(luò)信息系統(tǒng)中應(yīng)用非常普遍的一種終端設(shè)備,在輸入輸出設(shè)備、多媒體設(shè)備、通信設(shè)備、儲存器等領(lǐng)域發(fā)揮著越來越重要的作用,但是它的安全性問題卻一直沒有得到足夠的關(guān)注和重視. 即使有像Stuxnet[1]這種典型的攻擊事件的警醒,提高了人們對USB設(shè)備安全問題的關(guān)注度,但目前來看在該領(lǐng)域的研究仍然還有很多的問題亟須解決.
為了厘清目前USB設(shè)備安全研究領(lǐng)域存在的問題和挑戰(zhàn),本文從攻擊和防御兩個角度對已知的USB設(shè)備安全問題展開分析研究,并在此基礎(chǔ)上總結(jié)提出USB設(shè)備安全問題的發(fā)展趨勢,從而為未來的研究提供思路和方向.
自1991年USB1.0誕生以來,USB協(xié)議得到了迅速發(fā)展,逐漸取代了很多其他串行總線協(xié)議而成為當(dāng)前應(yīng)用非常廣泛的一種數(shù)據(jù)傳輸方式,因此采用USB 協(xié)議的USB 設(shè)備在種類和數(shù)量上也都得到了極大豐富.正是因為USB設(shè)備的大發(fā)展吸引了攻擊者的注意力,各種針對USB設(shè)備的攻擊技術(shù)開始出現(xiàn),各類網(wǎng)絡(luò)攻擊事件更加深了人們對USB設(shè)備安全問題的關(guān)注.
基于安全問題存在形式的不同,現(xiàn)有的USB設(shè)備安全問題可以分為如圖1所示的四種類型,即USB設(shè)備作為攻擊負(fù)載的傳播媒介、USB HID攻擊、BadUSB攻擊和驅(qū)動漏洞利用攻擊.
圖1 USB設(shè)備安全問題Fig.1 Security issues of USB equipments
隨著網(wǎng)絡(luò)安全防護(hù)技術(shù)的發(fā)展和實際部署的各種安全機(jī)制的逐步完善,以前通過網(wǎng)絡(luò)連接進(jìn)行的攻擊負(fù)載的傳播方式受到了很大限制,實現(xiàn)越來越困難,很容易被入侵檢測系統(tǒng)等檢測到. 另外,當(dāng)攻擊者的攻擊目標(biāo)部署在一個相對封閉的內(nèi)部網(wǎng)絡(luò)環(huán)境時,例如工控系統(tǒng)、監(jiān)控系統(tǒng)等,如何將攻擊負(fù)載傳輸?shù)侥繕?biāo)所在的內(nèi)網(wǎng)中就成為攻擊者要解決的一個非?;A(chǔ)和關(guān)鍵的問題.
針對上述問題,隨著USB設(shè)備的普遍運(yùn)用,攻擊者開始將目光轉(zhuǎn)移到USB設(shè)備上,尤其是針對使用USB協(xié)議的移動存儲設(shè)備,例如優(yōu)盤、移動硬盤等. 攻擊者通過分析發(fā)現(xiàn),為了方便使用,早期很多操作系統(tǒng)(例如2011年前的Windows 操作系統(tǒng))都支持和允許移動存儲設(shè)備在其根目錄下添加autorun.inf 和setup.exe 文件,實現(xiàn)自動運(yùn)行功能. 因此,當(dāng)移動儲存設(shè)備通過USB接口連接到主機(jī)時,通過自動運(yùn)行功能可以實現(xiàn)多種自動化的操作. 為了利用這一機(jī)制,攻擊者首先將惡意代碼置于存儲設(shè)備中,并通過設(shè)置autorun.inf 和setup.exe自動執(zhí)行功能,實現(xiàn)將惡意代碼從存儲設(shè)備轉(zhuǎn)移到目標(biāo)主機(jī)的相應(yīng)操作,從而解決前面提到的攻擊負(fù)載傳播和傳染的問題(如Stuxnet[1]、Conficker[2]、Flame[3]等). 圖2 展示了Stuxnet 攻擊的實現(xiàn)過程,可見攻擊者就是以優(yōu)盤作為媒介,將攻擊負(fù)載從外網(wǎng)最終傳播到了伊朗核設(shè)施的相應(yīng)控制系統(tǒng)內(nèi).
圖2 Stuxnet攻擊流程Fig.2 Stuxnet attack flow
因此,USB設(shè)備安全問題的早期表現(xiàn)主要是作為一種攻擊負(fù)載的傳播途徑,當(dāng)將攻擊負(fù)載復(fù)制到目標(biāo)主機(jī)后,具體的攻擊操作則仍然由攻擊負(fù)載實施,USB設(shè)備并不參與后續(xù)的攻擊操作.
隨著USB設(shè)備的普遍使用和地位的提高,攻擊者已經(jīng)不再滿足僅僅將USB設(shè)備作為攻擊負(fù)載傳播的一種媒介,開始探索更加直接和隱蔽的USB設(shè)備攻擊方式.
USB人機(jī)交互設(shè)備(Human Interface Device,HID)是一種非常重要和廣泛使用的USB設(shè)備類型,被廣泛應(yīng)用于人機(jī)交互和少量實時數(shù)據(jù)傳輸中,例如鍵盤、鼠標(biāo)、游戲桿等應(yīng)用場景. USB HID設(shè)備最主要的特點(diǎn)是可以模擬人和機(jī)器的交互過程,能夠主動地向連接的主機(jī)中傳輸數(shù)據(jù)和命令. 同時,基于USB HID協(xié)議中的約定,USB HID設(shè)備無須安裝驅(qū)動就能與主機(jī)進(jìn)行交互. 另外,操作系統(tǒng)完全信任與USB HID設(shè)備的整個交互過程. 基于上述原因和背景,在2010年美國黑客安全大會上,Pisani等首次提出并展示了USB HID攻擊[4].
USB HID攻擊技術(shù)是利用USB接口偽造用戶鍵盤敲擊等行為實施的一種攻擊方式. 攻擊者首先設(shè)計實現(xiàn)一個具有惡意功能的USB HID 設(shè)備,當(dāng)該設(shè)備被接入到某個目標(biāo)主機(jī)中時,通過在設(shè)備枚舉過程中將自己聲明為一個HID設(shè)備,由于主機(jī)無條件相信外部設(shè)備. 因此該設(shè)備將被作為HID設(shè)備并觸發(fā)主機(jī)加載相應(yīng)的HID 驅(qū)動程序,之后惡意USB設(shè)備即可直接執(zhí)行事先設(shè)計好的通過模擬鍵盤按鍵操作、鼠標(biāo)操作等構(gòu)造的攻擊行為(例如篡改系統(tǒng)網(wǎng)絡(luò)配置、讀取和泄露用戶敏感信息等).
USB HID攻擊相對于僅將USB作為傳播介質(zhì)的攻擊方式具有以下兩個特點(diǎn).
1)隱蔽性更強(qiáng):USB HID攻擊模仿用戶按鍵操作,使得操作系統(tǒng)將輸入的數(shù)據(jù)或命令當(dāng)作來自用戶的鍵盤或鼠標(biāo)操作,因此系統(tǒng)并不對輸入數(shù)據(jù)或命令進(jìn)行任何監(jiān)控和審查,整個攻擊過程得以隱蔽和毫無阻礙地進(jìn)行;更重要的是,USB HID 攻擊的惡意代碼被隱藏在芯片的固件中,上層殺毒軟件無法檢測這部分代碼. 因此,USB HID攻擊的隱蔽性更強(qiáng).
2)更易獲得高權(quán)限:由于USB HID 攻擊本質(zhì)上與系統(tǒng)用戶的直接操作沒有本質(zhì)區(qū)別,因此通過模擬特定的鍵盤敲擊操作可輕易獲得比當(dāng)前主機(jī)用戶更高的系統(tǒng)管理權(quán)限,如圖3所示,即為通過模擬鍵盤敲擊獲取系統(tǒng)管理員權(quán)限的一種實現(xiàn)方式.
USB HID 攻擊的出現(xiàn),使得USB 設(shè)備開始直接參與全部的攻擊過程,由傳播媒介轉(zhuǎn)而變成攻擊發(fā)起的主體. 更為嚴(yán)重的是,自2010 年被首次提出以來,現(xiàn)在已經(jīng)存在多種可定制化的USB HID 攻擊開發(fā)平臺[5-6],如圖4所示,這就使得USB HID攻擊的技術(shù)門檻變得極低,造成的危害也更嚴(yán)重.
圖3 基于模擬鍵盤操作的系統(tǒng)管理員權(quán)限獲取方式Fig.3 The way of obtaining administrator rights based on simulated keyboard operation
圖4 USB HID攻擊開發(fā)平臺Fig.4 USB HID attack development platform
USB HID攻擊最初都是依賴于基于某些嵌入式的USB開發(fā)板設(shè)計實現(xiàn)的,而無法在通用USB設(shè)備上實現(xiàn),這就在一定程度上限制了USB HID攻擊的通用性;同時由于采用基于開發(fā)板的定制化實現(xiàn),該類USB設(shè)備極易被破除設(shè)備封裝等檢測方式發(fā)現(xiàn). 這就迫使攻擊者繼續(xù)探索更好的攻擊方式. 在2014年美國黑帽大會上,研究者首次提出并展示了稱為“BadUSB”的攻擊技術(shù)[7]. BadUSB 攻擊的提出較好地解決了USB HID攻擊的局限性.
BadUSB攻擊的基本思路是篡改USB設(shè)備中的原有固件,將含有攻擊負(fù)載的內(nèi)容寫入到設(shè)備固件中,從而使得USB 設(shè)備在接入到目標(biāo)主機(jī)時,通過執(zhí)行固件中的攻擊負(fù)載實現(xiàn)攻擊功能. BadUSB 攻擊的實現(xiàn)雖然需要USB 設(shè)備支持固件更新這一前提,但是仍然比USB HID 攻擊具有更好的通用性(據(jù)Karsten Nohl稱,BadUSB首次提出時可以適用的優(yōu)盤占當(dāng)時市場份額的50%以上[7]). 另外,由于BadUSB攻擊實現(xiàn)過程中僅對存儲器芯片中存放的固件進(jìn)行了篡改,并不對USB設(shè)備硬件進(jìn)行任何改變,所以該類攻擊的隱蔽性更高.
BadUSB攻擊的出現(xiàn),不僅僅是在通用性和隱蔽性上對USB HID攻擊進(jìn)行了改進(jìn),而且通過篡改設(shè)備固件,為攻擊者提供了更多的攻擊選擇. 一方面,攻擊者通過修改固件,能夠執(zhí)行的操作不僅僅局限在模擬HID操作,通過借助USB設(shè)備控制器可以實現(xiàn)更多的復(fù)雜操作;另一方面,具有不同類型和功能配置的USB設(shè)備給攻擊者提供了更多可能性,例如攻擊者通過對設(shè)備固件的篡改,可控制USB網(wǎng)卡設(shè)備中本身具備的網(wǎng)絡(luò)適配器,從而可實現(xiàn)對目標(biāo)主機(jī)網(wǎng)絡(luò)流量的劫持和監(jiān)控;還可以通過控制USB存儲設(shè)備的存儲器,實現(xiàn)對目標(biāo)主機(jī)敏感信息的提取和隱蔽存儲等.
BadUSB攻擊的高隱蔽性、強(qiáng)通用性以及可以實現(xiàn)的功能的復(fù)雜性,使得BadUSB攻擊具有遠(yuǎn)比USB HID攻擊更嚴(yán)重的安全威脅,標(biāo)志著USB設(shè)備攻擊技術(shù)上升到一個新的層次.
USB HID攻擊和BadUSB攻擊都是基于對USB設(shè)備自身的篡改實現(xiàn)的,而除了上述方式實現(xiàn)外,攻擊者還可以通過對USB設(shè)備驅(qū)動中漏洞的利用實現(xiàn)攻擊目的[8-9].
USB設(shè)備的架構(gòu)如圖5所示,安裝在主機(jī)端的USB設(shè)備驅(qū)動是一個USB設(shè)備實現(xiàn)其與主機(jī)操作系統(tǒng)以及應(yīng)用程序之間交互的媒介,驅(qū)動接收所連接的USB設(shè)備的所有輸入并進(jìn)行相應(yīng)處理. 因此,如果設(shè)備驅(qū)動程序存在某些安全漏洞,那么攻擊者就可以基于USB設(shè)備向其輸入特定信息實現(xiàn)漏洞利用. 例如,當(dāng)設(shè)備驅(qū)動中存在某個內(nèi)存漏洞時,來自USB設(shè)備的意外或特定輸入將導(dǎo)致緩沖區(qū)溢出等攻擊.
圖5 USB架構(gòu)Fig.5 USB architecture
基于主機(jī)端驅(qū)動的攻擊,根本上源于主機(jī)端軟件對外部設(shè)備的隱式信任,并無條件接收所有來自設(shè)備的輸入;另外,可編程的USB 設(shè)備(例如FaceDancer[10])正變得越來越多,攻擊者可以更加方便地利用該類USB設(shè)備觸發(fā)設(shè)備驅(qū)動中的安全漏洞;更嚴(yán)重的是,USB驅(qū)動程序運(yùn)行在內(nèi)核或特權(quán)進(jìn)程中,因此這種攻擊方式仍然可以較為容易地獲得高操作權(quán)限.
綜上,通過對USB設(shè)備安全問題的分析可以發(fā)現(xiàn),隨著攻擊技術(shù)的發(fā)展,USB設(shè)備的攻擊面也在發(fā)生改變. 從最開始通過利用USB 存儲設(shè)備的自動執(zhí)行功能,將USB 存儲設(shè)備作為攻擊負(fù)載的傳播媒介,到USB HID攻擊,再到基于固件篡改的BadUSB攻擊,最后到不再基于對硬件設(shè)備的改變,而是轉(zhuǎn)而面向USB設(shè)備驅(qū)動中的漏洞利用,整個攻擊技術(shù)的發(fā)展過程體現(xiàn)了攻擊者對攻擊隱蔽性和靈活性要求的不斷提高. 總之,目前USB設(shè)備正面臨多個層面的安全威脅,被攻擊的風(fēng)險日益增加.
針對USB設(shè)備的安全問題,研究者已經(jīng)提出了一些防御方法,并且隨著USB設(shè)備攻擊方式的發(fā)展演變,防御技術(shù)也在不斷適應(yīng)和發(fā)展.
USB存儲設(shè)備作為攻擊負(fù)載傳播媒介的核心是操作系統(tǒng)允許設(shè)備配置自動運(yùn)行功能. 針對該問題,一方面,微軟在2011年通過補(bǔ)丁修復(fù)了自動執(zhí)行漏洞,使得USB存儲設(shè)備無法在連接到主機(jī)后自動執(zhí)行;另一方面,由于這種攻擊方式的實質(zhì)仍然是軟件代碼實現(xiàn)的攻擊負(fù)載,隨著越來越多的終端防護(hù)系統(tǒng)、病毒檢測軟件等的出現(xiàn)和部署,對USB設(shè)備的存儲區(qū)域和主機(jī)系統(tǒng)中的軟件攻擊代碼的檢測能力大大增強(qiáng),使得存在于這些部位的攻擊負(fù)載更容易被檢測、發(fā)現(xiàn)和處理.
目前,雖然將USB存儲設(shè)備作為攻擊負(fù)載傳播媒介的安全問題仍然時有發(fā)生,但是總的來說,該類安全問題已經(jīng)得到了極大限制. 在一個操作系統(tǒng)和病毒防護(hù)軟件經(jīng)常保持更新的主機(jī)中,該類攻擊已很難達(dá)到其設(shè)定的攻擊目標(biāo).
雖然BadUSB 攻擊比USB HID 攻擊隱蔽性更好、通用性更強(qiáng),但是BadUSB 攻擊的實現(xiàn)也仍然離不開對HID接口的聲明和利用,因此對USB HID和BadUSB攻擊的防御方法很多是相同的.
2.2.1 基于USB協(xié)議層的安全增強(qiáng)方法 USB HID攻擊和BadUSB攻擊實現(xiàn)的一個關(guān)鍵原因在于USB協(xié)議中缺乏對枚舉過程的有效訪問控制[11],主機(jī)僅僅根據(jù)外部USB設(shè)備在設(shè)備描述符中的聲明決定該設(shè)備請求的接口類型,從而使得攻擊者可以為本身并不是人機(jī)交互設(shè)備的USB設(shè)備申請HID 接口,從而最終獲得對鍵盤敲擊等操作的模擬能力. 基于上述分析,很多研究者從增強(qiáng)USB協(xié)議安全性的角度提出了相應(yīng)的防護(hù)方法.
一些研究者提出了類似白名單的防護(hù)方法,即通過USB設(shè)備簽名[12-13]驗證USB設(shè)備固件的可信,只有經(jīng)過認(rèn)證的USB設(shè)備才可以通過枚舉過程申請到所需要的接口,但在設(shè)備制造商以及密鑰不可靠的情況下,這種方法也存在被繞過的風(fēng)險. 另外,采用白(黑)名單的保護(hù)機(jī)制,雖然能在一定程度上避免惡意USB設(shè)備的攻擊,但是卻同時限制了主機(jī)使用USB設(shè)備的靈活性. 文獻(xiàn)[11]、[14]、[15]和[16]均提出了基于USB設(shè)備與USB接口類型匹配綁定的安全策略,即只允許USB設(shè)備在枚舉過程中申請與之功能或用途相匹配的接口類型,從而有效防止非HID設(shè)備申請HID接口. 但是,當(dāng)目標(biāo)設(shè)備本身就能夠申請使用多個接口類型,甚至本身即包括HID接口時,這類防護(hù)方法通常會面臨安全性和可用性之間的矛盾. 另外,還有研究者提出了基于設(shè)備特性與物理外觀的一致性進(jìn)行判斷的防護(hù)方法[17],該方法的核心是基于設(shè)備外觀等已知信息判斷某USB設(shè)備是否能夠作為HID設(shè)備,但這種判斷方法很多時候依賴于用戶對設(shè)備的認(rèn)知水平.
2.2.2 基于USB設(shè)備行為的安全監(jiān)控方法 不論是USB HID攻擊、BadUSB攻擊還是其他攻擊方式,其最終的攻擊實施過程都會落腳于具體的具有惡意性的操作上,因此一些研究者從USB設(shè)備行為監(jiān)控的角度提出了相應(yīng)的防護(hù)方法.
為了監(jiān)控USB設(shè)備行為,研究者提出了對USB協(xié)議數(shù)據(jù)包的監(jiān)控和過慮機(jī)制[18-19],在USB設(shè)備連接到主機(jī)之后,監(jiān)測USB設(shè)備與主機(jī)之間通信的所有數(shù)據(jù)包,然后基于對已知攻擊特征的對比和分析,判斷當(dāng)前的數(shù)據(jù)包中是否含有可疑內(nèi)容,并阻止可疑數(shù)據(jù)包的傳輸. 基于包過濾的安全機(jī)制可有效檢測和防御已知攻擊類型,但是對于新型或未知攻擊則效果有限. 還有一些研究者提出了基于執(zhí)行隔離的安全防護(hù)方法,例如文獻(xiàn)[20]和文獻(xiàn)[21],通過對接入的不可信USB 設(shè)備的執(zhí)行空間進(jìn)行嚴(yán)格的限制和隔離,使得惡意的USB設(shè)備無法對主機(jī)產(chǎn)生真正的攻擊效果. 但是這類基于隔離的防護(hù)方法嚴(yán)重依賴虛擬化或IOMMU模塊等硬件支持,而且實現(xiàn)過程復(fù)雜,阻礙了該類方法的廣泛應(yīng)用.
對USB設(shè)備驅(qū)動漏洞的利用是導(dǎo)致USB設(shè)備安全問題的一個重要原因,而為了解決該類安全問題,目前主要采用的方法是通過符號執(zhí)行[22-25]、模糊測試[26-28]等漏洞挖掘技術(shù),在實際應(yīng)用某USB設(shè)備前,首先分析和挖掘其對應(yīng)的設(shè)備驅(qū)動可能存在的安全漏洞,從而提前掌握USB設(shè)備驅(qū)動的安全風(fēng)險,并采取有針對性的防御措施.
FirmUSB[22]實現(xiàn)了一個針對USB設(shè)備固件的分析框架,通過對一個USB設(shè)備固件的符號執(zhí)行和靜態(tài)分析,提取出一個USB設(shè)備固件功能模型,并使用該模型與設(shè)備預(yù)期的功能進(jìn)行對比,從而檢測出目標(biāo)USB設(shè)備中存在的各種可疑行為. 該方法可有效提前檢測出USB設(shè)備是否意圖執(zhí)行超出其本身功能定位外的其他功能,例如原本不需要申請HID接口的USB設(shè)備的固件中卻出現(xiàn)了對該類接口的申請. 但同樣,當(dāng)面對本身就具有復(fù)合功能的USB設(shè)備時,該方法的防御效果也存在一定的局限性. 除FirmUSB外,其他研究者也提出了不同的基于符號執(zhí)行的分析方法. SymDrive[23]和DDT[24]通過將設(shè)備端讀出的數(shù)據(jù)轉(zhuǎn)化為符號化值,而Potus[25]使用類似的符號執(zhí)行方法向USB設(shè)備驅(qū)動中注入錯誤數(shù)據(jù). 這些方法都避免了對硬件設(shè)備的依賴,但是由于存在路徑爆炸以及開銷較大等問題,限制了它們的可用性.
模糊測試是漏洞挖掘中普遍使用的一種非常重要的技術(shù)方法,核心是構(gòu)建模糊測試數(shù)據(jù)集,并將這些數(shù)據(jù)作為目標(biāo)對象的輸入,測試目標(biāo)對象出現(xiàn)執(zhí)行異常的情況,從而進(jìn)一步基于異常情況分析潛在漏洞. 由于USB設(shè)備驅(qū)動接收實際的USB設(shè)備的輸出作為輸入,所以在進(jìn)行漏洞挖掘的過程中如何向設(shè)備驅(qū)動中注入測試數(shù)據(jù)、如何提高測試覆蓋率以及如何提高方法的可移植性,這些都是影響該類安全分析方法的重要因素. vUSBf[26]通過模擬USB 設(shè)備接口來代替硬件USB 設(shè)備向驅(qū)動程序中注入數(shù)據(jù),但是在測試覆蓋率方面欠缺考慮;USBFuzz[27]則是采用仿真USB設(shè)備向驅(qū)動中注入測試數(shù)據(jù),并在Linux系統(tǒng)中實現(xiàn)了支持覆蓋率引導(dǎo)的模糊測試;usb-fuzzer[28]采用增加特定系統(tǒng)調(diào)用的方式向被測試的USB設(shè)備驅(qū)動中注入數(shù)據(jù),保證了一定的測試覆蓋率,但是由于該方法實現(xiàn)過程中需要對操作系統(tǒng)內(nèi)核中某些關(guān)鍵模塊的修改,導(dǎo)致該方法的可移植性較差.
通過漏洞挖掘的方式提前暴露USB設(shè)備驅(qū)動中的安全隱患,發(fā)現(xiàn)某些未知的安全威脅,可以盡可能地緩解攻擊的影響和效果. 但是該類方法受限于漏洞挖掘、動態(tài)分析、設(shè)備仿真等技術(shù)的發(fā)展,并且只是盡可能地緩解而無法徹底消除USB設(shè)備驅(qū)動中潛在的安全漏洞.
可以看出,通過對已有的USB設(shè)備安全防護(hù)技術(shù)的分析可以發(fā)現(xiàn),現(xiàn)有防御技術(shù):基本解決了最早期的以USB存儲設(shè)備作為攻擊負(fù)載傳播媒介所帶來的安全問題;對USB HID 攻擊和BadUSB 攻擊也具有了一定的檢測和防護(hù)能力,但防御效果有限;對USB設(shè)備驅(qū)動漏洞利用這一安全問題,雖然已經(jīng)存在若干可行的漏洞檢測和設(shè)備行為安全分析方法,但一方面該類防御方法距離廣泛應(yīng)用還有較大差距,另一方面不同方法之間的檢測能力差別較大,實際檢測效果難以評估.
綜合分析目前USB 設(shè)備攻防技術(shù)的發(fā)展現(xiàn)狀,本文對USB 攻防研究領(lǐng)域的未來發(fā)展提出以下分析和預(yù)測.
1)BadUSB攻擊威脅將長期存在. BadUSB攻擊在目前的防護(hù)水平下仍然具有較強(qiáng)的生命力. 首先對該類攻擊的檢測難度較高,目前尚沒有非常有效的檢測方法;另外,該類攻擊可以綜合運(yùn)用現(xiàn)有的各種各樣的USB設(shè)備中具備的各類功能模塊,例如無線模塊、藍(lán)牙模塊、傳感器模塊等,尤其在物聯(lián)網(wǎng)發(fā)展的大背景下,BadUSB攻擊的影響范圍和威脅程度將得到進(jìn)一步提高.
2)USB設(shè)備驅(qū)動漏洞利用攻擊的研究將日益增加. USB設(shè)備驅(qū)動漏洞利用攻擊通過對主機(jī)側(cè)驅(qū)動的攻擊實現(xiàn),在一定程度上避免了對設(shè)備本身的篡改,使得這種攻擊方式具有非常強(qiáng)的隱蔽性,并且由于漏洞的不可預(yù)測性,使得對該類攻擊的防御難度較大,尤其是在設(shè)備固件本身難以修改的情況下,該類攻擊方式對攻擊者的意義將更加重要.
1)USB設(shè)備固件升級過程的安全研究. 固件對USB設(shè)備的功能具有重要影響,BadUSB攻擊即通過對固件的篡改實現(xiàn),某些對USB設(shè)備驅(qū)動漏洞的利用攻擊也需要對設(shè)備固件進(jìn)行相應(yīng)修改. 因此,設(shè)備固件升級過程的安全性對USB設(shè)備安全具有重要影響. 為了應(yīng)對這類攻擊,有些USB設(shè)備直接在制造完成后利用熔絲等機(jī)制禁止對固件的讀寫操作,以阻斷攻擊者對固件的篡改操作,但這就導(dǎo)致當(dāng)發(fā)現(xiàn)當(dāng)前固件有漏洞時也無法通過補(bǔ)丁等方式更新修復(fù). 當(dāng)前,很多USB設(shè)備仍允許在一定條件下實現(xiàn)對固件的更新升級以保證USB設(shè)備的易用性,而如何保證升級過程不會被攻擊者利用而引入惡意操作將是當(dāng)前和未來一個重要的研究熱點(diǎn).
2)驅(qū)動模糊測試技術(shù)的進(jìn)一步完善. 模糊測試已經(jīng)被公認(rèn)是一種非常有效的漏洞挖掘方式,但是在驅(qū)動分析方面,由于驅(qū)動對硬件設(shè)備的依賴性導(dǎo)致該方面的模糊測試實現(xiàn)難度高且效果有限. 如何針對USB設(shè)備驅(qū)動設(shè)計實現(xiàn)一種不依賴硬件的、全覆蓋的、具有更高效率的模糊測試方法,對于檢測驅(qū)動漏洞、彌補(bǔ)安全缺陷具有重要意義.
3)基于云平臺的USB設(shè)備行為監(jiān)控技術(shù)的研究. 在云計算發(fā)展背景下,USB設(shè)備在云環(huán)境下的應(yīng)用將越來越普遍. 研究適合云平臺的USB設(shè)備行為監(jiān)控技術(shù)是未來不可避免的一種發(fā)展需求. 其中,如何合理描述USB設(shè)備攻擊的行為特征以提高攻擊檢測精度,如何充分利用現(xiàn)有硬件支持的虛擬化技術(shù)降低監(jiān)控開銷等都是該領(lǐng)域研究的重要方向.
本文從USB 設(shè)備存在的安全問題和已有的安全防護(hù)技術(shù)兩個方面分別展開論述,綜合全面地分析了USB設(shè)備攻擊和防御中的典型技術(shù)和方法,并對當(dāng)前攻防技術(shù)存在的問題進(jìn)行了總結(jié). 最后,對USB設(shè)備攻防領(lǐng)域未來的發(fā)展方向進(jìn)行了預(yù)測和分析,為下一步的研究工作提供了一定的參考.