Zamyslenie sa nad bezpečnosťou elektronického mýta - Nethemba

BLOG

Zamyslenie sa nad bezpečnosťou elektronického mýta

2010-01-25 20:47 Pavol Lupták

„Legal disclaimer“ alebo všetko je len čistá špekulácia

Priznám sa, že o elektronickom dialničnom mýte neviem nič, teda nič viac ako ktokoľvek z Vás. Vychádzam len čisto z verejne dostupných informácií, ktoré boli doteraz publikované v rôznych Internetových médiach.

Nedisponujem žiadnou špeciálnou technickou dokumentáciu, nevlastním palubnú jednotku, ani kamión.

Všetko ďalej uvedené je len myšlienkový konštrukt viacerých ľudí, ktorí sa o bezpečnosť zaujímajú (Juraj Bednár, Ľubor Illek a Pavol Lupták), ktorý sa nemusí zakladať na pravde, nakoľko o tom bohužial nemám potrebné technické informácie.

Spoločnosť Skytoll som kontaktoval pred pár týždňami, aby mi poskytla ďalšie informácie ako aj palubnú jednotku na ďalší bezpečnostný výskum – zatiaľ mi nič také neposkytla, takže aj pri najlepšej snahe informovať o skutočnej bezpečnosti, upozorňujem, že nasledujúca úvaha je vo fáze teoretických špekulácií.

Motivácia

Projekt elektronického mýta bol extrémne drahý netransparentný projekt zaplatený daňovými poplatníkmi.

Osobne som presvedčený o nevyhnutnosti otvorenosti všetkých verejných projektov dotovaných zo štátnych peňazí – znamená to, že je úplne nevyhnutné, aby bola verejne dostupná bezpečnostná špecifikácia, použité protokoly, algoritmy a ďalšie informácie popisujúce ako to celé funguje – nielen po bezpečnostnej stránke. Nakoľko nič také ale neexistuje (aspoň o tom neviem), stráca sa spätná kontrola a možnosť spripomienkovania zo strany technickej verejnosti ako aj nezávislými bezpečnostnými špecialistami a hrozí, že sa nasadí nedostatočne bezpečné riešenie.

Momentálne máme proprietárny neverejný systém elektronického mýta o ktorom nič nevieme a slepo veríme tomu, čo hovorí dodávatel – že je to bezpečný a nenapadnuteľný systém. Pri nedostatku dostupných technických informácii to bohužialnemáme ako jednoducho a rýchlo overiť.

Nakoľko má bezpečnosť podobných systémov zaujíma, rozhodol som sa čisto teoreticky zrekonštruovať ako celé riešenie po bezpečnostnej stránke približne funguje, kde môžu byť prípadné bezpečnostné problémy a ako sa tento systém dá potenciálne zneužiť.

V prípade, že sa ku mne dostane nejaký exemplár palubnej jednotky s ktorou sa bude možné hrať, rozbrať a detailnejšie analyzovať alebo bude k dispozícii akákoľvek technická dokumentácia, svoje názory veľmi rád upravím tak, aby reflektovali reálny stav bezpečnosti tohto systému.

V prípade, že chcete pomôcť tejto analýze a viete toho viac, neváhajte ma kontaktovať – všetky užitočné informácie o bezpečnosti tohto riešenia som pripravený zverejniť.

Ako funguje palubná jednotka

Citujem zaujímavé sekcie z článkov Ako funguje palubná jednotka elektronického mýta a Bližší pohľad na elektronický výber mýta:

„V sumáre možno povedať, že palubná jednotka je prijímač GPS signálu z družíc, na základu ktorého si vypočíta aktuálnu polohu. Má v sebe zabudovanú mapu spoplatnených úsekov a na základe analýzy posiela do centrály cez GSM modem informácie o prejazde spoplatnených úsekov ciest zabezpečeným kanálom s elektronickým podpisom.Ide o takzvanú tlstú OBU jednotku, ktorá nepotrebuje trvalé GSM spojenie. Okrem toho má palubná jednotka aj mikrovlnný modul, ktorý sa na Slovensku bude využívať len na kontrolné účely.

