Network Access Makes IoT Better

Wir haben das Ziel, die Sicherheit und Interoperabilität von Geräten im Internet of Things (IoT) zu verbessern.

Ein Master-Projekt an der Universität Bremen.

Software, welche IoT-Sicherheit zugänglicher macht

Hierfür haben wir uns insbesondere mit zwei Standards für die "Selbstbeschreibung" von IoT-Geräten beschäftigt.

  • Über eine Manufacturer Usage Description (MUD) können Geräte angeben, welche Kommunikationsbefugnisse sie benötigen, was für die automatische Konfiguration von Firewalls und andere Sicherheitsmechanismen dienen kann.
  • Durch diese Maßnahmen kann unerwünschtes sowie schädliches Verhalten von IoT-Geräten unterbunden werden.
  • Für die Umsetzung von MUD haben wir passende Komponenten entwickelt, die einerseits die Konfiguration übernehmen, aber auch die manuelle Geräteverwaltung über ein Frontend erlauben.
  • Mittels unseres "Legacy-Services" können ältere Geräte ohne MUD-Unterstützung berücksichtigt werden.

Was ist mit der Interoperabilität?

Für die Verbesserung der Interoperabilität haben wir uns vor allem mit den Thing Descriptions (TDs) des Web of Things-Standards auseinandergesetzt, die als standardisierte Schnittstellenbeschreibungen die Interaktion zwischen Geräten erleichtern und herstellerunabhängig gestalten sollen.

Das Hotel-Szenario als Proof of Concept

Ein Gast besucht ein Hotel und möchte in diesem Hotel auf dort bereitgestellte IoT-Geräte zugreifen. Hierfür bekommt dieser beim Einchecken Zugangsdaten für den Autorisierungsserver des Hotels, meldet sich dort mit z.B. seinem Handy an und kann anschließend auf die IoT-Geräte im gebuchten Zimmer zugreifen. Der Zugang ist dabei beschränkt auf Geräte in diesem Zimmer, reduziert auf bestimmte Funktionen und endet, sobald der Gast auscheckt.

Welche Gruppen und Komponenten gehören zu NAMIB?

HOTELS

Die HOTELS-Gruppe (Hosts Offering Things and Enforcing Local Security) hat sich vornehmlich mit der sicheren und interoperablen Nutzung von IoT-Geräten beschäftigt. Das Ganze wird auf Basis der ACE-OAuth-, CoRE Resource Directory- und der Web of Things-Standards umgesetzt. Gleichzeitig möchten wir im Rahmen des Szenarios auch betrachten, wie neue Geräte zu dieser Infrastruktur hinzugefügt werden können.
Hierfür befassen wir uns unter anderem auch mit dem kürzlich veröffentlichten Standard EAP-NOOB (RFC 9140) für die Einbindung von Geräten in drahtlose Netze mithilfe von Out-of-Band-Nachrichten und erarbeiten dabei unter anderem eine Abwandlung des dort verwendeten Grundprinzips in der Form von EAP-UTE.

Authorisierungsserver

dcaf-rs

ACE-OAuth-Implementierung (Datenmodell mit CBOR-/COSE-Integration) in Rust.

Canephora

ACE-OAuth-Implementierung (Autorisierungsserver) in Rust.

tinydtls-rs

Bindings zu tinydtls in Rust.

libcoap-rs

Bindings zu libcoap in Rust.

Gastclient

Mobile App in Flutter, kümmert sich um die Kommunikation mit den IoT-Geräten, dem Resource Directory und dem Autorisierungsserver.

dart_dcaf

ACE-OAuth-Implementierung in Dart.

dart_tinydtls

Bindings zu tinydtls in Dart.

dart_wot

Web Of Things Implementierung in Dart.

Reverse Engineering

Die Reverse Engineering Gruppe befasst sich größtenteils mit der Handhabung von IoT-Geräten, für die keine (offizielle) MUD-Spezifikation existiert. Dazu ist geplant, Interessierten eine Toolbox an die Hand zu geben, mit der MUD-Spezifikationen für IoT-Geräte erstellt und veröffentlicht werden können. Als weitere Sicherheitsmaßnahme entwickeln wir ein System auf Basis maschinellem Lernens um Anomalien von IoT-Geräten zu erkennen.

MUDsights

Applikation für Hotelmitarbeiter zur Verwaltung und Analyse der IoT-Geräte in den Gästezimmern. Darunter die Möglichkeit Geräte zu quarantänisieren sowie die Anzeige von Anomalien.

Toolbox

Erweiterung, mit der MUD-Dateien für Geräte im lokalen Netzwerk bearbeitet und automatisiert erstellt werden können.

shai

Machine Learning basierte Klassifikatoren zur Analyse des Netzverkehres und zur Detektion von anomalen Verhalten der IoT Geräte.

shai-netimg

Sammlung an generierten PNG-Bildern aus dem CSE-CIC-IDS2018 Datensatz zum Trainieren von Bildklassifikatoren.

Subnet Enforcing

Subnet-Enforcing beschäftigt sich mit der Umsetzung von (MUD-)Policies insbesondere im lokalen Kontext. In diesem Rahmen verwalten wir die dafür zentralen (MUD-bezogenen) Komponenten von NAMIB: Controller und Enforcer.

Controller

  • MUD-Manager
  • generiert Firewall-Regeln aus MUDs

Enforcer

  • Dienst auf einem OpenWRT-Router
  • wendet generierte Firewall-Regeln (durch nftnl) auf nf_tables an

muddles

Setzt einen MUD Language Server prototypisch in Rust (mit tower-lsp) um. Dieser unterstützt beispielsweise die Vervollständigung von Policy-Namen und Warnungen bei Benutzung von YANG-ACL-Features, die MUD nicht unterstützt.

Klingt Interessant?