Keď ste aplikáciu postavili cez AI nástroj, je logické sa opýtať, či sa ňou nedá aj skontrolovať. Odpoveď znie: čiastočne áno a stojí to za to urobiť. Zároveň to má strop, ktorý je dobré poznať skôr, než sa oň oprete.
Tento text je návod, ako z AI vytiahnuť maximum, a poctivý popis toho, kde končí.
Čo AI zvládne dobre
Nájde známe vzorce
Jazykové modely videli obrovské množstvo kódu vrátane chýb, ktoré sa v ňom typicky robia. Keď im predložíte konkrétnu časť aplikácie a spýtate sa na bezpečnostné problémy, spoľahlivo upozornia na veci ako kľúč zapísaný priamo v kóde, chýbajúce overenie oprávnení alebo výpočet ceny na strane prehliadača.
Toto je reálna hodnota a je zadarmo.
Vysvetlí, čo kód robí
Pre netechnického majiteľa je to podceňovaná funkcia. Vezmete časť aplikácie, ktorej nerozumiete, a necháte si ju popísať bežným jazykom. Zistíte, čo systém ukladá a kam to posiela, bez toho, aby ste museli vedieť čítať kód.
Napíše dokumentáciu
Popis dátovej štruktúry, zoznam služieb, prehľad toho, čo aplikácia vie. Veci, ktoré v aplikáciách postavených cez AI chýbajú takmer vždy a ktoré sú nutné pre odovzdanie komukoľvek ďalšiemu. AI ich z existujúceho kódu odvodí za pár minút.
Navrhne opravu
Keď viete, čo je zle, AI spravidla napíše opravu rýchlejšie a lepšie, než ju napíšete sami. Nasadenie opravy je niečo iné než jej nájdenie a tu je AI silná.
Ako sa pýtať, aby to k niečomu bolo
Rozdiel medzi „skontroluj mi to“ a užitočnou odpoveďou je v zadaní. Všeobecná otázka vedie k všeobecnej odpovedi a k dojmu, že je všetko v poriadku.
Zadávajte po častiach. Celú aplikáciu naraz model užitočne neposúdi. Vezmite jednu obrazovku, jeden formulár, jednu funkciu.
Pýtajte sa konkrétne. Namiesto „je toto bezpečné“ použite zadanie typu:
Toto je kód, ktorý zobrazuje detail objednávky. Prejdi ho a odpovedz
na jedinú otázku: overuje sa na serveri, že prihlásený používateľ má
na túto konkrétnu objednávku právo? Ak nie, ukáž mi presne to miesto,
kde kontrola chýba.
Vypíš mi všetky miesta v tomto súbore, kde aplikácia prijíma hodnotu
z prehliadača a použije ju bez overenia na serveri. Pri každom napíš,
čo sa stane, keď používateľ tú hodnotu zmení.
Nájdi v tomto kóde všetky prístupové kľúče, heslá a tajomstvá
zapísané priamo v kóde. Vypíš ich ako zoznam s názvom súboru.
Vypíš mi všetky osobné údaje, ktoré táto aplikácia ukladá, a
pri každom napíš, do ktorej tabuľky sa ukladá a či existuje spôsob,
ako ho zmazať.
Nechajte model hľadať, nie hodnotiť. Otázka „čo tu chýba“ dáva lepšie výsledky než „je to v poriadku“. Modely majú sklon potvrdzovať.
Pýtajte sa dvakrát, inými slovami. Keď dostanete odpoveď „vyzerá to v poriadku“, zadajte to isté znova formuláciou, ktorá predpokladá, že problém existuje. Rozdiel v odpovediach vám veľa povie.
Kde to prestane fungovať
Tu je poctivá časť, ktorú pri hľadaní „ako zabezpečiť aplikáciu pomocou AI“ väčšinou nenájdete.
AI nepozná váš biznis
Model vidí kód, nie pravidlá vašej firmy. Nerozpozná, že u vás nesmie obchodník vidieť maržu, že zľavu nad určitú hranicu má schvaľovať niekto iný, alebo že zákazník zo skupiny A nesmie vidieť zákazky skupiny B.
Chyby v logike oprávnení patria medzi tie najzávažnejšie a sú presne tou triedou problémov, ktorú model bez znalosti kontextu nenájde. Kód je totiž z jeho pohľadu správny. Robí presne to, čo je napísané.
Model hodnotí to, čo mu ukážete
Keď mu predložíte tri súbory, posúdi tri súbory. Nepovie vám, že problém je vo štvrtom, o ktorom nevie, ani že celá jedna časť aplikácie nemá kontrolu, pretože ste mu ju neposlali.
Kontrola, ktorú vedie človek, začína otázkou „čo všetko tu je“. Kontrola vedená modelom začína tým, čo ste vybrali vy. A vyberáte podľa toho, čo vám napadlo, čo je to isté obmedzenie, kvôli ktorému chyba vznikla.
Je to ten istý nástroj s tými istými predpokladmi
Model, ktorý kód napísal, do kontroly vstupuje s rovnakým pohľadom, s akým ho písal. Keď pri písaní nepovažoval kontrolu oprávnení za súčasť zadania, nie je dôvod, aby mu pri kontrole chýbala.
Toto je jadro problému a nevyrieši sa tým, že použijete iný model. Vyrieši sa tým, že do procesu vstúpi niekto s iným spôsobom uvažovania.
Model neoverí, či má pravdu
Keď vám napíše, že kontrola oprávnení je v poriadku, je to odhad na základe textu, nie výsledok skúšky. Neskúsil sa prihlásiť ako iný používateľ a neskúsil si otvoriť cudzí záznam.
„Rozdiel medzi ‚podľa kódu to vyzerá ošetrene‘ a ‚vyskúšal som to a nejde to‘ je celý rozdiel medzi domnienkou a zistením.“
Odpovedá sebaisto, aj keď sa mýli
Model nenapíše „tu si nie som istý, odporúčam overiť“. Napíše súvislý, presvedčivý text. Falošná istota je horšia než žiadna odpoveď, pretože na jej základe prestanete hľadať.
Test, ktorým spoznáte, že ste narazili na strop
Skúste toto. Vezmite aplikáciu a spýtajte sa modelu:
Vymenuj mi všetky spôsoby, ktorými by sa v tejto aplikácii mohol
jeden zákazník dostať k dátam iného zákazníka.
Ak dostanete odpoveď, ktorá znie všeobecne a mohla by platiť pre akúkoľvek aplikáciu na svete, model nemá dosť kontextu a jeho posúdenie nemá váhu.
Ak dostanete odpoveď, ktorá odkazuje na konkrétne miesta vo vašej aplikácii, máte použiteľný začiatok. Stále je to začiatok, nie výsledok.
Kedy AI kontrola stačí
- Aplikáciu používate vy a pár kolegov vnútri firmy.
- Nie sú v nej osobné údaje iných ľudí než vašich zamestnancov.
- Neprechádzajú cez ňu peniaze.
- Jej výpadok nikoho nezastaví.
V tejto situácii je prechod cez AI podľa zadaní vyššie rozumné opatrenie zodpovedajúce riziku.
Kedy nestačí
- Aplikáciu používajú ľudia mimo vašej firmy.
- Sú v nej osobné údaje zákazníkov alebo doklady.
- Prechádzajú cez ňu platby.
- Potrebujete výsledok doložiť klientovi, investorovi alebo úradu.
Tu potrebujete tri veci, ktoré AI neposkytne: úplnosť rozsahu, overenie skúškou a niekoho, kto za výsledok zodpovedá.
Odporúčaný postup
- Prejdite aplikáciu cez AI podľa zadaní z prvej časti. Zaberie to hodinu a odstránite tým to najzjavnejšie.
- Opravte, čo nájdete. Tu je AI najsilnejšia.
- Zopakujte kontrolu po oprave. Modely pri oprave jednej veci občas rozbijú inú.
- Napíšte si, čo ste urobili. Bude to podklad pre kohokoľvek, kto príde po vás.
- Podľa rizika sa rozhodnite, či tým končíte. Použite oba zoznamy vyššie.
Kto si prejde kroky 1 až 4, dostane sa ďalej než väčšina. A hlavne bude presne vedieť, na čo sa pýtať, keď sa rozhodne pre krok piaty.
VibeAudit kombinuje automatizované nástroje s ručnou prácou človeka. Automat nájde známe vzorce, človek nájde chyby v logike, ktoré automat nevidí.
