Blog archief
RSS

Blog berichten van '2014' 'april'

SHOWCASE: Je telefoon als autosleutel

Een van mijn collega's maakt gebruik van Volvo On Call, een systeem dat Volvo zelf omschrijft als

 

Volvo On Call is een geïntegreerde hulpdienst met een baanbrekende mobiele app waardoor u continu in contact staat met uw Volvo. Uw brandstofniveau controleren, uw auto verwarmen (optioneel), vergrendelen en openen van uw portieren - via uw smartphone kunt u communiceren met uw Volvo waar u ook bent! Daarnaast heeft de service ook een geïntegreerde dienst voor noodsituaties en pech onderweg en is het voorzien van inbraakalarm en een Track-and-Stop functie.

 

Toegegeven, het is niet de James Bond auto uit Tomorrow Never dies die zich laat rondrijden maar als het op security aankomt is het openen van een deur op afstand al spannend genoeg.

 

Om de auto met de Volvo On Call cloud te laten verbinden is de wagen voorzien van een datasimkaart. De initiele authorisatie voor een mobiel toestel gebeurt voor zover ik lees altijd via Volvo zelf en een afgesproken pincode. Hoewel het met social engineering waarschijnlijk niet lastig is om een 2e toestel gelinkt te krijgen laten we deze aanvalsvector voor nu links liggen en focussen we ons op de technische kant.

 

De Volvo app is gelukkig ook bereid om over wifi te verbinden waardoor het erg eenvoudig is het dataverkeer te monitoren als de gebruiker het vrij veilige mobiele internet verlaat voor een hotspot.

 

Door het mobiel internet in een omgeving te vervuilen met een stoorzender kan je je slachtoffer motiveren om een hotspot te zoeken. Het is mogelijk om zelf een hotspot aan te bieden, die van de Starbucks of de MacDonalds te kapen. Om nog verder te gaan is het zelfs mogelijk een hotspot op te zetten die álle verzoeken voor specifieke SSIDs accepteerd. Daarover in een ander blog meer, terug naar de Volvo-eigenaar.

 

Al het dataverkeer tussen de On Call app en de On Call cloud verloopt nu via ons systeem waardoor we goed kunnen meekijken naar de data. Het is een open deur maar uiteraard zien we veel SSL-verkeer langskomen. Daar komen we later op terug, eerst gaan we de data onderzoeken die we wél direct kunnen uitlezen.

 

Wat direct opvalt is dat de kaarten die de app opvraagt om aan de gebruiker te tonen wáár de auto staat ongeencrypteerd langsvliegen

 

Het is een open deur maar uiteraard verloopt een groot gedeelte van de communicatie over SSL. De kaarten die laten zien waar de auto staat worden echter ongeencrypteerd opgevraagd.

HACKDEMO: 2 cola, 3 bier en bedankt voor je persoonlijke gegevens!

Een deel van mijn werk bestaat uit het geven van demonstraties waarin ik een live hack doe op een fictief bedrijf. Ik doorloop samen met het publiek een realistische aanval waarin we doorgaan tot we totale controle over de infrastructuur hebben. In een half uur tijd zien mensen met hun eigen ogen wat voor risco's oude software of het missen van updates met zich meebrengt en daarmee bereiken wij als securitybedrijf ons doel: mensen bewust maken.

Ik probeer in elke demo de laatste zwakheden en exploits in te zetten, dus de opzet gaat regelmatig op de schop. Bij elke nieuwe demo is de meest lastige vraag hoe je gaat beginnen? Vallen we de bedrijfswebsite aan, proberen we een spearphishing-aanval in te zetten of laten we de kracht van social engineering weer zien?

Hotspots bestaan al jaren en ook over de risico's van zo'n open wifinetwerk wordt al even lang gesproken. Ik wilde er daarom eigenlijk niet te veel aandacht aan besteden maar na een weekendje Belgie heb ik m'n mening moeten herzien. Waarom zou je, als je op een terras zit, niet even gebruik maken van het gratis internet? Uit je mobiele bundel is het aanzienlijk duurder en iedereen doet het. Gebruikers doen dat ook met hun (half) zakelijke (BYOD) toestel of laptop- zonder de noodzaak van een VPN in te zien.

De conclusie is simpel: een rogue-access point is een realistisch en bruikbaar aanvalsscenario. Daarom leek het mij een goed moment om een apparaatje in elkaar te knutselen dat ons helpt om inzicht te verschaffen in de risico's waaraan mensen zich blootstellen en wat we er tegen kunnen doen.

