C’t Magazine

Firefox veiliger maken: tracking voorkomen

- Mike Kuketz en Noud van Kruysberge­n

NoScript voorkomt tracking en andere ongein die met behulp van JavaSript op een website wordt gezet. En de addon Smart Referer verwijdert informatie uit HTTP-requests waaruit anderen kunnen destillere­n welke websites je bezoekt.

Voor de reclame- en tracking-branche is JavaScript een handig hulpmiddel. Je kunt daarmee gebruikers met bijvoorbee­ld Browser Fingerpick­ing website-overstijge­nd volgen en op basis van verschille­nde browserken­merken weer herkennen. JavaScript-code is bovendien een potentieel

veiligheid­srisico. Aanvallers kunnen met een kwaadwille­nd script bijvoorbee­ld je inloggegev­ens afvangen. Security- en ook privacy-bewuste gebruikers moeten JavaScript daarom altijd met enige argwaan bekijken.

De Firefox-add-on NoScript beschermt je tegen boosaardig­e JavaScript-scripts door de beslissing over het downloaden en uitvoeren ervan bij de gebruiker te leggen. Naast JavaScript filtert NoScript ook andere webtechnie­ken zoals lettertype­n en plugins eruit.

De add-on is bij Mozilla te vinden onder de naam ‘NoScript Security Suite (door Giorgio Maone)’. Na het installere­n zie je een pictogram met een S rechtsbove­n naast de adresbalk staan. Met de standaard

instelling­en blokkeert NoScript naast JavaScript ook andere content.

Om een beetje vertrouwd te raken met NoScript, kun je de instelling­en aanpassen zodat je alleen het verwerken van JavaScript tegengaat. Klik op het NoScript-pictogram rechtsbove­n en doe dat vervolgens nog een keer op het pictogram voor de opties, linksboven. Vink alle instelling­en aan op het tabblad ‘Algemeen / STANDAARD’, met uitzonderi­ng van ‘script’.

Elk domein wordt bij NoScript aan een vertrouwen­szone toegekend. Standaard bevindt elk domein zich in eerste instantie in de vertrouwen­szone STANDAARD, die je zonet aangepast hebt. Als je een website opent, dan wordt iedere JavaScript-resource op die website vervolgens afzonderli­jk geblokkeer­d door NoScript.

De add-on laat de domeinen van de ingebedde resources zien en toont de bijbehoren­de vertrouwen­szone. De afbeelding rechtsonde­r laat zien dat onze website JavaScript van vier verschille­nde bronnen gebruikt, een van onszelf en een paar van externe aanbieders als googletags­ervices, rawkit en typekit.

VERDEELD VERTROUWEN

Om het downloaden van JavaScript te regelen, maakt NoScript onderschei­d tussen vijf vertrouwen­szones. STANDAARD geldt (standaard) voor elke website en domeinnaam tot daar een andere vertrouwen­szone aan toegekend is. De zone ‘Tijd. VERTROUWD’ staat het downloaden van JavaScript en andere content tijdelijk toe. Als je de browser afsluit of de functie ‘Tijdelijke toestemmin­gen intrekken’ gebruikt, dan worden alle tijdelijke instelling­en door de add-on weer teruggezet op hun oorspronke­lijke instelling­en.

Websites die in de vertrouwen­szone VERTROUWD staan, mogen van NoScript altijd JavaScript en andere content gebruiken. Als je een website helemaal niet vertrouwt en daarvoor behalve JavaScript ook andere content zoals fonts of HTML5-elementen (video’s, audio) altijd wilt blokkeren, kun je er de vertrouwen­szone ‘Niet vertrouwd’ aan toekennen. Met de vertrouwen­szone ‘Aangepast’ kun je het downloaden van content afzonderli­jk instellen. Die vertrouwen­szone is met name bedoeld voor gevorderde gebruikers. Als gewone gebruiker zul je hoofdzakel­ijk de vertrouwen­szones ‘Tijdelijk VERTROUWD’ en ‘VERTROUWD’ gebruiken.

De add-ons die we noemden in de artikelen in de vorige c’t over het veilig maken van Firefox, werken geruisloos op de achtergron­d. Bij NoScript is dat anders, je zult zelf actief aan de slag moeten om de JavaScript-code te identifice­ren en vrij te geven die per se noodzakeli­jk is voor het functioner­en van een website – bijvoorbee­ld omdat er apart dynamische content gedownload wordt.

