Firefox veilig maken met uMatrix, about:config en user.js

Noud van Kruysbergen
0

Inhoudsopgave

Met een beetje oefening kun je met uMatrix heel nauwkeurig sturen welke resources Firefox mag down­loaden. En met de uitgebreide instellingen in about:config ­en user.js kun je voorkomen dat een browser je ­gegevens naar vreemde servers stuurt. Zo kun je nog iets meer Firefox veilig maken.

Bij het aanroepen van een moderne website vliegen je de cookies, stylesheets, JavaScripts, frames, fonts en andere resources om de oren. Je browser maakt daarbij contact met talloze externe aanbieders, die met de eigenlijke website in principe niets te maken hebben – een risico voor je privacy en security dus. Met de add-on uMatrix kun je niet alleen in beeld krijgen wat er allemaal aan de website gekoppeld is, maar ook heel nauwkeurig controleren welke resources Firefox mag downloaden.

Firefox veilig maken uMatrix user.js about config browser script beveiliging malware

uMatrix is een soort browser-firewall, die alleen de resources doorlaat waar je expliciet toestemming voor geeft. Die add-on wordt ontwikkeld door Raymond Hill, die ook verantwoordelijk is voor de ­reclame- en tracking-blocker uBlock. Daar hebben we het in een eerder artikel in onze vijfdelige serie over Firefox veilig maken al over gehad (ziet c’t magazine uitgave 6/2019, pagina 112).

Onder de naam ‘uMatrix (door Raymond Hill)’ staat de add-on bij Mozilla onder de Extensies. Na het installeren zie je rechts bovenin de werkbalk van Firefox een groen-rode matrix naast de adresbalk.

Meteen na het installeren is uMatrix al actief, maar nog wel met de standaardinstellingen. Daarbij worden al verschillende resources van derde bronnen geblokkeerd:

  • cookies: de opgeroepen website mag cookies installeren en gebruiken, een vreemde site niet
  • stylesheets: Firefox mag stylesheets en fonts in het algemeen downloaden, ook van vreemde bronnen
  • afbeeldingen: de browser mag afbeeldingen overal vandaan downloaden
  • media: Firefox mag video’s, audio en plug-ins ­(<object>) alleen van het aangeroepen domein ­embedden
  • script: alleen het aangeroepen domein mag Java­Script leveren, derde partijen niet
  • XHR: bij die categorie horen elementen die in staat zijn om delen van een website dynamisch te actualiseren, bijvoorbeeld XMLHttpRequest, Fetch en WebSockets. Firefox mag XHR alleen van het aangeroepen domein embedden
  • frame: frames zijn een overblijfsel uit de begintijd van het internet en worden nog maar zelden gebruikt. Alleen de aangeroepen website mag die gebruiken
  • overige: onder die categorie vallen resources die niet bij een van de eerder genoemde kunnen worden ondergebracht, zoals CSP-reports, XSLT-resources en ­alles wat uMatrix verder niet kent. Alleen de aangeroepen website mag die embedden

Die standaardinstellingen zijn zinvol. Als je meer controle wilt hebben, kun je de instellingen echter aanpassen. Daarvoor moet je een beetje de weg vinden in de matrix – en de gebruikersinterface en het hart van uMatrix. Die open je door op het Matrix-pictogram te klikken.

De matrix geeft een overzicht hoeveel content van welke typen de aangeroepen website wilde laden – en welke daarvan geblokkeerd zijn. De kolommen representeren daarbij de resources zoals cookies, scripts et cetera.

De rijen laten de herkomst van de content zien van het aanroepende domein, subdomeinen en domeinen van derde bronnen – zie de afbeelding hieronder.

Firefox veilig maken uMatrix overzicht betekenis blokkeren laden

De matrix geeft een overzicht van hoeveel content van welk type vanuit welke domeinen door een website geladen wordt – en welke daarvan geblokkeerd is.

uMatrix blokkades

