Když jste aplikaci postavili přes AI nástroj, je logické se zeptat, jestli jím nejde i zkontrolovat. Odpověď zní: částečně ano a stojí to za to udělat. Zároveň to má strop, který je dobré znát dřív, než se o něj opřete.
Tenhle text je návod, jak z AI vytáhnout maximum, a poctivý popis toho, kde končí.
Co AI zvládne dobře
Najde známé vzorce
Jazykové modely viděly obrovské množství kódu včetně chyb, které se v něm typicky dělají. Když jim předložíte konkrétní část aplikace a zeptáte se na bezpečnostní problémy, spolehlivě upozorní na věci jako klíč zapsaný přímo v kódu, chybějící ověření oprávnění nebo výpočet ceny na straně prohlížeče.
Tohle je reálná hodnota a je zadarmo.
Vysvětlí, co kód dělá
Pro netechnického majitele je to podceňovaná funkce. Vezmete část aplikace, které nerozumíte, a necháte si ji popsat běžným jazykem. Zjistíte, co systém ukládá a kam to posílá, aniž byste museli umět číst kód.
Napíše dokumentaci
Popis datové struktury, seznam služeb, přehled toho, co aplikace umí. Věci, které v aplikacích postavených přes AI chybí skoro vždycky a které jsou nutné pro předání komukoliv dalšímu. AI je z existujícího kódu odvodí za pár minut.
Navrhne opravu
Když víte, co je špatně, AI zpravidla napíše opravu rychleji a lépe, než ji napíšete sami. Nasazení opravy je něco jiného než její nalezení a tady je AI silná.
Jak se ptát, aby to k něčemu bylo
Rozdíl mezi „zkontroluj mi to“ a užitečnou odpovědí je v zadání. Obecná otázka vede k obecné odpovědi a k dojmu, že je vše v pořádku.
Zadávejte po částech. Celou aplikaci najednou model neposoudí užitečně. Vezměte jednu obrazovku, jeden formulář, jednu funkci.
Ptejte se konkrétně. Místo „je tohle bezpečné“ použijte zadání typu:
Tohle je kód, který zobrazuje detail objednávky. Projdi ho a odpověz
na jedinou otázku: ověřuje se na serveru, že přihlášený uživatel má
na tuhle konkrétní objednávku právo? Pokud ne, ukaž mi přesně to
místo, kde kontrola chybí.
Vypiš mi všechna místa v tomhle souboru, kde aplikace přijímá hodnotu
z prohlížeče a použije ji bez ověření na serveru. U každého napiš, co
se stane, když uživatel tu hodnotu změní.
Najdi v tomhle kódu všechny přístupové klíče, hesla a tajemství
zapsané přímo v kódu. Vypiš je jako seznam s názvem souboru.
Vypiš mi všechny osobní údaje, které tahle aplikace ukládá, a
u každého napiš, do které tabulky se ukládá a jestli existuje způsob,
jak ho smazat.
Nechte model hledat, ne hodnotit. Otázka „co tady chybí“ dává lepší výsledky než „je to v pořádku“. Modely mají sklon potvrzovat.
Ptejte se dvakrát, jinými slovy. Když dostanete odpověď „vypadá to v pořádku“, zadejte totéž znovu formulací, která předpokládá, že problém existuje. Rozdíl v odpovědích vám hodně řekne.
Kde to přestane fungovat
Tady je poctivá část, kterou při hledání „jak zabezpečit aplikaci pomocí AI“ většinou nenajdete.
AI nezná váš byznys
Model vidí kód, ne pravidla vaší firmy. Nepozná, že u vás nesmí obchodník vidět marži, že sleva nad určitou hranici má schvalovat někdo jiný, nebo že zákazník ze skupiny A nesmí vidět zakázky skupiny B.
Chyby v logice oprávnění patří mezi ty nejzávažnější a jsou přesně tou třídou problémů, kterou model bez znalosti kontextu nenajde. Kód je totiž z jeho pohledu správný. Dělá přesně to, co je napsáno.
Model hodnotí to, co mu ukážete
Když mu předložíte tři soubory, posoudí tři soubory. Neřekne vám, že problém je ve čtvrtém, o kterém neví, ani že celá jedna část aplikace nemá kontrolu, protože jste mu ji neposlali.
Kontrola, kterou vede člověk, začíná otázkou „co všechno tady je“. Kontrola vedená modelem začíná tím, co jste vybrali vy. A vybíráte podle toho, co vás napadlo, což je totéž omezení, kvůli kterému chyba vznikla.
Je to stejný nástroj se stejnými předpoklady
Model, který kód napsal, do kontroly vstupuje se stejným pohledem, se kterým ho psal. Když při psaní nepovažoval kontrolu oprávnění za součást zadání, není důvod, aby ji při kontrole postrádal.
Tohle je jádro problému a nevyřeší se tím, že použijete jiný model. Vyřeší se tím, že do procesu vstoupí někdo s jiným způsobem uvažování.
Model neověří, jestli má pravdu
Když vám napíše, že kontrola oprávnění je v pořádku, je to odhad na základě textu, ne výsledek zkoušky. Nezkusil se přihlásit jako jiný uživatel a nezkusil si otevřít cizí záznam.
„Rozdíl mezi ‚podle kódu to vypadá ošetřeně‘ a ‚vyzkoušel jsem to a nejde to‘ je celý rozdíl mezi domněnkou a zjištěním.“
Odpovídá sebejistě i když se mýlí
Model nenapíše „tady si nejsem jistý, doporučuji ověřit“. Napíše souvislý, přesvědčivý text. Falešná jistota je horší než žádná odpověď, protože na jejím základě přestanete hledat.
Test, kterým poznáte, že jste narazili na strop
Zkuste tohle. Vezměte aplikaci a zeptejte se modelu:
Vyjmenuj mi všechny způsoby, kterými by se v téhle aplikaci mohl
jeden zákazník dostat k datům jiného zákazníka.
Pokud dostanete odpověď, která zní obecně a mohla by platit pro jakoukoliv aplikaci na světě, model nemá dost kontextu a jeho posouzení nemá váhu.
Pokud dostanete odpověď, která odkazuje na konkrétní místa ve vaší aplikaci, máte použitelný začátek. Pořád je to začátek, ne výsledek.
Kdy AI kontrola stačí
- Aplikaci používáte vy a pár kolegů uvnitř firmy.
- Nejsou v ní osobní údaje jiných lidí než vašich zaměstnanců.
- Neprocházejí přes ni peníze.
- Její výpadek nikoho nezastaví.
V téhle situaci je průchod přes AI podle zadání výše rozumné opatření odpovídající riziku.
Kdy nestačí
- Aplikaci používají lidé mimo vaši firmu.
- Jsou v ní osobní údaje zákazníků nebo doklady.
- Procházejí přes ni platby.
- Potřebujete výsledek doložit klientovi, investorovi nebo úřadu.
Tady potřebujete tři věci, které AI neposkytne: úplnost rozsahu, ověření zkouškou a někoho, kdo za výsledek odpovídá.
Doporučený postup
- Projděte aplikaci přes AI podle zadání z první části. Zabere to hodinu a odstraníte tím to nejzřejmější.
- Opravte, co najdete. Tady je AI nejsilnější.
- Zopakujte kontrolu po opravě. Modely při opravě jedné věci občas rozbijí jinou.
- Napište si, co jste udělali. Bude to podklad pro kohokoliv, kdo přijde po vás.
- Podle rizika se rozhodněte, jestli tím končíte. Použijte oba seznamy výše.
Kdo si projde kroky 1 až 4, dostane se dál než většina. A hlavně bude přesně vědět, na co se ptát, když se rozhodne pro krok pátý.
VibeAudit kombinuje automatizované nástroje s ruční prací člověka. Automat najde známé vzorce, člověk najde chyby v logice, které automat nevidí.
