精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當前位置:安全行業動態 → 正文

細說USB安全:這年頭真的還有USB設備是安全的嗎?

責任編輯:editor004 作者:歐陽洋蔥 |來源:企業網D1Net  2016-08-16 15:33:07 本文摘自:黑客與極客

* FreeBuf專題報道,作者/歐陽洋蔥,轉載請注明來自FreeBuf黑客與極客(FreeBuf.COM)

在正式開談USB安全之前,還是照例來分享一個很有意思的案例:2014年年末,來自Reddit的報道,某大公司高管電腦感染了惡意程序。公司的安全研究人員就調查惡意程序來源,但檢查了所有傳統可能的感染途經都一無所獲。于是他們開始考慮其他突破口,從這位高管的飲食起居入手,翻來覆去地查,最后發現問題居然出在高管的電子煙身上。

“這是一款中國造的電子煙,充電裝置部分包含了硬件編碼的惡意程序。”而這款電子煙是通過USB口充電的,這名高管為了充電,順手會將其插入到公司的電腦上,于是電腦就感染了惡意程序。

在這一例中,如果惡意程序做得更加隱秘,那么整個攻擊過程甚至可以達到神不知鬼不覺。這其中的傳播核心,就是我們要談的“USB安全”。

USB安全?這是什么意思?

我們擅自提“USB安全”這個詞匯,其實是不準確的。因為USB本質上只是一種通用串行總線——總線有很多啊,SATA總線、PCIe總線等等,這有什么樣的安全話題可談呢?可能USB充其量可作為惡意程序傳播的途經。我們說“USB安全”,和說“網線安全”是不是感覺差不多荒謬?

不過大概是因為USB作為替代古代各種接口的明星級統一標準,而且USB又不像Thunderbolt之類的接口一樣需要高昂的授權費用,當代世界的海量設備采用USB接口也是種必然。有趣的是,我們經常將采用USB接口的設備稱作USB設備(卻沒有人將PC內置的硬盤稱作SATA設備或者PCIe設備),這也是我們這里談USB安全的基礎。

由于USB當代的使用如此廣泛,所以USB設備也就成為了惡意程序傳播的重要載體。但如果只說USB設備作為惡意程序的傳播途徑,那么任何接口實際上也都存在這種傳播的可行性。比如說U盤能夠傳播病毒,Thunderbolt移動硬盤也行,連光盤都可以。

總的說來,我們要談所謂的USB安全,并不是USB在數據傳輸過程中存在安全問題,或者某類USB接口規格(如Type-C)某個針腳存在設計缺陷,而是USB接口或總線作為惡意程序的一個重要途經,存在安全問題,以及USB協議、驅動存在的安全問題。

因此針對USB安全,有3點可談。其一,USB是個具有相當普遍性的標準,鼠標、鍵盤、電子煙、外置聲卡都用USB接口,且即插即用。所以在物理接口中,它對惡意程序的傳播大概是除了網絡適配器接口之外,效率最高的。其二,USB協議可被攻擊者利用,這也將是本文要談到的重點。其三,最高級的USB 0day漏洞攻擊。

autorun.inf時代!U盤病毒?

在網絡還不像現在這么盛行的年代,可移動存儲設備是傳播病毒的重要方式。就是將惡意程序放在U盤,或者移動硬盤,甚至軟盤中——在不同的PC交換數據的過程中,就可以達到傳播病毒的作用。再高明的惡意程序也需要人類去打開才能運行,巧在像Windows這類操作系統,為了加強使用體驗,系統中有個針對移動存儲介質的AutoPlay/AutoRun自動播放功能。

原本自動播放的功能是,針對CD/DVD多媒體光盤可實現插入即播放,而針對Windows安裝介質,插入就能立即彈出安裝程序。絕大部分同學應該都知道移動存儲介質的根目錄下的autorun.inf文件就負責自動播放功能,打開形如以下樣式:

[autorun]

open=setup.exe

icon=setup.exe,0

label=My install CD

相較光盤,U盤的可讀寫方便性明顯更勝一籌,如果這里的setup.exe是個病毒,那么設備插入U盤,系統就會自動運行該病毒。所以病毒通過autorun.inf文件實現U盤插入即啟動惡意程序的功能,實在是太方便了。同事間交換數據,大家的電腦都插一遍帶毒U盤,自然就都感染上了。已經被感染的設備,再感染插入設備的新U盤,以此達到擴散的目的。

這是U盤傳播惡意程序的常規手法,也因此有些人將autorun.inf稱作“U盤病毒”,雖然這東西其實是很無辜的。實際上,要杜絕這種方式的病毒傳播也并不困難,一方面是在系統中禁用移動存儲介質的自動播放或自動啟動功能,另一方面也可以禁止程序在U盤中創建autorun.inf文件,達到U盤不會傳播病毒的目的。

