Инциденты в цепочке поставок угрожают гигантам ИИ: слабые места в процессах выпуска ПО
идеи в лицах

Инциденты в цепочке поставок угрожают гигантам ИИ: слабые места в процессах выпуска ПО

18 мая 2026

За 50 дней такие крупные компании, как OpenAI, Anthropic и Meta*, столкнулись с четырьмя серьезными инцидентами в цепочке поставок. Три из них были вызваны злоумышленниками, а один представлял собой внутреннюю ошибку при упаковке программного обеспечения. Ни один из инцидентов не был направлен непосредственно на модели ИИ. Все четыре случая выявили общую уязвимость: отсутствие адекватного контроля в конвейерах выпуска программного обеспечения, механизмах обработки зависимостей, исполнителях непрерывной интеграции (CI-раннерах) и на этапах упаковки, которые до сих пор не охватывались системными картами, оценками AISI или учениями «красной команды» Gray Swan.

Хроника последних атак

11 мая 2026 года самораспространяющийся червь под названием «Mini Шаи-Хулуд» опубликовал 84 вредоносных версии пакетов в 42 npm-пакетах @tanstack/* всего за шесть минут. Червь использовал некорректную конфигурацию pull_request_target, отравление кеша GitHub Actions и извлечение токенов OIDC (OpenID Connect — стандарт аутентификации) из памяти CI-раннера для перехвата доверенного конвейера выпуска TanStack. Пакеты имели действительное подтверждение происхождения сборки SLSA уровня 3, поскольку они были опубликованы из правильного репозитория, с использованием корректного рабочего процесса и легитимно выпущенного токена OIDC. При этом ни пароль сопровождающего не был скомпрометирован, ни запрос двухфакторной аутентификации не был перехвачен.

Модель доверия сработала точно так, как было задумано, но при этом были выпущены 84 вредоносных артефакта.

Два дня спустя OpenAI подтвердила, что два устройства сотрудников были скомпрометированы, и учетные данные были похищены из внутренних репозиториев кода. OpenAI заявила об отзыве своих сертификатов безопасности macOS и обязала всех пользователей настольных систем обновить их к 12 июня 2026 года. Компания отметила, что ужесточала меры безопасности в своем CI/CD-конвейере (непрерывной интеграции/непрерывной доставке) после предыдущего инцидента в цепочке поставок Axios, но два затронутых устройства еще не получили обновленные конфигурации. Такой профиль реагирования характерен для взлома конвейера сборки, а не для инцидента безопасности самой модели.

Четыре инцидента, один вывод

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

  • Инъекция команд в OpenAI Codex (раскрыто 30 марта 2026 года). Исследователь Тайлер Йесперсен из BeyondTrust Phantom Labs обнаружил, что OpenAI Codex передавал имена веток GitHub напрямую в команды оболочки без какой-либо очистки. Злоумышленник мог внедрить точку с запятой и подоболочку с обратной кавычкой в имя ветки, и контейнер Codex исполнил бы ее, возвращая токен OAuth жертвы GitHub в незашифрованном виде. Уязвимость затрагивала веб-сайт ChatGPT, интерфейс командной строки Codex (CLI), SDK Codex и расширение для интегрированных сред разработки (IDE). OpenAI присвоила ей критический приоритет 1 и полностью устранила ее к февралю 2026 года. Команда Phantom Labs использовала символы Юникода, чтобы сделать вредоносное имя ветки визуально идентичным «main» в пользовательском интерфейсе Codex. Одна ветка — вот с чего началась атака.

  • Отравление цепочки поставок LiteLLM и взлом Mercor (24–27 марта 2026 года). Хакерская группа TeamPCP использовала учетные данные, похищенные в ходе предыдущей компрометации сканера уязвимостей Trivy от Aqua Security, для публикации двух скомпрометированных версий Python-пакета LiteLLM в репозиторий PyPI. LiteLLM — это широко используемый шлюз-прокси для больших языковых моделей (LLM) с открытым исходным кодом, применяемый крупными командами по инфраструктуре ИИ. Вредоносные версии были активны около 40 минут и получили почти 47 000 загрузок, прежде чем PyPI поместил их в карантин.

    Этого оказалось достаточно.

    Атака распространилась на Mercor, стартап в области ИИ-данных стоимостью 10 миллиардов долларов, который предоставляет данные для обучения Meta*, OpenAI и Anthropic. Четыре терабайта данных были похищены, включая ссылки на запатентованные методологии обучения Meta*. Meta* заморозила партнерство на неопределенный срок. Коллективный иск последовал в течение пяти дней. Одна скомпрометированная зависимость с открытым исходным кодом, пробывшая 40 минут на PyPI, создала межотраслевой радиус поражения, который не смогла бы обнаружить ни одна «красная команда» по моделям отдельного поставщика.

  • Утечка карты исходного кода Anthropic Claude Code (31 марта 2026 года). Этот инцидент не был вызван злоумышленниками. Anthropic опубликовала версию Claude Code 2.1.88 в npm-реестре с файлом карты исходного кода (source map) размером 59,8 мегабайта, который никогда не должен был быть включен. Файл карты указывал на ZIP-архив в собственном хранилище Cloudflare R2 компании Anthropic, содержащий 513 000 строк необфусцированного кода TypeScript в 1 906 файлах. Логика оркестрации агентов. 44 флага функций. Системные подсказки. Архитектура координации мульти-агентов. Все это стало общедоступным. Все это можно было загрузить без какой-либо аутентификации. Исследователь безопасности Чаофань Шоу сообщил об утечке в течение нескольких часов, и Anthropic отозвала пакет. Anthropic подтвердила, что это была «проблема с упаковкой выпуска, вызванная человеческой ошибкой». Это была вторая подобная утечка за 13 месяцев. Первопричиной стало отсутствие строки в файле .npmignore. Злоумышленники не участвовали, но пробел в поверхности выпуска идентичен: отсутствовал этап человеческой проверки между артефактом сборки и шагом публикации в реестре.

  • Червь TanStack и его дальнейшее распространение (11–14 мая 2026 года). Wiz Research с высокой степенью уверенности приписала атаку Mini Шаи-Хулуд хакерской группе TeamPCP. StepSecurity обнаружила компрометацию в течение 20 минут. Червь распространился за пределы TanStack на Mistral AI, UiPath и более 160 пакетов за несколько часов. Mini Шаи-Хулуд даже имитировал идентификацию приложения Anthropic Claude GitHub, создавая коммиты под поддельной идентификацией "claude " для обхода проверки кода.

Четыре инцидента. Три ведущие лаборатории. Один вывод: область работы «красной команды» заканчивается на границе модели, а конвейер сборки находится по ту сторону этой границы.

Неожиданность, которую не могла предсказать ни одна системная карта

10 мая 2026 года OpenAI запустила Daybreak, инициативу по кибербезопасности, основанную на GPT-5.5 и новой модели GPT-5.5-Cyber с более широкими возможностями, разработанной для авторизованных учений «красной команды», тестирования на проникновение и обнаружения уязвимостей. Daybreak объединяет Codex Security с партнерами, включая Cisco, CrowdStrike, Akamai, Cloudflare и Zscaler. OpenAI позиционировала запуск как доказательство того, что передовой ИИ может склонить чашу весов в сторону защитников.

На следующий день червь TanStack скомпрометировал два устройства сотрудников OpenAI.

В собственном отчете OpenAI о инциденте прямо признается этот пробел. Компания уже ужесточала меры безопасности в своем CI/CD-конвейере после предыдущей атаки на цепочку поставок Axios, но два затронутых устройства «не имели обновленных конфигураций, которые предотвратили бы загрузку». Контролирующие механизмы существовали. Развертывание шло. Червь добрался первым.

Сообщество безопасности увидело тот же пробел: пользователь @EnTr0pY_88 отметил в соцсети X, что реальным сигналом была ротация сертификатов, а не похищенный код. «Ротация сертификатов... это то, что вы делаете, когда радиус поражения затрагивает доверие к подписям, а не только доступ к исходному коду». @OpenMatter_ кратко сформулировал проблему с подтверждением происхождения SLSA: «Если злоумышленник контролирует ваш CI-исполнитель, он контролирует ваши аттестации. Безопасность, основанная на политиках, не справляется в масштабе». А @The_Calda сжал внутреннее противоречие раскрытой информации в семь слов: «Ограниченное влияние», но следующее предложение — «мы ротируем подписывающие сертификаты».

Компания, которая в воскресенье запустила платформу киберзащиты, а во вторник сообщила о взломе конвейера сборки, не терпит неудачу в области безопасности моделей. OpenAI демонстрирует именно тот пробел, который призван устранить данный контрольный список. «Красная команда» по моделям и «красная команда» по конвейерам выпуска — это две разные дисциплины; четыре инцидента за 50 дней позволяют предположить, что только одна из них финансируется последовательно.

Предписывающая матрица VentureBeat

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

Для команд, которым необходимо сопоставить эти пункты с существующими инструментами GRC (управление, риски и соответствие требованиям), пункты 2, 3 и 5 соответствуют NIST SSDF PS.1.1 (защита всех форм кода от несанкционированного доступа и подделки). Пункт 4 соответствует SSDF PS.2.1 (предоставление механизмов для проверки целостности выпуска ПО). Пункт 6 частично соответствует требованиям SLSA Source Track для подтвержденной идентификации участника, хотя ни один опубликованный фреймворк напрямую не затрагивает подтверждение подлинности учетных данных сопровождающих для вышестоящих зависимостей. Пункт 7 еще не рассмотрен ни одним опубликованным фреймворком, что само по себе является важным открытием.

  • Оценка возможностей модели (джейлбрейк, неправомерное использование, эксфильтрация): Затронуты все три поставщика (продолжается). Покрыто системными картами, пакетом AISI Expert, Gray Swan. Пробелов в обнаружении нет. Решение: продолжать требовать системную карту при каждом продлении. Приоритет: базовый.

  • Граница доверия CI-исполнителя (pull_request_target): Затронуты TanStack; OpenAI и связанные системы (11–14 мая 2026 года). Механизм сбоя: запрос на компрометацию TanStack выполнял код форка в контексте базового репозитория, отравлен кеш pnpm, извлечен токен OIDC из памяти исполнителя. Скомпрометированы два устройства сотрудников OpenAI. Пробел в обнаружении: ни одна системная карта не охватывает изоляцию CI-исполнителей, ни одна оценка AISI не тестирует границы доверия от форка к базовому репозиторию. Решение: провести аудит каждого репозитория на предмет pull_request_target + проверки хеша форка. Блокировать код форка в контексте базового репозитория. Привязывать ключи кеша к хешу коммита. Приоритет: выполнить на этой неделе.

  • Доверенный издатель OIDC + подтверждение происхождения SLSA: Затронуты TanStack; OpenAI и связанные системы (11 мая 2026 года). Механизм сбоя: TanStack выпустил действительные подтверждения происхождения сборки SLSA уровня 3 для всех 84 вредоносных пакетов. Первый известный npm-червь с действительной криптографической аттестацией. Пробел в обнаружении: аттестация SLSA подтверждает происхождение сборки, но не ее намерение. Ни один опросник поставщика не различает эти два понятия. Решение: привязать доверенного издателя к ветке + рабочему процессу, а не только к репозиторию. Добавить поведенческий анализ во время установки. Приоритет: выполнить на этой неделе.

  • Проверка упаковки выпуска (человеческий контроль перед публикацией): Затронута Anthropic (31 марта 2026 года). Механизм сбоя: отсутствующая строка в .npmignore привела к отправке файла карты исходного кода размером 59,8 мегабайта в npm-пакете Claude Code. 513 000 строк кода, включая логику агента, 44 флага функций и системные подсказки, были раскрыты. Вторая утечка за 13 месяцев. Вызвана внутренними причинами, а не злоумышленниками. Пробел в обнаружении: ни одно учение «красной команды» не проверяет содержимое артефактов перед публикацией в реестре. Решение: человеческая проверка между артефактом сборки и публикацией в реестре. Принудительное использование .npmignore в CI. Прерывание сборки при неожиданном размере артефакта. Приоритет: до продления.

  • Хуки жизненного цикла зависимостей (prepare, postinstall): Затронуты TanStack; OpenAI и связанные системы (11 мая 2026 года). Механизм сбоя: router_init.js выполняется при импорте. tanstack_runner.js самораспространяется через хук prepare в optionalDependencies. Распространился на Mistral AI, UiPath и более 160 пакетов за несколько часов. Пробел в обнаружении: хуки жизненного цикла выполняются до запуска любого сканера. Оценки моделей никогда не тестируют поведение пакета при установке. Решение: отключить скрипты жизненного цикла в CI по умолчанию. Явный список разрешенных для продакшена. Отмечать новые optionalDependencies при проверке запросов на слияние (PR). Установить minimumReleaseAge (минимальный возраст выпуска). Приоритет: выполнить на этой неделе.

  • Гигиена учетных данных сопровождающих поставщика: Затронута Meta* через Mercor (24–27 марта 2026 года). Механизм сбоя: TeamPCP похитила учетные данные сопровождающего LiteLLM через предыдущую компрометацию Trivy. Две скомпрометированные версии PyPI были активны 40 минут. Кеш Mercor содержал ссылки на методологии обучения Meta*. Четыре терабайта данных были похищены. Meta* заморозила партнерство. Пробел в обнаружении: опросники поставщиков спрашивают о шифровании и контроле доступа, но не о подтверждении подлинности учетных данных сопровождающих для вышестоящих зависимостей. Решение: требовать аутентификацию аппаратным ключом от каждого сопровождающего перед подключением. Добавить период «охлаждения» для менеджера пакетов. Ежеквартально проводить аудит дерева транзитивных зависимостей. Приоритет: добавить в договор с поставщиком.

  • Санитизация входных данных контейнера агента: Затронута OpenAI Codex (раскрыто 30 марта 2026 года). Механизм сбоя: BeyondTrust Phantom Labs внедрила команды оболочки через параметр имени ветки GitHub. Похитила токены OAuth из контейнера Codex. Масштабируемо для общих репозиториев. Оценено как Критический P1, исправлено в феврале 2026 года. Пробел в обнаружении: «красные команды» агентов тестируют внедрение подсказок (prompt injection), а не внедрение входных параметров на уровне контейнера. Решение: санитизировать все внешние входные данные перед выполнением команд оболочки. Проводить аудит области действия и срока жизни токенов OAuth для каждой сессии агента. Обеспечить принцип наименьших привилегий для каждого контейнера. Приоритет: выполнить на этой неделе.

План действий для директоров по безопасности

Матрица указывает, что вашей команде нужно исправить. Три действия показывают директорам по безопасности, как продвинуть этот вопрос вперед.

  • Добавьте один вопрос в каждый опросник для поставщиков ИИ. «Проводит ли ваша организация учения „красной команды“ для своего конвейера выпуска ПО, включая границы доверия CI-исполнителя, область действия токенов OIDC, хуки жизненного цикла зависимостей и этапы публикации в реестре? Укажите дату последней оценки и ее объем». Отсутствие даты и документа об объеме является уязвимостью.

  • Проверьте свои собственные CI-конвейеры на предмет уязвимостей, описанных в пунктах со 2 по 7, на этой неделе. StepSecurity и Snyk опубликовали шаги по обнаружению и устранению шаблонов червя TanStack. Команды разработчиков еженедельно загружают SDK OpenAI, пакеты Anthropic и веса Llama через npm, PyPI и HuggingFace. Те же самые уязвимости, которые были использованы, присутствуют в ваших CI-конвейерах прямо сейчас.

  • Доложите совету директоров о пробеле в подтверждении происхождения. Червь TanStack доказал, что действительное криптографическое подтверждение происхождения может сопровождать вредоносный пакет. Аттестация сообщает совету, где был собран пакет. Поведенческий анализ сообщает, что он делает после установки. Продление контрактов во втором квартале требует обоих подходов. Анализ Snyk рекомендует привязывать конфигурации доверенного издателя к конкретным веткам и рабочим процессам, а не только к репозиториям. Именно такой язык нужен для презентации перед советом.

Червь уже знает, где хранятся ваши учетные данные ИИ

«Mini Шаи-Хулуд» не ограничивается секретами CI-систем. Datadog Security Labs задокументировала, что полезная нагрузка считывает файл ~/.claude.json и похищает его. Червь сканирует хранилища 1Password и Bitwarden, учетные записи служб Kubernetes, токены облачных провайдеров и файлы истории командной оболочки, куда разработчики вставляют ключи API. Деобфускация StepSecurity подтвердила, что Mini Шаи-Хулуд собирает конфигурации серверов Claude и Kiro MCP, которые хранят ключи API и токены аутентификации для внешних служб. Для разработчиков, использующих ИИ-агентов для кодирования, червь уже знает, где хранятся их учетные данные.

OpenAI, Anthropic и Meta* продолжат публиковать системные карты. Они продолжат финансировать соревнования «красных команд». Они продолжат проходить оценки моделей. Ничто из этого не остановит следующий червь от проникновения через release.yml.

Команда постмортального анализа TanStack прямо заявила: современные средства защиты цепочек поставок важны, но сами по себе недостаточны. Команды должны проактивно выявлять и устранять пробелы в рабочих процессах, а не полагаться исключительно на функции безопасности своих инструментов.

* — деятельность компании запрещена на территории РФ



Еще больше интересного на Propr.Me

Еще нет комментариев.

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:

Мы вКонтакте:
Live комменты:

  • Алексей: При работе с европейскими поставщиками особенно важно заранее проверять не только условия поставки, но и...
  • Алексей: Этот материал отлично подойдёт не только для ванной, но и для кухни. Подумываю использовать микроцемент в...
  • Наталья: Уважаемые представители рекламного агентства, Меня зовут Наталья, и я обращаюсь к вам с идеей, способной...
  • Алексей: Выбор правильной лампы для маникюра напрямую влияет на качество и долговечность покрытия. Мощность и тип...
  • Алексей: Корпоративные хранилища данных действительно становятся ключевым инструментом для компаний, стремящихся...

Присылайте новости: news@propr.me, предложения: info@propr.me

При частичном или полном использовании материалов портала ОБЯЗАТЕЛЬНА активная (открытая к индексации поисковиками) ссылка на www.propr.me как источник!
Яндекс.Метрика
TTT