>>

Onze visie op de beveiliging van IoT

Als securitypartij doen wij steeds meer ervaring op in het testen van IoT-producten. We hebben om deze reden inmiddels zelfs een IoT-team dat zich specifiek hierop focust. Computest is daarnaast ook actief in software development, waardoor wij een goed begrip van software security hebben. Om deze redenen hebben wij een heldere visie op de beveiliging van IoT systemen, en op de belangrijke factoren om tot een veilig ecosysteem te komen. IoT is een term die veel gebruikt wordt en veel kan betekenen. In deze context definiëren we IoT als producten uit de traditionele embedded devices categorie die een transformatie doormaken doordat network-connected zijn nieuwe waarde mogelijk maakt. Waar de afzonderlijke technologieën al bestaan (sensoren, meet- en regelsystemen, draadloze netwerken, internet, SaaS- diensten) zorgt het samenbrengen van deze technologieën voor nieuwe producten en diensten.

Drivers / influencers van de beveiligingsproblemen in IoT

Een aantal factoren liggen aan de basis van de beveiligingsproblemen van IoT-producten en van systemische uitdagingen van IoT-ecosystemen. Wij zien in elk geval de volgende:

  • Security is geen business driver. Een klant betaalt niet méér voor een product dat pretendeert veilig te zijn; veiligheid wordt aangenomen. Ditzelfde zien we terugkomen bij “secure software” als concept: kopers van software (B2C en B2B) nemen aan dat software veilig is.
  • Security en privacy zijn onzichtbare eigenschappen. Een klant selecteert er meestal niet op. Daarnaast is er een informatie-asymmetrie waardoor een klant vaak niet in staat is om deze factoren wél in een keuze mee te kunnen nemen, en is de informatie die daarvoor benodigd zou zijn niet beschikbaar.
  • Hardware is veelal commodity, dus prijs is hier een key driver voor. De markt wordt overspoeld met goedkope hardware uit lagelonenlanden.
  • Time to Market is een key driver. Omdat het veelal gaat om het combineren van bestaande technologieën, kunnen producten relatief snel ontwikkeld worden. Snel naar de markt kunnen met een idee is dus van belang, en hier delven non-fucntional requirements zoals security snel het onderspit.
  • Voor consumentenproducten is prijs een key driver. Als er vier lichtschakelaars beschikbaar zijn die via een app te bedienen zijn, zal prijs eerder een rol spelen dan beveiliging. Dit geldt uiteraard niet voor alle IoT-producten, maar is wel een gevolg van commoditization.
  • Hardware is vaak beperkt. Een low-powered sensor, die over lange afstand moet communiceren, heeft niet de rekenkracht en de bandbreedte voor state-of-the-art cryptografie. Dit maakt vertrouwelijkheid van gegevens en degelijke authenticatie moeilijk.

Veelvoorkomende beveiligingsproblemen in IoT devices

In ons werk als hackers gaan wij op zoek naar kwetsbaarheden die we kunnen vaststellen in producten. We onderscheiden specifiek voor IoT de volgende kwetsbaarheden die het meeste tegenkomen:

  • Het ontbreken van een (eenvoudig) updatemechanisme, waardoor securityproblemen niet of nauwelijks opgelost kunnen worden bij reeds verkochte producten.
  • Onveilige standaardconfiguraties, waardoor de verantwoordelijkheid van security bij de gebruiker wordt neergelegd. Denk aan standaard wachtwoorden die zwak zijn, het standaard aanbieden van beheerinterfaces op publieke netwerken etc.
  • Slecht dependency management wat resulteert in het gebruik van third-party componenten met reeds publiek bekende kwetsbaarheden. De gebruiker kan een dergelijk probleem niet oplossen. Een voorbeeld is dat veel firmware statisch gelinked wordt tegen oude versies van open source libraries (bijv. openssl).
  • Onvoldoende securitybegrip bij ontwikkelaars, wat resulteert in veel basale kwetsbaarheden. We zien dat veel van de lessen die in ‘reguliere’ software engineering lang geleden geleerd zijn, opnieuw geleerd moeten worden voor IoT software development. Oorzaken hiervoor zijn opereren onder verkeerde aannames rond secrecy in devices en het feit dat de primitievere hardware van IoT-devices vaak maakt dat de ‘reguliere’ programmeertalen en frameworks niet gebruikt kunnen worden. De beveiligingsmaatregelen die in die frameworks zitten, moeten dan ineens door programmeurs zelf worden geïmplementeerd.
  • Het ontbreken van of slecht geïmplementeerde cryptografie. Vaak het resultaat van de beperkte processorkracht van de gebruikte hardware waardoor standaardoplossingen niet gebruikt kunnen worden. Dit resulteert in gebruikersdata die onvoldoende wordt beschermd, zowel in transitie alsmede wanneer deze in rust is op het apparaat, en in zwakke authenticatie.

Oplossingsrichting

Gebaseerd op onze eigen ervaring met software development en security, gecombineerd met onze ervaring bij klanten, hebben we een aantal overtuigingen die een rol spelen op het gebied van IoT security. Deze overtuigingen bepalen hoe we onze dienstverlening inrichten, en welke kant we de markt op willen zien bewegen.

De focus moet liggen op kwaliteit, niet puur security. Door de focus op kwaliteit te leggen krijg je een stuk security, maar ook performance, reliability en durability. De relatie werkt deels twee kanten op: een product van zeer slechte (software)kwaliteit is niet goed veilig te maken, terwijl een kwalitatief hoogwaardig (software)product gemakkelijk te beveiligen is voor zover dat nog nodig is.

