Preskočiť na obsah
Späť na blog

Rozbor jednej aplikácie: čo sme našli v rezervačnom systéme požičovne

Modelový rozbor rezervačného systému vytvoreného pomocou Lovable. Sedem zistení, ich dosah na majiteľa a plán opráv s odhadom náročnosti.

Časté chyby
Ondřej HájekOndřej Hájek · 4 min čítania

Abstraktné rozprávanie o bezpečnosti nikoho nepresvedčí. Konkrétny príklad áno. Nasledujúci rozbor ukazuje modelovú aplikáciu, ktorá zodpovedá tomu, s čím sa pri kontrolách stretávame najčastejšie. Nejde o konkrétneho klienta a všetky podrobnosti sú upravené tak, aby aplikácia nezodpovedala žiadnej reálnej firme.

Zadanie

Požičovňa motoriek v krajskom meste. Šesť strojov, sezónna prevádzka, dvaja ľudia na plný úväzok. Majiteľ si pomocou Lovable vytvoril rezervačný systém, pretože ho unavovalo dohadovať termíny telefonicky a cez Messenger.

Aplikácia dokáže:

  • zobraziť dostupné stroje a termíny
  • prijať rezerváciu vrátane údajov zákazníka a fotografie vodičského preukazu
  • prijať online zálohu platobnou kartou
  • poslať potvrdenie e-mailom
  • zobraziť v administrácii prehľad rezervácií a zákazníkov

Funguje deväť mesiacov a prešlo cez ňu približne 400 rezervácií. Funguje.

Čo kontrola odhalila

Zistenia uvádzame podľa závažnosti, nie podľa poradia, v akom sme ich našli.

Kritické: prístup k cudzím rezerváciám

Odkaz na detail rezervácie, ktorý zákazník dostane e-mailom, obsahuje poradové číslo. Po zmene čísla v adrese sa zobrazí rezervácia kohokoľvek iného. Vrátane mena, telefónu, adresy, dátumu narodenia a naskenovaného vodičského preukazu.

Na využitie chyby nie sú potrebné žiadne osobitné nástroje. Stačí jedna rezervácia a prehliadač.

Dosah na majiteľa: 400 kompletných identít vrátane dokladov dostupných komukoľvek, kto si niekedy požičal motorku. Doklady totožnosti patria medzi údaje, ktorých únik má najvyšší dosah, pretože sa dajú zneužiť na ďalšie konanie v mene dotknutej osoby.

Kritické: administráciu chráni len neverejná adresa

Administrácia je dostupná na adrese, na ktorú nikde nevedie odkaz, a prihlasuje sa do nej jedným spoločným heslom bez rozlíšenia používateľov. Heslo je rovnaké od spustenia a pozná ho aj bývalá brigádnička.

Utajenie adresy nie je ochrana. Adresy tohto typu sa objavujú v záznamoch vyhľadávačov, histórii prehliadača a odkazujúcich hlavičkách.

Dosah na majiteľa: ktokoľvek s touto adresou a heslom vidí a môže meniť všetky rezervácie aj údaje všetkých zákazníkov. Neexistuje spôsob, ako zistiť, kto zmenu vykonal.

Vysoké: zálohu možno ovplyvniť z prehliadača

Výška zálohy sa posiela z prehliadača do platobnej brány ako údaj, ktorý aplikácia prijíma bez overenia. Používateľ s bežnou znalosťou vývojárskych nástrojov v prehliadači môže sumu pred odoslaním zmeniť.

Dosah na majiteľa: rezervácia sa tvári ako zaplatená a stroj sa zablokuje, hoci záloha prišla v inej výške. Rozdiel sa zistí pri kontrole účtov alebo sa nezistí vôbec.

Vysoké: fotografie dokladov v otvorenom úložisku

Nahrané fotografie vodičských preukazov sú uložené v úložisku, ktorého súbory sú dostupné cez priamy odkaz bez overenia. Odkazy sú vytvorené predvídateľne podľa dátumu a poradia.

Dosah na majiteľa: doklady totožnosti zákazníkov sú mimo akejkoľvek kontroly prístupu.

Stredné: žiadny záznam udalostí

Aplikácia nikde nezaznamenáva, kto sa prihlásil, kto zmenil rezerváciu ani kto zobrazil údaje zákazníkov.

Dosah na majiteľa: ak by niekto využil ktorúkoľvek z predchádzajúcich chýb, majiteľ sa to nedozvie a nebude schopný povedať, koho sa incident týkal. To bráni aj splneniu ohlasovacej povinnosti, pretože sa nedá určiť rozsah.

Stredné: údaje sa nikdy nevymazávajú

Rezervácie, osobné údaje aj fotografie dokladov zostávajú v systéme bez obmedzenia. Nie je nastavená lehota ani funkcia na vymazanie.

Dosah na majiteľa: údaje zákazníka z prvej sezóny tam budú aj o desať rokov. Žiadosti o vymazanie sa nedá vyhovieť inak než ručným zásahom do databázy.

Stredné: aplikáciu nemá kto prevziať

Neexistuje dokumentácia, prístupy k hostingu aj platobnej bráne sú vedené na osobný e-mail majiteľa a predplatné sa platí zo súkromnej karty.

Dosah na majiteľa: ak by mal aplikáciu prevziať niekto iný alebo ak by majiteľ na dlhší čas vypadol, firma nemá prístup k systému, od ktorého závisí jej sezóna.

Ako vyzeral plán opráv

Poradie neurčuje len závažnosť, ale aj pomer medzi dosahom a náročnosťou. Cieľom je odstrániť najväčšie riziko čo najskôr a s čo najnižšími nákladmi.

Poradie Čo Odhad
1 Overovanie oprávnenia pri detaile rezervácie pol dňa
2 Zamedzenie priameho prístupu k nahraným súborom pol dňa
3 Skutočné prihlásenie do administrácie s účtami pre jednotlivých ľudí 1 deň
4 Overovanie výšky platby na strane servera 1 deň
5 Záznam udalostí 1 deň
6 Lehota na vymazanie a funkcia na vymazanie 1 až 2 dni
7 Prevod účtov na firmu a základná dokumentácia 1 deň

Spolu približne šesť až sedem dní práce. Prvé dve položky, ktoré odstraňujú najzávažnejšie riziko, zaberú jeden deň.

Čo si z toho odniesť

Aplikácia v tomto rozbore nie je zlá. Deväť mesiacov spoľahlivo vybavovala rezervácie a majiteľovi reálne šetrila prácu. Zároveň v nej bolo sedem zistení, z ktorých dve stačia na únik kompletných identít vrátane dokladov.

To nie je rozpor. To je presne ten rozdiel medzi fungujúcou a bezpečnou aplikáciou. Navonok vyzerajú rovnako.

Zdieľať