Klembord iOS 14 uitlezen

Waarom sommige iPhone-apps je klembord uitlezen (en waarom dat niet altijd erg is)

De afgelopen tijd zijn veel buitenlandse apps "betrapt" op het uitlezen van het iPhone-klembord in iOS 14. Ook in Nederland blijken sommige apps je klembord uit te lezen, zo blijkt uit meldingen die we de afgelopen dagen hebben binnengekregen over apps van Albert Heijn, NU, Marktplaats en dergelijke. De berichtgeving hierover is vaak eenzijdig: bedrijven bieden excuses aan en beloven het te verwijderen. Toch is het lang niet altijd kwaadaardig qua insteek.
Gonny van der Zwaag | iCulture.nl - · Laatst bijgewerkt:

Update 9 juli: reactie Albert Heijn toegevoegd.

Gisteren was het LinkedIn, vandaag is het Reddit en er zullen ongetwijfeld nog meer apps volgen. Een nieuwe functie in iOS 14 verklapt dat apps het klembord uitlezen. Ook Nederlandse apps geven sinds kort een melding als je de iOS 14 beta hebt geïnstalleerd.

Toch kun je de ontwikkelaars van deze apps niet zomaar aan de digitale schandpaal nagelen, blijkt uit onderzoek van iCulture. Na het bekijken van een aantal voorbeelden is ons duidelijk geworden dat het lang niet altijd opzettelijk of met kwade insteek gebeurt. Sterker nog: veel ontwikkelaars waren zich tot voor kort van geen kwaad bewust. Ze lezen het klembord om legitieme redenen uit of gebruiken externe frameworks, waarvan nu pas duidelijk wordt dat ze het klembord uitlezen. Voorbeelden van dergelijke frameworks zijn Google Firebase (en meer specifiek Dynamic Linking) en advertentienetwerk Appnexus, die in veel apps gebruikt worden.

Wat is een framework?
Framework (raamwerk) is een geheel van softwarecomponenten dat gebruikt kan worden bij het programmeren van applicaties, maar ook de afspraken hoe die componenten gebruikt worden binnen een groep ontwikkelaars en welke code-standaarden en bibliotheken gebruikt worden kunnen ook onderdeel zijn van een framework. Het framework bepaalt welke software er binnen een organisatie wordt gebruikt en op welke manier.

Vaak besluit een groep ontwikkelaars een toepassing te bouwen met behulp van een bestaand framework om zo een uniforme aanpak door te voeren voor het bouwen van software. Ontwikkelaars kunnen dan gemakkelijker elkaars werk overnemen (bron: Wikipedia)

We hebben de makers van enkele Nederlandse apps gevraagd om een reactie en updaten dit artikel zodra de reactie binnen is. NU.nl gaf al wel een reactie en digitaal expert Brechtje de Leij (@brechtjedeleij) gaf ons ook meer opheldering waarom apps dergelijke klembordfuncties gebruiken (waarvoor dank!).


Waarom gebruikers bezorgd zijn
De meldingen geven gebruikers een ongemakkelijk gevoel, omdat je steeds wordt herinnerd aan een functie die mogelijk een inbreuk op je privacy zou kunnen zijn. Zomaar een reactie die we kregen toegestuurd over de AH-app:

Stel je voor dat je net je creditcarddata hebt gekopieerd. In theorie zou Albert Heijn deze kunnen uitlezen en verwerken (bijv. toegankelijk voor een data-analist).

Het is begrijpelijk dat gebruikers zich hier zorgen over maken. Bedrijven zoals Facebook en Google hebben hun businessmodel gemaakt van het verzamelen van gebruikersdata, dus het is gemakkelijk om te denken dat andere grote bedrijven ook bewust uit zijn op jouw privégegevens.

Update 9 juli 2020: De afdeling woordvoering van AH stuurde ons onderstaande reactie. De uitgebreide uitleg over de klembordmelding en waarom deze verschijnt, zullen we hierbij achterwege laten. Dit gedeelte van de reactie gaat specifiek over de AH-app:

Bij de Albert Heijn-app bleek de pop-up veroorzaakt te worden door de GoogleMobileAds library. De nieuwste versie van de GoogleMobileAds library is aangepast aan de nieuwe pasteboard API van iOS14. Wij hebben vorige week direct een update in de appstore uitgebracht met de nieuwste versie van deze library. Google geeft aan dat de pasteboard functionaliteit in hun GoogleMobileAds library alleen voor debug doeleinden gebruikt wordt.

