TU Darmstadt / ULB / TUbiblio

Enhancing the Security and Privacy of Full-Stack JavaScript Web Applications

Staicu, Cristian-Alexandru (2020)
Enhancing the Security and Privacy of Full-Stack JavaScript Web Applications.
Technische Universität Darmstadt
doi: 10.25534/tuprints-00011808
Dissertation, Erstveröffentlichung

Kurzbeschreibung (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.

Typ des Eintrags: Dissertation
Erschienen: 2020
Autor(en): Staicu, Cristian-Alexandru
Art des Eintrags: Erstveröffentlichung
Titel: Enhancing the Security and Privacy of Full-Stack JavaScript Web Applications
Sprache: Englisch
Referenten: Salvaneschi, Prof. Dr. Guido ; Pradel, Prof. Dr. Michael ; Sabelfeld, Prof. Dr. Andrei
Publikationsjahr: 18 März 2020
Ort: Darmstadt
Datum der mündlichen Prüfung: 18 März 2020
DOI: 10.25534/tuprints-00011808
URL / URN: https://tuprints.ulb.tu-darmstadt.de/11808
Kurzbeschreibung (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.

Alternatives oder übersetztes Abstract:
Alternatives AbstractSprache

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.

Deutsch
URN: urn:nbn:de:tuda-tuprints-118087
Sachgruppe der Dewey Dezimalklassifikatin (DDC): 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Fachbereich(e)/-gebiet(e): 20 Fachbereich Informatik
20 Fachbereich Informatik > SOLA - Software Lab
Hinterlegungsdatum: 01 Jul 2020 08:14
Letzte Änderung: 07 Jul 2020 07:18
PPN:
Referenten: Salvaneschi, Prof. Dr. Guido ; Pradel, Prof. Dr. Michael ; Sabelfeld, Prof. Dr. Andrei
Datum der mündlichen Prüfung / Verteidigung / mdl. Prüfung: 18 März 2020
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen