thoerb hat geschrieben: 15.02.2023 18:35:12
Wenn dann jemand innerhalb dieser 15 Minuten ein Script ausführt, in dem eine Befehlszeile mit sudo beginnt, dann wird diese mit Root-Rechten ausgeführt?
Wenn das Script mit dem enthaltenen sudo-Befehl im gleichen Terminal ausgefuehrt wird, dann kann es passwortlos root werden, das ist korrekt.
Ich denke, dass das ein relevanter Schwachpunkt ist, da man oft genug Installationsanleitungen auf Websites sieht, die in etwa so aussehen:
Code: Alles auswählen
sudo apt-get install ... # benoetigte Libs
curl ... | bash # eigentliches Programm von irgendeiner Website
Wenn in dem mit curl geladenen Script ein `sudo' drin steht, dann kann das Script root werden, ohne dass man es merkt.
Indem man die vorbereitenden sudo-Befehle in einem separaten Terminal ausfuehrt, geht das schonmal nicht mehr.
Das eigentliche Problem ist aber natuerlich, dass man irgendwelchen Code ausfuehrt, den man weder selbst geprueft hat, noch von den Paketmaintainern der Distribution hat pruefen lassen. Natuerlich kann nicht jeder selber pruefen, darum gibt es ja gerade die Distributionen. Diese sind nun aber zu traege, um in so schnelllebigen Umfeldern wie Github & Co. mithalten zu koennen. Leider hat sich die Praxis etabliert, dass die Projekte genau solche Befehlsfolgen wie oben zu sehen auf ihre Projektseiten schreiben, die dann von den Usern als ganzes kopiert und ins Terminal (oft auch in root-Terminals) eingefuegt werden, ohne sie zu verstehen und ohne sie selber zu gliedern und in unterschiedliche Teile zu separieren.
Wenn der User nicht versteht was er tut und auf seinem eigenen System root ist, dann sind Probleme vorprogrammiert. Sicherheit braucht entweder Einschraenkungen oder Verstaendnis -- ohne beides geht's nicht.