SSL-stripping-aanvallen: gevaren en hoe u kunt voorkomen dat u wordt aangevallen

Tegenwoordig gebruiken de meeste websites de beveiligd HTTPS-protocol voor communicatie tussen clients en de webserver, dankzij dit protocol dat gebruik maakt van TLS en de cryptografische algoritmen die in de laatste zijn verwerkt, wordt de communicatie bovendien point-to-point gecodeerd. De authenticiteit van de verbinding en zelfs de integriteit van de gegevens worden gecontroleerd, zodat cybercriminelen de pakketten niet on-the-fly kunnen wijzigen. Er is echter een aanval op het HTTPS-protocol genaamd SSL-strippen , bestaat deze aanval uit het "opheffen" van de TLS-codering van de communicatie, zodat een cybercrimineel alle communicatie in platte tekst kan zien met behulp van HTTP. Wilt u alles weten over de SSL Stripping-aanval en hoe u uzelf kunt beschermen om te voorkomen dat een cybercrimineel uw communicatie in gevaar brengt?

SSL-stripping-aanvallen: gevaren en hoe u kunt voorkomen dat u wordt aangevallen

Hoe werkt het HTTPS-protocol?

Het HTTPS-protocol (Hypertext Transfer Protocol Secure) is de beveiligde versie van het populaire HTTP-protocol (Hypertext Transfer Protocol). Dit protocol bevindt zich in de applicatielaag en is gebaseerd op HTTP, maar de beveiliging van het TLS-protocol (op transportlaagniveau) is toegevoegd om point-to-point-beveiliging te bieden in alle verbindingen, van clients tot de webserver. Het TLS-protocol is een van de meest gebruikte om communicatiebeveiliging te bieden, daarnaast wordt het niet alleen gebruikt in HTTPS-verbindingen, maar ook in andere protocollen zoals FTPES (de versie van FTP, maar met de beveiligingslaag die TLS gebruikt) en zelfs virtueel privénetwerkprotocollen zoals OpenVPN. Het TLS-protocol (en dus ook het HTTPS-protocol op applicatielaagniveau) maakt gebruik van verschillende cryptografische algoritmen die ons de volgende kenmerken geven:

  • Vertrouwelijkheid : Vertrouwelijkheid in cryptografie betekent dat alle gegevens end-to-end worden versleuteld en dat alleen de bron en bestemming die gegevens kunnen "lezen". Als een cybercrimineel zichzelf in het midden van de communicatie plaatst (Man in the Middle-aanval), kan hij de informatie zonder problemen vastleggen, maar hij zal deze nooit kunnen lezen als hij niet over de persoonlijke decoderingssleutel beschikt.
  • Authenticity : dit kenmerk van cryptografie garandeert ons dat de gegevens authentiek zijn vanaf de oorsprong en dat er geen imitatie is geweest door een derde partij.
  • Integriteit : deze functie garandeert dat alle gegevens van oorsprong tot bestemming niet zijn gewijzigd, in het geval dat deze zijn gewijzigd door een kwaadwillende derde partij, die informatie kan worden gedetecteerd en verwijderd.

De toegang tot de certificeringen HTTPS-serienummer

Momenteel maakt het HTTPS-protocol voor de HTTP/2-versie gebruik van het TLS-protocol in zijn versie TLSv1.2 en ook TLSv1.3, deze twee protocollen worden momenteel als veilig beschouwd en er zijn geen kwetsbaarheden ontdekt die het gebruik ervan gevaarlijk maken. De TLSv1.3-versie is veel sneller dan de vorige versie, daarnaast ondersteunt het alleen veilige coderingssuites en staat het niet toe om minder veilige coderingssuites zoals TLSv1.2 te configureren.

Wat betreft de poorten, terwijl het HTTP-protocol het TCP-protocol in de transportlaag en poort 80 gebruikt, gebruikt het HTTPS-protocol de TCP-poort 443. De afgelopen maanden is het QUIC-protocol gestandaardiseerd voor webverbindingen, een protocol voor HTTPS wanneer HTTP / 2 en/of HTTP/3 wordt gebruikt en dat het UDP-protocol gebruikt om point-to-point-verbindingen te maken, bevat dit QUIC-protocol al veilige cryptografie met de nieuwste veilige cryptografische algoritmen zoals Chacha20-Poly1305 of AES-GCM.

Als we eenmaal weten hoe HTTPS werkt en welke protocollen we daaronder hebben in de verschillende TCP/IP-lagen, gaan we kijken waar de SSL Stripping-aanval uit bestaat om alle HTTPS-communicatie te decoderen.

Wat is de SSL Stripping-aanval?