De Albert Heijn app heeft zelf nooit gebruikt gemaakt van de pasteboard API, en zodoende ook nooit toegang gehad tot privacygevoelige gegevens van onze gebruikers. Dit geldt ook voor de libraries die we gebruiken. Daar waar deze gebruik maken van de pasteboard API, doen ze dat op een manier die juist bedoeld is voor apps om gebruik te kunnen maken van het pasteboard zonder toegang te hebben tot informatie van de gebruiker. Met de laatste versie van de library, die aangepast is aan de nieuwe pasteboard API van iOS14, wordt de melding dan ook niet meer getoond.

Een iCulture-lezer mailde ons met de volgende (niet-officiële) uitleg:

Ik kreeg via-via te horen dat dit komt door een oude library voor Google Ads. Die leest blijkbaar het klembord uit, om te checken of daar een ads parameter in voorkomt. Op deze manier is advertising performance te meten. Nieuwere versie van deze library doet dit niet / op een andere manier.

Klembord NU en Marktplaats-app

‘Lang niet altijd kwade bedoelingen’
Toch hebben we uit de voorbeelden die we bekeken hebben niet de indruk gekregen dat (Nederlandse) ontwikkelaars bewust data van het klembord aan het verzamelen zijn. AH verzamelt op allerlei andere manieren klantwaarde, onder andere via de Bonuskaart, maar het lijkt ons sterk dat AH voor deze specifieke situatie een team ‘data snoopers’ heeft zitten om gegevens van je klembord te halen. We hebben AH uiteraard ook om een reactie gevraagd en updaten dit artikel zodra deze binnen is. De klembordfunctie lijkt inmiddels wel uit de app te zijn gehaald.

Ook de NU-app leest je klembord uit, maar doet dit niet bewust en zonder dat er iets mee gebeurt, zo hebben we inmiddels bevestigd gekregen. Jurre de Ruiter, als Head of Product verantwoordelijk voor de app van NU, geeft in een reactie aan:

We zijn er dankzij de testversie van iOS 14 achtergekomen dat dit issue speelt in de NU.nl-app. Dat is iets waar we ons niet bewust van waren en iets dat we absoluut niet willen.

Uit ons onderzoek blijkt dat het gedrag wordt veroorzaakt door Appnexus en Google Firebase, systemen die wereldwijd worden gebruikt voor o.a. advertenties en analytics. We kunnen met zekerheid zeggen dat we deze informatie nooit zelf hebben verzameld of gebruikt. In onze eerstvolgende update, die zo snel mogelijk wordt uitgerold, wordt dit opgelost.

Heel veel apps gebruiken Google Firebase, maar het wil niet zeggen dat al die apps je klembord raadplegen. Google Firebase is een uitgebreid framework en je kunt eruit halen wat erin zit. In dit geval is specifiek de functie Dynamic Linking de veroorzaker van alle meldingen.

Op Github schrijft een onafhankelijke ontwikkelaar:

Dit lijkt te worden veroorzaakt door Firebase Dynamic Links, die probeert om te controleren of er een dynamische link op het klembord is opgeslagen door een landingpage die je eerder hebt bezocht.
Ik weet niet zeker wat de beste oplossing hier is, maar we (als ontwikkelaars, red.) gaan ongetwijfeld klachten krijgen als gebruikers updaten naar iOS 14, onze app opstarten en onmiddelijk iets zien dat de indruk wekt dat we hun data vergaren.

Ontwikkelaars die inmiddels op de hoogte zijn kunnen Google Firebase Dynamic Linking verwijderen, maar er zullen ook veel ontwikkelaars van kleinere apps zijn die nog van niets weten. Nu steeds meer mensen de iOS 14 beta gebruiken worden de overspoeld door privacyklachten, zonder dat ze zelf actief data aan het verzamelen waren.

Wat is er precies aan de hand?
In iOS 14 krijg je telkens wanneer een app je klembord uitleest een melding. Dit gebeurt bijvoorbeeld bij het opstarten van de Marktplaats-app. Deze app (of een framework in de app) leest uit wat er op je klembord staat en doet er iets mee, al is niet altijd duidelijk wát precies. De meldingen zijn onderdeel van de nieuwe privacyfuncties in iOS 14.

Klembord gekopieerd

Het balletje kwam aan het rollen door een onderzoek van Myst, eerder dit jaar. Het was bijvoorbeeld mogelijk om via deze gegevens iemands locatie te volgen. Apple antwoordde aanvankelijk dat ze geen probleem zagen in deze kwetsbaarheid en niets zouden doen. Toch zit er in iOS 14 opeens deze klembordmelding, dus blijkbaar heeft Apple wel geluisterd. Nadat het uitlezen van je klembord door TikTok werd ontdekt ging het balletje rollen en kwamen er meldingen over veel meer apps.

In de meeste gevallen wordt het uitlezen van je klembord gedaan zonder dat je gegevens meteen op straat liggen. Veel apps die het klembord uitlezen willen vaak alleen maar behulpzaam zijn. Zo controleert de Google Chrome-browser je klembord om te zien of er met de ‘Paste and Go‘-functie meteen een gekopieerde URL geopend moet worden of dat er een zoekopdracht moet worden gestart. Apps voor tekstverwerking kunnen gekopieerde tekst van het klembord halen om het te plakken in een leeg document.

Maar als dit voortdurend gebeurt kan het irritant worden. Je kunt de meldingen (voorlopig nog) niet uitschakelen.

Wat kun jij er als gebruiker aan doen?
Dit zijn de dingen die je als gebruiker kunt doen, als je merkt dat een app het klembord kopieert in iOS 14:

  • Informeer de ontwikkelaar. Mogelijk is hij/zij nog niet op de hoogte of werkt al aan een oplossing.
  • Ga bewust en spaarzaam om met het kopiëren van data naar je klembord. Het kopiëren van je creditcardnummer is niet altijd nodig. Als je al vertrouwelijke data naar je klembord kopieert, open dan niet meteen een app die je niet vertrouwt.
  • Gebruik voorlopig geen beta’s. Het probleem doet zich alleen voor in de iOS 14 beta en iPadOS 14 beta. Zodra deze versies officieel beschikbaar komen zullen veel ontwikkelaars zijn overgestapt naar de nieuwe Pasteboard API’s (zie verderop). Dit voorkomt alleen de meldingen; het voorkomt uiteraard niet dat je klembord wordt uitgelezen.
  • Schakel Handoff uit, zodat er minder informatie naar je klembord wordt geschreven.

Wat kunnen ontwikkelaars eraan doen?

De meest voor de hand liggende oplossing is dat ontwikkelaars het uitlezen van het klembord verwijderen uit hun apps. Maken ze gebruik van externe frameworks, dan kunnen ze die verwijderen of op zoek gaan naar een alternatief.

Maar er is ook nog een andere oplossing. In iOS 14 zitten nieuwe opties voor ontwikkelaars om ‘clipboardgate’ te voorkomen. Het gaat daarbij specifiek om nieuwe pasteboard API’s die voorkomen dat steeds een melding wordt getoond.

In iOS 13 of eerder kan een app alleen controleren wat er op het klembord staat door de inhoud van het klembord eerst volledig uit te lezen. Een app kan dan bijvoorbeeld controleren of het een URL, een stuk tekst of een afbeelding is, en vervolgens bepalen of er iets mee moet worden gedaan. De nieuwe Pasteboard API in iOS 14 geeft apps de mogelijkheid om te kijken wat voor type data er op het klembord staat, zonder meteen toegang te krijgen. Is het bijvoorbeeld een URL en kan de app daar zelf niets mee, dan hoeft hij ook geen toegang te krijgen. De Apollo-app (een Reddit-alternatief) is daarvan een goed voorbeeld – je leest er verderop meer over. Staat er geen URL op het klembord, dan kan Apollo er niets mee en kan het klembord verder negeren. Je krijgt dan ook geen melding.

Als ontwikkelaars deze API gaan gebruiken krijg je dus een stuk minder meldingen dan nu in de iOS 14 beta het geval is. Helaas is het voor ontwikkelaars nu nog niet mogelijk om apps met iOS 14-functies uit te brengen, dus je zult als betagebruiker nog wekenlang te maken krijgen met heel veel meldingen. De nieuwe API lost niet alles op, maar maakt de irritatie over de vele meldingen wel een stuk behapbaarder.

Een andere oplossing is dat makers van frameworks aanpassingen doen, zodat ze niet langer ongewenst het klembord uitlezen. Of Google Firebase aanpassingen gaat doen kun je in deze Github-discussie volgen.

Situatie 1: Apps die bewust (en zonder kwade bedoelingen) je klembord uitlezen

Er zijn allerlei redenen te bedenken waarom een app je klembord wil uitlezen. Je kopieert bijvoorbeeld een stuk tekst vanuit Safari naar de Notities-app. De app hoeft dan niet meteen al je klembord uit te lezen. Dat hoeft pas te gebeuren op het moment dat jij bewust een Plak-actie uitvoert.

Ook als je wilt inloggen in een willekeurige app en daarbij het wachtwoord uit de 1Password-app kopieert, hoeft de ontvangende app niet meteen je klembord uit te lezen. Ook dat gebeurt pas op het moment dat jij gaat plakken.

Apollo app klembord

De situatie bij Reddit
Toch zijn er ook apps die al bij het openen je klembord uitlezen. Reddit heeft in een verklaring uitgelegd dat hun app bij het openen controleert of er een URL op het klembord staat. Vervolgens krijg je een suggestie voor de titel van je post, gebaseerd op de inhoud van de URL. Bij Reddit is het dus een eigen, ingebouwde functie en wordt het niet veroorzaakt door een extern framework. Het was vooral bedoeld uit gemak. Omdat Reddit de functie niet supernoodzakelijk vond, hebben ze het nu verwijderd. De fix komt op 14 juli beschikbaar. Je zult voortaan zelf een goede titel voor je post moeten verzinnen.

Reddit heeft aangegeven dat je privacy niet in gevaar is gekomen, omdat het bedrijf de inhoud van het klembord niet opslaat of naar interne of externe servers verstuurt.

Situatie #2: Apps die externe frameworks gebruiken
Misschien wel de grootste groep ‘boosdoeners’ zijn apps die gebruik maken van externe frameworks, zoals we hierboven al hebben genoemd. Die frameworks hebben lang niet altijd een kwaadaardige insteek, maar het kan als gebruiker wel als zodanig worden ervaren. Een goed voorbeeld is de app van The Weather Network.

Je kunt de komende maanden nog heel wat meer “Privacy is important to us”-verklaringen verwachten, van bedrijven die door gebruikers op het matje zijn geroepen.

De situatie bij The Weather Network
De app van The Weather Network blijkt je klemborddata uit te lezen, maar doet dat niet zelf. Zoals iemand op Reddit uitlegt, zijn er genoeg legitieme redenen om dit te doen. Vooral als je met een complexe app te maken hebt, zijn diagnostische functies erg belangrijk. Om de kwaliteit van een app in de gaten te houden en te verbeteren zul je bijvoorbeeld crashdata en data over de performance van een app moeten verzamelen. “Het is vrijwel onmogelijk om een app compleet te testen en elke mogelijke situatie te achterhalen, die fouten en crashes kunnen veroorzaken”, aldus deze Reddit-gebruiker, die bij een groot softwarebedrijf werkt.

Opeens heb je duizenden of zelfs wel miljoenen gebruikers die allerlei dingen met de app doen die je nooit had kunnen voorspellen en ze ontdekken daarbij allerlei fouten. Het verzamelen van data als er problemen optreden is erg belangrijk.

Naast deze crashdata willen ontwikkelaars ook weten hoe je een app gebruikt, maar ook daarbij hoeft je privacy niet in gevaar te komen. Dezelfde redditor schrijft:

Minder belangrijk, maar ook nuttig voor appontwikkelaars, is het verzamelen van telemetriedata, zodat je bijvoorbeeld kunt zien of een bepaalde functie in de app niet wordt gebruikt. Misschien is het te diep begraven in de menu’s, of zijn gebruikers er niet van op de hoogte. Ik heb enkele geloofwaardige scenario’s meegemaakt waarbij we een nieuwe functie uitbrachten, maar deze niet goed zichtbaar was en mensen het dus niet gebruikten. We maakten het prominenter zichtbaar op het beginscherm van de app en opeens werd het populairder. Deze telemetriedata (hoe mensen de app binnenkomen, waar ze klikken, etc.) is 100% anoniem en bevat geen gebruikersinformatie.

De ontwikkelaars zou zo’n analysetool ook zelf kunnen schrijven, maar dat is ingewikkeld:

Omdat crashrapportages en telemetrie-frameworks erg complex zijn en veel tijd kosten om te schrijven en te onderhouden, gebruiken de meeste ontwikkelaars third party codebibliotheken in plaats van ze zelf te schrijven. Deze bibliotheken gebruiken vaak generieke features (zoals het klembord) om data opt te slaan, omdat het min of meer garandeert dat de code op een breed spectrum aan apparaten en OS-versies werkt. Dit is nodig als je niet zeker weet waar de eindgebruiker op draait.

