Hlavní navigace

Projekt Bolt zabezpečí váš Thunderbolt, povolí přístup jen známým zařízením

Petr Krčmář

Red Hat představil nový projekt Bolt, jehož cílem je zabezpečit rozhraní Thunderbolt. Za normálních okolností totiž umožňuje připojenému zařízení zaútočit na počítač. Bolt ale přidá do systému řízení přístupu.

Thunderbolt je když

Rozhraní Thunderbolt vyvinul Intel ve spolupráci s Apple. V jediném kabelu integruje sběrnici DisplayPort, PCI Express (PCIe) a napájení. Řadič na jedné straně multiplexuje všechny potřebné datové linky do sběrnice, na jejímž konci se další řadič postará o rozdělení na původní sběrnice. Jedná se tak o velmi univerzální spojení, které je dostatečně rychlé na připojení externích grafických karet či monitorů.

Thunderbolt má od roku 2015 už třetí revizi, která umožňuje přenášet data rychlostí až 40 Gbps. Zatímco první dvě verze využívaly ke spojení konektory DisplayPort, třetí Thunderbolt už staví na USB-C. To podstatné ale zůstalo: možnost připojit náročné periferie na externí PCIe sběrnici.

Původně toto řešení tlačil především Apple, s přechodem na USB-C a uvolněním pravidel použití se začíná rozhraní také šířit na počítače dalších značek. Mezi tím vznikla celá řada zařízení pro sběrnici Thunderbolt jako displeje, boxy na grafické karty, rychlé externí disky, síťové karty a podobně. 

Bezpečnost je opět problém

Podobně jako řada vysokorychlostních sběrnic předtím (PC Card, ExpressCard, FireWire a další) je i Thunderbolt náchylný na útoky pomocí DMA. Kvůli možnosti dosažení vysokých rychlostí mají totiž připojená zařízení přímý přístup do paměti. Pokud uživatel používá prodlouženou sběrnici PCIe, může vytvořit ošklivé zařízení, které má nízkoúrovňový přístup k hardware a obejde tak všechny bezpečnostní pojistky operačního systému.

Jednoduše si třeba vyčte šifrovací klíče nebo nainstaluje malware přímo do paměti bez asistence procesoru nebo jádra. Takový útok byl prakticky předveden [PDF] a postačí k němu úprava levného a dostupného zařízení se správnou sběrnicí.

Dalším problémem je takzvaný Option ROM útok, který staví na tom, že se při startu zařízení načítá firmware z jednotlivých připojených zařízení. Tato činnost probíhá před bootem systému, takže opět obchází softwarové ochrany a může cíleně ohrozit bezpečnost celého systému. Viz útok typu Thunderstrike.

Thunderbolt 3 má řešení

Řešení tohoto problému přišlo před dvěma lety společně s třetí revizí rozhraní Thunderbolt. Ta přináší řízení přístupu pro jednotlivá zařízení, která uživatel ke svému počítači připojuje. Existují čtyři stupně ochrany, ze kterých je možné zvolit v UEFI/BIOSu zařízení:

  • none – žádná ochrana, toto nastavení odpovídá původnímu chování starších revizí rozhraní
  • dponly – rozhraní nevytváří vůbec PCIe tunely a je možné jej využít jen pro přenos dat z DisplayPortu
  • user – připojená zařízení musejí být autorizována uživatelem, ovšem jen v případě požadavku na vytvoření PCIe tunelu
  • secure – jako předchozí varianta, ale zařízení si může uložit klíč, kterým se příště počítači identifikuje

V praxi to tedy znamená, že pokud je tato funkce zapnutá, nově připojené zařízení nebude fungovat, pokud mu k tomu uživatel v operačním systému neudělí právo. Z toho plyne, že podpora musí existovat také na softwarové straně. Intel přidal potřebné ovladače do linuxového jádra a dostupné jsou od zářijové verze 4.13.

Jedná se ovšem o nízkoúrovňové řešení, které vyžaduje ovládání přes sysfs. Red Hat ovšem začal už v létě pracovat na integraci tohoto rozhraní do uživatelského prostředí, aby vše bylo pro uživatele jednoduše použitelné.

Projekt Bolt

Tak vznikl projekt Bolt, který se skládá ze dvou částí: systémového démona a ovládací GUI komponenty pro GNOME Shell. Samotnou autorizaci zařízení provádí démon, který s uživatelem komunikuje přes zmíněný desktopový ovládací prvek. Aby mohlo být zařízení autorizováno, musí to schválit uživatel s administrátorskými právy a obrazovka nesmí být zamčená.

Včera vyšla první veřejná verze označená jako 0.1 s rozverným kódovým jménem „Accidentally Working“. Samotný démon využívá D-Bus API, přes které dovoluje vypsat připojená zařízení, zaregistrovat je (autorizovat a zapsat si je do místní databáze) a zase je zapomenout (vymazat z databáze). Zároveň jsou přes něj vysílány zprávy o tom, že bylo nové zařízení připojeno či odpojeno.

Démon si také může uložit informaci o tom, zda má být příště zařízení automaticky autorizováno, pokud se znovu objeví. K ovládání těchto funkcí démona slouží konzolová utilita  boltctl.

NMI18_tip do clanku_obecny

Zároveň vzniká integrace pro GNOME Shell, která umožní snadno uživatele upozornit na nově připojené zařízení a rovnou mu umožní jej autorizovat. Poslouchá na stejném D-Bus API jako konzolová utilita a slouží jen jako integrační komponenta. Zároveň sleduje, zda je uživatel opravdu přihlášen a nemá zamčenou obrazovku, pak teprve dovolí připojení již známého zařízení.

Pokud vše půjde dobře, bude toto rozšíření dostupné v GNOME 3.28. Uvidíme, zda se příležitosti chopí i tvůrci dalších prostředí a vytvoří vlastní ovládací utilitku i pro ně.

Našli jste v článku chybu?