Afstudeeronderzoek: typeclassificatie van IoT-apparaten op low-end hardware

Thuisgebruikers helpen bij het terugwinnen van hun privacy en veiligheid

De afkorting IoT (Internet of Things) in een digitale omgeving

De oorspronkelijke blog is Engelstalig, dit is de Nederlandse vertaling. De opkomst van het Internet of Things (IoT) is al enige jaren een veelbesproken onderwerp. Veel mensen gebruiken IoT-apparaten omdat deze het dagelijks leven gemakkelijker maken. Vaak realiseren ze zich echter niet wat voor impact IoT-apparaten kunnen hebben op hun privacy en veiligheid. Onderzoekers hebben de afgelopen jaren tal van privacy- en beveiligingsproblemen met dergelijke apparaten geconstateerd. Omdat IoT-apparaten zo populair zijn, loopt de privacy van veel mensen gevaar als deze apparaten niet goed geconfigureerd zijn. Om thuisgebruikers te helpen hun netwerken te beveiligen, is de eerste stap hun de mogelijkheid te geven om autonoom te detecteren welke categorieën IoT-apparaten op hun thuisnetwerk zijn aangesloten. Vervolgens kunnen firewallregels specifiek apparaatgedrag afdwingen of de gebruiker voorzien van extra informatie over apparaatcategorieën en de bijbehorende risico's. De categorisering van IoT-apparaten zou de inspiratie kunnen vormen voor een nieuwe generatie huisbeveiligingsapparatuur speciaal voor het beveiligen van IoT-apparaten vanuit netwerkperspectief.

Introductie

Het concept van het IoT-apparaat bestaat al sinds ongeveer 1990, toen John Romkey introduceerde wat beschouwd zou kunnen worden als het eerste IoT-apparaat: een met het internet verbonden broodrooster die hij demonstreerde om te laten zien waartoe het Simple Network Management Protocol (SNMP) in staat was. Het idee was dat IoT-apparaten het SNMP-protocol zouden gebruiken om hun functionaliteit te besturen.

Sindsdien nam het concept een enorme vlucht. Volgens Ericsson waren er in 2021 14,6 miljard IoT-apparaten verbonden met het internet. IoT-apparaten hebben het dagelijks leven van veel mensen wat gemakkelijker gemaakt. Ze brachten echter ook nieuwe uitdagingen op het gebied van privacy en beveiliging met zich mee.

Eén probleem is dat IoT-apparaten gemakkelijk verkeerd kunnen worden geconfigureerd. Een ander is dat ze door leveranciers niet altijd goed worden beveiligd, omdat beveiliging niet altijd een prioriteit is. Het is bijvoorbeeld nog steeds heel normaal om in de firmware van IoT-apparaten hardcoded of standaard wachtwoorden aan te treffen. Verkeerde configuraties en kwetsbare wachtwoorden kunnen hackers en indexers gemakkelijk toegang tot deze apparaten verschaffen. Er zijn momenteel diverse websites die een overzicht geven van kwetsbare IoT-apparaten. Een goed voorbeeld is Shodan, een zoekmachine voor apparaten met een internetverbinding. Shodan bevat een onderdeel genaamd ‘Images’, dat bestaat uit een index van schermafbeeldingen van kwetsbare computers en camera's. Iedereen met een Shodan-abonnement kan door de index bladeren. Wat daar te vinden is, is schokkend: we konden zonder enige beperking een kijkje nemen in het dagelijks leven van mensen.

Aanpak

Tijdens het afstudeeronderzoek richtten we ons op de vraag hoe we thuisgebruikers konden helpen bij het terugwinnen van hun privacy en veiligheid, die vaak wordt aangetast door kwetsbare IoT-apparaten. We bedachten dat het handig zou zijn als je een apparaat op je thuisnetwerk kan aansluiten waarmee de apparatuur in je huishouden verzekerd zou zijn van een bepaalde mate van privacy en veiligheid. Maar wat zou zo'n apparaat eigenlijk moeten kunnen? Idealiter zou het in staat moeten zijn om automatisch specifieke beveiligingsregels af te dwingen en zo misbruik van verkeerde configuraties of kwetsbaarheden tegen te gaan door de netwerktoegang te beperken. De gebruiker zou dan niet langer zelf met het systeem in de weer hoeven, waardoor het apparaat zelfs voor gebruikers zonder veel technische kennis een praktische oplossing zou zijn. Bij voorkeur zouden de regels afgestemd moeten zijn op de categorie waartoe het IoT-apparaat behoort, zodat een fijnmaziger beleid zou kunnen worden toegepast. Je zou bijvoorbeeld een regel kunnen hebben die externe toegang tot het bedieningspaneel van een slimme kaars verhindert. Dat zou voorkomen dat een hacker de kaars aanzet en zo mogelijk brand veroorzaakt.

We realiseerden ons al snel dat we, als we ons op deze aanpak wilden richten, een goedkope oplossing voor thuisgebruikers nodig hadden, voornamelijk omdat het aantrekkelijk moet zijn om er gebruik van te maken. Gelukkig hebben de meeste thuisgebruikers al een apparaat in huis dat al hun netwerkverkeer regelt, namelijk de thuisrouter die je vaak gratis van je internetprovider krijgt. Bij deze routers gaat het echter om low-end hardware, wat betekent dat ze beperkte rekenkracht hebben.

