7 januari 2025

Het belang van inputvalidatie in IoT-beveiliging

Nazli Kuran, cybersecurityspecialist bij Kiwa 

Cybersecurity is al jaren een passie van mij. Mijn reis in dit vakgebied begon uit nieuwsgierigheid en leidde ertoe dat ik me specialiseerde in webapplicatie-penetratietesten. Sinds ik bij Kiwa werk, richt ik me vooral op IoT-beveiliging, met de nadruk op testen volgens normen als ETSI EN 303645. Een onderwerp dat me altijd blijft fascineren, is inputvalidatie, een gebied waar webapplicatie-penetratietesten en IoT-beveiligingsbeoordelingen vaak samenkomen. 

Wat is inputvalidatie?

Inputvalidatie zorgt ervoor dat de gegevens die je IoT-apparaat binnenkomen veilig en correct zijn geformatteerd. Je kunt het zien als een beveiligingsmedewerker bij de ingang van een gebouw die alleen mensen binnenlaat die aan de eisen voldoen (bijvoorbeeld een geldig paspoort hebben en op de lijst staan). Stel dat een IoT-thermostaat een temperatuurinput verwacht tussen -20°C en 40°C. Zonder inputvalidatie zouden absurde waarden als 10.000°C of -300°C mogelijk worden geaccepteerd, wat het systeem kan laten crashen of kansen biedt voor aanvallen. Zonder deze validatie en verificatie worden IoT-apparaten kwetsbaar voor een breed scala aan bedreigingen, waaronder code-injectieaanvallen. 

Inputvalidatie wordt expliciet behandeld in bepaling 5.13-1 van de ETSI EN 303645-norm en is daardoor een belangrijke focus in mijn werk. In deze blog onderzoek ik waarom dit zo cruciaal is voor de beveiliging van IoT-apparaten en hoe het past in bredere cybersecurity-inspanningen. 

Waarom is inputvalidatie cruciaal in IoT?

IoT-apparaten opereren vaak in omgevingen waarin ze gegevens verwerken van diverse bronnen: gebruikersinput, sensoren of zelfs internetverkeer. Zonder strikte inputvalidatie kunnen aanvallers deze inputs manipuleren om schadelijke opdrachten uit te voeren of ongeautoriseerde toegang tot het apparaat te krijgen. Neem bijvoorbeeld buffer overflow-aanvallen. Als een apparaat 16 bytes aan gegevens verwacht, maar 64 bytes ontvangt zonder juiste validatie, kunnen de extra gegevens in andere delen van het geheugen overlopen. Dit kan niet alleen een systeemcrash veroorzaken, maar ook leiden tot remote code execution, een ernstige beveiligingsinbreuk. 

Zijn HTML-tags in een embedded control unit een verborgen dreiging?

Stel je werkt met een embedded control unit die onverwachts HTML-tags begint te verwerken. Dit lijkt misschien een eigenaardige eigenschap, maar kan het leiden tot een beveiligingsrisico, zoals Cross-Site Scripting (XSS)? 

Wat is het risico?

Als een embedded control unit HTML-tags kan verwerken, bestaat de kans dat het ook scripts, zoals JavaScript, binnen deze tags kan uitvoeren. Dit opent de deur voor kwetsbaarheden als XSS. Stel je een script voor als: ‘<script>alert('Je bent gehackt!')</script>’. Als het systeem deze code uitvoert, verschijnt er een pop-up met de tekst ‘Je bent gehackt!’, een teken van een XSS-kwetsbaarheid. Hackers kunnen dit gebruiken om kwaadaardige code uit te voeren, gegevens te stelen of het gedrag van het apparaat te wijzigen. 

Risico’s verder dan XSS

Zelfs als JavaScript niet wordt uitgevoerd, vormen HTML-tags nog steeds een risico:

  • UI-manipulatie: Aanvallers kunnen de gebruikersinterface van het apparaat aanpassen en mogelijk valse of misleidende informatie tonen.
  • Misbruik van functies: HTML-tags kunnen worden gebruikt om ongewenste inhoud te injecteren of abnormaal apparaatgedrag te veroorzaken.
  • Ongeautoriseerde toegang: Als het systeem HTML-tags verwerkt, kan dit bepaalde functies, zoals formulierinzendingen, toestaan die gevoelige gegevens kunnen manipuleren.

Belangrijke technieken voor effectieve inputvalidatie in IoT

Hoe kunnen we zorgen voor correcte inputvalidatie? Hieronder staan enkele sleuteltechnieken:

  • Datatypevalidatie: Controleer of binnenkomende gegevens overeenkomen met het verwachte type (bijvoorbeeld getallen, tekst, booleans). Een telefoonnummer moet bijvoorbeeld alleen cijfers bevatten.
  • Lengtecontrole: Stel limieten in voor de lengte van de input om buffer overflow-aanvallen te voorkomen. Een voornaam moet bijvoorbeeld tussen 2 en 25 tekens zijn.
  • Bereikvalidatie: Zorg ervoor dat numerieke inputs binnen een acceptabel bereik vallen, zoals temperaturen tussen -20°C en 40°C.
  • Whitelisting en blacklisting: Definieer toegestane (whitelist) en geblokkeerde (blacklist) inputs. Alleen commando’s als ‘aanzetten’ of ‘uitzetten’ zijn bijvoorbeeld toegestaan.
  • Inputsanitatie: Gevaarlijke tekens als `‘`, `;`, `<`, of `>` moeten worden verwijderd of geneutraliseerd voordat ze door het systeem worden verwerkt.

Slimme apparaten beveiligen als topprioriteit

In de steeds groter wordende wereld van IoT blijft inputvalidatie een hoeksteen van beveiliging die apparaten beschermt tegen een breed scala aan aanvallen. Door ervoor te zorgen dat alleen veilige en correct geformatteerde gegevens een apparaat binnenkomen, voorkom je risico’s als buffer overflows, code-injectieaanvallen en crashes. 

Bij Kiwa helpen we organisaties om te voldoen aan de hoogste normen van cybersecurity. Onze diensten omvatten grondige beoordelingen volgens ETSI EN 303645, IEC 62443 en EN 18031, uitgebreide penetratietesten en deskundige begeleiding bij het beveiligen van IoT-apparaten. Samen met onze klanten zorgen we ervoor dat hun producten bestand zijn tegen opkomende bedreigingen, waardoor zij vertrouwen opbouwen bij hun klanten en vooroplopen in cybersecurity-uitdagingen.