De SPIN software
Inleiding
De SPIN software bestaat uit een aantal verschillende onderdelen:
- Een traffic collector, die het dataverkeer en de history van apparaten verzamelt
- Een visualizer, die het dataverkeer van lokale apparaten laat zien
- Een lokaal publicatie-systeem en JSON-RPC API, waarmee andere applicaties verdere analyses kunnen doen en veiligheidsmaatregelen kunnen nemen
Features
Visualisatie
SPIN visualiseert het dataverkeer, zodat de gebruiker kan zien wat er op zijn netwerk gebeurt. Vanuit deze interface kan de gebruiker ook verkeer blokkeren, en een volledige capture van het dataverkeer van apparaten starten.
Mogelijkheid tot omgekeerde firewall
Via de visualisatie-interface kunnen gebruikers al verkeer van en naar specifieke endpoints of apparaten blokkeren. Deze functionaliteit zou ook geautomatiseerd kunnen worden, zoals een vroeg prototype van een omgekeerde firewall op basis van SPIN heeft aangetoond; in dat prototype hielden we bij hoeveel verbindingen door apparaten opgezet werden. Als dit aantal plotseling een bepaalde grens overschreed, werd het apparaat in quarantaine gezet. Slimmere en diepgaandere analyse-technieken voor maatregelen als deze zijn onderwerp voor lopend en toekomstig onderzoek.
Anomaliedetectie
De afwijkingsdetectie van SPIN richt zich in eerste instantie op het maken van machine learning modellen en time-series-gebaseerde analyse. Dit onderzoek bevindt zich momenteel nog in een zeer vroeg stadium. SPIN bevat al wel een kleine proof-of-concept, die simpelweg het aantal connecties dat een apparaat maakt middelt, en het apparaat in quarantaine kan zetten wanneer dit aantal een bepaalde grens overschrijdt.
Andere toepassingen
Behalve dat we SPIN beschikbaar stellen als referentieplatform voor IoT-securitysystemen thuis, gaan we het ook inzetten als instrument bij securityonderzoek. Bijvoorbeeld door gebruikers in staat te stellen gemakkelijk dataverkeer en analyses van apparaten te verzamelen, en optioneel te delen.
Overzicht en componenten
Bovenstaande afbeelding (opklikken voor groot) geeft een globaal overzicht van de architectuur van een op SPIN gebaseerd systeem, met twee afzonderlijke soorten componenten: lichtgewicht ‘SPIN agents’ die netwerkverkeer meten en meer intelligente controllers. De scheiding is nieuw en maakt het systeem geschikt voor meer toepassingsscenario’s.
Een agent meet stromen netwerkverkeer, genereert daarvan overzichten en kan verkeersstromen blokkeren. Een controller ontvangt overzichten van één of meer agents, analyseert deze en kan de agents opdracht geven om de datastroom van bepaalde IoT-apparaten te blokkeren. Een controller kan bijvoorbeeld signaleren dat de verkeersstromen van een apparaat overeenkomen met het Mirai botnet. De controller geeft de betreffende agent dan opdracht om het geïnfecteerde apparaat in quarantaine te zetten (te blokkeren).
Controllers en agents kunnen op hetzelfde apparaat gehost worden, maar ons nieuwe ontwerp ondersteunt ook toepassingen waarbij meerdere agents en één of meer controllers elders in het netwerk geplaatst zijn. Zo kan elke verdieping van een huis zijn eigen wifi-hotspot met een aparte agent hebben, allemaal bestuurd door een centrale controller die draait op een standaard, always-on apparaat, zoals een network-attached storage (NAS) device.
Het SPIN platform kan worden uitgebreid met applicaties die kunnen worden geïmplementeerd door (commerciële) organisaties, de SPIN-gemeenschap of door de onderzoeksgemeenschap.
Een goed gedefinieerde API voorziet applicatieontwikkelaars de nodige informatie over het thuisnetwerk met haar IoT-apparaten, zodat ontwikkelaars zich niet hoeven bezig te houden met meetgegevens op laag niveau.
Download
SPIN staat voorgeinstalleerd op Valibox router images, beschikbaar voor GL-Inet routers, Raspberry Pi 3, en als een VirtualBox image.
Voor andere systemen, zoals Debian en Raspbian, zul je het vooralsnog zelf moeten compileren. Instructies daarvoor zijn te vinden op de Github pagina.