Лідери думок
Код, згенерований штучним інтелектом, прийшов, щоб залишитися. Чи менш безпечні ми через це?

Програмування в 2025 році не полягає в тому, щоб трудитися над фрагментами чи витрачати багато часу на виправлення помилок. Це зовсім інша атмосфера. Код, згенерований штучним інтелектом стане більшістю коду в майбутніх продуктах і став необхідним інструментом для сучасних розробників. Відомий як “вайб-кодіング”, використання коду, згенерованого інструментами типу Github Copilot, Amazon CodeWhisperer і Chat GPT, стане нормою, а не винятком при скороченні часу розробки та збільшенні ефективності. Але чи ризикує зручність коду, згенерованого штучним інтелектом, більшою загрозою? Чи збільшує генеративний штучний інтелект уразливості в безпеці архітектури чи є способи для розробників “вайб-кодіング” у безпеці?
“Інциденти безпеки внаслідок уразливостей у коді, згенерованому штучним інтелектом, є однією з найменше обговорюваних тем сьогодні”, – сказав Санкет Саурав, засновник DeepSource. “Все ще багато коду, згенерованого платформами типу Copilot або Chat GPT, не проходять перевірку людиною, і порушення безпеки можуть бути катастрофічними для компаній, які постраждали.”
Розробник відкритої платформи, яка використовує статичний аналіз для якості коду та безпеки, Саурав згадав хакерську атаку на SolarWinds у 2020 році як приклад “події вимирання”, з якою компанії можуть зіткнутися, якщо вони не встановили належні засоби безпеки при використанні коду, згенерованого штучним інтелектом. “Статичний аналіз дозволяє ідентифікувати небезпечні шаблони коду та погані практики програмування”, – сказав Саурав.
Атака через бібліотеку
Загрози безпеки коду, згенерованого штучним інтелектом, можуть мати винахідливі форми і бути спрямовані на бібліотеки. Бібліотеки в програмуванні є корисним повторно використовуваним кодом, який розробники використовують для збереження часу при написанні.
Вони часто розв’язують регулярні завдання програмування, такі як керування взаємодією з базами даних, і допомагають програмістам уникнути переписування коду з нуля.
Одна з таких загроз проти бібліотек називається “галюцинаціями”, коли код, згенерований штучним інтелектом, демонструє уразливість через використання вигаданих бібліотек. Інший, більш недавній тип атак на код, згенерований штучним інтелектом, називається “слопскватинг”, коли атакувальники можуть безпосередньо націлюватися на бібліотеки для проникнення в базу даних.
Прямолінійне звернення до цих загроз може потребувати більшої уваги, ніж це може бути передбачено терміном “вайб-кодіング”. Виступаючи зі свого офісу в Université du Québec en Outaouais, професор Рафаель Хурі довгий час слідкує за розвитком безпеки коду, згенерованого штучним інтелектом, і впевнений, що нові техніки покращать його безпеку.
У статті 2023 року професор Хурі дослідив результати запитів до ChatGPT на генерацію коду без будь-якого додаткового контексту чи інформації, що призвело до небезпечного коду. Це були ранні дні Chat GPT, і тепер Хурі оптимістично налаштований щодо майбутнього. “Відтоді було багато досліджень, які зараз розглядаються, і майбутнє розглядає стратегію використання LLM, яка могла б привести до кращих результатів”, – сказав Хурі, додавши, що “безпека покращується, але ми не досягли місця, де можна було б давати прямий запит і отримувати безпечний код.”
Хурі продовжував описувати перспективне дослідження, де вони згенерували код і потім надіслали цей код інструменту, який аналізує його на уразливості. Метод, використаний інструментом, називається Finding Line Anomalies with Generative AI (або FLAG для короткості).
“Ці інструменти можуть відправити прапори, які можуть ідентифікувати уразливість у рядку 24, наприклад, яку розробник може потім відправити назад до LLM з інформацією і попросити його розглянути проблему і виправити її”, – сказав він.
Хурі припустив, що цей обмін може бути важливим для виправлення коду, який уразливий до атак. “Це дослідження показує, що за п’ять ітерацій можна зменшити уразливості до нуля.”
Однак метод FLAG не позбавлений проблем, особливо оскільки він може призвести до як хибних позитивів, так і хибних негативів. Крім того, існують обмеження довжини коду, який можуть створити LLM, і акт з’єднання фрагментів може додати ще один рівень ризику.
Залишення людини в циклі
Деякі учасники “вайб-кодіング” рекомендують фрагментувати код і забезпечувати, щоб люди залишилися на передньому плані в найбільш важливих редагуваннях кодової бази. “При написанні коду думайте у термінах комітів”, – сказав Кевін Хоу, керівник інженерії продукції в Windsurf, висловлюючи мудрість малих шматків.
“Розбийте великий проєкт на менші шматки, які зазвичай будуть комітами або запитами на витяг. Нехай агент побудує менший масштаб, одну ізольовану функцію за раз. Це може забезпечити, що вихідний код буде добре протестований і добре зрозумілий”, – додав він.
На момент написання цього тексту Windsurf підійшов до понад 5 мільярдів рядків коду, згенерованого штучним інтелектом (під його попередньою назвою Codeium). Хоу сказав, що найбільш пресингуючим питанням, на яке вони відповідали, було питання, чи розробник був свідомим процесу.
“Штучний інтелект здатний робити багато редагувань у багатьох файлах одночасно, тому як ми можемо забезпечити, щоб розробник фактично розумів і переглядав, що відбувається, а не просто сліпо приймав все?” – запитав Хоу, додавши, що вони вклали багато коштів у UX Windsurf “з великою кількістю інтуїтивних способів залишатися повністю в ладі з тим, що робить штучний інтелект, і зберігати людину повністю в циклі.”
Які є причини, через які, коли “вайб-кодіング” стає більш популярним, люди в циклі повинні бути більш обережними щодо його уразливостей. Від “галюцинацій” до загроз “слопскватингу” виклики реальні, але існують і рішення.
Нові інструменти, такі як статичний аналіз, ітеративні методи вдосконалення типу FLAG, і ретельний дизайн UX показують, що безпека і швидкість не повинні бути взаємовиключними.
Ключ полягає в тому, щоб розробники були зайняті, інформовані та під контролем. З правильними засобами безпеки та ментальністю “довіряй, але перевіряй” кодування з допомогою штучного інтелекту може бути як революційним, так і відповідальним.












