Jak špatně navržené uživatelské prostředí v testu na koronavirus nás téměř dostalo do sebeizolace, ale bezpečnostní díra nás zachránila

Jak špatně navržené uživatelské prostředí v testu na koronavirus nás téměř dostalo do sebeizolace, ale bezpečnostní díra nás zachránila
To jsem já, píši skript pro výčet parametrů pro požadavek POST na gov.tr, sedím před hranicí do Chorvatska.

Jak to všechno začalo

S manželkou cestujeme po světě a pracujeme na dálku. Nedávno jsme se přestěhovali z Turecka do Chorvatska (nejlepší místo k návštěvě Evropy). Abyste se v Chorvatsku nedostali do karantény, je potřeba si nechat udělat nejpozději 48 hodin před vstupem potvrzení o negativním testu na covid.

Zjistili jsme, že je poměrně výhodné (2500 rublů) a rychle (všechny výsledky přicházejí do 5 hodin) udělat test na istanbulském letišti, ze kterého jsme právě odletěli.

Na letiště jsme dorazili 7 hodin před odletem, našli testovací bod. Všechno dělají chaoticky: přijdete, dáte pas, zaplatíte, dostanete 2 nálepky s čárovým kódem, jdete do mobilní laboratoře, kde vám jednu z těchto nálepek vezmou, aby identifikovali vaši analýzu. Poté, co odejdete, a řeknou vám: přejděte na tuto stránku: enabiz.gov.tr/PcrTestSonuc, vložte svůj čárový kód a poslední 4 číslice pasu, po chvíli bude výsledek.

Jak špatně navržené uživatelské prostředí v testu na koronavirus nás téměř dostalo do sebeizolace, ale bezpečnostní díra nás zachránila

Pokud však zadáte data ihned po provedení analýzy, stránka zobrazí chybu.

Jak špatně navržené uživatelské prostředí v testu na koronavirus nás téměř dostalo do sebeizolace, ale bezpečnostní díra nás zachránila
Jak špatně navržené uživatelské prostředí v testu na koronavirus nás téměř dostalo do sebeizolace, ale bezpečnostní díra nás zachránila

Už tehdy se mi vkrádaly do hlavy úvahy o „krásném“ UX, ve kterém při jakékoliv chybě operátora, který vjel do pasových údajů, není jak zjistit váš výsledek.

Před odjezdem

Přichází čas odjezdu, zadám své údaje a vidím, že doklady pro ně už jsou, ačkoliv ještě není výsledek testu.

Jak špatně navržené uživatelské prostředí v testu na koronavirus nás téměř dostalo do sebeizolace, ale bezpečnostní díra nás zachránila
Jak špatně navržené uživatelské prostředí v testu na koronavirus nás téměř dostalo do sebeizolace, ale bezpečnostní díra nás zachránila

Je dokonce jasné, že testy dorazily do laboratoře před 1.5 hodinou. Ale záznam dat mé ženy stále zobrazuje chybu, že záznam nebyl nalezen. A co je nejdůležitější, nebudete moci jen tak jít a zeptat se, co je špatně, protože. Testem jsme prošli v zóně před pasovou kontrolou.

Při nástupu na let jsme byli požádáni o výsledky testů, ale naštěstí se nám podařilo přesvědčit zástupce letiště, že se brzy objeví (ukázali jim čárové kódy) a v krajním případě půjdeme do karantény.

Jakmile jsem se dostal do letadla, můj kód ukázal, že mám negativní test.

Jak špatně navržené uživatelské prostředí v testu na koronavirus nás téměř dostalo do sebeizolace, ale bezpečnostní díra nás zachránila

Při příjezdu

A tady začíná zábava! Jakmile jsme přiletěli a připojili se na místní WiFi, ukázalo se, že záznam mé ženy v databázi není. A na samotné hranici se k dokumentům přistupovalo velmi opatrně: pohraničník provedl test na koronavirus a odnesl ho do samostatné místnosti, aby ověřil jeho realitu. Rozhodli jsme se, že svůj příběh důvěry vyprávíme tak, jak je, a zjistíme, jaké máme možnosti.

Když jsme stáli ve frontě, rozhodl jsem se zkontrolovat správnost (svých) a nesprávných údajů, jak validační stránka reaguje.

Ukázalo se, že posílá žádost o příspěvek www.enabiz.gov.tr/PcrTestSonuc/GetPcrRaporVerifyWithKimlik, s následujícími parametry:

č. čárového kódu=XX
kimlikNo=YY
kimlikTipi=2
kde č. čárového kódu - číslo čárového kódu, kimlikNe - číslo pasu, kimlik Tipi – pevný parametr rovný 2 (pokud jsou vyplněna pouze první dvě pole). Nebyly vidět žádné žetony. Požadavek vrátil 1 pro správné parametry (moje data) a 0 pro nesprávné.

Od pošťačky jsem zkoušel protřídit 40 kombinací (najednou chyba jednoho znaku), ale nic.

V tu chvíli jsme oslovili pohraničníka, vyslechl si náš příběh a navrhl karanténu. Ale zjevně jsme nechtěli sedět v bytě 14 dní, takže jsme požádali, abychom chvíli počkali v tranzitní zóně, abychom se pokusili problém vyřešit za pár hodin. Pohraničník vstoupil do naší pozice, šel se podívat, jestli můžeme sedět v bílé zóně, a se souhlasem vedoucího řekl: „Dobře, jen pár hodin.

Začal jsem hledat telefony těch, kteří provedli test korunky, a zároveň jsem se rozhodl otestovat bláznivou hypotézu: pokud má tento systém tak hrozné UX, pak by bezpečnostní systém neměl být dobrý, i když gov.tr ​​​​doména.

Výsledkem bylo, že když jsem seděl na hovorech, napsal jsem malý skript, který seřadil všechna čísla od 0000 do 9999 v poli kimlikNo. barkodNo jsme měli na samolepce, tak to nemohlo být špatně.

Představte si mé překvapení, když jsem ani po 500 nepřetržitých žádostech nedostal ban a skript běžel z letištní WiFi rychlostí 20 požadavků za sekundu.

Hovory nepřinesly velký úspěch: byl jsem přesměrován z jednoho oddělení do druhého. Ale velmi brzy skript dal kýženou hodnotu 6505, což se vůbec nepodobalo skutečným 4 číslicím pasu.

Po nahrání dokumentu se ukázalo, že to zjevně nebyl pas mé manželky (ruští cizinci taková čísla ani nemají), ale všechny ostatní údaje (včetně jména, příjmení a data narození) jsou správné.

Jak špatně navržené uživatelské prostředí v testu na koronavirus nás téměř dostalo do sebeizolace, ale bezpečnostní díra nás zachránila

Nejzajímavější je, že čárové kódy také nejsou náhodné, ale jdou téměř jeden po druhém. Teoreticky jsem tak mohl najít kontakty, které získaly číslo pasu mé ženy, a obecně plynule vypumpovat soukromá data jiných lidí.

Jenže bylo 9 hodin a noc bez spánku, na online schůzku jsem se opozdil a byl jsem rád, že nás pustili dovnitř bez karantény, a tak jsem právě začal svou cestu po Evropě.

Zdroj: www.habr.com

Přidat komentář