O echipă de tehnicieni a descoperit faptul că o rețea neuronală, care generează automat un cod sursă pentru a ajuta programatorii umani să finalizeze proiectele, poate introduce în sistem bug-uri sau defecte de securitate într-o proporție de până la 40% din codul produs.
Rețeaua neuronală stă la baza unei funcții de programare bazată pe inteligență artificială (IA) denumită Copilot, care este disponibilă prin filiala Microsoft GitHub și care este utilizată de milioane de oameni pentru a partaja coduri sursă și pentru a organiza proiecte software. Copilot rezolvă problemele de programare cercetând un număr mare de exemple de soluții existente și învățând cum să creeze rezultate similare. În acest moment, acest sistem este în faza beta de testare, dar este disponibil pentru orice programator.
În prezent, s-a descoperit faptul că funcția poate crea cod nesigur. Hammond Pearce și colegii acestuia din cadrul Universității din New York au examinat codul creat de Copilot și au constatat faptul că în aproape jumătate din timp sistemul a creat un software vulnerabil la atacuri din partea hackerilor sau la blocaje.
Echipa a produs scenarii care erau recunoscute ca fiind defecte de securitate și l-au determinat pe Copilot să completeze codul. Grupul a generat 89 de scenarii care necesitau o finalizare din partea software-ului Copilot, care a produs 1692 de exemple de cod. Aproximativ 40% din codul generat era vulnerabil la atacuri.
Aceste defecte au inclus diverse probleme, precum nerespectarea faptului că datele introduse de utilizator pe site-urile web sunt sigure și că nu există coduri rău intenționate. Aceste tipuri de verificări previn atacurile precum cele în care baza de date, în care stochează informații pentru un site web, poate fi păcălită să dezvăluie date private sau chiar să le suprascrie sau să le șteargă. Astfel de atacuri sunt documentate de mai bine de 20 de ani.
Echipa de cercetare a declarat faptul că „securitatea variabilă” a software-ului Copilot provine din utilizarea codului furnizat de comunitate pentru antrenarea rețelei neuronale.
Brendan Dolan-Gavitt, coautor al studiului în cadrul Universității din New York declarat: „Rata vulnerabilităților este suficient de mare încât să nu recomandăm utilizarea Copilot în cazul unor setări sensibile la securitate fără a verifica cu atenție codul pe care îl produce. Recomandarea noastră generală este să tratăm rezultatul sistemului Copilot într-un mod similar cu rezultatul unui dezvoltator mai puțin experimentat. Orice cod generat de Copilot ar trebui verificat și testat de un dezvoltator uman mai experimentat și supus instrumentelor de analiză a securității înainte de a putea fi introdus în producție.”
Oficialii din cadrul GitHub nu au oferit un răspuns în acest sens. Totuși, pe site-ul instrumentului se avertizează cu privire la faptul că acel cod generat ar putea include defecte de securitate și se recomandă verificarea și testarea acestuia de către oameni înainte de utilizare.