Tatsache ist, dass in vielen Fällen Sicherheitsaspekte während eines Produktentwicklungsprozesses zu kurz kommen. In anderen Fällen werden angekündigte Features anfangs nicht veröffentlicht, oder erst zu einem späteren Zeitpunkt nachgereicht. Zyniker sprechen hier von "Bananaware", die auf dem Weg zum Kunden oder nach dem Verkauf erst zur vollständigen Reife gelangt - wie Bananen eben, daher der Name. Sobald eine Sicherheitslücke gefunden wird, gibt man sich Mühe, diese zu beheben - bis die nächste Lücke ihre Schatten vorauswirft. Experten warnen schon lange: Sicherheit gehört bereits in den Entwicklungsprozess eines Produktes. Ein bereits zu zwei Dritteln fertiges Produkt kann man nicht im Nachhinein absichern. Diese Weisheit beschränkt sich übrigens nicht nur auf die Software-Seite, sondern auch auf die Hardware selbst.
Mehr Power
Der Schlüssel zum Internet of Things besteht in billiger Rechenkapazität mit niedrigem Stromverbrauch. Es gibt zahlreiche fertige Komponenten, die hierfür genutzt werden. Eigens hergestellte Chips sind selten und werden nur dann genutzt, wenn sich eine bestimmte Funktion anders nicht realisieren lässt. Viele der smarten Geräte, die wir heute kaufen können, haben keinen echten Mikroprozessor (auch CPU genannt), sondern arbeiten mit Mikrocontrollern. Die meisten modernen CPUs, mit denen wir heute zu tun haben, sind Allroundtalente mit hoher Rechenkapazität, die ein breites Aufgabenfeld abdecken können. Eine solche CPU für ein IoT-Gerät zu nutzen, wäre Verschwendung und würde die Geräte sehr teuer machen. Dagegen hat der Mikrocontroller, wie er in einer Heizungssteuerung oder einen Kühlschrank zu finden ist, eine sehr niedrige Rechenkapazität - mehr braucht es aber auch nicht, da das Gerät nur eine Handvoll Funktionen hat. Die Verwendung stromsparender und vergleichsweise rechenschwacher Komponenten macht die Geräte einerseits erschwinglich, andererseits braucht man wesentlich mehr Rechenleistung, um die Vernetzung und echte "Smartness" herzustellen. Hier kommen Cloudplattformen ins Spiel. Die Geräte werden gewissermaßen zu bloßen Ein- und Ausgabegeräten einer Cloud-Plattform, über die man als Benutzer keine echte Kontrolle hat. Wir werden auf diesen Aspekt auch später noch eingehen. Abgesehen davon, dass Mikrocontroller eine gute und preisgünstige Alternative zu einer "großen" CPU sind, fehlen ihnen allerdings auch einige Sicherheitsmerkmale, die eine CPU hat - und selbst in modernen CPUs ist die Sicherheit der Hardwarekomponenten nicht unproblematisch.
Weniger Sicherheit
Prozess-Isolierung stellt sicher, dass ein bestimmter Speicherbereich für andere Programme unzugänglich ist. Damit wird auch gewährleistet, dass das gesamte System stabil läuft und nicht ohne weiteres manipuliert werden kann. Auf der Hardwareseite wird dies mit einer so genannten Memory Management Unit, kurz MMU, realisiert. Vereinfacht ausgedrückt, muss eine Anwendung zunächst die MMU fragen, bevor sie auf einen bestimmten Bereich des Speichers zugreifen kann. In Mikroprozessoren fehlt diese MMU häufig. Das Fehlen dieser MMU ist jedoch nicht das einzige Problem, das zur Kompromittierung von Daten führen kann. Mit der immer kürzeren Zeit bis zur Markteinführung müssen sich Hersteller massiv anstrengen, ihre Produkte und Plattformen abzusichern - dabei ist das Fehlen von Sicherheitsmerkmalen in der verwendeten Hardware nur wenig hilfreich.
Und, als wäre all das noch nicht Herausforderung genug, hat Sicherheit oftmals negative Auswirkungen auf die "User Experience" oder auf die Leistungsfähigkeit eines Gerätes / eines Programms. Daraus ergibt sich ein sehr wackeliges Konstrukt, in dem Sicherheit nicht den höchsten Stellenwert hat. Theoretisch reicht es oft aus, ein einziges Bit im richtigen Speicherbereich zu "flippen", um sich selbst höhere Rechte auf dem System zu verschaffen. Sobald man ein auf diese Art verwundbares Gerät in ein Netzwerk hängt, besteht Grund zur Sorge. Ein IoT-Gerät niemals ins Netz zu hängen würde das Problem zwar lösen - aber damit hätte man komplett den Sinn verfehlt.
Mikrocontroller
Mikrocontroller basieren normalerweise auf alten Prozessordesigns und werden in aller Regel lange produziert, nachdem der zugrunde liegende Prozessor vorm Markt verschwunden ist. Viele Mikrocontroller, die heute benutzt werden, basieren auf Prozessoren aus den Neunzigern und Achtzigern, manchmal sogar den Siebzigerjahren. So könnte in einem Haushaltsgerät wie einer Waschmaschine ein entfernter Verwandter des berühmten MOS 6502 - Prozessors seinen Dienst tun. Der Prozessor war das Herz einiger berühmter Heimcomputer, wie des Commodore C64 oder des Apple II. Andere basieren auf der Motorola 68000 - Architektur, die in den späten Siebziger- und Achtzigerjahren in Rechnern von DEC, SGI oder Apple zu finden waren, sowie in einigen Spielekonsolen der Neunzigerjahre.
Moderne SOCs (System-On-a-Chip), von denen einige technisch gesehen ebenfalls zu den Mikrocontrollern zählen, haben eigenen Flash-Speicher sowie RAM eingebaut, was die Kosten weiter reduziert. Andererseits werden einige Komponenten auch ausgelassen, so wie eine Speicherverwaltungseinheit (Memory Management Unit, (MMU) ). Dies reduziert die Herstellungskosten noch weiter, beseitigt aber gleichzeitig auch ein Hindernis, welches Angreifern erschwert, bösartigen Programcode auf einem Gerät auszuführen. Durch das Manipulieren eines anfälligen Programms kann ein Angreifer mehr oder weniger direkt auf bestimmte Speicherbereiche zugreifen.
Updateintervalle (oder auch nicht)
Unsere PCs und Smartphones erhalten regelmäßig Updates sowohl für installierte Programme als auch für das Betriebssystem. Für IoT-Geräte sieht die Situation anders aus. Einige Geräte erhalten Updates über das Internet. Bei anderen muss man manuell eingreifen und wieder andere haben überhaupt keine Updatemöglichkeit, was Sicherheitsexperten auf der ganzen Welt schlaflose Nächte bereitet. Das Installieren von Updates ist und bleibt eine der wichtigsten Maßnahmen zur Sicherung jeglicher IT-Systeme. In der IoT-Welt sind Updates vergleichsweise selten. Viele Geräte im unteren Preissegment haben keine Updatemöglichkeit, während man bei anderen selbst eine Datei herunterladen und auf dem Gerät installieren muss. Die Erfahrung zeigt, dass es für die Sicherheit nicht förderlich ist, sich darauf zu verlassen, dass der Benutzer selbst die Updates herunterlädt und installiert. Microsoft hat diese Lektion auf die unangenehme Weise erlernt, als Schadprogramme wie Sasser in den späten Neunzigern die Runde machten. Updates gab es damals zwar, aber diese waren noch nicht automatisiert. Das Ergebnis war, dass hunderttausende PCs befallen waren. Seitdem hat sich viel verändert: Anwender müssen kaum noch etwas selber tun, um ihr Betriebssystem auf dem aktuellsten Stand zu halten. Was IoT-Hardware angeht, sind wir von diesem Stand noch weit entfernt. Jeder Hersteller hat eine eigene Herangehensweise, von großteils automatisierten über manuelle bis keine Updates. Interessanterweise waren in der Vergangenheit einige Hersteller sogar explizit gegen Updates. So hat eine Sprecherin des Herstellers Nest 2014 gesagt "Der Grund, warum wir das Produkt zurückgezogen haben, ist, dass wir kein Produkt verkaufen wollten, das ein Update braucht." Natürlich wäre es schön, wenn man sich keine Sorgen darum machen müsste, dass man all seine Geräte ständig aktualisiert - aber das würde einerseits bedeuten, dass es keinerlei Fortschritt gäbe und dass Software "by design" sicher ist - beides ist in der Praxis nicht der Fall.
Standards, Verfügbarkeit und Skalierung
Eine der Herausforderungen, wen es um die Bereitstellung von Updates geht, ist die Verfügbarkeit einer Verbindung zum Gerät. Viele inaktive Geräte gehen in einen "Schlaf"-Modus. Das bedeutet also, dass die Geräte selbst kein Update anstoßen können. In einem System, das mit einer zentralen Hub-Komponente arbeitet, wäre es möglich, ein Update anzustoßen, aber es gibt keinen industrieweiten und für alle gültigen Standard, sodass jeder Hersteller eine individuelle Lösung hat. Updates für IoT-Geräte dürfen dabei weder zu groß sein, noch allzulange Betriebsunterbrechungen hervorrufen. Geringe Dateigrößen sind aus verschiedenen Gründen erstrebenswert: Zum einen fehlt den meisten IoT-Geräten schlichtweg die Rechenleistung, um ein umfangreiches Update in kurzer Zeit zu installieren. Zum anderen sorgt ein "schlankes" Update auch dafür, dass das gesamte System skalierbar ist. Allzu umfangreiche Updates können für ein Netzwerk eine Belastung darstellen, wenn sie tausendfach heruntergeladen werden. Es wäre daher sinnvoll, industrieweit mit so genannten "Over the Air" (OTA) Updates zu arbeiten. Updates, die direkt vom Hersteller bereitgestellt würden, könnten potenzielle Fehlerquellen (wie Bedienfehler beim Installieren von Updates) beseitigen und kostenintensive Produktrückrufe verhindern. Es ist nicht so, dass hier keine Technologien existieren - das Gegenteil ist der Fall. Hersteller, die OTA-Updates bereitstellen, könnten sowohl die Sicherheit verbessern als auch neue Geschäftsmöglichkeiten erschließen, wie das Freischalten von "Premium-Features".
Eine potenzielle Schattenseite bezieht sich hauptsächlich auf das Risiko, dass ein Update die Kompatibilität mit anderen Komponenten aufbricht. Je nach dem Umfeld, in dem ein IoT-Gerät eingesetzt wird, kann ein Update auch dazu führen, dass ein Gerät neu zertifiziert werden muss. Das würde mehrere Geschäftszweige betreffen, wie etwa das Gesundheitswesen. Daher müssten auch die Zertifizierungsprozesse in diesem Bereich auf den Prüfstand gestellt und überholt werden, sofern das Internet of Things mit einbezogen werden soll.
Man sieht also, dass wesentlich mehr Faktoren eine Rolle in diesen Überlegungen spielen als man auf den ersten Blick meinen möchte.
Gemeinschaftliche Anstrengungen
Mehrere Dinge müssen passieren, wenn man die Sicherheit im Internet der Dinge nachhaltig verbessern will. Abgesehen davon, dass bereits in der Entwicklungsphase grundlegende Veränderungen angebracht sind, sollten Hersteller die Installation von Updates erleichtern oder zumindest ermöglichen. Da viele smarte Geräte (z.B. smarte Steckdosen) überhaupt keine Eingabemöglichkeit außer einem Knopf an der Vorderseite haben, kann die Lösung nur in solchen OTA-Updates bestehen. Wie die PC-Welt bereits demonstriert hat, ist es im Großteil der Fälle keine gute Idee, dem Benutzer die alleinige Verantwortung für die Installation von Updates aufzuerlegen. Da viele smarte Geräte sehr wahrscheinlich über einen längeren Zeitraum genutzt werden, müssen Hersteller sich auch verpflichten, für die gesamte Nutzungsdauer zumindest Sicherheitsupdates bereitszustellen, sofern die zugrundeliegende Hardware bestimmte Funktionserweiterungen nicht unterstützt. Es wird stellenweise auch noch komplexer: viele IoT-Ökosysteme können mittlerweile miteinander vernetzt werden, etwa mit Amazon Echo. Das heisst, die Verbindungen zwischen all diesen Systemen müssen ebenfalls korrekt abgesichert werden. Will jemand etwa auf dem Weg zur Arbeit prüfen, ob im Wohnzimmer das Licht ausgeschaltet ist, sind bereits mindestens zwei cloudbasierte Systeme involviert: der Benutzer kontaktiert das Amazon-System, das seinerseits wiederum das System des Herstellers kontaktiert, dessen Geräte man steuern möchte. Wird eine dieser Verbindungen kompromittiert oder die übermittelten Daten manipuliert, stellt dies unter Umständen ein Sicherheitsrisiko dar. Es gibt auch noch den Aspekt von Komfort vs. Sicherheit. Für jede Cloud-Plattform bräuchte man am besten ein eigenes Benutzerkonto. Beabsichtigt man, verschiedene Systeme miteinander zu vernetzen, so müssen diese Daten auch an entsprechender Stelle gespeichert werden, etwa in Amazon Echo. Besonders interessant wird es dann, wenn man der Gleichung auch noch smarte Türschlösser hinzufügt.
Derzeit bringt man in den USA ein neues Gesetz auf den Weg, welches Hersteller von IoT-Geräten zwingen soll, mehr Verantwortung für ihre Produkte zu übernehmen. Falls dieses Gesetz in dieser Form verabschiedet wird, müsste jedes Gerät ein unabhängiges Zertifikat aufweisen, das einen gewissen Sicherheitsstandard bescheinigt. Ebenso müsste ein Hersteller einen Prozess entwickeln, der unsichere Geräte deaktiviert. Er müsste auch Updates bereitstellen, die "bekannte Sicherheitslücken" (die in der NVD oder ähnlichen Datenbank aufgeführt sind) entweder schließen oder die Konnektivität eines Gerätes einschränken. Alternativ kann ein Hersteller auch eine Ausnahmegenehmigung beantragen, wenn er beweisen kann, dass eine Sicherheitslücke durch eine bestimmte Maßnahme nicht (mehr) ausgenutzt werden kann. Der Gesetzentwurf enthält sogar eine Passage, die festlegt, dass jegliche Sicherheitslücken offengelegt und "innerhalb eines angemessenen Zeitrahmens" behoben werden müssen. Auch die korrekte Absicherung von Verbindungen ist Gegenstand des Entwurfs. Hartkodierte und vom Benutzer nicht änderbare Zugangsdaten würden mit Inkrafttreten des Gesetzes illegal. Da es jedoch schwierig ist, die Entwicklung im Hard- und Softwarebereich selbst für die kommenden fünf Jahre vorauszuahnen, wird dies eine interessante Herausforderung. In jedem Fall Spricht der Gesetzentwurf viele von den Punkten an, die Sicherheitsexperten Sorgen bereiten.
Zusammenfassung und Ausblick: Eile mit Weile
Wenn es um das Thema Sicherheit geht, laufen viele Hersteller Gefahr, den Anschluss zu verpassen. Es wird jedoch keine leichte Aufgabe, das unübersichtliche Gewirr zu ordnen, aus dem das Internet of Things derzeit besteht. Dabei soll die Vielfalt auf gar keinen Fall auf der Strecke bleiben - es gibt da draußen jede Menge gute Ideen, die es wert sind, umgesetzt zu werden. Jeder soll so viele Wasserhähne und Staubsaugroboter mit WLAN-Anschluss und smarte Waschmaschinen haben, wie er will.
Fest steht jedoch: Wenn die Sicherheit ins Hintertreffen gerät, steht eine Menge Ärger ins Haus, sowohl für Unternehmen als auch für Privatleute. Natürlich wird es länger dauern, wenn ein Unternehmen es von vorneherein mit dem Sicherheitsgedanken entwickelt. Auf längere Sicht gesehen ist diese vermeintliche Langsamkeit jedoch der Schlüssel, um auf Sicherheitslücken schneller reagieren zu können. Statt zunächst in Hektik auszubrechen und in dieser Hektik entweder das Problem zu verschlimmern oder im gleichen Atemzug fünf neue zu schaffen, sollte mit Bedacht vorgegangen werden. Kostspielige Produktrückrufe und umständliche manuelle Updates würden damit zumindest reduziert, wenn nicht sogar komplett eliminiert. Sicherheit von vorneherein in den Entwicklungsprozess einzubeziehen dürfte keinen wesentlichen zeitlichen Mehraufwand bedeuten als der zeitliche Aufwand, der anfällt, wenn in Unternehmen ein vernachlässigtes Sicherheitskonzept im Nachhinein zu reparieren versucht.
All dies ist eine schöne Vorstellung - aber wir sind nicht am Ziel, noch nicht. Sicherheitsexperten haben den Herstellern unsicherer Geräte oft genug die Leviten gelesen und zahlreiche Verbesserungsvorschläge gemacht. Nun ist es an der Industrie, diese umzusetzen. Die beste Strategie, die sie hier verfolgen kann, ist, sich selbst in der Entwicklungsgeschwindigkeit ein wenig zu bremsen - um schneller auf neue Bedrohungen reagieren zu können - eben "Eile mit Weile".
Im zweiten Teil dieses Artikels werfen wir einen Blick auf den Konflikt zwischen Nutzbarkeit und Sicherheit im Internet der Dinge und betrachten zukünftige Strategien, die mehr Sicherheit bedeuten können.