可以說,autorun.inf是過去在民間最廣為流傳的U盤病毒傳播方式。很多U盤病毒查殺工具都主要針對autorun.inf進行圍剿。尤其從Windows XP SP2開始,系統針對“USB大容量存儲設備”和ZIP驅動器,自動播放功能是默認開啟的。微軟眼見形勢不妙,從Windows Vista和Windows Server 2008開始,針對插入U盤的的系統默認行為,已改為詢問用戶是否執行自動運行指令。現如今autorun.inf的時代幾乎已經過去。

用U盤來釣魚會不會成功?

如前文所述,其實上面談到的U盤安全問題并不是USB設備的專屬,任何移動存儲設備(甚至連內置硬盤)都存在這樣的問題。所以嚴格意義上,這種安全問題根本就怪不到USB頭上,如果一定要怪,就如前文所述,只是因為USB實在是太普遍了。

前不久剛剛結束的Black Hat USA 2016黑客大會上,谷歌反欺詐研究團隊負責人Elie Bursztein分享了一個議題,名為“Does dropping USB drives really work?”(丟U盤進行社工攻擊真的有效嗎?)他嘗試在伊利諾伊大學校園里各處丟棄297個U盤,看看有沒有好奇心重的人會撿回去看U盤里究竟有什么。如果說Bursztein丟的是297塊SATA3硬盤(Lol),攻擊方式理論上是一樣的,但攻擊效果有多么糟糕是可想而知的。可見USB的普及性,是我們在此討論其安全性的依據。

美國計算機行業協會去年曾經發起過一項調查,結果顯示17%的人在撿到USB設備后會直接連電腦——這個數據可能還過于保守。Bursztein的調查結果明顯更激進:135個U盤(也就是45%)被人撿走后都連接了電腦,這些人還打開了其中的文件,其上的“惡意程序”給Bursztein回傳了數據。

好在這還只是個實驗,并不存在真的“惡意”。Bursztein的研究團隊是這么做的:他們沒有用autorun.inf,因為現在的操作系統根本就不吃這套,Mac連自動運行功能都不支持,他們的方法是:釣魚。

研究團隊給這297個U盤分別貼了些標簽,甚至還明確寫上了U盤所有者(以及歸還地址),即便在這種情況下還是有135個U盤被好奇心重的同學打開了。U盤里面的文件迷惑性地寫上了“期末考試”“機密”等字樣,實際上這些文件都是HTML格式的,文件中有張圖片,調用了研究團隊服務器的地址——這樣一來研究團隊就知道,有人打開了文件。

除此之外,HTML文件打開后有個問卷調查,詢問這些好奇心寶寶:你們為啥要插人家的U盤呀!的確也有20%的人參與了調查,超2/3的人表示他們其實是想歸還U盤的(Really?),18%的人承認他們是好奇,14%的人給出了其他解釋。

就這一個例子,我們就不難看出U盤釣魚的成功率還是相當高的。如果這些HTML文件都換成惡意程序,或者調查問卷改成詢問用戶名密碼的“釣魚問卷”,又有多少人會栽在其中呢!美劇《黑客軍團(Mr Robot)》中就出現了用U盤釣魚的橋段,看樣子這根本就不只是個傳說!

U盤攻擊絕殺:偽裝成HID設備

還是那句話,上面兩部分談的實際上都仍是將USB設備作為傳播惡意程序的載體,就好像U盤釣魚,其本質和丟個軟盤來釣魚(Lol),以及郵件釣魚是沒差別的,原罪不在USB設備身上。如果用這種方法來談USB安全,實際上還有很多內容可說,比如說USB接口是入侵ATM機的重要途徑,還有USB Key這類作為數據解密的安全手段,都不過是將USB作為工具。

那么有沒有USB本身的原罪可談呢?有!可以從USB的協議入手。USB不止MSC(大容量存儲)設備這一種,現在的USB接口支持這么多功能,協議其實也五花八門,自然不光有相關MSC的協議,什么USB Power Delivery(USB快速充電規范)、USB OTG(SRP、HNP協議,兩個外設間傳輸)等等,還有一個USB HID設備類協議。這里的USB HID,近兩年來已經成為USB設備攻擊的絕殺了。

HID也就是Human Interface Device,是與人交互的設備。其實USB-HID設備現如今已經相當普遍了,比如USB鍵盤、鼠標、手柄等等。這要怎么利用呢?在2014年的Black Hat黑客大會上,安全研究人員Karsten Nohl和Jakob Lell發表了演講,提到一個有些驚世駭俗意味的USB攻擊手段,名叫BadUSB,部分利用了HID的特點。

