Injection-Angriffe, wie bspw. SQL-Injection oder Cross-site Scripting, sind vielfältig und stellen eine große Bedrohung für (Web-)Applikationen und ihre Nutzer
dar – für Privatpersonen gleichermaßen wie für Unternehmen. Bisherige Arbeiten
haben klar gezeigt, dass die Idee des Taint-Trackings – Werte zu markieren und
ihren Fluss durch die Applikation zur Laufzeit zu überwachen – effektiv sind bzgl.
der Erkennung einer Vielzahl solcher Verwundbarkeiten sowie der Verhinderung
einer Ausnutzung.
Allerdings sind aktuelle Taint-Tracking-Systeme für Java SE/Java EE noch
nicht wirklich für den produktiven Einsatz geeignet. Die vorliegende Arbeit setzt
sich mit den Anforderungen eines solchen Umfeldes auseinander und stellt, in Form
von Juturna, einen neuen Ansatz vor. Dieser versucht, jenen Anforderungen unter
Verwendung etablierter Techniken und neuer Ideen gerecht zu werden.
Eines der großen, aktuellen Probleme von Taint-Tracking ist dabei der immanete Overhead bzgl. Berechnungsaufwand und Speicherverbrauch. Daher besteht Juturna nicht nur aus einem funktionsreichen, aber dennoch effizienten, dynamischen
Taint-Tracking-System, welches versucht möglichst “minimal-invasiv” gegenüber
einer zu beschützenden Applikation und dem JRE zu sein, sondern enthält auch optionale Techniken aus dem Bereich der statischen Informationsflusskontrolle (IFC).
Dieser Ansatz soll Bereiche innerhalb einer Applikation finden, welche garantiert
frei von maliziösen Flüssen sind. Dadurch wird ein selektives Taint-Tracking mit
reduziertem Overhead realisiert. Juturna wird somit, sofern gewünscht, zu einem
hybriden System, welches sowohl dynamische als auch statische Analyseverfahren
verwendet.
Schlüsselworte
Statische Analyse,
Dynamische Analyse,
Programmanalyse,
Softwaresicherheit
Veröffentlichungen
Betreuer
Studenten