Дослідники легко зламали агентів, підключених до GitHub Actions. Компанії не афішують проблему
Дослідники кібербезпеки з Університету Джонса Гопкінса (США) змогли зламати трьох популярних ШІ-агентів, підключених до GitHub Actions. Вони використали впровадження шкідливих інструкцій в заголовку PR для крадіжки ключів API та токенів доступу.
Під ударом опинились Claude Code Security Review від Anthropic, Gemini CLI Action від Google та GitHub Copilot від Microsoft, пише The Register.

Всі три компанії підтвердили наявність недоліків, науковці отримали винагороди за виявлені помилки від Anthropic, Google та Microsoft. Однак жоден з постачальників не призначив інциденту CVE-ідентифікатор та не опублікував публічні рекомендації. Це, за словами дослідника Аонана Гуаня, «є проблемою».
«Я точно знаю, що деякі користувачі працюють на вразливій версії агента. Якщо компанії не опублікують попередження, ці користувачі можуть ніколи не дізнатися, що вони вразливі до хакерських атак», — заявив Гуань.
Він додав, що атака, ймовірно, може бути успішною і для інших агентів, які інтегровані з GitHub, а також GitHub Actions. Це стосується ботів Slack, агентів Jira, агентів електронної пошти та агентів автоматизації розгортання.
Огляд проблеми в Claude Code
Гуань спочатку знайшов недолік у Claude Code Security Review. GitHub Action використовує Claude для аналізу змін коду та пул-реквестів на наявність вразливостей та інших проблем безпеки.
«Він використовує агента штучного інтелекту для пошуку вразливостей у коді – саме для цього й призначене це програмне забезпечення. Шкідливі підказки від користувача надходять спочатку до агентів, а потім вони виконують дії на основі цих підказок», — пояснив вчений.
Виявляється, що Claude, разом з іншими агентами в GitHub Actions, використовують один і той самий потік. Тому Гуаню спала на думку хитра ідея. Якби він міг впровадити шкідливі інструкції в дані, які зчитуються штучним інтелектом, «можливо, я міг би взяти під контроль агента та робити з ним все, що захочу».
Це спрацювало. Гуань надіслав пул-реквест та вставив шкідливі інструкції в заголовок PR, наказавши Claude виконати команду whoami за допомогою інструмента Bash та повернути результати як «виявлення проблеми безпеки».
Claude виконав введені команди та вбудував вивід у свою JSON-відповідь, яка була опублікована як коментар до PR.
Гуань продемонстрував, що таке швидке впровадження також може допомогти в крадіжках облікових даних, таких як токени доступу GitHub або ключ API Anthropic.
Як дослідники зламали Gemini CLI та GitHub Copilot Agent
Після підтвердження того, що впровадження шкідливих інструкцій в заголовку PR спрацювало з Claude Code, Гуань залучив інших колег з Університету Джонса Гопкінса: Гевіна Чжуна та Чжен’юй Лю, щоб перевірити атаку на інших агентах: Google Gemini CLI та GitHub Copilot Agent.
Введення фальшивого «розділу довіреного контенту» після справжнього «додаткового контенту» дозволило дослідникам ігнорувати інструкції безпеки Gemini та опублікувати ключ API Gemini як коментар до проблеми.
Атака на агента GitHub Copilot, що належить Microsoft, виявилася трохи складнішою. Цей агент працює у фоновому режимі на інфраструктурі GitHub і може автономно створювати PR.
На додаток до захисту на рівні моделі та запиту, таких як вбудовані в Claude та Gemini, GitHub додав три рівні безпеки на рівні виконання: фільтрацію середовища, секретне сканування та мережевий брандмауер, щоб запобігти крадіжці облікових даних.
«Я обійшов їх усіх», — сказав Гуань.
На відміну від двох попередніх атак, які вимагають лише розміщення видимого запиту в заголовку пул-реквеста або в коментарі до проблеми, атака Copilot вимагає від зловмисника вставити шкідливі інструкції в HTML-коментар, який відображається в Markdown на GitHub, але стає невидимим для людей. Жертва, яка не бачить прихований тригер, призначає проблему агенту Copilot для виправлення.
Загалом, Гуань та його колеги-дослідники продемонстрували, що зловмисники можуть успішно використовувати техніку впровадження шкідливих інструкцій для крадіжки ключів API Anthropic та Gemini, кількох токенів GitHub та «будь-якого іншого секрету, розкритого в середовищі GitHub Actions runner, включаючи довільні користувацькі секрети репозиторію або організації, до яких має доступ робочий процес».
Нагадаємо, що після обурення спільноти сервіс GitHub відмовився від плану стягувати плату за self-hosted раннери.
Підписуйтесь на нас у соцмережах: Telegram | Facebook | LinkedIn












Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: