Oppdatering 2023-08-22:

Denne artikkelen ble skrevet i juni 2023. Frem til 27.07 anså datatilsynet google analytics som et ulovlig, men etter dette har det kommet på plass en avtale som gjør at noen overføringer av data kan gjennomføres lovlig til USA. Hovedregelen er fortsatt at det ikke skal overføres personopplysninger fra EU til andre land, men selskaper som har de rette sertifiseringene kan nå motta personopplysninger uten at dette i seg selv er ulovlig. Les hele artikkelen på datatilsynets sider.

Vedtaket om at dette nå er lovlig bestrides av nyob og vil mest sannsynlig bli anket.

Original bloggpost følger:

Datatilsynet i Italia og Frankrike har konkludert med at USA har et utilstrekkelig lovverk for ‘data protection’ og at bruk av Google Analytics (GA) innebærer at data overføres ulovlig til USA. Det norske datatilsynet har foreløpig bare varslet vedtak i en lignende sak, men sier at de ser til europeisk praksis når de skal konkludere.

Ikke bare web

Avgjørelsene nevner spesifikt GA, men datatilsynet slår fast at samme regler også gjelder for andre analyseverktøy som samler inn og sender data til USA.

Foreløpig har det vært fokus på web og web-analyse i disse sakene, men de samme reglene gjelder for apper. I denne bloggposten har jeg gått gjennom noen vanlige norske bank-apper og sett hvilke tjenester de snakker med i bakgrunnen.

Metodikk

I en tidligere bloggpost skrev jeg om MITM, som lar meg kjøre kjøre all nettverkstrafikk fra mobiltelefonen min gjennom en PC og dermed inspisere akkurat hvilke data som sendes - og til hvem.

Så har jeg installert en del vanlige bank-apper på en Apple Iphone og tittet på trafikken som sendes til og fra appene.

Appene og tjenestene de sender data til

Listen er ikke uttømmende, det kan være flere tjenester som brukes som ikke har vært aktive når jeg brukte appene.

AppURL i brukTjeneste bak URL
DNBdnbbankasa.data.adobedc.netAdobe Analytics
Danske Bankin.appcenter.ms
XXXX.sentry.io
eum.danskebank.com
Microsoft App Center Analytics
Sentry
Cisco Appdynamics
Bulder Bankregion1.app-measurement.com
api-eu.mixpanel.com
Google Analytics
Mixpanel
Nordeadevice-api.urbanairship.com
firebaselogging-pa.googleapis.com
UrbanAirship
Google Crashlytics
SBankenregion1.app-measurement.com
firebaselogging-pa.googleapis.com
Google Analytics
Google Crashlytics
Sparebank 1firebaselogging-pa.googleapis.com
api.eu.amplitude.com
Google Crashlytics
Amplitude
VIPPSregion1.app-measurement.com/a
api-eu.mixpanel.com
Google Analytics
Mixpanel
BankIDapi.eu.amplitude.comAmplitude

Her var det mange store amerikanske tjenester som blir foret med nordmenns bankvaner! De hederlige unntakene er de som åpenbart er europeiske tjenester (Amplitude, Mixpanel).

Dataene som sendes til alle disse tjenestene varierer en god del. Det som er felles er at de fleste requestene til disse tjenestene inneholder følgende:

  • OS type og versjon (iOS 16.5.1)
  • Hardware revisjon (Iphone 14_4)
  • Språk, tidssone, land
  • Ofte, men ikke alltid, beskrivelse av hendelser (“User saw the view asking which bankID to login with”)
  • Tidspunkt og varighet for hendelser
  • Installasjons-id, unik pr installasjon

IP-adressene sendes ikke eksplisitt i rapportene, men det trengs ikke siden http-requesten kommer rett fra telefonen og tjenesten i andre enden fint kan hente ut den selv.

I rapporten fra det franske datatilsynet kan vi lese at

Google Analytics is a service that can be integrated by websites such as online sale sites in order to measure the number of visits by Internet users. In this context, a unique identifier is assigned to each visitor. This identifier (which constitutes personal data) and the associated data are transferred by Google to the United States.

Det skal ikke mye rakettforskning til for å se at når de samme data som sendes på web sendes fra en app, så faller det under samme lovgivning som Google Analytics på web.

Hva er den aller beste løsningen™ ?

Med resultatet over er det klart at en del bank-apper har en vei å gå for å være sikker på at de ikke unødvendig smugler brukerdata til USA. Men hva er de beste alternativene?

Tja. Du kan stikke hodet i sanden og late som ingenting? Datatilsynet har jo tross alt bare kommet med varsel om vedtak, ikke faktisk vedtak?

ELLER du kan gjøre det ordentlig, først som sist.

Det enkleste er nok å bruke en europeisk tilbyder av de samme tjenestene som en drop-in-replacement for de amerikanske. Mixpanel, adjust.com og Amplitude har mottak i EU og du slipper hele problematikken med å smugle ulovlige data til USA. Bare vær nøye på å lese databehandleravtalen deres, det kan godt hende de sender data videre til USA.

Det aller beste er å lage en datacollector selv. Det skal ikke mer enn et skarve http-endepunkt og en enkel tabell i databasen før du har en fullgod løsning for det du trenger av logging og krasj-analyse for appen din. Hvis du må kan du sende data videre til en analysetjeneste etter at du har vasket dataene. Da har du god kontroll på hva som blir lagret og hvilke data som eventuelt blir sendt videre.

De slemme SDKene

I tabellen over apper og urler som blir brukt så er det ikke sikkert at koden i appen selv kaller disse tjenestene. SDKer ringer ofte hjem med egne rapporter, og dermed kan appen din plutselig gjøre uønskede kall til tjenester du ikke ville.

For iOS er løsningen enkel: ikke bruk SDKene fra Google, selv om de er fristende å bruke i en kryss-platform setting for å håndtere ting likt på Android og iOS. Det er spesielt fristende å bruke felles SDK fra google for push-meldinger for å få ting likest mulig på tvers av platformer.

For android er Google sine SDKer helt nødvendig for å få push-meldinger, men du kan unngå at de ringer hjem ved å gjøre som Signal-appen: importer SDK for push-notifications og ekskluder vekk bibliotekene som gjør det mulig å ringe hjem:

implementation(libs.firebase.messaging) {
    exclude group: 'com.google.firebase', module: 'firebase-core'
    exclude group: 'com.google.firebase', module: 'firebase-analytics'
    exclude group: 'com.google.firebase', module: 'firebase-measurement-connector'
}

Hvis du er veldig nysgjerrig på rådataene for denne bloggposten så har jeg laget et github repo for dette.

Sliter du med å få tak i solide app-utviklere for å rydde opp kan du jo alltids høre om vi har noen rivende gode folk som kan ta en titt 😉