Vibe coding: možnosti a omezení
DokončenoPomozte lidem zkoumat nápady pomocí AI. Na bankovním prototypu vysvětlíme, proč skutečná data a oprávnění k API vyžadují důkazy o bezpečnosti.
Vydává TaigaJak píšeme
Ověřte si porozuměníBankovní přehled funguje s fiktivními transakcemi. Kolega navrhuje připojit skutečný účet pouze pro čtení. Co uděláte?Vypracovat cvičení
Co se naučíte
- Odlišit zkoumání nápadu od rozhodnutí o vydání.
- Rozpoznat chybějící odpovědnosti za přesvědčivou ukázkou.
- Zvolit bezpečné hranice prvního experimentu.
Dejte lidem prostor tvořit
Podnikový CTO může pomoci více lidem proměnit jejich znalosti v nápady na software. Zapojte lidi z financí, provozu, obchodu i vývoje. Dejte jim čas, syntetická data, sandboxová API a podporu.
Umožněte lidem zkoumat nápady různými nástroji v jasných mezích pro instalaci, účty a povolené vstupy. Nástroj pro tvorbu aplikací v prohlížeči, programovací asistent nebo lokální agent jim může pomoci nápad vyzkoušet. Volba nástroje nedává oprávnění nahrát firemní informace ani připojit skutečný systém.
Zveřejněte jednoduchý postup, jak předat užitečný prototyp vývojovému nebo platformovému týmu. Autor přináší problém, ukázkový pracovní postup a zjištěný přínos. Nemusí se stát bezpečnostním a provozním týmem celé služby.
Určete, co potřebujete zjistit
Vibe coding obvykle začíná popisem požadovaného softwaru. Přijímáte vygenerovaný kód a podle viditelného výsledku zadáváte další změnu. Tento pojem má různé významy. V této příručce člověk, který práci řídí, nemusí rozumět každému implementačnímu rozhodnutí.
Tato metoda může pomoci při učení. Jednoduché rozhraní ukáže, že schvalovací proces má příliš mnoho kroků. Dočasný skript pomůže posoudit formát souboru. Prototyp dává lidem konkrétní návrh k diskusi. Získané poznatky si můžete ponechat, i když kód zahodíte.
Nejdříve stanovte otázku s pozorovatelnou odpovědí. Například: „Rozumí vedoucí týmu tomuto schvalovacímu procesu?“ Taková otázka má jasný rozsah. Požadavek na vytvoření systému pro výdaje navíc zahrnuje ochranu dat, řízení přístupu, provoz a odpovědnost.
Úterní bankovní prototyp
Představte si fiktivní příklad. V úterý kolega z financí pomocí Lovable vytvoří přehled z vymyšlených bankovních transakcí. Přehled seskupuje výdaje a zobrazuje nezaplacené faktury. Tým nyní může diskutovat o užitečném pracovním postupu.
Někdo navrhne připojit firemní bankovní účet. Tím se mění možné následky, i když aplikace stále nese označení „prototyp“.
Podle konkrétního API může přístup pro čtení odhalit zůstatky, historii transakcí, jména či názvy zákazníků nebo platební reference. Pokud připojení umožňuje i platby, mohou chyby převést skutečné peníze. Potvrďte skutečný rozsah oprávnění. Bankovní připojení nemusí vždy umožňovat platby.
Ukázka neprokazuje, že uživatel vidí pouze účty, ke kterým má oprávnění. Skryté tlačítko oprávnění nevynucuje. OWASP popisuje, jak chybějící kontroly účtů nebo záznamů mohou odhalit data jiného uživatele.
| Co může selhat? | Proč na tom záleží | Důkazy před přístupem ke skutečnému účtu |
|---|---|---|
| Soukromý přihlašovací údaj k API se objeví v kódu prohlížeče nebo v logu | Jeho oprávnění by mohl využít někdo jiný | Prověřte nakládání s tajnými údaji a otestujte odvolání přístupu |
| Backend přijme ID účtu bez kontroly práv volajícího | Uživatel by mohl číst jiný účet | Otestujte zamítnutí požadavků na jiné uživatele a účty |
| Platební požadavek překročí časový limit a aplikace jej odešle znovu | Opakování by mohlo vytvořit druhou platbu | Otestujte zpracování opakovaných požadavků a porovnejte výsledek se záznamem poskytovatele |
| Aplikace odešle podrobnosti transakcí neschválené službě AI | Důvěrné informace opustí schválené prostředí | Sledujte požadavky, logy, příjemce a dobu uchování |
| V závislosti je po spuštění objevena zranitelnost | I nezměněná aplikace může potřebovat bezpečnostní opravu | Určete odpovědnost za průběžné skenování, nápravu a ověření nasazení |
U platebních API znamená idempotence, že opakovaný požadavek nezopakuje zamýšlený účinek. Stripe dokumentuje jednu implementaci. Zkontrolujte chování, omezení a pravidla opakování u skutečného poskytovatele. Návrat aplikace na předchozí verzi nezruší platbu, kterou už banka zpracovala.
Tento příklad není důkazem chyby v Lovable. Vlastní bezpečnostní pokyny Lovable vyžadují ochranu tajných údajů, serverové kontroly, otestovaná pravidla pro data a průběžné prověřování. Stejný standard důkazů uplatňujte na každý nástroj pro tvorbu aplikací, agenta i ručně napsanou aplikaci.
Prověřte přístup před připojením skutečných systémů
Pracovní postup dál testujte se syntetickými daty a sandboxovými účty. Než povolíte skutečný přístup, nechte osoby odpovědné za službu, bezpečnost a platformu ověřit aplikaci i její provozní prostředí.
Použijte schválený postup připojení banky nebo poskytovatele. Povolte pouze nezbytné účty a oprávnění. Soukromé přihlašovací údaje uchovávejte ve schváleném úložišti tajných údajů, mimo prompty a kód prohlížeče. Pokud jsou platby nutné, stanovte jejich schvalování a limity. Ověřte, jak odvolat přístup, vyšetřit selhání a reagovat na podezřelou aktivitu.
Tato rozhodnutí musí předcházet vstupu důvěrných informací nebo skutečných přihlašovacích údajů do systému. Čekat na formální produkční vydání může být pozdě. Pokračujte lekcemi o hranicích pro data a podnikové infrastruktuře.
Než rozšíříte používání, určete odpovědnosti
Experiment s vymyšlenými daty může mít krátkou životnost a málo uživatelů. Jakmile na aplikaci závisejí další lidé, určete odpovědnosti za její používání.
- Určete odpovědnou osobu.
- Vymezte povolené uživatele a data.
- Definujte reakci na selhání.
- Uchovávejte zdrojový kód a konfiguraci v repozitáři.
- Ověřte, že systém dokáže prozkoumat a znovu vytvořit někdo další.
Každý skript nepotřebuje podnikovou platformu. Osobní formátovací nástroj bez citlivých dat potřebuje méně opatření než aplikace pro schvalování plateb. Posuďte následky chyby. Zkontrolujte, zda ji dokážete odhalit a zvrátit její účinky.
Před rozšířením prototypu oddělte poznatky o problému od důkazů o implementaci. Můžete ponechat rozhraní a nahradit vnitřní kód. Můžete omezit zamýšlené použití. Prototyp může také zůstat dočasným experimentem.
Počítejte se zranitelnostmi i po ukázce
Úspěšná ukázka může skrývat vážnou mezeru v údržbě. Pro závislost může vyjít nové upozornění na zranitelnost, aniž se váš kód změní. Sken při vydání popisuje stav v jediném okamžiku.
Pokud se aplikace dál používá, musí někdo průběžně vyhledávat, posuzovat a opravovat zranitelnosti. Oprava se musí dostat do produkce a projít ověřením. Samotný skener bez tohoto postupu reakce ponechává riziko nevyřešené.
Zjistěte, co poskytuje váš konkrétní nástroj a konfigurace. Pozdější lekce o průběžné správě zranitelností vysvětluje celý proces včetně selhání skenů a nasazených verzí.
Usnadněte kontrolu další změny
Zadejte agentovi jednu malou změnu s výslovnými akceptačními kritérii. Uveďte, jaké akce smí provést. Prohlédněte výsledný diff. Proveďte kontroly, které mohou nesprávnou implementaci odmítnout. Dokud nejsou odpovědnosti za vydání jasné, ponechte nasazení jako samostatné rozhodnutí.
NIST Secure Software Development Framework popisuje širší postupy bezpečného vývoje. Použijte jej jako referenci při posuzování chybějících opatření. Nemusíte se rámec učit nazpaměť. Potřebujete určit chybějící důkazy dříve, než software ovlivní další lidi.
Vypracovat cvičení
Vyberte funkci z nedávné ukázky. 1. Zapište jeden výsledek, který ukázka prokázala. 2. Zapište tři otázky, které zůstávají otevřené. 3. Ke každé otázce přiřaďte odpovědnou osobu. 4. Uveďte konkrétní kontrolu, která odhalí každé možné selhání. Konkrétní kontrolu nenahrazujte požadavkem „zajistit bezpečnost“.
Stáhnout pracovní list (Markdown)Zrušení této volby smaže veškerý postup uložený v tomto prohlížeči.
Postup zůstává v tomto prohlížeči. Bez účtu a sledování.
Zdroje a další čtení
- NIST: Secure Software Development Framework 1.1 ↗
- Lovable: Security best practices ↗
- OWASP: Broken Object Level Authorization ↗
- Stripe: Idempotent requests ↗