Binnen de kleurige cellen geeft uMatrix aan hoe veel elementen er van een domein komen en of Firefox die geladen of geblokkeerd heeft. De pastelgroene cel in de kolom ‘cookie’ en de rij ‘www.ct.nl’ laat bijvoorbeeld zien dat de betreffende content geladen werd: er zijn in totaal 14 cookies door de website opgeslagen. uMatrix maakt onderscheid tussen de volgende kleuren:

  • donkerrood: de door uMatrix geblokkeerde content
  • pastelrood: geërfde blokkeerregels op basis van de logica van uMatrix. Het domein googletagservices.com is bijvoorbeeld donkerrood. Dat werkt door naar de hele regel: uMatrix blokkeert dan alle content en maakt de cellen van die rij pastelrood
  • donkergroen: websites mogen content in de context van een website downloaden
  • pastelgroen: geërfde vrijgave op basis van de logica van uMatrix. De resource ‘afb.’ is bijvoorbeeld donkergroen. Dat werkt dan door op de gehele kolom, die door uMatrix dan pastelgroen wordt gekleurd

Als de kolom- en rijregels elkaar tegenspreken, wint de rij, bijvoorbeeld bij de kolom ‘CSS’ en de rij ‘p.typekit.net’. De kolom ‘CSS’ is donkergroen, dus zou het leveren van alle stylesheets toegestaan moeten zijn.

uMatrix blokkeert echter alle content van de derde partij typekit.net en wel op basis van een globale blokkeerregel die bij de standaardinstellingen van de add-on al toegevoegd is. De globale blokkeerregels kun je vinden bij het dashboard van uMatrix. Daar kom je bij door op de zwarte balk te klikken die je ziet als je het uMatrix-venster opent. Op het tabblad ‘Middelen’ laat uMatrix zien welke filterlijsten er gebruikt worden. Op een van die lijsten staat ook het betreffende domein typekit.net, wat ertoe leidt dat de add-on die stylesheet niet geladen heeft.

Dergelijke geblokkeerde content staat vaak niet voor niets op een blokkeerlijst. Het gaat dan bij een afbeelding bijvoorbeeld om een tracking-pixel waarmee verschillende gegevens over de browser van de bezoeker achterhaald kunnen worden zoals displayresolutie, user-agent en venstergrootte.

Aanbevolen instellingen

De volgende instellingen zullen ervoor zorgen dat veel websites niet meer goed werken zonder de uMatrix-­regels handmatig aan te passen. Dat betekent dat je moet ingrijpen om de functies en content van een website die je bij je bezoek nodig hebt weer te activeren.

uMatrix heeft een hele speciale manier van omgaan met cookies: ook geblokkeerde cookies worden in eerste instantie geaccepteerd en in de browser opgeslagen. Op de achtergrond houdt uMatrix echter tegen dat informatie uit de cookies weer uit de browser naar buiten gaat. Dat geeft je onder meer de mogelijkheid de cookies en de inhoud daarvan te controleren.

Omdat uMatrix die cookies niet tot het einde van hun levensduur bewaart, kunnen de geblokkeerde cookies automatisch weer verwijderd worden. Daarvoor moet je een vinkje zetten bij ‘Instellingen / Privacy / Geblokkeerde cookies verwijderen’.

Je kunt de standaardinstellingen ook zo aanpassen dat cookies in het algemeen geblokkeerd worden – ook die van de aangeroepen website, oftewel het zogeheten first-party-domain. Daarvoor open je de instellingen van uMatrix en ga je daar naar het tabblad ‘Mijn regels’. Daar voeg je de regel
* * cookie block
toe aan de ‘Tijdelijke regels’ en voeg je die met ‘Vastleggen’ toe aan de ‘Permanente instellingen’. Daarna wordt bij alle cookies verhinderd dat ze de browser kunnen verlaten.

uMatrix regelt de omgang met JavaScript op dezelfde manier. Om JavaScript in zijn geheel te blokkeren, voeg je de volgende regel toe
* * script block
Zelfs voor ervaren gebruikers is het soms een compleet raadsel waarom uMatrix ertoe leidt dat een website niet werkt zoals de bedoeling is.

