Nylig skrev Dagens Næringsliv om hvordan søketjenesten Gule Sider utilsiktet delte fødselsdatoer til både voksne og mindreårige på grunn av det som fremstår som en kodetabbe.
Lakk bursdager: – Ikke sikra API-ene spesielt godt
Det var frontendutvikleren Robert Sæther i ItumX som avdekket sårbarheten som gjorde at alle med litt teknisk kompetanse kunne finne personopplysninger til barn med alder helt ned til 7 år. Dette selv om informasjonen ikke var tilstede i den synlige resultatlisten
– Jeg hadde vanskelig for å tro at det stemte, men i lys av hva som har kommet frem så mistenker jeg at det stemmer, sier Sæther til kode24.
Nysgjerrig av natur
Sæther forteller til kode24 at det var hans vanlige nysgjerrighet som gjorde at han oppdaget sårbarheten.
– Jeg liker å åpne inspector-en og se på hvilke requests som går mellom klient og server.
Da han begynte å kikke på Gule Siders kartløsning, oppdaget han at de brukte JSONP for å hente data. Dette er en litt gammeldags måte å forespørre data på uten å måtte forholde seg til sikkerhetsmekanismer som for eksempel Same-origin Policy (SoP), Content Security Policy (CSP) eller Cross-origin resource sharing (CORS).
Sæther er kritisk til at selskapet i 2024 velger å bruke en såpass gammeldags og potensielt usikker teknologi som JSONP. Men det som virkelig fikk han til å sperre opp øynene var hvilke data som ble tilgjengelig fra klienten.
– I dataene som kom tilbake sto fødselsdatoen til alle personene i Unix timestamp. Det gjorde meg mer nysgjerrig, og jeg oppdaget at på Gule Siders personsøk så dukket faktisk fødselsdatoene opp i selve kildekoden – i YMD-format.
– Jeg er litt frustrert over at mange ikke ser problemet
"Ekkelt!"
Sæther sier at personvernentusiasten i han ble litt oppgitt over at at Gule sider kunne være så slepphendte med persondata.
– Jeg ønsket ikke å risikere at feilen enten ikke ville bli fikset eller at den hadde blitt fikset i stillhet. I lys av dette så tok jeg kontakt med Datatilsynet – uten å få svar.
Først når Dagens Næringsliv tok kontakt med Eniro og Datatilsynet ble det fart i sakene, og Gule sider fjernet kort tid etter fødselsdatoer fra både kildekoden i personsøket og API-responsen i karttjenesten.
«Som utvikler vil man kunne utnytte dette.»
– Men er det egentlig et problem at fødselsdatoer ligger ute – det er vel ikke hemmelig?
– Jeg synes det er underspilt at det er snakk om barn. Man kan kartlegge bosted, telefonnumre og alder til barn. Som utvikler vil man kunne utnytte dette ved å utføre databerikelse og slå sammen dataene med andre datasett, noe som vil kunne øke potensiale for misbruk.
– Da jeg begynte å tenke på konsekvensene, synes jeg det gikk fra å være spennende og gøy til å bli litt ekkelt, sier Sæther.
Eniro opererer for øvrig i både Danmark, Sverige og Norge. I Sverige er det mulig å se personers fødselsdato i telefonkatalogen, men dette er "by design".
Helseplattformen avslørte hemmelige adresser
Lagde app for å teste
For å grave mer i hvorvidt mistankene om at mindreårige var med i dataene fra Gule sider stemte, lagde Sæther en enkel Next.js-app som han kjørte lokalt på sin egen datamaskin.
Appen behandlet kun dataene klientside, uten noen mellomlagring eller databerikelse, men gjorde det enklere å søke etter personer i stigende alder.
Via appen fikk han bekreftet at det lå mange mindreårige i dataene, og at det var enkelt å finne mindreårige ved å for eksempel søke på et fornavn i tillegg til for eksempel område, kommune eller postnummer.
– Dette viser fraværet av sikkerhetsmekanismer som for eksempel CORS og CSRF-beskyttelse som gjør at hvem som helst kan konsumere dataene.
– Man kunne jo ha omgått CORS ved å heller gjøre HTTP-forespørslene fra serverside, men med en CSRF-implementasjon samt "HTTP throttling" så ville API-et vært mye bedre sikret, sier Sæther.
En oppdagelse han har gjort, er at Gule sider lanserte en Next.js-versjon av nettsiden i september 2022. Ved å sjekke med Wayback Machine kunne han se at tidligere så lå kun dag og måned i kildekoden, men etter lanseringen av Next-versjonen kom også fødselsåret med.
Tar det alvorlig
Som nevnt er sårbarheten fjernet nå.
Eniro-sjef Hosni Teque-Omeirat sier til kode24 at han ikke ønsker å kommentere saken utover det han allerede har sagt til Dagens Næringsliv, og at hendelsen skal være håndtert i tråd med gjeldende policy og regelverk.
– Vi tar dette feiltrinnet alvorlig og har allerede satt i gang nødtiltak for å umiddelbart fjerne fødselsdatoer fra API-svaret for Gule Sider, og dette er nå utført og bekreftet, sa Teque-Omeirat til avisen.