Denos Sicherheitsmodell ist kein echtes Sandboxing – es tut nur so

I'm not a fan of Deno's security model (2024)

Deno wirbt mit „Secure by default“ und einem Berechtigungssystem, das Zugriffe auf Dateien und Befehle einschränkt. Der Autor zeigt jedoch, wie sich diese Grenzen aushebeln lassen: Über manipulierte Terminal-Farben oder vorgetäuschte Eingaben lässt sich der Berechtigungsdialog austricksen, und selbst `--allow-run=uname` bietet keinen Schutz, weil sich über `PATH`, `LD_PRELOAD` oder `VIMINIT` beliebiger Code einschleusen lässt. Das eigentliche Problem: Der Prozess ist nicht wirklich gesandboxt, die Berechtigungen vermitteln nur ein trügerisches Sicherheitsgefühl.

Deno-Prozess ist nicht wirklich gesandboxt, er tut nur so.
  1. jFriedensreich

    Ich war ein Fan von Deno, weil sie es wenigstens versucht haben – es gab ja keine alternative Runtime, die versucht, Berechtigungen richtig umzusetzen, oder ein Betriebssystem-Tool, das asynchrone (!) Berechtigungen mit Benutzerinteraktion ermöglicht. Wir brauchen wirklich eine einfach zu bedienende, „produktisierte“, aber echte Open-Source-Lösung, die es erlaubt, jede Software anzuhalten und Richtlinien für Ausführung, Dateisystem und Netzwerk usw. zu evaluieren und dabei auf Prozess- und Kontextebene zu argumentieren.

  2. ximm

    Und soweit ich das beurteilen kann, ist dies genau dasselbe Sicherheitsmodell, das jetzt von OpenCode und ähnlichen verwendet wird

  3. hoppp

    Deno hat noch 1 Jahr offiziellen Support ...

    Ich mochte das Sicherheitsmodell, weil sie wenigstens etwas hatten, im Gegensatz zu Node.

  4. phyzome

    Ich habe tatsächlich ein Terminalprogramm, das manchmal sensible Eingaben vom Benutzer anfordern muss, möglicherweise nachdem Angreifer-Daten ausgegeben wurden. Ich habe versucht herauszufinden, wie ich damit umgehen soll!

    Mein Plan war, in Unicode zu kodieren (verlustbehaftet), Steuerzeichen zu entfernen und eine visuelle Umrahmung hinzuzufügen. Sollte ich noch etwas anderes in Betracht ziehen? Gibt es einen Standardansatz? Ich habe dazu noch keine Recherche gemacht, aber da es hier zur Sprache kam, dachte ich, jemand weiß vielleicht Bescheid.

    (Das ist https://codeberg.org/timmc/breakmancer, falls jemand interessiert ist.)

  5. kevin_thibedeau

    > die Berechtigungsaufforderung ist „teilweise sichtbar“ (man kann ein Emoji sehen)

    Terminals können so konfiguriert werden, dass sie Emojis in Textdarstellung rendern, wo sie zu monochromen Glyphen werden, die mit Escape-Sequenzen wie normaler Text eingefärbt werden können. Nichts, worauf man sein Sicherheitsmodell stützen sollte.

Mehr von diesem Tag

2026-11-08