a

„Komunikácia s elektronickým backofficeom prebieha prostredníctvom zašifrovaného kanála GSM/GPRS, lokalizácia vozidla na základe polohy GPS. Na spojenie s backofficeom nie je potrebné neustále pripojenie v sieti GPRS, údaje sa odošlú vtedy, keď bude zariadenie v sieti.“

Z bezpečnostného hľadiska ma zaujali dve veci:

  1. Palubná jednotka má v sebe už nahratú mapu spoplatnených úsekov
  2. Nie je potrebné trvalé GSM spojenie, palubná jednotka komunikuje, len keď je zariadenie v sietí

Palubná jednotka má v sebe už nahratú mapu spoplatnených úsekov

Toto je zaujimavé zistenie, lebo pôvodne som predpokladal, že palubná jednotka kontinuálne s idúcim kamiónom lokálne ukladá / zasiela svoje GPS koordináty na centrálu, ktorá na základe toho rekonštruuje cestu kamióna a automaticky na základe toho vyhodnocuje, ktorými platenými úsekmi daný kamión prešiel alebo neprešiel – takže o tom, či daný kamión prešiel spoplatneným úsekom by rozhodovala centrála (nie samotná palubná jednotka) rekonštrukciou zaslaných GPS koordinátov.

Ak teda ale palubná jednotka má v sebe mapu spoplatnených úsekov, tak to asi takto nefunguje a samotné rozhodovanie, ktorými platenými úsekmi prešiel daný kamión robí samotná palubná jednotka, nie centrála.

Dalšia mierne paranoická alternatíva je, že toto rozhodovanie robí síce samotná palubná jednotka, GPS koordináty idúceho kamiónu sa ale „pre istotu“ stále posielajú na centrálu, takže v prípade podozrenia podvodu zo strany kamionistu, centrála má stále možnosť zrekonštruovať mapu zaslaných GPS koordinátov a odhaliť, či daný kamión skutočne prešiel plateným úsekom alebo nie.

To, že tieto mapy sú lokálne uložené v palubnej jednotke, znamená že hypoteticky idú lokálne upraviť v prospech potenciálneho útočníka. Je pravda, že to nebude zrejme nič triviálne a samotná palubná jednotka je chránená voči lokálnej úprave, neverím, že táto možnosť sa dá vylúčiť – ďalšie informácie v sekcii Lokálna bezpečnosť palubnej jednotky.

Nie je potrebné trvalé GSM spojenie

To, že daná palubná jednotka nevyžaduje trvalé GSM/GPS spojenie je zrejme dané situáciou, kedy kamión prechádza rôzne dlhými tunelmi, kde žiadny GSM/GPS signál nie je, napriek tomu tento systém musí nejako fungovať.

Z toho mi automaticky vyplýva, že daná palubná jednotka disponuje nejakým žurnálom/logom, kde si lokálne ukladá kadiaľ kamión ide a z času na čas (keď je GSM signál) to pošle na centrálu.

Predpokladám, že po prekonaní fyzického zabezpečenia palubnej jednotky je možné tento žurnál/log kompletne modifikovať a teda upravovať GPS koordináty úsekov, ktorými kamión prešiel.

Kontrolné brány

O „kontrolných bránach“ je dostupných momentálne málo informácií. Prechádzajúci kamión zrejme s danou kontrolnou bránou komunikuje cez DSCR mikrovlnný modul, ide zrejme o mikrovlnné spojenie na frekvencii 5.9 Ghz použitím 802.11p protokolu. Existujú verejne dostupné zariadenia, ktoré tento protokol podporujú a čítajú, napríklad. DCMA-86P2.Podľa tohto článku by na čítanie mala stačiť ľubovoľná 802.11a karta (viď. „figure 4-11“).

Prezentácia Safe at Any Speed: Dedicated Short Range Communications (DSRC) and On-road Safety and Security klasifikuje 4 druhy útočníkov:

  • útočníci s programovateľným rádio (802.11p) vysielačom
  • útočnící, ktorí nemodifikovali DSRC jednotku
  • útočníci, ktorí modifikovali DSRC jednotku a súčasne majú prístup ku kľúčom
  • interní útočníci, ktorí majú prístup k výrobcom a OEM záznamom

