Egy hangyányi DEFCON

1993: Jeff Moss alias “Dark Tangent” szervez egy búcsú partit Las Vegasban az egyik kanadai hekkercsoportban tevékenykedő barátjának, aki édesapjával elhagyja az USA területét. Mivel apjának korábban kell elindulnia, így Jeff barátja is vele tart, ezért DT magára maradt az előkészített bulival. Nem akarja, hogy kárba vesszen a befektetett energia, idő és pénz, így meghívja az összes hekker ismerősét és ezzel mozgásba lendít egy gépezetet, ami a DEFCON nevet kapja. Az esemény hamar kinövi magát a kezdeti kb. 100 fős buliból és évente majdnem 20 ezer fős konferenciává avanzsál.

Nevét a ’80-as évek egyik kultfilmjéből merítették, a WarGames-ből. Egyrészt az amerikai haderők katonai készültségére is utal (DEFense CONdition), másrészt a filmben Las Vegas nukleáris célpontként lett feltüntetve. Más értelmezésben a CON lehet a conference (konferencia) rövidítése, a “DEF” karakterek pedig a nyomógombos telefonok 3-as gombján találhatóak, ez egy utalás a phone phreakerekre, akik a telefonok, telefon hálózatok manipulálását tanulmányozzák, kísérleteznek velük.
Ha szeretnénk egy életre szóló élményt, vagy olyan eseményen részt venni, ahonnan legalább még a hazaúton is pörög az agyunk, akkor erre tökéletes a DEFCON. Amellett, hogy próbára tehetjük magunkat különböző versenyeken (pl. zártörés, szlogen-, kávéháború, vagy kincskeresés), számos lenyűgöző előadással készül a szakmabeli géniusztábor. Ha kíváncsiak lennénk, hogy egy ATM-et hogyan lehet meghekkelni, vagy éppen azon keresztül hogyan lophatják el a mi adatainkat, hogyan szerezhető meg minden információnk csak egy fotónk és egy megfelelő algoritmust használó arcfelismerő szoftver segítségével, vagy hogyan tulajdoníthatunk el egy parkoló, vagy úton lévő autót elektronikus módszerekkel, csak annyi a dolgunk, hogy végigböngésszük a korábbi DEFCON előadásokat és a válasz, amit kapunk még több is lesz, mint kielégítő. Ezen prezentációk megtekintése után biztosak lehetünk afelől, hogy a jövőbeli előadások esetében sem kell félni az unalom fenyegetésétől.

Az előadónak való jelentkezéshez kutatásunk témáját kell beadni online egy bíráló bizottság számára, akik kiválasztják a legizgalmasabbnak tűnőket, és azok benyújtóinak személyes meghívót küldenek ki. A konferencián ritkaságszámba mennek a magyar előadók, de eddig már ketten is képviseltek minket, akik közül egyikükre, Szakály Tamásra a PR-AUDIT Kft. kifejezetten büszkén gondol, hiszen vezető biztonsági szakemberünk, ráadásul nem is csak egyszer, hanem az idei alkalmat is beleszámolva, kétszer tartott előadást. Tavaly a számítógépes játékok sebezhetőségeire derített fényt, idén pedig egy vezetéknélküli kommunikációs protokoll, az ANT sérülékenységi pontjait mutatta be.

Tavalyi prezentációját megtekinthetik videó formájában EZT a linket követve, valamint ITT találhatnak egy cikket, amit az index.hu készített Tamással.

Idei előadásában az ANT sebezhetőségeit tárta fel, ennek a bővebb összefoglalóját olvashatják.
Számtalan kütyü használja a protokollt, leginkább a fitnessz iparban kedvelt, ahol alacsony energiaigényű kommunikációs megoldásra van szükség (pl. sebességmérők, okosmérlegek, vérnyomásmérők), de sok mobiltelefon is el lett látva ANT chippel.

A sima ANT protokoll a Dynastream saját fejlesztésű technológiája. Több, a hétköznapi életben használt vezetéknélküli megoldáshoz hasonlóan (Bluetooth, WiFi) a 2,4 GHz-es ISM sávon kommunikál. A kommunikációt közösen kialakított csatornákon a hálózatba csatlakoztatott master, és/vagy slave node-ok végzik egymás között.

