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