IoT: dingen om over na te denken
Het Internet of Things groeit snel. Dit genereert nieuwe kansen maar ook nieuwe risico’s. Volgens Dave Marples van Technolution doet de ICT-branche niet genoeg om de gevaren van deze nieuwe wereld het hoofd te bieden.
Van verkeerslichten tot bruggen, van deurbellen tot stroomschakelstations, alles wordt verbonden. De voordelen van deze connectiviteit zijn zonneklaar: van de verkoopautomaat die altijd op tijd bevoorraad wordt, tot de pomp die nooit uitvalt in het gebouw dat altijd de juiste temperatuur heeft. We kunnen niet meer volhouden dat het IoT geen voordelen oplevert. Rekenkracht is goedkoop en het energieverbruik is laag. De mogelijkheden zijn schijnbaar eindeloos, maar let op: met meer macht komen meer verantwoordelijkheden. En de volle omvang van deze verantwoordelijkheden wordt nog lang niet door iedereen begrepen.
Het netwerk is overal
Nog niet zo lang geleden werden netwerksystemen beveiligd door middel van fysieke restricties. Het netwerk was een ‘ommuurde tuin’ en dat zorgde voor waterdichte beveiliging van de toegang tot apparaten binnen het netwerk. De alomtegenwoordige connectiviteit die het IoT nu creëert, zorgt ervoor dat deze afgeslotenheid verloren gaat. Fysieke restricties worden afgebroken om ongemakken voor de gebruikers te voorkomen. Apparaten op het netwerk kunnen niet langer vertrouwen op hun geïsoleerde plek in een vriendelijk netwerk – het netwerk is overal. Het nestelt zich steeds dieper in de structuur van de samenleving en soms is het niet zo’n fijne plek.
Helaas hebben softwareontwikkeling en systems engineering deze omwenteling niet kunnen bijhouden. Gedistribueerde netwerkapparatuur wordt ondersteund door achterhaalde infrastructuur die oorspronkelijk is ontwikkeld in vriendelijkere tijden. Het feit dat deze netwerken werkelijk overal zijn maakt het vooruitzicht van fouten onverdedigbaar, omdat de maatschappelijke schade veel groter is dan de directe technische schade – denk bijvoorbeeld aan de consequenties van een aanval op benzinestations waardoor er opeens geen brandstof meer beschikbaar is. De uitschakeling van elektriciteitsnetten door aanvallen op infrastructuur is al werkelijkheid geworden.
De kosten zijn nu al hoog
Deze verontrustende risico’s zullen alleen maar groter worden met de implementatie van meer en meer verbonden systemen. We moeten eerlijk zijn: geavanceerde IoT-frameworks besteden veel aandacht aan apparaatbeveiliging. Ze beperken zich echter vooral tot aspecten die te maken hebben met implementatie, identiteit en communicatie. Ze besteden hoogstens vluchtige aandacht aan lifecycle management, het mitigeren van kwetsbaarheden, continu toezicht, out-of-band monitoring, beveiligde updates, neutralisatie/herstel van gecompromitteerde apparaten en verwijdering bij end-of-life.
De gevolgen van dit gebrek aan aandacht zijn al merkbaar: in 2021 waren de betalingen voor gijzelsoftware naar schatting 20 miljard dollar, terwijl de wereldwijde kosten van cybercrime werden ingeschat op het onthutsende bedrag van 6 biljoen dollar. Tot nu toe gebeuren de meeste aanvallen via desktopcomputers en servers, maar de toegenomen aanwezigheid van IoT-infrastructuur biedt geheel nieuwe aanvalsmogelijkheden waarbij de fysieke gevolgen van mislukkingen veel groter zijn. Als we deze risico’s blijven negeren, creëren we eigenlijk letterlijk een voedingsbodem voor toekomstige rampen.
Beveiliging van implementatie tot verwijdering
Wat moet er gebeuren? Het allerbelangrijkste is het in kaart brengen en veilig managen van de hele lifecycle van verbonden apparaten. Om te beginnen ontwikkeling en inrichting, vervolgens de implementatie, activering en operationeel gebruik. We moeten ook rekening houden met uitzonderingssituaties, zoals updates, uitval en reparatie op locatie, en andere gebeurtenissen. Veruit het grootste manco is het gebrek aan gestructureerde end-of-life-processen: buiten gebruik stellen, ontmantelen en afvoeren zijn verplichte fases die we niet moeten negeren.
Bijna alle IoT-implementaties zijn uitsluitend gericht op inrichting, implementatie, ingebruikneming en operationeel gebruik en, misschien, een paar uitzonderingssituaties. Er wordt weinig aandacht besteed aan de kostbare, maar cruciale elementen die zorgen voor een langdurig veilig en betrouwbaar gebruik. Denk aan het identificeren en mitigeren van kwetsbaarheden, buitengebruikstelling, ontmanteling en afvoeren. Huidige IoT-systemen vertonen een gebrekkige hygiëne op het gebied van beveiliging: apparaten met vastgestelde kwetsbaarheden blijven operationeel in het veld, data lekt bij het verwijderen van apparaten. Het allerergst zijn verbonden apparaten die, lang nadat ze hun nut hebben bewezen, actief blijven zonder enig onderhoud, monitoring of identificatie. We kunnen de gevolgen van de slechte afhandeling van deze ‘long tail’ van verbonden apparatuur niet genoeg benadrukken. Het gaat hier om een reëel, actueel en voortdurend risico voor de integriteit van ieder netwerk dat is of was verbonden met het apparaat.
Het bovenstaande laat op een abstracte manier risico’s zien die we allemaal instinctief aanvoelen. Niemand zal een laptop verkopen zonder eerst de harde schijf te wissen, en wie slim genoeg is ziet dat er een vergelijkbaar risico geldt voor mobiele telefoons. Maar hoe zit het met de data die je achterlaat in de auto die je vorige weekend hebt gehuurd (bestemmingen en routes, muziek, nummers en lengtes van telefoongesprekken, voorkeursinstellingen van stoel en temperatuur)? Als we bedenken dat ook slimme lampen, wasmachines en broodroosters data kunnen lekken en een bruggenhoofd kunnen vormen voor mensen die ons huis willen aanvallen, dan wordt het risico zonneklaar.
Als we het lifecycle-concept verder uitwerken, kunnen we het leven van een IoT-apparaat opdelen in drie duidelijke fases: ingebruikneming (Bringing into Service, BIS), gebruiksbeheer (management of service, MOS) en buitengebruikstelling (Bringing out of Service, BOS).
1. Bringing Into Service (BIS)
Wanneer een nieuw apparaat in gebruik wordt genomen, is een ‘zero trust’ benadering cruciaal. De bron, identificatie en configuratie van het kandidaat-apparaat moeten ondubbelzinnig worden vastgesteld, net als de basisinstellingen. Dit moet gebeuren vóórdat het apparaat wordt gevuld met beveiligd materiaal (programmacode, sleutels en andere zaken) dat het doel van het apparaat ondersteunt en communicatie met ondersteunende netwerksystemen activeert.
2. Management of Service (MOS)
Eerlijk is eerlijk: deze fase van de lifecycle wordt het beste ondersteund door moderne IoT-frameworks. Maar toch niet volledig. Tijdens de levensduur van een embedded IoT-systeem ontstaan nieuwe aanvalsvectoren en -oppervlakken. Er worden nieuwe compromitterende technieken ontwikkeld, de platformsoftware kan veranderen, omgevingsfactoren veranderen en bij apparaten met embedded AI kan de werking worden gecompromitteerd door manipulatie van de invoerdata. Hoe goed we de verificatie en validatie ook hebben gedaan tijdens de BIS-fase, we weten alleen zeker dat het apparaat goed blijft functioneren als we het monitoren om een foutieve werking te detecteren.
De reactie op foutieve werking kan meer of minder intensief zijn. Het moet in ieder geval mogelijk zijn om het effect van het eindpunt te invalideren zodat het geen invloed kan hebben op de juiste werking van omringende systemen, of een lokaal probleem kan veroorzaken. Idealiter wordt de fout teruggemeld naar backendsystemen, bij voorkeur met ondersteunende data, zoals de input die de foute reactie heeft getriggerd, configuratie-checksums, ‘post-mortem’ geheugendumps en andere informatie die kan helpen om de uiteindelijke oorzaak te begrijpen. Informatie vanuit het veld is cruciaal om problemen te begrijpen die zich voordoen tijdens het actieve gebruik.
De laatste stap hangt af van het soort apparaat. Misschien moet het worden afgevoerd of gerecycled, maar het beste is uiteraard als het gereactiveerd kan worden. Deze stap vereist wel dat we het apparaat kunnen terugbrengen naar basisinstellingen die verifieerbaar correct zijn, zodat we een nieuw BIS-proces kunnen uitvoeren. Deze capaciteit kunnen we tijdens de ontwerpfase van het apparaat realiseren, maar het is lastig om dit achteraf te doen.
3. Bring Out of Service (BOS)
Op enig moment is de nuttige levensduur van een IoT-apparaat voorbij. Voor leveranciers valt er weinig geld te verdienen aan dit deel van de lifecycle. Het is dan ook niet verrassend dat deze fase bijzonder weinig aandacht krijgt. Dit is een enorm probleem dat alleen maar groter wordt. Apparaten die op een onveilige manier worden weggegooid, kunnen sleutelmateriaal bevatten of, erger, operationele data die nuttig kan zijn voor een aanvaller. Het moet mogelijk zijn om een apparaat eenvoudig, definitief en verifieerbaar ‘clean’ te maken voordat we het weggooien. Idealiter is dit proces geautomatiseerd om de kans op fouten of nalatigheden te verkleinen.
Nog erger dan een apparaat dat achteloos wordt weggegooid bij end-of-life is een apparaat dat als een soort zombie in het netwerk blijft hangen. Dit is een bijzonder verleidelijke aanvalsvector: het is een niet-onderhouden, niet-gemonitord lanceerplatform voor aanvallen op andere apparaten in het netwerk. Er zijn al jaren verhalen bekend over vergeten, ingemetselde netwerkservers. Het is niet moeilijk voor te stellen hoe de risico’s vermeerderen als we rekening moeten houden met elke slimme lamp en temperatuursensor. Voor klanten heeft deze actieve-BIOS aanpak een negatief gevolg: de hardware die ze hebben gekocht is plotseling waardeloos. Dit is in het verleden al eens gebeurd, en er zijn bedrijven geweest die hun plannen moesten terugdraaien vanwege de eisen van hun gebruikers. We moeten daarom misschien nadenken over hoe gebruikers hun aangeschafte apparaten kunnen blijven gebruiken, ook wanneer de ondersteunende backend-systemen worden gestopt.
Ontwikkelen van embedded systemen
Vrijwel alle IoT-apparaten bevatten embedded software met uiteenlopende, soms hoge niveaus van intelligentie en functionaliteit. Deze software vormt het hart van het apparaat. Het bestuurt de hardware, verwerkt data en communiceert informatie naar de backend. De grootste kwetsbaarheden doen zich voor in dit embedded gedeelte.
Beveiliging van de embedded functionaliteit moet daarom altijd de volle aandacht krijgen van ontwikkelaars. Dit begint in de ontwikkelfase, maar het blijft belangrijk tijdens de lifecycle. Ontwikkelaars moeten de houding zien te vermijden dat hun verantwoordelijkheid voor de veiligheid van apparaten eindigt als de verkoop is gesloten. Klanten moeten leren dat het onderhoud van de hygiëne van hun netwerken een voortdurende investering is, zeker wanneer er IoT-apparaten mee zijn verbonden.
Technolution Perform heeft een lange historie als het gaat om de ontwikkeling van embedded systemen voor netwerktoepassingen en IoT-oplossingen. Het bedrijf is gespecialiseerd in elektronica en programmeerbare logica en is een van de oprichters van de RISC-V Foundation. Voorbeelden van online embedded systemen die zij hebben ontwikkeld zijn een sensor voor de hoogfrequente meting van spanning en stroom voor het preventief onderhoud van elektromotoren, een verkeerssensor op basis van AI voor tellen en routebepaling van fietsers en voetgangers, en een open applicatieplatform voor het meetapparatuur in schakelstations van elektriciteitsnetwerken.