上面說的好玄乎,所以下面再來舉個栗子:鍵盤都用過吧?有沒有試過不用鼠標,純粹用鍵盤來進行各項系統操作呢?有經驗的同學應該知道,其實也不難。那么如果有這么一個U盤,它能夠偽裝成鍵盤,通過腳本執行一系列鍵盤敲擊操作,是不是感覺就能控制你的系統了?這其實就是BadUSB攻擊利用USB協議的示例。被BadUSB感染過的U盤不僅能夠偽裝成USB鍵盤,還能偽裝成USB網卡——篡改DNS,這樣一來所有的DNS查詢就能發往攻擊者的服務器,可進行重定向攻擊。

一旦這種攻擊得以實現,那么攻擊方式自然也就變得五花八門了,只有想不到沒有做不到,最重要的是跨平臺——因為各系統平臺遵循一致的USB標準。詳情可參見我們當年發布的一篇文章《解密BadUSB:世界上最邪惡的USB外設》。

說到底,這種HID模擬攻擊不就是當年黑客們很愛的USB橡皮鴨(USB Rubber Ducky)嗎?問題是橡皮鴨的內部硬件很彪悍,有個60MHz主頻的處理器、microSD擴展插槽。普通U盤何以實現這樣的攻擊手段?這個問題其實才是Karsten Nohl和Jakob Lell這兩位研究人員的高明之處,也是這些U盤在感染BadUSB之后的可怕之處。

一般U盤的構成除了我們需要用到的存儲數據的閃存部分,還有主控芯片,或者叫控制芯片。主控芯片一般會指定某些部分的單元用于存儲固件驅動(似也有主控芯片本身就包含了固件閃存)。這里的固件就類似于操作系統,控制軟硬件交互。Nohl和Lell花了好幾個月的時間進行逆向工程,他們發現許多U盤都可以對固件部分進行重新編程(尤其是PHISON群聯的主控芯片)。用戶根本就看不到固件部分,要隱藏攻擊代碼自然就非常容易了。

這就是BadUSB得以成型的核心所在。另一方面當代操作系統為了給USB設備提供最大的兼容性,USB標準是允許一個USB設備具有多種輸入輸出設備的特征的。這樣一來,通過重寫U盤固件,就能讓它偽裝成USB鍵盤、網卡甚至顯示器。通過這個假的鍵盤,輸入U盤固件中的惡意指令和代碼,還可以配合閃存中的惡意程序進行攻擊。

說白了,BadUSB是令普通U盤都變身為橡皮鴨,甚至攻擊性更強。這其中的加強體現在BadUSB的偽裝和傳播性方面偽裝!很容易理解,看起來只是個普通U盤,而且即便格式化U盤也無法清除惡意代碼,因為惡意代碼在固件中;傳播!當年Nohl和Lell在研究報告中有特別提到,BadUSB理論上最大的威脅在于,通過一個BadUSB設備給計算機感染惡意程序之后,計算機也可以將BadUSB傳播到其他插入計算機的U盤:某個U盤在插入這臺計算機之后,計算機上的惡意程序就能夠對U盤固件進行重新編寫,U盤主人根本就不會察覺到。

這么一來,全世界的U盤都能通過這種方式被BadUSB感染,全世界沒有任何一個U盤是可被信任的,因為根本就沒有反病毒軟件能夠查到。由此甚至可以引發一個問題:USB設備是否已經到了根本就沒有安全性可言的地步?

其實也不盡然,針對U盤固件,引入不可偽造加密簽名機制就是種方案,杜絕惡意程序的重新編寫。這就主要取決于閃存主控芯片制造商了。因為有人指責Nohl說,他先前在Black Hat上的演講其實只針對臺灣群聯的閃存主控芯片——所以2014年年底,Nohl還抽樣了8大主要芯片制造商的主控芯片:群聯、Alcor、瑞薩、祥碩(華碩的子公司)、創惟、FTDI、微芯、Cypress。

結果發現情況異常復雜。的確有部分USB主控芯片對BadUSB免疫——即無法對固件做重新編程,免疫的芯片占到抽樣總數的一半,但每個品牌的表現都是很不穩定的。比如說,采用群聯主控芯片的U盤都存在被BadUSB感染的風險,而祥碩則完全對BadUSB免疫,創惟的USB 2.0芯片沒問題,但更新的USB 3.0芯片就有問題。其他USB Hub、鍵盤、攝像頭、鼠標等所用的控制芯片情況更是五花八門。而且實際上,即便是一個USB設備制造商的相同型號的產品,他們也會在不同批次中采用不一樣的主控芯片,比如金士頓所用的USB控制芯片就有五六種之多。

