Přeskočit na obsah
Zpět na blog

Vibe coding: proč vzniká bezpečnostní dluh, i když aplikace funguje

Fungující aplikace ještě nemusí být bezpečná. Vysvětlujeme, jak při stavbě pomocí AI vzniká bezpečnostní dluh a kdy se z něj stává reálné riziko.

Bezpečnost
Ondřej HájekOndřej Hájek · 4 min čtení

Vibe coding je způsob, jak popsat aplikaci běžným jazykem a nechat nástroj s umělou inteligencí, aby ji postavil. Za jedno odpoledne máte funkční rezervační systém. Za víkend interní nástroj, na který byste dříve čekali měsíc a zaplatili stovky tisíc.

To není trik ani bublina. Je to reálná změna v tom, kdo může software vyrobit. Zároveň s ní přichází nový druh rizika, o kterém se mluví podstatně méně. Tento text vysvětluje, odkud se bere.

Fungující a bezpečné nejsou totéž

Když si aplikaci vyzkoušíte, projdete jednu cestu. Přihlásíte se svým účtem, vyplníte formulář správně, kliknete na tlačítka v pořadí, ve kterém dávají smysl. Aplikace odpoví tak, jak jste čekali. Máte hotovo.

Problém je, že reálný provoz tuto jednu cestu nekopíruje. Uživatel vyplní jiná data. Klikne dvakrát. Otevře si stránku, na kterou neměl dostat odkaz. Nahraje soubor, který nemá být nahraný. Napíše do pole s poznámkou něco, co vypadá jako pokyn pro systém. Někdo zvenku zkusí, co se stane, když v adrese změní číslo.

Bezpečnost aplikace se odehrává přesně v těchto situacích. Ne v té jedné cestě, kterou jste zkoušeli.

Proč to nástroje s AI nepokryjí samy

Nástroj s AI řeší úkol, který jste mu zadali. Zadání typu „udělej mi rezervační systém, kde si zákazník vybere termín a zaplatí“ je samo o sobě kompletní. Z hlediska provozu v něm ale chybí desítky věcí, které nikoho nenapadne říct nahlas, protože je považujeme za samozřejmé.

Že zákazník nesmí vidět rezervaci někoho jiného. Že cena se má počítat na serveru, ne v prohlížeči, kde ji lze přepsat. Že nahraný soubor se má zkontrolovat. Že se má zaznamenat, kdo co změnil. Že platba se má ověřit u brány, ne jen podle toho, co si aplikace myslí.

Zkušený vývojář tyto věci doplní bez ptaní, protože je má zažité z desítek projektů. Nástroj s AI je doplní jen tehdy, když si o ně řeknete konkrétně. A vy si o ně neřeknete, když nevíte, že existují.

Efekt nabalování

Druhým zdrojem problému je způsob, jakým aplikace vzniká. Ne najednou, ale v sérii pokynů. Přidej platbu. Přidej administraci. Přidej e-maily. Přidej export.

Každý další pokyn pracuje s tím, co už existuje, a přidává vrstvu. Nikdo se v průběhu nezastaví a nezeptá se, jestli struktura, která vznikla po dvacáté iteraci, ještě drží pohromadě. Vznikají duplicity, zapomenuté verze, tabulky, do kterých se zapisuje, ale ze kterých nikdo nečte. A hlavně: kontroly, které platily na začátku, přestanou platit pro nové části, protože se na ně nikdo znovu nezeptal.

Aplikace přitom celou dobu funguje. Nabalování není vidět na povrchu, je vidět jen uvnitř.

Chybějící druhý pár očí

Ve firmě, která vyvíjí software, prochází kód kontrolou někoho jiného než autora. Ne proto, že by se autorovi nevěřilo, ale proto, že autor ze své podstaty nevidí vlastní slepá místa. Tento krok se jmenuje code review a v běžném vývoji je standardem.

U aplikace postavené pomocí AI ho v drtivé většině případů nikdo neudělá. Není kdo. Autor je často jediný člověk ve firmě, kdo aplikaci rozumí, a nástroj s AI sám sebe nezkontroluje, protože do kontroly vstupuje se stejnými předpoklady, se kterými psal kód.

Tady vzniká to, čemu se říká bezpečnostní dluh. Ne jedna velká chyba, ale řada drobných rozhodnutí, která se nikdy nedostala pod kontrolu. Splatit ho lze kdykoli. Jen je to tím dražší, čím déle se čeká, protože mezitím aplikace roste a naváže na ni provoz.

Kdy dluh přestane být teoretický

Bezpečnostní dluh nikoho nebolí, dokud aplikaci používáte vy a tři kolegové. Začne bolet v jednom z těchto okamžiků:

  • Aplikaci začne používat někdo mimo firmu. Zákazník, klient, partner.
  • Do aplikace vstoupí peníze. Platby, faktury, objednávky.
  • Do aplikace vstoupí osobní údaje jiných lidí než vašich zaměstnanců.
  • Aplikace přestane být pokusem a stane se součástí provozu, bez které se firma neobejde.
  • Autor aplikace odejde nebo změní roli.

Když platí kterákoli z těchto pěti vět, dluh se stal reálným rizikem. Nikoli proto, že by aplikace byla špatná, ale proto, že se změnily následky chyby.

Co z toho plyne

Vibe coding není problém. Je to legitimní způsob, jak dostat nápad do funkční podoby rychle a levně. Problém nastane ve chvíli, kdy se s aplikací zachází, jako by prošla stejnou kontrolou jako software vyvíjený týmem, který má takovou kontrolu ve svém procesu.

Rozdíl mezi těmito dvěma stavy je jeden krok navíc: nechat aplikaci projít někým, kdo ji nestavěl. Tento krok je řádově levnější než cokoli, co následuje po incidentu.


VibeAudit je kontrola aplikací postavených pomocí nástrojů s AI. Procházíme přes 50 kontrolních bodů od oprávnění přes zpracování dat až po udržitelnost kódu. Podívejte se, jak to probíhá

Sdílet