Вразливості GitLab Duo AI: небезпечні помилки у вводі запитів

Дослідники з безпеки виявили низку вразливостей, пов’язаних із впровадженням команд, у GitLab Duo — штучно-інтелектуальному асистенті коду компанії. Дослідження демонструє, як зловмисники можуть маніпулювати Duo, змушуючи його вставляти шкідливі дані, викрадати приватні репозиторії та розкривати дані про нульові вразливості, просто вбудовуючи приховані команди в стандартні елементи розробки.
GitLab Duo та зростання AI-асистентів для розробників
Інструменти для розробників на основі штучного інтелекту, такі як GitLab Duo, GitHub Copilot та Amazon CodeWhisperer, використовують великі мовні моделі (LLM) для прискорення процесу доставки програмного забезпечення. GitLab Duo, що працює на вдосконаленій версії GPT-4 Turbo, інтегрується безпосередньо в запити на злиття, історії комітів та трекери проблем. Він здатен генерувати списки завдань, підсумовувати місячні зміни за лічені секунди та навіть створювати конфігурації пайплайнів у форматі YAML.
Виявлення атак з впровадженням команд
Дослідники з компанії Legit виявили, що Duo не розрізняє довірені інструкції та ворожі дані, вбудовані в контент, контрольований користувачем. Впроваджуючи ретельно продумані команди в запити на злиття, повідомлення комітів, описи помилок та вихідні файли, зловмисники можуть примусити Duo виконувати несанкціоновані дії.
Технічні механізми експлуатації
- Невидимі послідовності Unicode – Зловмисники приховують команди всередині вихідних файлів, використовуючи нульову ширину пробілів та комбіновані діакритики, які LLM обробляє, але які люди не помічають.
- Впровадження Markdown та HTML – Duo асинхронно рендерить markdown, що дозволяє тегам
та іншим виконуватися у вікні чат-бота, якщо їх не очистити належним чином.
- Викрадення Base64 через GET-запити – Сховані команди інструктують Duo читати приватні файли або дані про проблеми, кодувати їх у base64 та вбудовувати в атрибут src тега
, що вказує на зловмисний домен, контрольований атакуючим.
При глибокій інтеграції в робочі процеси AI-асистенти успадковують як контекст, так і ризики, попереджають дослідники. Вбудовуючи шкідливі дані в безневинні коміти, ми змусили Duo витікати конфіденційний код та вставляти шкідливі посилання.
Демонстрація впливу: від шкідливих посилань до витоків нульових вразливостей
У тестах на підтвердження концепції команда вставила фальшивий звіт про вразливість у приватний репозиторій. Duo, коли його попросили підсумувати звіт, додав приховане посилання на фішинговий сайт, використовуючи markdown. У окремому тесті асистент викрав опис нульового експлойту з захищеного трекера проблем, упакувавши його в base64 всередині тега .
Заходи пом’якшення та найкращі практики
GitLab відключив рендеринг небезпечних HTML-тегів у відповідях Duo, якщо вони вказують за межі gitlab.com. Хоча це усуває один з шляхів атаки, комплексний захист вимагає багаторівневої стратегії:
- Очищення вводу – Видаляти або нейтрально рендерити всі HTML та markdown теги перед передачею контенту до LLM.
- Контекстуальне біле списування – Обмежити Duo лише довіреними репозиторіями та трекерами проблем через надійні механізми контролю доступу та фільтрацію дозволених списків.
- Моніторинг поведінки LLM – Запровадити виявлення аномалій у реальному часі для виходу асистента, щоб відзначати незвичні патерни, такі як base64 об’єкти або несподівані посилання.
- Навчання розробників – Вимагати ручний перегляд коду та статичний аналіз усіх патчів та підсумків, створених AI.
Порівняльний аналіз з іншими AI кодовими асистентами
GitHub Copilot зіткнувся з подібними проблемами у 2024 році, коли дослідники створили впровадження команд, які призвели до того, що пропозиції коду містили скрипти криптоджекінгу. Amazon CodeWhisperer реалізував пісочницю, яка видаляє невідомі HTML та markdown, але все ще покладається на основну модель, щоб виконувати вбудовані інструкції. Жоден з великих постачальників поки що не пропонує доведено безпечне середовище виконання LLM.
Вплив на програмне забезпечення постачального ланцюга
AI-асистенти швидко стають невід’ємною частиною процесів безперервної інтеграції та безперервного розгортання (CI/CD). Це розширює поверхню атаки за межі традиційних загроз постачального ланцюга, включаючи маніпуляцію LLM. Тепер противники можуть скомпрометувати робочі процеси розробки, вносячи публічні залежності або форки з прихованими командами, які згодом потрапляють у виробничі середовища.
Майбутні напрямки та реакція галузі
Експерти прогнозують сплеск досліджень у сфері пісочниці, обізнаної про моделі та фільтрації інструкцій. Одна з пропозицій передбачає метамодель, яка перевіряє інструкції користувача за допомогою політики перед їх надходженням до основної LLM. Тим часом організації, такі як Cloud Native Computing Foundation (CNCF), оцінюють найкращі практики для забезпечення безпеки інструментів DevOps на основі AI.
Висновок
Висновки компанії Legit служать яскравим нагадуванням: AI-асистенти для розробників є потужними, але залишаються вразливими до маніпуляцій. Організаціям слід розглядати будь-яку інтеграцію LLM як розширення їхньої загрози, впроваджуючи багаторівневі заходи безпеки, суворі перевірки та моніторинг у реальному часі для захисту чутливого коду та даних.