Meestal is JavaScript de oorzaak bij het onderdrukken van functionaliteit. Als een website niet goed te gebruiken is, moet je daarom als eerste eens bij de JavaScript-instellingen gaan kijken.

Activeer JavaScript door op de betreffende cel te klikken en voer vervolgens een reload uit (F5 of Ctrl+F5). Daar zal de website opnieuw door geladen ­worden met de nieuwe instellingen. Als de website dan weer werkt zoals verwacht, dan kun je aangepaste regels permanent opslaan door op het slot­pictogram te klikken.

Wil je de aanpassingen niet permanent opslaan, geen probleem: je kunt ze ook altijd weer ongedaan maken. Klik op het pijltje-terug-pictogram. ­uMatrix verwerpt dan alle veranderingen die je voor de ­huidige website hebt aangebracht.

Firefox veilig maken uMatrix bedienen bediening knop blokkeren laden

Door op een afzonderlijke cel van de matrix te klikken, verander je de rechten.

Als je daarentegen op het pictogram met de twee pijlen wat verder rechts ernaast klikt, maakt uMatrix alle tijdelijke veranderingen ongedaan die je op bezochte websites hebt ingesteld.

Het kan natuurlijk voorkomen dat het vrijgeven van JavaScript voor het first-party-domein niet voldoende is en je nog meer content moet vrijgeven. Met name bij inlogpagina’s kunnen bijvoorbeeld cookies noodzakelijk zijn. Uiteindelijk is het enige mogelijke advies: uitproberen!

Om ervoor te zorgen dat je eenmaal ingestelde veranderingen bij een herinstallatie niet weer opnieuw hoeft te doen, heeft uMatrix een exportfunctie voor de instellingen. Op het tabblad ‘Mijn regels’ kun je je regels exporteren naar een bestand en vervolgens elders weer importeren.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

Add-ons combineren

In de overige artikelen uit deze Firefox-serie hebben we andere add-ons besproken die onderling min of meer wel goed samenwerken. Na het installeren van uMatrix moet je echter goed op wisselwerkingen met andere add-ons letten.

Als je uBlock Origin zodanig aangepast hebt dat JavaScript en frames van derde partijen geblokkeerd moeten worden, dan moet je dat nu ongedaan maken. Het blokkeren van JavaScript en frames wordt nu immers door uMatrix gedaan. Verder is het zonder meer aan te raden beide add-ons parallel te gebruiken omdat ze verschillende manieren van werken hanteren.

