Site icon Pingvin.Pro

Вчені довели, що допомога штучного інтелекту шкодить програмістам у написанні коду

допомога штучного інтелекту

Вчені зі Стенфордського університету виявили, що програмісти, які використовують інструменти ШІ (штучний інтелект), як-от Github Copilot, створюють менш безпечний код, ніж ті, хто не використовує. У статті під назвою «Чи пишуть користувачі більш небезпечний код за допомогою помічників штучного інтелекту?» (Do Users Write More Insecure Code with AI Assistants?), Стенфордські науковці Ніл Перрі (Neil Perry), Мегха Срівастава (Megha Srivastava), Діпак Кумар (Deepak Kumar) і Ден Боне (Dan Boneh) відповіли на це запитання ствердно. Вони виявили, що допомога штучного інтелекту, зазвичай, вводить розробників в оману щодо якості їхніх результатів.




«Ми виявили, що учасники, які мали доступ до помічника зі штучним інтелектом, часто створювали більше вразливостей у безпеці, ніж ті, хто не мав доступу, з особливо значними результатами для шифрування рядків і впровадження SQL», – зазначили автори у своїй статті. «Дивно, але ми також виявили, що учасники, які отримали доступ до помічника зі штучним інтелектом, частіше вірили, що вони написали безпечний код, ніж ті, хто не мав доступу до такого помічника».

Чому допомога штучного інтелекту шкодить програмістам у написанні коду?

Раніше дослідники Нью-Йоркського університету показали, що пропозиції програмування на основі ШІ часто небезпечні в експериментах за різних умов. Автори Стенфордського університету вказують на дослідницьку статтю від серпня 2021 року під назвою «Заснув за клавіатурою? Оцінка безпеки внесків коду GitHub Copilot» (Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions). У ній було виявлено, що з урахуванням 89 сценаріїв близько 40% компʼютерних програм, створених за допомогою Copilot, потенційно мали вразливості, які можна використовувати.

За словами авторів Стенфордського університету, це дослідження обмежене за обсягом. Воно розглядає лише обмежений набір підказок, що відповідають 25 уразливостям і лише трьом мовам програмування: Python, C і Verilog.

Науковці Стенфордського університету також посилаються на подальше дослідження деяких із тих самих керівників Нью-Йоркського університету «Вплив на безпеку помічників коду великої мовної моделі: дослідження користувачів» (Security Implications of Large Language Model Code Assistants: A User Study) як єдине подібне дослідження користувачів, про яке їм відомо. Однак, вони відзначають, що їхня робота відрізняється. Вона зосереджена на моделі codex-davinci-002 OpenAI, а не на менш потужній моделі codex-cushman-001 OpenAI, обидві з яких відіграють роль у GitHub Copilot, який сам є добре налаштованим нащадком моделі мови GPT-3.

Крім того, у дослідженні розглядаються різні мови програмування (Python, Javascript і C). А от документ «Вплив на безпеку…» зосереджується лише на функціях мови програмування C. Дослідники Стенфордського університету припускають, що непереконливі висновки, наведені в статті «Вплив на безпеку…», можуть виходити з вузького фокусування на C. За їхніми словами, це була єдина мова, яка в ширшому дослідженні показала неоднозначні результи.

Висновок дослідників

У дослідженні взяли участь 47 осіб із різним рівнем досвіду, зокрема студенти, аспіранти і професіонали галузі. Учасників попросили написати код у відповідь на пʼять запитів. Зробити це потрібно було за допомогою автономної програми Electron на основі React, яку контролює адміністратор дослідження. Одним із запитів було: «Напишіть дві функції на Python, де одна шифрує, а інша розшифровує заданий рядок за допомогою заданого симетричного ключа». Ті, хто покладався на допомогу штучного інтелекту, мали більше шансів написати неправильний і небезпечний код (67%). А група, яка працювала без автоматизованої допомоги впоралася краще (79%).

Автори дійшли до висновку, що до інструментів ШІ слід ставитися з обережністю. Вони можуть ввести в оману недосвідчених розробників і створити вразливі місця в безпеці. Але вони сподіваються, що їхні висновки призведуть до покращення способу розробки таких інструментів. Адже вони мають потенціал зробити програмістів більш продуктивними, знизити барʼєри для входу та зробити розробку програмного забезпечення більш доступним.