Vibe coding: možnosti a obmedzenia
DokončenéPomôžte ľuďom skúmať nápady pomocou AI. Na bankovom prototype pochopíte, prečo skutočné údaje a oprávnenia API vyžadujú dôkazy o bezpečnosti.
Vydáva TaigaAko píšeme
Overte si porozumenieBankový panel funguje s fiktívnymi transakciami. Kolega navrhuje pripojiť skutočný účet s prístupom iba na čítanie. Čo máte urobiť?Vykonajte cvičenie
Čo sa naučíte
- Odlíšiť skúmanie nápadu od rozhodnutia o vydaní.
- Určiť chýbajúce zodpovednosti v presvedčivej ukážke.
- Zvoliť bezpečné hranice prvého experimentu.
Dajte ľuďom priestor tvoriť
Podnikový CTO môže pomôcť viacerým ľuďom premeniť ich znalosti na nápady pre softvér. Pozvite ľudí z financií, prevádzky, predaja a vývoja. Dajte im čas, syntetické údaje, sandboxové API a podporu.
Umožnite ľuďom skúmať nápady pomocou rôznych nástrojov v jasných hraniciach pre inštaláciu, účty a povolené vstupy. Nástroj na tvorbu aplikácií v prehliadači, programovací asistent alebo lokálny agent im môže pomôcť otestovať nápad. Výber nástroja neudeľuje povolenie nahrať firemné informácie ani pripojiť skutočný systém.
Zverejnite jednoduchý postup, ako odovzdať užitočný prototyp vývojovému alebo platformovému tímu. Autor dodá problém, príklad pracovného postupu a pozorovaný prínos. Nemusí sa stať bezpečnostným a prevádzkovým tímom služby.
Určte, čo potrebujete zistiť
Vibe coding sa zvyčajne začína opisom požadovaného softvéru. Prijmete vygenerovaný kód a podľa viditeľného výsledku usmerňujete ďalšiu zmenu. Tento pojem má rôzne významy. V tomto sprievodcovi osoba, ktorá riadi prácu, nemusí rozumieť každému rozhodnutiu o implementácii.
Táto metóda vám môže pomôcť učiť sa. Jednoduché rozhranie môže ukázať, že schvaľovací proces má priveľa krokov. Dočasný skript môže pomôcť posúdiť formát súboru. Prototyp dá ľuďom konkrétny návrh na diskusiu. Tieto poznatky si môžete zachovať, aj keď kód zahodíte.
Najprv určte otázku s pozorovateľnou odpoveďou. Napríklad: „Dokáže vedúci tímu porozumieť tomuto schvaľovaciemu procesu?“ Táto otázka má jasný rozsah. Požiadavka vytvoriť systém výdavkov zahŕňa aj ochranu údajov, riadenie prístupu, prevádzku a zodpovednosť.
Utorkový bankový prototyp
Uvažujme o fiktívnom príklade. V utorok kolega z financií pomocou Lovable vytvorí panel z vymyslených bankových transakcií. Panel zoskupuje výdavky a zobrazuje neuhradené faktúry. Tím teraz môže diskutovať o užitočnom pracovnom postupe.
Niekto navrhne pripojiť firemný bankový účet. Tým sa menia dôsledky, aj keď aplikácia stále nesie označenie „prototyp“.
Prístup na čítanie môže podľa API odhaliť zostatky, históriu transakcií, mená zákazníkov alebo platobné referencie. Ak spojenie povoľuje aj platby, chyby môžu presúvať skutočné peniaze. Overte skutočný rozsah oprávnení. Bankové spojenie nemusí vždy zahŕňať oprávnenie na platby.
Ukážka nepreukazuje, že používateľ vidí iba účty, ku ktorým má oprávnenie. Skryté tlačidlo nevynucuje oprávnenie. OWASP opisuje, ako môžu chýbajúce kontroly účtu alebo záznamu odhaliť údaje iného používateľa.
| Čo môže zlyhať? | Prečo na tom záleží | Dôkazy pred skutočným prístupom |
|---|---|---|
| Súkromný prihlasovací údaj pre API sa objaví v kóde prehliadača alebo v logoch | Iná strana by mohla využiť jeho oprávnenia | Skontrolovať spracovanie tajných údajov; otestovať odobratie prístupu |
| Backend prijme ID účtu bez kontroly práv volajúceho | Jeden používateľ by mohol čítať iný účet | Otestovať zamietnuté požiadavky na iných používateľov a účty |
| Platobná požiadavka prekročí časový limit a aplikácia ju odošle znova | Opakovanie by mohlo vytvoriť druhú platbu | Otestovať opakované pokusy a zosúladiť výsledok so záznamami poskytovateľa |
| Aplikácia odošle podrobnosti transakcie neschválenej službe AI | Dôverné informácie opustia schválenú hranicu | Sledovať požiadavky, logy, príjemcov a uchovávanie údajov |
| Závislosť sa po spustení stane zraniteľnou | Aj nezmenená aplikácia môže potrebovať bezpečnostnú opravu | Priradiť zodpovednosť za priebežné skenovanie, nápravu a overenie nasadenia |
Pri platobných API idempotencia znamená, že opakovaná požiadavka nezopakuje zamýšľaný účinok. Stripe dokumentuje jednu implementáciu. Overte správanie, obmedzenia a pravidlá opakovania skutočného poskytovateľa. Návrat aplikácie na predchádzajúcu verziu nevráti platbu, ktorú banka už spracovala.
Tento príklad nie je dôkazom chyby v Lovable. Vlastné bezpečnostné pokyny Lovable vyžadujú ochranu tajných údajov, kontroly na serveri, otestované pravidlá prístupu k údajom a priebežné overovanie. Rovnaký štandard dôkazov uplatňujte na každý nástroj na tvorbu aplikácií, agenta aj ručne napísanú aplikáciu.
Pred pripojením skutočných systémov overte prístup
Ďalej testujte pracovný postup so syntetickými údajmi a sandboxovými účtami. Pred skutočným prístupom nech zodpovedné osoby za službu, bezpečnosť a platformu overia aplikáciu aj jej prevádzkové prostredie.
Použite schválený postup pripojenia banky alebo poskytovateľa. Sprístupnite iba potrebné účty a oprávnenia. Súkromné prihlasovacie údaje uchovávajte v schválenom úložisku tajných údajov, mimo promptov a kódu prehliadača. Ak sú potrebné platby, určte ich schvaľovanie a limity. Overte, ako odobrať prístup, vyšetriť zlyhania a reagovať na podozrivú aktivitu.
Tieto rozhodnutia musia predchádzať vstupu dôverných údajov alebo skutočných prihlasovacích údajov do systému. Čakať na formálne produkčné vydanie môže byť neskoro. Pokračujte témami hranice údajov a podniková infraštruktúra.
Pred rozšírením používania určte zodpovednosti
Experiment s vymyslenými údajmi môže mať krátke trvanie a malé publikum. Keď od aplikácie závisia ďalší ľudia, určte zodpovednosti za jej používanie.
- Pomenujte zodpovednú osobu.
- Určte povolených používateľov a údaje.
- Definujte reakciu na zlyhanie.
- Uchovávajte zdrojový kód a konfiguráciu v repozitári.
- Overte, že iná osoba dokáže systém preskúmať a znovu vytvoriť.
Nie každý skript potrebuje podnikovú platformu. Osobný formátovací nástroj bez citlivých údajov potrebuje menej kontrolných opatrení než aplikácia na schvaľovanie platieb. Posúďte dôsledky chyby. Overte, či ju dokážete odhaliť a zvrátiť jej účinky.
Pred rozšírením prototypu oddeľte poznatky o probléme od dôkazov o implementácii. Môžete zachovať rozhranie a nahradiť vnútorný kód. Môžete obmedziť zamýšľané použitie. Prototyp môžete ponechať aj ako dočasný experiment.
Plánujte riešenie zraniteľností aj po ukážke
Úspešná ukážka môže skrývať vážnu medzeru v údržbe. O závislosti môže vyjsť nové upozornenie na zraniteľnosť bez akejkoľvek zmeny vášho kódu. Sken pri vydaní opisuje jediný okamih.
Ak sa aplikácia naďalej používa, niekto musí priebežne hľadať, posudzovať a opravovať zraniteľnosti. Oprava sa musí dostať do produkcie a prejsť overením. Skener bez tohto procesu reakcie necháva riziko nevyriešené.
Overte, čo poskytuje váš skutočný nástroj a konfigurácia. Neskoršia lekcia o priebežnom riadení zraniteľností vysvetľuje celý proces vrátane zlyhaní skenovania a nasadených verzií.
Uľahčite kontrolu ďalšej zmeny
Zadajte agentovi jednu malú zmenu s výslovnými akceptačnými kritériami. Určte, aké kroky môže vykonať. Preskúmajte výsledný diff. Vykonajte kontroly, ktoré dokážu odmietnuť nesprávnu implementáciu. Nasadenie ponechajte ako samostatné rozhodnutie, kým nie sú jasné zodpovednosti za vydanie.
NIST Secure Software Development Framework opisuje širšie postupy bezpečného vývoja. Použite ho ako referenciu pri posudzovaní chýbajúcich kontrolných opatrení. Nemusíte si rámec zapamätať. Musíte určiť chýbajúce dôkazy skôr, než softvér ovplyvní ďalších ľudí.
Vykonajte cvičenie
Vyberte funkciu z nedávnej ukážky. 1. Zapíšte jeden výsledok, ktorý ukážka preukázala. 2. Zapíšte tri otázky, ktoré zostávajú otvorené. 3. Ku každej otázke priraďte zodpovednú osobu. 4. Pomenujte konkrétnu kontrolu, ktorá dokáže odhaliť každé možné zlyhanie. Požiadavkou „zabezpečte to“ nenahrádzajte konkrétnu kontrolu.
Stiahnuť pracovný list (Markdown)Zrušenie tohto výberu vymaže celý postup uložený v tomto prehliadači.
Postup zostáva v tomto prehliadači. Bez účtu a sledovania.
Zdroje a ďalšie čítanie
- NIST: Secure Software Development Framework 1.1 ↗
- Lovable: Security best practices ↗
- OWASP: Broken Object Level Authorization ↗
- Stripe: Idempotent requests ↗