C++Guns – RoboBlog

12.05.2009

chroot für den Browser

Filed under: Allgemein — Thomas @ 19:05

chroot [1] ist sozusagen der Sandkasten für nicht vertrauenswürdige Programme. Der Browser ist höchstgradig nicht vertrauenerweckend. Er steht immer im Mittelpunkt wenn mal wieder Lücken gefunden werden. Natürlich, es ist das Programm, welches am meisten Kontakt mit dem Internet hat. Und noch dazu wird durch ihn völlig fremden Code und Programme ausgeführt. Ich rede von Javascript, Java, ajax oder wie sie heutzutage alle heißen. Niemand gibt mir die Garantie, dass die zu-geladenen Programme nicht irgendetwas tun, was ich nicht will. Mir Löcher in meine Firewall schießen (UDP Hole punching) oder meine Daten durchstöbern (Bundestrojaner), oder mir mit Java und upnp auf dem Router eine Portweiterleitung einrichten.

Nun, gegen Keylogger schützt es nicht, aber ich kann die chroot Umgebung innerhalb von Minuten neu aufsetzen und so ungewollte Programme schnell loswerden.

Eigentlich alle Anleitungen für chroot waren mir zu kompliziert. Ich bevorzuge die faule Methode. Ein schlankes Debian wird in einer VM installiert, das so erzeugte Image gemountet und als chroot Umgebung verwendet. Sicher gibt es noch andere Wege, aber mir gefiel die Idee irgendwie.

Für die VM habe ich QEMU verwendet. Dazu schreibe ich jetzt keine Anleitung, es gibt sie genügend im Internet. Wichtig ist nur, dass das Image im RAW Format vorliegt, damit man es mounten kann. Und ihr solltet das Image nicht zu groß wählen. 2gb langen dicke. Das ist auch der Nachteil an meiner Methode. Sie verbraucht viel Platz. Aber ist das im Terabyte Zeitalter ein Thema?

Mit fidsk kann man sich die Partionen des Images ansehen.
#fdisk -lu browser_raw.img

Wichtig ist die Angabe für die Größe eines Sektores (512 Byte) und der Startzahl der Partion (63). 512 * 63 ergibt dann den Offset von 32256.

Als nächstes wird das Image gemountet.
# mount -o loop,offset=32256 browser_raw.img chroot/

Dann braucht es noch ein paar andere Kleinigkeiten

# mount -o bind /proc chroot/proc/
# mount -o bind /dev/ chroot/dev/
# mount -o bind /dev/pts chroot/dev/pts
# mount -o bind /tmp/ mnt/tmp/

Nun kann man die chroot betreten
# chroot chroot/ /bin/bash

Nun sollte man zum User werden und z.b. arora starten.

[1] http://de.wikipedia.org/wiki/Chroot

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress