Internet der Dinge Fünf Überlegungen zur Entwicklung sicherer IoT-Systeme

Autor / Redakteur: David Kleidermacher * / Franz Graser

Es gibt zahlreiche Herausforderungen bei der Konzeption und Entwicklung von Lösungen für das Internet der Dinge (IoT). Der Beitrag liefert einige Grundgedanken für den Bau sicherer Systeme.

Firma zum Thema

Target-Einkaufszentrum in West Hollywood, Kalifornien: Im Herbst 2013 wurde die Supermarkt-Kette Target zum Opfer des bisher umfangreichsten Hacker-Angriffes auf ein Handelsunternehmen in den USA. Es gelang, Malware in die Sicherheits- und Bezahlsysteme einzuschleusen. 40 Millionen Kreditkarten-Datensätze wurden auf diese Weise entwendet.
Target-Einkaufszentrum in West Hollywood, Kalifornien: Im Herbst 2013 wurde die Supermarkt-Kette Target zum Opfer des bisher umfangreichsten Hacker-Angriffes auf ein Handelsunternehmen in den USA. Es gelang, Malware in die Sicherheits- und Bezahlsysteme einzuschleusen. 40 Millionen Kreditkarten-Datensätze wurden auf diese Weise entwendet.
(Bild: Wikimedia Commons/CC-BY-SA 3.0)

Zahlreiche Herausforderungen bedrohen das immense Potenzial des Internet der Dinge (IoT). Die Entwickler der intelligenten „Dinge“ müssen sich folgende Fragen stellen:

Wie lässt sich die Privatsphäre und Sicherheit (Safety & Security) der Informationen und Funktionen schützen, die den IoT-Einrichtungen anvertraut werden?

Wie kann eine neue Generation von Entwicklern – viele davon mit wenig oder keiner Erfahrung im Bereich Embedded-Softwareentwicklung – zuverlässige, effiziente und sichere Produkte entwickeln?

Wie können erfahrene Embedded-Entwickler die technischen und geschäftlichen Herausforderungen meistern, die mit der Integration von Systemen in die Cloud einhergehen?

1. Wenden Sie eine Zero-Trust-Datenschutzstrategie an

Einer der Irrtümer bei IoT-Sicherheit ist, dass Lösungsanbieter ihre Investitionen auf die Stärkung des Cloud-Rechenzentrums ausrichten können. Dabei ignorieren sie aber die Sicherheit der einzelnen IoT-Einrichtungen. Im Cloud-Zeitalter ist diese Denkweise gefährlich und im IoT-Zeitalter geradezu töricht. Angreifer suchen nach dem schwächsten Glied.

Und wenn IoT-Einrichtungen nur schwach geschützt sind, sind sie ein Ziel. Ist eine dieser Einrichtungen erst einmal in Beschlag genommen, können Angreifer damit Zugriff auf die zentralen Informationen in einem Rechenzentrum erlangen.

Ein weiterer Irrtum ist, dass es an den Cloud-Grenzen nicht viel Schützenswertes gäbe. IoT-Einrichtungen erzeugen aber umfangreiche, wertvolle und private Informationen – über den Gesundheitszustand, soziale Aktivitäten, den Aufenthaltsort etc. – und sind daher ein wertvolles Ziel für Hacker.

Da das IoT immer komplexer wird, ist es für Entwickler praktisch unmöglich zu wissen, wie Daten über das Internet transportiert werden, geschweige denn, den Datenfluss zu steuern und ob die verschiedenen Systeme entlang des Weges vertrauenswürdig sind.

IoT-Entwickler und deren Kunden müssen eine Null-Vertrauen-Strategie anwenden, die die Datenschutzverantwortung von Geräten, Einrichtungen, Kommunikationsprotokollen und Cloud-Diensten abtrennt. IoT-Datenschutz ähnelt dem Content-Protection-Problem bei digitalen Medien.

Dateneigner müssen über Tools verfügen, die flexible Richtlinien für autorisierten Zugriff, Verteilung und Zugriffskontrolle erstellen – unabhängig davon, wie sie das Internet durchqueren. Ein am Körper getragenes medizintechnisches Gerät kann zum Beispiel die vor Ort erzeugten Informationen verschlüsseln. Der Code-Schlüssel wird über den Nutzer gesteuert und nur mit dem Dienstanbieter des Geräts ausgetauscht.

2. Verwenden Sie eine sichere Plattform-Architektur

