張潤業(yè)
近年來,隨著計(jì)算機(jī)技術(shù)的發(fā)展,惡意攻擊的形式已不僅僅停留在惡意程序上,惡意硬件逐漸登上攻防舞臺。惡意硬件的出現(xiàn)使人們改變了對計(jì)算機(jī)網(wǎng)絡(luò)攻擊行為的認(rèn)識,打開了信息安全領(lǐng)域新的篇章。惡意硬件是一系列具有攻擊計(jì)算機(jī)與網(wǎng)絡(luò)設(shè)備能力的硬件。通常通過外部連接計(jì)算機(jī),隨后自動運(yùn)行攻擊腳本,并上傳惡意程序;或使物理隔離的計(jì)算機(jī)能夠進(jìn)行無線通訊,從而進(jìn)行進(jìn)一步的攻擊行為。
USB(UniversalSerialBus,通用串行總線)接口是當(dāng)今計(jì)算機(jī)與各種設(shè)備中使用最廣泛、最通用的通訊接口。利用USB這種廣泛使用的通用接口研制的惡意硬件更是受到了黑客們的青瞇,成為惡意硬件中比較流行的幾種技術(shù)之一。利用這種被稱為惡意USB設(shè)備的新型惡意設(shè)備可以有效地向大多數(shù)計(jì)算機(jī)與移動設(shè)備進(jìn)行攻擊。與曾經(jīng)的“autorun.inf”病毒通過感染USB存儲設(shè)備進(jìn)行傳播不同,惡意USB硬件設(shè)備是將惡意程序直接通過固件或者硬件電路的形式植入到USB設(shè)備中,當(dāng)設(shè)備與目標(biāo)連接后,在特定條件下觸發(fā)激活惡意代碼,執(zhí)行惡意程序。惡意USB設(shè)備相比惡意軟件具有更大的威脅,由于惡意USB設(shè)備是將惡意程序隱藏在芯片內(nèi)部,只要不激活就很難被發(fā)現(xiàn),因此它可以在目標(biāo)設(shè)備中長期潛伏,常規(guī)檢測方式難以發(fā)現(xiàn)并進(jìn)行處理,即使被發(fā)現(xiàn)也難以通過軟件清除,給計(jì)算機(jī)安全帶來了新的挑戰(zhàn)。
2009年,研究人員Chen等人在Defcon安全會議上,展示了利用蘋果鍵盤的固件攻擊MACOSX的方法。2014年曝光的“棱鏡門”事件披露了美國國家安全局研發(fā)的一種間諜工具—“Cottonmouth(水蝮蛇)”。這是一種使用USB接口的微型間諜設(shè)備,連接到目標(biāo)計(jì)算機(jī)后在黑客的控制下植入惡意程序,通過無線芯片向外發(fā)送數(shù)據(jù)。這樣即使計(jì)算機(jī)與網(wǎng)絡(luò)物理隔離(即“氣隙系統(tǒng)”),也可以通過這種惡意硬件獲得數(shù)據(jù)。更著名的一例是KarstenNohl等于2014年8月在美國黑帽子大會上所展示的“BadUSB”攻擊,利用USB支持多種接口的特點(diǎn),通過固件升級、逆向工程等手段在固件中增加新接口并植入惡意代碼,在提供正常功能的同時(shí),成功獲取操作系統(tǒng)的控制權(quán)限、關(guān)閉殺毒軟件、下載惡意軟件等,隱蔽性極高。另外,也有人利用搭載ATmega32u4微處理器的Teensy2.0開發(fā)板,通過模擬鍵盤的操作在目標(biāo)計(jì)算機(jī)上執(zhí)行惡意代碼。
一、攻擊原理
USB只是一個(gè)總線型數(shù)據(jù)通路,在這條總線上傳輸?shù)臄?shù)據(jù)通過定義不同的接口指定了數(shù)據(jù)的傳輸類型,接口之中又定義了端點(diǎn),用于交換數(shù)據(jù)。操作系統(tǒng)根據(jù)不同的接口,將數(shù)據(jù)交給不同的應(yīng)用程序。數(shù)據(jù)根據(jù)指定的端點(diǎn)進(jìn)行交換、傳輸。其中0端點(diǎn)是保留的控制端點(diǎn),所有接口不可以使用。每次通信過程由主機(jī)發(fā)起,通過握手和設(shè)備建立通信。接口、端點(diǎn)、USB設(shè)備的識別碼等信息通過描述符形式告訴主機(jī),這個(gè)過程稱為“枚舉”。成功枚舉后USB設(shè)備就可以和主機(jī)正常交換數(shù)據(jù)了。HID接口是USB設(shè)備中運(yùn)用最廣泛的一種,很多人機(jī)交互設(shè)備都使用這種接口,如日常使用的鍵盤、鼠標(biāo)等。
USB設(shè)備便捷的背后,也隱藏著安全隱患。首先是鍵盤和鼠標(biāo)在操作系統(tǒng)的設(shè)置有問題。在計(jì)算機(jī)中,操作系統(tǒng)中HID設(shè)備最初設(shè)計(jì)的目的是人機(jī)交互的接口,鍵盤、鼠標(biāo)就是人類的代表,它的每個(gè)操作、每組數(shù)據(jù)都是在用戶的允許和操作下發(fā)出的,收到數(shù)據(jù)后,操作系統(tǒng)直接調(diào)用驅(qū)動程序響應(yīng)操作。這個(gè)過程中缺少校驗(yàn)環(huán)節(jié),無條件信任本身就違反了安全設(shè)計(jì)準(zhǔn)則。不作校驗(yàn)就使用的這些數(shù)據(jù),給操作系統(tǒng)帶來了很大的安全隱患,相關(guān)的安全策略更是直接放行這部分的操作,缺少相關(guān)的限制。惡意USB設(shè)備通過獲取HID接口,模擬計(jì)算機(jī)管理員的操作,繞過安全策略,獲取操作系統(tǒng)權(quán)限。由于這種HID設(shè)備直接代表用戶,所以有很高的操作權(quán)限。
雖然Windows7系統(tǒng)引入了權(quán)限控制的機(jī)制,但是來自鍵盤、鼠標(biāo)的操作依然代表著用戶的最高權(quán)限。因?yàn)槭歉邫?quán)限,所以USB協(xié)議并未對這部分設(shè)備作有效的管控,任何一個(gè)USB設(shè)備都可以通過枚舉成為HID設(shè)備,如果一個(gè)USB設(shè)備能以HID鍵盤設(shè)備的描述出現(xiàn)在電腦中,就意味著它將獲得很大的權(quán)限自由。比如模擬用戶的操作、運(yùn)行應(yīng)用程序,這樣一個(gè)普通的USB端口就可以完成很多用戶操作。目前已知的幾種惡意USB設(shè)備都是通過這種HID接口提升權(quán)限,運(yùn)行惡意程序的。
二、防護(hù)策略
1.傳統(tǒng)BadUSB設(shè)備防護(hù)
第一種類型的攻擊為BadUSB。2015年2月,俄羅斯黑客DarkPurple設(shè)計(jì)了一種惡意USB設(shè)備,將其插入計(jì)算機(jī)時(shí)可以破壞掉計(jì)算機(jī)敏感元件。其原理類似于計(jì)算機(jī)生產(chǎn)時(shí)進(jìn)行ESD測試所使用的儀器,但電流是常規(guī)ESD測試儀的數(shù)百倍之高。該設(shè)備主要電路由一個(gè)直流升壓器、數(shù)個(gè)電容和一個(gè)場效應(yīng)管構(gòu)成,當(dāng)被插入目標(biāo)設(shè)備時(shí),升壓器將電容充電至-110V,然后由場效應(yīng)管作為開關(guān)導(dǎo)通電容與USB的數(shù)據(jù)線路。負(fù)高電壓會迅速燒毀目標(biāo)設(shè)備的相關(guān)電路,導(dǎo)致設(shè)備無法工作,以達(dá)到攻擊目的。該設(shè)備于當(dāng)年10月發(fā)布第二個(gè)版本。新版本將電壓升高至-220V,能夠破壞更多設(shè)備。
BadUSB這種通過USB固件植入惡意程序的攻擊方法很難防范。惡意代碼在底層硬件中,操作系統(tǒng)不能直接刪除,也不能簡單地使用白名單方式禁用部分USB設(shè)備,因?yàn)閁SB設(shè)備沒有唯一的識別序列號,它可以通過修改相應(yīng)的ID欺騙主機(jī)。分析整個(gè)攻擊過程,惡意USB設(shè)備利用HID鍵盤提升權(quán)限是整個(gè)過程的關(guān)鍵,而這個(gè)過程主要還是利用了系統(tǒng)對設(shè)備的盲目信任。因此,當(dāng)操作系統(tǒng)在給HID設(shè)授權(quán)時(shí),如果加以驗(yàn)證,區(qū)別人機(jī)操作,就可以阻止這種問題的發(fā)生。
2.無線BadUSB設(shè)備防護(hù)
第二種類型的攻擊為無線BadUSB攻擊。一個(gè)是HID接口使用鍵盤協(xié)議,在日常情況下偽裝成鍵盤,連接在電腦上,執(zhí)行普通的鍵盤功能,當(dāng)收到無線控制指令時(shí)在不需要任何軟件漏洞的情況下提升權(quán)限執(zhí)行用戶操作;另一個(gè)是使用HID數(shù)據(jù)接收協(xié)議用來收發(fā)數(shù)據(jù)。在無人操作的情況下運(yùn)行HID數(shù)據(jù)傳輸軟件,通過USB接口向單片機(jī)傳輸數(shù)據(jù)。設(shè)備嵌入在鍵盤中通過無線控制,正常工作時(shí)在設(shè)備管理器中只有“人體學(xué)輸入設(shè)備”顯示,具有更好的隱蔽性,可以長期在目標(biāo)設(shè)備上連接而不易被發(fā)現(xiàn),同時(shí)也可以監(jiān)控鍵盤的數(shù)據(jù),記錄用戶的按鍵內(nèi)容。通過這種方式可以實(shí)現(xiàn)對網(wǎng)絡(luò)隔離環(huán)境下的涉密計(jì)算機(jī)的攻擊,不依賴傳統(tǒng)的網(wǎng)絡(luò)途徑,有更靈活的選擇,而且過程非常隱蔽。這個(gè)問題可以使用已經(jīng)成熟的人機(jī)身份校驗(yàn)技術(shù),如驗(yàn)證碼、驗(yàn)證語音等方式,在設(shè)備插入時(shí)進(jìn)行驗(yàn)證。在使用過程中也需要不斷地分析對比操作內(nèi)容,識別異常行為,對可疑的機(jī)器行為通過驗(yàn)證碼反復(fù)確認(rèn),確保安全,以保證從源頭阻斷攻擊過程。
3.USB Killer設(shè)備防護(hù)
第三種類型的攻擊為USBKiller攻擊。USBKiller設(shè)備的攻擊原理實(shí)為靜電放電(ESD),只是其電流大于常規(guī)靜電。因此,若在USB接口與設(shè)備主板間加入可靠的ESD防護(hù)組件,即可保護(hù)關(guān)鍵元件不受攻擊。目前已知的技術(shù)中,AZ1045、AZ1065系列ESD保護(hù)組件能夠有效地保護(hù)目標(biāo)設(shè)備。其中AZ1045-04SU系列針對USB2.0使用,AZ1065-06F系列可針對USB3.0或2.0使用。
三、總結(jié)
雖然惡意USB技術(shù)威脅大,攻擊方式隱蔽,但是目前攻擊手段有限?;诖?,應(yīng)加強(qiáng)USB設(shè)備管控技術(shù),提高對于此類問題的安全意識。對于接入涉密計(jì)算機(jī)的USB設(shè)備,要確保其安全性,最好能從電路層面進(jìn)行檢查,對于不能保證安全性的USB外設(shè)要謹(jǐn)慎使用。要定期檢查涉密計(jì)算機(jī)設(shè)備管理器,對于可疑設(shè)備要積極排查以防留有安全隱患。