Unternehmen Plattform Mobil Industrie Kontakt

Wer hat eigentlich die Kontrolle über Ihre Systeme?

Für kritische oder sensible Anwendungen ist Standardsoftware meist ungeeignet. Einerseits erlauben Sicherheitslücken Angreifern die Kontrolle zu übernehmen, anderseits erzwingen Sicherheitsupdates Anpassungen und Ausfallzeiten. Unsere komponentenbasierte Plattform ermöglicht robuste Systeme, in denen unsichere Software durch formal bewiesene Komponenten geschützt wird.

Glühbirne

Über uns

Wir sind ein junges, gründergeführtes Unternehmen, dass als Spin-Off der Professur Datenschutz und Datensicherheit an der TU Dresden einen starken Fokus auf aktuelle Forschungsfragen hat.

Unsere Mission sind IT-Systeme, die sicher und geeignet für eine vollständig vernetzte Welt sind. Dazu entwickeln wir die Componolit Open-Source Plattform. Zwei Anwendungsfälle stehen im Mittelpunkt: ein vertrauenswürdiges Betriebssystem für mobile Geräte und die Absicherung von Industrieanwendungen.

Zahnrad

Plattform

Durch die Vielzahl funktionaler Anforderungen wird Software immer komplexer. Damit steigt auch die Wahrscheinlichkeit für ausnutzbare Schwachstellen. Angriffe auf einen Teil eines Systems können sich auf Grund der monolithischen Architektur auf andere, kritische Teile ausweiten.

Die Componolit Plattform setzt auf eine komponentenbasierte Architektur, in der Anwendungen grundsätzlich isoliert ablaufen. Legacy-Software kann durch unterschiedliche Kompatiblitätsschichten weiter verwendet und durch vertrauenswürdige, formal verifizierte Komponenten abgesichert werden.

Weiterlesen
Industrieroboter

Industriesicherheit

Industrieanlagen haben oft eine Lebensdauer von mehreren Jahrzehnten. Gleichzeitig hält in diese Domäne mit Industrie 4.0 und IoT das Internet und vernetzte IT Einzug. Hier sind Sicherheitslücken und monatliche Patchzyklen die Regel.

Durch die Kombination von vertrauenswürdigen Filtern, Ablaufumgebungen für Legacy-Software und der parallelen Ausführung verschiedener Softwarestände, ermöglicht die Componolit Plattform den langfristigen sicheren Betrieb von Industrieanwendungen.

Weiterlesen
Smartphone mit Schlüssel

Mobilsicherheit

Smartphones sind so verwundbar wie sie nützlich sind. Schon der nächste unbedachte Klick kann zum Verlust vertraulicher Daten, hohen Kosten oder Angriffen auf weitere Geräte führen. Grund dafür sind archaische Systemarchitekturen und Entwicklungsmethoden bei immer komplexeren Anforderungen.

Das Ziel der Componolit Plattform ist ein Höchstmaß an Sicherheit für den Anwender ohne die Nutzerfreundlichkeit seines Gerätes einzuschränken.

Weiterlesen

Componolit: Eine Plattform für vertrauenswürdige Systeme

Zahnrad

Durch die Vielzahl funktionaler Anforderungen wird Software immer komplexer. Gleichzeitig sind mehr Geräte mit dem Internet verbunden und damit entfernt erreichbar. Dadurch steigt die Wahrscheinlichkeit, dass Schwachstellen vorhanden sind und von Angreifern ausgenutzt werden können. Auf Grund der monolithischen Architektur können sich Angriffe auf einen Teil des Systems auf andere, kritische Teile ausweiten.

Die Componolit Plattform realisiert eine komponentenbasierte Architektur auf Basis des Genode OS Frameworks. Anwendungen laufen hier grundsätzlich getrennt voneinander ab und haben ausschließlich Zugriff auf Ressourcen die ihnen durch eine Policy freigegeben wurden. Gerätetreiber, Dateisysteme, Netzwerkstacks und andere Dienste, die monolithische Kerne sehr komplex und fehleranfällig machen, werden als unprivilegierte Anwendung isoliert ausgeführt.

