Aplikaci, která funguje na zkušebních datech, obvykle chybí to, co při klikání není vidět: kdo se smí přihlásit a co smí vidět, jestli databáze nepustí data ven, kde leží tajné klíče, jak se data obnoví a kdo aplikaci opraví, když přestane fungovat. Než na ni pustíte skutečné zákazníky, faktury nebo zaměstnance, projděte těchto šest oblastí.
Kolik toho musíte doplnit, závisí na třech věcech: jaká data aplikace drží, kolik lidí ji používá a jestli je dostupná z internetu. Tabulka zakázek pro tři kolegy je jiný případ než portál, kam se přihlašují odběratelé a nahrávají smlouvy.
Funkční aplikace ještě není aplikace připravená pro provoz
Postavit aplikaci s pomocí AI dnes zvládne i člověk bez programátorské průpravy. Nástroj vyrobí obrazovky, databázi i přihlašování. Nekontroluje ale za vás, jestli je všechno nastavené bezpečně.
Jak letos v dubnu psal server The Next Web, u platformy Lovable zůstalo velké množství projektů 48 dní volně přístupných. Podle studie, kterou článek cituje, mělo zhruba sedm z deseti zkoumaných aplikací vypnuté zabezpečení databáze na úrovni řádků. A z více než 200 prověřených aplikací měla aspoň jednu zranitelnost naprostá většina.
Nejde o chybu jednoho nástroje. Funkční aplikace a aplikace bezpečná pro každodenní provoz jsou prostě dvě různé věci. Rozdíl mezi nimi se dá projít po bodech.
Kolik kontroly potřebujete
| Co aplikace drží a kdo k ní má přístup | Co je nutné minimálně |
|---|---|
| Interní evidence bez osobních údajů, pár kolegů | vlastní účty, vypnutá veřejná registrace, záloha |
| Údaje o zákaznících nebo zaměstnancích | navíc pravidla přímo v databázi, role, test přístupu, ověření povinností k osobním údajům |
| Peníze, faktury, napojení na účetnictví | navíc klíče jen na serveru, ochrana proti dvojímu odeslání, záznam změn |
| Přihlašují se lidé zvenku (odběratelé, klienti) | vše výše a nezávislá kontrola odborníkem před spuštěním |
Nastavte přihlašování a role tak, aby každý viděl jen své
Přihlašovací obrazovka ještě neznamená, že je aplikace zavřená. Ověřte si to několika jednoduchými zkouškami.
- Zkuste vnitřní stránku bez přihlášení. Zkopírujte adresu stránky se seznamem zakázek a otevřete ji v anonymním okně prohlížeče.
- Vypněte veřejnou registraci. Častá chyba: kdokoli si na přihlašovací stránce založí účet a tím získá přístup ke všemu.
- Každý má vlastní účet. Sdílené heslo „sklad“ neumožní zjistit, kdo co změnil, ani odebrat přístup jednomu člověku.
- Rozepište role. Kdo jen čte, kdo upravuje, kdo maže a kdo vidí ceny, marže nebo mzdy.
- Domyslete odchod zaměstnance. Jak mu zrušíte přístup v den, kdy odchází.
- Správci se přihlašují dvoufázově, pokud to nástroj umí.
Pozor na jednu věc. Skrýt tlačítko v rozhraní není ochrana. Pokud běžný uživatel nemá mazat, musí to zakazovat server nebo databáze, ne jen chybějící tlačítko.
Zapněte ochranu dat přímo v databázi a otestujte ji
Řada nástrojů pro rychlé stavění aplikací ukládá data do databáze, ke které se prohlížeč uživatele připojuje napřímo. Pak jediné, co brání cizímu člověku přečíst celou tabulku, jsou pravidla uvnitř databáze. Obvykle se jmenují zabezpečení na úrovni řádků (row level security).
Postupujte takto:
- Projděte všechny tabulky a ověřte, že je ochrana zapnutá u každé z nich, ne jen u některých.
- Zkontrolujte, že pravidla odpovídají rolím, které jste si sepsali. Pravidlo „přihlášený uživatel vidí vše“ často nestačí.
- Přihlaste se jako běžný uživatel a zkuste otevřít záznam, který patří někomu jinému.
- Prověřte úložiště souborů. Nahrané faktury, smlouvy nebo fotky nesmějí být dostupné přes veřejný odkaz, který se dá uhodnout nebo přeposlat.
Pokud aplikace drží údaje o lidech, včetně vlastních zaměstnanců, týkají se vás pravidla ochrany osobních údajů. Co přesně z nich pro vaši situaci plyne, si ověřte u odborníka na tuto oblast.
Přesuňte tajné klíče z kódu na server
Aplikace se obvykle připojuje k dalším službám: k platební bráně, k odesílání e-mailů, k jazykovému modelu nebo k účetnímu programu. Ke každé má přístupový klíč. Pokud je klíč v kódu, který se stahuje do prohlížeče, může si ho přečíst kdokoli. Pak může utrácet na váš účet nebo číst vaše data.
Kontrolní seznam:
- Prohledejte kód na slova jako „key“, „secret“ nebo „token“.
- Rozlišujte veřejný klíč, který do prohlížeče patří, a servisní klíč s plnými právy, který tam nesmí nikdy.
- Tajné klíče uložte do nastavení prostředí na serveru, ne do souborů s kódem.
- Pokud klíč někdy byl v kódu nebo jste ho vložili do chatu s AI nástrojem, vyměňte ho za nový. Smazat ho z kódu nestačí, starší verze zůstávají v historii.
- U placených služeb si nastavte limit útrat a upozornění.
Každý klíč by měl mít jen ta oprávnění, která aplikace opravdu potřebuje.
Vyzkoušejte obnovu ze zálohy dřív, než ji budete potřebovat
Záloha, ze které jste nikdy nic neobnovili, je jen předpoklad. Projděte tyto otázky:
- Zálohuje se databáze automaticky? Jak často a jak daleko do minulosti? Ověřte si, co přesně zahrnuje váš tarif.
- Existuje kopie dat i mimo jednoho poskytovatele?
- Zálohují se i nahrané soubory, nebo jen databáze?
- Zkusili jste jednou obnovit data do zkušební kopie aplikace?
Samostatné riziko představují úpravy po spuštění. Když AI nástroj požádáte o novou funkci, může změnit strukturu databáze a přitom smazat sloupec se skutečnými daty. Mějte proto zkušební prostředí oddělené od ostrého a změny zkoušejte nejdřív tam.
Zkontrolujte také, na čí účet je aplikace u poskytovatele vedená. Má patřit firmě, ne osobnímu e-mailu jednoho zaměstnance.
Napojení na účetnictví navrhněte i pro chvíle, kdy selže
Jakmile aplikace posílá data do účetního programu nebo z něj čte, chyba přestává být jen vnitřní věcí. Dvakrát odeslaná faktura nebo ztracený doklad se pak řeší s klientem nebo s účetní.
Před spuštěním si odpovězte:
- Kde je zdroj pravdy? Která evidence platí, když se data v aplikaci a v účetnictví liší.
- Co se stane při výpadku? Když přenos neprojde, kdo se to dozví a jak se pokus zopakuje.
- Co brání dvojímu zápisu? Opakované kliknutí nebo opakovaný pokus nesmí vytvořit druhou fakturu.
- Je vidět, kdo co změnil? Záznam změn u částek a dokladů ušetří spoustu dohledávání.
Číselné řady dokladů, jejich archivace a další účetní a daňová pravidla konzultujte se svou účetní nebo daňovým poradcem. Aplikace je musí dodržovat, ať už ji postavil kdokoli.
Určete, kdo aplikaci opraví, když se rozbije
Častým slabým místem není technika. Aplikaci naklikal jeden kolega a nikdo jiný neví, jak funguje. Co se stane, když bude na dovolené nebo odejde?
Zajistěte si minimálně tohle:
- Kód je u firmy. Stáhněte si ho do vlastního úložiště nebo účtu firmy, nejen do nástroje, ve kterém vznikl.
- Krátký popis na jedné stránce. Co aplikace dělá, kde běží, jaké služby používá, kde jsou klíče a jak se obnovuje ze zálohy.
- Hlídání dostupnosti. Když aplikace přestane fungovat, má se to dozvědět konkrétní člověk, ne až uživatelé.
- Aktualizace. Knihovny, na kterých aplikace stojí, dostávají bezpečnostní opravy. Někdo je musí nasazovat.
- Pojmenovaný zástup. Kolega, externí vývojář nebo firma, která zná kód a může zasáhnout.
Pokud vám kontrolní seznam ukáže víc děr, než dokážete opravit, nemusí to znamenat, že byla práce zbytečná. Funkční prototyp je dobré zadání. Ukazuje, co firma skutečně potřebuje, a odborník podle něj může aplikaci dotáhnout nebo postavit znovu.
A naopak: u interního nástroje bez citlivých dat a s pár uživateli může stačit doplnit přihlašování a zálohy. Víc kontroly tam často nedává smysl.
Zdroje
Často kladené otázky
Stačí, když aplikace běží jen pro lidi uvnitř firmy?
Riziko to snižuje, ale přihlašování a role to nenahradí. Nástroje pro rychlé stavění aplikace často zveřejňují na internetu automaticky. Ověřte si to tak, že adresu otevřete v telefonu mimo firemní síť.
Může bezpečnost zkontrolovat sám AI nástroj?
Některé nástroje nabízejí vestavěnou bezpečnostní kontrolu a zjevné chyby pomůže najít. Neví ale, kdo ve vaší firmě smí vidět mzdy nebo marže. To, jestli pravidla odpovídají vašim rolím, musíte ověřit sami přihlášením za běžného uživatele.
Jak poznám, že klíč k placené službě unikl?
Ne vždy to poznáte hned. Podívejte se do přehledu využití u poskytovatele služby a hledejte nezvyklé výkyvy. Klíč, který byl kdykoli veřejně dostupný, považujte za prozrazený a vyměňte ho.
Kdy je lepší aplikaci postavit znovu než opravovat?
Když by oprava znamenala změnit strukturu dat a doplnit oprávnění téměř do každé obrazovky. Nebo když kódu nikdo nerozumí a každá úprava přes AI rozbije něco jiného. Pak bývá jednodušší vzít prototyp jako zadání a postavit aplikaci znovu.
Co dělat s aplikací, kterou už lidé používají bez těchto kontrol?
Nemusíte ji hned vypínat. Začněte tím, co se nedá vrátit: zálohou dat, výměnou klíčů, které mohly uniknout, a vypnutím veřejné registrace. Pak projděte zbytek seznamu podle toho, jak citlivá data aplikace drží.
