Session hijacking
Session hijacking of sessiehijacking is een vorm van hacking waarbij de sessie van een ander overgenomen wordt. Een sessie begint meestal met een handshake waarbij gegevens ter authenticatie uitgewisseld worden. Het achterhalen van deze gegevens kan toegang geven tot de account van de legitieme gebruiker.
In webtechnologie worden de sessiegegevens (de session key) opgeslagen in een cookie op de client. De inhoud van cookies kan op verschillende manieren gestolen worden.
Het hijacken van een TCP-sessie kan ook. Bijvoorbeeld als de hacker een machine beheerst op de route van de netwerkverbinding. Door het gebruik van een sniffer kan een man-in-the-middle-aanval uitgevoerd worden.
Methoden
bewerkenEr zijn diverse methoden, met verschillende technologie.
- Session fixation - de aanvaller bepaalt zelf het sessie-id, en mailt bijvoorbeeld een link met een bepaalde sessiesleutel, en wacht tot de gebruiker inlogt.
- Session sidejacking - de aanvaller gebruikt packet sniffing om de cookie te onderscheppen.
- Fysieke toegang - iemand met toegang tot de hardware kan de gegevens gewoon uitlezen.
- Cross-site scripting - de aanvaller zorgt dat er software wordt gedraaid op de machine van het slachtoffer door het te laten lijken alsof de software door de juiste server geleverd is.
Preventie
bewerkenZowel gebruikers als ontwikkelaars kunnen sessiehijacking voorkomen:
- Door het gebruik van lange willekeurige getallen of strings als sessiesleutel.
- Elke keer een nieuw sessie-id gebruiken na succesvol inloggen.
- Versleutelen van gegevens, met name de sessiesleutel.
- Controle op het juiste IP-adres. Beschermt niet als de aanvaller hetzelfde IP-adres deelt en is storend voor gebruikers met wisselende IP-adressen.
- Verander de waarde van de cookie bij elke transactie.
- Uitloggen als je klaar bent met het gebruik van een website.