Védett módban futtatott Firefox

Címkék

Régóta szerettem volna valamit amivel kicsit biztonságosabbnak érezhetem a bankolást, annál mintha a mindenféle kiterjesztéssel telepakolt Firefoxot használnám amivel egyébként minden mást is böngészek a világhálón.

Valahogy a Qubes OS, bár az elgondolás nem rossz, a túl sok erőforrás igény és nehézkes kezelés miatt sose volt igazán vonzó.

Aztán jött a Docker láz, és volt mindenféle Firefox konténer ami közül lehet választani. Nekem a chrisdaish féle tetszett meg, Ubuntu alapokon. Úgyhogy az Ő munkáját vettem alapul az ötlet megvalósításához.

Miről is van szó? A Docker a Linux kernel névtereit használja, és ezáltal képes elszeparálni a processzeket egymástól. Külön fájlrendszert lát a konténerben futtatott program, ami ráadásul minden indításnál eredeti állapotába kerül. Tehát nincs history, nincs semmi mentett változás.

Hálózat szintjén is virtuális hálózatra kerül a futó kód stb. A Dockerről bővebben itt. Ráadásul a Docker olyan technológia ami kimondottan egy-egy program futtatására való. Éppen ez kell nekem. Egy tiszta Firefox telepítés - már amennyire lehet, mert a Java és Flash bele van telepítve -, minden járulékos sallangtól mentes, nincs add-on, nincs semmi. Viszont azt érdemes észben tartani, hogy a Docker jelen esetben egy minimális Ubuntu rendszert használ kiindulási alapnak és ide szabványos úton telepíti (apt-get) a Java-t, Flash-t és Firefox-ot, annak minden szükséges függőségével együtt! Így az elkészül képfájl összességében több száz MB is lehet. Viszont ha egy képfájl része egy másiknak akkor az nem fog elfoglalni újabb helyet, egyszerűen újra lesz hasznosítva.

De mi is kell hozzá?

Docker telepítés Ubuntu-n (további telepítési útmutató itt):


$ wget -qO- https://get.docker.com/ | sh

Itt érdemes a felhasználónkat bevenni a docker csoportba:


$ sudo adduser ...felhasználónk... docker

Jelentkezzünk ki és vissza, hogy a felhasználónk ténylegesen rendelkezzen a docker csoport tagsággal.

Ezzel a Docker felkerült a gépre és használhatjuk az image-et. Töltsük le az indító fájlt:


$ wget "https://raw.githubusercontent.com/szimszon/firefox-docker/master/firefox-docker.sh"

Érdemes körülnézni a script első részében, ahol a változók vannak és beállítani amit kell:


# Docker image neve - nem kell bántani, hacsak nem lesz frissítés :)
DOCKER_IMAGE="szimszon/firefox:v2"
# Running Docker konténer neve - nem kell bántani
DOCKER_NAME="firefox-docker"
# PulseAudio szerver címe (ifconfig docker0 -- parancsot kiadva megtudhatjuk az IP címet)
PULSE_SERVER="172.17.42.1:4713"
# A felhasználónk Letöltések könyvtára - alapból az angol megfelelő van beírva!
ORIGINAL_DOWNLOADS="$HOME/Letöltések/$DOCKER_NAME"

Ha megszerkesztettük, mentsük el és el is indíthatjuk:


$ chmod +x firefox-docker.sh
$ ./firefox-docker.sh

Ha minden jól megy, akkor kis idő múlva letöltődik az image, létrejön a konténer és elindul benne a Firefox böngésző, ami megjelenik a grafikus felületen. Amikor a Firefox-ból kilépünk a konténer meg is szűnik, de a letöltött lemezkép nem. Újbóli elindításnál már nem fogja letölteni, de az image-ből új konténer jön létre és tiszta lappal indul a böngésző.

Ahhoz, hogy hangunk is legyen, be kell állítani a PulseAudio szervert, hogy hálózaton azonosítás nélkül lehessen hozzá csatlakozni. Ehhez a paprefs csomagra lesz szükség, ha nincs fenn telepítsük:


$ sudo apt-get install paprefs
$ paprefs

A Network server fülön állítsuk be Hálózati hozzáférés engedélyezése a helyi hangeszközökhöz opciót és ezen belül a Don't requires authentication-ot. Ez után a legjobb, ha újraindítjuk a számítógépet, de lehet, hogy elég a ki-,és bejelentkezés.

Ha ezek után indítjuk el a firefox-docker.sh-t és jól adtuk meg az IP-t és portszámot a PulseAudio-hoz a hangnak is működnie kell.

Ha szeretnénk az Unity oldalsávján lévő Firefox ikonon jobb egérgombbal egy menüből indítani akkor másoljuk le a rendszer firefox.desktop fájlját a Saját könyvtárunkba:


$ cp /usr/share/applications/firefox.desktop $HOME/.local/share/applications/firefox.desktop

És keressük meg a [Desktop Entry] részben a Actions=NewWindow;NewPrivateWindow sort és írjuk a végére, hogy ;DockerFirefox:


Actions=NewWindow;NewPrivateWindow;DockerFirefox

Majd a fájl végére illesszük be az alábbi részt:


[Desktop Action DockerFirefox]
Name=Docker Firefox
Exec=/...teljes elérési út.../firefox-docker.sh
OnlyShowIn=Unity;

A ki-, és bejelentkezés után az Indítóban a Firefox ikonra jobb egérgombbal kattintva egy új menün keresztül kattintással indítható a konténerbe zárt Firefox.

Ha valaki nem bízik a Docker Hub által generált lemezképben, nem kell mást tennie, mit letölteni a Docker definíciós fájlt is tartalmazó Git tárólót és elkészíteni a saját lemezképet:


