Badania opublikowane w 2025 roku ujawniają, że generowany przez sztuczną inteligencję kod komputerowy często zawiera odniesienia do nieistniejących bibliotek zewnętrznych, co stwarza możliwości ataków na łańcuch dostaw oprogramowania. Wykorzystując 16 popularnych modeli językowych, naukowcy przeanalizowali 576 000 próbek kodu, z których 440 000 zawierało tzw. „halucynacje” pakietów.
- Badania z 2025 roku ujawniają, że kod generowany przez sztuczną inteligencję często zawiera odniesienia do nieistniejących bibliotek zewnętrznych.
- 21% zależności w modelach open source prowadzi do nieistniejących bibliotek, co stwarza ryzyko ataków na łańcuch dostaw oprogramowania.
- Ataki na podstawie pomyłki w zależnościach mogą prowadzić do zainstalowania złośliwych pakietów o identycznych nazwach jak legalne.
- W badaniach przeprowadzono 30 testów, generując 19 200 próbek kodu w każdym teście, z czego 19,7% odniesień dotyczyło nieistniejących pakietów.
- 43% halucynacji pakietów powtarzało się w ponad 10 zapytaniach, co wskazuje na ich powtarzalność.
Halucynacje pakietów
W badaniach określono, że 21% zależności w modelach open source prowadziło do nieistniejących bibliotek. Halucynacje te są definiowane jako odniesienia do pakietów, które nie istnieją w rzeczywistości. Zależności są kluczowymi komponentami kodu, które są niezbędne do prawidłowego działania innych fragmentów oprogramowania.
Ataki na łańcuch dostaw
Nieistniejące zależności mogą prowadzić do tzw. ataków na podstawie pomyłki w zależnościach. Ataki te polegają na publikowaniu złośliwych pakietów o nazwach identycznych jak legalne, ale z wyższą wersją. Oprogramowanie, które polega na takim pakiecie, może wybrać złośliwą wersję, co stwarza zagrożenie dla użytkowników.
Badania i wyniki
W badaniach przeprowadzono 30 testów, generując 19 200 próbek kodu w każdym teście. Z 2,23 miliona odniesień do pakietów, 440 445 wskazywało na nieistniejące pakiety, co stanowi 19,7% wszystkich odniesień. Wśród tych halucynacji, 205 474 miało unikalne nazwy pakietów.
Powtarzalność halucynacji
Badania wykazały, że 43% halucynacji pakietów powtarzało się w ponad 10 zapytaniach. Naukowcy zauważyli, że 58% halucynowanych pakietów było powtarzanych więcej niż raz w 10 iteracjach, co sugeruje, że nie są to przypadkowe błędy, ale powtarzalne zjawisko, które może być wykorzystane przez złośliwych aktorów.
Różnice między modelami
W badaniach zauważono różnice w halucynacjach między modelami językowymi i językami programowania. Modele open source, takie jak CodeLlama i DeepSeek, generowały średnio prawie 22% halucynacji, podczas gdy modele komercyjne, takie jak ChatGPT, tylko nieco ponad 5%. Kod napisany w Pythonie miał mniej halucynacji niż kod w JavaScript, co może być związane z różnicami w ekosystemach tych języków.
Wnioski i przyszłość
Odkrycia te podkreślają problematyczność zaufania do wyników generowanych przez modele językowe. W obliczu prognoz, że w ciągu pięciu lat 95% kodu będzie generowane przez sztuczną inteligencję, istotne jest, aby programiści byli świadomi zagrożeń związanych z halucynacjami pakietów.