Konference DEFCON 27. Din bil er min bil. Del 1

Orientering af talen:

For mange af os er en bil et af de dyreste køb, vi nogensinde vil gøre. I en verden, hvor alt er forbundet, er det naturligt at ønske at fjernstyre vores bil: få påmindelser om, hvor vi parkerede den, tjek for at sikre, at vi har glemt at låse dørene, eller fjernstart motoren for at forvarme eller køle interiøret afhængig af årstiden.

Der er mange producenter, der tilbyder valgfri alarmsystemer, der giver denne bekvemmelighed og ro i sindet. Men hvor meget kan vi stole på, at udbyderne af disse systemer beskytter adgangen til vores biler i det digitale domæne? I denne tale vil Jmaxxz fortælle om, hvad han opdagede, da han kiggede ind i et af disse systemer.

Jmaxxz er kendt for sit arbejde med August Smart Lock smart home-systemer (præsentation på DEFCON 24 "Backdooring The Frontdoor"). I de senere år har hans fokus været på IoT-enheder. Han deltog i "IoT village zero day"-sektionerne af DEFCON 24 og DEFCON 25 og besluttede til sidst, at det var tid til at udforske et produkt fra det sekundære bilmarked - en fjernstarter (herefter benævnt RS).

Konference DEFCON 27. Din bil er min bil. Del 1

Så mit navn er J-Max, jeg er programmør af profession og hacker af kald. Jeg er involveret i alt lås relateret, og gennem denne samtale vil du høre mange udtalelser, der udelukkende udtrykker mine meninger og ikke har nogen relation til mine tidligere, nuværende og fremtidige arbejdsgiveres meninger. Som du sikkert har forstået, vil vi tale om biler, nemlig om fjernstartere og alarmsystemer. Lad os starte med lidt baggrund, hvilket er vigtigt i denne sammenhæng, fordi mange anser sådanne systemer for at være en unødvendig luksus.
Så hvor jeg bor, er det ret koldt, og min ven lider af en tilstand, der hedder Raynauds syndrom. Kulden forårsager en krampe i blodkarrene i hænderne, blodgennemstrømningen til fingrene reduceres kraftigt, og der opstår tegn på forfrysninger, herunder vævsnekrose. Diasset viser, hvordan det normalt ser ud.

Konference DEFCON 27. Din bil er min bil. Del 1

I november sidste år havde jeg stadig ikke besluttet, hvad jeg ville give hende til jul. Så hun vender hjem fra lufthavnen ked af det, fordi hendes bil aldrig blev varmet op på vej hjem. I det øjeblik indså jeg, at jeg ville give hende et fjernstyrt motorstartsystem og begyndte at lede efter den bedste løsning. Det viser sig, at fjernstartermarkedet er ret stort, hvor mange producenter ikke giver tilstrækkelig information om deres produkt.

De fortæller dig ikke, hvordan du installerer systemet, eller hvilke værktøjer du skal bruge til at programmere enheden. Dette er et problem for mig, fordi dette er min bil, min fjernstart, og jeg skal have adgang til disse værktøjer. Så jeg søgte lidt mere og fandt et firma fra Canada, Fortin, der producerer sådanne startere og gerne leverer al den nødvendige dokumentation. Jeg valgte dette produkt og begyndte at lede efter en passende fjernbetjening. Faktum er, at hvis du bruger en standardfjernbetjening med en fjernstarter, vil dens handlingsområde være begrænset til standardfjernbetjeningens rækkevidde. Eftermarkedsfjernbetjeninger tilbydes, der fungerer inden for en rækkevidde af en halv mil til halvanden mil. Ifølge forbrugeranmeldelser er dette et reklamestunt, fordi afstanden i virkeligheden er meget kortere. Dette er problemet, for min ven skal starte motoren på sin bil på lufthavnens parkeringsplads, så snart hun står af flyet, hvilket er omkring en halv mile.

Konference DEFCON 27. Din bil er min bil. Del 1

Så det ville være dejligt, hvis hun bare kunne trække sin telefon frem, åbne appen og trykke på Start. Jeg fandt et tredjepartsprodukt kaldet MyCar, der er fuldt kompatibelt med Fortin starteren. Dette er en lille nøglebrik med et SIM-kort og en GPS-modtager, som du kan sætte i din bil og tilslutte den til fjernstarteren. Derefter kan du ved hjælp af en mobilapp fjernstarte motoren, låse låsene op og lignende.

Konference DEFCON 27. Din bil er min bil. Del 1

Jeg troede, det ville være fantastisk: lige efter flyet er landet, kan min ven starte motoren, og når hun kommer hen til bilen, vil kabinen allerede være varm.

