image

Weens bedrijf lekt uitslagen 136.000 coronatests via IDOR-kwetsbaarheid

donderdag 18 maart 2021, 09:45 door Redactie, 12 reacties

Een Weens bedrijf heeft via een IDOR-kwetsbaarheid de uitslagen van 136.000 coronatests gelekt. Alleen het aanpassen van een getal in de adresbalk van de browser was voldoende om naam, adresgegevens, geboortedatum, identiteitsnummer en uitslag van 136.000 coronatests te zien, afgenomen bij 80.000 mensen in Duitsland en Oostenrijk. Dat laat de Duitse hackersclub Chaos Computer Club (CCC) weten.

Het Weense bedrijf Medicus.ai biedt een platform genaamd Safeplay voor het online maken van afspraken bij coronatestcentra en het bekijken van uitslagen. De software van Medicus.ai wordt in meer dan honderd testcentra in Duitsland en Oostenrijk gebruikt. Mensen die zich bij deze testcentra hebben laten testen kunnen een account aanmaken om hun uitslag via de online applicatie van Medicus te bekijken.

De url van de testuitslag bevat een nummer van de afgenomen test. Door dit getal in de adresbalk aan te passen konden de uitslagen van andere personen worden ingezien. Er was geen authenticatie vereist, zo ontdekten onderzoekers van de Chaos Computer Club. Het gaat hier om een Insecure direct object references (IDOR)-kwetsbaarheid. Deze beveiligingslekken doen zich voor wanneer een webapplicatie of API een identifier gebruikt om een object in een database op te vragen zonder authenticatie of andere vorm van toegangscontrole.

Ondanks de eenvoud van deze kwetsbaarheid komt die nog altijd geregeld voor. Zo kreeg de Infectieradar van het RIVM met een IDOR-kwetsbaarheid te maken waardoor vertrouwelijke gegevens van deelnemers voor derden toegankelijk waren. Ook de webwinkel van Blokker lekte op deze manier klantgegevens.

Dashboard

Tevens ontdekten de onderzoekers dat via een dashboard, dat voor elk aangemaakt account toegankelijk was, kon worden gezien wanneer erin een testcentra een coronatest was uitgevoerd en wat het resultaat was. Aan de hand hiervan kon een url worden afgeleid van een afbeelding met onder andere de foto van de teststrip waarop het resultaat stond. Op verschillende van deze foto's waren ook de namen van patiënten te zien, meldt de CCC.

Medicus.ai heeft de problemen inmiddels verholpen en zegt dat er geen misbruik van de kwetsbaarheden is gemaakt. Iets wat volgens de CCC niet onafhankelijk valt te verifiëren. Daarnaast claimt het Weense bedrijf dat het alle slachtoffers van het datalek heeft gewaarschuwd, maar de CCC zegt dergelijke meldingen niet te hebben ontvangen.

Reacties (12)
18-03-2021, 10:02 door Anoniem
Auto-nummering op ID's in databasetabellen is een beginners fout numero uno.

Gebruik altijd voor ID's een Universally Unique Identifier, zoals gegenereerd door bijvoorbeeld uuid4.
18-03-2021, 12:00 door Anoniem
Als je zelfs de meest basale beveiligingstechnieken niet beheerst als programmeur, dan ben ik benieuwd hoe de rest van de veiligheid van de opgeleverde software eruit ziet. Er zijn zoveel zwakke programmeurs die wat code in elkaar knutselen en na een afgeronde Udemy cursus denken dat het allemaal wel goed komt. Ook het bedrijf laat hier steken vallen. De eerste de beste security test (voor livegang graag!) had dit aan het licht gebracht. Dat zet ook meteen vraagtekens bij de interne quality assurance, want een basale scan op zwakheden (genoeg opties die als freeware beschikbaar zijn) had dit aan het licht gebracht. Als een 4-ogen principe was gehanteerd, kijken twee mensen over deze zaken heen, hetgeen ook geen vertrouwen wekt. Zo kun je nog wel een tijdje doorgaan. Op naar het volgende lek. Er zal op de huidige manier van werken geen einde aan komen.
18-03-2021, 13:10 door Anoniem
Door Anoniem: Auto-nummering op ID's in databasetabellen is een beginners fout numero uno.

Gebruik altijd voor ID's een Universally Unique Identifier, zoals gegenereerd door bijvoorbeeld uuid4.

Security through obscurity is nog steeds jouw beginners fout.
18-03-2021, 13:50 door Anoniem
Door Anoniem:
Door Anoniem: Auto-nummering op ID's in databasetabellen is een beginners fout numero uno.

Gebruik altijd voor ID's een Universally Unique Identifier, zoals gegenereerd door bijvoorbeeld uuid4.

Security through obscurity is nog steeds jouw beginners fout.

Zal best!
18-03-2021, 14:25 door karma4
Door Anoniem:
Door Anoniem: Auto-nummering op ID's in databasetabellen is een beginners fout numero uno.
Gebruik altijd voor ID's een Universally Unique Identifier, zoals gegenereerd door bijvoorbeeld uuid4.
Security through obscurity is nog steeds jouw beginners fout.
Ook een password is securiy by obscurity. Gebruik van biometrie wordt als een privacy inbreuk gezien. Geef eens aan hoe je zeker weet dat het om de juiste persoon gaat (niet de juiste smartphone), zonder dat mag niet want privacy.
18-03-2021, 15:10 door Anoniem
Door Anoniem: Als je zelfs de meest basale beveiligingstechnieken niet beheerst als programmeur, dan ben ik benieuwd hoe de rest van de veiligheid van de opgeleverde software eruit ziet.

