Datalek maakte gegevens van honderdduizenden Amigos-leden toegankelijk

De Nederlandse onmoetingsapp Amigos bevatte een lek waardoor data van alle gebruikers maandenlang toegankelijk was. Via het lek konden onder andere privégegevens, gesprekken en locatiedata opgevraagd worden. Het lek is volgens het bedrijf achter de app gedicht.

Het lek werd volgens RTL Nieuws ontdekt door Sten Lankreijer, een 21-jarige student van de Technische Universiteit Eindhoven die naging of het mogelijk was om op geautomatiseerde wijze sterren te verkrijgen voor de Amigos-app. Met deze sterren kan een Amigo-gebruiker een waardebeoordeling krijgen op het ontmoetingsplatform.

Lankreijer ging naar eigen zeggen na welke gegevens de Amigos-app verstuurt en ontvangt. Hij ontdekte tijdens zijn speurtocht dat die data ook te manipuleren viel en op die manier kreeg hij toegang tot afgeschermde gegevens. Volgens de berichtgeving van RTL maakte Lankreijer zich beheerder van Amigos waarna hij toegang kreeg tot alle gegevens van de gebruikers. Lankreijer kon ook pushberichten versturen in naam van de app en in naam van andere gebruikers berichten sturen naar Amigo-leden. De jongeman kon ook evenementen organiseren en sterren uitdelen. Het was voor Lankreijer ook mogelijk om e-mails te versturen waarin werd gevraagd om het wachtwoord opnieuw in te stellen. Die wachtwoorden waren niet direct toegankelijk voor de 21-jarige ontdekker van het lek.

Volgens RTL Nieuws gaf het lek toegang tot privégegevens en alle berichten van de Amigos-leden. Namen, e-mailadressen, geboortedata en de exacte locaties van leden waren naar verluidt te raadplegen via het lek, al is het niet duidelijk of Lankreijer zich daar toegang had tot verleend tijdens de ontdekking.

Het lek is volgens Amigos-oprichter Johanan Fraanje gedicht. De man legde aan RTL Nieuws uit dat de app werd gebouwd door "een externe partij" en dat hij verrast is door de kwetsbaarheid. "Onze aandacht ging de afgelopen tijd naar het opschalen. Het is ons een beetje te veel geworden en het moet beter", klinkt het. In een nieuwsbrief naar de Amigos-leden die op Twitter verscheen stelt Fraanje dat er verbeteringen aan de app zijn toegevoegd waardoor de app "waterdicht" is en de exacte locatie "nog beter afgeschermd" zou moeten zijn.

Alle leden van Amigos worden ingelicht over het lek. Er is melding gedaan bij de Autoriteit Persoonsgegevens en volgens RTL Nieuws wordt een extern onderzoeksbureau ingeschakeld om te controleren of het lek al actief werd misbruikt.

Amigos-app
Amigos-app

Door Jay Stout

Redacteur

23-12-2021 • 16:50

72

Reacties (72)

72
72
38
10
1
21
Wijzig sortering
Je kan nog steeds gewoon via hun GraphQL api opzoeken wie een gebruiker (anders dan jijzelf) geblokkeerd heeft.

De JWT's die ze gebruiken lijken niet te expiren (exp is zo hoog dat je dood bent wanneer de JWT een keer verloopt), en een logout invalidate de JWTs ook niet. En een wachtwoord kan je niet eens veranderen lijkt het. Dus qua security mag je volgens mij niet te veel verwachten van deze partij.

Edit: Je kan ook van iedereen zien met wie ze bevriend zijn.

Edit2: De geboortedatums zijn nog steeds te achterhalen. Ze worden weliswaar gefilterd wanneer je ze direct via de GraphQL api probeert te verkrijgen. Maar je kan door middel van een search query de geboortedatum achterhalen.

[Reactie gewijzigd door jochlig op 22 juli 2024 18:33]

