Představte si tu situaci. Sedíte ve svém oblíbeném bistru, klepáte prsty do klávesnice a v ruce svíráte cestovní bezdrátovou myš. Na chvíli se protáhnete, když tu se na obrazovce z ničeho nic objeví textový terminál a začnou se v něm zpracovávat všemožné systémové příkazy. Než se zorientujete, soubory, na kterých jste právě pracovali, zašifruje třeba ransomware.
MouseJack
Jenže vy jste přeci zkušení surfaři. Jak vás proboha mohl napadnout nějaký vir a ke všemu takto zákeřný? Bezpečnostní specialisté z týmu Bastille před pár dny předvedli, že jste mohli mít svůj počítač sebelépe zajištěný, ale bylo vám to naprosto k ničemu, někdo totiž zneužil vaši myš a aniž by se ji dotknul, proměnil ji v bezdrátovou klávesnici. Ano, tento zdánlivě šílený scénář opravdu funguje a týká se hromady zařízení předních výrobců počínaje Dellem a Logitechem a konče třeba Microsoftem nebo Lenovem. Vítejte ve světě MouseJacku.
Přesně tak totiž programátoři z Bastille pojmenovali sadu zranitelností současných bezdrátových myší a klávesnic, které ke komunikaci nepoužívají Bluetooth, ale proprietární radiový přenos v pásmu 2,4 GHz.
Zatímco radiový přenos s využitím Bluetooth je dostatečně zabezpečený, protože to vyžaduje samotný protokol pro párování dvou zařízení, v případě proprietárních technologií záleží pouze na výrobci, jak komunikaci zabezpečí. A jestli vůbec.
Nešifrovaná komunikace myši s donglem
V minulosti se na scéně objevilo několik útoků na bezdrátové klávesnice, kdy záškodník dokázal zachytávat radiovou komunikaci a odposlouchávat, co oběť zrovna píše. Tyto aféry přiměly výrobce, aby zapracovali na zabezpečení, takže současné bezdrátové klávesnice (přinejmenším od renomovaných výrobců), už tímto problém netrpí a používají šifrování.
Šifrovaná komunikace klávesnice s donglem
Specialisté z Bastille však zjistili, že zlatý důl pro útočníky se neskrývá přímo v klávesnici, ale v přijímači na počítači – zpravidla drobném USB donglu, a sestavili několik útoků, které poté ověřili v praxi a sestavili seznam zařízení, kterých se to týká.
1. Budu předstírat, že jsem klávesnice (i když jsem myš)
Nejatraktivnějším popsaným útokem je ten z úvodu tohoto článku. Zatímco klávesnice zasílají informace šifrovaně, u myší to tak časté není, protože to není až tak potřeba. Ostatně posuďte sami, co by se vlastně útočník odposlechem dozvěděl? Že myš provedla po povrchu nějaký relativní pohyb a vyslala informaci o stisku pravého tlačítka?
Na první pohled se zdá, že zde je šifrování opravdu k ničemu a může zároveň prodlužovat odezvu. Samo o sobě by to opravdu nevadilo, kdyby ovšem přijímací dongly v mnoha případech netrpěly naprosto bizarní chybou. Některé z nich (viz seznam) totiž neověřují, jestli typ informace, která dorazila, odpovídá také typu zařízení.
Útočník monitoruje bezdrátová zařízení v okolí a může si vybrat zranitelnou myš (respektive její přijímač)
Útočník tedy může dekódovat nešifrovanou komunikaci mezi myší a donglem, získat identifikátor myši a vyslat přijímači na PC informaci o stisku klávesy WIN. Dongle si tedy řekne: „Aha, dostal jsem od myši příkaz o stisku klávesy WIN, tak tuto informaci předám operačnímu systému.“
Vůbec mu nepřipadne divné, že myš posílá stisky kláves, protože na to vývojáři jeho ovladače zapomněli.
Útočník předstírá, že je myš oběti, jenže zároveň zasílá pakety se stisknutými klávesami. Děravý dongle nekontroluje, že stisky přicházejí nešifrovaně a ke všemu z myši a předá je dál operačnímu systému.
Tímto způsobem tedy může útočník zaslat do počítače v sérii celé příkazy k tomu, aby systém stáhnul a spustil nějaký virus, anebo naopak z počítače odeslal nějaké citlivé informace. I pro případný antivirový program se bude jednat o nijak podezřelou činnost, protože se jedná o standardní vstup.
2. Klávesnice sice šifruje, ale dongle šifrování nevyžaduje
Tím však výčet chyb nekončí. Specialisté z Bastille totiž objevili i další zranitelnosti. Dejme tomu, že jste si teď rychle zkontrolovali, že vaše bezdrátová klávesnice komunikaci šifruje a uklidnilo vás to. Jenže… Jenže je tu opět ten zrádný přijímač na PC. Některé totiž (snad kvůli zpětné kompatibilitě?) vedle šifrované komunikace umožňují i tu nešifrovanou.
Trošku to připomíná webové servery, které vedle šifrovaného spojení HTTPS umožňují i nešifrované HTTP, což je návrhová chyba, které využívá drobný prográmek SSLstrip v rámci útoku typu MitM (techniku jsem si vyzkoušel při útoku na Seznam.cz).
Pointa tedy spočívá v tom, že bude útočník zasílat donglu stisky kláves nešifrovaně a ten je bude zpracovávat.
3. Vynucené a skryté párování
Aby nebylo podobné podvržení klávesnice a myši tak jednoduché, vyžadují přijímače párování – podobně jako když párujete Bluetooth zařízení. Spojení obou zařízení může být natvrdo vypálené do jejich firmwaru už od výroby (dongle přijímá údaje pouze z krabičky s určitým unikátním identifikátorem), případně se umí dongle spojit s novým výrobkem a to v případě, že uživatel ručně vyvolá režim párování.
Některé dongly umožňují vynucené a skryté párování, aniž by si oběť čehokoliv všimla
Programátoři z Bastille však i v tomto případě objevili chybu, díky které mohli režim párování vyvolat na některých přijímačích opět dálkově a to způsobem, že si uživatel vůbec ničeho nevšiml. V onom hypotetickém bistru se tedy k jejich počítači opět připojil útočník a mohl začít psát.
Hackerský vysílač za pár dolarů
Většina postižených výrobců používá radiové vysílače z řady nRF24L, na které se soustředili i v Bastille. Drobný RF čip z norské fabriky Nordic Semiconductor obstarává samotnou radiovou datovou komunikaci na nejnižší úrovni a výrobce myši nebo klávesnice si tedy napíše jen vlastní protokol.
CrazyRadio – levný 2,4GHz kompatibilní vysílač
Specialistům tedy stačilo, aby si za patnáct dolarů pořídili univerzální vysílač CrazyRadio s identickým čipem a jen přepsali jeho firmware. S některými zdrojovými kódy se nakonec pochlubili na GitHubu.
Monitorování okolních 2,4GHz HID zařízení na Linuxu a Androidu
A jak nakonec výrobci zareagovali? Bastille průběžně aktualizuje seznam postižených zařízení o vyjádření těch, kterých se to týká. Dell vydal vyjádření, že problém studuje a uživatelům doporučuje, aby v době nepřítomnosti u počítače zamykali obrazovku (útočník se nedostane dál než k formuláři s heslem). Podobně zareagovalo i Lenovo s tím, že umožní výměnu postiženého produktu. Logitech vydal aktualizaci firmwaru a ostatní se zatím k případu nevyjádřili.