Wie schlecht gestaltete UX bei einem Coronavirus-Test uns fast in Selbstisolation versetzte, uns aber eine Sicherheitslücke rettete

Wie schlecht gestaltete UX bei einem Coronavirus-Test uns fast in Selbstisolation versetzte, uns aber eine Sicherheitslücke rettete
Ich schreibe ein Skript zur Aufzählung von Parametern für eine POST-Anfrage an gov.tr ​​und sitze vor der Grenze zu Kroatien.

Wie alles begann

Meine Frau und ich reisen um die Welt und arbeiten aus der Ferne. Wir sind kürzlich von der Türkei nach Kroatien gezogen (der beste Ort, um Europa zu besuchen). Um in Kroatien nicht in Quarantäne zu müssen, muss spätestens 48 Stunden vor der Einreise eine Bescheinigung über einen negativen Covid-Test vorliegen.

Wir haben herausgefunden, dass es relativ profitabel (2500 Rubel) und schnell (alle Ergebnisse liegen innerhalb von 5 Stunden vor) ist, einen Test am Flughafen Istanbul zu machen, von dem wir gerade abgeflogen sind.

Wir kamen 7 Stunden vor Abflug am Flughafen an und fanden einen Testpunkt. Sie machen alles chaotisch: Sie kommen vorbei, geben Ihren Reisepass ab, bezahlen, Sie bekommen 2 Aufkleber mit einem Barcode, Sie gehen zum mobilen Labor, wo sie Ihnen einen dieser Aufkleber zur Identifizierung Ihrer Analyse abnehmen. Nachdem Sie gegangen sind, wird Ihnen gesagt: Besuchen Sie diese Seite: enabiz.gov.tr/PcrTestSonucGeben Sie Ihren Barcode und die letzten 4 Ziffern Ihres Reisepasses ein, nach einer Weile erhalten Sie ein Ergebnis.

Wie schlecht gestaltete UX bei einem Coronavirus-Test uns fast in Selbstisolation versetzte, uns aber eine Sicherheitslücke rettete

Wenn Sie jedoch unmittelbar nach bestandener Analyse Daten eingeben, gibt die Seite einen Fehler aus.

Wie schlecht gestaltete UX bei einem Coronavirus-Test uns fast in Selbstisolation versetzte, uns aber eine Sicherheitslücke rettete
Wie schlecht gestaltete UX bei einem Coronavirus-Test uns fast in Selbstisolation versetzte, uns aber eine Sicherheitslücke rettete

Schon damals schlichen sich Gedanken über die „schöne“ UX in meinen Kopf ein, bei der es bei einem Fehler des Betreibers, der die Passdaten eingegeben hat, keine Möglichkeit gibt, Ihr Ergebnis herauszufinden.

Vor der Abreise

Die Abreise kommt, ich gebe meine Daten ein und sehe, dass die Unterlagen dafür schon da sind, obwohl noch kein Testergebnis vorliegt.

Wie schlecht gestaltete UX bei einem Coronavirus-Test uns fast in Selbstisolation versetzte, uns aber eine Sicherheitslücke rettete
Wie schlecht gestaltete UX bei einem Coronavirus-Test uns fast in Selbstisolation versetzte, uns aber eine Sicherheitslücke rettete

Es ist sogar klar, dass die Tests vor 1.5 Stunden im Labor eingetroffen sind. Aber die Dateneingabe meiner Frau gibt immer noch die Fehlermeldung aus, dass der Eintrag nicht gefunden wurde. Und was am wichtigsten ist: Sie können nicht einfach hingehen und fragen, was los ist, denn. Wir haben den Test in der Zone vor der Passkontrolle bestanden.

Beim Einsteigen in den Flug wurden wir nach Testergebnissen gefragt, aber glücklicherweise konnten wir den Flughafenvertreter davon überzeugen, dass sie bald erscheinen würden (zeigten ihm die Barcodes) und als letzten Ausweg würden wir uns in Quarantäne begeben.

Sobald ich das Flugzeug bestieg, zeigte mein Code an, dass ich einen negativen Test hatte.

Wie schlecht gestaltete UX bei einem Coronavirus-Test uns fast in Selbstisolation versetzte, uns aber eine Sicherheitslücke rettete

Bei Ankunft

