Исследователи безопасности из Wiz задокументировали необычный случай, когда искусственный интеллект создал ту самую уязвимость, которую затем обнаружила и использовала другая система искусственного интеллекта: автоматическое исправление GitHub Copilot привело к серьезной ошибке внедрения скрипта в репозиторий Snowflake с открытым исходным кодом, а автономный красный агент Wiz обнаружил ошибку, использовал ее в качестве оружия и извлек учетные данные из внутренних систем Snowflake — и все это в течение нескольких дней после появления ошибочного кода.

Результаты, опубликованные в понедельник в блоге Wiz Research, быстро попали на первую страницу Hacker News, где разработчики обсуждали, что это означает для растущей практики предоставления помощникам по кодированию ИИ возможности вносить изменения непосредственно в рабочие репозитории. Этот эпизод рассматривается как предупреждение о стремлении отрасли к коду, созданному искусственным интеллектом. Чтобы узнать больше об инструментах, меняющих формат разработки программного обеспечения, следите за нашими новостями AI.

Как автоисправление ИИ создало уязвимость

По словам Wiz, проблема началась 18 июня 2026 года, когда запрос на включение в общедоступный репозиторий Snowflake-connector-net обновил рабочий процесс GitHub Actions под названием jira_issue.yml. Коммит, соавтором которого является функция Autofix GitHub Copilot, заменил безопасный шаблон кодирования — тот, который передает ненадежные заголовки проблем через переменную среды и создает полезные данные JSON с помощью `jq` – на прямую интерполяцию шаблонов управляемых пользователем входных данных в сценарий оболочки.

Рабочий процесс запускался всякий раз, когда какой-либо пользователь GitHub открывал проблему в репозитории. Поскольку заголовок задачи был интерполирован непосредственно в блок `run:`, одной кавычки в созданном заголовке было достаточно, чтобы выйти из команды оболочки и выполнить произвольный код в средствах запуска действий GitHub.

Условная проверка в рабочем процессе, который выглядел как шлюз безопасности, оказалась неэффективной: при возникновении событий контекст `github.event.pull_request` всегда имеет значение null, поэтому условие оценивается как истинное для каждого пользователя. На практике любой пользователь GitHub может запустить рабочий процесс.

Уиз говорит, что безопасный шаблон, удаленный ИИ-помощником, был намеренно реализован, чтобы предотвратить именно этот класс внедрения оболочки — исторический контекст, который автоматизированный помощник не мог знать.

Красный агент нашел это и отказался потерпеть неудачу

Что делает этот случай примечательным, так это то, как была обнаружена ошибка. Red Agent Wiz, автономный наступательный агент безопасности, сканировал организацию GitHub Snowflake с возможностью анализа CI/CD, когда пометил рабочий процесс как уязвимый для внедрения скриптов.

Когда агент попытался воспользоваться уязвимостью, его первая полезная нагрузка, в которой использовался символ комментария для усечения команды оболочки, завершилась неудачей из-за синтаксической ошибки bash. Вместо того, чтобы остановиться, пишут исследователи, Red Agent автономно проанализировал ошибку, скорректировал свою полезную нагрузку, чтобы правильно закрыть синтаксис оболочки, и успешно перенес учетные данные Jira на внеполосный сервер обратного вызова. Обратный вызов поступил от исполнителя GitHub Actions и перенес учетные данные в форме в кодировке Base64.

Украденный токен принадлежал учетной записи с доступом для чтения в проектах Snowflake по проектированию, обеспечению безопасности и отслеживанию ошибок в Jira.

Пять дней от инъекции до патча

График раскрытия информации, опубликованный Wiz, движется быстро:

  • 18 июня 2026 г. — уязвимый шаблон представлен в коммите, соавтором которого является Copilot Autofix.
  • 23 июня 2026 г. — Wiz обнаруживает, использует уязвимость и сообщает Snowflake через HackerOne.
  • 23 июня 2026 г. — Snowflake в тот же день исправляет рабочий процесс, восстанавливая безопасную переменную env: и шаблон синтаксического анализа jq.
  • 24 июня 2026 г. — открытый токен Jira отозван и заменен.
  • 25 июля 2026 г. — скоординированное публичное раскрытие информации.

Снежинка сообщила Wiz, что расследование не выявило никаких доказательств несанкционированного доступа. «Информация была получена 23 июня 2026 года, она была немедленно расследована и исправлена, и наше расследование не обнаружило никаких доказательств несанкционированного доступа», — говорится в заявлении компании, добавляя, что она работает с Wiz, чтобы поделиться полученной информацией с более широкой отраслью.

Большой урок: код ИИ нуждается в проверке на человеческом уровне

Виз сделал три вывода из этого инцидента, и они выходят далеко за рамки Снежинки.

Во-первых, запросы на включение, созданные искусственным интеллектом, должны пройти тот же статический анализ и проверку безопасности, что и человеческий код. Помощники по программированию прогнозируют код на основе вероятностных шаблонов, что означает, что они могут незаметно повторно вводить устаревшие или небезопасные конструкции, которые уже были удалены из репозитория.

Во-вторых, окна обнаружения закрываются. Уязвимость существовала всего пять дней, прежде чем автоматический агент нашел и проверил ее — темп, который предполагает, что злоумышленники, сканирующие с помощью аналогичных инструментов, могут двигаться так же быстро. Быстрые циклы исправлений и кратковременные учетные данные становятся базовыми требованиями.

В-третьих, организациям нужны ограждения, которые не позволяют помощникам ИИ заменить анализаторы структурированных данных прямой интерполяцией строк — именно такая регрессия произошла здесь.

Инцидент произошел в момент более широкого самоанализа отрасли в отношении кода, сгенерированного ИИ. Ряд недавних исследований и практических примеров показал, что инструменты ИИ-кодирования могут уверенно привносить ошибки, дыры в безопасности и проблемы с обслуживанием, а также повышать производительность. Что отличает случай «Снежинки», так это замкнутый цикл: ИИ, вызвавший проблему, и ИИ, который ее поймал, действовали автономно, а люди анализировали последствия.

Для служб безопасности сообщение Wiz является резким. Вопрос больше не в том, будет ли код, написанный ИИ, содержать уязвимости, а в том, сможет ли ваш конвейер обнаружения, человеческий или автоматизированный, найти их быстрее, чем это делает чужой агент.

Будьте на шаг впереди ИИ

Инструменты кодирования искусственного интеллекта и автономные агенты меняют безопасность программного обеспечения в режиме реального времени. Добавьте в закладки AI Buzz Wire, чтобы получать ежедневные отчеты об индустрии искусственного интеллекта.

Читать больше новостей об искусственном интеллекте →