Hackscenario's bij multifactorauthenticatie (mfa)

Multifactorauthenticatie ofwel mfa is in opkomst als een manier om accounts extra te beveiligen, zodat slechts een wachtwoord niet meer volstaat om binnen te komen. Deze methode is zonder meer veiliger, maar waterdichte garanties zijn er evenmin. We bekijken enkele uiteenlopende hackscenario’s.

Steeds meer diensten en websites dwingen gebruikers tot veiliger oplossingen op basis van multifactorauthenticatie (mfa), ook wel multi factor verification (mfv) genoemd – hoewel de termen authenticatie en verificatie niet helemaal identiek zijn.

Ook al wordt in bedrijfsomgevingen vaak adaptieve mfa toegepast, waarbij contextuele gegevens en bedrijfsregels bepalen welke factoren in een gegeven situatie gebruikt moeten worden, gaat het bij de meeste mfa-implementaties om twee factoren (2fa). Hierbij heb je naast iets wat je kent of weet, zoals een pincode of een wachtwoord, ook een factor nodig die je bezit, zoals een usb-token of een smartcard, of een die je ‘bent’. Bij dit laatste gaat het dan om biometrische authenticatie, zoals een vingerafdruk of een retinascan. 

Heel wat diensten en websites spreken wel over 2fa, maar laten een gebruiker inloggen met twee factoren van hetzelfde type. Over het algemeen tweemaal iets wat je kent. In die gevallen hebben we het (slechts) over tweestapsauthenticatie.

Het mag duidelijk zijn dat mfa (en 2fa) absoluut veiliger is dan sfa (singlefactorauthenticatie, dus alleen een wachtwoord bijvoorbeel), en producenten pakken daarom graag uit met de claim dat hun mfa-oplossing nog nooit is gehackt. Maar zelfs áls dat zo is, dan kunnen er de volgende dag wellicht wél kwetsbaarheden worden gevonden, of dat nu door pentesting, fuzz testing, een kwetsbaarhedenscan of threat modeling gebeurt. Bij threat modeling worden alle denkbare bedreigingen geïdentificeerd, vervolgens geprioriteerd en (hopelijk) ook opgelost.

Mfa-componenten

Het grootste veiligheidsprobleem met mfa blijft wel dat zo’n oplossing allerlei ondersteunende componenten en infrastructuren bevat waar de producent van de mfa-oplossing geen controle over heeft. Veiligheidsexpert Roger Grimes hamert er in zijn uitstekende boek ‘Hacking Multifactor Authentication’ voortdurend op dat zowat elk onderdeel op een of andere manier vatbaar is voor hacking. We beperken ons hier tot twee componenten.

Zo is een van de eerste fasen in een mfa-proces de initiële registratie, ook wel provisioning of enrollment genoemd. Dat gebeurt via een identity provider die op basis van enkele unieke attributen de identiteit van de aanvrager hoort te bevestigen. Helaas bewijst de praktijk vaak anders. Zo vertrouwen veel services op ‘geverifieerde’ accounts van Google of Facebook, terwijl er massale hoeveelheden frauduleuze accounts actief zijn. 

Of neem een op zich degelijk systeem als PGP (Pretty Good Privacy). Ook hier zetten frauduleuze gebruikers publieke sleutels van anderen in, omdat ontvangers toch zelden de geldigheid van de bijhorende digitale handtekening checken.

Een mfa-oplossing is van vele andere componenten afhankelijk (bron: ‘Hacking Multifactor Authentication’).

Hardware is uiteraard ook een onmisbare component in mfa-implementaties, en of het nu gaat om computers, telefoons of netwerkinterfaces, hardware blijkt altijd wel te compromitteren, waarna het authenticatieproces niet langer betrouwbaar is.

Initiatieven als Trusted Computing proberen dat tegen te gaan en ervoor te zorgen dat elke niet-geautoriseerde aanpassing wordt gedetecteerd. Een typisch voorbeeld is het Trusted Boot-proces van Windows 10, waarbij de bootchip-code van de UEFI-firmware digitaal is ondertekend en elke daaropvolgende hardwarecomponent op de vorige vertrouwt om zijn eigen handtekening te verifiëren, tot Windows is opgestart.

Social engineering

De meeste mfa-aanvallen blijken een mix te zijn van social engineering-technieken en zuiver technische malversaties, waarbij de eerste vaak het pad effenen voor de tweede.

