GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Sind Umgebungsvariablen für nicht privilegierte Benutzer unter Linux sichtbar?

Ich versuche festzustellen, ob unter Linux Umgebungsvariablen für einen Prozess von anderen (Nicht-Root-)Benutzern beobachtet werden können.

Der unmittelbare Anwendungsfall besteht darin, Geheimnisse in Umgebungsvariablen einzufügen. Dies wird an vielen Stellen im Internet als unsicher diskutiert, aber ich konnte den genauen Expositionspunkt in Linux nicht eingrenzen.

Beachten Sie, dass ich nicht bin sprechen über das Einfügen von Klartext-Geheimnissen in Dateien. Beachten Sie auch, dass ich nicht bin Apropos Offenlegung des Root-Kontos (ich sehe den Versuch, Geheimnisse vor einem Gegner mit Root zu verbergen, als Nichtstarter).

Diese Frage scheint meine zu adressieren, mit Kommentaren, die Umgebungsvariablen als völlig ohne Sicherheit oder nur einfach verschleiert klassifizieren, aber wie greift man darauf zu?

In meinen Tests kann ein nicht privilegierter Benutzer Umgebungsvariablen für einen anderen Benutzer nicht über die Prozesstabelle ('ps auxwwe') beobachten. Die Befehle, die Umgebungsvariablen setzen (z. B. export), sind Shell-Builtins, die es nicht in die Prozesstabelle schaffen und sich folglich nicht in /proc/$pid/cmdline befinden. /proc/$pid/environ ist nur von der UID des Prozesseigentümers lesbar.

Vielleicht liegt die Verwirrung zwischen verschiedenen Betriebssystemen oder Versionen. Verschiedene (neuere) Quellen im Internet prangern die Unsicherheit von Umgebungsvariablen an, aber meine Stichprobenprüfung verschiedener Linux-Versionen scheint darauf hinzudeuten, dass dies nicht möglich ist, mindestens bis 2007 zurückzugehen (wahrscheinlich weiter, aber ich habe keine Boxen an Hand zum Testen).

Wie kann ein nicht privilegierter Benutzer unter Linux Umgebungsvariablen für die Prozesse eines anderen beobachten?

Akzeptierte Antwort:

Wie Gilles in einer sehr umfassenden Antwort auf eine ähnliche Frage auf security.stackexchange.com erklärte, sind Prozessumgebungen nur für den Benutzer zugänglich, der den Prozess besitzt (und natürlich root).


Linux
  1. Linux-Umgebungsvariablen:Lesen und Festlegen auf einem Linux-VPS

  2. So setzen/erstellen Sie Umgebungs- und Shell-Variablen in Linux

  3. So setzen, listen und entfernen Sie Umgebungsvariablen in Linux

  4. So setzen Sie Linux-Umgebungsvariablen mit Ansible

  5. Festlegen von Linux-Umgebungsvariablen

So setzen und listen Sie Umgebungsvariablen in Linux auf

So setzen und listen Sie Umgebungsvariablen in Linux auf

So setzen/löschen Sie Umgebungsvariablen in Linux

So setzen und löschen Sie Umgebungsvariablen unter Linux

Einfache Schritt-für-Schritt-Anleitung zu Linux-Umgebungsvariablen

Linux-Umgebungsvariablen