Aké šifrovacie a autentifikačné metódy používaju slovenské DSRC mikrovlné jednotky?

Príklad potenciálneho útoku

Podľa článku Dopravca, ktorý neprejde celý spoplatnený úsek, nezaplatí mýtne sa účtuje len celý platený úsek:

„Ak kamión na slovenských cestách od začiatku februára neprejde celý úsek spoplatňovaný mýtom, nebude musieť za úsek platiť. Znamená to, že ak vojde na päťkilometrový úsek, ale po dvoch kilometroch z neho odbočí, bude sa mu účtovať nulové mýto.“

Vychádzajúc z tohto faktu a súčasne z toho, že daná palubná jednotka môže byť „offline“ bez GPRS spojenia istú dobu je možné realizovať nasledujúci druh útoku:

1. Kamión vstúpi na päťkilometrový platený úsek. Po dvoch kilometroch kamionista začne rušiť okolie palubnej jednotky pomocou svojej GSM rušičky (viď. sekcia Rušenie GSM a GPS).

2. Kamionista ide ďalej po platenom úseku diaľnice (GSM rušičku ale stále nevypína, takže všetky prejdené GPS koordináty sa nikam neposielajú, ale len lokálne ukladajú do daného logu/žurnálu).

3. Po prejdení celého úseku musí GSM rušička stále bežať (inak hrozí, že sa s centrálou zosynchronizuje log/žurnál a centrále bude jasné, že prešiel po platenom úseku), až kým kamionista neupraví (nepodvrhne) v palubnej jednotke lokálny log/žurnál medzi druhým a piatym kilometrom (to je tá časť diaľnice, kde bol „offline“ bez GSM), tak aby obsahoval GPS koordináty vedľajšej neplatenej cesty, ktorá začínala od druhého kilometra diaľnice a opät sa napájala pri piatom kilometri diaľnice namiesto GPS koordinátov súvislého plateného úseku diaľnice medzi druhým a piatym kilometrom diaľnice po ktorom reálne prešiel.

4. Po tejto lokálnej úprave žurnálu, vypne GSM rušičku, čo spôsobí, že takto podvrhnuté data sa zosynchronizujú s centrálou, ktorá nadobudne dojem, že kamión po druhom kilometri reálne vybočil na bočnú cestu (napriek tomu, že išiel stále po diaľnici!).

Na základe faktu, že mapy platených úsekov sú v palubnej jednotke lokálne uložené, dá sa predpokladať, že otázku „prešiel som plateným úsekom?“ vyhodnocuje zrejme už palubná jednotka, nie centrála. Ak to tak je, tak palubná jednotka si zrejme lokálne len poznačí nejaký „flag/atribút“, že daný úsek bol prejdený, ktorý pri dostupnosti GSM signálu len pošle na centrálu. Samotný útok sa potom ešte viac zjednoduší – stačí opať analyzovať lokálne úložisko palubnej jednotky, nájsť tam príslušny „flag/atribút“, ktorý vyjadruje „prešiel som taký a taký platený úsek“ a buď ho lokálne upraviť alebo úplne zmazať. Tu je na mieste otázka, či palubná jednotka posiela centrále skutočne všetky svoje GPS koordináty alebo len „udalosti“, či daný platený úsek bol prejdený alebo nie. V prípade, že sa na centrálu posielajú len udalosti o prejdenom platenom úseku, nie samotné GPS koordináty, tak strana centrály nedokáže spraviť spätnú kontrolu pospájaním a zrekonštruovaním GPS koordinátov, ktoré daný kamión prešiel, v snahe odhaliť, či skutočne daný platený úsek prešiel alebo nie (a teda, či táto „udalosť“ je podvrhnutá alebo nie).

