Thomas Roth, a reverse engineeringgel foglalkozó Stacksmashing YouTube-csatorna szerkesztője a napokban feltöltött egy technikai részletekbe menő videót az AirTag jailbreakeléséről.
Egészen pontosan arról van szó, hogy a biztonsági szakértőnek sikerült kiolvasnia a firmware-t az AirTag elvileg lezárt flash-memóriájából, majd annak egy módosított verzióját vissza is töltötte az eszközre.
A videóban elmondta, hogy az AirTag lelke az Apple U1 chip, amely a legkülönfélébb rádiófrekvenciás kommunikációs funkciókért felelős. Ez az úgynevezett ultraszélessávú (UWB, Ultra-WideBand) technológia az iPhone 11-ben debütált 2019 végén, és ugyanez a chip található meg az azóta megjelent iPhone-, Apple Watch- és HomePod-modellekben is, amiről itt írtunk már korábban. Az U1 mellett azonban egy másik integrált áramkör is megtalálható az AirTagben: ez a Nordic Semiconductor nRF52832 típusjelű processzora, ami egy Bluetooth és NFC vezérlésre alkalmas céláramkör. A jailbreakelés folyamatának ez lesz a főszereplője.
Egy másik biztonsági szakember, Colin O’Flynn már visszafejtette az AirTag belső csatlakozóinak és hibakeresésre szolgáló forraszpontjainak a bekötését. Az ő leírása az érdeklődők számára nyilvánosan elérhető a GitHubon, és Roth is erre a forrásra támaszkodott, amikor megpróbálta jailbreakelni az eszközt.
Ehhez az első lépést a vezérlőprogram, azaz a firmware kiolvasása jelenti az AirTag beépített flash-memóriájából. Ezt azonban az Apple lezárta, és kívülről alapvetően nem olvasható. Amint azonban kiderült, ez a védelem elég könnyen megkerülhető a hardver megfelelő “piszkálásával”.
Roth az úgynevezett “glitching” avagy hibainjektálás technikáját használta, mert ismerte egy másik hardvermérnök, @LimitedResults idevágó munkáját, amelyben ugyanennek a gyártónak egy hasonló chipjét, az nRF52840-t nyitotta meg glitching segítségével. Az eljárás lényege, hogy egy éppen futó processzor tápfeszültségét rövid időre, sorozatosan, szándékosan megszaggatjuk, a tápellátást kiejtjük, amelynek következtében annak működésében véletlenszerű hibák léphetnek fel. Ennek az egyik lehetséges megnyilvánulása, hogy a folyamatosan végrehajtott utasításfolyamból a chip néha kihagy egy-egy utasítást. Node miért is hasznos ez a jailbreakeléshez?
Amit valójában a jailbreakeléshez el kell érni, az a debug, azaz hibakereső módba való belépés, mert ez lehetővé teszi a chip viselkedésének közvetlenebb megfigyelését, és például az általa olvasott vagy írt memória tartalmának kiolvasását. A chip ezt általában valamilyen feltételhez kötve engedélyezi, ami pedig egy feltételes ugrás utasítást jelent. Azaz amikor a hibakereső mód le van tiltva, mint ahogyan ez az AirTagben is történik, akkor a processzor egyszerűen átugorja az(oka)t az utasítás(oka)t, amik a hibakeresés engedélyezéséhez szükségesek. Ha azonban a tápellátás hirtelen megszakítása folytán szerencsénk van, és a processzor pont az átugrás utasítását hagyja ki, akkor viszont végre fognak hajtódni a debug módot engedélyező gépi utasítások.
Ehhez gyakorlatilag a nyers erő és a fuzzing módszerét használva, nagyon sokszor gyors egymásutánban meg kell szakítani a processzor tápellátását rövid időre, és közben folyamatosan megpróbálni csatlakozni hozzá hibakereső módban, egy kifejezetten erre a célra készített debugger áramkörrel. Ha elég sokszor próbálkozunk, a véletlen a segítségünkre lesz, az áramkimaradás egyszer csak pont a megfelelő pillanatban történik, megnyitva a processzort a külvilág számára.
Roth kísérletében pontosan ez történt. Ennek során egy Raspberry Pi-ra írt programmal vezérelt egy MOSFET-et. Ez egy nagy sebességű tranzisztor, tehát egy nagyon rövid késleltetésű, elektronikusan vezérelhető kapcsolóként tud működni. Ezzel a kívülről, automatizálva vezérelt kapcsolótranzisztorral ideiglenesen rövidre zárta az nRF52832 áramellátását, ami nem volt nehéz, mert a chip tápfeszültséghez vezető csatlakozója technológiai okokból ki van vezetve az alaplap egy jól elérhető helyére, egy tesztelésre szolgáló forraszpont formájában. Mindössze néhány percnyi várakozás után siker koronázta a próbálkozásait, és be tudott lépni hibakereső módban a chipbe.
Ebben a módban utána már könnyű volt kiolvasni a firmware-t a memóriából. A flash pedig habár hivatalosan nem olvasható, a törlést és az újraírást mégis engedélyezi, valószínűleg a későbbi szoftverfrissítések lehetőségét szem előtt tartva. A biztonsági szakember ezek után tehát vissza tudott tölteni az AirTagre egy módosított firmware-t, amiben megváltoztatta az eszköz NFC-s beolvasásakor sugárzott URL-t, és átirányította ide.
A flash-memória írhatósága azt is jelenti egyben, hogy a fenti, meglehetősen pepecselős és időigényes folyamatot nem kell minden egyes AirTagnél megismételni, hiszen az egyszer már kiolvasott és módosított kód feltölthető tetszőlegesen sok másik eszközre is.
Természetesen a beépített URL megváltoztatása nem az egyetlen vagy a leghasznosabb lehetséges módosítás, a jelentősége mindössze annyi, hogy demonstrálja tetszőleges kód végrehajtását.
Ha jailbreakelnéd az AirTaget, te mit változtatnál rajta, milyen új funkciókat látnál benne szívesen?
“ Ha jailbreakelnéd az AirTaget, te mit változtatnál rajta, milyen új funkciókat látnál benne szívesen?”
Rávenném hogy kör helyett kocka alakú legyen, és megkérném hogy Neoval együtt lehessek a Mátrixban.
Csak azt, hogy ne fedje fel magát másik iphone-on sosem és azonnal lenne pici sokáig üzemelő nyomkövetésre alkalmas (talán) eszköz. Ja nem az asszonyt vagy a gyereket követném.
Nekem tegnap jött meg a négyes csomag. Tetszik.
Fu de kretén hogy a Never Gonna Give You Up videó klippre irányította át a sugárzott URL-t.
Az ilyen piszkálásokkal csak azt fogják elérni, hogy az alapvetően egyszerű hardverek is mint az AirTag simán iBoot bootloader-t fog kapni és a végén már csak olyan firmware-t fog felengedni magára, amit az Apple aláírt.
Persze van iPhone-ra is jailbreak, de hát mint látjuk, ezek a kiskapuk minden egyes exploit-tal bezárásra kerülnek (már ha nem hardveresen fal elcseszve a chip), így előbb-utóbb már nagyon-nagyon-nagyon nehéz lesz bármit is csinálni ezeken az eszközökön. Kivéve Apple.
Szerk.: amit egyébként nem is értek, mert már a macen a TouchBar-nak is saját, Apple signed firmware-re van, akkor itt hogy-hogy nem gondoltak rá…
pedig még a TouchBar is jailbreakelhető.
Continue the discussion at Hozzászólok