Rozhraní Thunderbolt má díky přímému napojení periférií na sběrnici PCI Express pokročilejší schopnosti a také vyšší výkon než obyčejné USB. Umožňuje to například použít ho pro připojení externích grafických karet k notebookům. Ovšem stinnou stránkou těchto výhod jsou bezpečnostní rizika. Thunderbolt totiž umožňuje nepřátelskému zařízení kompletní přístup k celému počítači i datům v něm. A jak ukazují nově objevené zranitelnosti, ani IOMMU není ochrannou a současné operační systémy se tomuto riziku moc neumí bránit.
DMA u externího zařízení: starý problém
Podobné problémy si starší ročníky asi budou pamatovat i s rozhraním FireWire (IEEE 1394) a centrální příčina je zde stejná – stejně jako FireWire umožňuje totiž Thunderbolt připojeným zařízením kvůli vyššímu výkonu požívat DMA, neboli přímý přístup do paměti hostitelského počítače, a to jak pro čtení, tak pro zápis. To samozřejmě znamená, že pokud vám útočník podstrčí nějaké zlovolně upravené zařízení, může taková periférie smazat nebo přečíst vše v PC, případně potichu nainstalovat malware.
U Thunderboltu 3 je toto riziko zhoršené tím, že používá univerzální port USB-C. Uživatel si proto může myslet, že do portu připojuje jen „hloupou“ nabíječku nebo třeba jenom USB flashdisk, které by neměly být tak rizikové. Ale zařízení se zatím může připojit v režimu Thunderbolt 3, jenž mu dává mnohem nebezpečnější možnosti. Infikované může být také zařízení, které někde koupíte – kabel, redukce z USB na VGA nebo podobné zařízení. A teoreticky je také možné, aby nebezpečné naprogramování zanesl do původně nevinného zařízení nějaký po internetu se šířící malware. Nebo zrádný zaměstnanec továrny, kde se vyrábí.
Útok Thunderclap: IOMMU dnes bohužel nefunguje
Protože riziko spojené s DMA je dlouho známé, jsou na světě obrany, které ho mají řešit, a obecně bránit systém před potenciálně nebezpečným připojeným hardwarem (i interním). Takzvaná jednotka IOMMU slouží v dnešních PC k tomu, aby omezila zařízením přístup jen na ty oblasti paměti, kde mají co pohledávat a které potřebují pro svoji práci a legitimní komunikaci s hostitelem.

IOMMU by proto měla chránit před podobnými útoky, ale bohužel se ukazuje, že tato ochrana není často účinná. Univerzitní výzkumníci nyní publikovali referát o útocích, kterými lze navzdory IOMMU z připojeného zařízení proniknout do počítačů s macOS, FreeBSD i Linuxem (Windows jmenované nejsou, ale problematické jsou také). Vyrobili pro demonstraci těchto děr zařízení pojmenované Thunderclap založené na FPGA, které je naprogramované k proniknutí do ovladačů a operačního počítače, ke kterému je připojeno. A testování s Thunderclapem ukázalo, že během sekund se takto lze kompletně nabourat do zmíněných operačních systémů na řadě hardwarových platforem. Striktně vzato je ovšem takto ohrožen nejen Thunderbolt 3, ale rozhraní PCI Express obecně – jen u Thunderboltu je tato zranitelnost více exponovaná jeho externí povahou. Mimochodem, až začnou mobilní zařízení podporovat karty microSD s rozhraním NVMe/PCI Express, budou se také moci stát terčem úplně stejného útoku z nich.

Útok Thunderclap překonává ochranu s IOMMU proto, že operační systémy neimplementují její použití účinně. Autoři výzkumu předem o nalezených zranitelnostech informovali dotyčné firmy a některé ze slabých míst by údajně mezitím již měly být řešené aktualizacemi od Apple, Microsoftu a Intelu. Ale chyby, které Thunderclap demonstroval, nejsou ve zmíněných systémech zalátané všechny. Někteér zůstávají například v MacOS, u Linuxu a FreeBSD se také teprve bude řešit, co s výsledky projektu Thunderclap dělat. Microsoft například používá IOMMU jen velmi omezeně, takže asi budou často zranitelné i bez potřeby proniknout přes IOMMU. Podporu teoreticky mohou mít zařízení, vydaná loni s Windows 10 1803 a novější, ale výrobci zařízení nemají údajně stále dokumentaci, jak tyto ochrany (Kernel DMA Protection) používat. Situaci komplikuje to, že je třeba řešit množství různých ovladačů. Obecně ale výzkumníci udávají, že zranitelné na tyto chyby jsou teď všechny notebooky a počítače Apple s Thunderboltem, i standardní PC a notebooky, které tuto konektivitu obsahují.

