EO

Sesam, open u! - Advies over beveiliging van een slimme thermostaat

07 februari 2019 om 15:41 uur

Security expert Kevin Valk onderzocht de beveiligingsaspecten van zijn eigen, via de cloud aangestuurde, thermostaat en ontdekte een reeks alarmerende problemen. Hij toont de kwetsbaarheid aan van hedendaagse IoT-apparaten en geeft advies aan ontwikkelaars van verbonden apparaten om hun verdediging tegen cyberaanvallen te verbeteren.

 

Door: Kevin Valk, Riscure


Als beveiligingsanalist bij Riscure werk ik voornamelijk aan mobiele beveiligingen zoals bij online-betalingen, HCE (Host Card Emulation) en mPOS (Mobile Point of Sale). Onlangs kocht ik een IoT-thermostaat genaamd Anna van Plugwise waarmee ik de temperatuur in mijn huis beter kon regelen. Bij het instellen van Anna moet je naar een webinterface gaan om het apparaat te configureren. Ik herinner me dat ik op een specifieke instellingenpagina een HTTP-statuscode ‘500 Internal server error' kreeg met een volledige stacktrace gegenereerd door een Lua-script. Zoals je je wel kunt voorstellen, maakte dit me nerveus toen ik me realiseerde dat dit apparaat mogelijk een gat kon slaan in mijn thuisnetwerk. Om mezelf gerust te stellen voerde ik een kleine veiligheidsevaluatie uit om te verifiëren dat Anna inderdaad geen problemen zou opleveren in mijn huis ... Achteraf gezien geen verkeerde gedachte.

1 Binnenkant van de thermostaat: de printplaat met antenne.

 

Op onderzoek uit

Voor elk beveiligingsbewust persoon met enige kennis van basiselektronica levert de printplaat een schat aan waarde; alles is duidelijk gelabeld en voorzien van enkele debug-headers. Je kunt de voornaamste componenten zoals de microcontroller, RAM en flash duidelijk zien. Bovendien blijkt dat de 5-pins header een UART-interface is. Die is vast uitgeschakeld in een productieomgeving, toch?

2Meekijken naar het opstarten tijdens het autobootproces. 


Helaas. Door eenvoudigweg een UART-kabel aan te sluiten en op het juiste moment een toets aan te slaan om het automatische opstartproces te stoppen, heb ik runtime-controle over Anna verkregen. Met de commandline-interface gepresenteerd door U-Boot kun je talloze dingen doen zoals het lezen van het flash-geheugen. Dit maakte me nieuwsgierig en ik wilde er dieper in duiken. Daarvoor had ik wel een flashdump van het bestandssysteem nodig.

 

Verder spitten

Een mogelijkheid om het bestandssysteem te verkrijgen, is door de flash-IC  direct uit te lezen met behulp van gebruikelijke hardware. We hebben echter al toegang tot de U-Boot-shell. Waarom zou ik die niet gebruiken?

3Python-script voor het maken van een memorydump. 


Een klein Python-script en twee memorydumps later heb ik met succes een geverifieerde inhoud van de volledige flash-IC verkregen. Op basis van de initiële U-Boot shell wist ik al dat er een aangepaste versie van het OS (besturingssysteem) OpenWrt op dit apparaat werd gebruikt. Dit betekent dat er een SquashFS-partitie voor het read-only root-bestandssysteem is en een JFFS2-partitie voor alle gebruikersgegevens.

 

Herinner je de Lua stacktrace nog?

Het rootbestandssysteem was inderdaad een aangepaste versie van OpenWrt met één significant verschil: een vrij grote Lua -toepassing. Lua is een scripttaal en als je het bestand in een teksteditor opent dan zie je normaal gesproken de broncode verschijnen. Om betere prestaties te leveren kunnen Lua-scripts tot bytecode worden gecompileerd die de Lua VM (Virtual Machine) direct kan uitvoeren.
Net als de meeste bytecode-gecompileerde talen, bestaat er ook een decompiler voor Lua, namelijk LuaDec. Ik verwachtte dat ik daarmee de originele code gemakkelijk terug zou kunnen halen. Toch zat ik er flink naast. Bij het openen van sommige Lua-bestanden op de SquashFS-partitie kreeg ik de volgende gegevens te zien:

