Een Tesla Hacken doe je zo!

Michel
August 26, 2020

Een Tesla Hacken

Doe je zo!

Tesla beweert vaak dat zijn auto’s niet te kraken zijn. Het bedrijf daagt dan ook goedaardige hackers uit wereldwijd om te kijken of ze de beveiligingssystemen kunnen kraken. En beveiligingssystemen kraken, daar zijn wij wel bekend mee, want bij GroupSecure voeren onze hackers zowel blackbox,greybox, whiteboxscans en pentesten uit. We werken met tools, maar we laten ze vooral zelf hacken. Met hun eigen kennis en kunde. Maar een echte hacker, dieleeft natuurlijk niet van 9 tot 5! En één van onze hackers, die ging de uitdaging van tesla maar al te graag aan. En dat avontuur delen we natuurlijkgraag. Tijd onze tesla hacker even aan de tand te voelen.

Op de vraag wat Bert drijft tot het hacken van een Tesla, bestaat voor hem geen twijfel: “Nieuwsgierigheid. Nieuwsgierigheid is voor mij de grootste drijvende factor.” Bert legt uit dat het systeem van Tesla een gesloten systeem moet lijken. Dat je als klant een technisch product koopt met bepaalde functionaliteiten. Maar dat je als hacker weet dat het product meer doet op de achtergrond. “En dat wil je dan ook wel graag zien. Dat is dan de drijfveer om zoiets goed te grazen te nemen. Je wil meer zien van het achterliggende systeem. Uitvinden hoe het werkt!” Vanuit die nieuwsgierigheid gaat Bert vervolgens kijken naar alle mogelijke ‘attack surfaces’. In het geval van de Tesla zijn dat onder andere de interface, de wifi verbinding, de 4G verbinding, en de USB-poorten. “Waar hebben ze vast iets vergeten? Waar kunnen ze fouten maken? Waar zou ik een fout maken?”

Reisub

Voor een eerste hack leken die USB-poorten Bert wel interessant. “In een USB kan je van alles inpluggen. De bedoeling is natuurlijk dat je er een opslagmedium inplugt. Bijvoorbeeld een USB-stick of een Smartphone. Ik dacht; eens kijken wat het systeem met een toetsenbord doet.”

“Daar waren ze niet zo blij mee.”

Het systeem reageerde er initieel niet op, maar toen kwam bij Bert al snel het idee om eens te kijken of ze geen low-level security controls vergeten waren. “Je weet dat eigenlijk dat de Tesla computer een Linux computer is. En dan zitten er dingen in de Linux kernel waarmee je ‘raw commando’s’ kan sturen, rechtstreeks naar de kernel. Hiermee passeer je alle software die erop draait. En als de kernel naar deze ‘raw commando’s’ luistert, dan kan je de kernel bepaalde opdrachten geven.” Voor deze specifieke hack dacht Bert aan de REISUB commando, waarbij je Alt en SysRq ingedrukt houdt, terwijl je langzaam REISUB typt. “Ik dacht; eens kijken of het werkt. En ja hoor; ze waren vergeten om deze functies uit te schakelen, waardoor ik niet alleen de computer kon resetten, maar ook een dump kon doen van alle processen en het geheugen.

R E I S U B Linux-Commando

R: Switch the keyboard from raw mode to XLATE mode

E: Send the SIGTERM signal to all processes except init

I: Send the SIGKILL signal to all processes except init

S: Sync all mounted filesystems

U: Remount all mounted filesystems in read-only mode

B: Immediately reboot the system, without unmounting

partitions or syncing

Voor Tesla was het vooral vervelend omdat ik binnen twee seconden het alarmsysteem uit kon schakelen. Daar waren ze niet zo blij mee.”

Laaghangend fruit

Om iets te hacken, begint een hacker vaak bij laaghangend fruit, weet Bert uit te leggen, maar onderkent wel dat dit een achtergrond in cybersecurity vergt. Het gaat dan over ‘simpele’ beveiliging die ontwikkelaars snel over het hoofd zien. “Je moet een beetje gevoel hebben voor wat zij doen; hoe zij zo’n product bouwen en testen. Ontwikkelaars testen vooral functioneel. Zij bouwen iets redelijk gesloten, hopen ze, waarbij ze maken van standaard componenten zoals Linux. Zij gaan er dan ook wel vanuit dat iemand een keer een kapotte USB inplugt; een USB die verkeerd geformatteerd is.”

