Badanie wpływu asystentów AI, takich jak GitHub Copilot, na bezpieczeństwo kodu

Grupa badaczy z Uniwersytetu Stanforda badała wpływ korzystania z inteligentnych asystentów podczas pisania kodu na pojawianie się luk w kodzie. Rozważaliśmy rozwiązania oparte na platformie uczenia maszynowego OpenAI Codex, takie jak GitHub Copilot, które pozwalają generować dość złożone bloki kodu, aż po gotowe funkcje. Obawy są związane z faktem, że skoro do trenowania modelu uczenia maszynowego wykorzystano prawdziwy kod z publicznych repozytoriów GitHub, w tym zawierających luki, zsyntetyzowany kod może powtarzać błędy i sugerować kod zawierający luki, a także nie uwzględnia konieczność przeprowadzania dodatkowych kontroli podczas przetwarzania danych zewnętrznych.

W badaniu wzięło udział 47 ochotników z różnym doświadczeniem w programowaniu – od studentów po profesjonalistów z dziesięcioletnim doświadczeniem. Uczestnicy zostali podzieleni na dwie grupy – eksperymentalną (33 osoby) i kontrolną (14 osób). Obie grupy miały dostęp do dowolnych bibliotek i zasobów internetowych, w tym do korzystania z gotowych przykładów ze Stack Overflow. Grupa eksperymentalna otrzymała możliwość skorzystania z asystenta AI.

Każdy uczestnik otrzymał 5 zadań związanych z pisaniem kodu, w którym potencjalnie łatwo popełnić błędy prowadzące do podatności. Na przykład były to zadania dotyczące pisania funkcji szyfrujących i deszyfrujących, używania podpisów cyfrowych, przetwarzania danych związanych z tworzeniem ścieżek do plików lub zapytań SQL, manipulowania dużymi liczbami w kodzie C, przetwarzania danych wejściowych wyświetlanych na stronach internetowych. Aby rozważyć wpływ języków programowania na bezpieczeństwo kodu uzyskiwanego podczas korzystania z asystentów AI, zadania obejmowały języki Python, C i JavaScript.

W rezultacie stwierdzono, że uczestnicy, którzy korzystali z inteligentnego asystenta AI opartego na modelu codex-davinci-002, wytwarzali znacznie mniej bezpieczny kod niż uczestnicy, którzy nie korzystali z asystenta AI. Ogólnie tylko 67% uczestników w grupie korzystającej z asystenta AI było w stanie podać poprawny i bezpieczny kod, podczas gdy w drugiej grupie odsetek ten wyniósł 79%.

Jednocześnie wskaźniki samooceny uległy odwróceniu – uczestnicy korzystający z asystenta AI wierzyli, że ich kod będzie bezpieczniejszy niż uczestników z drugiej grupy. Ponadto zauważono, że uczestnicy, którzy mniej ufali asystentowi AI i spędzali więcej czasu na analizowaniu i wprowadzaniu zmian w podanych wskazówkach, mieli mniej luk w kodzie.

Na przykład kod skopiowany z bibliotek kryptograficznych zawierał bezpieczniejsze domyślne wartości parametrów niż kod sugerowany przez asystenta AI. Ponadto podczas korzystania z asystenta AI naprawiono wybór mniej niezawodnych algorytmów szyfrowania i brak uwierzytelnienia zwracanych wartości. W zadaniu manipulacji liczbami C kod napisany za pomocą asystenta AI miał więcej błędów skutkujących przepełnieniem liczb całkowitych.

Dodatkowo można odnotować podobne badanie przeprowadzone przez grupę z New York University w listopadzie z udziałem 58 studentów, których poproszono o zaimplementowanie struktury do przetwarzania listy zakupów w języku C. Wyniki pokazały znikomy wpływ asystenta AI na bezpieczeństwo kodu – użytkownicy, którzy korzystali z asystenta AI popełniali średnio o 10% więcej błędów związanych z bezpieczeństwem.

Badanie wpływu asystentów AI, takich jak GitHub Copilot, na bezpieczeństwo kodu


Źródło: opennet.ru

Dodaj komentarz