I s IOMMU je dává PCI Express útočníkům velký prostor
I pokud bude IOMMU správně implementovaná a používaná operačním systémem, ale asi Thunderbolt 3 zůstane určitým rizikem, protože stále bude otevírat nezanedbatelný „attack surface“. Vždy bude riziko, že nějaká špatně napsaná kontrola bude obsahovat zneužitelné chyby typu buffer overflow, kterými se zařízení bude moci přes omezení IOMMU dostat dál do systému. Podobný problém je spatřován například v tom, že mají zařízení pro USB-C začít používat autentizační certifikáty. A při jejich parsování je opět riziko chyb, kdy speciálně upravený certifikát může spustit chybu v obslužném kódu a vložit kód útočníka. Rozhraní, které je mezi externím zařízením a hostitelským systémem i s IOMMU, je komplexní a podle výzkumníků „porézní“, takže bude asi dlouhodobě rizikové na výskyt zneužitelných slabých míst. Thunderclap byl uvolněn jako open source a má sloužit výrobcům hardwaru právě k testování a odhalování takových zranitelností, ale jak známo, software obvykle nikdy nebývá bez chyby.
Řešení? Dávat si pozor, co zasouváte, omezit Thunderbolt
Problém s pokročilými rozhraními jako Thunderbolt 3 (a PCI Express, pokud přijmeme předpoklad, že i instalované interní rozšiřující karty nebo třeba SSD mohou být rizikové) bude asi dlouhodobý a nebude mít nějaké snadné řešení. Výzkumníci doporučují mít na počítačích zapnutou IOMMU v operačním systému – tam, kde má uživatel vůbec možnost ji zapnout (Linux, FreeBSD).
Kromě toho je ale také záhodno vyhýbat se nedůvěryhodným zařízením pro port USB-C (nebo miniDisplayPort u počítačů s Thunderboltem 1 a 2). A pozor, mezi zařízení je zde nutné zahrnout i kabely a nabíječky – ty sice mohou vypadat jen jako pasivní kus drátu, ale i v nich se mohou skrývat aktivní čipy, které tedy mohou zaútočit na systém. Podle výzkumníků je pro uživatele, kteří chtějí co největší bezpečnost, nejlepší řešení úplná deaktivace rozhraní Thunderbolt. Zejména asi u notebooků, které při přenášení a mobilní práci mohou na podobou past natrefit snáze. Vypnutí funkce Thunderboltu na úrovni firmwaru počítače by mělo těmto útokům zabránit, a aspoň v některých případech zároveň umožnit danému fyzickému portu dál fungovat v roli běžného USB a nabíjecího portu.

Kromě toho je také možné mezi pochybná zařízení a počítač zapojit hloupý USB hub či dokovací zařízení, o kterém víte, že Thunderbolt nepodporuje. Nedůvěryhodný kabel nebo klíčenka pak nebude schopné režim Thunderbolt aktivovat a zaútočit na PC. Pokud vám počítač vyhodí při připojení zařízení požadavek na přepnutí do režimu Thunderbolt (Windows, některé Linuxy) a u daného zařízení to není očekáváno, pak si je také třeba dávat pozor a povolení neudělit.
Dobrý deň, pán Olšan, chcel by som sa Vás teda opýtať, čo si mám o tom myslieť? Mám chápať, že technológia Thunderbolt je chybná a mali by ju odstaviť, či si myslíte, že sa nájde reálne riešenie ako toto softvérovo opraviť? A teda ak by sme porovnávali zariadenia od Applu, alebo od Windows, ktoré by bolo perspektívne na tom lepšie, z hľadiska častejších snáh o opravu? Perspektívne, myslíte si, že príde niečo čo nahradí USB type C, či nájdu riešenie to opraviť? Viete, dosť ste ma s touto správou znepokojili, pretože väčšina lepších počítačov podporujú práve Thunderbolt 3.
Ta možnost DMA mi osobně přijde jako špatný nápad u externího portu, ale patrně je po takovém výkonném řešení poptávka (dtto ty nvme paměťové karty). Pokud je vyžadované, tak se asi nedá nic dělat, ale teda asi bych byl radši, kdyby se z thunderboltu 3 nestal standard a zůstalo to jen jako volitelná konektivita, čímž by se ten problém zmírnil. USB-C jako takové asi nic nenahradí, počítačový (notebookový?) průmysl se na něm spíš naopak asi snaží standardizovat…
Řešení je asi co nejlíp testovat a ochránit ty softwarová/firmwarová rozhraní a komunikaci se zařízením, aby ta IOMMU fungovala co nejspolehlivěji. Ono to asi vždycky bude nekončící soutěž mezi hledači exploitů a záplatami od vývojářů, ale tak je to s počítačovou bezpečností všude. Ten prompt, kdy se musí TB zařízení ptát uživatele je asi taky dobrý nápad, protože to může pomoct aspoň proti štenicím, které by spoléhaly na maskování za nějaké obyčejné USB zařízení.
Netrofám si tipovat, kde bude situace s bezpečností lepší. Apple má TB ve většině notebooků a má výhodu, že je to současně jenom pár modelů, takže se dá čekat, že by mu mělo dát míň práce zlepšit bezpečnost (na druhou stranu taky často ukazuje dost zvláštní lapsy…). U Windows to bude komplikované tím, že je větší různorodost notebooků, které tou konektivitou jsou opatřené, takže i když by Microsoft na tuhle technologii vrhl všechno úsilí, tak mohou být docela kvalitativní rozdíly mezi výrobci. A taky nevím, jak moc se bude chtít řešit firmwarové bezpečnostní problémy výrobcům u notebooků starých 5+ let.
Zatím bych moc nepropadal panice, protože člověk většinou nepoužívá zas tak moc periférií, takže by měl být celkem v bezpečí, když bude na tohle pamatovat a dávat si pozor na cizí zařízení/levné výrobky z aliexpressu a tak, kde by se asi něco podobného mohlo objevit.
Thunderbolt má různé „Security Levels“. Píše se o tom třeba tady: https://thunderbolttechnology.net/security/Thunderbolt%203%20and%20Security.pdf
Záleží na výrobcích notebooků a pc jak to implementuji v BIOSU. Nevím jestli to ten problém řeší úplně, ale částečně asi jo. Každopádně se o tom ví.