Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Ładowarka zagłady – wpinasz ją i masz roota (ataki Thunderclap)

27 lutego 2019, 14:38 | Aktualności | komentarzy 7

TLDR: podłączasz urządzenie do portu USB-C… ktoś może mieć roota (admina) na Twoim systemie. A to tylko przykład – możliwe jest czytanie ruchu VPN (w plaintext) czy dostęp do naciskanych na komputerze klawiszy. Mimo łat producentów OS (problematyczne okazały się w zasadzie wszystkie systemy: Windows, Linux, OS X, FreeBSD), autorzy badania dają tylko jedną radę na najlepsze zabezpieczenie:

The best way to fully protect yourself is to disable the Thunderbolt ports on your machine

(wyjaśnienie różnicy USB-C vs Thunderbolt nieco niżej; często obsługę Thunderbolt można zablokować w BIOS-ie). Ewentualnie rada dla mniej paranoicznych:

You can also protect yourself by not leaving your computer unattended in public and not using public USB-C charging stations.

Kabel Thunderbolt 3

Problemy zostały zgłoszone do producentów systemów operacyjnych i innych vendorów (sprzętu) już w 2016 roku, a teraz zostały opublikowane. W skrócie – poprzez podpięcie „zwykłego” urządzenia za pomocą złącza Thunderbolt-3 (ale uwaga – w wielu laptopach czy nawet desktopach mamy jego obsługę!). W uproszczeniu – Thunderbolt 3 to USB-C na sterydach (mamy również jego kompatybilność z USB-C):

Thunderbolt 3 defines a superset of capabilities that runs on USBC connectors and cables.

W czym jest problem? Thunderbolt 3 daje choćby możliwości podłączenia zewnętrznej karty graficznej – powiedzmy sobie szczerze – w różnych celach. Zewnętrzna karta graficzna, na kablu – brzmi jak konieczność wysokiej szybkości i absolutnie minimalnych opóźnień. Tak rzeczywiście jest – i według autorów badania – to główny problem – jeśli twórcy systemów mają wybrać pomiędzy bezpieczeństwem a wydajnością wybierają (oczywiście;) wydajność:

This cost has led current operating systems to trade off security for performance gains – in some cases even disabling the IOMMU by default.

Co wykorzystuje nowa grupa ataków? Rodzaj dostępu klasy DMA (Direct Memory Access; bezpośredni dostęp: odczyt/zapis do pełnej pamięci komputera, do której podłączony jest kabel/urządzenie – nie brzmi zbyt dobrze, prawda?). Ale tym razem udało się też obejść mechanizmy, które miały przed tym bronić (IOMMU). Jak się okazuje, to ostatnie (IOMMU) nie jest zawsze włączone. Nawet jeśli jest – to nic:

Thunderclap explores serious vulnerabilities that are present even once the IOMMU is configured correctly.

W szczególności pokazano urządzenia, które są whitelistowane w systemach operacyjnych (obrazowo: nie chcę za każdym razem akceptować faktu podłączenia ładowarki USB-C). Lekka modyfikacja takich urządzeń i już mamy ofensywny sprzęt dający pełen dostęp do admina, bez żadnego alertu… (tym razem to wybór pomiędzy bezpieczeństwem a wygodą…).

Jak z łatami? Raczej różnie – sporo producentów wydało sensowne aktualizacje (w tym np. Intel przygotował stosowny kod dla Linuksa – kernele z linii 5.x). Ale wydaje się, że duża część łat rozwiązuje obecnie tylko część problemów. Przykład:

In macOS 10.12.4 and later, Apple addressed the specific network card vulnerability we used to achieve a root shell. However the general scope of our work still applies; in particular that Thunderbolt devices have access to all network traffic and sometimes keystrokes and framebuffer data.

Co ciekawe badacze udostępnili zarówno software jak i opis hardware, które można używać już do budowania konkretnych bojowych rozwiązań wykorzystujących podatności Thunderclap. Zdjęcie eksperymentalnego urządzenia z „implantem” poniżej:

