題:
空的USB記憶棒如何包含惡意軟件​​?
Gruber
2016-09-22 10:45:32 UTC
view on stackexchange narkive permalink

我閱讀了 BBC文章,其中包含空的包含惡意軟件​​的USB記憶棒:

總部位於柏林的研究人員Karsten Nohl和Jakob Lell說,該設備似乎完全是空的可能仍然包含病毒。

  • “空” USB盤中如何包含惡意軟件​​?
  • 這是(舊)Windows系統的唯一問題嗎?
  • 在保護自己的同時,有什麼方法可以使用這些搖桿嗎?


這個問題似乎與其他問題相似,但那些不關心空棍。
空是什麼意思?
@grc:我想這意味著如果您插入設備並查看其文件系統,您將看不到任何文件。
如果插入不受信任的USB,則無論您看到什麼,都已經丟失了。
@grc:可能是正確的。問題是,如果所有平台都受到影響,空設備將如何包含惡意軟件,以及如何擊敗惡意軟件。
簡單。即插即用驅動程序=已感染。未簽名的驅動程序等。將其插入後,突然間您的東西被悄悄地轉移到浙江省的服務器中。
@Mark Buffalo:那麼這是Windows唯一的問題嗎?在最新的Windows版本中,即插即用功能被禁用,對嗎?病毒藏在哪裡?
當我閱讀該文章時,我想到了橡膠小鴨(請參閱http://hakshop.myshopify.com/products/usb-rubber-ducky-deluxe)USB設備看起來像存儲設備,但可以用作usb鍵盤。 這樣,您可以執行已登錄用戶可以執行的任何操作。 它本身不是“空”存儲設備,但對用戶來說很像。
病毒隱藏自己。他們非常擅長。那就是他們的MO。
[這是他們在BlackHat 2014上發表的關於USB惡意軟件的演講](https://www.youtube.com/watch?v=nuruzFqMgIw),其中應提供更多詳細信息。
“ *看來是**的設備完全是空的*” ** ... **
九 答案:
autistic
2016-09-22 13:36:08 UTC
view on stackexchange narkive permalink

恐怕這是由於記者的誤解造成的:

...說一個看似空的設備仍可能包含病毒。

在報導者所引用的視頻中很明顯,事實上,在頭兩分鐘裡,卡爾森說他談論病毒。然後,他繼續在屏幕上展示了看似空的USB設備正在將其自身更改為其他設備(例如,模擬存儲以及鍵盤和彈奏擊鍵),正如我之前的回答(以下)提到的那樣,但是當時我還沒有審查過完整的資源以將其確定為確鑿的證據。

因此,您已經有了它,作者以某種方式誤解了視頻演示,BBC出版了...


“空” USB盤中如何包含惡意軟件​​?

這個問題並不清楚。

首先我們必須定義“空”

  • 您是說未格式化嗎?如果是這種情況,我們是否可以只擦除第一個扇區以取消格式化一個存儲設備,而其餘字節保持不變?那些未擦除但技術上未格式化的字節中是否可以包含病毒代碼?
  • 您是說插入時看起來為空嗎?過去有很多隱藏文件的技巧,例如使用'hidden'或'system file'屬性,使用NTFS流甚至不支持的分區將文件存儲在回收箱中。深入兔子洞,驅動器是否為空但已加密?一個主要的密碼庫中的一個漏洞(我們最近已經看到了很多),即使是看似的設備,也可能使系統遭受秘密的旁道攻擊。此外,一些USB記憶棒是可引導的(在某些系統上;我們​​稍後會介紹),這意味著您可能能夠編寫引導區病毒來感染它們。引導區病毒並不真正在乎安裝什麼操作系統,因為它們在操作系統啟動之前就已經執行了……這引出了我的下一個問題:

這僅僅是一個(舊版)Windows系統有問題嗎?

否。我們應該考慮什麼構成“惡意軟件”。任意字節序列都有可能被視為惡意軟件,因為它會損壞一個系統(例如x86 / x64處理器上的x86 / x64機器代碼),而不是另一個系統(例如ARM / SPARC上相同的字節碼)。要回答這個問題,我們只需找到(或設計)一個將任意序列解碼為惡意軟件的系統,即使以前不是這樣。

是否有使用這些存儲棒的方法在保護自己的同時?

不。最後,考慮 USB記憶棒的定義。是否有可能不是插入存儲設備,而是插入某種電子錯誤,例如無線鍵盤適配器或USB拇指殺手。這樣的設備本身並不是真正的惡意軟件,因為它們不是軟件,或者不是為了惡意而設計的……儘管它們可能會帶來安全風險。設備可能還可以訪問內存(例如,作為手機的充電器,然後使用數據線或隱蔽的wifi網絡竊取所有照片,視頻等)。

請勿插入不受信任的USB設備。期。它們可能不包含惡意軟件​​,但這並不是唯一的危險……尤其是在當今這樣的當今時代,競爭,電子破壞活動&監視非常流行。

不僅僅是USB設備可以秘密模仿其他設備。一些(或可能很多–尚未廣泛研究的)主機USB主機控制器堆棧(固件和OS驅動程序)中存在錯誤,這些錯誤使精心製作的USB客戶端控制器可以使用系統管理(BIOS)或OS內核特權執行任意代碼。
可能還沒有進行太多研究,因為除了插入物理USB設備外,還有很多其他可以黑客的方法。我想一旦其他所有漏洞都被塞住了(HA!),那麼USB黑客攻擊將獲得更多關注。
哦,我敢肯定,已經做了一些重要的研究。只是很多*公共*研究。:)我希望我們在Meade堡,SVR和GRU的朋友,在中國一些更好的APT部門,在一些將其玩具賣給各個民族的高端惡意軟件/利用漏洞的公司中的朋友,等已調查此事。廣泛地。
或者USB設備可能只是攻擊計算機的硬件。在為電容器組充電並將100 V電壓傾倒到計算機中之前,USB設備可能會假裝為閃存驅動器一段時間。
感謝@Jezzamon。我在回答中提到了該設備,但正如我所說的,它並不是真正的惡意軟件。根據字典定義,惡意軟件必須是*軟件*,而這是*硬件*。這些類型的設備可能被認為是與惡意軟件相對的武器,因為當您著手“擺弄電子產品”部門時,危險可能會威脅生命。我強烈不鼓勵這樣的產品(因此,我沒有鏈接或詳細解釋的原因)。如果您要取出東西,請用大鐵鎚來做。你知道你不會那樣傷害別人。
@Seb是的,只是以為值得一提,以防萬一有人在想“我會在我的計算機上嘗試一下,我沒有任何有價值的數據,如果出現問題,我可以擦拭並重新安裝”。當然,我不知道它們是否真正被任何地方的人使用。
-1
好吧,我引起組件故障的問題是人身安全。我見過有人因PSU的衝擊而被醫院篡改,並且擔心這種設備可能會導致這種故障。我不同意這個裝置的存在...而且我不想在這裡推廣它。我將該鏈接標記為有害/潛在非法設備的垃圾郵件。讓我們看看mod是否同意。
@Seb我也認為它確實很不好/危險!但這就是為什麼值得警告人們
考慮一下您如何通過提高搜索引擎排名來實際支持該設備。但是,如果您要支持可能給人們(尤其是那些心臟較弱的人)帶來嚴重風險的產品,我已經盡我所能我現在要處理其他問題。希望您也能繼續前進...
stackunderflow
2016-09-22 22:07:54 UTC
view on stackexchange narkive permalink

您可以破解USB設備的固件。有了它,您可以告訴操作系統您想要什麼,例如。設備是空的,即使不是。或通過發送普通USB設備不會發送的數據來攻擊操作系統的USB軟件堆棧(因此該設備甚至可能真的是空的,攻擊來自固件)。

您還可以執行其他操作有趣的事情,例如告訴操作系統USB設備也是鍵盤,然後自動鍵入命令(如果插入的話)。或者告訴操作系統USB設備是網卡,然後將所有流量重定向到您控制的服務器

被黑的USB固件帶來的無盡樂趣...

“就像告訴操作系統,USB設備也是鍵盤...” [或烤麵包機](http://superuser.com/q/792607/210293)
有人記得Apple鍵盤ROM被遠程黑客和鍵盤記錄嗎?即使是來自主要產品供應商,具有固件和某些內存的硬件也可能致命。是時候回到PS2輸入了!
waltinator
2016-09-22 22:56:51 UTC
view on stackexchange narkive permalink

USB的工作方式為AFAIK,請注意謊言可能導致系統誤入歧途。

  1. 計算機為USB設備提供+ 5V和GND。
  2. USB中的微控制器設備運行並發送USB語音消息,表示“這是X型設備”(X是磁盤,照相機,鍵盤,鼠標或在USB聯盟註冊的任何設備)。
  3. 計算機採取“適當”操作
  4. ol>

    考慮具有顛覆(重新編程)微控制器的USB設備...

     計算機:+ 5V,GND微控制器:我是鍵盤計算機:OK微控制器: “ FORMAT C:” ENTER“ Y” ENTER  

    (Dilbert參考)

    搜索“ BadUSB”漏洞以獲取詳細信息。

    有現在是GoodUSB小工具: http://hackaday.com/2017/03/02/good-usb-protecting-your-ports-with-two-microcontrollers/

Overmind
2016-09-22 11:02:59 UTC
view on stackexchange narkive permalink

有幾種方法可以使它顯示為空:

  • 在文件名中使用不受支持的字符

  • 使用隱藏選項

  • 使用特殊的Windows文件夾(如係統信息)

您將能夠檢測到它們,但是在Windows操作系統內部,您只能在情況2中檢測到它們,也就是說,如果您啟用了它以顯示隱藏文件。

是的,大多數情況下它是一個Windows操作系統問題。

是的,有幾種方法可以保護:

  • 使用良好的文件管理器來查看存儲棒的真實內容
  • 製作確保您沒有啟用任何類型的自動運行
  • 除非您知道文件的安全性,否則請確保不要執行,讀取或傳輸來自存儲棒的文件
這個答案具有誤導性,因為它使您完全錯誤地相信自己可以保護自己。你不能。惡意的USB記憶棒在固件中將是惡意的_________________________________________________________________ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
您可以在USB固件中嵌入一些有效負載,使其看起來像另一台設備(例如HID),但事實並非如此,因為該存儲棒被視為是空的,沒有被偽造為另一台設備。
-1
@bmargulies我要說這有點不公平。USB記憶棒在固件中可能是惡意的,這是絕對正確的。但是,至少就今天的情況而言,在2016年9月,這種攻擊在野外似乎很少見-無論如何,據我們所知-僅限於相當精巧的演員之行。另一方面,利用Windows處理USB記憶棒上文件的方式以及對Explorer中Windows漏洞的利用的USB向量在惡意軟件傳輸方面的記錄要廣泛得多。
我認為完全接受固件選項對於接受的答案是一件壞事。我還是這麼認為。
`...使用一個不錯的文件管理器,您將能夠檢測到它們...`即使USB固件拒絕列出它們,也可以嗎?(但是這將需要某種使它們處於活動狀態的方法。)
是的,user2338816仍然如此,因為這就是為什麼我使用自己的修改/重新編譯的文件管理器,而不是大多數使用的原因。我有完整的16、32和64位FM,它們幾乎可以完成操作系統內部所需的任何操作。直接磁盤訪問只是繞過所有內容的一種方法。如果那裡有東西,我會看到的。
@Overmind這絕對不是正確的,因為您沒有直接訪問磁盤的權限,因此只能通過模擬磁盤的(可能是敵對的)固件。插入後,它可以輕鬆地為完全空的存儲設備上的完全空的文件系統提供接口,並且5分鐘後開始行為,就好像連接了完全不同的存儲設備一樣。哎呀,它在物理上可以是* USB集線器,帶有兩個單獨的存儲設備(如果滿足某些條件,集線器中有一個規則可以切換它們),而不是通過看一下搖桿即可看到。
@Peteris-我正在談論忽略與操作系統相關的任何內容。您還沒有進入MS-DOS時代嗎?還記得lock命令和DDA嗎?好吧,我仍然使用類似的東西。沒有任何虛擬窗口仿真。
@Overmind忽略了與操作系統相關的任何內容,您仍然無法“直接”訪問USB存儲設備-它是計算機控制之外的外部硬件在模擬磁盤,並且無論您使用什麼代碼或操作系統,都可以在該模擬中作弊或硬件。您應該將USB記憶棒當作通過類似網絡的怪異連接連接到另一台計算機。該計算機可能只是公開一個“共享存儲”,但也可能對您說謊,修改您寫入該存儲的文件,或做很多其他有趣的事情。
@Overmind這同樣適用於HDD硬件/固件-現代HDD中具有相當強大的CPU,並且可以對其固件進行修改以適合您的計算機,操作系統或沒有操作系統。USB和HDD情況下的“直接訪問”並不意味著在存儲設備上讀取/寫入數據,它意味著直接向設備發送消息並從中獲取答复,並且設備可能以惡意方式答复-例如,在某些情況下從文件中讀取數據可能會返回修改後的信息;當操作系統在啟動時讀取用戶信息時,對HDD固件的概念驗證攻擊增加了一個額外的用戶帳戶。
@Peteris是的,我知道,我在較舊的Seagate系列中發現了這樣的錯誤。類似的方法被用於將小型USB記憶棒(如2GB,1GB型號)重新標記為32 + GB記憶棒。它們實際上會顯示很多空間,但是只有其中的第一部分(實際空間)可用。
phyrfox
2016-09-23 22:24:27 UTC
view on stackexchange narkive permalink

計算機不僅是處理器,一些RAM和硬盤驅動器。計算機內部有許多處理器,包括USB主機處理器,鍵盤處理器,時鐘處理器,地址總線處理器,IDE / SATA處理器等。

一個“完全空”的USB棒可能正在報告0個文件和單個文件夾中的文件夾,即使它是被編程用來宣傳自己作為大容量存儲設備的鍵盤。許多USB記憶棒上的固件設計時都不會讓最終用戶對其進行編程。許多USB主機上的固件還假定最終用戶不會對它們進行編程。

換句話說,具有足夠技術技能的用戶可以將自己的代碼寫到USB記憶棒上,從而可以將有效負載寫入USB主機處理器,該負載又可以用於通過公用總線破壞其他系統。用於存儲其代碼的ROM。這使供應商可以先構建硬件,然後再構建軟件。

因此,考慮到所有這些,您可能不想听的答案是:

“空的” USB閃存盤如何包含惡意軟件​​?

僅僅是因為操作系統認為某物為空並不意味著它是空的。至少,它在處理器中運行的固件代碼會在設備通電後的毫秒級啟動。所有USB設備都具有內存,甚至包括鍵盤,鼠標和聲卡。如果確實是空的,則該設備將無法工作。

但是,如果設備將自己報告為存儲設備,並且OS查詢分區表,則該設備可以簡單地發送所需的任何數據,包括看起來空的或具有任意存儲容量的數據。 ,您可以找到銷售容量不足的存儲設備的騙子,這些設備經過重新編程以報告更多的容量。例如,您可能購買了實際上只有2 GB物理存儲的32 GB棒。固件在於操作系統,當用戶嘗試使用超過(例如)2 GB的存儲時,最終會導致數據損壞。系統?

否。這實際上是市場上所有硬件設備的問題。有人估計這可能高達90%或更多的設備,包括筆記本電腦,平板電腦,電話,台式機,mp3播放器以及其他任何裝有USB固件的設備。我聽說至少有一家製造商已經“加固”了其固件以防重新編程。一個簡單的Google搜索將找到可以重新編程的存儲設備。

有什麼方法可以在保護自己的同時使用這些棍子?

不。實際上,除非您在將每個固件的代碼插入計算機之前都進行了檢查,並且實際上在插入任何內容之前先閱讀了計算機的固件代碼,否則您將無法確定。您的設備很可能在被運送到您的商店並出售給您之前已被NSA感染。即使您自己購買了所有硬件並自行構建,它甚至可能已被感染。除非您親自對計算機的各個方面進行物理創建和編程,否則絕對沒有絕對安全的方法。

您能做的最好的事情就是建立一定程度的信任,並避免冒險行為。除非您合理地信任賣方,否則請避免在e-bay上購買開放式硬件。除非您可以合理確定它們是安全的(例如進行研究),否則最好購買品牌的計算機部件而不是仿製的仿製品。使用盡可能少的設備,並避免與您不認識的人共享您的設備。換句話說,請採取與嘗試購買食物,汽車或其他任何東西時相同的預防措施。大多數硬件當前並未受到感染,僅是因為有一種更簡便的方法來獲取某人的數據,但您應避免隨意承擔風險。

KeksArmee
2016-09-23 19:29:53 UTC
view on stackexchange narkive permalink

USB記憶棒本身可能是病毒,而不是閃存中的數據。

讓我向您展示如何:

  • USB設備可以具有多個端點
  • 一個端點可以接收或發送數據
  • 一個普通的USB閃存驅動器需要2個端點:發送和接收
  • USB 1.1最多允許4個端點
  • 我認為USB 2.0最多允許15個端點

您可以使用其餘的端點來模擬鍵盤或鼠標。

如果完成了沒錯,用戶只會注意到看似空的閃存驅動器。因此,如果不修改USB固件,就無法刪除病毒

Nate
2016-09-23 19:26:05 UTC
view on stackexchange narkive permalink

上面的幾個好的答案-與waltinator的答案有關的另一個問題是 USB rub​​erducky,它可能在隱藏分區中包含惡意軟件​​,而該惡意軟件會在顯示空分區時進行部署。

NERF
2016-09-23 08:05:38 UTC
view on stackexchange narkive permalink

由於數據損壞。理論上,任何可以將自身寫入內存的內容都可以在無需任何用戶交互的情況下保存自身。按照這個定義,您可以說Windows本身就是惡意軟件,因為只要您插入驅動器或USB,它就會寫入一些不可見的字節,其中可能包含任何內容。操作系統或什至將自身複製到任何可寫內容的惡意軟件所需的備份信息中的任何位置。在90年代,軟盤上有一個物理的拇指插入物,您可以像開關一樣翻轉,將其翻轉到鎖定位置將導致數據無法寫入磁盤。 USB驅動器不存在像這樣的東西,儘管我敢肯定可能有軟件可以允許您鎖定驅動器。在Linux中,除非以這種方式設置,否則不會自動掛載任何東西,如果您在可移動硬件上捕獲惡意軟件,則是Windows的問題。

“物理拇指插入”將如何防止數據寫入軟盤?流氓軟盤驅動器為什麼會尊重它的用法?
@grochmal:的理論是您擁有驅動器,因此知道它是正確的,但是不知道軟盤的內容。這個類比是有缺陷的,因為插入物會保護磁盤,而不是保護放入磁盤的計算機。當時,運動鞋軟件傳播了許多病毒。一個阻止計算機打印。當時,工作計算機是共享的。您將被感染的軟盤放入計算機,以希望打印文件。當它感染計算機時,該文件將不會打印,因此您將把軟盤帶到另一台計算機上,然後重試...
大多數USB記憶棒都具有寫保護開關。
USB“記憶棒”上的寫保護開關不太可能受到固件的控制,如上所述,該固件可以被破壞。軟盤驅動器,尤其是PC機中使用的驅動器。2005年,傾向於基於較舊的硬件設計風格,要么完全不使用固件,而對物理交換機的效果進行硬連線,要么使用設計中所用芯片的製造商根本無法訪問的固件。
附件:用於經典PC軟盤驅動器的34針接口不能以任何方式對驅動器進行重新編程,並且不能覆蓋寫保護開關。
這是不正確的。大多數記憶棒沒有寫保護開關
我知道只有幾家供應商使用不可旁路的物理寫保護開關來製造大眾市場的USB記憶棒。(這意味著操作系統是否“尊重”交換機的位置無關緊要;當交換機處於適當的位置時,就不會進行物理寫入。)這些產品中的某些產品還聲稱只允許簽名的固件更改由製造商。您可以在Amazon或Newegg上輕鬆找到這些設備。您可能會猜到,對於相同數量的存儲,它們比典型的USB閃存要貴得多。
NZKshatriya
2016-09-24 17:16:46 UTC
view on stackexchange narkive permalink

我的簡短答案:很容易弄亂數據,使某些東西看起來好像不是。

這可能是惡意完成的,也可能只是其他應用程序的副產品。

以意外副產物為例。我有一個16gb USB3記憶棒,我將它製成了Kali linux的可啟動USB。我使用的程序最終將未使用的空間劃分為未分配的分區,因此現在系統僅將存儲棒視為ISO數據佔用的總空間。我最終不得不使用第3方分區程序來重新分區整個存儲棒,並獲得16gb的總容量。

這個比喻是無效的。可引導USB使用ISO9660驅動器內部的文件系統,該文件系統認為它是只讀的。您的操作系統顯示驅動器只有在安裝時才較小,因為沒有ISO9660實施可以超出文件系統的末尾(因為它是光學介質文件系統)。但是,在卸載後,您的操作系統仍可以讀取完整的塊設備(例如,dd if = / dev / null of = / dev / sdb會擦除完整的設備,而不僅僅是ISO9660覆蓋的部分)。
點了。為不好的類比而道歉,這很可能是由於缺乏睡眠,咖啡太少所致。我必須指出,我在主驅動器上運行的操作系統是Win10 ...儘管不用擔心,但我在外部使用Debian 8和Kali進行我的第一個LFS構建。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...