Ik heb het sowieso niet zo op jwt’s. Session auth vind ik nog steeds het veiligste. Nooit zo goed begrepen waarom een token die in je localstorage komt te staan zo veilig kan zijn. Ook al is het maar 5 min geldig, in die 5 min kan je er gewoon in!
Wat is het praktisch verschil tussen een session ID of een JWT in de cookie? Behalve dan dat het server secret kan uitlekken is die cryptografische authenticatie volgens mij zo onveilig nog niet hoor, en wel lekker stateless voor de server wat natuurlijk helemaal de hype is tegenwoordig.
lekker stateless voor de server wat natuurlijk helemaal de hype is
Da's geen hype, da's een nuttige feature. Ik stuur een login request, wat wordt afgehandeld door server A. Vervolgens stuur ik nog een request en dat komt uit bij server B (hetzij vanwege load balancing, hetzij omdat het een ander deel van het systeem is, hetzij omdat server A en B van verschillende bedrijven zijn, zoals bij "login with your Google account"). Als A mijn session nog niet naar B gekopieerd heeft, dan krijg ik een foutmelding terug. Met een JWT hoeven A en B niet eens met elkaar te kunnen communiceren en gaat het altijd goed.
Dat zinnetje moet je natuurlijk met een knipoog lezen ;) Ik bedoel meer, waarom zou je het dus "niet zo op jwt's hebben"? Zoals je zelf ook noemt is het niet inherent onveiliger of slechter.
Hoe is dit anders dan een session ID? Het voordeel met JWT is met name dat het stateless is. Oftewel ik kan mijn backend schalen wat ik wil zonder dat er ook maar 1 gebruiker opnieuw hoeft in te loggen. Daarnaast kan hierdoor ook de traffic beter verdeeld worden.

Wat is dan concreet het verschil tussen een session ID bijhouden in een cookie of een JWT bijhouden in een cookie?
De JWT staat hier nog wel in een cookie, dat dan nog net weer wel. Maar deel verder je mening.
Het voordeel van JWT is dat het stateless is. Het kan op deze manier ook een koppeling maken met bijvoorbeeld een desktop applicatie i.p.v. alleen een webapp. Daarnaast zal je een JWT niet opslaan in de localstorage. Dat is inderdaad erg risicovol (voor onder andere CSRF). In de praktijk zal deze worden opgeslagen in een HttpOnly cookie. Een dergelijke cookie is niet benaderbaar door de JavaScript client. :)
Handige data voor marketing doeleinden. Er zullen vast mensen deze content scrapen voor andere doeleinden.

Uiteraard is een JWT helemaal niet nodig aangezien de netwerklaag heel netjes server side cookies afhandeld en af kan schermen voor de apicatie laag. De informatie die je uit de token wil lezen kun je ook via een REST API beschikbaar stellen. Blijft het ook clean wie de informatie opvraagt en leest. En heb je minder authenticatie code nodig in je app, dus minder kans op fouten op die laag.

[Reactie gewijzigd door djwice op 22 juli 2024 18:33]

De JWT's die ze gebruiken lijken niet te expiren (exp is zo hoog dat je dood bent wanneer de JWT een keer verloopt), en een logout invalidate de JWTs ook niet. En een wachtwoord kan je niet eens veranderen lijkt het. Dus qua security mag je volgens mij niet te veel verwachten van deze partij.
Ik begin toch wel benieuwd te worden wie die "externe partij" is waar ze de schuld aan geven.

Kan ik trouwens ergens geld zetten op de vraag waarmee ze de volgende keer in het nieuws komen? Ik denk dat mijn eerste inzet zou zijn op plain text passwords; dat past zo mooi in het rijtje dat het me niet eens zou verbazen. :-o
Gok India/China, die exact hebben gemaakt waar ze om vroegen.
Ik blijf het vreemd vinden om als bedrijf je core business juist bij een andere partij onder te brengen.

