Overslaan naar hoofdinhoud

Wat is session hijacking en hoe werkt het?

Een vrouw werkt op een laptop

De meeste mensen loggen elke dag wel in op websites of portals. Elke keer dat je je inlogt op een website, wordt er een sessie aangemaakt. Een sessie is de communicatie tussen twee systemen die actief blijft, totdat de gebruiker de communicatie stopzet. Sessies zijn van essentieel belang voor online communicatie, maar zorgen ook voor risico's op session hijacking. Lees verder voor meer informatie over session hijacking, hoe het werkt en hoe je jezelf kunt beschermen.

Wat is session hijacking?

Session hijacking wordt soms ook cookie hijacking, cookie side-jacking of TCP session hijacking genoemd. Dit gebeurt wanneer een aanvaller je internetsessie overneemt. Dit kan gebeuren wanneer je bijvoorbeeld online aan het winkelen bent, een rekening betaalt of je banksaldo bekijkt. Session hijackers richten hun peilen vaak op browsers of webapplicaties en hun doel is om je browsersessie over te nemen, om zo toegang te krijgen tot persoonsgegevens en wachtwoorden.

Session hijackers laten websites denken dat ze jou zijn. Dit soort aanvallen kunnen grote gevolgen voor de beveiliging van de applicatie hebben, omdat aanvallers zo zonder toestemming toegang krijgen tot beschermde accounts (en de gegevens in die accounts) door zich voor te doen als normale gebruikers.

Wat is een sessie?

Elke keer dat een gebruiker een website of applicatie opent via een HTTP-verbinding, controleert de service de gebruiker (bijvoorbeeld aan de hand van een gebruikersnaam en wachtwoord), voordat de communicatielijn wordt geopend en toegang wordt verleend. HTTP-verbindingen zijn echter 'staatloos', wat betekent dat elke actie die een gebruiker onderneemt afzonderlijk wordt bekeken. Hierdoor zouden gebruikers, indien we volledig afhankelijk zouden zijn van HTTP, zichzelf voor elke interactie of pagina die ze bezoeken opnieuw moeten authenticeren.

Sessies lossen dit probleem op. Zodra een gebruiker inlogt, wordt er een sessie gemaakt op de server waarop de website of applicatie wordt gehost. Deze sessie wordt vervolgens als verwijzing gebruikt voor de initiële authenticatie. Gebruikers blijven geauthenticeerd zolang de sessie is geopend op de server en wordt beëindigd door uit te loggen bij de service. Sommige services beëindigen sessie na een bepaalde periode zonder activiteit.

Veel services maken deze sessies door een sessie-ID toe te wijzen. Dit is een reeks nummers en letters die wordt opgeslagen in tijdelijke sessiecookies, URL's of verborgen velden op de website. In sommige gevallen worden deze sessie-ID's versleuteld. Vaak worden sessie-ID's gebaseerd op voorspelbare gegevens, zoals het IP-adres van een gebruiker.

Hoe werkt sessiehijacking?

Hier is een hypothetisch voorbeeld van hoe session hijacking in zijn werk kan gaan:

Stap 1: een internetgebruiker logt zoals gewoonlijk in op een account. 

Bijvoorbeeld op een bankaccount, een creditcardaccount, een webwinkel, applicatie of portal. De applicatie of website installeert een tijdelijke sessiecookie in de browser van de gebruiker. De cookie bevat gegevens over de gebruiker waarmee de site deze kan blijven authenticeren en de gebruiker ingelogd blijft, en zodat de activiteiten van de gebruiker kunnen worden geregistreerd. De sessiecookie blijft in de browser, totdat de gebruiker uitlogt (of automatisch wordt uitgelogd na een bepaalde periode zonder activiteit).

Stap 2: een crimineel krijgt toegang tot de goedgekeurde sessie van de internetgebruiker 

Cybercriminelen gebruiken verschillende manieren om sessie over te nemen. Session hijacking gebeurt vaak door de sessiecookie van de gebruiker te stelen, de sessie-ID in de cookie te zoeken en die informatie vervolgens te gebruiken om de sessie over te nemen. De sessie-ID wordt ook wel de sessiesleutel genoemd. Wanneer criminelen de sessie-ID in handen krijgen, kunnen ze onopgemerkt de sessie overnemen.

Stap 3: de sessie-hijacker krijgt vrij spel nadat de sessie is overgenomen.

Zodra de oorspronkelijke internetgebruiker verdergaat met andere dingen, kan de hijacker de huidige sessie gebruiken om allerlei kwaadaardige acties te ondernemen. Dit betekent dat de hijacker geld kan stelen via de bank van de gebruiker, artikelen kan kopen, persoonlijke gegevens kan stelen om identiteitsfraude te plegen of belangrijke gegevens versleutelen om de gebruiker af te persen.

Session hijack-aanvallen worden meestal uitgevoerd op drukke netwerken met heel veel actieve communicatiesessies. Zo heeft de aanvaller de keuze uit heel veel sessies om misbruik van te maken. Dit biedt ook een goede dekmantel voor aanvallers, omdat het grote aantal actieve sessies op de server betekent dat ze minder opvallen.