Så lad os tale lidt om, hvordan fjernstartere fungerer. For at gøre dette skal du først forstå, hvordan en bilmotor starter. Indtil omkring midten af ​​halvfemserne var en bilstarter en traditionel mekanisk lås i en nøglekontaktkombination. Du skulle indsætte nøglen og dreje den for at fuldføre det elektriske kredsløb. Derefter blev låse mærket "immobilizer" populære i USA. Det lyder kompliceret, men det er bare en elektronisk lås. Så du har en mekanisk lås, som er nøglen til en elektronisk lås, som igen er en transponder og indeholder nogle oplysninger, der kan læses. Og før du åbner den elektroniske lås, vil din bil ikke starte. På højre side af glideren ser du 2 nøgler: den venstre er til startspærren, og den højre er til den almindelige tændingskontakt. Den betjener blot de mekaniske komponenter i låsen, mens venstre nøgle låser den elektroniske lås op, som vil starte bilens motor.

Konference DEFCON 27. Din bil er min bil. Del 1

Hvorfor fortæller jeg dig om dette? Fjernstart virker via startspærren. På næste slide ser du et diagram over tilslutning af Fortin EVO One-enheden til startspærren - nederst til venstre ser du et par kontakter betegnet som IMO. Øverst til højre i diagrammet ser du to linjer: CAN LOW og CAN HIGH. Disse er kontakter til tilslutning til bil-CAN-bussen. Grunden til, at fjernstartere er tilsluttet CAN-bussen, er for at reducere installationsomkostningerne, fordi der bruges færre forbindelser under installationen. Hvis fjernstarteren kan læse data fra CAN-bussen eller sende kommandoer gennem CAN-bussen, reducerer dette installationstiden for fjernmotorstartsystemet.

Øverst til venstre i diagrammet er der en hel masse GPIO'er, der er forbundet med at kontrollere eller læse information om maskinen. For eksempel vil du gerne have, at lygterne blinker eller et horn skal lyde, når du trykker på låseknappen. Ting som dette kan styres ved hjælp af disse GPIO'er. Nederst til venstre i diagrammet ser du et stort, klodset stik - dette er grænsefladen, der omgår den mekaniske lås. Det vil sige, at du ikke behøver at indsætte og dreje nøglen ind i tændingen, fordi denne grænseflade gør det muligt for fjernstartersystemets relæ at kommunikere direkte med den elektriske lås.

Konference DEFCON 27. Din bil er min bil. Del 1

De følgende slides viser stadierne af installation af en fjernstarter. Det består hovedsageligt af at fjerne ratstammedækslet, montere og tilslutte DS-enheden. Det ser ret skræmmende ud, men det er nemt at gøre.

Konference DEFCON 27. Din bil er min bil. Del 1

Fjernbetjeningerne forbinder selv til det, Fortin kalder et datalink. Systemet bruger den proprietære fysiske dataoverførselsprotokol UART - en universel asynkron transmitter, der udveksler data med en hastighed på 9600 baud. Fortin-fjernstarteren forbindes blot via en UART-bus til de to fjernbetjeninger, du ser på sliden.

Konference DEFCON 27. Din bil er min bil. Del 1

Efter at have installeret DS tænkte jeg på, hvordan sådanne enheder kunne påvirke bilens sikkerhed. Det er klart, at DS skal omgå startspærren, så hvor sikkert er dette i forhold til muligheden for tyveri eller aflytning af kontrol over bilen? Dette gælder ikke kun for datatransmission over mobilnetværket, men også selve fjernstartsignalet. Så jeg begyndte at søge på internettet efter producentoplysninger om den anvendte dataoverførselsprotokol og endte på fora, hvor folk skrev, at Fortin nægtede at levere denne protokol. En af grundene: "Vi distribuerer ikke sådanne oplysninger, fordi EVO ikke er et legetøj for amatører, det er beregnet til brug af professionelle.

Konference DEFCON 27. Din bil er min bil. Del 1

Da jeg var noget af en professionel, besluttede jeg at bygge min egen maskine på skrivebordet. Jeg fik fat i en anden EVO-systemenhed, samlede et printkort, der repræsenterede bilen, tilføjede kontakter til at simulere tændingen, en knap til bremsepedalen og en hel masse lysdioder til at vise forskellige tilstande.

Konference DEFCON 27. Din bil er min bil. Del 1

Ved at sætte alt dette sammen tilsluttede jeg FTI-datalinkovervågningsenheden og begyndte at indsamle disse data. Til at begynde med ligner det noget, der ligner rutsjebanen, og det er ikke helt klart, hvad der foregår her. Men kigger man godt efter, kan man sige, at der helt sikkert er en form for struktur her.