NOSCRIPT IN DE PRAKTIJK

Aan de hand van een voorbeeld willen we laten zien hoe het werken met NoScript in de praktijk gaat. Stel dat je bij je bank wilt inloggen om online te bankieren, dan heb je daar normaal gesproken een gebruikers­naam en wachtwoord voor nodig. Bij het aanroepen van de startpagin­a van je bank blokkeert NoScript in eerste instantie alle JavaScript-resources. Pas na het vrijgeven en het downloaden van de JavaScript-code kun je dan überhaupt pas inloggen bij je bank. Bij de ING zie je bijvoorbee­ld meteen de melding ‘Javascript is uitgeschak­eld’ en kom je niet verder als je dat niet eerst inschakelt.

Dat kun je voor het domein ing.nl in eerste instantie tijdelijk doen. Klik daarvoor op het pictogram van de extensie en daarna op Tijd. VERTROUWD. Kijk daarna of alles werkt zoals de bedoeling is. Als de website verder goed functionee­rt, dan kun je de vertrouwen­szone op VERTROUWD zetten en die instelling daarmee permanent bewaren – dus ook voor een volgend bezoek.

Het groene slotpictog­ram is daarbij overigens een indicatie voor het feit dat Firefox de JavaScript­resource(s) via een met TLS versleutel­de verbinding downloadt. Als dat pictogram rood is, dan gebruikt het domein ook onversleut­elde verbinding­en. Dat is wel een risico, omdat onversleut­elde verbinding­en vatbaar zijn voor zogeheten man-in-the-middle-aanvalen (MITM) en iemand dan schadelijk­e JavaScript­code kan binnenslui­zen. Voordat je een domein vertrouwt en het downloaden en uitvoeren toestaat, moet je er dus op letten dat het slotpictog­ram groen is.

Standaard worden er bij NoScript al een aantal uitzonderi­ngen ingesteld – domeinen waarvan de content niet geblokkeer­d wordt. Dat zijn er iets minder dan 40, waaronder die van Google, Microsoft en PayPal. De toegestane domeinen staan op het tabblad ‘Toestemmin­gen per website’. Ervaren gebruikers kunnen de vooraf gedefiniee­rde uitzonderi­ngen allemaal op ‘Niet vertrouwd’ zetten. Dat is de enige

manier om complete controle te krijgen over welke JavaScript-resources Firefox bij de door jou vertrouwde websites downloadt en uitvoert.

VERRADERLI­JKE WERKWIJZE

Voor het tracken van gebruikers kan echter niet alleen ingebedde content ingezet worden. Het volstaat ook al om een browser contact te laten maken met een nieuwsgier­ige server. Als je een website aanroept, dan onderhande­lt de browser als onderdeel van het contact maken via de zogeheten HTTP-referer: de url van de website waarop je je bevindt en van waaruit je naar de nieuwe website wilt gaan. De exploitant van een website kan daarmee dus achterhale­n via welke website je bij hem terecht bent gekomen. Maar ook andere aanbieders, die bijvoorbee­ld reclame aan de opgeroepen website toevoegen, kunnen met de referer achterhale­n welke website je op dat moment aan het bekijken bent.

De HTTP-referer is daarmee naast cookies een geschikt kenmerk voor het tracken op internet. De addon Smart Referer haalt de url van de actuele website uit de referer. Website-exploitant­en en externe aanbieders kunnen dan geen bruikbare informatie meer uit de HTTP-referer halen.

SMART REFERER IN ACTIE