Hackers als Bert kijken hier dan ook niet naar, omdat ze weten dat ontwikkelaars dit soort aanvallen standaard controleren. In plaats daarvan kijkt hij naar ongebruikelijke input vanuit standaard componenten zoals een toetsenbord. “Kijk, de ontwikkelaars hebben vast wel een toetsenbord ingeplugd om het systeem te controleren in het test stadium. Maar dan testen ze vaak alleen op standaard input, niet op geavanceerdere commando’s.” Zo ook met een tweede hack in de vorm van een browserfout, welke fout voor Bert direct al opviel.

“Je kan hiermee iemand flink laten schrikken”

Browserfout

“Als je een bepaalde website bezocht, zag je dat er af en toe een element scheef stond. Soms stond het element net tegen de rand van de browser aan, soms zelf eroverheen. Ik dacht; dat kan ik wel misbruiken.”

Het duurde dan ook niet lang voordat Bert met zijn laptop op schoot in de Tesla zat om met zijn eigen webserver webpagina’s in de Tesla te openen. Door constant de pagina te refreshen keek hij hoe het systeem reageerde, om het vervolgens net zo lang manipuleren totdat de hack werkte. “Ik kon dit element al snel helemaal buiten de browser zetten; over de klokken en knoppen heen. Deze werd niet goed gevalideerd. Het element werd eroverheen geplaatst, maar de touch-gevoeligheid zat nog steeds binnen het browserscherm. Dus je had knoppen die niet reageerden. Zodra je deze opende, kon je niets meer met de computer.” Het duurde dan ook niet lang voordat Bert via de browser het hele scherm kon blokkeren en over kon nemen. “Je kan hiermee iemand flink laten schrikken.”

Het Tesla-systeem

Want het Tesla-systeem zelf, zegt Bert, is niet zoveel bijzonders. “Zij draaien eigenlijk een redelijk standaard Linux distributie en gebruiken de meest standaard componenten die er zijn, zoals een open VPN en een SSH protocol. Het enige wat custom is, is dat ze geen open source software gebruiken. De interface waarmee ze dat bouwen is niet volledig open source. In het systeem zit namelijk niet veel meer dan een Linux computer, een Intel ATOM CPU en een Nvidia video kaart.”

Volgens Bert stelt dit Tesla in staat om snel aan de auto te bouwen, waardoor ze geen tal van complexe zaken uit hoeven te zoeken. Al voegt Bert eraan toe dat Tesla daar nu wel mee begonnen is: “Ze bouwen nu ook zelf AI-chips; chips die speciaal ontworpen zijn om objectherkenning te verwerken via de Sentry-camera’s. Als je dat alleen via de software moet doen, is dat extreem rekenintensief. Als je dat meer aan de hardware kant doet, dan kan het betere prestaties leveren.” En volgens Bert is dat ook broodnodig: “Het systeem moet met een enorme hoge snelheid bepaalde objecten kunnen herkennen en classificeren. Het is onmogelijk om een computer alle situaties te leren herkennen. Je kunt dus maar beter zorgen dat het systeem op de meest logische manier een baan vindt door de chaos. Je kun er dus beter voor zorgen dat deze zich aan de verkeersregels houdt, dan dat je een computer alle situaties leert kennen. Denk aan een fiets met twee wielen, een stuur en een frame. Die staat natuurlijk ook wel eens achterop een auto. Of denk aan auto’s die achterstevoren op een vrachtwagen staan, waarbij het lijkt dat deze op je af rijdt. De computer gaat ze dan wel herkennen als zodanig. Dan moet de computer een beslissing erg snel kunnen nemen. Dat doet zo’n AI-chip straks. Die moet dat gaan herkennen.”

Tools

Op de vraag welke middelen Bert gebruikt, legt hij uit dat het zijn vaak simpele tools zijn, zoals een laptop, een webbrowser, of een webserver. “Zo kun je al snel een USB debuggen met Raspberry Pi en een laptop. Eigenlijk basic input en output tools.”

Ook heeft Bert een simpele javascript-scanner; een poort-scanner die volgens Bert niet veel meer is dan een ‘loop’ die informatie opvraagt totdat deze antwoord krijgt. “Deze is echter ongelofelijk ineciënt en het scannen zelf duurt vreselijk lang. Het script probeert namelijk te verbinden met alle mogelijke computers en poorten. Dit doe ik puur om te kijken wat er leeft binnen de auto. Om meer informatie te verzamelen. Om te kijken of ik het kan misbruiken of dat er ergens een fout in zit. Zo bouw ik constant aan een lijst met gegevens om te kijken of ik hiermee wat kan.”