Konference DEFCON 27. Din bil er min bil. Del 1

Bemærk venligst, at hver gang jeg trykker på en knap på min fjernbetjening, starter den besked, som antennen sender til min DS, altid med 0C og slutter med 0D. Så hvis vi bare deler det, vi får, hvis vi antager, at 0C er starten og 0D er slutningen, ender vi med noget som dette.

Konference DEFCON 27. Din bil er min bil. Del 1

Der er allerede en form for struktur tydeligt synlig her, så du kan finde ud af, hvad der sker. Ved at bruge tid på at spore, hvilken besked der dukkede op efter at en bestemt knap blev trykket, var jeg i stand til at oprette en tabel med kommandoer, som hver svarede til en bestemt handling. Det vil sige, at når du trykker på en knap på fjernbetjeningen, sender antennen en kommando til fjernstartmodulet, der ser sådan ud.

Konference DEFCON 27. Din bil er min bil. Del 1

Sådan ser en typisk teamstruktur ud.

Konference DEFCON 27. Din bil er min bil. Del 1

Når du trykker på en knap på fjernbetjeningen, sender antennen sådan en kommando til fjernstarteren. Den vækkes af byte 0C, efterfulgt af 2 bytes, som jeg tror repræsenterer transmissionsretningen. Dette er interessant, fordi UART allerede har en signalretning, så jeg markerede disse bytes som "skrald", bare behandle dem som en konstant. Dette efterfølges af en enkelt byte, der angiver den kommando, som brugeren gerne vil udføre. Dette kan være at låse døre eller åbne dem, slukke for alarmen osv. Generelt er alt, hvad du vil gøre eksternt, forbundet med denne kommando. FF FF F1 nyttelasten er en adresse eller identifikator, der identificerer den fjernantenne, hvorfra beskeden kom. Hvis DS-enheden ikke genkender identifikatoren, ignoreres kommandoen. Hvis DS'en accepterer identifikatoren, starter en flertrinsprocedure, som omfatter kontrol for tilstedeværelsen af ​​nøglen i tændingen, tænde eller slukke for motoren, trykke på bremsepedalen osv. Faktisk har denne proces ikke meget betydning, det er bare, at enheden lærer ID'et i dette øjeblik.

I slutningen af ​​meddelelsen er der en byte med en kontrolsum og en byte, der angiver slutningen af ​​kommandoen. Nu hvor vi forstår, hvordan protokollen fungerer, hvad kan vi så gøre ved det? Jeg har et par videoer om emnet. Desværre er videoen af ​​en eller anden grund uden lyd, så jeg vil fortælle dig, hvad der sker på skærmen. Til venstre for ratstammen på instrumentpanelhuset er der en hvid boks, der indeholder elektronik med Particle.IO-firmware, der forstår Fortin-protokollen. Tråden med den blå spids er antennen. Denne ting giver mig mulighed for at interagere med fjernstarterenheden inde fra bilen og se, hvad der sker på den bærbare computers skærm.

Konference DEFCON 27. Din bil er min bil. Del 1

Så jeg sender lås oplåsningskommandoen til bilen, men det virker ikke, fordi DS'en ikke kender til denne antenne. Som jeg allerede har nævnt, er dette kun en UART, hvis egenskab er at understøtte den såkaldte tovejskommunikation, takket være hvilken du eksternt kan få information om bilens status. For eksempel, hvis motoren blev fysisk startet eller stoppet, vil DS-enheden sende en tilsvarende besked til fjernbetjeningsantennen. I dette tilfælde vil meddelelsen indeholde adressen på netop denne antenne.

Konference DEFCON 27. Din bil er min bil. Del 1

Problemet er, at kommunikationen udføres ved hjælp af UART-protokollen, og alle, der forbinder til UART-bussen, kan se adressen, hvor en given besked sendes, så min firmware har mulighed for at klone adressen på en eksisterende antenne, hvilket jeg gør. med den passende kommando.

Konference DEFCON 27. Din bil er min bil. Del 1

For at generere en besked skal du blot åbne bildøren. Som du kan se, sender DS en besked til antennen om, at døren var åben, og alarmen går straks i gang.

Konference DEFCON 27. Din bil er min bil. Del 1

For at slå alarmen fra sender jeg kommandoen “lås op”, hvorefter alarmlyden slukkes og bilen låses op. Du må tage mit ord for det, da vi ikke kunne få denne video til at spille med lyd. Lad os prøve at afspille videoen igen.

