Помічники для написання коду на основі AI, такі як GitHub Copilot, Cursor AI та ChatGPT, швидко перетворилися з просто цікавих «іграшок» на незамінних помічників для сучасних розробників. Недавнє опитування Stack Overflow показало, що понад 76% розробників тепер покладаються на цих помічників, а понад 80% повідомляють про значне підвищення продуктивності завдяки генераторам коду на основі AI та доповненим редакторам. Ці «віртуальні колеги по команді» спрощують складні завдання, оптимізують робочі процеси розробки та суттєво прискорюють терміни реалізації проєктів.
Однак, з кожною інновацією з'являються й нові ризики. Помічники для написання коду на основі AI іноді генерують так звані «галюцинації» — впевнені рекомендації щодо програмних пакетів, які насправді не існують. Дослідження, проведене вченими з Техаського університету в Сан-Антоніо, Університету Оклахоми та Вірджинія-Тек, виявило, що відкриті великі мовні моделі (LLM) генерують такі вигадані пакети з тривожно високою частотою — в середньому близько 21,7% — порівняно з комерційними моделями, де цей показник становить близько 5,2%. Дослідники задокументували понад 200 000 унікальних назв вигаданих пакетів лише в цьому дослідженні, що ілюструє, наскільки поширеною та небезпечною є ця проблема. Це не очевидні помилки; вони часто дуже схожі на справжні пакети, обманюючи навіть досвідчених розробників. Крім того, ці галюцинації мають цікавий міжмовний аспект. Дослідники виявили, що моделі, які генерують код для Python, часто «вигадували» пакети для JavaScript — це тривожний сценарій, враховуючи потенційну плутанину та ризики, які це може створити в різних програмних екосистемах.
Кіберзлочинці швидко скористалися цією вразливістю, запровадивши нову форму атаки, що отримала назву slopsquatting. На відміну від традиційного typosquatting, який використовує помилки друку, slopsquatting базується саме на галюцинаціях AI. Зловмисники відстежують назви пакетів, запропонованих AI, та швидко реєструють ці вигадані залежності у популярних репозиторіях, таких як npm або PyPI. Коли нічого не підозрюючі розробники довіряються рекомендаціям AI та встановлюють ці пакети, вони ненавмисно заносять шкідливий код у своє середовище.
Як приклад - випадок з «huggingface-cli» наприкінці 2023 року. Помітивши, що AI неодноразово пропонує цей неіснуючий пакет, дослідник безпеки зареєстрував його на PyPI як нешкідливий тест. Протягом кількох днів тисячі розробників, включно з командами Alibaba, несвідомо прийняли цей фіктивний пакет у свої критично важливі проєкти. Хоча цей інцидент був нешкідливим, він продемонстрував, наскільки швидко та легко зловмисники можуть використовувати вразливості, створені AI.
Тепер уявіть сценарій, де зловмисники використовують цю тактику в більш зловмисних масштабах. Одна широко розповсюджена рекомендація може швидко скомпрометувати системи по всьому світу, що призведе до значних витоків даних, встановлення постійних бекдорів або серйозних збоїв. Автоматизована природа управління залежностями в сучасних CI/CD-пайплайнах посилює цю загрозу, дозволяючи шкідливому коду швидко поширюватися з середовища розробки в продакшен.
Традиційні практики безпеки часто виявляються неефективними проти цих нових загроз, оскільки багато сканерів залежностей покладаються на дані про історичну репутацію, залишаючись сліпими до нових зареєстрованих шкідливих пакетів. Це підкреслює нагальну потребу в інноваційних, проактивних стратегіях, адаптованих для виявлення та пом'якшення вразливостей, зумовлених AI.
Команди розробників та безпеки повинні впровадити суворі практики для ефективної протидії slopsquatting. По-перше, необхідно ставитися до пропозицій, згенерованих AI, зі скептицизмом — ніколи сліпо не довіряйте запропонованим залежностям. Впроваджуйте строгі процеси перевірки, вручну перевіряючи незнайомі назви пакетів, і постійно використовуйте lockfiles, закріплені версії та криптографічну перевірку хешу. Крім того, підтримка внутрішніх дзеркал або списків дозволених надійних пакетів може значно зменшити ризик появи шкідливих новачків.
Дослідники випробували кілька підходів для зменшення галюцинацій, зокрема Retrieval Augmented Generation (RAG) та кероване точне налаштування (supervised fine tuning). Хоча ці методи значно зменшили кількість галюцинацій (до 85%), вони також призвели до критичного компромісу, негативно вплинувши на загальну якість коду. Це підкреслює потребу в комплексних рішеннях безпеки, здатних проактивно виявляти загрози без шкоди для ефективності розробки.
Навчання та підвищення обізнаності також відіграють вирішальну роль. Чіткі політики повинні вимагати підвищеної пильності та експертної оцінки для будь-яких залежностей, згенерованих AI. Створюючи організаційну культуру, яка ставить під сумнів незнайомі рекомендації AI, команди значно посилюють свою загальну кібербезпеку.
Стратегія охолодження ЦОД для епохи AI