Het sterke punt van uBlock Origin zit in het op patronen gebaseerde herkennen van reclame en trackers. Dit gebeurt op basis van filterlijsten die compatibel zijn met Adblock Plus, zoals de EasyList (bijvoorbeeld imageshack.us###is_landing). Dergelijke filterlijsten kan uMatrix niet verwerken en het beperkt zich dan ook tot het op hosts gebaseerde filteren in combinatie met het matrixconcept.

First Party Isolation (FPI) isoleert bepaalde bestanden die een website wil opslaan in een afgeschermde omgeving. Met een actieve FPI is het echter niet mogelijk om surfdata van afzonderlijke domeinen te verwijderen. Daarom kan uMatrix de functie ‘Geblokkeerde cookies verwijderen’ ook niet uitvoeren – de Firefox-­API staat dat simpelweg niet toe. Dat moet je in het achterhoofd houden als je plotseling verschillende cookies bij Firefox tegenkomt die ­uMatrix eigenlijk had moeten verwijderen.

Om ervoor te zorgen dat toegestane cookies behouden blijven en geblokkeerde weer verworpen worden, gebruiken we daarnaast de twee add-ons Firefox Multi-Account Containers en Temporary Containers. Met de eerste kun je meerdere websites aan een container toekennen. Alle vertrouwenswaardige websites en de sites waarbij je een account hebt, krijgen daarbij een container toegewezen (privé, werk, bank, et cetera).

Door FPI kunnen de websites binnen een container niet bij de surfdata van andere websites komen. Alle andere websites worden door Firefox automatisch in een tijdelijke container geopend.

Alle daarin opgeslagen surfdata worden door de browser na het sluiten van het tabblad na twee minuten vervolgens automatisch compleet verwijderd – de tijdsduur is daarbij nog in te stellen. Met die combinatie zijn alle surfdata zoveel mogelijk van elkaar geïsoleerd en blijft er tegelijkertijd geen rotzooi in Firefox achter, maar wordt alles nog tijdens de sessie verwijderd.

NoScript heb je dan in het geheel niet meer ­nodig tenzij je de daarin geïntegreerde Cross-Site-Scripting-­beveiliging (XSS) nodig hebt. Die voorkomt dat vreemde content op een vrijgegeven website schadelijke code kan uitvoeren. Als je de bediening van uMatrix niet handig vindt of dat simpelweg teveel voor je is, dan kun je NoScript als alternatief ervoor blijven gebruiken.

Het downloaden van JavaScript van derde bronnen kun je met uMatrix in zijn geheel blokkeren. Dat kan samenwerken met de add-on Decentraleyes (besproken in in c’t magazine 6/2019 op pagina 116). Om ervoor te zorgen dat de daarin geïntegreerde JavaScript-resources (lokaal) geleverd kunnen worden, moet je de uMatrix-regels aanpassen, want anders blokkeert uMatrix het laden van de lokale Java­Script-resources en verlies je het voordeel van Decentraleyes.
De volgende regels moet je dan op het tabblad ‘Mijn regels’ bij uMatrix toevoegen:
* ajax.googleapis.com script noop
* ajax.aspnetcdn.com script noop
* ajax.microsoft.com script noop
* cdnjs.cloudflare.com script noop
* code.jquery.com script noop
* cdn.jsdelivr.net script noop
* yastatic.net script noop
* yandex.st script noop
* apps.bdimg.com script noop
* libs.baidu.com script noop
* lib.sinaapp.com script noop
* upcdn.b0.upaiyun.com script noop
* cdn.bootcss.com script noop
* sdn.geekzu.org script noop
* ajax.proxy.ustclug.org script noop

Lees meer over veilig online betalen in c't dec/2019

Geldigheid van regels

Als je uMatrix voor je eigen situatie wilt aanpassen, zijn er nog meer opties. Met zogeheten scopes kun je bijvoorbeeld het geldigheidsgebied van regels beïnvloeden. Als je de bovenstaande regels netjes hebt uitgevoerd, heb je zowel cookies alsook JavaScript compleet verboden.

Je kunt voor bepaalde websites JavaScript en cookies echter weer toestaan. Op deze manier laat je voor de scope ct.nl de cookies weer toe:
ct.nl 1st-party cookie allow

De leercurve van uMatrix is relatief stijl: je kunt in de meeste gevallen wel makkelijk ontdekken waarom een bepaalde website niet werkt zoals je had verwacht en de daarvoor benodigde content toestaan.

Als je een keer niet verder komt, is de uMatrix-­wiki een goed beginpunt voor meer tips en trucs. Content van bepaalde websites wil je misschien globaal toestaan of verbieden, zoals YouTube-video’s. Op de uMatrix-wiki wordt aan de hand van een voorbeeld getoond hoe dat gaat.

about:config

De meeste browsers maken standaard om de meest uiteenlopende redenen verbinding met verschillende servers en diensten – ook Firefox is daar met de standaardinstellingen geen uitzondering op. Firefox neemt onder meer contact op met Mozilla voor de volgende doeleinden:

  • telemetrie
  • gezondheidsbericht software
  • crashmeldingen
  • ‘hartritme’

Naast het doorsturen van dergelijke diagnosedata maakt Firefox achter de coulissen daarbij nog meer verbindingen met vreemde servers. Een kleine selectie daaruit:

  • captive-portal: voor het herkennen van portalsites bij wifi-hotspots (bijvoorbeeld bij hotels) roept Firefox bij het starten en bij andere gebeurtenissen de url http://detectportal.firefox.com/success.txt aan
  • locatieservice: voor het bepalen van de locatie (voor websites) gebruikt Firefox de Google Location Service. Daarbij geeft de browser het IP-adres door aan Google, samen met informatie over de zich in de buurt bevindende wifi-accesspoints en een identifier, die elke twee weken vervalt. Firefox vraagt vóór het bepalen van de locatie in elk geval wel om toestemming
  • zoekvoorstellen: standaard stuurt Firefox elke afzonderlijke letter die je op de adresbalk intypt door naar een zoekmachine – ongeacht of je daar naar wilt zoeken of niet. De zoekmachine geeft op basis van wat je intypt zoekvoorstellen. De zoekmachine krijgt daardoor alles mee wat je intypt, en dus ook wachtwoorden die je per ongeluk met copy-paste in het zoekveld kopieert

De genoemde functies hebben zeker een nut en zullen voor de meeste gebruikers onder bepaalde omstandigheden een meerwaarde hebben.

Je moet echter wel in het achterhoofd houden dat je browser daardoor permanent data naar derde partijen aan het sturen is. Als je dat wilt uitzetten, moet je diep in de schakelcentrale van Firefox ingrijpen, want niet alle functies zijn makkelijk via de grafische inter­face uit te zetten.

Met het intypen van about:config op de adresbalk start je de configuratie-editor van Firefox – een krachtige commandocentrale waarmee je ook opties kunt bewerken die via de grafische instellingen niet te bereiken zijn.

Een verkeerde of ondoordachte verandering kan wel negatief uitwerken op de security en op je ­privacy bij het rondklikken op internet. Voordat Firefox toestaat dat je de configuratie bewerkt, krijg je dan ook een duidelijke waarschuwing te zien die je eerst moet bevestigen.

Je hoeft echter niet het risico te lopen dat je door een fout met about:config de hele browser lamlegt, want er is nog een andere methode voor de Firefox-­configuratie. Alle aanpassingen zijn ook in een bestand met de naam user.js te zetten.

Daarbij gaat het om een configuratiebestand in JavaScript-formaat, dat Firefox bij elke start van de browser inleest en toepast. Een user.js-bestand maakt het ook makkelijker om gebruikersspecifieke instellingen te gebruiken bij een ander profiel of een andere Firefox-installatie.

Ingebruikname user.js

Het bestand user.js is in principe niets anders dan een tekstbestand met de extensie .js. Je kunt dat met een teksteditor zelf aanmaken of het sjabloon bij de link aan het eind van dit artikel downloaden en openen.

Vervolgens moet je het bestand naar de profielmap van Firefox kopiëren, zodat de instellingen en parameters worden toegepast. De profielmap bevat onder meer je favorieten, geïnstalleerde add-ons en andere gegevens die nodig zijn voor het gebruik van Firefox.

Met een eenvoudige truc kom je zonder al teveel te moeten zoeken in de profielmap – waarbij het niet uitmaakt op welk systeem je werkt. Klik in het Firefox-menu op ‘Help / Probleemoplossingsinformatie’, waarna een tabblad opent met veel informatie.

Firefox veilig maken profiel map locatie directory profielmap

Bij de Probleemoplossingsinformatie kun je zien waar je profiel bewaard wordt.

Klik dan bij Toepassingsbasics bij het item Profielmap op de knop ‘Map openen’ om naar de profielmap te gaan van de huidige Firefox-gebruiker. Naast de knop staat meteen ook waar die profielmap zich bevindt.

Als je de profielmap geopend hebt, beëindig je de Firefox-browser. Voordat je het user.js-sjabloon naar die map kopieert, moet je eerst een back-up van het bestand prefs.js maken, dat in de profielmap staat. Daar staan de huidige instellingen in. Die heb je nodig als je de veranderingen die je met user.js hebt aangebracht makkelijk weer ongedaan wilt maken.

Daarna kun je user.js naar de profielmap kopiëren en vervolgens Firefox herstarten, waardoor alle parameters ingeladen en toegepast worden.

Als je de veranderingen weer ongedaan wilt maken, dan kun je simpelweg de back-up van het bestand prefs.js weer terug kopiëren en user.js verwijderen. Daarbij moet je echter wel opletten dat alle veranderingen die je zelf gedaan hebt dan weer teruggaan naar het moment dat je de back-up van prefs.js hebt gemaakt.

Sjabloon user.js

Het user.js-sjabloon deactiveert met name de telemetrie- en diagnosefuncties van Firefox in vergaande mate. Het volgende wordt door de aanpassingen gedaan:

  • meer privacy wat betreft Mozilla: je doet niet meer mee aan onderzoeken en experimenten van Mozilla, die standaard telemetriedata versturen of crashmeldingen doorgeven en gevoelige informatie kunnen bevatten
  • Google Safe Browsing wordt gedeactiveerd: vanuit security-overwegingen is het deactiveren niet meteen aan te raden, maar je blokkeert malware- en phishing-sites al met de add-on uBlock Origin als je alle artikelen in de serie toepast. Door het deactiveren van Google Safe Browsing ontkoppel je wel de ongewenste verbinding met Google
  • meer privacy ten opzichte van zoekmachines: niet meer elke afzonderlijke letter wordt naar de ingestelde zoekmachine doorgestuurd zonder dat je zelf om een zoekopdracht gevraagd hebt. Als je die functie toch wilt behouden, verwijder je de volgende regels uit het user.js-sjabloon:
    ## Disable location bar LIVE
    search suggestions
    user_pref(„browser.search.:
    .suggest.enabled“, false);
    user_pref(„browser.urlbar.:
    .suggest.searches“, false);
  • minimale verbetering van de (visuele) beveiliging: er is op dit moment geen fatsoenlijke reden meer waarom een website of een dienst niet met TLS versleuteld aangeboden wordt. Zodra Firefox een onversleutelde verbinding met een website maakt, wordt dat visueel meteen duidelijk gemaakt. Voor de url verschijnt een doorgestreept slotje, en als je daar op klikt krijg je de melding ‘Verbinding is niet beveiligd’

De beschikbaar gestelde user.js moet al met al geen invloed hebben op de functionele werking van Firefox en in combinatie met uBlock Origin worden malware en phishing toch geblokkeerd. Je krijgt wel wat meer privacy en security.

Als ervaren gebruiker kun je Firefox met behulp van about:config en user.js perfect aan je eigen wensen aanpassen. Als je meer wilt weten over user.js, moet je zeker eens een bezoek brengen aan het ghacks-user.js-project.

Daar staat ook een user.js-bestand met veel optimalisaties van de opties voor security en privacy. De wiki op de GitHub-pagina van het project verklaart de aanpassingen gedetailleerd en gaat ook in op een groot aantal speciale gevallen.

Tot slot

Voor gebruikers die waarde hechten aan het beschermen van hun privacy, is Firefox de beste browser. Geen andere browser is op een dergelijke privacy-­vriendelijke manier te gebruiken.

Daar is aan de andere kant wel wat moeite voor nodig, omdat er aardig wat lacunes zijn waardoor je data bij reclamebureaus of andere externe bedrijven terecht kunnen komen.

We hopen dat de serie aan voorgaande Firefox-artikelen in c’t magazine en dit artikel je een beetje de ogen geopend hebben voor alle samenhangende aspecten op het gebied van privacy en security bij het surfen op internet.

Hopelijk kun je daarmee een praktische weg vinden die het mogelijk maakt om je eigen privacy zo veel mogelijk te beschermen.

(Mike Kuketz en Noud van Kruysbergen, c’t magazine)

Lees uitgebreide achtergrondinfo op je gemak in c't mrt/2020

Deel dit artikel

Lees ook

Nieuw-menu sneller maken in Windows Verkenner

Via Windows Verkenner kun je bestanden openen en verwijderen, maar ook nieuwe bestanden aanmaken. Je kunt het bijbehorende Nieuw-menu sneller maken of...

Raspberry Pi wekkerradio maken (met internetradio en eigen muziek)

Met ons project voor een Pi-wekkerradio maken kun je podcasts, radiostreams of muziek van streamingdiensten en natuurlijk je eigen muziekbibliotheek h...

0 Praat mee

avatar
  Abonneer  
Laat het mij weten wanneer er