Met deze overwegingen in gedachten besloten we dat mijn afstudeeronderzoek zich zou moeten richten op één bepaald aspect van het systeem voor de automatische toepassing van beveiligingsregels, namelijk het detecteren van de categorieën IoT-apparaten op een netwerk.

Implementatie

In de literatuur worden momenteel 3 manieren om een IoT-apparaat te classificeren beschreven, namelijk:

  1. Detecteren of een apparaat wel of niet een IoT-apparaat is;

  2. Het merk en model van het IoT-apparaat classificeren;

  3. De categorie van het apparaat classificeren.

In ons onderzoek richtten we ons op de derde methode. De andere 2 methoden hebben verschillende beperkingen die het moeilijk maken om er een systeem mee te ontwikkelen dat in staat is een fijnmazig veiligheidsbeleid toe te passen. De beperking van de eerste methode is dat op alle IoT-apparaten in een netwerk slechts één set regels kan worden toegepast. Dat zou het onmogelijk maken om een fijnmazig beleid te definiëren. Met de tweede optie zouden we weliswaar wel een apparaatspecifiek beleid kunnen instellen, maar daarvoor zouden we over de gegevens van alle apparaten over de hele wereld moeten beschikken en deze steeds moeten aanvullen met de gegevens van alle apparaten die in de toekomst nog geproduceerd gaan worden. Zonder die gegevens zouden we het merk en model niet kunnen bepalen, omdat we het apparaat nog nooit eerder zouden hebben gezien. Daarnaast zou er een ernstig schaalbaarheidsprobleem ontstaan, waardoor het erg duur zou zijn om het systeem te onderhouden en implementeren. Om deze redenen richtten we ons op de derde methode voor het classificeren van apparaten, waarmee het beveiligingsbeleid kan worden gedefinieerd op het niveau van de apparaatcategorie.

Ons onderzoek concentreerde zich op 5 categorieën, één meer dan de huidige norm, namelijk audio, camera, automatisering (lampen, sensoren en slimme stekkers), smart hubs (apparaten die vaak statuswijzigingen van lampen, sensoren, enz. in de automatiseringscategorie verwerken) en televisies. Om dergelijke apparaten correct te classificeren moesten we verschillende uitdagingen overwinnen, waarvan de grootste ‘vrijheid van implementatie’ was.

Vrijheid van implementatie houdt in dat een leverancier vrij is om iedere functie op een bepaald apparaat te implementeren die dat apparaat aantrekkelijk maakt voor de consument. Helaas brengen al deze extra functies wijzigingen in het netwerkverkeer en hun patronen met zich mee, waardoor het moeilijk is om de apparaten te classificeren. Om deze uitdaging te overwinnen richtten we onze aandacht op de 'primaire taak' van elk apparaattype. De primaire taak is de kernfunctionaliteit die apparaten binnen een categorie gemeen hebben en die we altijd moeten kunnen detecteren. We begonnen door voor elke apparaatcategorie een hypothese te formuleren door de volgende vraag te beantwoorden: hoe zou de primaire taak er op netwerkniveau uitzien?

Hiervoor gingen we handmatig te werk door na te denken over wat de apparaten in een bepaalde categorie voornamelijk zouden doen in termen van netwerkverkeer. Vervolgens werden de hypothesen gedeeltelijk geverifieerd door te kijken naar de nauwkeurigheid van hun voorspellingen met betrekking tot verschillende apparaten. Een goed voorbeeld van zo'n hypothese betreft het netwerkgedrag van apparaten in de categorie 'camera'. Dergelijke apparaten streamen vaak foto's of complete video's naar een cloud, bijvoorbeeld Google Cloud. Het is dus waarschijnlijk dat ze meer verkeer verzenden dan ontvangen. Figuur 1 toont een voorbeeld van het verkeerspatroon dat geassocieerd wordt met een camera. Als we zo'n patroon zien, is de kans dat het om een camera gaat groter dan wanneer een ander patroon wordt waargenomen. De bandbreedte voor verzonden verkeer is aanzienlijk hoger dan die voor ontvangen verkeer, wat in lijn is met onze hypothese.

Lijngrafiek die het verkeer van een met het internet verbonden camera laat zien

Figuur 1: Verkeerspatroon dat geassocieerd wordt met een camera.

We identificeerden de netwerkkenmerken die elke hypothese het beste verklaren. Deze kenmerken werden geselecteerd op basis van het gemak waarmee ze kunnen worden geëxtraheerd. Dat is belangrijk omdat ze moeten kunnen worden geëxtraheerd met een low-end apparaat dat niet voldoende rekenkracht heeft om complexe algoritmes uit te voeren. Voorbeelden van de netwerkkenmerken die we extraheren zijn de maximale pakketgrootte, de tijd tussen netwerkpakketten en het aantal apparaten waarmee het IoT-apparaat verbinding maakt op het interne netwerk.

