Nazaj

Je koda, ki jo je napisal AI, varna? 7 stvari, ki jih preverite pred objavo

Mak Kordić •
Je koda, ki jo je napisal AI, varna? 7 stvari, ki jih preverite pred objavo

Ne samodejno. V preizkusu podjetja Veracode iz leta 2025 je AI v 45 % nalog izbral nevarno rešitev, kadar je imel na voljo varno in nevarno. Koda je delovala, varna pa ni bila.

To ne pomeni, da je vsaka aplikacija z AI kodo nevarna. Pomeni, da varnosti ne morete predpostaviti, ampak jo morate preveriti. V tem članku je sedem preverjanj, ki jih opravite pred objavo, in pojasnilo, katera lahko naredite sami.

Kaj kažejo raziskave

Veracode je preizkusil več kot 100 jezikovnih modelov na 80 programerskih nalogah. Vsaka naloga je imela varno in nevarno rešitev. V 45 % primerov je model izbral nevarno. Pri javi je bil delež napak nad 70 %, pri zaščiti pred napadom z vrivanjem skript v spletno stran (XSS) pa modeli v 86 % primerov niso napisali varne kode.

Dve stvari sta pri tem pomembni. Prvič, to je nadzorovan preizkus in ne delež vse AI kode, ki je danes v uporabi. Drugič, Veracode ugotavlja, da novejši modeli pišejo boljšo delujočo kodo, pri varnosti pa niso boljši od starejših.

Druga raziskava je za naročnike še pomembnejša. Raziskovalci s Stanforda so primerjali programerje z AI pomočnikom in brez njega. Skupina z AI pomočnikom je pri štirih od petih nalog napisala manj varno kodo. Hkrati je bila bolj prepričana, da je njena koda varna. Raziskava je uporabila model iz leta 2022, zato številk ni mogoče neposredno prenesti na današnja orodja. Vzorec pa ostaja: AI ne zmanjša le varnosti, ampak tudi dvom.

Kaj se zgodi v praksi: 170 odprtih baz

Maja 2025 je bila javno objavljena ranljivost CVE-2025-48757 v aplikacijah, narejenih z orodjem Lovable. Raziskovalec Matt Palmer je pregledal 1.645 takih aplikacij. Pri 170, torej pri vsaki deseti, je bila baza dostopna komurkoli na internetu, brez prijave. Med izpostavljenimi podatki so bili osebni podatki uporabnikov in ključi za dostop do drugih storitev. O primeru je poročal Semafor.

Vzrok ni bil zapleten napad. Manjkala so pravila, ki določajo, kdo sme brati kateri zapis v bazi. Aplikacije so delovale, prijava je delovala, vsak uporabnik je na zaslonu videl samo svoje podatke. Baza pod njimi pa je odgovorila vsakomur, ki jo je vprašal neposredno.

Čigava je bila napaka, orodja ali avtorjev aplikacij, je še vedno predmet razprave. Za uporabnika, čigar podatki so bili dostopni, je to vseeno.

7 stvari, ki jih preverite pred objavo

1. Ključi in gesla v kodi

AI pogosto zapiše ključ za dostop do baze, plačilnega sistema ali AI modela neposredno v kodo, ker je to najkrajša pot do delujočega primera. Če je ta koda v brskalniku ali v javnem repozitoriju, ima ključ vsak.

Kako preverite: v kodi poiščite besede »key«, »secret«, »token« in »password«. V brskalniku odprite izvorno kodo strani in poiščite isto. Ključ, ki ga najdete, zamenjajte, ne samo skrijte.

2. Kdo sme do katerih podatkov

To je napaka iz primera zgoraj. Ločevanje podatkov mora biti urejeno v bazi ali na strežniku, ne na zaslonu.

Kako preverite: ustvarite dva računa. Z drugim poskusite odpreti zapis prvega, tako da v naslovu spremenite številko ali oznako zapisa. Če se odpre, imate težavo.

3. Preverjanje vnosov

Vsak podatek, ki pride od uporabnika, je treba preveriti na strežniku: dolžino, vrsto in vsebino. AI to preverjanje pogosto napiše samo v obrazcu, kjer ga je mogoče obiti.

Kako preverite: v polja vpišite zelo dolgo besedilo, znake kot so < > ' " in prazno vrednost. Aplikacija mora vnos zavrniti z razumljivim sporočilom, ne z napako ali praznim zaslonom.