Soorten session hijacking

Cross-site scripting
Een cross-site scripting-aanval betekent dat cybercriminelen misbruik maken van de zwakke plekken van de bescherming van een webserver of applicatie. Bij cross-site scripting voegt een aanvaller scripts toe aan webpagina's. Hiermee wordt de sessiesleutel van de webbrowser zichtbaar voor de aanvaller, zodat hij of zij de sessie kan overnemen.

Session side jacking (ook wel session sniffing genoemd)
Bij dit soort aanvallen hebben criminelen toegang nodig tot het netwerkverkeer van de gebruiker. Ze kunnen toegang krijgen wanneer de gebruiker een onbeveiligde Wi-Fi-verbinding gebruikt of door man-in-the-middle-aanvallen uit te voeren. Bij session side jacking gebruikt een crimineel 'packet sniffing' om het netwerkverkeer van een gebruiker te in de gaten te houden om te zoeken naar sessies. Zo kan de aanvaller een sessiecookie in handen krijgen, waarmee de sessie kan worden overgenomen.

Session fixation 
Bij een session fixation-aanval maakt de crimineel een sessie-ID, waarmee de gebruiker nietsvermoedend een sessie begint. Dit kan worden gedaan door een e-mail naar de gebruiker te versturen met een link naar een inlogformulier voor de website waartoe de aanvaller toegang wilt. De gebruiker logt in met de nepsessie-ID, waardoor de aanvaller ook toegang krijgt.

Man-in-the-browser-aanval
Deze aanval lijkt op man-in-the-middle-aanvallen, maar hier infecteert de aanvaller de pc van de gebruiker eerst met een trojan. Zodra het slachtoffer nietsvermoedend malware op het systeem installeert, wacht de malware totdat het slachtoffer een van de beoogde websites bezoekt. De man-in-the-browser-malware kan ongezien transactiegegevens aanpassen en kan zonder dat de gebruiker het doorheeft aanvullende transacties doen. Aangezien de verzoeken worden verstuurd vanaf de pc van het slachtoffer, is het voor webservices erg lastig om nepverzoeken te onderscheiden van echte verzoeken.

Token-ID van voorspelbare sessies
Veel webservers gebruiken een aangepast algoritme of vooraf gedefinieerd patroon om sessie-ID's te genereren. Hoe voorspelbaarder de sessietoken, hoe zwakker de beveiliging. Indien aanvaller meerdere ID's kunnen achterhalen en het patroon analyseren, kunnen ze in sommige gevallen een geldige sessie-ID voorspellen. (Deze aanpak is vergelijkbaar met brute-force-aanvallen.)

Een vrouw logt in op een bankwebsite

Wat is het verschil tussen session hijacking en session spoofing?

Session hijacking en session spoofing lijken sterk op elkaar, maar zijn niet volledig hetzelfde. Het grootste verschil tussen deze twee is dat session hijacking gebeurt wanneer een echte gebruiker reeds is ingelogd op een websessie. Sessio spoofing gebeurt wanneer aanvallers een gebruiker imiteren om een nieuwe websessie te openen (wat inhoudt dat de gebruiker op dat moment niet ingelogd hoeft te zijn).

Dit verschil zorgt ervoor dat echte gebruikers deze aanvallen op een andere manier ervaren. Bij session hijacking kan een aanvaller die de sessie onderbreekt ervoor zorgen dat de website of applicatie vreemd of helemaal niet functioneert voor het slachtoffer. Maar aangezien gebruikers niet actief zijn ingelogd tijdens een session spoofingaanval, ervaren ze geen problemen tijdens hun volgende sessie.

Impact van session hijacking-aanvallen

Als je geen maatregelen neemt om session hacking te voorkomen, kan dat veel risico's met zich meebrengen. Deze risico's bestaan uit:

Identiteitsdiefstal 

Door zonder toestemming toegang te krijgen tot vertrouwelijke persoonsgegevens die zijn opgeslagen in accounts, kunnen aanvallers de identiteit van een slachtoffer ook buiten de gehackte website of applicatie stelen.

Financiële diefstal

Dankzij session hijacking kunnen aanvallers namens de gebruiker financiële transacties uitvoeren. Er wordt dan bijvoorbeeld geld overgemaakt via de bank of er wordt een aankoop gedaan met opgeslagen betaalgegevens.

Infectie met malware

Als hackers de sessie-ID van een gebruiker stelen, kunnen ze ook malware op de pc van de gebruiker plaatsen. Ze kunnen ze de pc van hun doelwit overnemen en gegevens stelen.

DoS-aanvallen (Denial of Service)

Een hacker die de sessie van een gebruiker kan overnemen, kan een DoS-aanval uitvoeren op de website of server waarmee de gebruiker is verbonden. Zo wordt de service onderbroken of wordt de website onbereikbaar.


Toegang tot aanvullende systemen via SSO

