Sandboxing Node.js for Dockerized Cloud Environments

Geeignet für: Masterarbeit

In dieser Arbeit soll untersucht werden, wie ein Node.js Server, auf dem “untrusted” Application Code von Usern ausführt wird, effektiv einem Sandboxing unterzogen werden kann. Dabei wird davon ausgegangen, dass der Node.js Server in einer Cloud Umgebung beliebigen Code von Usern ausführt und einem Docker-Container isoliert ist. Das Saandboxing soll - soweit technisch umsetzbar - folgendes gewährleisten:

  • Limitierung der CPU-Ressourcen, kein Filesystem-Zugriff (durch Docker weitestgehend gegeben)
  • Limitierung von Netzwerk I/O (z.B. Aufrufe von REST-APIs)
  • Messung des erzeugten I/O Traffics (z.B. für Statistiken)
  • Limitierung der Ausführungzeit aufgerufener Funktionen, inklusive der dadurch aufgerfuenen Funktionen, auch asnychron (z.B. Durch Netzwerkommunikation, oder setTimeout)

Ziele:

  • Recherche zu existrierenden Sanboxing Ansätzen für NodeNode VM) und den Sandboxing Möglichkeiten von Docker
  • Entwurf und Implementierung einer Sandboxing-Lösung für obige Anforderungen
  • Evaluation der Implementation und (quantitativer) Vergleich mit der Ausführung ohne Sandboxing/Node.js.

Einführungsliteratur:

Vertiefungsliteratur:

Kommentare

Kommentar hinterlassen

Die E-Mail Adresse wird nicht veröffentlicht. Benötigte Felder sind markiert *