Rinjani, kan je het niet beter anders aanpakken?
Ik gebruik in Firefox (onder Debian) de add-ons NoScript en Privacy Badger. NoScript blokkeert al alle uitvoerbare code (en dus malware) tenzij je aangeeft een site te vertrouwen, en Privacy Badger vangt vervolgens af wat van tracking-sites geladen wordt (niet op basis van blacklists maar van inspectie van wat er eigenlijk geladen wordt; als meerdere sites uit dezelfde bron laden zou het wel eens een tracker kunnen zijn, dat soort logica).
NoScript alleen al is voldoende om content die malware kan bevatten te blokkeren. Dat is namelijk altijd uitvoerbare code en dat is nou net wat NoScript blokkeert. Privacy Badger vangt vervolgens in wat er nog wel geladen wordt zaken af die uit privacyoverwegingen ongewenst zijn. Het hangt af van welke sites je bezoekt, natuurlijk, maar bij mijn websurfgedrag doen de meeste websites het goed genoeg om de inhoud te kunnen zien, en laden ze nog eens aanzienlijk sneller dan zonder de genoemde add-ons omdat ontzettend veel meuk wordt geblokkeerd.
Maar er zijn sites die amper aan de praat te krijgen zijn, zeker als je probeert selectief dingen toe te staan in NoScript terwijl je niet kan beoordelen wat voor de werking echt nodig is en wat niet. Daarvoor heb je een voorziening nodig om een minder gelimiteerde browser te kunnen starten die toch geen schade kan aanrichten.
Daarvoor gebruik ik firejail, een sandbox-programma voor Linux. Het wordt geleverd voor profielen voor allerlei programma's, waaronder firefox. Voor gewoon gebruik op mijn systeem werkte dat niet lekker, dus heb ik een aangepast profiel gemaakt. Het vergt wat uitproberen en aanpassen. De interessante mogelijkheid van firejail voor dit doel is de commandline-optie --private, waarmee een programma, hoewel je onder je eigen user draait, een lege home-directory voorgeschoteld krijgt en dus draait alsof het initieel gestart wordt (in het geval van Firefox dus zonder add-ons). Wijzigingen die het programma aanbrengt worden niet bewaard, het is een wegwerpsessie. Let op dat je Firefox met de optie --no-remote start, anders krijgt een lopende Firefox een signaal dat het de opgegeven URL moet openen. Er is een mogelijkheid om ook dat af te schermen (de optie --x11 van Firejail, die drie manieren ondersteunt om de browser van de X11-sessie af te schermen).
Met de add-on Open With kan je vanuit je reguliere Firefox-sessie een website in een jail openen via de rechtermuisknop.
Als je echter je reguliere Firefox-sessie zelf al in (een minder restrictieve) firejail hebt draaien werkt dat niet. Sandboxen nesten gaat niet goed omdat ook de capaciteiten die nodig zijn om een sandbox te creëren worden afgeschermd door de sandbox. Dat kan wellicht ook met de aangekondigde ingebouwde sandbox van Firefox een probleem gaan vormen (Debian werkt met Firefox ESR, dus het duurt nog even voor ik daarmee te maken krijg). Ik heb dat voor mezelf opgelost door met Open With de te openen URL in een bestandje te schrijven op een locatie onder /tmp waar de reguliere sandbox toegang toe heeft, en een monitorproces dat ik als onderdeel van mijn grafische sessie start pakt dat op en start de restrictieve sandbox. De details zijn te omvangrijk om hier te publiceren, en zitten vol met mijn persoonlijke voorkeuren en eigenaardigheden. Maar weet dat het kan.
Maar je kan het met wat handwerk ook zonder dat soort constructies doen, en als, zoals hier, om een website gaat die je vaker gebruikt kan je een commando in een bash-script zetten:
firejail --private firefox --no-remote http://www.rtlxl.nl/