Edge-Sicherheit in einer unsicheren Welt
Von allen Branchen und Technologien ist keine so schnell gewachsen wie das Internet der Dinge (Internet of Things, IoT). Was in den frühen 2000er Jahren mit einer Handvoll experimenteller internetfähiger Mikrocontroller begann, ist inzwischen auf mehr als 21 Milliarden Bauteile weltweit angewachsen. Während Ethernet die Verbindung von Bauteilen mit dem Internet ermöglichte, konnte erst WLAN die IoT-Branche wirklich ankurbeln, da es sehr kleinen Bauteilen eine Internetverbindung ermöglichte, egal wo sie sich befanden.
Die ersten Bauteile wurden für triviale Anwendungen wie drahtlose Thermometer oder Feuchtigkeitssensoren verwendet – interessante Spielereien, aber keine wirklich relevanten Produkte. Aufgrund der begrenzten Nutzung und des extrem kleinen Marktes wurden für diese scheinbar risikoarmen Bauteile praktisch keine Sicherheitsmaßnahmen ergriffen. Mit der Weiterentwicklung von Mikrocontrollern wurden diese einfachen IoT-Produkte jedoch immer leistungsfähiger und konnten schließlich auch zum Streamen von Video und Audio verwendet werden. Obwohl diese Bauteile immer fortschrittlicher wurden, gab es gravierende Sicherheitsmängel: Viele IoT-Bauteile verwenden keine Passwörter, nutzen unsichere Verbindungen und speichern private Daten sogar unverschlüsselt.
Machen wir einen Sprung ins Jahr 2022: Milliarden von Bauteilen auf der ganzen Welt sind potenziell anfällig für Cyberangriffe, weshalb es Hacker häufig auf IoT-Bauteile absehen, weil diese private Daten enthalten und keinen Schutz gegen Denial-of-Service-Angriffe bieten. Der Schutz dieser Bauteile durch strenge Sicherheitsmaßnahmen war noch nie so wichtig wie heute.
Was ist Edge Computing?
Da die erste Generation von IoT-Bauteilen auf extrem einfachen Mikrocontrollern mit begrenzten Fähigkeiten basierte, musste jede umfangreiche Datenverarbeitung remote auf Servern erfolgen (d. h. Cloud Computing). Dies ist zwar aus energetischer Sicht vorteilhaft, bringt aber auch einige große Herausforderungen mit sich: die Latenzzeit zwischen der Übermittlung von Daten und dem Erhalt einer Antwort und die Tatsache, dass potenziell private Daten über das Internet übertragen werden müssen, wo sie abgefangen werden können.
Beim Edge Computing werden jedoch einige oder die meisten der umfangreichen Berechnungen entweder auf den IoT-Bauteilen oder auf einem Computer durchgeführt, der sich vor Ort in der Nähe des IoT-Bauteils befindet. Ein solches System verringert nicht nur die Latenzzeit, sondern minimiert auch die Risiken, die mit der Übertragung privater Daten über entfernte Netzwerke verbunden sind. Edge Computing kann sogar zur Vorverarbeitung von Daten (z. B. Videokameraaufnahmen) verwendet werden, so dass alle Daten, die an eine Remote-Verbindung gesendet werden, private Informationen unkenntlich gemacht oder entfernt werden.
Wie werden die Bauteile angegriffen?
Selbst mit Edge Computing sind IoT-Bauteile immer noch anfällig für eine Vielzahl von Angriffen, und Ingenieure müssen diese Angriffsmethoden verstehen, um sie abzuwehren.
Schwachstellen in der Datensicherheit
Das wichtigste Konzept, das es zu verstehen gilt, sind die drei Zustände von Daten: Speicherung, Übertragung und Verarbeitung. Daten sind in allen drei Zuständen gefährdet, insbesondere beim Übergang zwischen diesen Zuständen. So kann beispielsweise auf im Speicher gespeicherte Daten zugegriffen werden, Daten, die zwischen der Zentraleinheit (CPU) und dem Speicher übertragen werden, können ausgespäht werden, und Daten innerhalb einer CPU können über Seitenkanalattacken zugänglich sein.
Unzureichende Umsetzung des Protokolls
Eine unzureichende Umsetzung des Protokolls ist oft ein Grund zur Sorge. Obwohl OpenSSL theoretisch für den Schutz von Daten geeignet ist, wurde bei seiner Implementierung ein schwerwiegender Fehler namens Heartbleed entdeckt, der es Angreifern ermöglichte, durch Pufferüberläufe private Daten in den Speicher eines Servers zu übertragen.
Exponierte Programmier-Ports
Viele der auf dem Markt befindlichen Bauteile benötigen einen Programmier-Port zum Flashen des ROMs des Programms während der Herstellung, aber Hacker können auf diesen Port zugreifen, und sich auf diese Weise Zugang zum Hauptmikrocontroller verschaffen (Abbildung 1). Von dort aus kann der Programmspeicher geleert, die IP gestohlen und der Schlüssel eingesehen werden.
Unzureichende Nutzung von Betriebssystemen
Einige Bauteile verwenden komplexe Sicherheitszentralen, die mit Betriebssystemen wie Linux arbeiten können. Dies ermöglicht den Entwicklern zwar die Erstellung komplexer Applikationen, aber diese Betriebssysteme haben möglicherweise ungeschützte Ports, die nicht standardmäßig geschlossen sind, verwenden bekannte Root-Passwörter, integrieren Softwarepakete, die nicht benötigt werden, aber Fehler enthalten, und werden nicht auf dem neuesten Stand gehalten.
Fehlende Geräteauthentifizierung
IoT-Designs, die einen Remote-Server für die Datenspeicherung und -kommunikation verwenden müssen, enthalten selten ein Zertifikatssystem zur Authentifizierung des IoT-Bauteils. Jedes Bauteil, das vorgibt, ein authentisches IoT-Bauteil zu sein, kann potenziell auf einen IoT-Server zugreifen. Schlimmer noch, ein Bauteil könnte mit eingebauter Malware geklont werden und einen entfernten Server infizieren.
Abbildung 1: Mikrocontroller haben oft leicht zugängliche Pins und Programmier-Ports.
Wie können die Bauteile geschützt werden?
Leider gibt es bei so vielen Angriffsvektoren keine allgemeingültige Lösung zum Schutz von Bauteilen. Mit gesundem Menschenverstand und dem Einsatz von Hardware-Sicherheitsmaßnahmen lässt sich die Sicherheit eines Bauteils jedoch erheblich verbessern.
Die erste Verteidigungslinie besteht darin, wann immer möglich Verschlüsselung zu verwenden, da verschlüsselte Daten ohne den Schlüssel nicht gelesen werden können. Die Verschlüsselung kann auf den Speicher, auf Daten, die zwischen Systemkomponenten übertragen werden, und auf Daten, die über das Internet gesendet werden, angewendet werden. Die zweite Verteidigungslinie ist die Verwendung starker Sicherheitsalgorithmen und -routinen (z. B. echte Zufallszahlengeneratoren und Verschlüsselungsalgorithmen), die adäquat implementiert sind.
Diese beiden Verteidigungsmethoden setzen natürlich voraus, dass die geheimen Schlüssel vor Hackern geschützt sind und die Algorithmen unveränderlich sind. Glücklicherweise gibt es Hardware-Sicherheits-Koprozessoren für genau diesen Zweck, und ein gutes Beispiel für ein solches Bauteil ist der EdgeLock SE050 von NXP. Dieser Koprozessor integriert eine echte Zufallszahlengenerierung, stützt sich auf mehrere Verschlüsselungsalgorithmen, darunter AES, RSA und DES, kann zum Speichern von Schlüsseln verwendet werden und unterstützt die Funktionen von vertrauenswürdigen Plattformmodulen (Abbildung 2).
Abbildung 2: Der EdgeLock SE050 bietet mehrschichtigen Schutz vor Angriffen.
Zusammenfassung
Da Cyberangriffe auf IoT-Bauteile weiter zunehmen, war es noch nie so wichtig wie heute, diese Bauteile mit strengen Sicherheitsverfahren zu schützen. Software-Sicherheitsmaßnahmen können nur bis zu einem gewissen Grad greifen, und der Versuch, Software-Implementierungen für die Verschlüsselung zu verwenden, kann zu einer Katastrophe führen, wenn sie nicht auf dem neuesten Stand gehalten werden. Hardware-Sicherheitslösungen wie das NXP EdgeLock SE050 sind ideal für die Sicherung von Bauteilen.