Breadcrumbs
- IT Security
- Bachelorarbeiten
- Sicherheit der Node.js Plattform – Sicherheitsanalyse des Event-Loops anhand einer REST-API
Sicherheit der Node.js Plattform – Sicherheitsanalyse des Event-Loops anhand einer REST-API
Bachelor-Studiengang IT SecurityGianluca Raberger, BSc
Betreuer: FH-Prof. Dipl.-Ing. Dr. Sebastian Schrittwieser, Bakk.
Ausgangslage
Mobilebanking, Musik- beziehungsweise Videostreaming sowie Social-Media-Plattformen setzen für ihre Webapplikationen die Technologie JavaScript ein. JavaScript ist von seiner früheren Funktionalität als „Click Handler“ oder „Inhalte nachladen“ weggewachsen. Mittlerweile werden mit JavaScript Serverapplikationen und Bezahldienste betrieben. Die Laufzeitumgebung, die das möglich macht, nennt sich Node.js, ein Projekt, welches 2009 erstmals von Ryan Dhal vorgestellt wurde. Durch diese Laufzeitumgebung ist JavaScript eine der populärsten Programmiersprachen der Welt geworden. Sicherheitsforschung, welche sich mit Node.js beschäftigt, fokussiert sich kaum auf die unterliegenden Technologien der Laufzeitumgebung. Dazu kommt, dass diese Technologien von sicherheitskritischen Bezahlplattformen wie PayPal oder Videostreaming-Anbieter wie Netflix mit großem Erfolg eingesetzt werden, ohne der Existenz eines Beleges, dass diese Laufzeitumgebung sicher ist.
Ziel
Ziel dieser Arbeit ist, herauszufinden, ob mittels Überladung des Event-Loops von Node.js sicherheitskritische Authentifizierungen umgangen werden können, womit die Integrität eines Systems nicht mehr gewährleistet ist. Dazu wurde die Sicherheit des Event-Loops in einer realitätsgetreuen Umgebung mittels Überlastungstests auf die Probe gestellt, um einen Grundstein für die Sicherheitsforschung dieser tieferliegenden Technologien zu legen. Die Durchführung der Tests besteht darin, mehrere gleichzeitige Aufrufe an die Testumgebung zu schicken, das Verhalten zu beobachten und Zeiten zu messen.
Ergebnis
Im Zuge der Arbeit wurde ein Gesamtüberblick über die Laufzeitumgebung Node.js gegeben, sowie die Unterschiede zwischen synchronem und asynchronem Code erklärt. Außerdem wurden Grundlagen zu HTTP sowie REST vermittelt, um in weiterer Folge eine Testumgebung mit einer eigens erstellten REST-API aufzubauen. Mit der genannten Testumgebung wurden Last- sowie Datentests durchgeführt, um die Integrität der Node.js Plattform zu testen. Aufgrund der gewonnen Ergebnisse konnte die Schlussfolgerung getroffen werden, dass mit den durchgeführten Tests keine Sicherheitslücke provoziert werden konnte.