Ik snap dat als je, ik zeg maar wat, schoenen maakt, dat je dan de schoonmaak van je fabriekje door een externe partij laat doen. Maar een schoenen fabriek die juist de schoenen elders laat maken?
Waar denk je anders ontwikkelaars te vinden? Grote vergelijkingssites zijn ook in opdracht van gemaakt.
Waar denk je anders ontwikkelaars te vinden?
Indeed.com? Linked-in?
En die gaan zo maar werken bij een onbekend en klein platform waarvan de levensvatbaarheid nog niet bewezen is. Die 300k gebruikers is pas recent naar buiten gekomen.
En die gaan zo maar werken bij een onbekend en klein platform
En ja? Waarom niet? Als je loon betaald krijgt eventueel aangevuld met aandelen? Onbekend en klein platform heeft jou als dev dan weer als voordeel dat je alles naar jouw eigen hand kan opzetten en grotendeels van scratch, en niet terecht komt ergens waar alles al bepaald is.

Er zijn veel devs waarvoor juist zo'n klein greenfield project de voorkeur heeft.
Maar hun 'core business' is niet software ontwikkeling, maar het bedenken van concepten. Als je kijkt op hun website, zie je dat ze vooral marketing en sales mensen in dienst hebben en slechts een handvol 'tech geniussen'. Zij bedenken een idee, zullen daar misschien een proof of concept van maken en besteden het dan waarschijnlijk uit aan een externe partij, die voor niet al te veel geld het hele idee uitwerkt. Zo werken veel van dit soort 'start-ups'.
Ik snap dat als je, ik zeg maar wat, schoenen maakt, dat je dan de schoonmaak van je fabriekje door een externe partij laat doen. Maar een schoenen fabriek die juist de schoenen elders laat maken?
Hoeveel schoenenfabrieken heeft Nike?
Precies 0. Alles is uitbesteed.

https://www.outsourceacce...-approach-to-outsourcing/
> Hoeveel schoenenfabrieken heeft Nike?

Ik bedoelde meer dat de schoenenfabriek zelf dan geen schoenenfabriek heeft, maar juist dat uitbesteed ;)
Daniël Verlaan, de journalist van RTL, heeft op Twitter ook de 'mail' van Amigos aan gebruikers gedeeld. Die is ronduit stuitend te noemen vanuit het oogpunt van het informeren van betrokkenen...

https://twitter.com/danie.../1474028609279074314?s=20
Overigens een net zo'n schokkende uitspraak van Johanan Fraanje vind ik wel "We hebben inmiddels meer dan 300.000 gebruikers en dan zie je wel eens wat over het hoofd" (https://nos.nl/artikel/24...a-huisfeestjes-app-amigos)

Zulke uitspraken naar buiten toe als verdediging voor je datalek gebruiken laat in mijn ogen zien dat het ze echt niks boeit, en dat ze eigenlijk niet eens vinden dat ze fout zitten. Hij ziet dit lek als logisch gevolg van het feit dat ze groter zijn geworden. Ook de mail laat duidelijk zien dat ze het zien als iets wat ze is aangedaan, niet iets wat zij hebben veroorzaakt. Ze zijn 'kritisch in de media gekomen', maar zelf accepteren en benoemen dat ze een datalek hadden doen ze niet.

[Reactie gewijzigd door Globber op 22 juli 2024 18:33]

een lek die ontstaat doordat ze groter zijn geworden? ja dat klinkt gewoon als onzin.