A protokoll biztonsági intézkedései közül az egyik a hálózati kulcs használata. Egy adott hálózat minden tagjának rendelkeznie kell ezzel, így limitálva a kommunikációt a hálózatban résztvevőkre, és kizárva a többi hálózaton folyó kommunikáció, vagy onnan történő “hallgatózást.” Ennek az intézkedésnek a megkerülése nem mindig nagy feladat, hiszen létezik egy default (alapértelmezett) kulcs, amit ha nem változtatunk meg, bárki hozzáférhet a hálózathoz.
Egy hasonló intézkedés része, hogy az ANT protokollt ellátták egy “pairing bit”-tel, aminek párosításkor mind a két node-on ugyanolyannak kell lennie. A megkerülés módszere elméletben elég egyszerű: ha nyitunk két csatornát eltérő pairing bit-tel, az egyik biztosan meg fog egyezni a célpont eszközzel.

Az ANT+ egy közös megállapodás alapján kialakított definíció halmaz, hogy az ANT protokollt használó eszközök közötti kommunikáció mindkét oldalról értelmezhető legyen. A párosítható eszközök mindegyikét külön eszköz profilokkal látták el, és közvetlenül kötődnek a használatukhoz.

Az ANT-FS (ANT File Share) egy ANT protokoll kiterjesztés, ami lehetővé teszi fájlok vezetéknélküli küldését és fogadását két eszköz között, amik “SYNC” eszközprofillal lettek kiadva. Összegyűjti és továbbítja az érzékelők adatait, mindezt FIT (Flexible and Interoperable Data Transfer) fájlokban, ami így gyakorlatilag az alapértelmezett tárolási fájlformátuma a protokollnak.

Első körben Tamás megpróbált fuzzolni FIT fájlokat, amivel Garmin 310XT sportórájának megtörését célozta. Ehhez az American Fuzzy Lop neveztű fuzzer applikációt használta, amibe a FIT SDK-ben (Software Development Kit) található dekóder mintát táplálta be remélvén, hogy az állományok “elcrashelnek.” Ugyan ez be is következett, de látszólag nem kihasználtó crasheket kapott. A sérülékeny fájlokat visszaküldte az órára, és várta, hogy keletkezzen valamiféle crash dump/log, de ez nem történt meg, csak az ANT stack lett elérhetetlen egy kis időre.

Az ANT-FS marketingfogásának részét képezi az “ANT-re épülő biztonságos, megbízható fájlátviteli protokoll” mondat. Habár az Internet társadalom nagy része a megbízhatóságot kérdőjelezi meg, Tamás a biztonsági aspektusokat veszi számba cinikusan. Górcső alá vette a Dynastream által büszkén hirdetett két legfőbb biztonsági intézkedést: a beépített titkosítást és a többféle azonosítási mechanizmust.

Az első azonosítási mechanizmus a “pass-through mode.” Itt nem nagyon beszélhetünk azonosításról, hiszen a küldő fél csak “szépen kéri”, és a fogadó fél szimplán beengedi az adatot. Leginkább tesztelésre használják ezt a módszert – vagy mégsem? Mint kiderült, mind a 310XT, mind a Vivofit engedelyezi ezt a fajta azonosítást.

A “pairing mode” névre keresztelt authentikációs módszer igényli a felhasználó döntését az eszközök párosításakor. A hoszt elküld egy-két azonosító adatot a kliensnek sorozatszám és név formájában, a kliens tájékoztatja erről a felhasználót, aki dönthet, hogy elfogadja, vagy sem. Ha elfogadja, a kliens elküldi a passkeyt a hosztnak, ami ezt megjegyzi a jövőbeli párosítások megkönnyítése érdekében. Itt keletkezik egy lehetséges támadási vektor, mivel a forgalom “sniffelhető.” Tamás megpróbálta ezt kihasználni egy RTL-SDR és egy MMDS lekonvertáló segítségével. Annak ellenére, hogy az egyik hivatalos dokumentáció az Enhanced ShockBurst-öt nevezi meg csomagformátumnak, kiderült, hogy ez nem így van, mert az abban a formátumban tesztelt csomagok esetében a várt bájtok értékének dupláját kapta szakemberünk.