Úspešnosť tohto útoku samozrejme závisí na možnosti lokálne načítať a upravovať data na palubnej jednotke. Tá je samozrejme fyzicky chránená (otázne ako presne?). Dá sa predpokladať, že uložené data sú tiež digitálne podpísané – ak áno, je možné z danej palubnej jednotky prečítať privátny kľúč, ktorý sa používa na vytváranie tohto podpisu?

Lokálna bezpečnosť palubnej jednotky

V bezpečnosti už dlhú dobu platí, že čo je lokálne (na strane klienta), tak tomu sa nedá veriť obzvlášť ak je to v rukách potenciálneho útočníka.

Odhadujem, že palubná jednotka je rozumne implementovaná a používa asymetrickú kryptografiu, čo znamená, že v palubnej jednotke sú zabudované nasledujúce kľúče:

  • verejný kľúč CA, ktorým sú digitálne podpisované aktualizácie máp ako aj nový SW/firmware pre palubné jednotky – tento kľúč palubná jednotka môže použiť ako na overenie validnosti digitálneho podpisu sťahovaných aktualizovaných máp, tak nového SW/firmware. Súčasne ho môže použiť na šifrovanie svojej komunikácie posielanej na centrálu
  • (možno) privátny kľúč palubnej jednotky, ktorý sa používa na digitálne podpisovanie komunikácie posielanej centrále (aby si centrála dokázala overiť, že to neposielá podvrhnutá neexistujúca palubná jednotka)

Ak žiadne šifrovanie nie je implementované na tejto vrstve a daná palubná jednotka sa spolieha na bezpečnosť GSM/GPRS, tak je to samozrejme veľmi zlé – útočník dokáže robiť aktívne útoky na GSM, sfunkčniť si vlastnú BTSku na USRP2 a použitímOpenBTS zachytávať kompletne celú komunikáciu a upravovať ju podľa vlastnej ľubovôle. OpenBTS momentálne síce GPRS nepodporuje, je to samozrejme len otázka času, kedy to podporovať bude (je to v pláne v jeho budúcej verzii).

Samotnú palubnú jednotku som nikdy nevidel, takže netuším ako je riešená fyzická bezpečnosť (detekcia otvorenia, možnosť načítania/úpravy lokálneho média apod). Na zamyslenie stojí, aké rozhranie sa dá použiť na priamy prístup k palubnej jednotke (sériová konzola, JTAG, .. )?

Ak je možné rozobratím palubnej jednotky získať uvedené kľúče a teda mať možnosť podvrhnúť vlastný verejný kľúč použitej CA alebo priamo ovplyvňovať obsah ktorý bude podpísany daným privátnym kľúčom palubnej jednotky a posielať ho následne na centrálu, tak je určite možný obojstranný MITM útok (teda je možné ako ovplyvniť, čo daná palubná jednotka prijme z centrály, tak to, čo do centrály vyšle).

Samotná jednotka je zapäčatená voči neautorizovaným zásahom. Hardware palubnej jednotky je dostatočne výkonný – je možné, aby prípadný útočník po jej rozobratí modifikoval samotný SW/firmware a nahral si vlastné zadné vrátka (backdoor), palubnú jednotku opätovne zložil do stavu pôvodnej zapäčatenosti? V prípade „backdooru“ nie je nutné ani spúšťať akékoľvek GSM rušenie, samotná palubná jednotka dokáže už automaticky posielať podvrhnuté data.

Bohužial história v oblasti bezpečnosti ukazuje, že je obvykle len otázkou času, kedy je možné zlomiť proprietárne zariadenie reverzným inžinierstvom a uvedené údaje z neho lokálne získať (obzvlášť v situácii, ked sa uvedené kľúče bezprostrednepoužívajú).

Rušenie GSM a GPS, aktívny útok na GSM

Prevádzka popisovaných GSM/GPS rušičiek, podobne používanie vlastných BTS staníc je na Slovensku nelegálne.

Samozrejme, že útočníka, ktorý chce tento systém zneužiť (a už tak či tak spáchať trestný čin) toto nezaujíma – obzvlášť, keď samotné rušičky sú veľmi lacné a majú relatívne malý diameter dosahu, takže sú ťažko odhaliteľné.