e 

Dat is geen tekst. Maar het was ook geen Lua bytecode. Nader onderzoek toonde aan dat dit een aangepast coderingsschema is, gemaakt door Plugwise om zijn Intellectuele Eigendom (IP) op al zijn producten te beschermen.


Het duurde even maar enkele reverse engineering-inspanningen later lukte het om met een relatief eenvoudig Python-script de gecodeerde bytecode en de gecodeerde broncode te ontcijferen. De coderingssleutel zat in de Lua-interpreter zelf en is daarom gemakkelijk verkrijgbaar via statische reverse-engineering.


Na het decoderen van alle bestanden heb ik de originele broncode (inclusief opmerkingen en TODO's) en de bytecode verkregen. Voor verdere analyse is het mogelijk een aanval te bedenken om het systeem binnen te dringen met behulp van HTTP-verzoeken (dus geen fysieke toegang tot het apparaat). Dit is vooral interessant omdat de web-interface rootgebruiker-rechten heeft zodat een aanvaller direct dezelfde rechten krijgt wanneer de aanvalt lukt.

 

En verder?

Tijdens het onderzoek van het bestandssysteem en de web-interface bleef een functie met de naam SSH-relay tevoorschijn komen. Normaal gesproken gebruikt men SSH-relays om firewalls te omzeilen door reverse-tunnels in te stellen. De Anna-thermostaat is in onbekende netwerken geïnstalleerd en SSH-relays gebruikt men om de toegang tot apparaten van buitenaf mogelijk te maken.

 

e

Illustratie van de samenhang tussen de ontwikkelaar Plugwise (links), de relay-server (onder) en de thermostaat achter een firewall (rechts). 

 

Bij nadere beschouwing was dit precies wat Anna deed om Plugwise toegang te geven tot de verkochte thermostaten. Er kunnen veel geldige redenen zijn om een dergelijke functie te implementeren. Dat moet wel op een veilige manier worden uitgevoerd om geen gevaarlijke gaten te maken in de beveiliging van het thuisnetwerk van consumenten. Daarom heb ik besloten om te onderzoeken hoe de omgekeerde tunnels zijn gemaakt.

 

De wereld aan je voeten

Plugwise heeft een complexe en dynamische HTTP-API om de apparaten te laten communiceren met de back-end. Een van deze eindpunten gebruikt Plugwise om een persoonlijke sleutel te verkrijgen om in te loggen in de back-end en een omgekeerde SSH-tunnel in te stellen. Als de SSH-gebruikers op de externe server niet goed zijn beveiligd, kan een aanvaller deze privésleutel gebruiken om een onbevoegde shell op de back-end te krijgen.

 

De architectuurkeuze van omgekeerde SSH-tunnels is niet optimaal, maar wanneer goed opgezet kan het voldoende zijn voor de oplossing. Een minimumvereiste is in ieder geval dat je de instellingen correct instelt zodat een aanvaller de server niet gemakkelijk kunt binnendringen. Om dat te verifiëren heb ik dezelfde API-verzoeken uitgevoerd als Anna om de persoonlijke sleutel te verkrijgen. Met de privésleutel zou ik kunnen proberen een interactieve SSH-shell in te stellen, volledig met de verwachting dat ik daarin niet zou slagen omdat alleen tunnels nodig zijn.

5Je begrijpt mijn verbazing toen ik de boodschap volgens bovenstaande afbeelding kreeg. Ik beëindigde onmiddellijk de SSH-sessie en dacht na over wat er gebeurde. Niet alleen kreeg ik een shell zonder root rechten, het systeem draaide ook een OS (image) uit 2014! Dat betekent dat er veel kans is op misbruik om root-rechten voor dit systeem te krijgen. Wie weet hoe andere servers zijn verbonden en wat een rootgebruiker op het relay-systeem van het netwerk van Plugwise kan aanrichten? Er was slechts één laatste probleem dat ik wilde verifiëren voordat ik contact opnam met Plugwise. Als een aanvaller het IP-adres van de Plugwise-relayserver kent, kan de aanvaller dan een poortscan uitvoeren en rechtstreeks een verbinding maken met de apparaten in de thuisnetwerken?

 

Proef op de som

Bij het uitvoeren van een eenvoudige poortscan op de relayserver, kreeg ik een open poortlijst te zien. In totaal waren er 205 omgekeerde SSH-tunnels die rechtstreeks naar een Plugwise-apparaat in thuisnetwerken gaan. Gelukkig staan de SSH-servers in de apparaten alleen een rootgebruiker toe om in te loggen met een SSH-sleutel. Hoe dan ook, het feit dat dit systeem firewalls van een thuisnetwerk omzeilt en de Anna-thermostaat effectief openzet naar jan-en-alleman, is verre van ideaal.

Aanbevelingen

 

Dit product was interessant omdat het geen significante veiligheidsmaatregelen bevatte tot aan de Lua-toepassing die bijna buitenproportioneel aanvoelde. De op maat gemaakte beveiligde Lua-interpreter werd echter gemakkelijk verslagen omdat niet goed genoeg was nagedacht over de veiligheid ervan.


Bij het analyseren van de thermostaat hebben we veelgemaakte fouten geïdentificeerd en Riscure zou graag enkele algemene tips willen delen over het verbeteren van de beveiliging van embedded IoT-apparaten. De onderstaande lijst is verre van volledig maar biedt een essentiële leidraad voor IoT-beveiligingsverbeteringen.

 

Hardware:

  • Schakel debuginterfaces voor de productiefase uit of vergrendel deze om te voorkomen dat aanvallers gemakkelijk de systeemdetails leren kennen.
  • Versleutel het flashgeheugen om te voorkomen dat aanvallers eenvoudig toegang hebben tot de inhoud. Gebruik als alternatief een SoC met geïntegreerd geheugen of verberg pinnen/sporen/pads op de flash-IC om het moeilijker te maken voor aanvallers om bij het geheugen te komen.

 

Software:

  • Bescherm sleutels door ze naar de hardware te verplaatsen of run-time te definiëren om te voorkomen dat aanvallers de sleutel alleen door statische analyse kunnen verkrijgen. Dit verhoogt aanzienlijk de benodigde inspanning voor een aanvaller
  • Scheid rechten voor applicaties om een gelaagde verdediging toe te passen. In dat geval zou een compromis van de web-interface (indien mogelijk) alleen leiden tot een gebruiker met weinig rechten.

 

Back-end:

  • Houd alle back-end-servers altijd (bij voorkeur automatisch) volledig up-to-date.
  • Hoewel relayservers nuttig kunnen zijn, is het vanuit veiligheidsoogpunt vaak niet de beste oplossing. Indien je toch een relayserver wilt gebruiken, zorg er dan voor dat alleen jij toegang hebt tot de tunnels die apparaten verbinden met het internet.

In goed overleg: case closed

 

In juni vorig jaar stuurde Riscure de eerste e-mail met details over de ontdekte problemen. Riscure en Plugwise hebben na die tijd veelvuldig contact gehad om de meest urgente problemen op te lossen. Plugwise heeft alle back-endservers bijgewerkt en de SSH-relaygebruikers volledig vergrendeld.

 

Dit artikel is gebaseerd op een blog van Riscure uit november 2018 met de bedoeling om ontwerpers bewust te maken van mogelijke kwetsbaarheden in hun producten. Twijfel je over de veiligheid van de producten die jij maakt als het om cyberaanvallen gaat, die kunnen leiden tot Denial-of-Service, diefstal van intellectuele eigendom en lekken van klantgegevens? Neem dan contact op met Riscure: inforequest@riscure.com .

 

Kennis

RSS

Veilige BOP afsluiter voorkomt 2e Maconda olieramp

20-06-19 14:43 In 2010 vond in de Golf van Mexico de Maconda olieramp plaats waarbij er...

Dicht Method 3D-printer gat tussen industriële en desktopprinter?

18-06-19 15:11 Het complete spectrum 3D-printers – voor rapid prototyping – gebruiken...

Simulatierevolutie – weg met de eindige elementen?

18-06-19 14:27 Volgens diverse analisten doen in twee jaar tijd bijna alle grote bedrijven...

Meer kennis »

Laatste productnieuws

Robuuste drukknoppen

Robuuste drukknoppen

EAO heeft een roestvaststalen versie verlichte drukknoppen van de Serie 82 ontwikkeld, die bestand zijn tegen sterk alkalische reinigingsmiddelen die worden toegepast bij machines en besturingspanelen in onder meer de…

Paneelschakelaars voor ruwe omgevingen

Paneelschakelaars voor ruwe omgevingen

De 22 mm paneelschakelaars uit de MW serie van Idec zijn geschikt voor sterk vervuilde omgevingen, zoals bij werktuigen, voertuigen en industriële applicaties. Met een IP66 stof-en waterafdichting, 10 A schakelstroom en…

Magnetische veiligheidsschakelaar van Pilz nu ook als rvs-variant verkrijgbaar

Magnetische veiligheidsschakelaar van Pilz nu ook als rvs-variant verkrijgbaar

Automatiserings- en veiligheidsexpert Pilz breidt zijn productgroep van de contactloze, magnetische veiligheidsschakelaars PSENmag uit met een rvs-variant. Deze nieuwe variant bewaakt hekken en posities in zware industri…

Meer productnieuws »

Laatste nieuws

Input gevraagd voor duurzame processen houtsector

Input gevraagd voor duurzame processen houtsector

Brazilië heeft een voorstel gedaan om ISO-normen te ontwikkelen voor duurzame processen voor hout en houtproducten. Het betreft geharmoniseerde terminologie, duurzaamheidsaspecten voor hout- en houtproductensector en…

Eerste Nederlandse waterstof taxivloot met 35 Toyota’s Mirai

Eerste Nederlandse waterstof taxivloot met 35 Toyota’s Mirai

Den Haag heeft de eerste Nederlandse waterstof taxivloot. Hij bestaat uit 35 Toyota’s Mirai die Noot Personenvervoer zal inzetten voor WMO-vervoer (Wet Maatschappelijke Ondersteuning). Jaarlijks maken zo’n 15.000…

Kabinet investeert in ruimtevaart voor maatschappelijk belang

Kabinet investeert in ruimtevaart voor maatschappelijk belang

Het Nederlandse kabinet zet de komende jaren in op aardobservatie, satellietcommunicatie en het toepassen van satellietdata en -signalen vanwege hun maatschappelijke belang en de economische kansen. Dat staat in de Nota…

Meer nieuws »

Product van de maand

RSS
Groot bereik - wereldwijde toepassing - veilige gegevensoverdracht

Schmersal lanceert nieuw veiligheidslichtscherm met Bluetooth-interface Voor het eerst lanceert de Schmersal-groep een...

Focus op

ABB BV
ABB BV

Machineveiligheid, systemen en componenten

B&R Industriële Automatisering BV *
B&R Industriële Automatisering BV *

Perfection in Automation

Elobau Benelux BV *
Elobau Benelux BV *

creating sustainable solutions

Pilz Nederland
Pilz Nederland

Voor industriële (veilige) automatiseringsoplossingen

Ringspann Benelux BV
Ringspann Benelux BV

Partner in aandrijf- en opspantechniek

Rotero Holland BV
Rotero Holland BV

Stappenmotor - Servomotor - Elektro Magneet

Tosec
Tosec

Specialist in plaatbewerking

Download gratis engineering boeken

A gratis boeken downloaden

 

Agenda

26 juni 2019, Eindhoven

Fontys TEC Expo

Overzichtstentoonstelling van het werk van een internationale en interdisciplinaire groep studenten (50...

26 juni 2019, Odense (DK)

Odense Investor Summit

Odense houdt 26 juni een Investor Summit voor de roboticasector.

Meer agendapunten »

Gratis nieuwsbrief

EOL