Security-Prognosen 2018 Risiken der modernen IoT-Entwicklung

Autor / Redakteur: Udo Schneider / Peter Schmitz

Das Internet der Dinge (IoT) gehört aktuell zu den am stärksten wachsenden IT-Zweigen und wird in den kommenden Jahren auch für die IT-Sicherheit eine immer größere Rolle spielen. Dabei stehen besonders die Entwickler solcher Geräte in der Verantwortung, diese zukünftig sicherer zu machen. Sie sollten dabei vor allem auf eigene Entwicklungsarbeit vertrauen und weniger „fertige“ Services einkaufen.

Anbieter zum Thema

Fast alles was man zur Entwicklung kompletter IoT-Lösungs-Stacks braucht lässt sich als Dienst einkaufen. Das ist effizient, erhöht aber auch die Abhängigkeiten und das Sicherheitsrisiko.
Fast alles was man zur Entwicklung kompletter IoT-Lösungs-Stacks braucht lässt sich als Dienst einkaufen. Das ist effizient, erhöht aber auch die Abhängigkeiten und das Sicherheitsrisiko.
(Bild: Pixabay / CC0 )

Die Entwicklung von IoT-Lösungen umfasst weit mehr als „nur“ die Geräte. Die wenigsten Geräte existieren im „luftleeren Raum“. Vielmehr sind sie nur der für den Benutzer sichtbare Teil. Andere Herausforderungen wie der Transport von Daten oder auch ihre Bearbeitung im Backend stellen jeweils eigene Teile einer kompletten IoT-Lösung dar.

Damit einher gehen Anforderungen an die Hersteller solcher Lösungen, dort entsprechende Umgebungen zu entwickeln, aufzubauen und zu betreiben. Diese Anforderungen waren in der Vergangenheit durchaus eine Eintrittshürde für viele Firmen, die an der Entwicklung von IoT-Lösungen interessiert waren. Diese hatten zwar ein IoT-Geschäftsmodell, nicht aber die Ressourcen, dieses zu entwickeln – böse Zungen behaupten, dies hätte eine Art natürlichen Schutzwall dargestellt.

Von PaaS zu Backend-as-a-Service

Dieses Szenario ist bereits aus einem anderen Kontext bekannt: Vor dem Aufkommen von PaaS-Cloud-Diensten (Platform-as-a-Service) war das Ausrollen eigener Web-Applikationen sehr komplex. PaaS erlaubte es aber bald jedem, sehr schnell Applikationen zu entwickeln und in der Cloud zu betreiben. Die komplexen Aufgaben wie Datenbankverwaltung, Netzwerküberwachung, Hochverfügbarkeit und vieles mehr waren einfach Teil des PaaS-Angebotes. Aber auch andere Komponenten von Webapplikationen wie das Versenden von (Massen-)E-Mails, Website Monitoring, oder A/B Usability Tests wurden alsbald als Dienst aus der Cloud angeboten, den man nur noch an seine Webapplikation andocken musste. In letzter Konsequenz führte dies zu "Backend-as-a-Service"-Angeboten, bei denen sämtliche Backend-Funktionen zentral bereitgestellt und einfach mit verschiedenen Frontends wie Web oder Mobile genutzt werden.

Dies führte zu einer Art komponentenbasierter Entwicklung von Webanwendungen, bei denen viele der Komponenten nicht nur von Drittherstellern kamen, sondern auch von diesen als Dienst angeboten wurde. Letztendlich gleichen damit viele dieser Webanwendungen einem großen Puzzlespiel, bei dem der Entwickler nur noch für den Klebstoff zwischen den einzelnen Teilen und die Kerngeschäftslogik sorgen musste.

Diese Art der Entwicklung ist natürlich deutlich schneller, als wenn alle Komponenten selbst entwickelt werden müssten. Allerdings begeben sich die Nutzer dieser Dienste damit auch in Abhängigkeit von Drittanbietern – unter Umständen mit katastrophalen Folgen, sollte einer dieser Dienste einmal ausfallen oder gar vom Markt verschwinden. Zudem werden damit natürlich auch alle vorhandenen Sicherheitsrisiken mit übernommen. So kann man selbst bei bekannten Sicherheitslücken in einem der Dienste eigentlich nur darauf hoffen, dass der Anbieter diese zeitnah schließt. Diese selbst zu schließen ist hingegen kaum praktikabel. Passiert dies nicht, kann dies direkte Konsequenzen für die Sicherheit der eigenen Applikation und deren Daten haben.

IoT-as-a-Service

Exakt die gleiche Art von „Puzzlespiel“-Entwicklung hält momentan in einer noch nicht dagewesenen Komplexität Einzug in die Entwicklung von IoT-Lösungen. Neue Angebote für deren Hersteller bieten alle nur denkbaren Dienstleistungen, angefangen von kleinsten Funktionalitäten auf Geräteebene über Beschaffung, Vertrieb, Lagerung und Transport der Hardware bis hin zum Betrieb der Backend-Systeme in der Cloud. De facto reicht heute eine Idee, was die IoT-Lösung machen soll – praktisch alles andere gibt es als Dienstleistung.

Doch ähnlich wie im Umfeld der PaaS-Entwicklung ist auch hier nicht alles Gold, was glänzt. Natürlich erfordert die Entwicklung einer IoT-Lösung „in-house“ Wissen auf vielen Gebieten wie Betriebssysteme, Anwendungsentwicklung, oder den Betrieb des Backends. In diesen Bereichen jedoch nur auf Dienstleister zu vertrauen führt zu großer Abhängigkeit und damit verbunden einer geringeren Kontrolle und Sicherheit.

Abhängigkeiten minimieren

Daraus zu schließen, dass alle eine IoT-Lösung umfassenden Technologien und Anwendungen nun ausschließlich „in-house“ zu entwickeln sind, ist sicherlich nicht sinnvoll. Eine Begrenzung der genutzten Dienste stellt jedoch eine gute Möglichkeit, um Abhängigkeiten zu reduzieren und die Sicherheit zu erhöhen. Außerdem ist es auf jeden Fall ratsam, bei der Entwicklung die genutzten Dienste zu abstrahieren. Dabei werden die Anwendungen gegen selbstdefinierte Interfaces geschrieben. Konkrete Implementierungen dieser Interfaces greifen auf die jeweiligen Dienste zu. Bei einem späteren Wechsel des genutzten Dienstes ist dann keine umfassende Änderung am Applikationscode notwendig, sondern „nur“ eine Implementierung des Interfaces für diesen neuen Dienst.

Zusammenfassung

Die Entwicklung von kompletten IoT-Lösungs-Stacks ist heute einfacher denn je: Fast alles lässt sich als Dienst einkaufen. Nutzt man solche Angebote, muss man sich aber auch der Konsequenzen bewusst sein. Jede Nutzung von externen Diensten erhöht die Abhängigkeiten und damit auch eventuelle (Sicherheits-)Risiken. Beim Einsatz solcher Angebote ist also die möglicherweise eingesparte Entwicklungszeit durch die Nutzung von Diensten mit den damit verbunden erhöhten Abhängigkeiten und Risiken abzuwägen.

Über den Autor: Udo Schneider ist Security Evangelist beim japanischen Security-Anbieter Trend Micro.

(ID:45060589)