Sådan fandt IT-udvikler frem til over 3000 kunders oplysninger i Rema 1000 app

Blandt andet ved at udnytte manglen på verificering i Rema 1000’s norske app ’Æ’, var Hallvard Nygård i stand i løbet af en aften blandt andet at hente over 3000 kunders telefonnumre

Rema 1000’s norske app ’Æ’ skabte i sidste uge en del røre, da det kom frem, at it-udvikler Hallvard Nygård havde skaffet sig adgang til den kundedata, som var lagret i appen. Vi har bedt Hallvard forklare, hvordan han fandt frem til dataen:

It-udvikler Hallvard Nygård Illustration: Hallvard Nygård, LinkedIn

I korte træk består fejlen i Rema 1000’s app i, at man ad omveje er i stand til at bede appen om oplysninger, uden at den beder om validering. Det vil sige, at man kan anmode om en specifik kundes oplysninger, uden at appen skal være sikker på, at du er den pågældende kunde.

Læs også: Sikkerhedsbrud i norsk Rema 1000-app: Udvikler fik adgang til kunders kvitteringer

Hallvard Nygård fandt ved en logning af trafik til appen frem til en såkaldt Ocp-Apim-Subscription-Key, som han så derefter brugte til at anmode om forskellige brugeres oplysninger.

Appen benytter sig primært af fem REST-API’er:

  • Toplist (din top 10 liste)
  • Offers (tilbud)
  • Heads (oversigt over brugerens indkøbsture)
  • Rows (enkelt indkøbstur)
  • Cards (censureret kortnummer og udløbsdato)

Det er disse API’er, som Hallvard Nygård anmodede om oplysninger fra, og derved disse oplysninger, som han havde adgang til.

Derudover var der en ekstra API, som gav Hallvard adgang til kundernes telefonnumre, som han frit kunne hente ned. I løbet af en aften hentede han 3411 telefonnumre ned.

Illustration: Hallvard Nygård

Hvis man sender en forespørgsel med et bruger-id til heads-API’et, får man fx sendt dette svar tilbage. Her kan vi se, at kunden ad to omgange har handlet i en Rema 1000-butik i Stangeland, den ene gang for 162,27 NOK og anden gang for 125,1 NOK. Hallvard Nygård understreger, at dette er en bekendts konto, og at han har fået tilladelse til at offentliggøre skærmbillederne.

»Alle kunder var tilgængelige«

Med hensyn til muligheden for massedownload af oplysninger, skriver Hallvard i en mail:

»Alle kunder var tilgængelige. Bruger-ID starter på 10000000, og når Rema 1000 eksempelvis annoncerede at ”500000 har hentet ’Æ’” på deres Facebookside, så tjekkede jeg at 10500000 var tilgængelig, men at 10600000 ikke var.«

Dagen efter afsløringen skrev Rema 1000 en pressemeddelelse, hvor de manede kunderne til ro.

»Vi ser alvorligt på denne hændelse, og sikkerhedsbruddet blev identificeret og umiddelbart lukket. Vi beklager dette overfor brugerne af Æ, men det er vigtigt at påpege, at der ikke er nogen grund til bekymring,« skriver Mette Fossum, kommunikationsdirektør i Rema 1000.

De påpeger yderligere, at det ikke drejer sig om alle brugernes data, som er blevet hentet ned, men kun et begrænset antal.

Brugte Mitmproxy

Hallvard Nygård gjorde brug af værktøjet Mitmproxy. Det kan bruges til at analysere og modificere http-trafik. Herigennem var han i stand til at få fat på de førnævnte subscribtion-keys, som han efterfølgende kunne sende retur til API’en, og derved få kundeoplysningerne.

Her skal det siges, at fejlen nu er blevet rettet, og at du derfor blot bliver mødt med en fejlmelding nu. Det gjorde Hallvard dog ikke, og derfor havde han adgang til databasen.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (10)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#9 Carsten Hahn

Derudover var der en ekstra API, som gav Hallvard adgang til kundernes telefonnumre, som han frit kunne hente ned. I løbet af en aften hentede han 3411 telefonnumre ned.

Hvorfor gjorde han dog det (hentede så meget data). Han havde jo bevist at det kunne lade sig gøre - hvorfor dog ligefrem udnytte hullet ?

  • 1
  • 1
Log ind eller Opret konto for at kommentere