難不成以后我們要用U盤之前,都得先把U盤拆開看看主控芯片的型號不成?

只要是USB接口就都不安全!

不知道很多小伙伴有沒有留意過,斯諾登當年揭露NSA的文檔中提到了一款竊聽設備名為Cottonmouth(如下圖所示)。這就是個USB設備,據說能夠偷偷地往目標設備中安裝惡意程序。雖然文檔中并未詳述其具體機制,但斯諾登說:“如果Nohl和Lell發現的這種東西早就為NSA所用了,我也不會感到奇怪。”或許很久之前,NSA就已經在這么干了,那么我們手里的U盤…

但這還不是全部。既然USB標準是允許一個USB設備具有多種輸入輸出設備特征的,那么USB設備的偽裝實際上也就不僅限于僅針對U盤的BadUSB了,各種USB設備都可能出現偽裝的情況。從你的USB鼠標、鍵盤,到攝像頭、電子煙、充電寶。

除了文章開頭提到的電子煙,2014年年末央視曝光“改裝充電寶盜取隱私”:看起來只是個充電寶,但實際上卻有存儲數據的能力,特別針對當時加密機制還沒有現在這么完善的iPhone進行數據竊取。這么想來,我們周圍但凡用USB接口的東西似乎都有帶毒帶馬的可能性,這世界真是太殘酷了——說不定你已經被NSA鎖定,你的鼠標就帶APT木馬…

今年的Black Hat USA 2016大會上,分享丟U盤是否有效的Elie Bursztein不僅做了丟U盤的實驗,而且還教育人們如何才能做個完整版的、偽裝起來的U盤,那詳細程度,從選購芯片到最終U盤外部材料成型一條龍,所用的都是成本很低的現成材料(點擊這里)。

FreeBuf先前也發表過一篇題為《利用Arduino快速制作Tennsy BadUSB》的文章,用Arduino Leonardo單片機(似成本稍高),配合Arduino IDE簡單的代碼編寫,就做成了一個可偽裝成普通U盤的USB攻擊設備。以后要黑誰,送他個U盤或充電寶,比郵件釣魚大概有效多了。

USB攻擊的究極形態

Bursztein在Black Hat USA 2016大會上將USB攻擊分成了3大類,分別是社會工程(丟U盤),HID偽裝和0-day漏洞利用。前兩種我們都已經在前文做了簡單的分析,最后一種0-day漏洞利用,他只稍作了解釋,主要利用的是USB驅動的0-day漏洞,只要計算機插上USB設備,就能立刻對計算機進行控制。

在他看來,0-day漏洞乃是USB攻擊的究級形態,無論是復雜程度、可靠性還是隱蔽性都達到了至高境界(雖然因為針對性強,所以跨平臺屬性不佳)。我們能夠列舉的此類案例實在稀有,因為這幾乎沒有被廣范圍探討過。之前名噪一時的Stuxnet震網病毒,就利用了USB(但似并非USB驅動的0-day漏洞)傳播——Windows系統中,.lnk文件負責渲染U盤中的文件圖標,插入U盤的時候,資源管理器就會掃描其中的.lnk文件來顯示各種格式的文件,震網病毒就是將惡意程序插入到.lnk文件中——整個過程是插入就執行的,所以其隱蔽性自然可見一斑。

不過這種例子實在稀有,大約需要投入大量時間和精力,極具針對性地進行攻擊研究。對一般人來說,U盤釣魚和HID偽裝的確才是最需要防范的。但在我們談了這么多以后,是否還要說說USB安全的注意事項呢?

像Nohl說的,防范USB攻擊的最佳方案就是不要用USB設備!為了這個目標,就請封死設備上的所有USB接口吧…說正經的,因噎廢食當然不好,但來路不明的U盤甚至充電寶、電子煙都不要用,馬路上出現U盤,也請忽略之;自己的USB設備也不要去插不受信任的主機設備。用戶能做的,大概也只有這些了吧。

* FreeBuf專題報道,作者/歐陽洋蔥,轉載請注明來自FreeBuf黑客與極客(FreeBuf.COM)

關鍵字:USB設備USB驅動

本文摘自:黑客與極客

x 細說USB安全:這年頭真的還有USB設備是安全的嗎? 掃一掃
分享本文到朋友圈
當前位置:安全行業動態 → 正文

細說USB安全:這年頭真的還有USB設備是安全的嗎?

責任編輯:editor004 作者:歐陽洋蔥 |來源:企業網D1Net  2016-08-16 15:33:07 本文摘自:黑客與極客

