BadUSB je třída hackerských útoků založených na zranitelnosti v zařízeních USB . Pomáhá přihlásit se bez hesla. Kvůli chybějící ochraně flash v některých zařízeních USB může útočník upravit nebo zcela nahradit původní firmware a přimět zařízení, aby napodobovalo jakékoli jiné zařízení. BadUSB je navržen tak, aby doručoval a spouštěl škodlivý kód [1] .
Zařízení USB obsahují mikrokontrolér zodpovědný za komunikaci s hostitelem přes rozhraní USB. Během procesu inicializace sdělí mikrokontrolér hostiteli spolu s dalšími servisními informacemi třídy , do kterých zařízení patří. Hostitel načte požadovaný ovladač a pracuje se zařízením na základě jeho třídy a těchto dat. Jedno fyzické zařízení může implementovat několik tříd a být několika samostatnými zařízeními pro hostitele: webové kamery implementují jak třídu videa, tak třídu audio zařízení [2] .
BadUSB využívá skutečnosti, že výrobci nechrání svá zařízení před flashováním a hostitelé nekontrolují pravost zařízení USB. Díky tomu může útočník změnit firmware mikrokontroléru a vydávat jedno zařízení za druhé. Vzhledem k tomu, že veškerá komunikace probíhá prostřednictvím tohoto mikrokontroléru, může útočník zachytit a nahradit jakákoli data a příkazy mezi zařízením a hostitelem [3] . Automatická infekce zařízení je také možná: zařízení infikuje hostitele tím, že na něm spustí malware, poté hostitel automaticky infikuje všechna USB zařízení k němu připojená [3] .
Každý řadič je jedinečný a pro každý je nutné vyvinout infikovaný firmware nebo patch zvlášť. Není možné psát generický software a používat jej na jakémkoli mikrokontroléru. Postup firmwaru se u jednotlivých ovladačů liší. To vše výrazně snižuje pravděpodobnost epidemie BadUSB, ale nechrání před cíleným útokem [3] .
Koncept BadUSB byl představen v srpnu 2014 na konferenci BlackHat USA 2014 výzkumníky Security Research Labs Karstenem Nohlem a Jakobem Lellem , kteří přednesli prezentaci „BadUSB - On Accessories that Turn Evil“ . Přepracovali řadič Phison 2251-03 (2303) USB a vyvinuli firmware pro některé typy útoků. Firmware regulátoru byl proveden aplikací DriveCom . Bylo prokázáno falšování klávesnice, útok na síťovou kartu, útok na ochranu flash disku a skrývání oddílu flash disku. Zvažovaly se také některé způsoby ochrany před útoky BadUSB [1] [3] .
5. srpna 2014 byl zveřejněn exploit BadAndroid , který promění telefon s Androidem ve sniffer síťového provozu [4] .
Dne 26. září 2014 byl zveřejněn zdrojový kód firmwaru a záplat pro řadič Phison 2251-03, včetně podvodného útoku na klávesnici, útoku na heslo jednotky a skrytí diskového oddílu [5] .
Chyby zabezpečení se týkají všech zařízení s nechráněnými řadiči USB na desce: flash disky , webové kamery , myši , klávesnice , zařízení Android . BadUSB nevyžaduje speciální software v počítači oběti a funguje pod jakýmkoli operačním systémem, který podporuje zařízení USB-HID [3] [6] .
Potřeba časově náročného reverzního inženýrství každého USB zařízení omezuje tuto třídu útoků na vlastní útoky na konkrétní zařízení v rámci černých PR technologií nebo útoky proti konkrétní oběti pomocí konkrétních zařízení.
Zařízení se počítači oběti prezentuje jako klávesnice a po nějaké době začne vysílat sekvence úhozů. Výsledkem je, že útočník může provést jakoukoli akci na počítači oběti, která je dostupná oprávněnému uživateli pouze pomocí klávesnice. Útočník si může například stáhnout a spustit malware z internetu [3] .
Značnou nevýhodou tohoto typu útoku je nedostatečný přístup k informacím na obrazovce a v důsledku toho chybějící zpětná vazba na jakékoli akce z infikovaného zařízení. Útočník například nemůže zjistit jak aktuální rozložení klávesnice, tak to, zda je uživatel přihlášen [3] .
Zařízení se v počítači oběti jeví jako síťová karta, a tak může zachytit nebo přesměrovat síťový provoz. Konkrétně tím, že útočník odpoví na požadavek DHCP s adresou DNS serveru útočníka a neposkytne výchozí bránu, může přesměrovat provoz oběti: počítač oběti vyřeší adresu přes útočníkův server DNS, ale v nepřítomnosti výchozí brány, bude používat jiné skutečné síťové rozhraní [3] .
Zařízení s dostatkem místa pro uložení škodlivého kódu, jako je flash disk, dokáže detekovat okamžik zapnutí počítače a v okamžiku, kdy jej detekuje BIOS, vydá virus k načtení, který infikuje operační systém. To je možné díky tomu, že chováním hostitele při komunikaci s USB mikrokontrolérem je možné určit hostitelský OS, zejména Windows , Linux , MacOSX a také BIOS [7] .
Útok využívá možnost znovu inicializovat zařízení [2] . Virus běžící na virtuálním počítači infikuje jakékoli zařízení připojené přes USB. Infikovaný firmware provede reinicializaci a objeví se jako dvě nezávislá zařízení: nové a jedno, které již bylo připojeno k virtuálnímu počítači. Nové zařízení bude automaticky připojeno k hostitelskému OS a staré zařízení bude připojeno zpět k virtuálnímu počítači. Přechod lze tedy provést mimo virtuální prostředí, to znamená, že byl proveden přechod z klienta na hostitelský OS [7] .
Zpráva „BadUSB - On Accessories that Turn Evil“ navrhla několik způsobů ochrany proti BadUSB, nicméně podle výzkumníků bude plná integrace ochrany trvat dlouho [3] [7] .
Jedním z možných protiopatření je podepsání firmwaru výrobcem hardwaru a jeho ověření na straně hostitele před použitím zařízení, což aktuální specifikace USB nepodporuje. Dalším řešením problému může být zablokování možnosti blikání zařízení výrobcem [2] [6] .
Mark Shuttleworth , zakladatel Canonical Ltd. , hovořil také k problematice zabezpečení USB zařízení a jako řešení problému navrhl zcela otevřít zdrojový kód firmwaru [8] .
Navzdory skutečnosti, že řada komplexních nástrojů antivirové ochrany, jako je ESET Endpoint Antivirus , Kaspersky Endpoint Security , součást Rodičovská kontrola Dr.Web AV-Desk , umožňuje omezit přístup k výměnným médiím a povolit aktivaci podle „white list“, v V případě Bad USB taková opatření nestačí. Sám uživatel může povolit připojení nebezpečného zařízení, mylně jej považuje za bezpečné. Podle Andrey Vasilkova, korespondenta Computerra , budou muset vývojáři antivirových řešení v budoucnu přidat „samostatné moduly pro flexibilnější dodatečné ovládání zařízení připojených přes USB“ [9] .
Ochrana proti útokům BadUSB se objevila v aplikaci Kaspersky Endpoint Security 10 v aktualizaci ze 7. prosince 2015 [10] .
Bezpečnostní řešení Dr.Web od verze 11 chrání před zranitelností BadUSB pro zařízení napodobující klávesnici [11] .