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.