* FreeBuf專題報道,作者/歐陽洋蔥,轉載請注明來自FreeBuf黑客與極客(FreeBuf.COM)

在正式開談USB安全之前,還是照例來分享一個很有意思的案例:2014年年末,來自Reddit的報道,某大公司高管電腦感染了惡意程序。公司的安全研究人員就調查惡意程序來源,但檢查了所有傳統可能的感染途經都一無所獲。于是他們開始考慮其他突破口,從這位高管的飲食起居入手,翻來覆去地查,最后發現問題居然出在高管的電子煙身上。

“這是一款中國造的電子煙,充電裝置部分包含了硬件編碼的惡意程序。”而這款電子煙是通過USB口充電的,這名高管為了充電,順手會將其插入到公司的電腦上,于是電腦就感染了惡意程序。

在這一例中,如果惡意程序做得更加隱秘,那么整個攻擊過程甚至可以達到神不知鬼不覺。這其中的傳播核心,就是我們要談的“USB安全”。

USB安全?這是什么意思?

我們擅自提“USB安全”這個詞匯,其實是不準確的。因為USB本質上只是一種通用串行總線——總線有很多啊,SATA總線、PCIe總線等等,這有什么樣的安全話題可談呢?可能USB充其量可作為惡意程序傳播的途經。我們說“USB安全”,和說“網線安全”是不是感覺差不多荒謬?

不過大概是因為USB作為替代古代各種接口的明星級統一標準,而且USB又不像Thunderbolt之類的接口一樣需要高昂的授權費用,當代世界的海量設備采用USB接口也是種必然。有趣的是,我們經常將采用USB接口的設備稱作USB設備(卻沒有人將PC內置的硬盤稱作SATA設備或者PCIe設備),這也是我們這里談USB安全的基礎。

由于USB當代的使用如此廣泛,所以USB設備也就成為了惡意程序傳播的重要載體。但如果只說USB設備作為惡意程序的傳播途徑,那么任何接口實際上也都存在這種傳播的可行性。比如說U盤能夠傳播病毒,Thunderbolt移動硬盤也行,連光盤都可以。

總的說來,我們要談所謂的USB安全,并不是USB在數據傳輸過程中存在安全問題,或者某類USB接口規格(如Type-C)某個針腳存在設計缺陷,而是USB接口或總線作為惡意程序的一個重要途經,存在安全問題,以及USB協議、驅動存在的安全問題。

因此針對USB安全,有3點可談。其一,USB是個具有相當普遍性的標準,鼠標、鍵盤、電子煙、外置聲卡都用USB接口,且即插即用。所以在物理接口中,它對惡意程序的傳播大概是除了網絡適配器接口之外,效率最高的。其二,USB協議可被攻擊者利用,這也將是本文要談到的重點。其三,最高級的USB 0day漏洞攻擊。

autorun.inf時代!U盤病毒?

在網絡還不像現在這么盛行的年代,可移動存儲設備是傳播病毒的重要方式。就是將惡意程序放在U盤,或者移動硬盤,甚至軟盤中——在不同的PC交換數據的過程中,就可以達到傳播病毒的作用。再高明的惡意程序也需要人類去打開才能運行,巧在像Windows這類操作系統,為了加強使用體驗,系統中有個針對移動存儲介質的AutoPlay/AutoRun自動播放功能。

原本自動播放的功能是,針對CD/DVD多媒體光盤可實現插入即播放,而針對Windows安裝介質,插入就能立即彈出安裝程序。絕大部分同學應該都知道移動存儲介質的根目錄下的autorun.inf文件就負責自動播放功能,打開形如以下樣式:

[autorun]

open=setup.exe

icon=setup.exe,0

label=My install CD

相較光盤,U盤的可讀寫方便性明顯更勝一籌,如果這里的setup.exe是個病毒,那么設備插入U盤,系統就會自動運行該病毒。所以病毒通過autorun.inf文件實現U盤插入即啟動惡意程序的功能,實在是太方便了。同事間交換數據,大家的電腦都插一遍帶毒U盤,自然就都感染上了。已經被感染的設備,再感染插入設備的新U盤,以此達到擴散的目的。

這是U盤傳播惡意程序的常規手法,也因此有些人將autorun.inf稱作“U盤病毒”,雖然這東西其實是很無辜的。實際上,要杜絕這種方式的病毒傳播也并不困難,一方面是在系統中禁用移動存儲介質的自動播放或自動啟動功能,另一方面也可以禁止程序在U盤中創建autorun.inf文件,達到U盤不會傳播病毒的目的。