Legacy-Software kann durch unterschiedliche Kompatiblitätsschichten weiter verwendet und durch vertrauenswürdige, formal verifizierte Komponenten abgesichert werden.

Wieso Sicherheitsrisiken in Kauf nehmen wenn man Systeme inhärent sicher konstruieren kann?

Willkommen in der Vergangenheit.

Wieso ist die Entwicklung sicherer Systeme eine so große Herausforderung? Der erste voll programmierbare Computer wurde vor über 70 Jahren gebaut. Seitdem haben computergesteuerte Sonden andere Planeten erforscht und selbstfahrende Autos sind nicht mehr reine Fiktion. Man sollte annehmen, die Informatik hätte es seitdem geschafft robuste Systeme hervorzubringen.

Die Welt der IT-Systeme ist enorm schnelllebig. Täglich kommt neue Hardware auf den Markt für die Softwareanpassungen notwendig ist. Gleichzeitig werden Nutzeranforderungen und damit Anwendungen ständig vielfältiger. Folglich muss in immer kürzerer Zeit immer komplexere Software entwickelt werden.

Die Sprachen und Systemarchitekturen mit denen wir heute versuchen diese wachsenden Anforderungen zu erfüllen, sind im Grunde über 50 Jahre alt. Weit verbreitete, unsichere Programmiersprachen die dem Entwickler kaum helfen Fehler zu vermeiden, führen regelmäßig zu kritischen Schwachstellen.

Fatalerweise schützen die ebenso alten monolithischen Architekturen kaum vor der Ausbreitung dieser Fehler. Eine Schwachstelle in einem Teil eines Systems kann damit auch die Sicherheit anderer Teile bedrohen. Außerdem sind Fehler deutlich schwerer auszuschließen umso größer und komplexer eine Software ist.

Mit jeder hinzugefügten Funktion werden unsere Systeme deshalb ein wenig unsicherer. Hersteller die versuchen ihre Produkte zeitnah zu patchen, scheitern regelmäßig am hohen Aufwand. Auch Anbieter die monolithische Software härten, waren in der Vergangenheit wiederholt von kritischen Lücken betroffen. Besonders riskant ist Software die nichtöffentlich entwickelt wird, da sie weniger Reviews und externe Tests erfährt.

Mit den Techniken der 1970er Jahre werden wir die Sicherheitsprobleme von morgen nicht lösen können.

Secure Systems Engineering!

Solange ein Business Case oder eine andere Motivation existiert, werden Angreifer versuchen Geräte unter ihre Kontrolle zu bringen und für ihre Zwecke zu missbrauchen. Den international teils sehr professionell tätigen Akteuren ihr Handwerk zu legen, ist nicht aussichtsreich. Die einzige Chance uns vor Angriffen zu schützen, besteht in Systemen die weitaus robuster und sicherer sind als bisher.

Ein effektives Design für robuste Systeme sind komponentenbasierte Architekturen wie das von uns eingesetzte Genode OS Frameworks. Softwarekomponenten werden hier isoliert voneinander ausgeführt, interagieren ausschließlich über wohldefinierte Schnittstellen und nur mit Komponenten mit denen sie auch kommunizieren dürfen. Da Fehler sich nicht direkt auf andere Komponenten auswirken, können vertrauenswürdige Komponenten realisiert werden die anderen Komponenten Dienste anbieten. Während kritische Komponenten korrekt sein müssen, haben Fehler in unvertrauenswürdigen Komponenten keine Auswirkungen auf die Sicherheit.

Die Isolation wird in der Regel durch einen Mikrokern erreicht, der sich auf Ressourcenverwaltung, Isolation von Prozessen und Interprozesskommunikation beschränkt. Durch seine reduzierte Funktionalität und geringe Größe kann er sehr genau auf Fehler geprüft oder sogar mathematisch bewiesen werden.