Konference DEFCON 27. Din bil er min bil. Del 1

Nå, lyden dukkede op (oversætterens note: den samme video med lyd afspilles på skærmen). Så du så, hvordan jeg sendte DS-kommandoen og tændte alarmen, alt sammen uden nøgle. Lad os nu prøve at starte bilen på samme måde; for at gøre dette, se følgende video.

Normalt, hvis du bare skriver "start" og prøver at starte motoren, vil det ikke fungere. Årsagen er, at dette er en bil med manuel gearkasse, og fjernstartersystemer har en særlig procedure for sådanne biler. I dette tilfælde skal du trykke på fjernstarterknappen, mens nøglen er i tændingen, og motoren kører. Så kan du tage nøglen ud, stige ud af bilen, lukke døren, hvorefter DS'en slukker motoren og låser døren. Dette gøres for at forhindre, at bilen reagerer på fjernstart af motor under kørslen, fordi det er farligt. Dette er dog ikke en komplet sikkerhedsfunktion. Dette er ret nemt at bevise ved at se på EVO-fjernstarterenheden. Du ser denne gule løkkeledning, der er designet til at fungere med en manuel gearkasse. Hvis den skæres, kan denne blok bruges til en bil med automatgear. Dette design af enheden giver dig mulighed for ikke at bruge nogen specielle indstillinger, når du installerer DS i biler med forskellige typer transmission.

Konference DEFCON 27. Din bil er min bil. Del 1

Så systemet reagerede ikke på "start"-kommandoen, så jeg vil sætte denne blok tilbage på plads og bare klippe denne ledning for at bryde forbindelsen. Hvis du nu gentager "start"-kommandoen, lyder et lydsignal, og statusindikatorerne for bilens systemer vil lyse på instrumentpanelet, som det sker, når en nøgle sættes i låsen.

Konference DEFCON 27. Din bil er min bil. Del 1

I øjeblikket har vi en bil, som vi kan fjernstarte uden nøgle i tændingen, men DS-modulet er ikke alt, vi skal bruge. Under normale omstændigheder vil du stadig ikke kunne køre væk i en fjernstartet bil, men lad os alligevel prøve.

For at deaktivere ratlåsen skal du indsætte en almindelig nøgle i tændingslåsen, som ikke har nogen transponder. Som du kan se, er det nok at flytte nøglen til positionen, før du starter motoren, og Subaru Impreza-rattet begynder at rotere helt frit.

Men hvis du ikke har nogen nøgle, vil bilen gå i stå, når du trykker på bremsepedalen. Det er ret nemt at komme uden om denne begrænsning. Du skal finde ud af, hvordan bilen fortæller fjernstarteren, at bremsen er trukket. Du ser flere flerfarvede porte på bagsiden af ​​EVO-modulhuset - kablet fra CAN-bussen vil blive tilsluttet her. Det er nok blot at fjerne dette kabel fra DS-enheden, efter at bilen er fjernstartet, og den reagerer ikke på at trykke på bremsepedalen. Da denne enhed er placeret under ratstammens dæksel, giver jeg "start"-kommandoen gennem min bærbare computer, bilen starter, jeg åbner døren, stiger ud af bilen og fjerner CAN-bus-stikket fra EVO-enheden. Som du kan se, kører bilmotoren, men vi har stadig ingen nøgle i tændingen.

Hvis du nu trykker på bremsepedalen, vil der ikke ske noget, fordi EVO'en ikke ved, at den blev trykket ned. Derefter kan jeg sætte mig bag rattet, trykke på bremsen, flytte gearstangen til "Drive"-positionen, og bilen begynder at bevæge sig. Alt dette gøres uden nøgle.

21:40

Konference DEFCON 27. Din bil er min bil. Del 2

Nogle annoncer 🙂

Tak fordi du blev hos os. Kan du lide vores artikler? Vil du se mere interessant indhold? Støt os ved at afgive en ordre eller anbefale til venner, cloud VPS for udviklere fra $4.99, en unik analog af entry-level servere, som blev opfundet af os til dig: Hele sandheden om VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps fra $19 eller hvordan deler man en server? (tilgængelig med RAID1 og RAID10, op til 24 kerner og op til 40 GB DDR4).

Dell R730xd 2 gange billigere i Equinix Tier IV datacenter i Amsterdam? Kun her 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV fra $199 i Holland! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - fra $99! Læse om Hvordan man bygger infrastruktur corp. klasse med brug af Dell R730xd E5-2650 v4-servere til en værdi af 9000 euro for en krone?

Kilde: www.habr.com

Tilføj en kommentar