Hoe slecht ontworpen UX op een coronavirus-test ons bijna in zelfisolatie bracht, maar een beveiligingslek ons ​​redde

Hoe slecht ontworpen UX op een coronavirus-test ons bijna in zelfisolatie bracht, maar een beveiligingslek ons ​​redde
Dit ben ik, terwijl ik een script schrijf om parameters op te sommen voor een POST-verzoek aan gov.tr, zittend voor de grens met Kroatië.

Hoe het allemaal begon

Mijn vrouw en ik reizen de wereld rond en werken op afstand. We zijn onlangs verhuisd van Turkije naar Kroatië (het beste punt om Europa te bezoeken). Om in Kroatië niet in quarantaine te gaan, moet je uiterlijk 48 uur voor binnenkomst een certificaat van een negatieve covid-test laten maken.

We kwamen erachter dat het relatief winstgevend is (2500 roebel) en snel (alle resultaten komen binnen 5 uur) om een ​​test te doen op de luchthaven van Istanbul, van waaruit we net zijn vertrokken.

We kwamen 7 uur voor vertrek aan op het vliegveld, vonden een testpunt. Ze doen alles chaotisch: je komt naar boven, geeft je paspoort, betaalt, je krijgt 2 stickers met een streepjescode, je gaat naar het mobiele laboratorium, waar ze een van deze stickers van je afnemen om je analyse te identificeren. Nadat je weggaat, en ze vertellen je: ga naar deze site: enabiz.gov.tr/PcrTestSonuc, rijd je barcode en de laatste 4 cijfers van je paspoort in, na een tijdje komt er resultaat.

Hoe slecht ontworpen UX op een coronavirus-test ons bijna in zelfisolatie bracht, maar een beveiligingslek ons ​​redde

Maar als u direct na het passeren van de analyse gegevens invoert, geeft de pagina een foutmelding.

Hoe slecht ontworpen UX op een coronavirus-test ons bijna in zelfisolatie bracht, maar een beveiligingslek ons ​​redde
Hoe slecht ontworpen UX op een coronavirus-test ons bijna in zelfisolatie bracht, maar een beveiligingslek ons ​​redde

Zelfs toen kropen gedachten over de "mooie" UX in mijn hoofd, waarin, met elke fout van de operator die de paspoortgegevens inreed, er geen manier is om uw resultaat te achterhalen.

Vóór het vertrek

De vertrektijd komt, ik voer mijn gegevens in en zie dat de documenten ervoor al aanwezig zijn, hoewel er nog geen testresultaat is.

Hoe slecht ontworpen UX op een coronavirus-test ons bijna in zelfisolatie bracht, maar een beveiligingslek ons ​​redde
Hoe slecht ontworpen UX op een coronavirus-test ons bijna in zelfisolatie bracht, maar een beveiligingslek ons ​​redde

Het is zelfs duidelijk dat de testen 1.5 uur geleden in het laboratorium zijn aangekomen. Maar de gegevensinvoer van mijn vrouw geeft nog steeds een foutmelding dat de invoer niet is gevonden. En nog belangrijker, je kunt niet zomaar gaan vragen wat er aan de hand is, omdat. We zijn geslaagd voor de test in de zone voor de paspoortcontrole.

Bij het instappen van de vlucht werden we om testresultaten gevraagd, maar gelukkig konden we de luchthavenvertegenwoordiger ervan overtuigen dat ze snel zouden verschijnen (ze lieten ze de streepjescodes zien), en als laatste redmiddel zouden we in quarantaine gaan.

Zodra ik in het vliegtuig stapte, bleek uit mijn code dat ik een negatieve test had.

Hoe slecht ontworpen UX op een coronavirus-test ons bijna in zelfisolatie bracht, maar een beveiligingslek ons ​​redde

Bij aankomst

En hier begint het plezier! Zodra we binnenvlogen en verbinding maakten met de lokale wifi, bleek dat het record van mijn vrouw niet in de database stond. En aan de grens zelf werden de documenten heel voorzichtig benaderd: de grenswachter deed een test op coronavirus en nam het mee naar een aparte kamer om de realiteit te controleren. We besloten dat we ons vertrouwensverhaal zouden vertellen zoals het is en kijken welke opties we hebben.

Terwijl we in de rij stonden, besloot ik te controleren op juiste (mijn) en onjuiste gegevens, hoe de validatiepagina reageert.

Het bleek dat ze een postverzoek naar stuurt www.enabiz.gov.tr/PcrTestSonuc/GetPcrRaporVerifyWithKimlik, met de volgende parameters:

barcodeNr=XX
kimlikNo=JJ
kimlikTipi=2
waar barcodeNr - barcode nummer, kimlikNee - Paspoort ID, Kimlik Tipi – vaste parameter gelijk aan 2 (als alleen de eerste twee velden zijn ingevuld). Er waren geen tokens zichtbaar. Het verzoek retourneerde 1 voor de juiste parameters (mijn gegevens) en 0 voor de onjuiste.

Van de postbode probeerde ik 40 combinaties te sorteren (plotseling een fout van één teken), maar er kwam niets van terecht.

Op dat moment benaderden we de grenswacht, hij luisterde naar ons verhaal en stelde quarantaine voor. Maar we wilden duidelijk niet 14 dagen in het appartement zitten, dus vroegen we om even te wachten in de transitzone om te proberen het probleem binnen een paar uur op te lossen. De grenswacht kwam onze positie binnen, ging kijken of we in de witte zone konden zitten en zei, met instemming van het hoofd: “Oké, nog maar een paar uur.”

Ik ging op zoek naar de telefoons van degenen die de kroontest deden, en besloot tegelijkertijd een gekke hypothese te testen: als dit systeem zo'n vreselijke UX heeft, dan zou het beveiligingssysteem niet goed moeten zijn, ook al is de gov.tr ​​​​domein.

Het resultaat was dat ik, terwijl ik aan het bellen was, een klein script schreef dat alle nummers van 0000 tot 9999 in het kimlikNo-veld doorzocht. barkodNee, we hadden een sticker, dus het kon niet verkeerd zijn.

Stel je mijn verbazing voor toen ik zelfs na 500 opeenvolgende verzoeken niet werd verbannen en het script bleef draaien met 20 verzoeken per seconde vanaf de wifi op de luchthaven.

Bellen leverde weinig resultaat op: ik werd doorverbonden van de ene afdeling naar de andere. Maar al snel gaf het script de felbegeerde waarde 6505, wat helemaal niet leek op de echte 4 cijfers van het paspoort.

Na het uploaden van het document bleek dat het duidelijk niet het paspoort van mijn vrouw was (Russische buitenlanders hebben niet eens zulke nummers), maar alle andere gegevens (inclusief voornaam, achternaam en geboortedatum) kloppen.

Hoe slecht ontworpen UX op een coronavirus-test ons bijna in zelfisolatie bracht, maar een beveiligingslek ons ​​redde

Het meest interessante is dat de streepjescodes ook niet willekeurig zijn, maar bijna één voor één gaan. Dus in theorie zou ik contacten kunnen vinden die het paspoortnummer van mijn vrouw hebben gekregen, en in het algemeen de privégegevens van andere mensen soepel kunnen wegpompen.

Maar het was 9 uur 's ochtends en een nacht zonder slaap, ik was te laat voor een online vergadering en was blij dat ze ons binnen lieten zonder quarantaine, dus begon ik net aan mijn reis door Europa.

Bron: www.habr.com

Voeg een reactie