4. Prijava, gesla in seje

Preverite, ali so gesla shranjena zaščiteno, ali je število poskusov prijave omejeno, ali ponastavitev gesla deluje samo za lastnika računa in ali seja po odjavi res preneha veljati.

Kako preverite: desetkrat zapored vpišite napačno geslo. Če vas aplikacija ne ustavi, je ne bo ustavila niti avtomatskega ugibanja.

5. Knjižnice in odvisnosti

Aplikacija je sestavljena iz desetin tujih knjižnic. AI včasih predlaga zastarele različice z znanimi ranljivostmi, včasih pa tudi knjižnico, ki ne obstaja. Tako ime lahko nekdo registrira in vanjo postavi zlonamerno kodo.

Kako preverite: zaženite orodje za pregled odvisnosti, ki je vgrajeno v večino razvojnih okolij. Za vsako knjižnico, ki je ne poznate, preverite, kdo jo vzdržuje in koliko ljudi jo uporablja.

6. Kaj pošiljate ponudniku AI modela

Če aplikacija uporablja AI model, mu pošilja podatke. Preverite, ali so med njimi osebni podatki strank, kje se obdelujejo in ali imate s ponudnikom sklenjeno pogodbo o obdelavi podatkov. Po GDPR ste za to odgovorni vi.

Kako preverite: poiščite v kodi mesta, kjer se kliče AI model, in poglejte, kaj natančno je v zahtevi.

7. Varnostne kopije in dnevniki

Ko gre kaj narobe, potrebujete dvoje: kopijo podatkov in zapis o tem, kaj se je zgodilo. Prototipi nimajo ne enega ne drugega.

Kako preverite: obnovite varnostno kopijo v testno okolje. Nato poskusite ugotoviti, kdo se je včeraj prijavil in kaj je spreminjal. Če ne gre, tega ne boste zmogli niti po vdoru.

Kaj lahko preverite sami in kdaj to ni dovolj

Sami lahko naredite preizkus z dvema računoma, poiščete ključe v kodi, preizkusite vnose in zaženete pregled odvisnosti. To vzame popoldne in odkrije najbolj očitne napake.

Pomaga tudi, če AI prosite, naj pregleda varnost svoje kode. Našel bo del napak. Na to se ne zanašajte: isti model ima pri pregledu enake slepe pege kot pri pisanju.

Samostojno preverjanje ni dovolj, kadar aplikacija hrani osebne, finančne ali zdravstvene podatke, kadar sprejema plačila ali kadar jo prodajate podjetjem, ki bodo zahtevala dokazilo o varnostnem pregledu.

V takem primeru je smiseln neodvisen pregled. Pri nas je to del paketa Reševanje AI projektov: v dveh tednih dobite seznam tveganj po prioriteti, torej kaj je treba popraviti pred objavo, kaj lahko počaka in česa se ne splača popravljati.

Pogosta vprašanja

Ali je koda, ki jo napiše AI, manj varna od kode, ki jo napiše človek?

Ne nujno. Tudi ljudje pišejo nevarno kodo. Razlika je v pregledu: v urejeni ekipi kodo pred objavo prebere še nekdo drug. Pri aplikaciji, zgrajeni z AI orodjem, tega koraka pogosto ni, ker kode ne prebere nihče.

Ali lahko AI sam preveri varnost svoje kode?

Delno. Najde znane vzorce napak, če ga to izrecno vprašate. Ne ve pa, kateri podatki so v vaši aplikaciji občutljivi in kdo jih sme videti. To mora določiti človek.

Ali so novejši AI modeli varnejši?

Po Veracodovih podatkih ne. Novejši modeli pišejo kodo, ki pogosteje deluje, delež varnostnih napak pa se ni zmanjšal.

Kdo odgovarja, če pride do uhajanja podatkov?

Po GDPR za varstvo osebnih podatkov odgovarja upravljavec, torej podjetje, ki aplikacijo ponuja. To, da je kodo napisal AI ali zunanji izvajalec, te odgovornosti ne prenese.

Nazaj

O tem pišemo. In tudi gradimo.

Skočimo na klic o vašem projektu

30-minutni klic, da razumemo kaj gradite in ali smo prava ekipa za vas.

Raje po e-pošti?

[email protected]