De verantwoordelijkheid voor security ligt bij het bedrijf dat het gezicht is richting de koper. Soms is dit een bouwer, soms een assemblagepartij, soms een importeur die slechts een merknaam hanteert. De koper moet deze partij echter verantwoordelijk kunnen houden voor security, en deze partij doet hetzelfde met zijn keten. Een dergelijke partij heeft maar beperkt invloed op de securitykwaliteit van de componenten wanneer deze kant-en-klaar ingekocht worden, maar is wel in de positie om eisen te stellen en te kiezen voor partijen die de security van hun componenten beter duidelijk kunnen maken.

Secure IoT is een kwestie van hardware en software, maar ook ecosysteem. Een product wordt verkocht maar heeft daarna onderhoud en ondersteuning nodig. IoT-devices hebben doorgaans een langere levensduur dan bijvoorbeeld laptops en/of telefoons. Tijdens de gehele levensduur van het apparaat zal periodiek onderhoud nodig zijn om beveiligingsproblemen die bekend zijn geworden, te verhelpen. De koper zou slechts minimaal belast moeten zijn met de uitvoer van deze onderhoudswerkzaamheden. Ervaring heeft ons geleerd dat het leggen van deze verantwoordelijkheid bij de gebruiker ervoor zorgt dat onderhoud niet of onvoldoende wordt uitgevoerd. Voor sommige IoT-devices geldt dat eventueel misbruik niet enkel schadelijk kan zijn voor de gebruiker, maar ook voor de omgeving. Dit pleit voor het (semi-) geautomatiseerd uitvoeren van onderhoudswerkzaamheden.

In het geval van consumentenproducten, moet het niveau van security en privacy-waarborgen van een product inzichtelijk worden voor de koper, om de informatie-asymmetrie tussen koper en verkoper weg te nemen. Dit kan bijvoorbeeld door het introduceren van een keurmerk dat het voor een koper inzichtelijk maakt welke verwachtingen hij of zij kan hebben bij een product. Fabrikanten zouden daarnaast de end-of-life datum van een product duidelijk moeten communiceren naar de koper, die deze informatie kan afwegen met de gewenste gebruiksduur van het apparaat. Een dergelijk keurmerk zou getrapt ingericht kunnen worden (zoals energielabels), waarbij verschillende niveaus iets zeggen over de mate van beveiliging en privacy-waarborgen. Factoren hierin zouden technische beveiligingsmaatregelen kunnen omvatten (zie de volgende sectie), maar kunnen ook gaan over het type gegevens dat door het apparaat wordt verwerkt met welke reden en waar die gegevens worden bewaard.

Key security measures

Als er een keurmerk voor veilige IoT zou komen, zouden onderdelen daarvan tenminste moeten zijn:

  • De fabrikant communiceert een duidelijke end-of-life datum naar potentiele kopers. Tot deze datum mag de koper verwachten dat de fabrikant er zorg voor draagt dat het product is beschermd tegen ongeautoriseerde toegang.
  • Het product wordt geleverd met een veilige standaardconfiguratie.
  • Security-updates worden automatisch toegepast (zonder interventie van de gebruiker).
  • Gegevens die door het apparaat worden verzameld en verwerkt, worden nooit onversleuteld over een netwerk verzonden.

Fysieke toegang

Wanneer je een apparaat aan een gebruiker geeft, moet je ervan uit gaan dat alles wat in dat apparaat zit, geen geheim meer is voor de gebruiker. Het is zeer moeilijk om gegevens (intellectueel eigendom in code, cryptografische sleutels etc.) geheim te houden voor de bezitter van een apparaat: keer op keer is bewezen (DVD, Blu-ray, Playstations, Nintendo's) dat er altijd wel een aantal gebruikers zijn die genoeg vaardigheden en motivatie hebben om achter die geheimen te komen, en dat daarmee de toegang op straat ligt. Producenten van apparaten moeten dan ook opereren onder de aanname dat alles wat ze in een device aan een gebruiker geven, publiek zal worden. Dit heeft implicaties voor hoe cryptografie wordt toegepast, welke gegevens op een apparaat en welke in een Cloud-dienst worden bewaard etc. Computest heeft deze stelling in meerdere security-tests bewezen. Computest is ervan overtuigd dat door de focus te leggen op kwaliteit deze eisen het eenvoudigst zijn te integreren in het ontwikkelproces en dat hier dus ook op de langere termijn het voordeel te behalen valt. Door bijvoorbeeld een stuk uniformiteit aan te brengen tussen de verschillende productlijnen worden zaken als dependency management vereenvoudigd, en is het tevens eenvoudiger om ondersteuning te blijven bieden voor oudere generaties producten.

Concluderend

De markt voor IoT-producten heeft een aantal karakteristieken die goede security moeilijker maken dan bij b.v. mobiele telefoons of laptops. De appraten hebben een andere waarde voor gebruikers dan een telefoon of laptop, en zijn qua hardware vaak ook beperkt. Dankzij de snelle ontwikkelingen is bovendien time-to-market zeer belangrijk, en bovendien wordt een meer secure device door een gebruiker (nog) niet persé als dusdanig herkend en gewaardeerd.

Ondanks dat, of misschien juist daarom, moeten er stappen gezet worden om richting veilige IoT te bewegen. Naast kennis van basic security-engineering principes bij bouwers van producten, die natuurlijk lastig afgedwongen kunnen worden, moeten we maatregelen gaan nemen om consumenten bewuster te maken van security-eigenschappen van de producten die ze in huis halen. Het meetbaar en transparant maken van de security-kwaliteit van IoT-devices is daarom wat ons betreft het startpunt.