Wanneer we een ARP Spooping-aanval uitvoeren en we zetten een sniffer in om al het verkeer op te vangen, wat we doen is al het netwerkverkeer dat door een bepaalde computer (het slachtoffer) wordt gegenereerd, in capaciteit opnemen. In het geval dat u niet-beveiligde protocollen zoals HTTP of FTP gebruikt, kunnen we gemakkelijk al uw communicatie, authenticatiegegevens en zelfs sessiecookies zien. Om deze reden is het zo gevaarlijk om verbinding te maken met het openbaar WiFi netwerken of onbetrouwbare netwerken, omdat elke cybercrimineel deze Man in the Middle-aanval kan uitvoeren en alle informatie kan vastleggen.

Als we een beveiligd protocol zoals HTTPS gebruiken, kan de aanvaller alle informatie zonder problemen vastleggen, maar hij kan niets van de inhoud ervan lezen, dat wil zeggen dat hij geen authenticatiegegevens kan zien, sessiecookies of helemaal niets, want al het verkeer is end-to-end versleuteld (van clients naar de webserver). Dankzij het TLS-protocol en cryptografische algoritmen zoals AES, is onze informatie vertrouwelijk, dat wil zeggen dat deze end-to-end wordt versleuteld.

SSL-stripping-aanvallen bestaan ​​uit het opzetten van een HTTP/HTTPS-proxy om dit versleutelde HTTPS-protocol te "liften", en het slachtoffer maakt gebruik van het HTTP-protocol om alle informatie te kunnen vastleggen en de gegevens erin te kunnen zien. Het proces dat zou moeten worden uitgevoerd om een ​​HTTPS-verbinding te schenden, is het volgende:

  1. Een ARP-spoofing-aanval op het slachtoffer uitvoeren , om al het netwerkverkeer naar ons door te sturen voordat het naar de router wordt doorgestuurd, op deze manier zullen we alle informatie vastleggen die dit slachtoffer verzendt en ontvangt.
  2. Wij zetten de snuffelaar aan het werk WireShark is bijvoorbeeld een zeer goede optie, het is een van de meest complete en gebruiksvriendelijke software en het is helemaal gratis.
  3. Controleer of we alles vastleggen het verkeer van het slachtoffer, op deze manier zorgen we ervoor dat de ARP-spoofing en de sniffer correct werken. In dit geval kunnen we zeker alleen DNS, ICMP en ander verkeer in leesbare tekst zien, maar geen HTTPS-verkeer omdat het end-to-end is versleuteld.

Zodra we deze drie stappen hebben uitgevoerd, moeten we een HTTP / HTTPS-proxy configureren met bijvoorbeeld gratis tools is Bettercap de beste tool die we kunnen gebruiken om dit soort aanvallen uit te voeren. Zodra we deze HTTP / HTTPS-proxy hebben geconfigureerd, zal het volgende gebeuren:

  1. Het slachtoffer zal proberen verbinding te maken met het web via het HTTPS-protocol, maar de HTTP / HTTPS-proxy die we hebben geconfigureerd, zal het slachtoffer vertellen dat de verbinding HTTP moet zijn, waarna onze HTTP / HTTPS-proxy de informatie naar het web kan doorsturen echt (Google, PayPal, Amazon etc.) via HTTPS. Op deze manier heeft de aanvaller alle gegevens in duidelijke tekst die van het slachtoffer en van de echte webserver komen en gaan, en voortdurend transformeren tussen HTTP en HTTPS en vice versa.
  2. De netwerksniffer die we eerder hadden geactiveerd, legt al het HTTP-verkeer vast en toont ons in duidelijke tekst de gebruikersgegevens, sessiecookies en alles wat het slachtoffer doet.

Zoals u kunt zien, is de mogelijkheid om een ​​SSL Stripping-aanval uit te voeren beschikbaar voor iedereen die gebruik maakt van gratis tools zoals Bettercap voor Linux, in feite heb je in dit artikel een complete tutorial om beveiligingsaudits uit te voeren en te controleren of een bepaald doelwit het tegen ons zou kunnen gebruiken, of dat we beschermd zijn tegen dit soort aanvallen.

Hoe kan ik mezelf tegen deze aanval beschermen?

Dit type aanval wordt veel gebruikt door cybercriminelen om al het verkeer van hun slachtoffers te verkrijgen, vooral in openbare netwerken, of het nu gaat om bekabelde netwerken of openbare wifi-netwerken, om deze reden wordt het afgeraden om verbinding te maken met dit soort netwerken dat we doen niet beheren. Als iemand echter in staat is om ons wifi-netwerk te hacken, zouden we in precies hetzelfde scenario zitten: we zitten op hetzelfde lokale netwerk als de cybercrimineel, ze kunnen ons een ARP-spoofing-aanval en ook een SSL-stripping-aanval maken. Om deze reden is het zo belangrijk om een ​​lijst bij te houden van bekabelde of WiFi-apparaten die zijn aangesloten op ons lokale netwerk, en van tijd tot tijd te controleren of er geen indringers zijn, daarnaast moeten we er ook voor zorgen dat niemand ons WiFi-netwerk kan betreden , het plaatsen van een WPA2-codering -AES en het uitschakelen van WPS (Wi-Fi Protected Setup).

