Ich bin neugierig auf die Sicherheit, eine Root-Shell in einer getrennten Bildschirmsitzung laufen zu lassen. Normalerweise mache ich das nie.
Abgesehen von der Gefahr, dass mein Nicht-Root-Benutzerkonto kompromittiert wird (Passwort offengelegt, SSH-Schlüssel kompromittiert, usw.), gibt es andere Arten des Eintritts in eine getrennte, passwortgeschützte Bildschirmsitzung, über die ich mir Sorgen machen sollte, oder einen getrennten Bildschirm Sitzung als inert angesehen werden?
security
gnu-screen
root
Michael
quelle
quelle
sudo
.sudo
deaktiviert wird, während eine echte Root-Shell geöffnet bleibt.Antworten:
Ich denke, es ist ein Sicherheitsproblem, da "Abgesehen davon, dass mein Nicht-Root-Benutzerkonto gefährdet sein kann" ziemlich groß sein kann.
Darüber hinaus bestehen jedoch weitere erhöhte Risiken. Sie haben sich jetzt beispielsweise für einen theoretischen Exploit geöffnet, mit dem Sie Berechtigungen im Bildschirm-Socket-Verzeichnis ändern können (
/var/run/screen
auf meinem System, wird aber manchmal/tmp
verwendet). Dieser Exploit hat jetzt einen Weg, um root zu werden, den es sonst vielleicht nicht gibt.sudo
hat andere Vorteile, wenn Sie sich darin üben können, es für jeden Befehl zu verwenden, anstatt es zu tunsudo su -
. Es protokolliert Aktionen (die, es sei denn , Sie aus der Ferne sind die Anmeldung, nicht sinnvoll die Sicherheit erhöhen, aber Ihnen nicht gibt eine Spur von dem, was du hast getan). Und es hilft, Unfälle zu vermeiden, indem für jeden Befehl eine absichtliche Eskalation erforderlich ist, anstatt zu einer vollständig privilegierten Sitzung zu wechseln.quelle
Wenn Sie in einer Bildschirmsitzung eine Root-Shell haben (getrennt oder nicht, kennwortgeschützt oder nicht) und Ihre
screen
ausführbare Datei nicht setxid ist, kann ein Angreifer, der Ihre Berechtigungen erlangt, Befehle in dieser Shell ausführen. Wenn nichts anderes, können sie dies tun, indem sie den Bildschirmprozess verfolgen .Wenn screen setuid oder setgid ist und die Sitzung getrennt und kennwortgeschützt ist, wird im Prinzip das Bildschirmkennwort benötigt, um Befehle in dieser Shell auszuführen. Wenn dieses Prinzip zutrifft, müsste jemand, der nur Ihr Konto kompromittiert hat, einen Trojaner einrichten und darauf warten, dass Sie das Kennwort eingeben. Die Angriffsfläche (dh die Anzahl der Stellen, an denen aufgrund eines Fehlers oder einer Fehlkonfiguration Probleme auftreten können) ist jedoch unangenehm groß. Zusätzlich zu den grundlegenden Sicherheitsfunktionen des Systems vertrauen Sie auf Folgendes:
"Ein anderes Feature, um dich nicht zu beißen": Ja, das ist vage. Aber es geht immer um Sicherheit. Sie könnten versucht sein, dies als bloßes Wunschdenken abzulehnen, aber haben Sie wirklich an alles gedacht? Beispielsweise…
Solange Sie auf das Endgerät schreiben können, können Sie Daten in die Eingabe dieser Shell einspeisen. Unter der Standardkonfiguration des Bildschirms auf meinem Computer:
Dies wird
␛]lfoobar␛l
in den Eingabestream der Shell eingefügt.\ek
ist die Steuersequenz, mit der eine Anwendung (oder alles, was auf das Endgerät schreiben kann) den Fenstertitel festlegen kann (siehe Abschnitt „Benennen von Fenstern“ im Bildschirmhandbuch ) und\e[21t
das Terminal seinen Titel über die Standardeingabe der Anwendung meldet ( screen dokumentiert diese Sequenz nicht, implementiert sie jedoch, Sie finden sieCSI Ps ; Ps ; Ps ; t
in der Liste der xterm-Steuersequenzen . Tatsächlich werden mindestens unter screen 4.0.3 alle Steuerzeichen aus dem gemeldeten Titel entfernt, sodass die Shell liestlfoobar
(Vorausgesetzt,␛]
der Angreifer ist nicht an einen Bearbeitungsbefehl gebunden.) Der Angreifer kann also einen Befehl nicht auf diese Weise ausführen, sondern nur einen Befehl wiechmod u+s /bin/sh
gefolgt von vielen Leerzeichen und einer wahrscheinlich aussehenden Eingabeaufforderung.Screen implementiert mehrere andere ähnliche riskante Kontrollsequenzen. Ich weiß nicht, wie groß das Risiko für Sicherheitslücken ist. Aber hoffentlich können Sie jetzt sehen, dass der Schutz, der durch Passwörter für Bildschirmsitzungen geboten wird, nicht so groß ist. Ein dediziertes Sicherheitstool wie sudo weist mit deutlich geringerer Wahrscheinlichkeit Sicherheitslücken auf.
quelle
Die von screen erstellten Pipes sind nur für den Eigentümer zugänglich, daher sollte dies kein Sicherheitsproblem sein.
quelle