een lek is er of het is er niet. pas wanneer je écht veel groter wordt ga je optimalisaties uit moeten voeren die wel eens lekken kunnen veroorzaken. bij 300.000 ben je echt nog niet op dit punt.
Nog mooier zelfs: De boel afgeven op het partnerbedrijf die de app daadwerkelijk heeft gemaakt. En ondertussen gebruikers binnen hengelen:
Van hetzelfde RTL Nieuws artikel:
Het lek in de app is een week na de melding door Amigos gedicht. Oprichter Johanan Fraanje zegt dat de techniek van de app is gebouwd door een externe partij. "Daar hadden we toen al geen goed gevoel bij", vertelt hij tegen RTL Nieuws, maar dat het zo kwetsbaar was, had hij niet gedacht. "Onze aandacht ging de afgelopen tijd vooral naar het opschalen voor alle nieuwe gebruikers. Het is ons een beetje te veel geworden, maar we zeggen ook: het moet beter."
7(8)7
Hij ziet dit lek als logisch gevolg van het feit dat ze groter zijn geworden.
Ja, da's toch logisch? Met 300.000 leden wordt die code veel vaker uitgevoerd en dan slijt ie gewoon harder. Dat is hoe software werkt... toch? |:(
(Doe me een lol en vraag niet bij die gast na of ie echt denkt dat het zo werkt; ik vermoed dat ik dat antwoord niet wil weten.)
Ongeacht hoe de mail opgesteld is, zijn de gegevens wel veilig en blijven veilig als ze uitgesloten hebben dat het lek niet misbruikt en opgelost is. Daar is niks om gelogen.
Maar dat hebben ze nog niet vastgesteld want er wordt nog een extern onderzoeksbureau ingeschakeld om te kijken of het lek misbruikt is
Ik ben benieuwd of ze wat zullen vinden.
Als ze security al niet op orde hebben, verwacht ik al helemaal niks qua audit logs oid. Geen idee eigenlijk hoe zo’n onderzoek eruit ziet maar kan me moeilijk voorstellen dat ze minutieus na kunnen gaan wat er wel en niet is gebeurd.

Geen audit logs die bewijzen dat er wèl misbruik is gemaakt kan daardoor vrees ik (zeker gezien hun mail?!) verkeerd geïnterpreteerd worden als “bewijs” dat er geen misbruik heeft plaatsgevonden…

Ik hou mijn hart vast
meeste webservers hebben wel een logfile toch? daar zou je eventueel nog data uit kunnen halen.

maar heb er zelf ook verder vrij weinig vertrouwen in, lijkt me niet een club waar security hoog in het vaandel staat

[Reactie gewijzigd door cracking cloud op 22 juli 2024 18:33]

De access logs van embedded tomcat (de default webserver voor spring-boot applicaties) is bijvoorbeeld by default uitgeschakeld. Van zo'n partij verwacht ik niet dat ze die hebben enabled.

Bron: https://docs.spring.io/sp...ver.configure-access-logs
https://github.com/spring...erverProperties.java#L644
"zij hebben er onder andere voor gezorgd dat jouw exacte locatie nog beter afgeschermd is en dat de app waterdicht is".

Hmmmmmmmmmmmmmmmmmkay... "exacte locatie nog beter afgeschermd ", hoezo nóg beter?

Ze hebben echt geen idee wat er aan de hand is volgens mij.

[Reactie gewijzigd door juiced01 op 22 juli 2024 18:33]

