Sup!
Man erkläre es mir, aber was soll das eigentlich werden? Man führt keine Software direkt aus dem Browser aus. Und wenn man es doch tut, dann hat man gute Gründe dafür und ein chroot wäre da eher unangebracht (jetzt mal davon abgesehen, dass man tendentiell eine Gesamtkopie von /usr/lib in dem chroot bräuchte).
Tja, Du Schlauberger, es geht ja auch um Sicherheit für den Fall, das jemand einen Buffer-Overflow im Browser entdeckt und plötzlich beliebigen Code ausführen kann.
Das ganze mit einem anderen User zu tun, hmm, ja, von mir aus. Wenn das aber alle unter dem gleichen anderen User tun (Linux ist nunmal kein reines Single-User-System) wäre das wieder ein privilegierter User auf seine Art. (Ähnlich wie diese doofe Idee alle möglichen Server als 'nobody' zu betreiben wodurch nobody plötzlich ziemlich mächtig war.)
Nicht, wenn man das Programm in viele Teile aufspaltet, die miteinander kommunizieren und sich dabei gegenseitig auf die Finger schauen, und wo jedes Teilprogramm nur die Rechte hat, die es braucht, und die Teilprogramme, die tendenziell gehackt werden könnten (die, die aus dem Netz geholte Inhalte verarbeiten), die wenigsten Rechte haben.
Unbeirrt davon: Das Programm hätte doch dann ganz sicher Zugriff auf den X-Server womit jegliche 'Sicherheit' erstmal dahin ist.
Ach ja? Warum?
Denn selbst wenn das Programm kein rm -rf ~ machen können sollte, könnte es immernoch dem Fenstermanager/Desktop Environment sagen es solle ein xterm öffnen und dann diesen Befehl gefolgt von einem Enter in das xterm eingeben.
Dadurch hat das Programm aber keine erweiterten Rechte, und auch wenn es möglich sein sollte, dass der X-Server einem chroot-Programm eine Shell gibt, die dann ausserhalb des chroots ist, so ist es doch wesentlich schwieriger, in einem exploit den code für das öffnen einer shell über den X-Server einzubauen als nur einen normalen shellcode, denke ich.
(Ja, ich weiss dass es Sicherheits-Erweiterungen für X dagegen gibt. Aber verbreitet sind die soweit ich sehen kann nicht. Und ohne die ist das ganze vollkommen witzlos.)
Geht so. Man kann ja den X-Ausgabe-Teil auch noch abspalten von der Rendering-Engine, so dass die Rendering-Engine nur noch die fertigen Bildchen an den X-Ausgabe-Teil schickt, der dadurch wahrscheinlich ziemlich schwer zu hacken wird.
Gruesse,
Bio
Tötet DJ Ötzi! (Nicht wirklich!)