Die Sicherheit eines komponentenbasierten Systems hängt neben dem Mikrokern entscheidend von den kritischen Komponenten ab. Um die Korrektheit der kritischen Komponenten in unseren Systemen zu gewährleisten, integrieren wir die sichere Programmiersprache SPARK mit dem Genode OS Framework.

SPARK ist eine Sprache die durch ihre Eigenschaften wie strenger Typisierung oder dem Fehlen von impliziter Konvertierung viele Programmierfehler konstruktiv vermeidet. Mit dem SPARK Toolset können Eigenschaften der Software formal nachgewiesen werden. Angefangen bei korrekter Initialisierung und Datenfluss, über die Abwesenheit von Laufzeitfehlern bis hin zu funktionaler Korrektheit von Algorithmen.

Vertrauen Sie Ihrem Smartphone?

Smartphone mit Schlüssel

Smartphones sind der digitale Mittelpunkt unseres Lebens. Im Beruf verwalten wir damit Termine, versenden E-Mails und teilen vertrauliche Dokumente. Privat nutzen wir sie zum Einkaufen, zum Fotografieren oder um Freunde zu kontaktieren. Die Möglichkeiten scheinen unbegrenzt. Die Heizung unterwegs einschalten? Geld überweisen? Das Auto starten? Mit dem Smartphone heute kein Problem.

Leider ist es hochriskant diese Geräte für derart sensible Aufgaben zu verwenden. Angreifer können umfassende Kontrolle erlangen und dadurch Dokumente oder Kreditkartendaten stehlen, kostenpflichtige SMS versenden, den Nutzer Abhören oder mit der Verschlüsselung seiner Daten erpressen. Zum Verlust von Geschäftsgeheimnissen und der Privatsphäre kommen finanzielle Folgen und die mögliche Ausbreitung auf weitere Smart Devices.

Bislang gibt es keine wirksamen Maßnahmen zur Absicherung von Smartphones. Experten nehmen die Nutzer in die Pflicht und raten zu Vorsicht beim Öffnen von Dateien und Links, Antivirensoftware und regelmäßigen Backups. Während Backups sehr sinnvoll sind, schützen sie nicht vor Datendiebstahl oder finanziellen Folgen. Antivirenprogramme sind durch ihre weitreichenden Privilegien, fehlende Wirksamkeit und eigene Schwachstellen zunehmend Teil des Problems statt der Lösung.

Letztlich sind die Nutzer mit diesem Problem auf sich gestellt. Doch sollte man von Endanwendern wirklich erwarten, dass sie gefährliche Links und Dateien selbst erkennen? Wir denken nicht.

Die Entwicklung einer sicheren, mobilen Plattform bringt enorme Herausforderungen mit sich. So muss trotz gesteigerter Sicherheit die Benutzbarkeit des Systems gewahrt werden. Für die Akzeptanz und Lebensfähigkeit einer Plattform ist die Verfügbarkeit von relevanten Anwendungen unumgänglich. Kompatibilität zu Software aus bekannten App Stores ist somit ein wichtiges Designziel.

Zu einer vertrauenswürdigen Mobilplattform gehört neben der Absicherung der Softwarekomponenten auch eine Aufteilung der Hardware. So ist in aktuellen Mobiltelefonen der Baseband-Prozessor an den gleichen Speicher angebunden wie der Application-Prozessor. Eine ganze Reihe von weiteren zentralen Forschungsfragen ergibt sich aus dem Problem, Peripherie über wohldefinierte Schnittstellen an den Anwendungsprozessor anzubinden. Dabei ist eine Schnittstelle für externe Netzwerkkomponenten wie WiFi-Chipsätze oder Mobilfunkprozessoren zu designen, die gegenüber aktuellen Designs in ihren Rechten eingeschränkt ist.

