MC's journal

Firefox som annan användare

2010-10-18

En bekant, Martin, sa i förbigående för någon månad sedan att han kör sin webläsare som en annan användare. Det lät smart, tyckte jag, med tanke på hur många attackvektorer som inblandar just webläsaren och då speciellt de lite duktigare webläsarna som kan saker som Javascript och sådant.

Jag använder som bekant framför allt Emacs-w3m för att surfa på webben och jag vet inte om det är så stor poäng att köra den som en annan användare, men min metod nedan fungerar på den också, om man vill. Jag känner mig desto mer säker på att det är en väldigt bra idé att inte låta den Firefox jag ibland startar ha någon som helst möjlighet att skriva eller ens läsa filer min hemkatalog.

Jag vet inte hur Martins lösning ser ut eller vilken webläsare han använder, men jag tänkte berätta hur jag löste det: Jag drar ut autenticeringskakan från min X-server, stoppar ner den i en fil, går över till en annan användare, drar in kakan och startar Firefox som den användaren mot min gamla användares X-display.

Jag startar alltså numera Firefox med ett script, fireweb. Det scriptet ser ut så här:

#! /bin/sh

umask 027
xauth extract - :0.0 > /tmp/foo.txt
chgrp ff /tmp/foo.txt
su -l mcff /home/mcff/bin/fireweb
rm /tmp/foo.txt

Användarna mc (jag) och mcff (den som skall köra Firefox) är båda med i gruppen ff och får båda läsa /tmp/foo.txt, som jag alltså trycker in X-kakan i. mcff:s eget fireweb-script ser ut så här:

#! /bin/sh

xauth merge /tmp/foo.txt
export DISPLAY=:0.0
firefox3 &

Firefox körs sedan som mcff men visas på min vanliga X-display. Beroende på rättigheterna jag har på min hemkatalog som användaren mc så kan inte användaren mcff komma åt filerna där och ställa till fuffens. Den attackvektor som finns kvar är förstås X-servern, men det är svårt att göra något åt.

Kanske kan detta vara användbart även för någon annan.

Permalink