Denne simple kodestump kunne systematisk have lænset rejsekort-brugeres data

Et sikkerhedshul i rejsekort.dk betød, at brugernes fakturadata kunne lænses ved hjælp af en simpel kode.
Illustration: Rejsekort A/S

En simpel kodestump kunne systematisk have lænset rejsekort-brugeres data. Det skyldes et sikkerhedshul på rejsekort.dk, som opstod efter en softwareopdataring af systemet i starten af juli.

20 kodelinjer produceret på ca. 15 minutter er alt, det kræver at udnytte den nu lukkede fejl på rejsekort.dk

En kodefejl på rejsekort.dk har gjort det muligt for brugerne at tilgå blandt andet hinandens fakturaoplysninger. Det er blandt andet data om, hvor folk har befundet sig i forbindelse med en rejsekort-optankning, samt eventuelle hemmelige adresser.

Det har været muligt at se andre brugeres oplysninger ved at udskifte en parameter i den url, som fremkommer i browserens tekstfelt. Rejsekort A/S har oplyst, at numrene af hensyn til kontrol og revision er fortløbende. Altså efter 1 kommer 2. De reelle tal er på flere cifre.

Dermed har det principielt også været muligt via en stump computerkode automatisk at løbe gennem alle numre og ad den vej systematisk trække oplysninger ud om rigtigt mange brugere. Det tyder intet heldigvis på er sket, har Rejsekort A/S oplyst på baggrund af system-logfiler.

Så lidt skal der til

For at illustrere, hvor lidt der skal til, før en kodefejl som den på rejsekort.dk kan ende med et stort datalæk, har vi bedt internetaktivisten Christian Panton lave et kodeeksempel,.

Kodeeksemplet er lavet i Python og er på ca. 20 linjer. Christian Panton har taget udgangspunkt i den konkrete fejl, og det har taget ham ca. 15 minutter at skrue koden sammen.

Da datasårbarheden forudsætter, at brugeren er logget ind, skal koden suppleres med cookie-oplysninger, og det er desuden nødvendigt at indtaste en user-agent-streng.

Stod hullet stadig åbent, kunne koden bruges til at hente kopier af rejsekort-brugeres private data i pdf-format. Nu vil koden højst skabe unødige forespørgsler til rejsekort.dk

Og vi anbefaler derfor ikke, at nogen forsøger at anvende koden.

Af gode grunde har hverken Christian Panton eller Version2 anvendt koden til at hente andres private data med.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (8)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Michael Jensen

Sådan er det virkelig mange steder. Er det ikke en feature?

Nu er der jo ingen grund til at bruge de fortløbende numre direkte i URL'erne, og ingen grund til nødvendigvis at bruge fakturanummeret som ID rent teknisk overhoved.
Men hvis det er niveauet hos Rejsekort, så kan vi nok regne med dette ikke er eneste svaghed :-)

  • 3
  • 0
Torben Jensen

Kan ikke helt finde ud af om det er åbent stadig. Men uanset er det menneskelig tænkning som gør at IDer SKAL følge efter hinanden "ellers kan vi ikke gennemskue hvor vi er nået til". Som om de printede dem ud og satte i ringbind.

Jeg er ikke pythonprogrammør, men har en relativt god ide om hvordan de id'er er skruet sammen. Og det er nok trivielt at lave tilsvarende i flere andre sprog.
Og mon ikke enhver bruger af Rejsekort relativt nemt også kunne find den rigtige URL.

Dem som forsøger vil sikkert blive tiltalt for hacking etc etc. Men suk altså. Tror de fleste herinde kunne skrue noget sammen som er bedre end dette.

Gad vide hvilke skoler som underviser i den konstruktion af unikke IDer ?

  • 0
  • 0
Jesper Lund Stocholm Blogger

Gad vide hvilke skoler som underviser i den konstruktion af unikke IDer ?


Alle handels(høj)skoler.

Fortløbende ID'er for fakturaer er en regnskabsmæssig detalje og et krav fra Skat. Hvis fakturanumre var "tilfældige", så kunne en erhvervsdrivende sælge dig en vare, give dig en faktura på det, og så smide den ud, når du er gået ... og proppe pengene i lommen.

http://www.skat.dk/SKAT.aspx?oID=96197&chk=201258

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