Alternatief: Ze hebben exact door wat er aan de hand is en hebben zo'n lage pet op van hun gebruikers dat ze denken dit te kunnen maken.
Een datalek met zeer privacy gevoelige informatie (naam, geboortedatum, foto's, locatie, prive gesprekken) aankondigen met "Hey amigo, Wat ontzettend vet" :X
Kan me zo kwaad maken om dit bagatelliserende gedoe. En dan ook nog woordgebruik alsof ze een liefdadigheidsinstelling zijn, hou toch op. Het enige dat die mensen willen zijn harde euro's.
Hoop dat een “amigo” de AP verzoekt in te grijpen. Wat een prutsers.
Los van het lek..betekent dit dat een beheerder van Amigo dus gewoon via een UI toegang heeft tot al deze gebruikersdata, waaronder locatiegegevens?
Ik heb net even wat zitten spelen met de GraphQL API van deze app maar waterdicht is het allerminst. Van iedere user kun je zelfs zonder in te loggen de geboortedatum opvragen om maar iets te noemen. Wtf, waarom wordt zoiets niet gewoon naar een leeftijd vertaald? Weet zeker dat als iemand nog wat verder gaat zoeken (en de moeite neemt) er nog veel meer security holes in zitten :x
Ik ken de ontwikkelaar niet maar ik kan mij voorstellen dat dit toch gewoon een uit de hand gelopen hobby project is. Mensen zijn eenzaam en zoeken gezelschap, iemand maakt een basis app, app wordt groot succes en ver buiten de scope of kunnen van de originele bedenker.

Nu wordt het hier afgefikt alsof een gigantisch bedrijf expres nalatig zou zijn.

Ik wil het niet goedpraten maar ik zie vooral veel 'bondscoaches' kritiek hebben.
Sorry hoor, maar als je "hobby app" 300.000 gebruikers heeft moet je gewoon zorgen dat het veilig is. Een lek waarbij iemand admin rol kan krijgen is heel slecht en dat die admin letterlijk alles kan zien, inclusief chats tussen users, is nog slechter. Bij dergelijke groottes horen verantwoordelijkheden, en anders moet je gewoon de stekker er uit trekken als je dat niet aankunt.

Bovendien is het niet een hobbyclubje. Ze hebben ook nog 4 andere apps waarvan ik me ernstig afvraag hoe veilig die zijn.
Ik weet niet hoe snel de groep van 500 naar 300.000 gegaan is.

Als dat binnen een half jaar gegaan is dan begrijp ik wel dat je niet het geld hebt om capabele mensen in te huren die security voor functionaliteit zetten.

De stekker eruit trekken is ook makkelijker gezegd dan gedaan. Hoe ga je je werknemers betalen?

Ik ben het helemaal met je eens dat het veilig moet. Maar ga het maar eens doen.. de realiteit haalt je snel in, succes met de dilemma’s waar je mee om moet kunnen gaan.
Eerlijk gezegd: als je je security niet op orde hebt, moet je ook bij 500 gebruikers al als de wiedeweerga actie ondernemen. De boete die het AP je kan opleggen bij een datalek of erger kan je beginnende bedrijfje in één keer de grond in boren als je je shit niet op orde hebt, en dat is misschien maar beter ook.

Je hebt nalatig security and je hebt geen security, en hier speelt echt het tweede. Volgens de analyse hierboven hebben ze dus een GraphQL-endpoint open staan waar iedereen gewoon lekker op kan queryen (en mutaten?) wat ze willen. Dit is van het kaliber "mongodb zonder wachtwoord aan het internet", niet "bij race conditions lekken we accountinformatie" of "door caching-issues zien gebruikers some andermans profiel".
hier ben ik het zeker eens. Wanneer iemand een klein eetkraampje heeft, neem je het die persoon nog steeds heel erg kwalijk als er blijkt dat hij al een half jaar lang bedorven eten serveert.

Wanneer je ergens een business van maakt moeten dit soort dingen gewoon goed zitten.
Als ik eerlijk moet zijn, kende ik deze dienst tot op vandaag niet.
Amigos was onlangs op RTL Nieuws. Het is kort gezegd een dienst waarop jij je huisfeestje kan aankondigen. Ik kan jou dan een verzoek sturen of ik ook mag komen. Jij kunt mijn profiel bekijken, chatten, en volgens mij ook (video)bellen zodat je een idee hebt wie er langs komt. Pas op het moment dat jij akkoord geeft krijg ik de exacte locatie door.

Vind het persoonlijk nogal een riskant idee om onbekenden binnen te laten op een thuisfeestje. Vrienden van vrienden, prima. Maar totaal onbekenden...

[Reactie gewijzigd door D3F op 22 juli 2024 18:33]

Dat klopt niet helemaal, het wordt veel voor feestjes gebruikt tegenwoordig, maar net zo goed voor chatten, wandelen, sporten, hobby's of gewoon mensen leren kennen in de breedste zin van het woord. Ik chat er wel eens met mensen, een keer gewandeld met iemand want ja, je moet wat als je al 2 jaar thuis zit. Best geinige dienst, alleen wel jammer van dit lek, erg slordig.

[Reactie gewijzigd door Steenvoorde op 22 juli 2024 18:33]

Ik ook niet. En collega's van mij zover ik weet ook niet. Is deze app regio gebonden soms?

Bij Apps zoals Breeze die is nog niet overal in het land. Weet niet of dat hier ook zo is?
Zeker geen geen dochters/ zonen die net uit huis zijn gegaan :+
Ik ben die zoon die net uit huis is gegaan :+

En nope. Nog nooit van gehoord.
Ik ben de zoon die over 2 weken uit huis gaat.

En je raad het al... nog nooit van gehoord :9 :+
stelt Fraanje dat er verbeteringen aan de app zijn toegevoegd waardoor de app "waterdicht" is
Ugh, dit zorgt ervoor dat het jeukt om die app helemaal uit elkaar te trekken en op zoek te gaan naar de volgende kwetsbaarheid. Met dit soort idiote uitspraken vraag je er gewoon om.
Hahaha precies wat ik dacht. Morgen weer een nieuw lek gevonden.
Helemaal mee eens;

Maarja dat krijg je als ze zelf geen echte ITers in dienst hebben en alles uitbesteden. Die zullen zich niet bewust zijn dat zoiets als waterdicht niet bestaat bij software, waarschijnlijk hebben ze nu het fixen van de app uitbesteed aan een bedrijf met app-security specialisten en hopen daarmee voor altijd klaar te zijn.
Bij een penetratietest had die vast wel naar boven gekomen. De kosten hiervan zijn naar mijn mening te overzien vs de gevolgen.

Zelfs al heb je ITers in dienst, een externe pentest is altijd een goed idee. Dit bedrijf heeft gekozen voor marketing en groei en niet voor (basale) security.

Een (relatieve makkelijke) kwetsbaarheid waar je zelfs admin rechten krijgt is gewoon not done.
Maar laten we wel wezen: hoeveel van dit soort jonge start-ups voeren een (fatsoenlijke) pentest uit? Dit kost al snel enkele duizenden euro's (als je het een beetje fatsoenlijk doet), en zeker bij een app waarvoor ze (kennelijk) nog niet eens een verdienmodel hebben, is het makkelijk om te denken 'lekker boeiend'.

Dat ze het beter wel hadden kunnen doen, is een hele andere vraag.
Klinkt een beetje als een API, waar je doodleuk een query kon meegeven die de database uitvoert? Dat zou toch wel erg triest zijn 8)7
je doelt op GraphQL ?
Competent GraphQL-gebruik heeft permissies en checks per veld dag wordt opgevraagd. Dat is natuurlijk lastig voor elkaar te krijgen als je voor zo goedkoop mogelijk een "externe partij" (waarschijnlijk in een derdewereldsland) een backend in elkaar laat flikkeren en dan de focus van je bedrijf op marketing richt, maar het is niet per se onmogelijk.