可以說,autorun.inf是過去在民間最廣為流傳的U盤病毒傳播方式。很多U盤病毒查殺工具都主要針對autorun.inf進行圍剿。尤其從Windows XP SP2開始,系統針對“USB大容量存儲設備”和ZIP驅動器,自動播放功能是默認開啟的。微軟眼見形勢不妙,從Windows Vista和Windows Server 2008開始,針對插入U盤的的系統默認行為,已改為詢問用戶是否執行自動運行指令。現如今autorun.inf的時代幾乎已經過去。

用U盤來釣魚會不會成功?

如前文所述,其實上面談到的U盤安全問題并不是USB設備的專屬,任何移動存儲設備(甚至連內置硬盤)都存在這樣的問題。所以嚴格意義上,這種安全問題根本就怪不到USB頭上,如果一定要怪,就如前文所述,只是因為USB實在是太普遍了。

前不久剛剛結束的Black Hat USA 2016黑客大會上,谷歌反欺詐研究團隊負責人Elie Bursztein分享了一個議題,名為“Does dropping USB drives really work?”(丟U盤進行社工攻擊真的有效嗎?)他嘗試在伊利諾伊大學校園里各處丟棄297個U盤,看看有沒有好奇心重的人會撿回去看U盤里究竟有什么。如果說Bursztein丟的是297塊SATA3硬盤(Lol),攻擊方式理論上是一樣的,但攻擊效果有多么糟糕是可想而知的。可見USB的普及性,是我們在此討論其安全性的依據。

美國計算機行業協會去年曾經發起過一項調查,結果顯示17%的人在撿到USB設備后會直接連電腦——這個數據可能還過于保守。Bursztein的調查結果明顯更激進:135個U盤(也就是45%)被人撿走后都連接了電腦,這些人還打開了其中的文件,其上的“惡意程序”給Bursztein回傳了數據。

好在這還只是個實驗,并不存在真的“惡意”。Bursztein的研究團隊是這么做的:他們沒有用autorun.inf,因為現在的操作系統根本就不吃這套,Mac連自動運行功能都不支持,他們的方法是:釣魚。

研究團隊給這297個U盤分別貼了些標簽,甚至還明確寫上了U盤所有者(以及歸還地址),即便在這種情況下還是有135個U盤被好奇心重的同學打開了。U盤里面的文件迷惑性地寫上了“期末考試”“機密”等字樣,實際上這些文件都是HTML格式的,文件中有張圖片,調用了研究團隊服務器的地址——這樣一來研究團隊就知道,有人打開了文件。

除此之外,HTML文件打開后有個問卷調查,詢問這些好奇心寶寶:你們為啥要插人家的U盤呀!的確也有20%的人參與了調查,超2/3的人表示他們其實是想歸還U盤的(Really?),18%的人承認他們是好奇,14%的人給出了其他解釋。

就這一個例子,我們就不難看出U盤釣魚的成功率還是相當高的。如果這些HTML文件都換成惡意程序,或者調查問卷改成詢問用戶名密碼的“釣魚問卷”,又有多少人會栽在其中呢!美劇《黑客軍團(Mr Robot)》中就出現了用U盤釣魚的橋段,看樣子這根本就不只是個傳說!

U盤攻擊絕殺:偽裝成HID設備

還是那句話,上面兩部分談的實際上都仍是將USB設備作為傳播惡意程序的載體,就好像U盤釣魚,其本質和丟個軟盤來釣魚(Lol),以及郵件釣魚是沒差別的,原罪不在USB設備身上。如果用這種方法來談USB安全,實際上還有很多內容可說,比如說USB接口是入侵ATM機的重要途徑,還有USB Key這類作為數據解密的安全手段,都不過是將USB作為工具。

那么有沒有USB本身的原罪可談呢?有!可以從USB的協議入手。USB不止MSC(大容量存儲)設備這一種,現在的USB接口支持這么多功能,協議其實也五花八門,自然不光有相關MSC的協議,什么USB Power Delivery(USB快速充電規范)、USB OTG(SRP、HNP協議,兩個外設間傳輸)等等,還有一個USB HID設備類協議。這里的USB HID,近兩年來已經成為USB設備攻擊的絕殺了。

HID也就是Human Interface Device,是與人交互的設備。其實USB-HID設備現如今已經相當普遍了,比如USB鍵盤、鼠標、手柄等等。這要怎么利用呢?在2014年的Black Hat黑客大會上,安全研究人員Karsten Nohl和Jakob Lell發表了演講,提到一個有些驚世駭俗意味的USB攻擊手段,名叫BadUSB,部分利用了HID的特點。