Ons doel is het maken van een platform waarmee we een paar zaken uit kunnen voeren. Ten eerste willen we de omgeving goed kunnen scannen. Observatie. Verder willen we het dataverkeer van een mogelijk doelwit kunnen omleiden en tot slot willen we een systeem actief kunnen aanvallen.

In dit blog beginnen we met de hardware. Hoewel onze doelstellingen met een laptop haalbaar zijn kies ik er voor om een flexibeler platform in te zetten. Voor mobiele toepassingen grijp ik vaak naar de RaspberryPi, een extreem kleine computer die door z'n lage stroomverbruik en flexibiliteit het best met een Zwitsers zakmes van een hacker gezien mag worden. Met een accu eronder past deze computer mét wifi antenne en een 3g modem gemakkelijk in een bloempot- of een iets minder bizarre behuizing. Deze kleine koffer kan ik onopvallend achterlaten in plafonddelen, magazijnen, buiten onderin een kliko of desnoods op het dak van een gebouw.

 
 
In deze 1150 Pelicase zit de apparatuur waterdicht opgeborgen, extra schuim maakt het geheel stootvast.

Deze unit kan afhankelijk van de accu enkele uren tot een etmaal op volle kracht draaien. We zouden een programma kunnen maken dat autonoom informatie gaat verzamelen of zelfs een aanval inzet maar hiervoor zijn er domweg te veel variabelen om rekening mee te houden. Veel nuttiger is het om deze unit op afstand te kunnen benaderen. Door de manier waarop mobiele providers internet aanbieden kunnen we niet direct naar de Raspberry verbinden als deze achter een 3G modem zit, we laten de verbinding omgekeerd lopen. Zodra Linux gestart is wordt de 3G modem aangezet en zal het systeem zelf een verbinding met de thuisbasis maken waarover we kunnen werken.

Als thuisbasis is elk Linuxsysteem bruikbaar, ik maak gebruik van een microcomputer van Nexcom. Dit systeem was oorspronkelijk een security gateway (over ironie gesproken...), is compact en werkt op 12 volt waardoor het geheel ook makkelijk in de auto meekan. Uiteraard draaien we Linux, daar hebben we immers een schatkist aan securitytools tot onze beschikking én alles laat zich eenvoudig aanpassen.

Een ding is belangrijk: de beveiliging van de apparaatjes zélf, het laatste wat we willen is dat dit systeem zélf kwetsbaar is. Voor toegang vertrouwen we daarom niet alleen op wachtwoorden maar ook een sleutelpaar. Een blog over authenticatiemethodes komt eraan, hierover dus later meer.

Met netstat is de inkomende verbinding van onze unit naar de server te zien, het 109.x.x.x adres is van de mobiele provider.

 Active Internet connections (servers and established)    Proto Recv-Q Send-Q Local Address      Foreign Address     State    tcp    0   0 fiberlink:ssh 109.35.29.31:45978   ESTABLISHED   

 

In het vorige deel hebben we de hardwarekant van onze gereedschapskoffer opgebouwd. We hebben nu een mobiele unit die we bij ons doelwit kunnen droppen waarna wij vanuit een andere locatie aan de slag kunnen.

In dit deel laat ik je hoeveel informatie laptops en smartphones weggeven aan iedereen die wil luisteren. Tijd om de wifi module aan te zetten en te kijken wat er allemaal door de lucht gaat: dit is een puur passieve actie die iedereen met een antenne kan uitvoeren. Toch zal het je verbazen wat we allemaal kunnen achterhalen. Onderstaande data is afkomstig van een smartphone die in de buurt is:

 (not associated)  54:E4:3A:XX:XX:XX -52  0 - 1   0    18 NX7400-W7_Network,Coffee Company,AHBC Grote Zaal Gasten,AHBC Restaurant Gasten,Apple Demo,Airport Extreme,Ziggo72D5C,dhg-bezoeker,free-hotspot.com,AndroidHotspot9715   


Ik heb het mac-adres geanonimiseerd maar uit de eerste 3 octetten (54:E4:3A) kunnen we aflezen dat dit om een Apple apparaat gaat. De eerste helft van een mac is namelijk de Organizationally Unique Identifier (OUI).

Verderop in de data zien we alle netwerken waarmee dit apparaat verbinding probeert te maken. Dit geeft ons 2 belangrijke handvatten in het gericht kunnen aanvallen van het doelwit. Ten eerste is het mogelijk om een profiel te maken over de eigenaar, ten tweede kunnen wij zelf een van deze netwerken gaan aanbieden omdat het apparaat er actief naar zoekt. Dit laatste is waar we in het volgende deel mee aan de slag gaan!