Deze SSL Stripping-aanval kan niet voorkomen dat ze het ons aandoen als we ons op hetzelfde lokale netwerk bevinden als de aanvaller, maar wat we kunnen doen is voorkomen dat het effectief is, dat wil zeggen dat we de HTTPS-verbinding kunnen "opheffen", zodat de vertrouwelijkheid gehandhaafd blijft en we veilig kunnen navigeren. Momenteel zijn er verschillende methoden die we kunnen gebruiken om onszelf tegen deze aanvallen te beschermen, sommige zijn afhankelijk van de webbeheerder en andere zijn uitsluitend van ons afhankelijk.

Dat het web HSTS heeft ingeschakeld

HSTS of ook bekend als HTTP Strict Transport Security, is een beleid op webservers dat ons dwingt HTTPS in onze webbrowser te gebruiken om met de server te communiceren. Eerder hebben we uitgelegd dat de HTTP/HTTPS-proxyserver zonder problemen kan communiceren via HTTPS met de webserver, maar als een website HSTS heeft geactiveerd, wordt er een cookie in de browser opgeslagen die aangeeft dat die browser nooit het HTTP-protocol kan gebruiken om communiceren met de webserver, op deze manier hebben we point-to-point-beveiliging, zelfs als iemand binnendringt door een HTTP / HTTPS-proxy te plaatsen om de HTTPS van onze communicatie met het web te "opheffen".

Tegenwoordig zijn veel webservers van verschillende webpagina's correct geconfigureerd met dit beveiligingsbeleid om hun gebruikers te beschermen. Deze cookies die in de webbrowser van de klant worden opgeslagen, verlopen, maar wat wordt gedaan is om de duur zo lang mogelijk te houden (een jaar), om de klanten zo lang mogelijk te beschermen.

Het negatieve van HSTS is dat, als het de eerste keer is dat we een website bezoeken en ze een SSL-stripping uitvoeren, deze functie ons niet kan beschermen. De bescherming is vanaf het tweede bezoek omdat de cookie al is gedownload, tenzij we een lijst met vooraf geladen websites in onze webbrowser hebben, zoals gebeurt met de "grote" zoals Google en andere services. We zouden zelf een lijst met sites voor HSTS-preloading kunnen opzetten die door Google wordt geleverd als onderdeel van het Chromium-project.

In de Apache-webserver zouden we de volgende richtlijn moeten opnemen:

  • Header altijd ingesteld Strict-Transport-Security «max-age = 31536000; includeSubDomains »

In de Nginx-webserver zouden we de volgende richtlijn moeten opnemen:

  • add_header Strict-Transport-Security «max-leeftijd = 31536000; includeSubDomains »

We zouden ook aan het einde van deze richtlijnen de "preload" kunnen aangeven, om aan te geven dat deze vooraf is geladen in de webbrowser en om zonder problemen het web te kunnen betreden.

Om te controleren of een bepaalde website HSTS heeft ingeschakeld, hebt u altijd toegang tot de Officiële website van Qualys SSL Labs waar u alle gewenste websites kunt analyseren. Alvorens af te sluiten, moeten we aangeven dat deze HSTS-bescherming ook kan worden omzeild, op basis van: DNS Om het slachtoffer door te sturen naar een ander domein onder onze controle dat hetzelfde is als het origineel, met als doel hem te "bedriegen", bevat Bettercap deze functie ook.

Gebruik een VPN

Een andere methode om dit type aanval op HTTPS-verbindingen te voorkomen, is door een VPN onderhoud. Een virtueel particulier netwerk of VPN is verantwoordelijk voor het versleutelen van alle point-to-point-communicatie binnen een tunnel, daarom zou een aanvaller die ons een ARP-spoofingaanval uitvoert en een sniffer plaatst, alleen al het versleutelde verkeer zien, hij kon niets zien extra protocol, omdat DNS-resoluties ook binnen de VPN-tunnel gaan. Het is mogelijk dat de cybercrimineel deze VPN-tunnel probeert te "gooien", in feite zou hij dit kunnen bereiken door pakketten te injecteren en ervoor te zorgen dat de VPN-service stopt met werken voor de beveiliging, maar we moeten niet vergeten dat VPN's een functie hebben die Kill-Switch wordt genoemd. Met de Kill-switch-functionaliteit kunt u internetverkeer volledig blokkeren in het geval dat de VPN-tunnel valt of een probleem heeft, op deze manier hebben we de zekerheid dat onze gegevens niet worden gefilterd en kunnen ze ons ook geen ander type maken van aanvallen. Het is altijd beter om zonder internetverbinding te blijven dan dat informatie wordt gestolen.

