Оскільки штучний інтелект робить розробку програмного забезпечення доступною для всіх, команди безпеки стикаються з новим викликом: захистом додатків, створених не-розробниками з безпрецедентною швидкістю та масштабом.
Що таке Vibe Coding?
Так само, як смартфон зробив кожного цифровим фотографом, vibe coding зробить кожного розробником програмного забезпечення і назавжди змінить індустрію розробки ПЗ.
Андрей Карпати, співзасновник OpenAI та колишній керівник напрямку ШІ в Tesla, запровадив термін “vibe coding” у твіті від 3 лютого 2025 року. “Існує новий вид програмування, який я називаю ‘vibe coding’, де ти повністю віддаєшся відчуттям, приймаєш експоненціальність і забуваєш, що код взагалі існує.” Він переважно висловлював емоційну реакцію на використання ШІ для автоматизації певного процесу, але термін прижився і тепер універсально використовується як загальна назва для програмування, створеного або підтримуваного штучним інтелектом.
There’s a new kind of coding I call “vibe coding”, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper…
— Andrej Karpathy (@karpathy) February 2, 2025
Vibe coding є підмножиною контекстної інженерії. Якщо ви зробите контекст повним і точним, має бути можливо прокласти шлях через контекст для забезпечення точного програмування. Контекст складається з деталей, необхідних для готового коду. Це надається програмістом. Інтерфейс між програмістом і ШІ – природна мова (зазвичай англійська, але не обов’язково).
ШІ використовує можливості великих мовних моделей (LLM) у цьому інтерфейсі, тому vibe coding зазвичай використовує існуючі базові моделі, такі як новіші моделі GPT, Claude або Gemini Pro. Іноді LLM можуть бути інтегровані зі спеціалізованими IDE, такими як VS Code, Cursor та Windsurf. Проте, зрештою, всі проблеми, які досі впливають на LLM (такі як галюцинації та упередженість), також можуть впливати на точність vibe coding.
Vibe coding є новим явищем. Хоча ШІ використовувався в програмах понад 70 років, тепер його можна використовувати для створення абсолютно нових програм. Він має потенціал перевернути всю індустрію розробки програмного забезпечення, але він новий, і, як усі нові розробки, має свої дитячі проблеми. Дитячі проблеми вирішуються з часом, але зараз ми все ще перебуваємо в фазі становлення.
“Vibe coding – це коли ви говорите ШІ, як чат-бот, що ви хочете, щоб ваше програмне забезпечення робило, використовуючи звичайні слова, і він пише код за вас”, – каже Дж. Стівен Ковскі, польовий технічний директор SlashNext. “Це означає, що вам не потрібно знати, як програмувати; ви просто описуєте свою ідею, і ШІ перетворює її на робоче програмне забезпечення.”
Але якщо ви хочете складні або унікальні функції, або якщо ви не перевіряєте роботу ШІ двічі, ви можете зіткнутися з проблемами.
Сильні та слабкі сторони
Найбільша очевидна сила – швидкість. “Vibe coding дає вам масове прискорення при прототипуванні веб-додатків, особливо з простими відомими додатками з низькою до помірної складністю”, – пояснює Джонатан Райн, співзасновник і генеральний директор Nutrient.
Це демократизує процес створення програмного забезпечення. Будь-хто з ідеєю та розумінням того, як ця ідея повинна працювати, може створити робочу програму. Вам більше не потрібно знати мову програмування, вам лише потрібно знати, як використовувати ШІ – що само по собі є непростим завданням.
Швидкість і демократизація означають більше коду за меншу вартість – тому справжня сила полягає в економіці vibe coding. Він тут, і його треба використовувати, щоб конкуренти не отримали конкурентної переваги.
Проблема в тому, що ці сильні сторони несуть власні слабкості. “Демократизація” є потенційною слабкістю. “Існують спільноти та проекти з відкритим кодом, присвячені наданню vibe-кодерам файлів конфігурації, які можуть покращити ефективність їхніх інструментів ШІ”, – пояснює Каушик Девіредді, старший менеджер продукту в Deepwatch.
“Vibe-кодери, які можуть бути з нетехнічних ролей, постійно шукають нові файли конфігурації. Результатом є можливість для зловмисників публікувати та сприяти прийняттю шкідливих конфігураційних файлів. Це створює абсолютно новий вектор атак, що проявляється на рівні логіки додатків – що є особливо складною областю для захисту.”
Швидкість також може бути слабкістю. “З негативного боку”, – каже Елліс, – “ШІ досить добре справляється з отриманням ‘90% нормального’ рішення – але погані речі, як правило, трапляються в 10%. Уразливості існують як імовірнісна функція від кількості рядків коду. Ми виробляємо все більш високу швидкість рядків коду – і більше коду означає більше уразливостей. На додаток до цього, швидкість є природним ворогом якості, а безпека є дитиною якості.”
Ніколь Каріньян, віце-президент стратегії безпеки та ШІ та польовий CISO в Darktrace, також стурбована тим, що швидкість і легкість можуть коштувати безпеки. “Vibe coding дозволяє неекспертним професіоналам розробляти та створювати прототипи, але код, який він виробляє, не буде за своєю суттю безпечним і може внести уразливості в системи.”
Вона задається питанням, чи створить ця практика більше роботи для команд безпеки в огляді коду, ніж заощадить у часі розробки або прототипування.
Інті Де Сьокелер, головний хакер-офіцер краудсорсингової фірми Intigriti, підтверджує цю комбінацію сильних і слабких сторін у поточному vibe coding. “Vibe coding корисний, але це не магічне рішення”, – каже він. “Я використовував його для створення невеликого хакерського інструменту всього за один день, на що у мене пішли б тижні самостійно. Це також було чудово для виправлення простих помилок або створення швидких прототипів. Але коли проект стає більшим і складнішим, ШІ починає робити більше помилок. У цьому моменті може знадобитися стільки ж часу, щоб направляти та виправляти ШІ, скільки потрібно було б для програмування з нуля.”
Робота з vibe coding
Оскільки vibe coding з усіма його поточними недосконалостями тут, і ці недосконалості зменшаться з часом, як це відбувається з усіма новими технологіями, нам потрібно впоратися з тим, що ми маємо, і підготуватися до того, що прийде. Це буде не менше, ніж революція для індустрії програмного забезпечення.
Є ті, хто визнає і приймає цю реальність. “Ви можете робити речі швидше. Ви можете бути більш амбітними щодо речей, які можете створити, і можете створити їх самостійно та отримувати більше задоволення від цього. Ви можете робити речі, які потребували б команди або команди команд розробників”, – коментує Джин Кім, автор і колишній незалежний директор Energy Sector Security Consortium. “Є щось настільки магічне в цьому, і для мене це дивовижний час, щоб бути живим. Я безумовно, і я не думаю, що це повністю наївно, оптимістичний щодо того, що це робить з нашою професією.”
Це не означає, що будь-хто може негайно отримати хороші результати коду через vibe coding. Якість вихідних даних прямо пропорційна якості вхідних підказок, пояснює Пукар Хамал, засновник і генеральний директор SecurityPal.AI.
“Вам потрібно розуміти основи розробки програмного забезпечення. Вам потрібно знати, що таке алгоритми і як вони працюють, і як різні рядки коду працюють разом для створення хорошого програмного забезпечення; і ви повинні мати можливість формулювати свої підказки чітко та точно відповідно до ваших намірених результатів. Якщо ви можете зробити все це, ви, швидше за все, отримаєте кращий код з меншою кількістю помилок.”
Якщо ви не розумієте, як програмне забезпечення принципово працює, продовжує він, “є ймовірність, що коли ви попросите LLM написати додаток для генерації номерів лотереї, він, швидше за все, буде дуже багатослівним і потенційно матиме 150 рядків коду або більше. У нас є термін, який описує цю переважну кількість низькоякісного згенерованого виводу, який зазвичай походить від відсутності суворості введення: ‘AI slop’.”
Але ви можете бути досвідченим у програмуванні і все одно не впоратися з vibe coding. Джонатан Ренде, директор з продукту в Checkmarx, описує внутрішній експеримент, проведений одним із його керівників інженерії. “Він обійшов усіх різних керівників в організації і поставив їм завдання, виконання якого передбачало vibe coding. Через 45 хвилин він повернувся. Ті, хто розумів загальну картину того, як певні речі в vibe coding повинні поєднуватися, зробили величезну роботу. Ті, хто просто намагався застосувати свої старі методи програмування, не дуже.”
Це були всі інженери та розробники. Деякі прийняли майбутнє, інші просто намагалися повторити минуле, але швидше. “Ті, хто використовував vibe coding як новий інструмент для використання новим способом, будуть добре справлятися, але інші стануть менш релевантними.” Це виклик для всіх програмістів сьогодні – навчитися використовувати vibe coding як новий інструмент зі своїми правилами взаємодії, або залишитися осторонь, оскільки буде менший попит на програмістів просто через чисту швидкість vibe coding, використовуваного ефективно.
Ми перебуваємо в цій перехідній фазі. Vibe coding все ще потребує багато ручного втручання для мінімізації властивих проблем з LLM, таких як галюцинації та упередженість. “Є властиві проблеми”, – каже Кім. “Це робота розробника – переконатися, що ШІ не викликає функції, які не існують – що може статися. Ті ж інженерні навички, які ми завжди використовували, тепер ще більш важливі, тому що ШІ посилює сильні та слабкі сторони, які ми вже маємо.”
Ренде погоджується. “LLM стануть кращими з часом, і буде менше галюцинацій і більше автоматизованої валідації.” Але зараз найкращий спосіб запобігти або обмежити галюцинації – через більш точні підказки. “Чим краще питання, тим краща відповідь; а потім можливість перевіряти та валідувати якнайкраще. Це ключі прямо зараз: як ви запитуєте і як ви валідуєте.”
Проблема зараз полягає в тому, що ШІ зазвичай описується як імовірнісний, тоді як традиційне програмування є детерміністичним. Нам потрібно змінити наш підхід від роботи з імовірністю, а не детермінізмом. Але зміни вже відбуваються.
Кібербезпека додатків, створених через Vibe coding
Основні загрози безпеки
Швидке поширення vibe coding створює унікальні виклики для кібербезпеки. Коли створення коду стає доступним для широкого кола користувачів без глибоких технічних знань, ризики безпеки зростають експоненціально.
Найпоширеніші уразливості:
- Небезпечні практики аутентифікації та авторизації. ШІ може генерувати код з жорстко закодованими паролями, слабкими алгоритмами хешування або неправильною реалізацією сесій. Наприклад, LLM може запропонувати простий MD5 для хешування паролів замість сучасних bcrypt або Argon2.
- SQL-ін’єкції та NoSQL-ін’єкції. Vibe coding часто генерує динамічні запити до баз даних без належної валідації вхідних даних. ШІ може створити код, який безпосередньо вставляє користувацький ввід у SQL-запити, відкриваючи шлях для атак ін’єкцій.
- Небезпечне управління залежностями. ШІ може рекомендувати застарілі або скомпрометовані бібліотеки, особливо коли треба швидко вирішити конкретну задачу. Користувачі без досвіду можуть не перевіряти безпеку підключених компонентів.
- Недостатня валідація даних. Код, згенерований ШІ, часто не включає належну перевірку вхідних даних, що може призвести до XSS-атак, переповнення буферів або інших атак через маніпулювання даними.
- Проблеми з конфігурацією безпеки. ШІ може генерувати код з небезпечними налаштуваннями за замовчуванням – відкритими портами, надмірними дозволами або неправильно налаштованими заголовками безпеки.
Читайте також: ТОП-10 найбільш небезпечних помилок програмування
Специфічні ризики vibe coding
- “Копіпаст-культура” стає ще небезпечнішою, коли ШІ генерує код на основі непевних джерел або застарілих патернів безпеки. Користувачі можуть не розуміти, що саме робить згенерований код.
- Відсутність контексту безпеки – ШІ може не враховувати специфічні вимоги безпеки конкретної організації або галузі, створюючи код, який не відповідає корпоративним стандартам або регуляторним вимогам.
- Хибне відчуття безпеки виникає, коли команди покладаються на ШІ як на експерта з безпеки, не розуміючи обмежень моделей і необхідності додаткової перевірки.
Стратегії захисту
- Автоматизоване сканування безпеки має стати обов’язковим для всього коду, згенерованого через vibe coding. Інструменти статичного аналізу коду (SAST) та динамічного тестування безпеки (DAST) повинні інтегруватися в процес розробки з самого початку.
- Шаблони безпечного коду. Організації повинні створити внутрішні шаблони та конфігурації для ШІ, які включають кращі практики безпеки за замовчуванням. Це може включати предналаштовані промпти з вимогами безпеки.
- Освіта користувачів стає критично важливою. Навіть якщо співробітники не є професійними розробниками, вони повинні розуміти базові принципи безпеки та розпізнавати потенційно небезпечний код.
- Багаторівневий огляд коду. Кожен додаток, створений через vibe coding, повинен проходити обов’язковий огляд від експертів з безпеки перед розгортанням у продакшні.
- Принцип мінімальних привілеїв має застосовуватися до всіх додатків, незалежно від способу їх створення. Код, згенерований ШІ, не повинен автоматично отримувати широкі дозволи.
Рекомендації для організацій
- Створіть політики безпеки для vibe coding, які включають обов’язкові перевірки безпеки, затверджені конфігурації ШІ та процедури для огляду згенерованого коду.
- Інвестуйте в інструменти автоматизації безпеки, які можуть інтегруватися з популярними платформами vibe coding та надавати миттєвий зворотний зв’язок про потенційні проблеми безпеки.
- Розробіть внутрішні “безпечні промпти” – набори інструкцій для ШІ, які автоматично включають вимоги безпеки в процес генерації коду.
- Створіть команди гібридної безпеки, які поєднують експертів з кібербезпеки та фахівців з ШІ для кращого розуміння ризиків та можливостей vibe coding.
Успішне впровадження vibe coding вимагає балансу між швидкістю інновацій та надійністю безпеки. Організації, які зможуть забезпечити цей баланс, отримають конкурентну перевагу у цифровому майбутньому.
Підсумок
Чи буде менше програмістів у майбутньому vibe coding? Так і ні. В одному сенсі, кожен стане розробником, тому їх буде більше. Співробітники більше не будуть залежати від подачі невеликого запиту до інженерії з подальшим невизначеним очікуванням відповіді – вони створюватимуть власний код за хвилини, а не чекатимуть тижнями. Це справді захоплюючий елемент vibe coding.
Але буде менше спеціалізованих або штатних професійних програмістів, які працюють над великомасштабними, складними додатками. Одна людина виконуватиме роботу багатьох, швидше та ефективніше. І буде менший акцент на творчі навички цього програміста. Майстерність у процесі програмування стане зайвою. Творчість буде обмежена ідеєю.
Бізнес існує для створення прибутку, а не для працевлаштування людей. Творчість буде зведена до визначення результатів, тоді як ШІ виконуватиме створення.
Сьогоднішні творці повинні будуть зробити цей перехід або залишитися осторонь. Це застосується в відносно короткостроковій перспективі до всіх поточних “творців” (включаючи програмістів через vibe coding, журналістів через створення контенту та графічних художників через генерацію зображень), і навіть бариста через поєднання робототехніки та ШІ в довгостроковій перспективі. Це станеться через чисту рушійну силу бізнес-економіки. Любіть це чи ненавидьте, але переборіть це. Або бігти з вітром, або боротися з ним і зазнати невдачі.


