Jak wynika z badania, AI pomaga programistom tworzyć kod, który jest bardziej podatny na błędy
Informatycy z Uniwersytetu Stanforda odkryli, że programiści, którzy przyjmują pomoc od narzędzi AI, takich jak Github Copilot, produkują mniej bezpieczny kod niż ci, którzy działają bez takiego wsparcia.
W pracy zatytułowanej „Do Users Write More Insecure Code with AI Assistants?”, specjaliści ze Stanford Neil Perry, Megha Srivastava, Deepak Kumar i Dan Boneh odpowiadają na to pytanie twierdząco. Co gorsza, odkryli oni, że pomoc AI ma tendencję do łudzenia deweloperów co do jakości ich wyników.
„Odkryliśmy, że uczestnicy z dostępem do asystenta AI często produkowali więcej błędów bezpieczeństwa niż ci bez dostępu, ze szczególnym uwzględnieniem szyfrowania ciągów znaków i funkcji SQL injection” – stwierdzają autorzy w swojej pracy. „Co zaskakujące, odkryliśmy również, że uczestnicy, którym zapewniono dostęp do asystenta AI, byli bardziej skłonni uwierzyć, że napisali bezpieczny kod niż osoby bez dostępu do asystenta AI”.
Wcześniej badacze z NYU wykazali w eksperymentach prowadzonych w różnych warunkach, że sugestie programistyczne oparte na AI są często niezabezpieczone. Autorzy ze Stanford wskazują na pracę badawczą z sierpnia 2021 roku zatytułowaną „Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions”, w której stwierdzono, że biorąc pod uwagę 89 scenariuszy, około 40 procent programów komputerowych wykonanych z pomocą Copilota miało potencjalnie możliwe do wykorzystania luki.
Naukowcy ze Stanforda przytaczają również kolejne badania przeprowadzone przez tych samych naukowców z NYU, „Security Implications of Large Language Model Code Assistants: A User Study”, jako jedyne porównywalne badanie z udziałem użytkowników, o którym wiedzą. Zauważają oni jednak, że ich praca różni się, ponieważ skupia się na modelu codex-davinci-002 OpenAI, a nie na mniej potężnym modelu codex-cushman-001 OpenAI, z których oba odgrywają rolę w GitHub Copilot, który sam jest precyzyjnie dostrojonym potomkiem modelu językowego GPT-3.
Ponadto, badanie Stanforda dotyczy wielu języków programowania (Python, Javascript i C), podczas gdy artykuł „Security Implications…” skupia się tylko na funkcjach w języku programowania C. Badacze ze Stanford sugerują, że niejednoznaczne wyniki przedstawione w artykule „Security Implications” mogą wynikać z wąskiego skupienia się na języku C, który według nich był jedynym językiem w ich szerszym badaniu z mieszanymi wynikami.