Momenteel zijn er verschillende VPN-protocollen zoals: WireGuard, OpenVPN of IPSec IKEv2, ze zijn allemaal veilig en we kunnen ze gebruiken om te voorkomen dat iemand communicatie onderschept en de codering van het HTTPS-protocol opheft. Om deze reden wordt het ten zeerste aanbevolen om altijd dit type VPN te gebruiken als u verbinding gaat maken met bekabelde netwerken of openbare of onbeveiligde wifi-netwerken. We kunnen VPN-servers zelf configureren in ons lokale thuisnetwerk, als we een NAS-server hebben, heeft deze VPN-applicaties en zelfs sommige thuisrouters zoals ASUS, AVM-FRITZ! Box en zelfs D-Link of NETGEAR hebben dit soort servers om ons veilig met internet te verbinden, omdat ze het verkeer omleiden.

In het geval dat je niet de mogelijkheid of kennis hebt om een ​​VPN-server in je huis te installeren en configureren, is onze aanbeveling dat je VPN-services gebruikt zoals WARP van Cloudflare, die helemaal gratis is en heel goed werkt, je kunt high worden download- en uploadsnelheden en zeer lage latentie. Andere alternatieven die u kunt gebruiken zijn betaalde VPN-services, omdat ze applicaties hebben voor alle besturingssystemen, meerdere servers verspreid over de hele wereld en belangrijke functionaliteiten zoals de Kill-switch onder vele anderen.

Een SSH-tunneling uitvoeren

Een andere manier om uzelf te beschermen tegen SSL Stripping-aanvallen is door een SSH-tunnel uit te voeren met omleiding van verkeer. Deze techniek bestaat uit het verbinden met een externe SSH-server die vertrouwd is, en het instellen van een SOCKS-proxy om deze later in de webbrowser te configureren. Op deze manier zullen we webbrowserverkeer omleiden via de SSH-server waar we verbinding mee hebben gemaakt. Om dit te doen, moeten we de volgende stappen volgen:

  • Een SSH-server op een veilige manier configureren, poorten wijzigen, goede authenticatie en een goede cipher suite.
  • Activeer TCP-forwarding op de SSH-server, anders kunnen we, zelfs als we verbinding maken, geen internetverkeer doorsturen.
  • Configureer deze SSH-server in programma's zoals PuTTY en schakel doorsturen of doorsturen in een specifieke SOCKS5-proxy in.
  • Configureer deze lokale proxy die we zojuist hebben aangemaakt in de webbrowser, zodat al het verkeer via de SSH-server naar het internet stroomt.

Deze methode is precies hetzelfde als die van de VPN-server, waarbij een "server" wordt gebruikt om er veilig verbinding mee te maken en vervolgens via HTTPS naar internet te gaan zonder dat iemand deze codering kan opheffen.

Conclusies

Hoewel HTTPS-verbindingen veilig zijn, kan een aanvaller in bepaalde omstandigheden die beveiliging "opheffen" om gebruikersreferenties en ook sessiecookies te verkrijgen, waardoor HTTPS-verbindingen minder veilig worden. Dit type aanval kan echter alleen worden uitgevoerd in bepaalde omstandigheden, bijvoorbeeld als de aanvaller en het slachtoffer zich op hetzelfde lokale netwerk bevinden, bekabeld of draadloos, en op de websites die door de gebruiker worden bezocht, het HSTS-protocol niet is ingeschakeld. Het is erg belangrijk om te weten op welke websites we het HSTS-protocol beschikbaar hebben, om kalm te blijven als we door die website navigeren, want als iemand een aanval op ons uitvoert, zal de website ons automatisch vertellen dat er geen beveiligde verbinding is vastgesteld en dat de verbinding niet tot stand wordt gebracht, waardoor we niet meer gegevens kunnen uitwisselen.

Als we verbinding maken met internet in openbare netwerken via een VPN of een SSH-tunneling doen, kunnen we kalm zijn omdat ze geen communicatie kunnen onderscheppen en deze kunnen schenden, daarom is het gebruik van deze technieken zo belangrijk wanneer we ons buiten bevinden van onze vertrouwde netwerken. Het maakt niet uit of de VPN- of SSH-server bij ons thuis is, op een door ons ingehuurde VPS-server, en zelfs als we betaalde VPN-services gebruiken zoals we die allemaal kennen, het belangrijkste is om onszelf te beschermen tegen een aanvaller die op ons lokale netwerk en Vermijd dit type SSL Stripping-aanval.