上面說的好玄乎,所以下面再來舉個栗子:鍵盤都用過吧?有沒有試過不用鼠標,純粹用鍵盤來進行各項系統操作呢?有經驗的同學應該知道,其實也不難。那么如果有這么一個U盤,它能夠偽裝成鍵盤,通過腳本執行一系列鍵盤敲擊操作,是不是感覺就能控制你的系統了?這其實就是BadUSB攻擊利用USB協議的示例。被BadUSB感染過的U盤不僅能夠偽裝成USB鍵盤,還能偽裝成USB網卡——篡改DNS,這樣一來所有的DNS查詢就能發往攻擊者的服務器,可進行重定向攻擊。

一旦這種攻擊得以實現,那么攻擊方式自然也就變得五花八門了,只有想不到沒有做不到,最重要的是跨平臺——因為各系統平臺遵循一致的USB標準。詳情可參見我們當年發布的一篇文章《解密BadUSB:世界上最邪惡的USB外設》。

說到底,這種HID模擬攻擊不就是當年黑客們很愛的USB橡皮鴨(USB Rubber Ducky)嗎?問題是橡皮鴨的內部硬件很彪悍,有個60MHz主頻的處理器、microSD擴展插槽。普通U盤何以實現這樣的攻擊手段?這個問題其實才是Karsten Nohl和Jakob Lell這兩位研究人員的高明之處,也是這些U盤在感染BadUSB之后的可怕之處。

一般U盤的構成除了我們需要用到的存儲數據的閃存部分,還有主控芯片,或者叫控制芯片。主控芯片一般會指定某些部分的單元用于存儲固件驅動(似也有主控芯片本身就包含了固件閃存)。這里的固件就類似于操作系統,控制軟硬件交互。Nohl和Lell花了好幾個月的時間進行逆向工程,他們發現許多U盤都可以對固件部分進行重新編程(尤其是PHISON群聯的主控芯片)。用戶根本就看不到固件部分,要隱藏攻擊代碼自然就非常容易了。

這就是BadUSB得以成型的核心所在。另一方面當代操作系統為了給USB設備提供最大的兼容性,USB標準是允許一個USB設備具有多種輸入輸出設備的特征的。這樣一來,通過重寫U盤固件,就能讓它偽裝成USB鍵盤、網卡甚至顯示器。通過這個假的鍵盤,輸入U盤固件中的惡意指令和代碼,還可以配合閃存中的惡意程序進行攻擊。

說白了,BadUSB是令普通U盤都變身為橡皮鴨,甚至攻擊性更強。這其中的加強體現在BadUSB的偽裝和傳播性方面偽裝!很容易理解,看起來只是個普通U盤,而且即便格式化U盤也無法清除惡意代碼,因為惡意代碼在固件中;傳播!當年Nohl和Lell在研究報告中有特別提到,BadUSB理論上最大的威脅在于,通過一個BadUSB設備給計算機感染惡意程序之后,計算機也可以將BadUSB傳播到其他插入計算機的U盤:某個U盤在插入這臺計算機之后,計算機上的惡意程序就能夠對U盤固件進行重新編寫,U盤主人根本就不會察覺到。

這么一來,全世界的U盤都能通過這種方式被BadUSB感染,全世界沒有任何一個U盤是可被信任的,因為根本就沒有反病毒軟件能夠查到。由此甚至可以引發一個問題:USB設備是否已經到了根本就沒有安全性可言的地步?

其實也不盡然,針對U盤固件,引入不可偽造加密簽名機制就是種方案,杜絕惡意程序的重新編寫。這就主要取決于閃存主控芯片制造商了。因為有人指責Nohl說,他先前在Black Hat上的演講其實只針對臺灣群聯的閃存主控芯片——所以2014年年底,Nohl還抽樣了8大主要芯片制造商的主控芯片:群聯、Alcor、瑞薩、祥碩(華碩的子公司)、創惟、FTDI、微芯、Cypress。

結果發現情況異常復雜。的確有部分USB主控芯片對BadUSB免疫——即無法對固件做重新編程,免疫的芯片占到抽樣總數的一半,但每個品牌的表現都是很不穩定的。比如說,采用群聯主控芯片的U盤都存在被BadUSB感染的風險,而祥碩則完全對BadUSB免疫,創惟的USB 2.0芯片沒問題,但更新的USB 3.0芯片就有問題。其他USB Hub、鍵盤、攝像頭、鼠標等所用的控制芯片情況更是五花八門。而且實際上,即便是一個USB設備制造商的相同型號的產品,他們也會在不同批次中采用不一樣的主控芯片,比如金士頓所用的USB控制芯片就有五六種之多。

難不成以后我們要用U盤之前,都得先把U盤拆開看看主控芯片的型號不成?

只要是USB接口就都不安全!

