Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #6032

[Python-de] Re: Python-Skript als Login-Shell, kann man das so machen?

From Stefan Schwarzer <sschwarzer@sschwarzer.net>
Newsgroups de.comp.lang.python
Subject [Python-de] Re: Python-Skript als Login-Shell, kann man das so machen?
Date 2024-02-19 14:55 +0100
Message-ID <9986e895-3dd6-41c9-9e51-f9f1bea337f7@sschwarzer.net> (permalink)
References <uqvbn5$2dr4k$1@gwaiyur.mb-net.net>

Show all headers | View raw


On 2024-02-19 11:49, Ralph Aichinger wrote:
> https://pi.h5.or.at/mockturtle.txt
> 
> ist ein Python-Skript mittels des Moduls "cmd", das ein CLI
> implementiert, quasi ohne sinnvolle Funktion einstweilen ;)
> [...]

Ich bin kein IT-Security-Experte, aber ein paar Gedanken dazu:

- Was passiert, wenn jemand eine Eingabezeile von einigen GB
   schickt? Ich vermute mal, das würde auf einen DoS
   hinauslaufen.

- Davon abgesehen, ist mir wie Peter auch nichts an deinem Code
   aufgefallen, womit man aus deiner Shell ausbrechen könnte.

- Man kann das mit dem Chroot noch weiter treiben und den
   Shell-Prozess in einen Podman- oder Docker-Container oder eine
   VM einsperren. Auf der anderen Seite beziehungsweise
   zusätzlich kannst du die Rechte des Users möglichst weitgehend
   einschränken durch entsprechende Wahl der User-Id, Gruppen und
   gegebenenfalls SELinux/AppArmor-Policy.

- Laut https://docs.python.org/3/library/cmd.html verwendet das
   Modul für die Verarbeitungen der Eingabezeile die
   readline-Bibliothek. Je nachdem, welche
   Konfigurations-Einstellungen (z. B. in der `.inputrc` oder per
   Default) gelten, könnte das die Angriffsfläche vergrößern.

   Konkret ist mir gerade dieser Absatz aus der Doku aufgefallen:

   > If the readline module is loaded, input will automatically
   > inherit bash-like history-list editing (e.g. Control-P
   > scrolls back to the last command, Control-N forward to the
   > next one, Control-F moves the cursor to the right
   > non-destructively, Control-B moves the cursor to the left
   > non-destructively, etc.).

   Das heißt, wenn sich mehrere Nutzer einen Account teilen,
   verstehe ich das so, dass sie die History anderer Nutzer sehen
   können. Keine Ahnung, ob das für deine Anwendung ein Problem ist.

   Eventuell hat die Verwendung der Readline-Bibliothek noch
   viel mehr Folgen.

- Auch wenn in deinem Code keine Sicherheitslücken zu erkennen
   sind, ist mir nicht klar, ob bestimmte Funktionalität im
   `cmd`-Modul, die bei "normaler" Nutzung kein Problem ist, in
   deinem Anwendungs-Kontext doch ein Problem sein könnte.

   Und selbst wenn du jetzt einen Audit des `cmd`-Moduls
   durchführen würdest und das Modul für sicher befinden würdest,
   könnte es sein, dass ein Update auf eine neue Python-Version
   das ändert.

- Ob du den Ansatz mit der `cmd`-Shell trotz dieser
   Randbedingungen verfolgen willst, hängt davon ab, welche
   Angriffs-Szenarien du siehst und was die möglichen Folgen
   wären.

Viele Grüße
Stefan

Back to de.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Python-Skript als Login-Shell, kann man das so machen? Ralph Aichinger <ralph@pi.h5.or.at> - 2024-02-19 10:49 +0000
  Re: Python-Skript als Login-Shell, kann man das so machen? "Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> - 2024-02-19 12:02 +0000
    Re: Python-Skript als Login-Shell, kann man das so machen? Ralph Aichinger <ralph@pi.h5.or.at> - 2024-02-19 12:11 +0000
  [Python-de] Re: Python-Skript als Login-Shell, kann man das so machen? Stefan Schwarzer <sschwarzer@sschwarzer.net> - 2024-02-19 14:55 +0100
    Re: [Python-de] Re: Python-Skript als Login-Shell, kann man das so machen? Ralph Aichinger <ralph@pi.h5.or.at> - 2024-02-19 14:15 +0000
      Re: [Python-de] Re: Python-Skript als Login-Shell, kann man das so machen? "Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> - 2024-02-19 14:32 +0000
        Re: [Python-de] Re: Python-Skript als Login-Shell, kann man das so machen? Ralph Aichinger <ralph@pi.h5.or.at> - 2024-02-19 14:53 +0000

csiph-web