Nederlandse beveiligingsonderzoekers hebben diverse kwetsbaarheden gevonden in laders voor elektrische voertuigen. Ze konden daardoor zonder authenticatie code uitvoeren op de laders. De bevindingen kwamen naar boven tijdens een hackcompetitie.
Onderzoekers Thijs Alkemade, Daan Keuper en Khaled Nassar van het Nederlandse Computest ontdekten de kwetsbaarheden tijdens een nieuwe Pwn2Own-wedstrijd, waaraan het trio verschillende keren eerder heeft meegedaan. In die wedstrijd krijgen teams van hackers de kans bepaalde soft- of hardware te hacken. Voor die hacks worden punten uitgedeeld, waar vervolgens een winnaar uit komt rollen.
"Pwn2own heeft nu een nieuwe wedstrijd, Pwn2own Automotive, waarbij hackers onder andere laders voor elektrische auto's kunnen proberen te hacken", vertelt Alkemade aan Tweakers op Black Hat. Alkemade en zijn collega Nassar gaven op de cybersecurityconferentie in Las Vegas een presentatie over hun bevindingen. "We hebben exploits gevonden in drie verschillende EV-laders", zegt Alkemade. Het gaat om de Autel MaxiCharger, de ChargePoint Home Flex en het JuiceBox 40 Smart EV Charging Station. Die laders worden voornamelijk in de VS gebruikt. Alle drie de laders zijn thuisladers, maar bij een van de laders is het mogelijk om daar een publieke laadpaal van te maken.
"De bugs die we vonden, konden worden uitgebuit via bluetooth", zegt Alkemade. "Daarmee hoef je alleen maar binnen bluetoothbereik van een lader te zijn en niet eerst toegang te krijgen tot een wifinetwerk." De onderzoekers omschrijven in een van hun hun onderzoeken hoe ze bij de ChargePoint-lader al heel snel een bruikbare kwetsbaarheid vonden. Nassar: "Bij het eerste dat we probeerden, was het raak. Bij het configureren van het apparaat via bluetooth was het mogelijk een command injection uit te voeren in het wifiwachtwoordveld. We baseerden ons op eerder onderzoek dat was gedaan door Kaspersky, dat eerder die functionaliteit had onderzocht. In die functionaliteit bleek toen de command injection-bug te zitten. We zijn eerst gaan kijken naar een soortgelijke bufferoverflow en die konden we binnen een halfuur veroorzaken." Alkemade: "Ik kon het niet geloven toen Khaled me dat voor het eerst vertelde."
Code uitvoeren op laders
De bugs maken het mogelijk om zonder authenticatie code uit te voeren op de laders. De Autel MaxiCharger maakt bijvoorbeeld gebruik van hardcoded credentials als een aanvankelijke authenticatiepoging mislukt. Bij een ander lek, dat in de Gecko OS-implementatie van een van de laders zit, wordt input niet goed gevalideerd en kan een aanvaller een stack-based bufferoverflow veroorzaken. De onderzoekers hebben van een van de kwetsbaarheden hun bevindingen al gepubliceerd. De andere twee onderzoeken zijn nog niet openbaar, maar Tweakers heeft ze al wel kunnen lezen.
Wat een aanvaller vervolgens kan doen, is afhankelijk van het model. "Bij minimaal een van de modellen is het bijvoorbeeld mogelijk bepaalde veiligheidscontroles uit te schakelen, zoals het throttlen bij hoge temperaturen", zegt Alkemade. "En natuurlijk zijn er de standaardaanvallen die bij alle iot-apparaten een risico opleveren, zoals het doorspringen naar de rest van het netwerk of waarbij een apparaat in een botnet wordt opgenomen."
Bughunting
Een dergelijke, vrij eenvoudige bug is in een wedstrijd als Pwn2own niet per se goed. Alkemade: "Het gaat niet om wie het snelst een bug vindt, maar om welke bug het stabielst is. Bij Pwn2own word je als team ook op een bepaalde plek in de rij gezet. Als je later aan de beurt bent met je presentatie, wil je niet dat een van de teams voor je al dezelfde bug kan presenteren. Je wil er daarom voor zorgen dat je niet de makkelijkste bug gebruikt in de wedstrijd, dus zijn we ook verder gaan zoeken naar een minder voor de hand liggende bug. En als je die niet vindt, heb je altijd iets om op terug te vallen."
De bugs die Alkemade, Nassar en hun collega Daan Keuper ontdekten, waren alsnog relatief eenvoudig. Bij de Juicebox-lader zat een kwetsbaarheid in het embedded Gecko-besturingssysteem waarin de onderzoekers een out-of-bounds-write-bug vonden. In de andere laders vonden ze verschillende bufferoverflows. "Bij iot-apparaten zie je heel vaak dit soort problemen voorkomen", zegt Alkemade. De potentiële schade van de hack is overigens beperkt. Niet alleen is hij lastig uit te buiten doordat aanvallers binnen bluetoothbereik moeten zijn, de mogelijkheid om arbitraire code uit te voeren op een lader is hooguit schadelijk voor de eindgebruiker, maar niet voor het elektriciteitsnetwerk in het algemeen.
Het moeilijkste aan het vinden van de bugs is de start, zeggen de onderzoekers. Alkemade: "Je moet eerst proberen een firmwaredump te doen. Dat kan bijvoorbeeld door een update te downloaden en die te onderscheppen." Zo'n update wordt soms niet goed beveiligd. "Het wordt vaak geobfusceerd, maar niet erg goed. Fabrikanten denken in zo'n geval dat ze ermee voorkomen dat concurrenten de software kopiëren, maar ze houden dan geen rekening met beveiligingsonderzoekers." Uiteindelijk, zeggen Alkemade en Nassar, duurde het achterhalen en uitlezen van de firmware nog het langst in het onderzoek.
Firmwaredump
Hackers die meedoen aan Pwn2own, moeten hun bevindingen via responsible disclosure doorgeven aan de fabrikanten. Dat deed het Computest-team ook. Bij twee van de fabrikanten is het probleem inmiddels opgelost. "Maar bij ChargePoint weten we dat eigenlijk niet. Dat heeft niets laten weten." De onderzoekers hebben de nieuwe firmware ook zelf nog niet kunnen testen. Zero Day Initiative, de organisator van Pwn2own, zegt in een advisory dat het er daarom vanuit moet gaan dat de apparaten nog steeds kwetsbaar zijn. De enige mitigatie is dan ook om 'interactie met de applicatie te beperken'.