SSO staat voor 'single sign on'. Aanvallers kunnen ook zonder toestemming toegang krijgen tot aanvullende systemen indien SSO is ingeschakeld, waardoor het risico op een session hijacking-aanval nog verder wordt verspreid. Dit is vooral voor organisaties een groot risico, aangezien vele tegenwoordig SSO inschakelen voor medewerkers. Dit betekent dat zelfs goed beschermde systemen met strenge authenticatieprotocollen en minder voorspelbare sessiecookies, zoals systemen met financiële gegevens of klantgegevens, zo veilig zijn als de zwakste schakel in het systeem.

Voorbeelden van session hijacking-aanvallen

Zoom bombing
Tijdens de Covid-19-pandemie gebruikte iedereen apps als Zoom om te videobellen. Deze apps werden een geliefd doelwit voor session hijackers, waardoor het zelfs de bijnaam 'zoom bombing' kreeg. Er waren meldingen van session hijackers die konden meeluisteren met privégesprekken en in sommige gevallen zelfs scheldwoorden schreeuwden en pornografische afbeeldingen deelden. Als reactie hierop introduceerde Zoom verbeterde privacymaatregelen om het risico hierop te beperken.

Slack
In 2019 identificeerde een onderzoeker op een bugbountyplatform een kwetsbaarheid in Slack waardoor aanvallers gebruikers geforceerde konden omleiden naar sessies waarin hun sessiecookies konden worden gestolen. Zo kregen aanvallers toegang tot alle gegevens die binnen Slack werd gedeeld (en voor veel organisaties zijn dat heel wat gegevens). Slack reageerde snel en had het probleem binnen 24 uur na de melding opgelost.

GitLab

In 2017 identificeerde een beveiligingsonderzoeker een kwetsbaarheid in GitLab, waarbij sessietokens van gebruikers rechtstreeks in de URL te vinden waren. Uit verder onderzoek bleek dat GitLab ook blijvende sessietokens gebruikt die nooit verlopen. Dit betekent dat zodra een aanvaller een sessietoken in handen heeft, hij deze onbeperkt kan blijven gebruiken. Deze combinatie van openbare blootstelling en blijvende tokens vormt een groot risico, waardoor gebruikers het slachtoffer kunnen worden van aanvullen die worden uitgevoerd met session hijacking via een brute force-aanval. GitLab wijzigde de manier waarop die tokens worden gebruikt en opgeslagen, en nam daarmee de kwetsbaarheid weg.

Zo kun je session hijacking voorkomen

Volg deze tips ter preventie van session hijacking om je online veiligheid te verbeteren:

Gebruik geen openbare Wi-Fi-netwerken
Voer geen belangrijke acties uit via een openbare Wi-Fi-verbinding, zoals internetbankieren, online winkelen of inloggen op je e-mailadres of sociale-media-accounts. Er ligt mogelijk een cybercrimineel op de loer die packet sniffing gebruikt om sessiecookies en andere gegevens te achterhalen.

Gebruik een VPN
Als je toch een Wi-Fi-netwerk wilt gebruiken, gebruik dan een Virtueel Particulier Netwerk (VPN) om je beveiliging zoveel mogelijk omhoog te krikken en session hijackers op een afstandje te houden. Met een VPN verberg je je IP-adres en houd je je online activiteiten privé met een privétunnel waardoor al je online activiteiten worden omgeleid. Een VPN versleutelt de gegevens die je ontvangt en verstuurt.

Wees op je hoede voor phishing en andere online scams
Klik nooit op een link in een e-mail, tenzij je zeker weet dat de afzender betrouwbaar is. Session hijackers sturen soms e-mails met een link waarop je kunt klikken. Als je op de link klikt, wordt er mogelijk malware op je apparaat geïnstalleerd of word je naar een pagina omgeleid, waar je inlogt op een website met een sessie-ID die door de aanvaller is gemaakt.

Wees je bewust van websitebeveiliging
Bekende banken, e-mailproviders, webwinkels en sociale-mediawebsites hebben vaak beveiligingsmaatregelen die session hijacking voorkomen. Zorg dat je op websites zit met URL's die beginnen met HTTPS. De S staat voor secure (beveiligd). Als je verdacht ogende webwinkels of andere leveranciers bezoekt die mogelijk niet goed zijn beveiligd, kun je misschien het doelwit worden van een session hijacking-aanval.

Gebruik anti-virussoftware 
Installeer gerenommeerde anti-virussoftware die eenvoudig virussen kan opsporen en je kan beschermen tegen alle soorten malware (waaronder de malware die aanvaller gebruiken om session hijacking-aanvallen uit te voeren). Houd je systemen up-to-date door automatische updates aan te zetten op al je apparaten.

Gerelateerde producten:

Ook interessant

Wat is session hijacking en hoe werkt het?

Session hijacking betekent dat een aanvaller je internetsessie overneemt om zonder toestemming toegang te krijgen tot gegevens of andere middelen. Meer informatie.
Kaspersky logo

Gerelateerde artikelen