Vier advertentie-SDK's in Android-apps sturen de locatie van gebruikers standaard door zodra de app zelf locatietoestemming heeft, blijkt uit eigen netwerkonderzoek van de Electronic Frontier Foundation dat op 4 augustus verscheen.
Laat je een app bouwen, dan ben jij de verwerkingsverantwoordelijke voor alle persoonsgegevens die eruit stromen, ook voor een advertentiebibliotheek waarvan de eigenaar van de app het doorgeven meestal niet doorheeft. Zodra een gebruiker jouw app toestemming geeft voor locatie, erven de ingesloten SDK's precies dezelfde toegang: een aparte toestemming per SDK bestaat niet op Android. Wat zo'n derde partij vervolgens met die coördinaten doet, staat in geen enkel opleverdocument, terwijl een klacht bij de Autoriteit Persoonsgegevens wel bij jou landt.
Vier SDK's die het standaard aanzetten
EFF nam de publieke ontwikkelaarsdocumentatie van tientallen veelgebruikte advertentie-SDK's door en lichtte er vier uit die locatie standaard meesturen in advertentieverzoeken. InMobi, de tiende populairste advertentie-SDK op Android, schrijft in zijn integratiehandleiding dat de SDK locatiesignalen automatisch doorstuurt zodra die beschikbaar zijn, en raadt ontwikkelaars aan dat zo te laten omdat impressies met locatie doorgaans meer opleveren. Het bedrijf adviseert daarbij om juist de precieze locatietoestemming te vragen, ook als de app die functioneel niet nodig heeft.

BidMachine, dat zegt ruim 600 miljoen gebruikers via zijn SDK te bereiken, meldt in de geavanceerde instellingen dat de SDK het toestel automatisch kan volgen om betere advertenties te tonen. Verve zet locatietracking in zijn HyBid-SDK standaard aan, met naar eigen zeggen 1,5 miljard gebruikers in ruim 10.000 apps. Dat bedrijf liet EFF weten alleen netwerklocatie te gebruiken en die af te vlakken tot een straal van minimaal 1.850 voet, ongeveer 560 meter. Huawei's Petal Ads, ingebouwd in meer dan 85.000 apps, noemt de methode om het uit te zetten alleen in een aparte nalevingsgids en niet in de integratiehandleiding zelf.
Het verschil tussen die niveaus is fors. Een precieze locatietoestemming op Android geeft volgens de documentatie van het platform een schatting binnen ongeveer vijftig meter en soms tot op drie meter nauwkeurig, terwijl de grove variant blijft steken op zo'n drie vierkante kilometer. Een advertentienetwerk dat de precieze variant meekrijgt, kan die coördinaten in een biedingsverzoek naar duizenden partijen tegelijk sturen.
BidMachine corrigeerde zijn documentatie na de meting
EFF mat het netwerkverkeer van twee apps met de BidMachine-SDK: QR Scanner, met meer dan 50 miljoen downloads, en GPS Speedometer, met meer dan 10 miljoen. In beide gevallen zaten precieze coördinaten in de verzoeken naar een BidMachine-domein, terwijl de pagina van BidMachine over de Google Play-privacylabels tot dat moment stelde dat precieze locatie niet werd verzameld. Op 3 augustus, na de vraag van EFF, paste BidMachine die pagina aan en staat er dat de SDK precieze locatie wél verzamelt zodra de app-toestemming er is.
BidMachine liet EFF weten dat het niets kan ophalen zonder toestemming van het besturingssysteem en dat uitgevers zelf verantwoordelijk zijn voor de toestemmingsstromen in hun app. Dat is precies de doorschuif waar jij als opdrachtgever mee eindigt. Geen van beide apps toonde een melding of vroeg toestemming voordat de locatie wegging, en geen van beide vermeldde het delen van locatie met derden in de sectie Gegevensbeveiliging op Google Play.
De verklaring op Google Play staat op jouw naam
Google laat daarover weinig ruimte: de ontwikkelaar is verantwoordelijk voor de juistheid van dat label en moet de gegevensverwerking van alle derde partijen in de app nagaan. Die labels leunen volledig op wat de ontwikkelaar zelf opgeeft, zonder dat iemand naast de code kijkt wat een SDK feitelijk over de lijn stuurt.
Daarmee is er één vraag die je vandaag kunt stellen aan wie je app bouwde of beheert. Vraag om de lijst van alle third-party libraries in de build, met per bibliotheek welke Android-permissies die erft en welke instelling het doorsturen van locatie uitzet. Zit er een advertentie-SDK tussen, vraag dan om de regel code die het expliciet uitschakelt, niet om de geruststelling dat het wel meevalt. Dat is dezelfde beweging als de veldenlijst van je app behandelen als de grootste knop op je eigen aansprakelijkheid in plaats van als technisch detail voor de bouwer.
De kern van deze bevinding is niet dat vier bedrijven kwaadwillend zijn, maar dat de standaardinstelling het werk doet. EFF wijst op onderzoek dat laat zien dat ontwikkelaars zelden aan de defaults van een SDK komen, dus wie die default kiest, bepaalt in de praktijk het privacyniveau van duizenden apps tegelijk. De aansprakelijkheid landt intussen aan het eind van de keten, bij het bedrijf waarvan de naam in de appstore staat. Dat patroon kwam eerder dit jaar al langs bij een supporters-app die volgens de meting van een beveiligingsonderzoeker pasfoto, BSN en handtekening uit de paspoortchip naar een server op AWS in Ierland stuurde, iets wat de maker betwist: de opdrachtgever hoort pas van buiten wat zijn eigen app doet. Een oplevering die alleen vastlegt wat de software moet doen, zwijgt precies over de aansprakelijkheid die je meekoopt.
Veelgestelde vragen
Weten wat er in je app zit
Ik neem software over die iemand anders bouwde, breng in kaart welke bibliotheken en koppelingen erin zitten en bouw door op wat blijft. Van meedenken en ontwerpen tot bouwen en automatiseren, self-hosted waar dat kan.
Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.
