fbpx

Pas op voor SSL Hijacking! (Deel 1)

Het is tegenwoordig een hot item: de volgende grote firma welke in enorme verlegenheid wordt gebracht vanwege een succesvolle hackpoging van buitenaf. Nog niet al te lang geleden haalde Sony de headlines, omdat een groot deel van de interne informatie, waaronder e-mails, documenten, contracten en zelfs niet uitgebrachte films, op straat waren komen te liggen. Hoe is dit nu mogelijk? Iedereen is vandaag de dag toch op de hoogte van de gevaren van het niet doorvoeren van een degelijke security beleid? Met dit voorbeeld als inleiding wil ik eens inzicht geven in een mogelijke methode welke door hackers gebruikt wordt om informatie buit te maken: SSL Hijacking.

Door: Timon van Rooijen

SSL Hijacking of SSL Spoofing is in feite een “Man In the Middle” (MITM) aanval waarbij de aanvaller op een gevoelige plek misbruik weet te maken van onze perceptie van de veiligheid van het Internet. Een website via HTTPS bezoeken is toch gegarandeerd veilig? We gaan er per definitie vanuit dat browsen op deze manier inderdaad veilig is en we denken hierdoor minder snel na over mogelijke risico’s. Omdat we hierdoor dus erg kwetsbaar zijn, is SSL Hijacking één van de meest succesvolle manieren van aanvallen.

Hoe werkt SSL?

Laten we beginnen bij een korte uitleg van SSL over HTTP, beter bekend als HTTPS. HTTPS is gebaseerd op het idee om vertrouwde certificaten te distribueren tussen (web)server, gebruiker (de client) en een betrouwbare 3e partij. Een verbinding opzetten vanaf een client naar een webserver omvat kort samengevat de volgende stappen:

  1. Je tikt de URL van de website in om te starten: bijvoorbeeld www.facebook.com.
  2. Je webbrowser maakt verbinding met die website. In eerste instantie via HTTP over poort 80.
  3. De webserver communiceert alleen veilig en stuurt een “redirect” terug naar de client.
  4. De client ontvangt de redirect en volgt deze. Je webbrowser maakt nu verbinding met de HTTPS versie van de website, normaal gesproken over poort 443.
  5. De webserver geeft zijn vertrouwde certificaat af aan de webbrowser van de client. Dit certificaat wordt door de webbrowser gebruikt om de identiteit van de webserver te verifiëren.
  6. De webbrowser of client PC verifieert het ontvangen certificaat tegen een lijst van vertrouwde uitgevende certificaat instanties. De zogenaamde “Trusted Certificate Authorities”.
  7. De “handshake” is afgerond, waarna er een versleutelde verbinding wordt opgezet op basis van de certificaten.

Het komt nog wel voor dat stap 6 niet succesvol wordt uitgevoerd. Bijvoorbeeld als je zelf op je webserver een “self-signed” certificaat uitrolt. Het certificaat is dan vaak ondertekend door de webserver zelf en er is geen vertrouwde 3e partij bij betrokken. Als deze stap niet succesvol is, dan presenteert dat zich meestal in je webbrowser via verschillende waarschuwingen, pop-ups en rode certificaat-icoontjes. Je kan dan in de meeste gevallen kiezen om alsnog door te gaan, maar je bent dan niet verzekerd dat je communiceert met de partij waarvan je denkt mee te communiceren. Een risico dus.

Hoe werkt SSL Hijacking?

De bedreiging van SSL Hijacking zit in het feit dat er erg vaak wordt gewisseld tussen onbeveiligde (HTTP) en beveiligde (HTTPS) communicatie. Door op het moment van wisselen aan te vallen kan een Man In The Middle aanval worden opgezet, zelfs voordat er überhaupt SSL verkeer is. Een voorbeeld van de opzet van zo een aanval is hieronder afgebeeld: resultaatgroep-blog-hoe_werkt_ssl_hijacking

Een hacker gaat bij een SSL Hijacking aanval op de volgende manier te werk:

  1. Al het verkeer tussen client en server wordt onderweg ondervangen en gemonitord. Dit is de Man In The Middle opzet. Het opzetten van een MITM aanval wordt doorgaans bereikt door gebruik te maken van technieken zoals Gateway Redirection, ARP Spoofing of DNS Spoofing.
  2. Op het moment dat een HTTPS webadres voorbijkomt wordt deze vervangen door een HTTP webadres. Vanaf de PC van de aanvaller wordt vervolgens wel een HTTPS verbinding opgezet naar de webserver.
  3. De webserver geeft niet de client PC, maar de aanvaller er tussenin zijn web certificaat af en zet met deze aanvaller de beveiligde verbinding op. Voor zover het voor de webserver van belang is, is een volledig geldige SSL verbinding opgezet. Niet met de client dus, maar met de aanvaller.
  4. Het HTTP(S) verkeer van de client wordt afgevangen, door de aanvallen aangepast en wederom als ‘echt’ SSL verkeer naar de webserver verstuurd.

De gebruiker denkt nu een veilige verbinding te hebben opgezet naar de webserver of webpagina, maar in feite is dit dus niet zo. Al het verkeer wordt onversleuteld verzonden en waar mogelijk automatisch op relevante informatie gescand. Alleen zeer oplettende gebruikers zullen opmerken dat de webpagina geen ‘dicht slotje’ vertoont en de sessie hierdoor niet beveiligd is. Vanwege het ontbreken van alerts in de browser zullen de meeste gebruikers dit niet direct door hebben, omdat men in de veronderstelling is dat er op een veilige HTTPS website is ingelogd.

Een vrij eenvoudig te verkrijgen (Open Source) tool die deze manier van redirecten uitbuit is “SSLstrip”. Het gaat wat ver om een stappenplan te noemen waarin het opzetten van een SSLstrip aanval wordt beschreven, maar een geïnteresseerde in de informatiebeveiliging die dit een in een lab eens wilt proberen kan dit vrij eenvoudig op het Internet vinden.

In de volgende blogpost over SSL Hijacking zal ik proberen te beschrijven hoe een hacker te werk gaat, maar ook hoe je jezelf kan beschermen tegen dit soort aanvallen. Mocht je geïnteresseerd zijn in meer informatie over ICT Security, dan kun je natuurlijk ook contact met ons opnemen.