Eine neue Technik ermöglicht es, Komponenten einer Software mit geringem Rechenaufwand voneinander zu isolieren
Passwörter, Kreditkartennummern oder kryptografische Schlüssel in Computerprogrammen zu sichern, benötigt künftig weniger Rechenleistung als bislang. Forscher des Max-Planck-Instituts für Softwaresysteme in Kaiserslautern und Saarbrücken haben eine neue Technik namens ERIM entwickelt, um die Komponenten einer Software voneinander zu isolieren. Auf diese Weise lassen sich sensible Daten vor Hackern schützen, wenn sie etwa von Onlinediensten verarbeitet werden. Die neue Methode erfordert drei bis fünfmal weniger Rechenaufwand als die zweitbeste Isolationstechnik. Damit wird es für Onlinedienste wie Google oder Facebook praktikabler, die Technik anzuwenden. Das war für Usenix, einer US-amerikanischen Fachgesellschaft für Informatik, und Facebook Anlass genug, die Forscher mit dem Internet Defense Prize auszuzeichnen.
Computerprogramme ähneln einer Burganlage. Wie eine Festung durch massive Mauern, Wassergräben und eisenbewehrte Tore geschützt wird, sollen Firewalls und andere Sicherheitstechniken verhindern, dass Cyberkriminelle Zugang zu Softwareanwendungen finden. Und so wie eine einzige schlecht geschützte Pforte oder ein vermeintlich geheimer Fluchttunnel manchen Belagerern die Einnahme einer Burg ermöglicht hat, reicht auch Hackern oft eine kleine Sicherheitslücke, um sich Zugang zu allen Komponenten einer Software zu verschaffen. Im schlimmsten Fall erbeuten sie dann auch die Daten, die ihnen Zugang zu Nutzerkonten eröffnen oder gar Kreditkartenzahlungen ermöglichen. So verschaffte etwa der Heartbleed-Fehler in der weitverbreiteten OpenSSL-Verschlüsselungssoftware Angreifern Zugriff auf Benutzernamen und Passwörter verschiedener Onlinedienste und Programme.
Software-Komponenten isoliert wie Festungsanlagen
Um solche fatalen Angriffe zu verhindern, können Software-Entwickler ebenfalls ähnlich vorgehen wie Baumeister ausgeklügelter Festungen. Sie können die verschiedenen Komponenten einer Software voneinander isolieren, ganz so wie verschiedene Mauerringe Feinden den direkten Zugang zum Herzstück einer Festung verwehren sollen, sollten sie den äußeren Schutzwall überwinden.
Aber klar, je anspruchsvoller der Schutz, desto höher der Aufwand: Bei Burgen brauchte es dafür mehr Baumaterial und Wachen, bei einer Software steigt die Rechenzeit. So benötigen gängige Isolationstechniken für Computerprogramme rund 30 Prozent mehr Leistung, entsprechend mehr Server müssen etwa Onlinedienste betreiben. „Viele Dienste sehen das nicht ein und verwenden daher keine Isolationstechniken“, sagt Deepak Garg, leitender Wissenschaftler am Max-Planck-Institut für Softwaresysteme. „Unsere Isolationstechnik benötigt nur fünf Prozent mehr Rechenzeit, sodass sie für Unternehmen sehr attraktiv wird.“ So wundert es nicht, dass die Forscher den mit 100000 US-Dollar dotierten Internet Defense Prize 2019 erhalten, mit dem Usenix und Facebook herausragende Entwicklungen für die Sicherung des Internet auszeichnet.
Der Speicher wir mit relativ geringem Aufwand geteilt
Das Team um Deepak Garg und Peter Druschel, Direktor am Max-Planck-Institut für Softwaresysteme, kombiniert in seiner Isolationsmethode eine Hardwareeigenschaft von Prozessoren des Halbleiterunternehmens Intel auf einfallreiche Weise mit einer Softwaremethode. Intel verwendet auf seinen Prozessoren Schutzschlüssel für Speicher, unter Fachleuten bekannt als memory protection keys, kurz MPK.
Mit den MPK alleine lassen sich die Komponenten jedoch nicht zuverlässig isolieren, weil sie findigen Hackern noch Angriffspunkte bieten. Die Max-Planck-Forscher setzen die Methode daher zusammen mit einem anderen Verfahren ein, dem Umschreiben von Instruktionen, Englisch: instruction rewriting. „Damit lässt sich der Code einer Software so umschreiben, dass ein Angreifer die ‚Mauern‘ zwischen Software-Komponenten nicht mehr umgehen kann“, sagt Peter Druschel. „Der eigentliche Zweck des Codes wird dabei jedoch nicht verändert.“ Nun kombinieren sie die beiden Verfahren, um damit den Speicher einer Softwareanwendung mit relativ geringem Rechenaufwand zu teilen und die Teile voneinander zu isolieren. Andere Isolationstechniken greifen zu diesem Zweck auf zentrale Steuerungseinheiten einer Software zu, was mit größerem Rechenaufwand verbunden ist. „Softwareentwickler befinden sich in einem ständigen Wettlauf mit Cyberkriminellen”, sagt Peter Druschel. „Der Schutz der Daten muss aber auch noch praktikabel sein. Dafür sind systematische aber manchmal unkonventionelle Ansätze nötig, wie wir ihn mit ERIM verfolgt haben.“