Google je nedavno iskoristio AI program kako bi otkrio softverski bag koji je opstao u open-source softverskom projektu poslednjih dvadeset godina.
Ovaj softverski bag je među 26 ranjivosti koje je Google nedavno identifikovao uz pomoć AI alata sličnog ChatGPT-u, kako se navodi u blog postu kompanije u sredu.
Google je otkrio ove ranjivosti kroz pristup poznat kao „fuzz testing„, koji podrazumeva unos nasumičnih podataka u softverski program kako bi se proverilo da li će doći do rušenja, a zatim se dijagnostikuje problem. Prošle godine, kompanija je započela napore da koristi velike jezičke modele za pisanje fuzz testing koda, čime je prebacila posao sa ljudi koji su prethodno morali ručno da vrše ovaj test.
„Naš pristup bio je da iskoristimo kodirajuće sposobnosti LLM-a da generišemo više fuzz ciljeva,“ napisao je Google-ov tim za bezbednost open-source softvera u blog postu. „LLM-ovi su se pokazali izuzetno efikasnim u oponašanju celokupnog radnog toka tipičnog programera – od pisanja, testiranja i iteriranja na fuzz cilju, pa sve do rešavanja problema sa rušenjem.“

Od tada, Google je primenio AI alat za fuzz testing na 272 softverska projekta, što je dovelo do otkrića 26 ranjivosti, uključujući 20 godina stari bag u OpenSSL-u, koji se široko koristi za obezbeđivanje enkripcije i autentifikacije servera za internet veze.
„Prijavili smo ovu ranjivost 16. septembra, a ispravka je objavljena 16. oktobra. Koliko možemo da pretpostavimo, ova ranjivost je verovatno bila prisutna već dve decenije i ne bi bila otkrivena postojećim fuzz ciljevima koje su pisali ljudi,“ dodali su istraživači.
20 godina stari bag, označen kao CVE-2024-9143, uključuje pokretanje „pristupa van granica memorije“ u softveru, što može uzrokovati rušenje programa ili, u retkim slučajevima, izvršavanje zlonamernog računarskog koda. Srećom, ovaj bag ima nisku ozbiljnost zbog minimalnog rizika da pristup van granica memorije izvrši opasan proces.

Ipak, Google pretpostavlja da bag nije otkriven jer se smatralo da je specifičan kod već temeljno testiran i proveravan. „Pokriće koda kao metriku nije moguće koristiti za merenje svih mogućih puteva i stanja koda—različite zastavice i konfiguracije mogu pokrenuti različita ponašanja, otkrivajući različite bagove,“ rekli su istraživači. „Ovi primeri naglašavaju potrebu da se nastavi generisanje novih varijacija fuzz ciljeva, čak i za kod koji je već testiran.“
U budućnosti, Google-ov tim za sigurnost otvorenog koda radi na tome da LLM-ovi sugerišu patch-eve za bilo koji bag otkriven tokom fuzzing procesa. Drugi cilj je „da dođemo do tačke u kojoj ćemo biti sigurni da neće biti potrebna ljudska revizija,“ rekli su iz tima. „Ovo će pomoći u automatskom prijavljivanju novih ranjivosti održavaocima projekata.“
Ovaj napor pridružuje se drugom Google AI projektu, nazvanom „Big Sleep,“ koji takođe uključuje otkrivanje sigurnosnih ranjivosti korišćenjem LLM-ova za imitaciju radnog toka ljudskog istražitelja sigurnosti. Početkom ovog meseca, kompanija je saopštila da je Big Sleep bio dovoljno pametan da otkrije prethodno nepoznat i iskoristiv bag u SQLite-u, open-source bazi podataka.