Social engineering zou in al zijn varianten, zoals spear phishing, vishing (phishing over voice) en smishing (phishing via sms), voor zo’n 80 procent van alle digitale inbreuken verantwoordelijk zijn. Ook mfa-oplossingen zijn zeker niet immuun voor dit type aanvallen.

Het meest populair is de truc waarbij een gebruiker via phishing naar een valse site wordt gelokt die niet zelden voorzien is van een geldig digitaal certificaat, dankzij gratis diensten als Let’s Encrypt. Zo’n site imiteert een legitieme site waarop de gebruiker zich aanmeldt met mfa, bijvoorbeeld op basis van de Google Authenticator-app. Zodra het wachtwoord en de gegenereerde code zijn ingevoerd, vraagt de valse site om extra beveiligingsinformatie, zoals wachtwoordherstel- of creditcardgegevens, en pas daarna wordt de gebruiker alsnog naar de echte site doorverwezen.

Een andere, vaak toegepaste social engineering-truc is als een scammer iemand opbelt of een bericht stuurt, zogezegd uit naam van zijn financiële instelling. De scammer waarschuwt de gebruiker dat er frauduleuze transacties zijn vastgesteld, maar dat de instelling die kan blokkeren zodra de gebruiker zijn inloggegevens ter verificatie heeft doorgegeven.

Met deze gegevens kan de scammer het gebruikersaccount nu in herstelmodus plaatsen; alsof je je wachtwoord vergeten bent. Veel mfa-aanbieders bieden alternatieve authenticatiemethodes aan als het een legitieme gebruiker niet meer lukt zich aan te melden. Helaas zijn deze back-up-authenticatieprocedures meestal weinig dwingend.

Door de herstelmodus zal de nietsvermoedende gebruiker bijvoorbeeld een nieuwe code op een alternatief e-mailadres doorgestuurd krijgen. In het slechtste geval kan zo’n code zelfs naar een niet eerder geregistreerd e-mailadres worden verstuurd, wat het de scammer wel heel makkelijk maakt, aangezien hij dan een eigen adres kan invullen. In het andere geval meldt de scammer aan de gebruiker dat ook deze code ter verificatie moet worden doorgestuurd, waarna hij met die code het account kan overnemen.

Heel wat diensten laten de gebruiker in de herstelmodus een aantal vooraf beantwoorde persoonlijke vragen oplossen. Vragen als je geboortedatum, je postcode en de locatie van de eerste ontmoeting met je partner. Stemmen de antwoorden overeen, dan gaat zo’n dienst ervan uit dat het om de legitieme gebruiker gaat. Deze drie herstelvragen volstonden bijvoorbeeld om het e-mailaccount van oud-vicepresidentskandidate Sarah Palin over te nemen.

De moraal van dit verhaal: als het ook maar enigszins mogelijk is, vermijd dan de persoonlijke vragen voor de herstelmodus. Maak je er toch gebruik van, verzin dan bij voorkeur specifieke antwoorden voor iedere website en bewaar ze in een wachtwoordbeheerder.

Brute force

Ook zijn er nog altijd accounts die zich via ‘brute force’-technieken laten hacken. Hierbij worden talloze pogingen met telkens andere wachtwoorden of pincodes uitgevoerd tot de login slaagt. Dat kan zowel handmatig als met geautomatiseerde tools, zoals L0phtcrack, John the Ripper of Burp Suite. Zo werd met Burp Suite bijvoorbeeld een mfa-oplossing op basis van een otp (one-time password) gehackt

De hacker ontving een otp-verzoek, en na een analyse van het bewuste pakket wist hij dat er een code van zes cijfers werd verwacht. Hij sluisde het pakket door naar het tabblad Intruder van de Burp Suite, waar hij het bewuste otp-veld via brute force door diverse mogelijke combinaties liet vervangen tot de otp door de server werd geaccepteerd.

Een min of meer vergelijkbare poging op de otp-oplossing van Instagram werd succesvol uitgevoerd door een whitehat-hacker (die daarvoor een bug bounty van 30.000 dollar van Facebook ontving). Ook deze service verwachtte een code van zes cijfers voor de 2fa – binnen de otp-verlooptijd van 10 minuten. Bovendien liet Instagram niet meer dan 250 pogingen toe per ip-adres.

Wel bleek het mogelijk tot 500 pogingen te ondernemen wanneer er afwisselend een ander ip-adres werd gebruikt. Voor 150 dollar kon de hacker via een cloudservice-provider ten slotte de brute force-aanval uitvoeren, vanaf zo’n 4000 ip-adressen tegelijk.

Mite en mitb