Situatie #3: Het puppy-syndroom
Wat ons bij het bestuderen van verschillende apps opviel, is dat het publiek heel verschillend reageert, afhankelijk van het imago van de ontwikkelaar. Zo wordt het hierboven genoemde The Weather Network neergezet als een ‘evil company’, terwijl de maker van Apollo volgens gebruikers geen kwade bedoelingen kan hebben.

De situatie bij Apollo
Apollo wordt gemaakt door een eenmansbedrijf. Het is een app waarmee je Reddit kunt lezen en net als de officiële Reddit-app wordt bij het opstarten van de app je klembord uitgelezen. Wat ons opviel is dat gebruikers bij deze app heel wat minder agressief reageren. De argumenten die ze daarvoor gebruiken zijn echter niet altijd even zuiver. Zo beweert iemand dat de maker van Apollo onmogelijk kwade bedoelingen kan hebben, omdat hij tienduizenden dollars doneerde aan de dierenopvang. Iemand die zo aardig is kán geen kwade bedoelingen hebben, vinden mensen. Maar donaties aan een dierenopvang hebben niets te maken met de werking van een app.

Apollo app klembord

Apollo heeft overigens legitieme redenen om je klembord uit te lezen. De app controleert of je een Reddit-link hebt gekopieerd en geeft je daarna de mogelijkheid om rechtstreeks naar die discussie in de app te springen. Dit betekent ook dat de waarschuwingsbalk elke keer verschijnt als je de app opent.

Wat ons hierbij opviel is dat de perceptie van het publiek heel verschillend is bij Apollo en The Weather Network. Als je de maker van een app wilt verdedigen of beschuldigen, is het goed om even na te denken of je geen last hebt van het ‘puppy-syndroom’ (Apollo) of het ‘all-big-companies-are-evil-syndroom’ (The Weather Network).

Situatie #4: Apps die onnodig je klembord uitlezen
Er zijn ook apps die eigenlijk helemaal geen reden hebben om je klembord uit te lezen. TikTok, Twitter, Starbucks, Overstock, AccuWeather en Microsoft’s LinkedIn zijn goede voorbeelden. De meeste bedrijven hebben nog geen goede verklaring gegeven waaróm ze eigenlijk toegang tot je klembord willen. Dat TikTok je klembord uitleest werd al in maart 2020 ontdekt. In juni werd met de komst van iOS 14 beta duidelijk dat het nog steeds gebeurde en TikTok beloofde te stoppen.

Hoewel we niet zeker weten of TikTok kwade bedoelingen had, kun je je wel afvragen waarom ze geen eerlijke verklaring hebben gegeven en sinds maart ook geen actie hadden ondernomen. Voorzover bij ons bekend zijn er nog bij geen enkel bedrijf echt kwaadaardige bedoelingen aangetoond – al zullen ze dat natuurlijk nooit zelf toegeven. Wat de third party-frameworks ermee doen is soms wel duidelijk (zoals crash- en performance-data verzamelen), maar lang niet altijd.

Volgens Brechtje de Leij zeggen sommige appmakers dat ze het doen om spam te voorkomen, zodat mensen niet 100x een reactie kunnen posten.

Wat bijvoorbeeld ook nog mogelijk is dat apps nog oude code of frameworks bevatten. Ontwikkelaars hebben ooit code toegevoegd in een eerdere versie van de app, maar zijn vergeten om die code te verwijderen in latere versies. Het is dus lang niet altijd zo dat er actief iets wordt gedaan met de data van je klembord. Het wordt ook lang niet altijd opgeslagen en naar de ontwikkelaar verzonden en het is ook lang niet altijd zo dat je data wordt doorgestuurd naar externe marktonderzoekers, marketing- of reclamebedrijven.

Meer over de nieuwe privacyfuncties in iOS 14 lees je in onderstaand artikel.

Revisiegeschiedenis:

  • 2020 - 09 juli: Reactie Albert Heijn toegevoegd.

Suggestie hoe we dit artikel kunnen verbeteren? Laat het ons weten!

Informatie

Laatst bijgewerkt 9 juli 2020, 12:49
Categorie Achtergrond
Onderwerp klembord
Software iOS 14

Reacties zijn gesloten voor dit artikel.