Vođe misli
Kod generiran umjetnom inteligencijom je tu da ostane. Jesmo li zbog toga manje sigurni?

Kodiranje u 2025. nije mukotrpno mučenje s fragmentima ili provođenje dugih sati na otklanjanju pogrešaka. To je potpuno drugačija vibra. Kod generiran umjetnom inteligencijom činit će većinu koda u budućim proizvodima i postao je neophodan alat za modernog programera. Poznato kao "vibe kodiranje", korištenje koda generiranog alatima poput Github Copilota, Amazon CodeWhisperera i Chat GPT-a bit će norma, a ne iznimka u smanjenju vremena izrade i povećanju učinkovitosti. Ali predstavlja li praktičnost koda generiranog umjetnom inteligencijom neku mračnu prijetnju? Povećava li generativna umjetna inteligencija ranjivosti u sigurnosnoj arhitekturi ili postoje načini da programeri sigurno "vibiraju kod"?
„Sigurnosni incidenti kao rezultat ranjivosti u kodu generiranom umjetnom inteligencijom jedna su od najmanje raspravljanih tema danas“, rekao je Sanket Saurav, osnivač DeepSourcea. „Još uvijek postoji mnogo koda koji generiraju platforme poput Copilota ili Chat GPT-a koji ne prolazi ljudski pregled, a sigurnosni incidenti mogu biti katastrofalni za tvrtke koje su pogođene.“
Saurav je naveo da je programer platforme otvorenog koda koja koristi statičku analizu za kvalitetu i sigurnost koda. Hakiranje SolarWindsa 2020. godine kao vrstu „događaja izumiranja“ s kojim bi se tvrtke mogle suočiti ako nisu instalirale odgovarajuće sigurnosne ograde pri korištenju koda generiranog umjetnom inteligencijom. „Statička analiza omogućuje identifikaciju nesigurnih obrazaca koda i loših praksi kodiranja“, rekao je Saurav.
Napadnut kroz knjižnicu
Sigurnosne prijetnje kodu generiranom umjetnom inteligencijom mogu poprimiti inventivne oblike i mogu biti usmjerene na biblioteke. Biblioteke u programiranju su koristan kod za višekratnu upotrebu koji programeri koriste kako bi uštedjeli vrijeme pri pisanju.
Često rješavaju uobičajene programerske zadatke poput upravljanja interakcijama s bazom podataka i pomažu programerima da ne moraju prepisivati kod od nule.
Jedna takva prijetnja bibliotekama poznata je kao „halucinacije“, gdje kod generiran umjetnom inteligencijom pokazuje ranjivost korištenjem izmišljenih biblioteka. Druga, novija linija napada na kod generiran umjetnom inteligencijom naziva se „slopsquatting“ gdje napadači mogu izravno ciljati biblioteke kako bi infiltrirali bazu podataka.
Izravno suočavanje s ovim prijetnjama moglo bi zahtijevati više pažnje nego što bi se moglo sugerirati pojmom "vibracijsko kodiranje". Govoreći iz svog ureda na Sveučilištu du Québec en Outaouais, profesor Rafael Khoury pomno prati razvoj sigurnosti koda generiranog umjetnom inteligencijom i uvjeren je da će nove tehnike poboljšati njegovu sigurnost.
In 2023 papir, profesor Khoury istraživao je rezultate traženja od ChatGPT-a da generira kod bez ikakvog dodatnog konteksta ili informacija, praksa koja je dovela do nesigurnog koda. To su bili rani dani Chat GPT-a i Khoury je sada optimističan u pogledu puta koji je pred nama. „Od tada se provodi mnogo istraživanja i budućnost se fokusira na strategiju korištenja LLM-a koja bi mogla dovesti do boljih rezultata“, rekao je Khoury, dodajući da „sigurnost postaje sve bolja, ali nismo u stanju dati izravnu poruku i dobiti siguran kod.“
Khoury je nastavio opisivati studija koja obećava gdje su generirali kod, a zatim ga poslali alatu koji ga analizira na ranjivosti. Metoda koju alat koristi naziva se Pronalaženje anomalija linija generativnom umjetnom inteligencijom (ili skraćeno FLAG).
„Ovi alati šalju FLAG-ove koji bi mogli identificirati ranjivost u retku 24, na primjer, koje programer zatim može poslati natrag LLM-u s informacijama i zatražiti od njega da to istraži i riješi problem“, rekao je.
Khoury je sugerirao da bi ova razmjena mišljenja mogla biti ključna za popravljanje koda koji je ranjiv na napade. „Ova studija sugerira da s pet iteracija možete smanjiti ranjivosti na nulu.“
Uz to rečeno, FLAG metoda nije bez problema, posebno zato što može dovesti i do lažno pozitivnih i lažno negativnih rezultata. Osim toga, postoje i ograničenja u duljini koda koji LLM-ovi mogu stvoriti, a čin spajanja fragmenata može dodati još jedan sloj rizika.
Održavanje čovjeka u toku
Neki igrači unutar „vibe kodiranja“ preporučuju fragmentiranje koda i osiguravanje da ljudi ostanu u prvom planu, desno i u sredini tijekom najvažnijih uređivanja kodne baze. „Prilikom pisanja koda, razmišljajte u smislu commitova“, rekao je Kevin Hou, voditelj proizvodnog inženjerstva u Windsurfu, veličajući mudrost kratkih dijelova.
„Podijelite veliki projekt na manje dijelove koji bi inače bili commitovi ili pull requesti. Neka agent izgradi manji opseg, jednu izoliranu značajku odjednom. To može osigurati da je izlazni kod dobro testiran i dobro razumljiv“, dodao je.
U trenutku pisanja ovog teksta, Windsurf je pristupio više od 5 milijardi redaka koda generiranog umjetnom inteligencijom (kroz svoj prethodni naziv Codeium). Hou je rekao da je najvažnije pitanje na koje su odgovarali bilo je li programer bio svjestan procesa.
„Umjetna inteligencija sposobna je istovremeno uređivati mnogo datoteka, pa kako možemo osigurati da programer zapravo razumije i pregledava što se događa, a ne da samo slijepo prihvaća sve?“ upitao je Hou, dodajući da su uložili velika sredstva u Windsurfov UX „s mnoštvom intuitivnih načina kako bi u potpunosti pratili što umjetna inteligencija radi i kako bi čovjek bio u potpunosti informiran.“
Zbog toga je kao „vibe kodiranje„postaje sve uobičajeniji, ljudi u krugu moraju biti oprezniji u pogledu njegovih ranjivosti. Od „halucinacija“ do prijetnji „nemarnog korištenja“, izazovi su stvarni, ali takva su i rješenja.
Novi alati poput statičke analize, iterativnih metoda poboljšanja poput FLAG-a i promišljenog UX dizajna pokazuju da sigurnost i brzina ne moraju biti međusobno isključive.
Ključ leži u tome da se programeri angažiraju, informiraju i imaju kontrolu. Uz prave zaštitne mjere i način razmišljanja „vjeruj, ali provjeri“, kodiranje uz pomoć umjetne inteligencije može biti i revolucionarno i odgovorno.