Nehovoriac o tom, že útočník dokáže prípadným nelegálnym zneužitím ušetriť veľa peňazí.

GSM rušicka (GSM jammer) s dosahom 5 metrov je veľmi lacná a vzhľadom na malý výkon ťažko odhaliteľná. Podobne lacné sú integrované GSM & GPS rušicky.

Na aktívny GSM útok je nutná vlastná BTS, najlacnejšiu variantu útoku predstavuje USRP zariadenie s príslušnými „daughter“ GSM kartami.

GSM rušicku dokáže kamionista v prípade podozrenia (napr. blížiace sa policajné auto) kedykoľvek vypnúť, takže je ťažko odhaliteľná.

Ak uvažujeme, že GPS koordináty sa z palubnej jednotky neustále posielajú (čo podľa dostupných informácií nemusí byť pravda), tak stačí zapínať GSM rušičku len na nevyhnutne krátky spoplatnený úsek – od poslednej odbočky diaľnice na vedľajšiu cestu, kedy je daný úsek diaľnice ešte nespoplatený až po samotné prejdenie spoplatneného úseku.

Nakoľko mapy verejných úsekov sú verejne dostupné, potenciálny útočník môže skonštruovať vlastné zariadenie – tzv. „rušiacu palubnú jednotku„, ktorá bude tiež napojená na GPS a v okamihu, keď bude kamión prechádzať „kritickými“ úsekmi, tak spustí GSM rušenie na „nevyhnutne krátku“ dobu (a tesne pred jej ukončením upraví lokálny log/žurnál), čím sa automaticky znižuje pravdepodobnosť prípadného odhalenia.

Nakoľko samotný systém dovoľuje byť nejakú dobu „offline“, tak keď polícia zastaví prípadny kamión s rušičkou, tak to, že jeho poloha (podľa ŠPZ) nebude korešpondovať s geografickou polohou o ktorej vie centrála, je podľa mňa potrebné do istej miery tolerovať (otázne do akej doby treba byť opäť „online“, aby to nebolo podozrivé).

V prípade, že by sa namiesto GPS koordinátov posielali do centrály len udalosti o tom, či daný platený úsek bol prejdený alebo nie, je rušenie nevyhnutné robiť na skutočne nevyhnutne krátky okamih – kým potenciálny útočník upraví lokálne data (informácie o prejdení daného úseku), ktoré sa v zápäti pošlú na centrálu.

GPS spoofing

GPS spoofing predstavuje spôsob podvrhnutia GPS koordinátov.

V prípade palubnej jednotke sa to dá realizovať:

  • priamym napojením na rozhranie palubnej jednotky na ktoré je napojený samotný legitímny GPS modul (toto samozrejme vyžaduje rozobratie palubnej jednotky)
  • externým GPS prenosným simulátorom, ktorý nevyžaduje rozobratie palubnej jednotky

Otázky

  • ako presne funguje DSCR mikrovlnný modul?
  • posiela palubná jednotka centrále GPS koordináty všetkých úsekov, ktoré kamión prejde alebo posiela len informácie o tom kedy vstúpi/vystúpi z platených úsekov? (toto by sa mohlo dať zistiť čisto na základe analýzy množstva dát posielaných v daných časových intervaloch cez GPRS)
  • ak GPS koordináty neposiela, ukladá si ich lokálne na neskoršie použitie?
  • ako je riešená presne fyzická bezpečnosť (ochrana voči otvoreniu, načítaniu a úprave lokálnych údajov apod.), čo presne sa stane v prípade nedovoleného otvorenia palubnej jednotky alebo inak neprivilegovaného prístupu?
  • aké médium sa používa na lokálne uložisko? Sú informácie na ňom digitálne podpisované? Ak áno, je možné privátný kľúč, ktorý sa na podpisovanie používa z palubnej jednotky prečítať?
  • akým spôsobom je možné na palubnú jednotku pristupovať (sériova konzola, JTAG, ..) ?
  • niektoré úseky sú vybavené kamerami, ktoré fotia ŠPZ kamiónov – akým spôsobom je táto informácia spracovávana a ďalej korelovaná?