Een en ander is ook in een haastklus (crash program) in elkaar gesmeten. Reken het uit...
18-03-2021, 15:14 door Anoniem
Door karma4:
Door Anoniem:
Door Anoniem: Auto-nummering op ID's in databasetabellen is een beginners fout numero uno.
Gebruik altijd voor ID's een Universally Unique Identifier, zoals gegenereerd door bijvoorbeeld uuid4.
Security through obscurity is nog steeds jouw beginners fout.
Ook een password is securiy by obscurity. Gebruik van biometrie wordt als een privacy inbreuk gezien. Geef eens aan hoe je zeker weet dat het om de juiste persoon gaat (niet de juiste smartphone), zonder dat mag niet want privacy.

Onjuist. Het Principe van Kerkhoffs maakt een uitzondering op Security by Obscurity, namelijk de sleutel zelf:

A cryptosystem should be secure even if everything about the system, except the key, is public knowledge.

Een password is een key en kan dus niet onder security by obscurity vallen. Tenzij je natuurlijk de nickname @Karma4 hebt en je kennis van beveiliging en privacy uitsluitend bestaat uit slagzinnen en grote woorden.
18-03-2021, 15:41 door Anoniem
Door karma4:
Door (13:10) Anoniem:
Door Anoniem: Auto-nummering op ID's in databasetabellen is een beginners fout numero uno.
Gebruik altijd voor ID's een Universally Unique Identifier, zoals gegenereerd door bijvoorbeeld uuid4.
Security through obscurity is nog steeds jouw beginners fout.
Ook een password is securiy by obscurity. Gebruik van biometrie wordt als een privacy inbreuk gezien. Geef eens aan hoe je zeker weet dat het om de juiste persoon gaat (niet de juiste smartphone), zonder dat mag niet want privacy.

Anoniem van 13:10 is gewoon een trol die een best-practice in database ontwerp ridiculiseert, door te veronderstellen dat dit de enige laag van security zou zijn. Natuurlijk wordt wachtwoord authenticatie verondersteld, alsook een goed geconfigureerde server, etc.
18-03-2021, 21:51 door Anoniem
Door Anoniem: Auto-nummering op ID's in databasetabellen is een beginners fout numero uno.

Gebruik altijd voor ID's een Universally Unique Identifier, zoals gegenereerd door bijvoorbeeld uuid4.

Letterlijk uit de RFC https://tools.ietf.org/html/rfc4122

6. Security Considerations

Do not assume that UUIDs are hard to guess; they should not be used
as security capabilities (identifiers whose mere possession grants
access), for example. A predictable random number source will
exacerbate the situation.

Do not assume that it is easy to determine if a UUID has been
slightly transposed in order to redirect a reference to another
object. Humans do not have the ability to easily check the integrity
of a UUID by simply glancing at it.

Distributed applications generating UUIDs at a variety of hosts must
be willing to rely on the random number source at all hosts. If this
is not feasible, the namespace variant should be used.

Immers: 550e8400-e29b-41d4-a716-446655440000 kan geldig zijn en 550e8400-e29b-41d4-a716-446655440001 ook.
19-03-2021, 06:55 door Anoniem
De GGD zal vast niet blij zijn met concurrentie in het lekken van data!

Helaas... als je dus niet wilt dat je gegevens op straat liggen... Niet testen dus. Erg jammer.
19-03-2021, 07:03 door Anoniem
Zo, dat is tenminste positief nieuws!
19-03-2021, 08:33 door Anoniem
Door Anoniem:
Door Anoniem: Auto-nummering op ID's in databasetabellen is een beginners fout numero uno.

Gebruik altijd voor ID's een Universally Unique Identifier, zoals gegenereerd door bijvoorbeeld uuid4.

Letterlijk uit de RFC https://tools.ietf.org/html/rfc4122

6. Security Considerations

Do not assume that UUIDs are hard to guess; they should not be used
as security capabilities (identifiers whose mere possession grants
access), for example. A predictable random number source will
exacerbate the situation.

Do not assume that it is easy to determine if a UUID has been
slightly transposed in order to redirect a reference to another
object. Humans do not have the ability to easily check the integrity
of a UUID by simply glancing at it.

Distributed applications generating UUIDs at a variety of hosts must
be willing to rely on the random number source at all hosts. If this
is not feasible, the namespace variant should be used.

Immers: 550e8400-e29b-41d4-a716-446655440000 kan geldig zijn en 550e8400-e29b-41d4-a716-446655440001 ook.

In mijn commentaar refereer ik daarom expliciet naar uuid4 (nummer 4 van de uuid type). In uuid4 is het laatste block random.

In het voorbeeld hieronder is het eerste gedeelte afgeleid van tijd en systeem, en '19c7d3848d29' (in bold) het random gedeelte.

Voorbeeld: 83cf7bab-a224-4926-bd90-19c7d3848d29

In uuid4 komen dus oplopende series (jouw voorbeeld) niet voor.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.