不知道很多小伙伴有沒有留意過,斯諾登當年揭露NSA的文檔中提到了一款竊聽設備名為Cottonmouth(如下圖所示)。這就是個USB設備,據說能夠偷偷地往目標設備中安裝惡意程序。雖然文檔中并未詳述其具體機制,但斯諾登說:“如果Nohl和Lell發現的這種東西早就為NSA所用了,我也不會感到奇怪。”或許很久之前,NSA就已經在這么干了,那么我們手里的U盤…

但這還不是全部。既然USB標準是允許一個USB設備具有多種輸入輸出設備特征的,那么USB設備的偽裝實際上也就不僅限于僅針對U盤的BadUSB了,各種USB設備都可能出現偽裝的情況。從你的USB鼠標、鍵盤,到攝像頭、電子煙、充電寶。

除了文章開頭提到的電子煙,2014年年末央視曝光“改裝充電寶盜取隱私”:看起來只是個充電寶,但實際上卻有存儲數據的能力,特別針對當時加密機制還沒有現在這么完善的iPhone進行數據竊取。這么想來,我們周圍但凡用USB接口的東西似乎都有帶毒帶馬的可能性,這世界真是太殘酷了——說不定你已經被NSA鎖定,你的鼠標就帶APT木馬…

今年的Black Hat USA 2016大會上,分享丟U盤是否有效的Elie Bursztein不僅做了丟U盤的實驗,而且還教育人們如何才能做個完整版的、偽裝起來的U盤,那詳細程度,從選購芯片到最終U盤外部材料成型一條龍,所用的都是成本很低的現成材料(點擊這里)。

FreeBuf先前也發表過一篇題為《利用Arduino快速制作Tennsy BadUSB》的文章,用Arduino Leonardo單片機(似成本稍高),配合Arduino IDE簡單的代碼編寫,就做成了一個可偽裝成普通U盤的USB攻擊設備。以后要黑誰,送他個U盤或充電寶,比郵件釣魚大概有效多了。

USB攻擊的究極形態

Bursztein在Black Hat USA 2016大會上將USB攻擊分成了3大類,分別是社會工程(丟U盤),HID偽裝和0-day漏洞利用。前兩種我們都已經在前文做了簡單的分析,最后一種0-day漏洞利用,他只稍作了解釋,主要利用的是USB驅動的0-day漏洞,只要計算機插上USB設備,就能立刻對計算機進行控制。

在他看來,0-day漏洞乃是USB攻擊的究級形態,無論是復雜程度、可靠性還是隱蔽性都達到了至高境界(雖然因為針對性強,所以跨平臺屬性不佳)。我們能夠列舉的此類案例實在稀有,因為這幾乎沒有被廣范圍探討過。之前名噪一時的Stuxnet震網病毒,就利用了USB(但似并非USB驅動的0-day漏洞)傳播——Windows系統中,.lnk文件負責渲染U盤中的文件圖標,插入U盤的時候,資源管理器就會掃描其中的.lnk文件來顯示各種格式的文件,震網病毒就是將惡意程序插入到.lnk文件中——整個過程是插入就執行的,所以其隱蔽性自然可見一斑。

不過這種例子實在稀有,大約需要投入大量時間和精力,極具針對性地進行攻擊研究。對一般人來說,U盤釣魚和HID偽裝的確才是最需要防范的。但在我們談了這么多以后,是否還要說說USB安全的注意事項呢?

像Nohl說的,防范USB攻擊的最佳方案就是不要用USB設備!為了這個目標,就請封死設備上的所有USB接口吧…說正經的,因噎廢食當然不好,但來路不明的U盤甚至充電寶、電子煙都不要用,馬路上出現U盤,也請忽略之;自己的USB設備也不要去插不受信任的主機設備。用戶能做的,大概也只有這些了吧。

* FreeBuf專題報道,作者/歐陽洋蔥,轉載請注明來自FreeBuf黑客與極客(FreeBuf.COM)

關鍵字:USB設備USB驅動

本文摘自:黑客與極客

電子周刊
回到頂部

關于我們聯系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業網版權所有 ©2010-2024 京ICP備09108050號-6 京公網安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 大冶市| 旬邑县| 贵溪市| 永登县| 中江县| 福建省| 渝北区| 绥阳县| 万源市| 天等县| 荆门市| 通山县| 缙云县| 阿勒泰市| 迭部县| 四会市| 竹北市| 汶川县| 东平县| 睢宁县| 西乡县| 沛县| 亚东县| 哈尔滨市| 红原县| 囊谦县| 北票市| 胶南市| 高州市| 剑川县| 荔波县| 陇西县| 永善县| 吴川市| 晋江市| 巴青县| 松原市| 宁波市| 栖霞市| 宣恩县| 庄浪县|