Schaubild 1: Eine Architektur für IoT-Geräte wie etwa Point-of-Sale-Systeme. Die PoS-Architektur nutzt eine leichtgewichtige kritische Applikation, den Tokenizer, um die personenbezogenen Informationen zu verarbeiten. Der Tokenizer läuft direkt auf einem hochsicheren Mikrokernel-Hypervisor.
Schaubild 1: Eine Architektur für IoT-Geräte wie etwa Point-of-Sale-Systeme. Die PoS-Architektur nutzt eine leichtgewichtige kritische Applikation, den Tokenizer, um die personenbezogenen Informationen zu verarbeiten. Der Tokenizer läuft direkt auf einem hochsicheren Mikrokernel-Hypervisor.
(Bild: Green Hills Software)
Die Plattform-Sicherheit von IoT-Einrichtungen beginnt mit einer Hardware Root of Trust unterhalb jeglicher Softwareebene. Dabei handelt es sich im einfachsten Fall um einen manipulationssicheren Code-Schlüssel-Speicher, der zumindest ein sicheres Booten der Firmware und der zugehörigen sicherheitskritischen Komponenten garantiert.

Die Boot-Sequenz muss Hardware-rooted Code-Schlüssel verwenden, um diese Komponenten vor dem Start einer Signaturprüfung zu unterziehen. Anschließend kann die Hardware Root of Trust auch für die Fernabfrage und zum Schutz der Code-Schlüssel für die Authentifizierung und Verschlüsselung verwendet werden. Falls ein Angreifer versucht, kritische Software mit Schadcode zu überschreiben, wird der Beglaubigungsprozess dies erkennen.

Nach dem sicheren Start ist die ausführende Software (Betriebssystem, Hypervisor oder TEE) der wohl wichtigste Baustein für sichere IoT-Einrichtungen. Es lassen sich keine sicheren Anwendungen oder IoT-Einrichtungen auf einem unsicheren Betriebssystem oder Hypervisor entwickeln. Diese Software Root of Trust hat idealerweise folgende Eigenschaften:

  • Hohe Sicherheit: design- und implementierungs-zertifizierbar nach strengsten Sicherheitsstandards (etwa Common Criteria EAL 7), einschließlich formalem Sicherheitsnachweis;
  • Skalierbar: in der Lage, einfache Echtzeit-Lasten bis hin zu umfassenden Linux-Betriebssystemen und Stacks zu unterstützen (und beides gleichzeitig);
  • Offen: mit einer Laufzeitumgebung und API, die offenen Standards entspricht und Interoperabilität sowie Software-Wiederverwendung fördert.

Diese Prinzipien zur Plattform-Architektur geben Entwickler ein leistungsfähiges Tool-Paket an die Hand, mit dem sie sichere IoT-Systeme erstellen können. Um dies zu demonstrieren, dient der Hackerangriff auf die Target Corporation als Beispiel (der zweitgrößte Discount-Einzelhändler in den USA).

Wie hätte man diesen Angriff verhindern können? In die PoS-Terminals (Point of Sale) von Target und Home Depot (größte Baumarkt-Kette in den USA) wurde Schadsoftware eingeschleust, die Kontrolle über die Speicherinhalte (RAM) übernahm und so persönliche Informationen abgriff.

Eine fortschrittliche PoS-Architektur würde ein depriviligiertes OS und eine einfache sicherheitskritische Anwendung (Tokenizer) nutzen, um persönliche Informationen zu verarbeiten. Der Tokenizer läuft direkt auf einem Thingvisor, einem hochsicheren Mikrokernel-basierten Hypervisor, und verwaltet das Kartenlesegerät, über das die Zahlung erfolgt.

Der Tokenizer nutzt eine sichere Verbindung zu einem Backend-Web-Service, um persönliche Informationen abzugleichen, führt eine virtuelle Kartenabfrage durch und erstellt ein Token. Dieses wird an das OS des PoS-System weitergeleitet. Das OS kann zwar durch Schadsoftware infiltiert sein, es können jedoch keine persönlichen Informationen gestohlen werden.