A harmadik authentikációs metódus a “passkey mode.” Ezek a kulcsok 255 byte hosszúak lehetnek, úgyhogy a brute-force megközelítés nem túl praktikus. Párosítás után a hoszt eltárolja a kulcsot a kliens sorozatszáma alapján. Ha egy már meglévő sorozatszámmal rendelkező klienst talál, a hoszt egyből elküldi a hozzátartozó kulcsot. Ebben az esetben Tamás a közbeékelődéses támadást alkalmazta, ami abból áll, hogy a hoszt és a kliens közé “beékeli magát” és mindkét fél számára azt mutatja, hogy ő a másik fél. Itt azt várta, hogy minden információt megtalál a támadáshoz használt eszközök debug naplóiban, de a kulcs ellenőrző algoritmus ezt ellehetetlenítette. Szerencsére az eredeti alkalmazások patchelése után hibátlanul lefutott a támadás, és Tamás elérte a célját, megszerezte a kulcsot.

Az ANT-FS egy vonása, hogy van lehetőség OTA (over-the-air) firmware frissítéseket telepíteni rajta keresztül. Ezt a módszert a Dynastream dokumentálta, de a Garmin termékek nem úgy használják, ahogy az le van írva. Tamás ezért visszafejtette (reverse engineer) a folyamatot, hogy jobban megértse. Rájött, hogy az alábbi tényezők övezik a frissítés folyamatát: a frissítéseket kicsomagolandó .rng fájlok tartalmazzák, az ANT-FS mappa első eleme a firmware és a frissítés folyamata egy szimpla felülírás. Ezekkel gazdálkodva még nem tudott módosított firmware-t feltölteni az okosórára. Arra gondolt, hogy az ellenőrző összeg nincs rendjén, amit még meg kellett fejteni. A firmware-ben talált két CRC16 tábla és két CRC16 implementáció egy időre férevezette, de aztán rájött az ellenőrző összeg algoritmusára. Ennek ismeretében már a módosított firmware feltöltése is sikeresnek bizonyult.
Tamás talált egy XML sztringet is a Vivofit firmwareben, aminek két node-ja gyanús értékeket vett fel. Az egyik az “XXXXXXXXXX”, míg a másik az “X” értékkel rendelkezett. Rábukkant egy függvényre is, ami ezeket helyettesíti eszköz azonosítóval, valamint egy igen/nem értékkel (0, 1) az alapján, hogy egy heartrate figyelőt használ-e, avagy sem. Ezek alapján arra következtetett, hogy mindenképp egy eszközleíró fájlról van szó.

A Vivofit Bluetooth-on keresztü kapcsolódik a Garmin Connect mobil alkalmazáshoz, amiben Tamás fel is fedezett egy függvényt, ami a fentebb említett XML fájl letöltését szolgálja. Korábban munkatársunk már bejelentette a szóban forgó vállalatnak, hogy talált XXE (XML External Entity) sebezhetőséget bizonyos termékeikben, azonban a Garmin dolgozók nem kimondottan törődtek vele, így feltételezte, hogy a Garmin Connect is kitehető egy ilyen sebezhetőségnek. Kicserélte a Vivofit XML fájlját a saját tört állományával és várta, hogy a telefon kapcsolódjon a számítógépéhez, ezzel bizonyítva a támadás sikerét. A kapcsolat létre is jött, csak nem a telefon, hanem a Garmin egyik szervere szólt vissza! Azóta a Garmin felvette a kapcsolatot Tamással, és megfogadták a tanácsait, de nagy gondban lennének, ha egy rosszindulatú támadó fedezte volna fel ezt a hibát.

Tamás az előadás végén lévő összefoglalójában kifejtette, hogy biztonsági szempontból nem kiemelten érdemi választás az ANT protokoll használata a fent kifejtett sebezhetőségeknek köszönhetően, így nem javasolja az ilyen eszközök használatát sem, csak ha nem félünk attól, hogy egy támadás célpontjává válhatunk rajta keresztül.
Reméljük kollégánk a következő (25.) DEFCON alkalmával is számot adhat szakmai tudásáról, valamint hasonló információhalmazzal látja el az érdeklődő közönséget. Az idei előadás videóanyagát hamarosan megtekinthetik, amint a DEFCON csapata közzéteszi őket. Addig is megtekinthetők a bemutató videók az egyes feltárt sebezhetőségekről ERRE a linkre kattintva.

 

Kép: https://thenextweb.com/