Maar wanneer weet je dat je iets waardevols hebt? Volgens Bert als het ook daadwerkelijk functioneel is. Bijvoorbeeld als je systemen kan laten vastlopen, deze kan manipuleren, of er zodanig op rond kan kijken wanneer dat niet zou moeten kunnen. “Die Sentry-camera’s en het alarmsysteem uitschakelen; dat is natuurlijk waardevol voor iemand die een Tesla wil stelen. Daar is tesla ook in geïnteresseerd. Voor hen heeft het waarde als zij er mogelijke issues in hun product mee kunnen voorkommen. Het lastige is,” voegt Bert toe, “wij zien wij al die kleine dingen. Wij zien wat er wellicht fout is. Maar om het iemand anders te laten zien, moet je het toch vaak uitwerken in de vorm van een grafische illustratie. Dit moet je veel verder uitwerken. Het verschil tussen iets zien en een werkende aanval is een groot verschil. Daar zit heel veel werk in.”

Tesla

Bert onderstreept wel dat op het gebied van security Tesla zijn zaken goed voor elkaar heeft. “Elon Musk heeft zelf zijn achtergrond bij PayPal. Op het gebied van het netwerk hebben ze de zaken perfect voor elkaar. Zaken die vele andere autofabrikanten over het hoofd zien.

De kwetsbaarheden zitten hem bij Tesla in de vele functies die zij zo snel mogelijk willen integreren. En dan vergeet je makkelijk iets. Dat is hun grootste valkuil. Zo wil Tesla graag een browser in de auto, terwijl de rest van de applicaties er tegelijkertijd omheen moeten blijven draaien. Andere auto’s hebben ook een browser, maar die laten alle applicaties stoppen bij het opstarten van de browser. Tesla probeert dat dan weer in hetzelfde scherm te integreren. Of denk eens aan de USB-functie met veel ondersteuning. Ze ontwikkelen heel erg snel. En dan moet je er qua security er bovenop zitten.”

“Liever niet in mijn auto!”

Een ander belangrijk aspect is volgens Bert dat Tesla-auto’s niet direct toegankelijk zijn voor iedereen. “Niet iedereen zal zomaar hardware in zijn USB-poort pluggen om te kijken wat er gebeurt, of het risico willen lopen van een bepaalde aanval. Zo wordt de tesla computer bewaakt door een watchdog-timer, een soort tweede computer. Wanneer de eerste, primaire computer niet reageert, dan wordt deze gereset door de watchdog.” Zit je met de hack qua timer vlak voor de reset, weet Bert te vertellen, dan heb je vrij snel weer beeld en herstarten de systemen weer. Ben je er net voorbij, dan kan het tot wel vijf minuten duren tot de Tesla opnieuw opstart. En dat is voor een ongetrainde hacker natuurlijk vrij afschrikwekkend.

“Daarnaast blijft het een tricky business. Als je het Tesla-systeem vijftig keer hebt laten crashen, wat is er dan nog over van het flashgeheugen? Je kunt de auto gewoon opdrachten geven om te rijden, maar,” benadrukt Bert, “liever niet in mijn auto. Na de eerste melding heeft Tesla wel gezegd; ga gerust door. Als je de boordcomputer om zeep helpt, dan repareren we het gratis. Maar het blijft natuurlijk wel een risico!”

Outhack them all!

Hacken gebeurt voor Bert alleen met de witte hoed op; om zogenaamde bounty’s te verdienen. “Je kunt er ook op een andere manier heel veel geld mee verdienen, maar dat wil je gewoon niet. Dan weet je dat de auto’s van andere mensen gestolen worden, of dat er ergere dingen gebeuren. Op ‘andere’ vlakken.” Tesla heeft hiervoor een specifiek Bug-bounty programma genaamd bugcrowd. “Bugcrowd heeft redelijk goede technische mensen die security begrijpen. Zij doen de eerste level aanname, dan controleren ze het, en als het wat is, dan sturen ze dit door naar Tesla.”

Bert vertelt hoe netjes Tesla dit soort meldingen oppakt. “We hadden het op een vrijdag gemeld. Dezelfde dag kregen we antwoord. Op maandag heeft iemand het van Tesla bekeken en beoordeeld dat het daadwerkelijk een serieus risico was. Woensdag had ik geld op mijn rekening staan.” Tesla weet hierdoor veel fouten vroegtijdig te vinden, maar uiteindelijk, onderstreept Bert: “Alles kan gehackt worden.”

Wil jij meer weten over onze security scan en pentesten?

Neem dan gerust contact met ons op!

Abonneer op onze nieuwsbrief
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Klaar om jouw cybersecurity naar een hoger niveau te tillen?

Let's get started!