We hebben een grootschalige social-engineeringcampagne ontdekt die erop gericht is mensen naar online goksites te leiden door hen te laten geloven dat ze een legitieme app installeren.
We noemen het FriendlyDealer. Het is waargenomen op minstens 1.500 domeinen, die elk een website hosten die zich voordoet als de Google Play Store of de Apple App Store. Gebruikers denken dat ze een gokapp downloaden van een betrouwbare bron, met alle controles, beoordelingen en veiligheidsmaatregelen die daarbij horen. Maar in werkelijkheid bevinden ze zich nog steeds op een website en installeren ze een webapp die hen vervolgens via affiliate-links doorverwijst naar casino-aanbiedingen.
De campagne steelt geen wachtwoorden en installeert geen traditionele malware. In plaats daarvan verdient ze geld via commissies telkens wanneer iemand zich aanmeldt of geld stort op een van deze sites.
Dat klinkt misschien minder ernstig dan een banktrojan, maar het eindresultaat is dat mensen worden doorgestuurd naar ongereguleerde goksites zonder leeftijdsverificatie, zonder stortingslimieten en zonder consumentenbescherming. En dit gebeurt op een moment dat gokverslaving wordt bestempeld als de snelste explosieve groei van gokactiviteiten die het land ooit heeft meegemaakt.
Eén pakket, tientallen apps, ontworpen om echte app-winkels na te bootsen
FriendlyDealer is opgezet als één herbruikbare bouwsteen waarmee veel verschillende nep-app-vermeldingen kunnen worden gegenereerd.
De kit detecteert welk apparaat je gebruikt en toont je op basis daarvan een andere nepwinkel. Android zien een nep-Google Play Store. iPhone-gebruikers zien een nep-Apple App Store. De kit laadt zelfs de juiste systeemlettertypen voor elk platform (Google Sans op Android, San Francisco op iOS), zodat de typografie overeenkomt met wat je op je eigen telefoon zou verwachten.
Achter de schermen is het één enkele webapplicatie die al haar inhoud uit één configuratiebestand haalt dat in de pagina is ingebed. Als je dat bestand wijzigt, krijg je een heel andere app te zien die op dezelfde code draait.
De exploitanten hebben dit gebruikt om minstens twintig casinomerknamen op te zetten, variërend van„Tower Rush“(189 exemplaren) en„Chicken Road“(97) tot„BEAST GAMES: ICE FISHING“(43), dat zich voordoet als YouTube MrBeast. (Het is vermeldenswaard dat sommige skins de namen van legitieme gokmerken hergebruiken, maar geen van deze merken is gelieerd aan deze operatie.)
De recensies zijn nep. Verschillende apps gebruiken dezelfde gebruikersnamen, profielfoto’s, teksten en reacties van ontwikkelaars, en deze worden bij meerdere merken herhaald. Voordat de nepwinkel wordt getoond, kan de kit ook een eenvoudig casinominispel weergeven om de betrokkenheid te vergroten.
De valse ‘Installeren’-knop op Android van een Chrome die alleen op mobiele apparaten werkt. Deze functie onderschept het installatievenster Chromeen activeert het wanneer erop wordt getikt, waardoor er een echt installatiedialoogvenster verschijnt. De gebruikelijke waarschuwing over het installeren van apps uit onbekende bronnen verschijnt niet. Uit eerder onderzoek is gebleken dat apps die op deze manier zijn geïnstalleerd, in de instellingen van je telefoon zelfs de melding ‘Geïnstalleerd vanuit Google Play Store’ kunnen weergeven.
De code doet er alles aan om je in de juiste browser te krijgen. Als je via een Instagram Facebook Instagram terechtkomt, bevind je je in de ingebouwde browser van die apps, die de installatie niet kan starten. Op Android genereert de kit een speciale link die ervoor zorgt dat de pagina opnieuw in Chrome wordt geopend. Op iOS gebeurt hetzelfde, maar dan voor Safari. Als Chrome geïnstalleerd, stuurt de fallback je naar de echte Play Store om de app te downloaden. Er is zelfs een aparte handler voor de browser van Samsung. De browserspecifieke techniek is ongewoon gedetailleerd.
Op deze pagina is zoomen uitgeschakeld, waardoor het moeilijker is om de inhoud nauwkeurig te bekijken. De kit wijst aan elke gebruiker een tracking-ID toe en gebruikt deze opnieuw in analyses, evenementen, pushmeldingen en het doorsturen van aanbiedingen.
De kit is ingesteld voor betaalde advertenties. De configuratie bevat lege velden voor trackingpixels van vier advertentieplatforms: Google, Yandex, Facebook en TikTok. De app en het achtergrondscript kunnen advertentie-ID’s Facebook(_fbc / _fbp) doorsturen wanneer die waarden beschikbaar zijn. De code verwijst naar Yandex-telemetrievelden en bevat Russischtalige opmerkingen en debug-strings, wat overeenkomt met een Russischsprekende ontwikkelingscontext, hoewel die artefacten ook afkomstig kunnen zijn van een hergebruikte of aangeschafte kit.
De werkwijze is eenvoudig: advertentieverkeer inkopen, het apparaat herkennen, een nep-app-store tonen, een installatie in gang zetten die er echt uitziet, en via een affiliate-link doorverwijzen naar een casino.
Je installeert geen app
Wanneer een gebruiker op ‘Installeren’ tikt, wordt er niet echt een app gedownload. In plaats daarvan maakt de browser een zogenaamde Progressive Web App (PWA) aan. Dit is in feite een website die zich gedraagt als een app, met een eigen pictogram op je startscherm en een eigen welkomstscherm. Voor de meeste mensen is er geen verschil met een echte app.
Zodra de app is geïnstalleerd, kan deze op de achtergrond blijven draaien met behulp van browserfuncties die ‘service workers’ worden genoemd (waardoor een permanente verbinding met je apparaat in stand wordt gehouden). De voorbeelden bevatten de hoofd-PWA-worker en code om een aparte push-worker te registreren (om je meldingen te sturen) wanneer deze is ingeschakeld.
De kit weet ook wanneer je hem al hebt geïnstalleerd. Hij controleert of je apparaat zijn eigen PWA bevat, en als hij die vindt, slaat hij de nepwinkel helemaal over en stuurt hij je direct naar het casino.
Eén domein brengt alles samen
Elke FriendlyDealer-installatie maakt verbinding met hetzelfde domein: ihavefriendseverywhere[.]xyz. Dit is de server voor gegevensverzameling van de campagne, en de naam die ons op het idee bracht voor de naam van de trackingoperatie.
Het achtergrondscript en de app-code sturen telemetriegegevens naar dit domein, waaronder de taal van de browser, de tijdzone, user-agent-gegevens, optionele user-agent-clienthints, campagne-ID’s en advertentie-ID’s, voor zover deze waarden beschikbaar zijn. Een groot deel hiervan wordt verzonden via aangepaste verzoekheaders.
Sommige verzoeken maken gebruik van de HEAD-methode om de belasting laag te houden.
De applicatiecode verstuurt ook iets wat het achtergrondscript niet doet: JavaScript-foutrapporten. Elke crash, elke mislukte poging om een bron te laden en elke niet-afgehandelde uitzondering die zich op het apparaat van de gebruiker voordoet, wordt opgevangen, verpakt in een gestructureerd foutobject met een tijdstempel en context, en verzonden naar ihavefriendseverywhere[.]xyz/api/log_standard_err. In feite verzamelen de exploitanten zowel gebruikersgegevens als telemetrie over productiefouten van echte apparaten.
Als een verzoek mislukt (bijvoorbeeld door een slecht signaal), slaat het achtergrondscript het lokaal op en probeert het later opnieuw. Zodra de verbinding weer tot stand is, worden de gegevens automatisch verzonden.
De valse app vraagt ook om toestemming voor meldingen. Als de gebruiker deze toestemming verleent, kan de kit een push-abonnement registreren en een direct kanaal opzetten voor toekomstige meldingen. Deze verschijnen als gewone app-meldingen, waardoor de beheerders ook nadat de app is gesloten nog rechtstreeks contact kunnen houden met de gebruiker.
Volg het geld: commissies van affiliateprogramma’s, geen malware
FriendlyDealer verspreidt geen virussen en neemt geen apparaten over. De hele operatie draait opcommissies van affiliatepartners. Elke nep-appstorepagina bevat een verborgen doorverwijzing naar een affiliate-trackingnetwerk. Wanneer een gebruiker zich aanmeldt of geld stort, ontvangt de exploitant een vergoeding.
We hebben meerdere affiliate-trackingnetwerken in de code aangetroffen. Een gebruikers-ID komt voor in de analyse-, gebeurtenis-, push- en aanbiedingsrouteringslogica van de kit, waardoor activiteiten in verschillende fasen van de funnel met elkaar in verband kunnen worden gebracht.
Dit model verklaart de enorme omvang van de campagne. Elk domein is vervangbaar. De kit fungeert als een sjabloon: door één configuratiebestand aan te passen, heb je binnen enkele minuten een nieuw casinomerk op een nieuw domein. Aangezien de uitbetalingen voor gokaffiliates naar verluidt variëren van $ 50 tot $ 400 per gebruiker die een storting doet, loopt het bedrag zelfs bij een laag conversiepercentage over duizend domeinen snel op.
Wie zit hierachter?
We kunnen de campagne niet aan een specifieke groep toeschrijven, maar er zijn aanwijzingen. De broncode bevat opmerkingen in het Russisch (bijvoorbeeld:“Создаем таймер для измерения времени загрузки Vue“). Een van de builds bevatte onbewerkte Russische debug-strings die uit de productieversie waren verwijderd. De code is geïntegreerd met Yandex Metrica, dat populair is in Rusland en de voormalige Sovjetstaten.
Dit wijst op een Russischsprekende ontwikkelingscontext, hoewel de code ook hergebruikt of aangeschaft zou kunnen zijn.
De code bevat ook tags voor affiliate marketing – preland-alias en preland-final-action – waarbij een „pre-lander“ de pagina is die een bezoeker te zien krijgt vóór de daadwerkelijke aanbieding. De applicatiecode laat zien dat deze tag het gedrag van de kit regelt: een waarde van 0 activeert een PWA-installatie, terwijl 1 doorverwijst naar een app store. In combinatie met plug-and-play advertentiepixelslots, configuratie per implementatie en staging/productielogica wijst dit sterk op een herbruikbare kit die is gebouwd voor meerdere campagnes of operators, en niet voor een eenmalig project.
We hebben meerdere versies van dezelfde kit aangetroffen. In de productieversie zijn de foutopsporingsberichten verwijderd, maar andere versies bevatten volledige foutmeldingen in het Russisch en ondersteuning voor Arabische cijfers in de hele interface – zoals het aantal downloads, beoordelingen, datums van recensies en meer. Dit lijkt niet op een kit die voor één enkele markt is ontwikkeld; het lijkt erop dat deze is ontworpen om regionale varianten al tijdens de ontwikkeling te ondersteunen.
Een bekende truc met een ander resultaat
Valse app-storepagina’s zijn een bekende techniek die vaak wordt gebruikt om bankgegevens te stelen of spyware te verspreiden. FriendlyDealer hanteert dezelfde aanpak: een overtuigende nepwinkel en een installatieproces dat er echt uitziet, maar met een ander doel. Het neemt je telefoon niet over en steelt je wachtwoorden niet. Het leidt je naar gokplatforms en verdient een commissie wanneer je geld uitgeeft.
De schade is eerder financieel dan technisch: slachtoffers worden via misleidende installatie- en omleidingsprocessen naar gokaanbiedingen geleid en kunnen uiteindelijk geld storten op websites die ze niet bewust hebben gekozen.
Het herinnert ons er ook aan dat niet elke zwendel op je wachtwoorden uit is. Affiliatefraude, vooral in de online gokwereld, kan enorme operaties financieren zonder ook maar één inloggegeven aan te raken. De mensen hierachter hebben een hele fabriek opgezet: één sjabloon, twintig merken, meer dan 1.500 domeinen. Betaalde advertenties zorgen voor het verkeer. De nep-app-winkels maken het plaatje compleet. Het affiliate-netwerk betaalt de rekeningen.
Wat dit zo effectief maakt, is dat er misbruik wordt gemaakt van zaken die als betrouwbaar worden beschouwd. De installatieprocedure voor apps Chromeop Android de functie ‘Toevoegen aan startscherm’ in Safari op de iPhone zijn beide legitieme functies die doen waarvoor ze zijn ontworpen. Het probleem is dat de pagina die de installatie in gang zet, een leugen is. De kit is zo zorgvuldig ontworpen dat alleen de juiste gebruikers, op de juiste apparaten en via de juiste advertenties, deze te zien krijgen.
Wat moet je doen als je een van deze apps hebt geïnstalleerd?
Op Android:
- De app verwijderen: houd het pictogram ingedrukt en tik op ‘Verwijderen’, of ga naar ‘Instellingen’ > ‘Apps’ en verwijder alles wat je niet herkent.
- De websitegegevens in Chrome wissen: de app kan gegevens achterlaten in je browser. Open Chrome Instellingen > Website-instellingen > Alle websites, zoek de website en tik op Wissen en resetten.
- Controleer de machtigingen voor meldingen: ga naar Chrome Instellingen > Meldingen en verwijder alle websites die je niet herkent. Als je de app verwijdert, wordt de toegang tot meldingen niet opgeheven.
- Controleer andere browsers: als je Edge, Brave of een andere op Chromium gebaseerde browser gebruikt, voer daar dan dezelfde stappen uit.
Op de iPhone:
- De app verwijderen: houd het app-pictogram op je startscherm ingedrukt en tik op ‘App verwijderen’. Op iOS installeren PWA’s geen achtergrondscript zoals op Android, dus als je het pictogram verwijdert, worden ook de in de cache opgeslagen sitegegevens verwijderd.
- De sitegegevens in Safari wissen: Ga naar Instellingen > Safari > Advanced > Websitegegevens en zoek het domein. Veeg om het te verwijderen. Hiermee worden alle resterende cookies en opgeslagen gegevens gewist.
- Controleer de machtigingen voor meldingen: ga naar Instellingen > Apps > Safari. Blader naar het gedeelte ‘Instellingen voor websites ’ en tik op ‘Meldingen’. Zoek de website en verwijder of weiger de toegang.
Als u geld heeft gestort nadat u via een van deze pagina’s bent doorgestuurd en denkt dat u bent misleid, neem dan onmiddellijk contact op met uw bank of betalingsdienstaanbieder.
Indicatoren van inbreuk (IOC's)
Domeinen
ihavefriendseverywhere[.]xyz—Server voor gegevensuitlezing en foutregistratievalor[.]bet—URL van de poort/het controlepunt (/__pwa_gate-pad)wikis[.]lifestyle—Vastgelegde domeinverwijzing in de applicatiecode
We rapporteren niet alleen over telefoonbeveiliging - we leveren het ook
Cyberbeveiligingsrisico's mogen zich nooit verder verspreiden dan een krantenkop. Houd bedreigingen weg van uw mobiele apparaten door Malwarebytes voor iOS en Malwarebytes voor Android vandaag nog te downloaden.














