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