Die Thingvisor-basierte PoS-Architektur ist in Schaubild 1 dargestellt und wurde auf der NRF Big Show (US National Retail Federation's Annual Convention & EXPO) demonstriert. Target hat dieses Konzept verpasst, aber es ist noch nicht zu spät für das Unternehmen und andere Einzelhändler, einen solchen vertrauenswürdigen Ansatz für PoS-Systeme zu installieren.

3. Nutzen Sie professionelle Entwicklungswerkzeuge

Für das IoT interessiern sich unterschiedlichste Entwickler, von denen viele nur wenig professionelle Erfahrung im Bereich Embedded-Programmierung haben.Viele Entwickler haben wenig Ahnung davon, wie richtiges Debugging erfolgt und folgen keinen Regeln des Entwicklungsprozesses zur Erstellung eines zuverlässigen Produkts. Das mag für Hobby-Projekte genügen, wird sich aber für die Serienfertigung oder für einen Markteintritt, bei dem höhere Qualität oder sogar eine Zertifizierung gefordert ist, nicht etablieren.

Bei einer professionellen Entwicklungsumgebung für IoT-Systeme kommt es darauf an, dass sie leicht zu erlernen und anzuwenden ist. Man sollte die langfristigen Auswirkungen einer optimierten Entwicklung, Erprobung und Wartung nicht unterschätzen.

Das Gleiche gilt für die Hardwareplattform: Ein Mikroprozessor, der JTAG-Debugging und Laufzeit-Programm-Trace-Funktionen bietet, um komplizierte Fehler zu finden, sorgt für geringere Entwicklungskosten und eine schnellere Markteinführung. Das wird oft übersehen, da der Fokus meist auf der Wahl der CPU-Taktfrequenz, RAM-Größe und Materialkosten liegt.

Gerade die beliebtesten IoT-Anwendungen wie der Nest-Thermostat und verschiedene Smartwatches laufen unter Linux. Mit seiner Open-Source-Lizenzierung sowie breiten Verfügbarkeit von Entwicklern und Anwendungen hat Linux eine zentrale Position in der Laufzeit-Strategie für das IoT.

4. Linux implementieren – aber mit Vorsicht

Allerdings bereitet Linux Probleme bei der Skalierung auf Low-End-Designs (Platzbedarf, Batterielebensdauer und Performance). Es weist Echtzeit-Einschränkungen auf und bietet nicht die Sicherheit (Safety & Security), die man für eine zukunftssichere IoT-Strategie benötigt. Auch hier ist der Thingvisor von Vorteil.

Er wandelt Linux in eine IoT-optimierte Linux-Version um, wobei Linux oberhalb der Software Root of Trust läuft. In Automotive-Designs kann sicherheitskritische Software (CAN-Treiber, Rückfahrkamera, etc.) auf dem Mikrokernel gehostet sein, und Linux wird nur für die Grafik und Kommunikations-Stacks verwendet.

Viele Middleware-Lösungen erheben ihren Anspruch, die Informationsschaltzentrale (Backbone) des IoT zu sein. Konkurrierende Konsortien wie AllSeen und Open Interconnect Consortium, sowie die Vielzahl an Protokollen – MQTT, XMPP, AMQP, COAP, DDS – sorgen für Verwirrung bei den Entwicklern.

5. Web-orientierte Kommunikationsstrategien nutzen

Schaubild 2: Die Grafik zeigt den gesamten IoT-Firmware-Stack. Sie zeigt deutlich das Konzept mehrerer sicher gegeneinander abgeschotteter Web-Service-Komponenten, ein Linux-Gastbetriebssystem (rot) sowie Echtzeit- und sicherheitskritische Komponenten.
Schaubild 2: Die Grafik zeigt den gesamten IoT-Firmware-Stack. Sie zeigt deutlich das Konzept mehrerer sicher gegeneinander abgeschotteter Web-Service-Komponenten, ein Linux-Gastbetriebssystem (rot) sowie Echtzeit- und sicherheitskritische Komponenten.
(Bild: Green Hills Software)
Zu berücksichtigen sind Faktoren wie das Kommunikationsmodell (PubSub, Peer-to-Peer, Client-Server), das Service-Discovery-Modell, die Datendarstellung, Overwrite vs. Queue, die Abhängigkeit von einem zuverlässigen Transport (TCP), QoS-Funktionen (Quality of Service) etc. Eine weitere Vertiefung würde den Rahmen dieses Beitrags sprengen.

Letztlich verwenden die meisten IoT-Einrichtungen die lingua franca des Internets, RESTful Web Services über HTTP und COAP (für eingeschränkte Funkanwendungen), da sie IoT-Einrichtungen erlaubt, die sich schneller und nahtlos in das Web integrieren lassen.

Schaubild 2 zeigt den IoT-Firmware-Stack auf einen Blick, einschließlich mehrerer sicher partitionierter Web-Service-Komponenten, Linux-Gastbetriebssystemen und sicherheitskritischen Komponenten.

Die Zahl der ans Internet angeschlossenen Geräte hat inzwischen die Zahl der Internet-Nutzer überschritten. Dies ist nur der Anfang einer Ära, die von intelligenten Objekten dominiert sein wird, die neue Geschäftsmöglichkeiten für Entwickler eröffnen.

* David Kleidermacher ist Chief Technology Officer von Green Hills Software.

(ID:43115031)