Facebook gebruikt GraphQL en die hebben hun security redelijk op orde voor de hoeveelheid endpoints die ze bijhouden.

Ik had vanwege de titels van de NOS eigenlijk verwacht dat ze met een Firebase API liepen te kutten die iedereen read/write access gaf, want dat zie je heel erg vaak bij apps die van de grond komen terwijl ze eigenlijk nog in bèta zijn, maar misschien was dat zelfs beter geweest dan een GraphQL-interface zonder restricties… man, man, man.
En dat is precies wat die jonge IT'ers gebruiken.
Had het bedrijf uit Tilburg al even geanalyseerd.
En dat is precies wat die jonge IT'ers gebruiken.
Had het bedrijf uit Tilburg al even geanalyseerd.
Poeh tja die jonge IT’ers toch, die opgegroeid zijn in een tijd waar elke server onder vuur ligt, die snappen er niks van! In tegenstelling tot de mensen die software maakten in de tijd dat je nog iemand’s modem kon disconnecten met een remote commando.
De app is sowieso al een privacy clusterfuck. Voordat je iets kunt doen moet je al een foto van jezelf uploaden en persoonlijke zaken doorgeven.
Behalve dat het dus maanden lek was lijkt er dus ook gebrek aan controle om mogelijke gevolgen van de kans op een lek op tijd te herkennen?

Als je dit zo leest kan je als gebruiker er maar beter opheldering over vragen hoe ze werkelijk persoonsgegevens aan het beschermen waren en waaruit blijkt dat dat voldoende zou zijn als het lek niet gemeld was.

Op dit item kan niet meer gereageerd worden.