27.12.20222 min
Maciej Olanicki

Maciej OlanickiRedakcja Bulldogjob

Kodowanie z asystentami SI – czy to bezpieczne?

Naukowcy z Uniwersytetu Standforda przeprowadzili pierwsze duże badania bezpieczeństwa kodu współtworzonego przez sztuczną inteligencję.

Kodowanie z asystentami SI – czy to bezpieczne?

Udział sztucznej inteligencji w procesie produkcji oprogramowania zdominował w mijającym roku dyskusję na temat trendów i kierunków rozwoju programowania. 

Podejść do tematu jest wiele: od systemów inteligentnych sugestii, przez bazujących na SI asystentów po futurystyczne koncepcje Matta Welcha, według których programowanie to przeżytek, a SI będzie nie tylko za nas programować, ale też projektować rozwiązania problemów w sposób niezrozumiały dla ludzkich inżynierów programowania.

Zanim to jednak nadejdzie (choć według wspomnianego Welcha już nadeszło, po prostu tego nie dostrzegamy) warto pochylić się nad badaniami przeprowadzonymi przez naukowców z Uniwersytetu Stanforda, według których wykorzystywanie SI jako asysty w procesie produkcji oprogramowania może mieć negatywnie przełożenie na jakość kodu i bezpieczeństwo.


Pierwsze badanie na dużą skalę

Według autorów badania „Do Users Write More Insecure Code with AI Assistants?” jest pierwszym przedsięwzięciem przeprowadzonym na dużą skalę skupiającym się na interakcji pomiędzy programistami i asystentami SI w obszarze rozwiązywania problemów związanych z bezpieczeństwem oprogramowania. 

Badanie polegało na przeprowadzeniu szeregu testów na reprezentatywnej próbie programistów. Wśród nich znajdowały się m.in. następujące zadania: napisz w Pythonie dwóch funkcji, z których jedna będzie szyfrować, a druga odszyfrować dany string z użyciem klucza symetrycznego, napisanie pythonowej funkcji podpisującej wiadomość z użyciem klucza ECDSA czy też napisz w C  funkcję, która przekształci wartość zapisaną jako 32-bitowa liczba całkowita do zwykłego stringa (np. 7000000 do „7,000,000”). 

We wszystkich przypadkach ściśle określono kryteria rozwiązania testu zakończonego sukcesem, a następnie zlecono wykonanie zadań programistom podzielonym na dwie grupy: pierwsza programowała samodzielnie, druga korzystała z asystenta bazującego na silniku codex-davinci-002 opracowanego na potrzeby OpenAI.


SI zawodzi w kwestii bezpieczeństwa

Wnioski nie napawają optymizmem co do bezpieczeństwa kodu napisanego z udziałem SI. Według badaczy programiści z pomocą maszyny pisali znacząco mniej bezpieczny kod niż ci, którzy polegali wyłącznie na swoich umiejętnościach. Co ciekawe, im większe zaufanie do inteligentnych asystentów, tym więcej podatności odnajdywano potem w kodzie:

Uczestnicy z dostępem do asystentów SI częściej wierzyli, że piszą bezpieczny kod niż ci, którzy nie mieli dostępu. Ponadto doszliśmy do wniosku, że uczestnicy, którzy mieli mniejsze zaufanie do SI i byli bardziej zaangażowani w pracę z językiem (...) dostarczyli kod z mniejszą liczbą podatności.

Być może zatem to nie asystenci są problemem, lecz zbytnie zaufanie do nich ze strony samych programistów. Z pewnością będzie to przedmiotem dyskusji w ciągu najbliższych miesięcy i lat. Zwłaszcza że kwestia bezpieczeństwa to nie jedyny problem z asystentami SI – nie mniejsze kontrowersje budzą zagadnienia licencyjne kodu, na których trenowane są modele.

<p>Loading...</p>