З масовим впровадженням інструментів на базі штучного інтелекту з’явилася ще як мінімум одна загроза кібербезпеці – асистенти з кодування, які використовують у роботі генеративний ШІ. Як вийшло, що ці застосунки, які мають виконувати функцію помічників, стають проблемою для бізнесу і чи можна з цим щось зробити?
Що таке ШІ-інструменти для розробників
Основне їх призначення можна описати як персоналізована інтуїтивно зрозуміла допомога в кодуванні. Попри відмінності у функціональності, всі вони допомагають писати код швидше та з меншими зусиллями. Розробники цих інструментів вихваляються цифрами на кшталт прискорення кодування на 55% (реальна цитата з блогу про GitHub Copilot), хоча насправді результативність їхньої допомоги дещо скромніша. Проте багато хто з розробників активно ними користується.
Що вміють генератори коду з ШІ:
- завершують фрагменти коду (автокомпліт), зберігаючи стилістику;
- прискорюють процес написання шаблонного коду;
- генерують unit-тести на основі наявного коду;
- додають коментарі та готують документацію;
- спрощують код, виправляють помилки та багато іншого.
Таким чином, ШІ-інструменти економлять час та оптимізують працю розробників. Але ці можливості значно обмежені складністю і специфікою коду: що більше рутинних завдань, то яскравіше виражений ефект і навпаки. Тому закономірно виникає питання: чи варто користуватися ШІ-асистентами для генерації коду з урахуванням потенційних безпекових ризиків?
Що не так із нейромережами для розробників
Наприкінці минулого року CEO GitHub повідомив, що кількість платних передплатників Copilot, одного з найпопулярніших генераторів коду з ШІ, досягла мільйона, а організацій, які його використовують, – 37 тисяч. Проте про недосконалість і навіть небезпеку подібних продуктів говорять все частіше попри великий інтерес до них.
Так, сервіс GitClear проаналізував 153 мільйони рядків створеного за допомогою Copilot коду і з’ясував, що його якість погіршується. А проблеми з безпекою цього асистента почалися ще раніше. У 2021 році, коли продукт перебував у стадії бета-тестування, фахівці інженерної школи Тандона Нью-Йоркського університету з'ясували, що у 40% згенерованого ним коду містяться помилки чи вразливості.
Для навчання ШІ-асистентів із кодування зазвичай використовуються репозиторії з відкритим вихідним кодом. Відповідно, згенерований ними код може мати ті самі проблеми, що і код, написаний людиною.
Питання безпеки стосується не тільки Copilot, але й інших подібних до нього інструментів – як комерційних, так і з відкритим кодом. Зокрема, йдеться про Tabnin, CodeWhisperer, IntelliCode, PolyCoder та інші.
У чому полягає проблема їх використання?
Передають код стороннім компаніям. Можуть читати захищений авторським правом код в інтегрованому середовищі розробки (IDE) і передавати його зловмисникам.
Розкривають конфіденційні дані. Зокрема, йдеться про паролі й токени доступу до коду чи середовища розробки або тестування.
Підвищують комплаєнс-ризики. Можуть запозичувати фрагменти коду сторонніх організацій, що може призвести до звинувачень у крадіжці інтелектуальної власності.
Сприяють поширенню тіньових IT. Розробники не вбачають проблем у використанні ШІ-помічників, а перед тим, як знайдуть один ідеальний інструмент, тестують кілька інших. Компанії складно відстежувати подібну діяльність і забезпечувати повноцінний захист від загроз.
Можуть генерувати шкідливий код. Імовірність невелика, але все залежить від навчальної бази. Ніхто не може гарантувати, що в ній були відсутні фрагменти шкідливого коду.
Галюцинують. Загрожує появою залежностей, яких насправді не існує. Зловмисники можуть їх виявити та використати для запуску шкідливого коду.
Управління ризиками при використанні ШІ-асистентів із кодування
Те, що ШІ-помічники в кодуванні не є повністю безпечними, розуміють навіть їх розробники. Наприклад, компанія Amazon у своєму асистенті CodeWhisperer реалізувала функцію сканування коду. Вона оцінює код, знаходить у ньому вразливості, що важко виявляються вручну, і відразу ж пропонує способи їх усунення.
Також CodeWhisperer сканує на безпеку файли проєкту, щоб ще до релізу виявити такі проблеми, як вразливість міжсайтового скриптингу або відкритий доступ до певних типів файлів.
Рішення Amazon по-своєму спірне, адже в ньому знову залучений штучний інтелект з усіма можливими негативними наслідками. Тому розгляньмо альтернативні способи більш безпечного використання ШІ-помічників для розробників.
Регламентування
Регулярні перевірки й тестування коду мають стати частиною внутрішньої практики розробки ПЗ. Бажано закріпити ці принципи у внутрішніх регламентах підприємства.
Інформування
Команди мають бути обізнані про потенційні ризики та погрози, які несуть ШІ-інструменти для кодування, і постійно актуалізувати свої знання у цьому питанні. На ринку чи не щотижня з'являються нові помічники, відповідно, змінюється і карта погроз.
Незалежні перевірки
Для проведення аудитів безпеки потрібні виключно сторонні інструменти для сканування коду, згенерованого за допомогою ШІ. Робити аудит доцільно відразу після написання коду, щоб не допустити подальшого поширення вразливостей. Також є сенс реалізувати автоматизоване тестування безпеки перед розгортанням застосунків.
Захист інтелектуальної власності
Важливо не дозволяти ШІ-помічникам навчатися на коді, написаному у вашій компанії. Для цього необхідно ретельно задокументувати політики їхнього використання та донести їх до розробників.
Як використовують ШІ-інструменти з кодування українські розробники
Наші розробники не залишаються осторонь від глобальних трендів і так само активно користуються ШІ-асистентами, часто не обмежуючи себе лише одним інструментом. Так робить і Євгеній Павленко, Back-end developer в Echizh:
«Зараз ми використовуємо для написання коду сервіс blackbox.ai, що є більш вузькоспеціалізованими, а також ChatGPT та Gemini. У роботі ми не стикалися з випадками крадіжки коду, але зрозуміло, що тут все залежить від методів і сфери використання штучного інтелекту. Загалом ШІ прискорює процес розробки програмного забезпечення і допомагає нашій компанії економити час розробників, а значить і витрати».
Досвідом роботи з помічниками у кодуванні й іншими інструментами для автоматизації ділиться Наталія Кулиба, регіональний директор Viseven:
«Ми використовуємо різні інструменти: інтегроване середовище розробки, текстові редактори, системи керування версіями, тестувальні фреймворки. Вони мають як потенційні переваги, так і певні ризики. Наприклад, можуть значно полегшити та прискорити процес розробки, покращити якість коду та забезпечити більшу стабільність програмного забезпечення. Однак недбале використання чи налаштування цих інструментів може призвести до потенційних проблем безпеки, таких як вразливості в ПЗ і можливостей їх використання для хакерських атак».
Андрій Загородній, Project Manager в Echizh, говорить про обережне використання штучного інтелекту, що навчався на фрагментах коду із відкритих репозиторіїв:
«Немає змоги проводити аудит кожної дії з боку ШІ – тут кожна компанія вирішує для себе, які завдання може йому делегувати. Також потрібно враховувати, що більшість розробників і без того частково використовує скрипти. Це може бути не тільки код, згенерований ШІ, напрацьований власний код чи написаний колегою, а також приклади інших робіт, що зберігаються у відкритих репозиторіях. Тут ми відштовхуємося від кінцевої мети – нам потрібно створити оригінальний робочий проєкт. Тому ми хоча і контролюємо процес роботи з кодом, але загалом покладаємося в питаннях безпеки на розробників».
Наталія Кулиба вважає суперечливим питання безпеки вільного доступу ШІ-інструментів до репозиторіїв із кодом:
«З одного боку, доступ до репозиторіїв може допомогти у поліпшенні інструментів для розробки, аналізувати та виявляти помилки й недоліки. З іншого – може викликати питання про приватність і конфіденційність, особливо коли база даних містить конфіденційну інформацію. Важливо мати чіткі політики щодо доступу до даних і забезпечити відповідні заходи безпеки, щоб уникнути зловживання або неправомірного використання інформації. Також важливо забезпечити прозорість і визначені межі доступу до даних для всіх зацікавлених сторін».
Про обережне використання генераторів коду на основі ШІ говорить і Сергій Сучок, ментор та автор курсу Unit тестування в Java навчального центру Foxminded:
«Ми суворо регулюємо використання подібних асистентів – дозволений лише Amazon CodeWhisperer. Бездумне використання будь-якого інструменту може призвести до потенційних ризиків, які залежать від рівня кваліфікації користувача та його здатності критично мислити. Тому вибір таких ШІ-генераторів коду контролюється на корпоративному рівні, адже сам код є власністю компанії. Це дозволяє забезпечити безпеку й ефективність використання подібних інструментів. Крім того, оптимальним є зберігання та оброблення даних на серверах, що контролюються компанією, адже це дає змогу уникнути ризиків їх витоку. Використання ж сторонніх серверів є неприйнятним з погляду забезпечення конфіденційності та захисту інтелектуальної власності компанії».
Задля виконання безпекових вимог у Viseven використовують власні методи контролю.
«Ми аналізуємо всі нові інструменти перед початком їх використання. Також дбаємо про загальноприйняті міжнародні політики та стандарти безпеки, які регулюють використання інструментів розробки, проводимо моніторинг процесів для виявлення випадків порушення авторських прав, навчаємо розробників етичного використання ШІ-помічників. Ми розуміємо, що недотримання цих норм може нести потенційні ризики: негативний вплив на репутацію компанії у випадку порушення авторських прав, юридичні наслідки через порушення авторських прав, втрату конкурентної переваги у випадку копіювання кодів наших інноваційних продуктів», – розповідає Наталія Кулиба.
Висновки
ШІ-помічники для генерації коду з високою ймовірністю залишаться в переліку інструментів, якими розробники користуватимуться на постійній основі.
На додаток, за оцінками GitHub, вони можуть збільшити світовий валовий внутрішній продукт на $1,5 трильйона до 2030 року завдяки прискоренню темпів розробки. Однак це не виключає необхідності посилення заходів безпеки. Насамперед завдяки належному нагляду з боку як окремих розробників, які користуються ШІ-асистентами у процесі створення коду, так і бізнесу в цілому.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!