$ wget -Ofirefox-docker.zip "https://github.com/szimszon/firefox-docker/archive/master.zip"
$ unzip firefox-docker.zip
$ cd firefox-docker-master
$ docker build -t szimszon/firefox-docker --no-cache .

és máris használható a saját készítésű Firefox image.

Kellemes böngészést!

Projekt a Docker Hub-on: itt
Projekt a GitHUB-on: itt

Hozzászólások

Dockerfile elerheto. Senki se fogja le az ember kezet, hogy sajatot forditson.

Szerk: A cikk viszont nagyon jo, es tenyleg ez az irany.
(marmint, hogy minden-mindennel osszefugg, es random dolgokat tolt le a buildscript a netrol, tipikusan github.)
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

Kifejezetten bankolashoz szerintem jobb lenne java+flash nelkul (foleg, ha bugstatisztikakat is nezel). Hang szinten nem kell.
Raadasul jobb lenne valami olyan valtozatot elmenteni, ahol mar egyszer korabban beleptel a bankodba, igy mehet history (vagy bookmark) alapjan a megfelelo oldalra navigacio, ugyanis csalok korabban szerettek letrehozni hasonlo nevu, elgepelt domaineket adathalaszatra.
Aztan ha valaki trukkozni kezd az alairassal, az alairas valtozasra is akkor tud figyelmeztetni a FF, ha korabban mar beleptel vele. (ok, itt az algoritmusok amugy is vedenek)

--
What's worse than finding a worm in your apple?
Finding a U2 album on your iPhone.

Köszi, ilyesmin már én is gondolkodtam, de azt hittem a X-es progi futtatása problémás lesz, mert ugye hogy kapcsolódik rá a futó X-re. De akkor ezek szerint docker ezt is megoldja?
--
http://pyftpadmin.earthquake.hu

Csak ha LXC-t használsz, az olyan mint egy virtuális gép. Nem kezdesz tiszta lappal minden indításkor.
Ha bár meglehet oldani. Snapshot, ezt indítod, használat után eldobod.
Nekem erre a Docker szimpibb, végül is erre készült, egy alkalmazás elszeparált futtatására...

Mondjuk előre elkészített képfájlt én sem töltenék le, de maga az ötlet jó. Legalább egy kis előrelépés a "biztonságosabb" netezés felé.

(Amúgy minden olyan megoldásnál élek a gyanúperrel, ahol azt hangoztatják hogy ez qrva biztonságos. Használd ezt. Lásd Hongkong-i tüntetések. http://index.hu/tech/2014/10/01/kemprogrammal_lopjak_a_hongkongi_tuntet… )

---------------------------------------------------------------
Ritkán szólok hozzá dolgokhoz. Így ne várj tőlem interakciót.

Én Virtulabox-ban futtatok egy Linux-ot, amit csak onlline bankolásra és Paypal-ra használok.

Én kaspersky Firefox addonjat használom. "védett böngésző" cím alatt. Annyira nem féltem a bankolasom, mivel van külön token is a bankhoz plusz a kaspersky is ingyen jár a bank account hoz. PayPal kB dettó. De ha még is lelopjak akkor is biztosítva van alapból.

Srácok, nem fordítva ültök a lón? :)

Egy kompromittálható hoston mi értelme futtatni egy nagy biztonságot igénylő guestet? A felnyomott böngésződ felpattint egy keyloggert/screenshottert az X-re és onnan az űberbiztonságos guest lábon van lőve.

Fordítva inkább lenne értelme, hogy jailben nézegetni a cicás-makrós docot, a hoston (vagy másik jailben) pedig bankolni, bár az X tulajdonképpen full átjárást biztosít az appoknak egymás között, szóval ehhez még egy Wayland is kéne vagy legalább egy Xnest-et beleszőni ebbe a történetbe.

Legjobb amit tehetsz, hogy másik juzerrel bankolsz egy másik VT-n, az kellőképpen izolált.

Apró kiegészítés, hogy én netbankoláshoz olyan Firefox profilt használok, ami nem tartalmaz semmilyen kiegészítőt és plugint, illetve kötelezően privát módban indul (nem jegyez meg semmit). Lehet neki csinálni külön indítót és akkor semmi extra nehézséget nem jelent.

-----
„Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben.”
rand() a lelke mindennek! :)
Szerinted…

13-as Mint live ISO képfájlból indított virt.gép. Nekem ennyi elég.
Persze ha nagyon fontos lenne a security, akkor saját készítésű, forrásból gyártott linux lenne USB-ről bootolva.
De azért minden paranoiának meg van a határa. ;-)

Valahogy a Qubes OS, bár az elgondolás nem rossz, a túl sok erőforrás igény és nehézkes kezelés miatt sose volt igazán vonzó.

Nem tudom mikor próbáltad utoljára, én 1.0 RC-2 óta (2011!) használom az elsődleges munka gépemen. 'Túl sok' erőforrás igény problémám soha nem volt, és nehézkes kezelés??? Ebben a tutorialban sokkal nagyobb a geek faktor, mint Qubes használni.

Arról nem is beszélve - ahogy már mások is kifejtették - egy normál oprendszeren bármit is bűvészkedsz NEM lehetséges rajta trusted conténert/VM-et/kármit létrehozni. Szóval mindez csak olyan optikai tuning ;)

Ezzel szemben a Qubes olyan fícsöröket ad a kezedbe, amivel tényleg nagyságrendekkel biztonságosabb megoldást lehet összehozni:
http://zrubi.hu/2014/qubes-20/

--
zrubi.hu

Most lehet en vagyok a hulye de sajat gepen semmi ertelmet nem latom. Egyszer hasznalatos SMS kodot kuld a bank minden tranzakciohoz. Akkor?