Und hier beginnt der Spaß! Sobald wir einflogen und uns mit dem lokalen WLAN verbanden, stellte sich heraus, dass der Eintrag meiner Frau nicht in der Datenbank enthalten war. Und an der Grenze selbst wurde sehr vorsichtig mit den Dokumenten umgegangen: Der Grenzschutzbeamte machte einen Test auf das Coronavirus und brachte ihn in einen separaten Raum, um die Echtheit zu überprüfen. Wir beschlossen, unsere Vertrauensgeschichte so zu erzählen, wie sie ist, und herauszufinden, welche Optionen wir haben.

Während wir in der Schlange standen, beschloss ich, auf korrekte (meine) und falsche Daten zu prüfen, wie die Validierungsseite reagiert.

Es stellte sich heraus, dass sie eine Post-Anfrage an sendet www.enabiz.gov.tr/PcrTestSonuc/GetPcrRaporVerifyWithKimlik, mit den folgenden Parametern:

barcodeNo=XX
kimlikNo=YY
kimlikTipi=2
wo BarcodeNr - Barcode, kimlikNein - Passport-ID, Kimlik Tipi – fester Parameter gleich 2 (wenn nur die ersten beiden Felder ausgefüllt sind). Es waren keine Token sichtbar. Die Anfrage gab 1 für die richtigen Parameter (meine Daten) und 0 für die falschen zurück.

Vom Postboten aus habe ich versucht, 40 Kombinationen zu sortieren (plötzlich ein Fehler von einem Zeichen), aber es kam nichts dabei heraus.

In diesem Moment gingen wir auf den Grenzschutzbeamten zu, er hörte sich unsere Geschichte an und schlug Quarantäne vor. Aber wir wollten offensichtlich nicht 14 Tage in der Wohnung sitzen, also baten wir darum, etwas in der Transitzone zu warten, um zu versuchen, das Problem in ein paar Stunden zu lösen. Der Grenzschutzbeamte betrat unsere Position, schaute, ob wir in der weißen Zone sitzen könnten, und sagte mit Zustimmung des Chefs: „Okay, nur ein paar Stunden.“

Ich fing an, nach den Telefonen derjenigen zu suchen, die den Corona-Test gemacht haben, und beschloss parallel dazu, eine verrückte Hypothese zu testen: Wenn dieses System eine so schreckliche UX hat, dann sollte das Sicherheitssystem nicht gut sein, auch wenn die Regierung Domain.

Als Ergebnis habe ich, während ich am Telefon saß, ein kleines Skript geschrieben, das alle Nummern von 0000 bis 9999 im kimlikNo-Feld sortierte. barkodNein, wir hatten einen Aufkleber, also konnte es nicht falsch sein.

Stellen Sie sich meine Überraschung vor, als ich selbst nach 500 fortlaufenden Anfragen nicht gesperrt wurde und das Skript weiterhin mit 20 Anfragen pro Sekunde über das Flughafen-WLAN lief.

Anrufe brachten keinen großen Erfolg: Ich wurde von einer Abteilung zur anderen weitergeleitet. Doch schon bald ergab das Skript den begehrten Wert 6505, der überhaupt nicht den echten 4 Ziffern des Reisepasses entsprach.

Nach dem Hochladen des Dokuments stellte sich heraus, dass es sich eindeutig nicht um den Reisepass meiner Frau handelte (russische Ausländer haben solche Nummern nicht einmal), aber alle anderen Daten (einschließlich Vorname, Nachname und Geburtsdatum) sind korrekt.

Wie schlecht gestaltete UX bei einem Coronavirus-Test uns fast in Selbstisolation versetzte, uns aber eine Sicherheitslücke rettete

Das Interessanteste ist, dass die Barcodes auch nicht zufällig sind, sondern fast einer nach dem anderen. So konnte ich theoretisch Kontakte finden, die die Passnummer meiner Frau hatten, und im Allgemeinen problemlos die privaten Daten anderer Personen herauspumpen.

Aber es war 9 Uhr morgens und eine Nacht ohne Schlaf, ich kam zu spät zu einem Online-Meeting und war froh, dass sie uns ohne Quarantäne durchließen, also begann ich einfach meine Reise durch Europa.

Source: habr.com

Kommentar hinzufügen