We extraheren de kenmerken uit 24 uur verkeer uit 3 datasets, te weten UNSW IoT Traces, Your Things en een dataset die werd gebruikt voor de tijdens IMC 2019 gepubliceerde paper Information Exposure for Consumer IoT Devices. We kozen voor een periode van 24 uur ten eerste omdat de meeste apparaten een capturetijd hebben die minstens zo lang is en ten tweede omdat we verwachtten dat het voorspellingsproces een dag zou duren. We splitsten de 24 uur netwerkverkeer op in 6 blokken van 4 uur. We kozen ervoor om het verkeer op die manier op te splitsen na uitgebreide tests met verschillende opsplitsingen. De zes blokken van 4 uur lieten de meest veelbelovende voorspellingsnauwkeurigheid zien. Het opsplitsen van het netwerkverkeer zorgt ervoor dat één onregelmatige gebeurtenis niet meteen alle geëxtraheerde kenmerken vertekent, omdat slechts een van de blokken van 4 uur erdoor wordt beïnvloed. Een voorbeeld van zo'n gebeurtenis is een firmware-update. Op basis van de geëxtraheerde kenmerken kunnen we een machine learning classifier trainen om de categorieën van IoT-apparaten te voorspellen. Tijdens deze stap is het van belang om ervoor te zorgen dat sommige apparaten 'ongezien' blijven door het model, wat inhoudt dat we bepaalde apparaten tijdens de trainingsfase uitsluiten.

In de trainingsfase van machine learning leert het model zijn beoogde taak uit te voeren door de gegevens die eraan worden voorgelegd te analyseren. Over het algemeen wordt de training uitgevoerd met behulp van een trainingsdataset, terwijl de nauwkeurigheid van het algoritme wordt gemeten met behulp van een testdataset. De testdataset wordt niet gebruikt voor de training en de 2 datasets moeten volledig van elkaar gescheiden zijn. Een gebruikelijke aanpak is daarom om de beschikbare gegevens op te splitsen in een trainingsubset en een testsubset, waarbij bijvoorbeeld 75% van de gegevens wordt gebruikt voor de training. Als we in ons onderzoek bij het opsplitsen niet uiterst zorgvuldig te werk gaan, kunnen de gegevens van een bepaald apparaat zowel in de trainingsdataset als in de testdataset terechtkomen, wat wil zeggen dat het gevaar groot is dat een apparaat dat tijdens de test aan het model wordt voorgelegd, al eerder is 'gezien'. Apparaten volledig uit het zicht houden is belangrijk om te kunnen bepalen hoe het model zich zal gedragen wanneer het wordt geconfronteerd met een apparaat dat we nog niet eerder hebben gezien. Dat scenario moet worden onderzocht omdat het een weerspiegeling is van het gebruik in een daadwerkelijk thuisnetwerk, aangezien het onmogelijk is om een model te trainen met de gegevens van alle bestaande apparaten ter wereld. We zorgden er daarom voor dat sommige apparaten uit het zicht bleven door verkeer van en naar bepaalde apparaten steeds uit te sluiten van onze trainingsset.

Met onze aanpak werden 54 van de 74 ongeziene apparaten (73%) correct gecategoriseerd. Bovendien is het model dat we gecreëerd hebben, geschikt voor implementatie op low-end hardware. Dat hebben we geverifieerd door alle experimenten uit te voeren op een Raspberry Pi 4 met 4 gigabyte RAM (Figuur 2). Het duurt 100 milliseconden voor een volledige voorspelling, terwijl er hooguit 100 MB RAM wordt gebruikt. Het onderzoek toonde uiteindelijk aan dat het mogelijk is om vijf apparaatcategorieën te classificeren terwijl het resourcegebruik laag blijft.

Raspberry Pi
Figuur 2: De Raspberry Pi die werd gebruikt voor de experimenten.

Voor de toekomst

De beschreven aanpak kan op verschillende manieren een vervolg krijgen. In de eerste plaats door een systeem te ontwikkelen dat op basis van de voorspelde apparaatcategorie verkeersroutes automatisch kan blokkeren of toestaan. Zo'n systeem zou kunnen worden geconstrueerd als module van het door SIDN Labs ontwikkelde project SPIN, want SPIN heeft alle benodigde basisfunctionaliteit al in zich. Naast het ontwikkelen van dit soort praktische toepassingen zou het onderzoek ook op academisch vlak kunnen worden voortgezet. Momenteel hanteren we 5 apparaatcategorieën, vanwege beperkingen van de datasets. In werkelijkheid bestaan er echter veel meer dan 5 apparaatcategorieën. Denk bijvoorbeeld aan slim tuingereedschap en slimme keukenapparaten. Om deze categorieën te kunnen toevoegen, moeten we eerst identificeren welke apparaattypen in gebruik zijn en het bijbehorende netwerkverkeer optekenen.

Meer lezen?

De volledige versie van mijn afstudeeronderzoek is beschikbaar op de website van SIDN Labs. Daarnaast kan ik het artikel Toast of the IoT: The 1990 Interop Internet Toaster aanbevelen, over wat kan worden beschouwd als het allereerste IoT-apparaat.