Zusätzlich zu sämtlichen Eigenschaften der Sicherheits- und Kompabilitätsarchitektur müssen Fragen zum Energiemanagement von Grund auf analysiert werden um praktisch einsetzbare Geräte zu ermöglichen.

Androidkompatibilität

Android bestimmt als Mobilbetriebssystem den Großteil des Mobilfunkmarktes. Ein zentrales Ziel ist daher eine Unterstützung der Android API zu gewährleisten, so dass Android Anwendungen unmodifiziert ausgeführt werden können. Dies erfordert Forschung zur:

  • Symbiose des Android-Kommunikationsmodells mit dem Kommunikationsmodell der komponentenbasierten Plattform (Genode OS Framework)
  • Ausführung der Android Runtime zur Bereitstellung einer leichtgewichtigen Android-kompatiblen Umgebung
  • Isolation zentraler Android Dienste auf dem Genode OS Framework

Hardwareisolation

Die enge Verzahnung des Anwendungsprozessors mit dem Baseband-Prozessor erlaubt es Angreifern, welche aus dem Funknetz die Kontrolle über den Baseband-Prozessor übernehmen, volle Kontrolle über den Anwendungsprozessor und damit beliebige Teile des Systems zu erlangen. Die Forschung zur Vorbeugung entsprechender Angriffe (nicht nur vom Baseband-Prozessor) umfasst:

  • Analyse der Auswirkungen zur Auftrennung zuvor eng verzahnter Hardware
  • Definition sicherer Kanäle zwischen dem Anwendungsprozessor und der Peripherie
  • Erstellung korrekter/verifizierter Komponenten zur Überwachung der Kommunikation

Energieverwaltung

Mobile Geräte sind wenig sinnvoll wenn ihre Akkulaufzeit unter normaler Beanspruchung den Anforderungen der Nutzer nicht genügt. In diesem Rahmen bieten komponentenbasierte Systeme interessante Möglichkeiten zur Optimierung des Energiemanagements:

  • Wie können Softwarekomponenten in ihrem Zustand gesichert und kurzfristig beendet werden?
  • Wie spielen Funktionen zum Energiemanagement in den Prozessoren mit dem Möglichkeiten der komponentenbasierten Plattform zusammen?

Weitere Forschungsfragen

Neben diesem forschungsgetriebenen Design werden weitere, zukünftig relevante Fragestellungen untersucht. So sind komponentenbasierte Systeme insbesondere dann vertrauenswürdig, wenn sicherheitsrelevante Teile der eingesetzten Software isoliert in möglichst kleinen, überprüfbaren Komponenten implementiert werden. Laufende Forschung zum Thema Softwareauftrennung untersucht folgende Fragestellungen:

  • Welche Teile der Software sind sicherheitsrelevant?
  • Wie können diese Teile effizient identifiziert werden?
  • Wie kann eine Optimierung hin zu einer kleinen Trusted Computing Base erreicht werden?
  • Wie ist eine Optimierung in Form eines Trade-Offs zwischen Komponentengröße und Mehraufwand durch erhöhte Kommunikationskosten der erzeugten Komponenten zu erreichen?

Software, so verlässlich konstruiert wie Ihre Anlagen.

Industrieroboter

In der Vergangenheit waren Anlagen weitgehend von externen Netzwerken isoliert, so dass vorhandene Schwachstellen schwerer auszunutzen waren. Mit der steigenden Zahl an Fernwartungszugängen, aber insbesondere durch die Integration externer Anwendungen im Zuge von Industrie 4.0 hat sich das geändert.

Betriebssystem und Applikationen auf Steuerrechnern werden als integraler Bestandteil der Anlage verstanden. Während Industrieanlagen auch nach Jahren unverändert funktionieren, ist die verwendete Software meist veraltet und enthält Schwachstellen, die vom Hersteller nicht mehr behoben werden.

