Популярные ИИ-агенты для написания кода, такие как Codex от OpenAI, Claude Code от Anthropic, Gemini CLI от Google и GitHub Copilot от Microsoft, были уязвимы для атаки с нулевым кликом, которая позволяла злоумышленникам выполнять вредоносный код даже без взаимодействия с разработчиком, подменяя доверенный плагин из онлайн-маркетплейса на вредоносный, что потенциально давало им возможность проникнуть в корпоративные среды разработки.
Исследователи из стартапа в области кибербезопасности AIR обнаружили и сообщили об этой уязвимости, которую они назвали Plugin4Shell, соответствующим поставщикам. По словам исследователей, большинство из них уже выпустили исправление.
«Это недостаток, который не может исправить ни один маркетплейс, поэтому пользователи должны обновить своих агентов», — написали исследователи.
Как были использованы уязвимости Claude Code, Codex и GitHub Copilot
Предприятия обычно используют плагины для расширения возможностей своих ИИ-агентов для написания кода, предоставляя агенту доступ к дополнительным инструментам, командам и внешним сервисам, которые помогают ему выполнять задачи, выходящие за рамки генерации или модификации кода.
Когда разработчик устанавливает плагин, агент обычно загружает его код из Git-репозитория и использует Git commit для определения того, запускается ли одобренная копия кода, проверенная и утвержденная разработчиком.
Эта проверка выполняется с помощью безопасного алгоритма хеширования (SHA) — уникального криптографического идентификатора, присвоенного каждому Git commit. Разработчики могут передать агенту SHA проверенного коммита, указав ему запустить конкретную копию плагина.
Однако, как написали исследователи, Claude Code, Codex и GitHub Copilot могут быть обмануты для запуска вредоносного кода вместо кода доверенного плагина, связанного с SHA, поскольку они передают SHA напрямую в Git для получения кода плагина, но впоследствии не проверяют, действительно ли Git получил коммит, соответствующий этому SHA.
Это означает, что злоумышленник, контролирующий репозиторий плагина (либо публикуя безобидный плагин и затем делая его вредоносным, либо захватывая репозиторий существующего доверенного плагина), может использовать этот пробел, создав новую версию репозитория с вредоносным кодом и используя SHA легитимного коммита в качестве имени, объяснили исследователи.
В результате, когда агент запрашивает у Git получение SHA, Git разрешает его в версию, контролируемую злоумышленником, что приводит к выполнению агентом вредоносного кода, даже если ему было указано использовать проверенный коммит, заявили они.
Как Plugin4Shell скомпрометировал Gemini CLI
Атака на Gemini CLI работает иначе, хотя основная проблема — отсутствие проверки агентом полученного коммита — остается той же.
Gemini CLI сначала использует SHA, чтобы указать Git, какую легитимную версию плагина получить. После получения Gemini CLI указывает Git получить этот код, используя имя «FETCH_HEAD».
Злоумышленник, контролирующий репозиторий, может использовать это, создав вредоносную версию плагина и присвоив ей то же имя «FETCH_HEAD», фактически создавая вторую версию, которую Git может вернуть, когда Gemini CLI запрашивает код.
Уязвимость, впервые обнаруженная в мае и раскрытая поставщикам в июне, с тех пор была устранена в некоторых затронутых агентах для написания кода. Anthropic исправила проблему в Claude Code версии 2.1.179, а OpenAI — в Codex версии 0.146.0, написали исследователи. Google заявила, что прекратила поддержку Gemini CLI и поэтому не будет выпускать исправление, вместо этого предлагая пользователям перейти на Antigravity.
GitHub еще не выпустила исправление для своего Copilot, сообщили исследователи.
Представитель GitHub сообщил The Register, что они уже ввели ограничения на создание имен версий или тегов, похожих на SHA коммитов, что предотвращает эксплуатацию уязвимости на GitHub или в плагинах из их маркетплейса. Однако исследователи AIR заявили изданию, что ограничений имен GitHub может быть недостаточно для предотвращения атак Plugin4Shell, поскольку маркетплейсы плагинов также могут размещаться на других платформах, таких как Bitbucket.
Plugin4Shell может расширить доступ к корпоративным системам
Этот пробел, в сочетании с вероятностью того, что предприятия, использующие затронутые агенты для написания кода, еще не установили исправления или обновления, может оставить среды разработки уязвимыми для атак через скомпрометированные плагины, считает Парикх Джайн, главный аналитик Pareekh Consulting.
«Предприятия, использующие ИИ-агентов для написания кода с плагинами сторонних разработчиков, скорее всего, будут наиболее уязвимы, особенно когда эти агенты имеют доступ к исходному коду, учетным данным, облачным системам или CI/CD инструментам, поскольку эти плагины в основном работают с тем же уровнем доступа, что и разработчик или сотрудник», — сказал он.
Это означает, что эти вредоносные плагины могут помочь злоумышленникам получить доступ к исходному коду, украсть API-ключи или облачные учетные данные, изменить репозитории или потенциально получить доступ к CI/CD и другим корпоративным системам, добавил Джайн.
Что могут сделать предприятия для снижения рисков?
«Команды безопасности должны проверять машины, на которых работают эти уязвимые агенты. Важные предупреждающие знаки включают необычные процессы или сетевые соединения, неожиданные файлы плагинов, измененные репозитории исходного кода, подозрительную активность Git и необычное использование учетных данных разработчиков или облачных сервисов», — сказал Джайн.
«Журналы EDR, Git, CI/CD, облачных IAM и аутентификации — хорошие места для расследования», — добавил он.
Другие меры, по словам аналитика, включают проверку автоматического обновления их агентов для написания кода, чтобы убедиться, что они получили исправления от поставщиков, которые их применили.
Однако эти шаги только снижают риск, но не устраняют основную уязвимость.
«Основная уязвимость в конечном итоге является ответственностью поставщика, поскольку она связана с тем, как агенты проверяют код, который им поручено выполнять. Им необходимо убедиться, что выполняемый код действительно является кодом, который был проверен и одобрен», — сказал Джайн.
«Предприятия могут установить контроль над использованием плагинов, но они не могут исправить недостаток в том, как агент для написания кода проверяет код, который он получает», — добавил он.
Эта статья впервые появилась на InfoWorld.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Anirban Ghoshal