Een andere manier om gegevens buit te maken, zijn mitm-aanvallen (man-in-the-middle), maar uiteraard zijn er ook mite-aanvallen mogelijk. Dat staat voor man-in-the-endpoint, waarbij een hacker erin slaagt een toestel van de gebruiker zelf te compromitteren. Het zal je weinig verbazen dat in zo’n scenario eigenlijk geen enkele communicatiewijze nog betrouwbaar is, en dus ook mta niet.

Zo’n mite-aanval vinden we bijvoorbeeld vaak terug bij banking trojans. Hierbij wordt in de lokale pc met behulp van social engineering of drive-by-downloads eerst een trojan geïnstalleerd. Die monitort heimelijk wat er in de browser gebeurt (man-in-the-browser, mitb). Wanneer er een trefwoord herkend wordt dat aangeeft dat de gebruiker zich aanmeldt bij een bancaire instelling, start de trojan een tweede, verborgen browsersessie. Zodra de gebruiker – al dan niet via mfa – is aangemeld en zijn rekeningen bekijkt, wijzigt de trojan stiekem de accountinformatie en doet een bankoverschrijving naar een frauduleus bankaccount. Vraagt de bank om nadere uitleg, dan komt die automatisch terecht bij de hackers.

Om deze praktijken tegen te gaan, stuurden banken bij wijze van mfa authenticatiecodes door, gelinkt aan een specifieke transactie. Aanvankelijk hielp dat, maar de banking trojans pasten zich aan. Voortaan wachtten ze tot de gebruiker zelf een banktransactie deed, om dan in het geniep alleen de eigen transactie naar de bank te verzenden. Die stuurde daarop de mfa-code voor de frauduleuze transactie door en de gebruiker tikte die nietsvermoedend in.

Zo werkt een mitb-aanval, uitgevoerd door een banking trojan (bron: Secret Double Octopus).

Namespace hijacking

Een ‘namespace’ verwijst naar een gedeeld systeem waarbinnen objecten op een specifieke wijze opgeslagen en gelokaliseerd worden. Bekende namespaces zijn bijvoorbeeld AD (Active Directory in domeinnetwerken), LDAP (Lightweight Directory Access Protocol) en DNS (Domain Name System). Deze laatste zet webadressen om in de bijhorende ip-hostadressen en is daarmee een gewild doelwit voor allerlei aanvallen, waaronder DNS-hijacking.

We beperken ons hier tot een paar veelgebruikte methodes, waarvan de eenvoudigste de zogenoemde ‘doppelganger domains’ zijn. Dat zijn domeinnamen die bijna identiek zijn aan bekende exemplaren, zoals www.arnazon.com (in plaats van amazon), www.llnkedin.com (linkedin) en www.micosoft.com (microsoft). Iets technischer is malware die de instellingen van de DNS-client aanpast, meestal door de DNS-server bij de gebruiker te wijzigen of door het hosts-bestand van malafide ingangen te voorzien.

 Dit laatste kun je in Windows snel zelf uitzoeken. Druk op Windows-toets+R en voer %windir%\system32\drivers\etc in. Versleep het bestand hosts naar je bureaublad en open dit in Kladblok. Voeg de regel <ip-adres> <hostnaam> toe, met het ip-adres van een andere webserver dan die van de hostnaam). Sla het bestand op, versleep het weer naar de originele submap en sta de operatie toe. 

Herstart je pc en tik de hostnaam in je browser in. Je wordt nu omgeleid naar de webserver van het ip-adres. Een andere populaire techniek zijn de domain hijacks. Een hacker slaagt erdan in een ‘authoritative’ DNS-server over te nemen (wellicht via het account van een DNS-beheerder), waarna hij het ip-adres van een DNS-record naar een onbetrouwbare locatie laat verwijzen.

Access token

Wanneer een gebruiker zich succesvol authenticeert, genereren de meeste authenticatiesystemen een access (control) token en sturen dat door naar (het betreffende proces van) die gebruiker. Zo’n token kan de vorm aannemen van bijvoorbeeld een Kerberos-ticket (in een Windows-netwerk), maar kan net zo goed een html-cookie zijn, bijvoorbeeld als de gebruiker zich bij een website wil aanmelden. Dit token zorgt ervoor dat de gebruiker zich voor de daaropvolgende handelingen binnen dezelfde sessie niet telkens opnieuw hoeft aan te melden.

