De onderzoeker Kuba Gretzky besloot om eens de werking van een Android-app onder de loep te nemen, waarmee gebruikers punten kunnen verdienen als zij aankopen doen. In een blogpost beschrijft hij zijn onderzoek, wat hem uiteindelijk gratis bier opleverde.
Gretzky noemt de naam van de app expres niet, maar geeft wel prijs dat deze alleen in Polen wordt gebruikt. Door de app kunnen gebruikers na een aankoop punten verdienen door de verkoper te laten weten dat zij deze willen ontvangen. Zo is het bijvoorbeeld mogelijk bij een aankoop van vijf biertjes er een gratis te krijgen. Zijn eerste stap in het onderzoek leidde hem naar beacons van Estimote, die door de app gebruikt worden om het ontvangen van punten te autoriseren.
Dat leidde Gretzky tot de conclusie dat er draadloos gegevens werden overgedragen. Ook had hij eerder al vastgesteld dat de beacons een aantal waarden verwerken om punten aan de app toe te kennen. Nu was het zaak de gegevens te onderscheppen, hiervoor gebruikte de onderzoeker software met de naam Fiddler, die http- en https-verkeer kan onderscheppen. Na wat gehannes met certificaten was Gretzky in staat om het internetverkeer van zijn eigen telefoon te onderscheppen. Ook het verkeer van de app kon op die manier opgevangen worden, omdat deze niet gebruikmaakt van certificate pinning.
Op die manier zag de onderzoeker bijvoorbeeld dat de verificatie en bijbehorende pin in klare tekst werden overgedragen. De pin met brute force kraken was geen optie, omdat er een maximum aan het aantal verzoeken was gesteld. Daarom besloot hij om de pin op afstand te onderscheppen met behulp van een ‘evil vpn’. Deze was snel genoeg opgezet met behulp van een autoconfiguratiescript en was na enig gedoe ook werkend te krijgen op Android 6.0. Daarna kon Gretzky https-pakketten opvangen en ontsleutelen met behulp van de tool SSLsplit.
Uitgerust met zijn telefoon en de ‘evil vpn’ ging Gretzky opnieuw naar de stad en was in staat om in een winkel twee pincodes te onderscheppen door zijn locatievoorzieningen uit te schakelen. De verificatie door nabijheid van een beacon was in dat geval namelijk niet mogelijk. Ook kon hij een autorisatiepakketje onderscheppen door zijn locatievoorzieningen weer aan te zetten. Zo kon de onderzoeker uiteindelijk tot de conclusie komen dat de verificatiesleutels voor het toevoegen van punten constant werden uitgezonden in winkels en restaurants. Door het juiste pakketje in Fiddler te onderscheppen en aan te passen was het vervolgens mogelijk om gratis punten, en daarmee ook bier, te verdienen.
In zijn blogpost geeft Gretzky nog enkele tips voor verbetering van de beveiliging van de app, zoals certificate pinning en code obfuscation.
De Estimote-beacons