Abstract: |
Web applications are the most important gateway to the Internet. Billions of users are relying on them every day and trusting them with their most sensitive data. Therefore, ensuring the security and privacy of web applications is of paramount importance. Traditionally, the server-side code of websites was written in languages such as PHP or Java for which security issues are well studied and understood. Recently, however, full-stack JavaScript web applications emerged, which have both their client-side and server-side code written in this language. We hypothesize that there are several unique properties of full-stack JavaScript web applications that pose a serious challenge for the security analysts: the new threat model for JavaScript, the excessive code reuse, the prevalence of code transformations, and the existence of complex full-stack threats. In this dissertation, we support this thesis by performing several in-depth studies of the JavaScript ecosystem and by proposing multiple improvements to the state-of-the art practices. First, we discuss two types of security vulnerabilities that are aggravated by the new threat model: injections and regular-expression denial of service. Second, we show that excessive code reuse in the JavaScript ecosystem increases the chance of relying on malicious or vulnerable code. Third, we provide evidence that code transformations are widespread and that full-stack threats exist. Finally, we propose several improvements for techniques aimed at hardening web applications: cost-effective consideration of implicit flows, the extraction of taint specification for third-party libraries, and pragmatic program analysis for defending against injections. The problem of securing full-stack JavaScript web applications is far from settled, but we hope that the current dissertation serves as motivation for future work to consider this increasingly important class of applications. In particular, we argue for holistic approaches that consider full-stack and cross-library information flows. |
Alternative Abstract: |
Alternative Abstract | Language |
---|
Webanwendungen sind die wichtigste Schnittstelle zum Internet. Milliarden Nutzer sind täglich auf sie angewiesen und vertrauen ihnen ihre sensiblen Daten an. Deshalb ist es besonders wichtig, die Sicherheit und den Datenschutz von Webanwendungen zu gewährleisten. Der serverseitige Code von Websites wurde üblicherweise in Sprachen wie PHP oder Java geschrieben, deren Sicherheitslücken gut erforscht und nachvollziehbar sind. In letzter Zeit sind jedoch Full-Stack-JavaScript-Webanwendungen aufgetreten, deren clientseitiger und serverseitiger Code in dieser Sprache geschrieben ist. Unsere Hypothese ist, dass viele Eigenschaften von Full-Stack-JavaScript-Webanwendungen eine ernsthafte Herausforderung für einen Sicherheitsanalysten darstellen: Das neue Bedrohungsmodell für JavaScript, die übermäßige Wiederverwendung von Code, verbreitete Code-Transformationen und komplexe Full-Stack-Bedrohungen. In
dieser Dissertation vertreten wir diese These, indem wir das JavaScript-Ökosystem mehrmals gründlich untersuchen und zahlreiche Verbesserungen zum heutigen Stand der Technik aufzeigen. Als Erstes erörtern wir zwei Arten von Sicherheitslücken, die durch das neue Bedrohungsmodell verschärft werden: Injections und Denial-of-Service für reguläre Ausdrücke. Als Zweites wird aufgezeigt, dass eine übermäßige Wiederverwendung von Code im JavaScript-Ökosystem die Wahrscheinlichkeit erhöht, sich auf bösartigen oder anfälligen Code zu verlassen. Als Drittes weisen wir die weite Verbreitung von Code-Transformationen und das Vorkommen von Full-Stack-Bedrohungen nach. Schließlich werden verschiedene verbesserte Techniken zum Härten von Webanwendungen vorgestellt: Berücksichtigung der Effizienz von impliziten Datenflüssen, Extraktion von Taint-Spezifikationen für Bibliotheken von Drittanbietern und pragmatische Programmanalyse zur Abwehr von Injection-Angriffen. Das Sicherheitsproblem von Full-Stack-JavaScript-Webanwendungen ist noch lange nicht gelöst. Jedoch hoffen wir, dass die vorliegende Dissertation dazu motiviert, diese zunehmend wichtige Applikationsart für zukünftige Arbeiten zu berücksichtigen. Insbesondere befürworten wir ganzheitliche Ansätze, die Full-Stack und bibliotheksübergreifende Informationsflüsse miteinschließen. | German |
|