Daraus ergeben sich neue Risiken, die in früheren isolierten Netzwerken weniger kritisch waren: Durch Softwarefehler und unzureichende Filterung in neuen externen Industrie 4.0 Anwendungen, könnten Angreifer auch auf Anlagennetze zugreifen. Dadurch kann der Betrieb gestört, die Anlage beschädigt oder es können vertrauliche Daten entwendet werden.

Versucht man das Risiko durch regelmäßige Updates zu mindern, ergibt sich eine weitere Herausforderung. Aktualisierungen des Betriebssystems erfordern oft den Neustart von Diensten oder des gesamten Gerätes. Darüber hinaus können Updates Anpassungen an Anwendungen notwendig machen was weitere Ausfallzeiten nach sich zieht. Oftmals muss eine Anlage nach einem Betriebssystemupdate neuzertifiziert werden, falls dies durch den Hersteller überhaupt vorgesehen ist.

Die Componolit Plattform kombiniert Strategien um die genannten Risiken zu minimieren. Mittels anwendungsspezifischer vertrauenswürdiger Filter wird die Kommunikation mit externen Systemen abgesichert. Durch Virtualisierung und stabile Schnittstellen kann Legacy-Software sicher betrieben und zusammen mit neuen Komponenten verwendet werden.

Schutz vor Angriffen

Vor allem älteren Anwendungen fehlen oft Sicherheitsfunktionen wie Authentisierung, Verschlüsselung oder ein Rollenkonzept, die bei moderner Software heute Standard sind. Durch die Annahme ausschließlich mit lokalen, vertrauenswürdigen Partnern zu interagieren, validieren viele Programme ihre Eingaben nur ungenügend. Angreifer können diese Schwachstellen ausnutzen um Kontrolle über die Software und damit die Anlage zu erlangen.

Auf der Componolit Plattform wird Software, die nicht aktualisiert werden kann, durch vertrauenswürdige Komponenten geschützt. Die Interaktion zwischen diesen Komponenten und der zu schützenden Software erfolgt durch eine lokale, vom Mikrokern abgesicherte Schnittstelle. In Richtung Netzwerk agiert die Komponente als Intermediär, der beispielsweise fehlende Verschlüsselung nachrüstet oder Protokolle validiert und fehlerhafte Nachrichten verwirft um schwache Anwendungen zu schützen.

Stabile Anwendungsplattform

Komponenten sind auf der Componolit Plattform lose durch sogenannte Sessions gekoppelt. Benötigt eine Komponente einen bestimmten Dienst, fragt sie eine Session bei ihrem Elternprozess an. Dieser vermittelt einen entsprechenden Anbieter, ohne dass dessen Identität bekannt wird.

Durch diese lokale Sicht, können Komponenten mit kompatiblen Sessions beliebig neu kombiniert werden. Sogar verschiedene Softwareversionen können gleichzeitig in getrennten Unterbäumen des Systems ausgeführt werden. Mittels Filterkomponenten ist es möglich, alte Schnittstellen transparent in neue Schnittstellen zu übersetzen ohne vorhandene Software anpassen zu müssen.

Dadurch sind langzeitstabile Systeme möglich, in denen Subsysteme unverändert betrieben werden können, während Teile angepasst werden. Die Plattform bietet verschiedene Adaptionsschichten für Legacy-Software. Unmodifizierte Betriebssysteme, Android Apps und Java Anwendungen werden virtualisiert ausgeführt. POSIX und Qt-Anwendungen können für die Plattform neu übersetzt werden.

Impressum

Componolit GmbH
Königsbrücker Straße 124
01099 Dresden

Geschäftsführer

Alexander Senier

Verantwortlicher i. S. d. §55 Abs. 2 RStV

Alexander Senier
Königsbrücker Straße 124
01099 Dresden

Telefon: +49 351 417241990
E-Mail: webmaster@componolit.com

Kontakt

Telefon: +49 351 417241990
E-Mail: kontakt@componolit.com

Handelsregister

Amtsgericht Dresden
HRB 36670
Sitz Dresden

Umsatzsteueridentifikationsnummer

DE312113634