iX 3/2018
S. 103
Wissen
Anwendungssicherheit
Aufmacherbild

Selbstverteidigung zur Laufzeit

Gut abgewehrt

Anwendungen können sich nun selbstständig vor Angriffen schützen – das zumindest versprechen Hersteller, die auf die „Runtime Application Self-Protection“ setzen.

Ein neuer Ansatz, die „Runtime Application Self-Protection“ (RASP), soll Anwendungen mit der Fähigkeit ausstatten, Angriffe auf Schwachstellen zur Laufzeit zu erkennen und zu verhindern, dass sie erfolgreich sind. Selbst Angriffe auf bisher unbekannte Schwachstellen (Zero-Day-Exploits) sollen entdeckt und abgewehrt werden.

Das klingt nun so, als könnte RASP wie von Zauberhand sämtliche Anwendungen von heute auf morgen unangreifbar machen und alle Sicherheitsprobleme aus der Welt schaffen. Aber geht das wirklich? Und wie soll das funktionieren? Bevor sich der Artikel diesen Fragen widmet, einige Worte zum Begriff an sich.

Analysten von Gartner definieren RASP als Sicherheitsmechanismus, der sich in eine Anwendung beziehungsweise deren Ausführungsumgebung einklinkt und dadurch die Anwendung von innen heraus vor Angriffen schützt (dieser und alle weiteren Links des Artikels sind unter ix.de/ix1803103 zu finden). Diese Definition klingt ziemlich abstrakt und weit gefasst, da sie viele technische Fragen aufwirft, etwa zu den unterstützten Verfahren oder den verwendeten Implementierungen. Andererseits bringt die Definition ziemlich gut auf den Punkt, was RASP von bisherigen Verfahren unterscheidet: die Integration der Schutzmechanismen in die zu schützende Anwendung und das Operieren der Mechanismen aus dem Inneren heraus.

Auf diese Art können viele Informationen aus dem Anwendungskontext dazu verwendet werden, Angriffe zu identifizieren. Außerdem lassen sich diese dann aus dem Inneren heraus zur Laufzeit blockieren. Zu den kontextuellen Informationen, die ausschließlich den RASP-basierten Schutzsystemen vorbehalten sind, zählen sowohl die intern verarbeiteten Daten und die verwendeten Codepfade der Anwendung als auch ihre Dateioperationen und Zugriffe auf externe Bibliotheken oder das Betriebssystem.

Mit einem Software Development Kit lassen sich die RASP-Mechanismen direkt in den Quellcode der Anwendung einbauen (Abb. 1).

Unternehmen, die Sicherheitsprodukte unter dem Schlagwort RASP vermarkten, konzentrieren sich hauptsächlich auf in Java geschriebene Webanwendungen, die insbesondere im Unternehmensumfeld verbreitet sind. Daher beschränkt sich dieser Artikel ebenfalls auf Java-Anwendungen, um die verschiedenen RASP-Ansätze technisch vergleichen zu können. Dennoch gibt es einige Hersteller, die RASP bereits für andere Plattformen anbieten, etwa für PHP, Node.js, .NET oder Python. Nachfolgend werden drei verschiedene Ansätze für Java-Anwendungen vorgestellt (siehe Abbildungen). Beim ersten werden die RASP-Mechanismen direkt in den Quellcode der zu schützenden Anwendung einprogrammiert (Abbildung 1). Ein Hersteller aus dieser Sparte (Prevoty) stellt dafür ein Software Development Kit (SDK) zur Verfügung. Das SDK dient dazu, an kritischen Stellen im Programmcode, für die Überprüfungen gewünscht sind, Prevotys Funktionen zu integrieren. Das geschieht, indem man einen API-Aufruf für die Analysekomponente einfügt.