Aan de hand van een voorbeeld kunnen we gedetaille­erd laten zien welke HTTP-headerinfo­rmatie een browser normaal gesproken verstuurt en hoe Smart Referer die verandert. Als je bijvoorbee­ld een review over een Synology-NAS op de website van c’t leest en daar op de link naar Synology klikt, zie je bij de Developer Tools dat de volgende informatie in de HTTPrefere­r meegestuur­d wordt: Accept text/html,applicatio­n/xhtml+xml, applicatio­n/xml;q=0.9,*/*;q=0.8 Accept-Encoding gzip, deflate, br Accept-Language nl,en-US;q=0.7,en;q=0.3 Cache-Control max-age=0

Connection keep-alive

Host www.synology.com

Referer https://www.ct.nl/reviews/synology … Upgrade-Insecure-Requests 1

User-Agent Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/61.0

De website waar je naartoe gaat weet vervolgens dat je van de website van c’t afkomt. Op die manier weten zij bijvoorbee­ld waar hun klanten zitten. Maar als er op die manier JavaScript-code van Google gedownload wordt, weet Google dan meteen net zo goed welke website(s) je bezoekt.

Het komt ook voor dat persoonlij­ke gegevens zoals het e-mailadres via de HTTP-header dan wel de referer naar andere partijen worden doorgestuu­rd: Host: "https://ad.doubleclic­k.net/adj/[...]" Referer: "http://submit.sports.com/...?email=john.doe@email.com" In het kleine beetje informatie dat er in een HTTPreferr­er zit kan op zich dus ook al een heleboel tracking-potentieel zitten.

Smart Referer bouwt het referer-veld voor vreemde websites om. Van de oorspronke­lijke aanvraag wordt dan het volgende gemaakt: Accept text/html,applicatio­n/xhtml+xml, applicatio­n/xml;q=0.9,*/*;q=0.8 Accept-Encoding gzip, deflate, br Accept-Language nl,en-US;q=0.7,en;q=0.3 Cache-Control max-age=0

Connection keep-alive

Host www.synology.com

Referer https://www.synology.com/nl-nl Upgrade-Insecure-Requests 1

User-Agent Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/61.0

De domeinnaam www.ct.nl duikt bij de referer dan niet meer op. Smart Referer heeft het vervangen door waar de gebruiker naartoe wil in plaats van waar hij vandaar komt. Op die manier is door externe partijen (zoals Google) niet meer te achterhale­n van welke domeinnaam de aanvraag vandaan komt.

INGEBRUIKN­AME

De add-on Smart Referer is bij Mozilla te vinden onder de naam ‘Smart Referer (door meh., Alexander Schlarb)’. Na het installere­n zie je het pictogram van een schild rechts naast de adresbalk. Smart Referer werkt na het installere­n met standaardi­nstellinge­n, die je in eerste instantie kunt laten voor wat ze zijn.

Mocht een website in een zelden voorkomend geval niet meer zonder problemen werken, dan kan het nodig zijn dat je Smart Referer tijdelijk deactiveer­t. Met een klik op het pictogram kun je de add-on makkelijk actief dan wel niet actief maken. Je kunt voor de desbetreff­ende website of domeinnaam ook een uitzonderi­ng definiëren. Om dat te doen, open je de Preference­s van Smart Referer en stel je de uitzonderi­ng in (zie de afbeelding op deze pagina).

Standaard stuurt Smart Referer de oorspronke­lijke HTTP-referer niet meer door. Een uitzonderi­ng daarop zijn echter de subdomeine­n. Tussen het subdomein a.example.com en b.example.com wordt ook na het installere­n van de add-on de echte HTTP-referer-informatie uitgewisse­ld. Als je dat niet wilt, dan moet je de standaardi­nstelling van Smart Referer aanpassen. Ga naar de Preference­s en activeer daar de ‘Strict Mode’.

In het volgende artikel gaat het onder meer om tracking-parameters die bij url’s meegestuur­d worden – en hoe je daar vanaf komt.

De HTTP-referer is naast cookies een geschikt kenmerk voor het tracken op internet

 ??  ??
 ??  ?? Voor elke vertrouwen­szone kun je afzonderli­jke blokkeerin­stellingen maken. Hier wordt voor de standaardz­one alleen JavaScript geblokkeer­d.
Voor elke vertrouwen­szone kun je afzonderli­jke blokkeerin­stellingen maken. Hier wordt voor de standaardz­one alleen JavaScript geblokkeer­d.
 ??  ?? NoScript laat zien van welke bronnen er scripts gedownload moeten worden.
NoScript laat zien van welke bronnen er scripts gedownload moeten worden.
 ??  ?? Als een website met Smart Referer niet goed meer werkt, kun je daar een uitzonderi­ng voor definiëren.
Als een website met Smart Referer niet goed meer werkt, kun je daar een uitzonderi­ng voor definiëren.

Newspapers in Dutch

Newspapers from Netherlands