Natuurlijk, wie zo’n access token in handen krijgt, kan zich dus binnen zo’n sessie voordoen als de legitieme gebruiker (session hijacking). Dat kan in principe op twee manieren. Zo zijn er nog altijd heel wat websites die eenvoudig te raden sessie-ID’s gebruiken, zodat ze makkelijk kunnen worden gereproduceerd. Maar tokens stelen is vaak nog eenvoudiger, bijvoorbeeld door het kapen van een netwerksessie met tools als het reeds eerder vermelde Burp Suite of WebScarab (een onderdeel van Kali Linux). 

In feite komt dit neer op een mitm-aanval. Zo’n opzet is bijvoorbeeld mogelijk wanneer de hacker ongemerkt een proxy node opzet die alle commando’s van de client en de server naar de andere partij doorstuurt. In een lan kan dat bijvoorbeeld via arp poisoning. Loopt de communicatie over internet, dan kan de gebruiker bijvoorbeeld via phishing of met een doppelganger domain naar de malafide proxy worden gelokt waar alle input van de gebruiker, waaronder zijn mfa-authenticatie, in het geheim wordt doorgestuurd naar de echte doelsite (en omgekeerd).

Een mitm-aanval in een lan-netwerk door middel van arp poisoning/spoofing.

Onbetrouwbare software

Soms maken de ontwikkelaars van mfa-oplossingen of van een van de ondersteunende componenten hackers het ongewild makkelijk. Er duiken namelijk nog vrij vaak kwetsbaarheden op in zulke software. Hier vind je een lijst met veelvoorkomende software-onvolkomenheden, specifiek voor authenticatie-doeleinden.

Wil je zelf uitzoeken of er hiaten zijn gevonden bij een (authenticatie-)product of softwareproducent, raadpleeg dan de CVE Details-database (Common Vulnerability and Exposures). Hier zie je ook de meest gebruikelijke programmeerfouten. We beperken ons hier tot twee bekende types: xss en buffer overflow.

Xss staat voor cross-site scripting en is een aanval op basis van code-injectie aan de clientzijde. Deze injectie kan bijvoorbeeld plaatsvinden wanneer je een webpagina met een malafide code bezoekt (persistent xss) of er via een ‘foute’ link terechtkomt (reflected xss). Bij deze laatste zijn dan aan het einde van de url extra parameters toegevoegd die door de server als commando’s worden geïnterpreteerd. Die kunnen er bijvoorbeeld voor zorgen dat de gebruiker stiekem naar een andere site wordt omgeleid.

Het andere type, buffer overflow, is bijna net zo oud als het programmeren zelf. Hierbij wordt bijvoorbeeld aan een listening service andere dan de verwachte en ook meer data doorgespeeld, waardoor deze input niet alleen de voorziene dataruimte opvult, maar ook de coderuimte, zodat de programma-instructies van de hacker worden uitgevoerd.

Fysieke aanval

Xss en buffer overflow zijn dus ongewilde bugs door ontwikkelaars van mfa-oplossingen, maar aan de andere kant van het spectrum bevinden zich de doelbewuste hardware-manipulaties door hackers. Dat kan zo simpel zijn als ‘schoudersurfen’ (meekijken over de schouder van een weinig alerte gebruiker – daarom ook hangen er doorgaans spiegels bij bankautomaten) of diefstal van het mfa-apparaat, zoals een totp-apparaat (time-based one-time password). Maar het kan ook veel geavanceerder, tot zogenoemde side-channel attacks (laterale kanaalaanvallen) aan toe.

Bij zo’n aanval wordt informatie verkregen door de fysieke implementatie van een systeem, zoals een specifiek energieverbruik, ultrasone emanaties (van beeldschermen) of elektromagnetische lekken. Op deze site kun je meer technische details lezen over een side-channel-aanval van begin 2021 op de security keys van Google Titan en YubiKey op basis van elektromagnetische straling.

Of wat tenslotte te denken van cold boot-aanvallen, waarbij geheugenchips zoals de TPM-chip (Trusted Platform Module) worden bespoten met vrieslucht, zodat de inhoud van de chips even behouden blijft – waaronder bijvoorbeeld de (decryptie)sleutel van een encryptietool als BitLocker. Vervolgens kan een hacker de inhoud van die chips met speciale software naar een ander apparaat kopiëren en daar uitlezen om zo de sleutel te bemachtigen. 

Dergelijke aanvallen zijn al met succes gedemonstreerd en ook op YouTube vind je hier aardig wat video’s over. Net zoals over vele andere aanvallen waarmee ook mfa-oplossingen te omzeilen zijn.

Geschreven door: Toon van Daele op

Category: Nieuws, Security

Tags: Hack, Wachtwoord, Security, Cybercrime