Niektórzy powiedzą, że nie ma co się przejmować, przecież „nikt nie widział” takich ataków w rzeczywistości albo są drogie (nota bene: dość trudno jest udowodnić że „nikt nie widział” lub „czegoś nie ma”)… jeśli uważacie podobnie – spokojnie możecie zignorować tego posta i spać spokojnie :-)

–ms

 

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Ataki na Thunderbolt (i ogólnie na interfejsy działające w trybie DMA) są znane od lat. Również metody zapobiegania im są znane od lat, chociaż głównie osobom zajmującym się bezpieczeństwem IT.

    Jedynym realnym problemem jest w tym wszystkim idiotyczny kierunek sterowania poborem prądu na USB za pomocą różnych „inteligentnych” rozwiązań, które potem np. mogą wymagać parowania czy innej autoryzacji, zamiast po prostu za pomocą kilku tranzystorów i kondensatorów, metodami znanymi od dziesięcioleci.

    Wtedy byłaby jasna sytuacja: możemy użyć kabla tylko do zasilania, z wyciętymi przewodami do danych, albo wręcz możemy linie danych trwale wyciąć szczypcami precyzyjnymi na poziomie złącz, których nie jesteśmy w stanie trwale zalepić.

    No ale gdyby faktycznie pójść w te tranzystory i kondensatory, to Apple by sobie nie zarobiło na przejściówkach i zapasowych zasilaczach, bo konkurencja z Chin by je robiła po 200x taniej…

    Odpowiedz
    • Tomek – tak ataki są znane, ale pojawiają się nowe interfejsy, które… okazuję się znowu podatne. A komponenty które miały chronić…nie chronią.

      Odpowiedz
      • Nie takie nowe, bo to przecież kontynuacja koncepcji Firewire. A z drugiej strony kontynuacja koncepcji Lightninga i złodziejsko-debilnego pomysłu Apple, aby regulować podaż prądu na USB za pomocą aktywnej elektroniki, co by potem móc sprzedawać horrendalnie drogie „oryginalne” akcesoria. Mają za swoje. Szkoda, że bardziej na tym cierpią inni niż samo Apple.

        Odpowiedz
        • to zależy jak na to patrzyć ;) Bo np. bardzo dużo obecnych ataków na „usługi sieciowe” jest klasy buffer overflow (różne odmiany), które zostały wymyślone grube x lat temu. Czy te „nowe” ataki to nic nowego? ;-)

          Odpowiedz
          • MKS

            Patrzeć, nie patrzyć, coż to za gwara :)?

          • krakowska :)

  2. Paranoik

    „…whitelistowane w systemach operacyjnych (obrazowo: nie chcę za każdym razem akceptować faktu podłączenia ładowarki USB-C)”

    Czy jeśli skonfiguruję OS tak, aby tę swoją białą listę wsadził sobie w… nos producenta, to:

    0. czy mam taki wybór w drodze normalnej konfiguracji, czy muszę rekompilować kernel, a więc „prosić się” o kernel panic znienacka? i kłopoty przy aktualizacjach? TO DRUGIE
    1. czy mam jakąkolwiek kontrolę nad tym co USB mogą a czego nie? NIE
    2. czy mam jakąkolwiek kontrolę nad tym co (z innej beczki) aplikacje mogą a czego nie? Apparmor, Firejail itp. TAK ale domyślnie tego nie ma, i żaden człowiek który nie przebrnie przez [cokolwiek] nie zauważy problemu

    Piję do tego, ze jakieś 15 lat temu GNU/Linuksy słynęły z tego, że nie robiły nic domyślnie dla wygody niedzielnych luserów i tym mnie trwale skusiły… A teraz? Jeszcze trochę takich wycieczek i zostanie tylko Slackware :(

    Odpowiedz

Odpowiedz