
За останні 50 днів сталося чотири інциденти у ланцюгах поставок, які вразили OpenAI, Anthropic та Meta. Три з них були спричинені діями зловмисників, а один — помилкою під час пакування. Жоден із них не був спрямований на моделі ШІ, але всі чотири виявили одну й ту саму вразливість: системи випуску, точки прив’язки залежностей, CI-раннери та брами пакування, які досі жодні системні карти, оцінки AISI чи вправи “Червоний лебідь” не враховували.
11 травня 2026 року самопоширюваний хробак під назвою Mini Shai-Hulud за шість хвилин опублікував 84 шкідливі версії пакетів у 42 npm-пакетах з префіксом @tanstack/*. Хробак потрапив у систему через файл release.yml, використовуючи неправильну конфігурацію pull_request_target, отруєння кешу GitHub Actions та вилучення OIDC-токенів з пам’яті раннера, щоб захопити власний довірений конвеєр випуску TanStack. Пакети мали дійсні докази SLSA Build Level 3, оскільки вони були опубліковані з правильного репозиторію, за допомогою правильного робочого процесу та легітимно виданого OIDC-токену. Жоден пароль підтримки не був викрадений шляхом фішингу. Жоден запит на двофакторну автентифікацію не був перехоплений.
Модель довіри спрацювала точно так, як було розроблено, і все ж призвела до створення 84 шкідливих артефактів.
Через два дні OpenAI підтвердила, що два пристрої співробітників були скомпрометовані, а з внутрішніх репозиторіїв коду було викрадено облікові дані. OpenAI зараз відкликає свої сертифікати безпеки macOS і змушує всіх користувачів настільних комп’ютерів оновитися до 12 червня 2026 року. OpenAI зазначила, що вже посилювала свій CI/CD конвеєр після попереднього інциденту з ланцюгом поставок, але два уражені пристрої ще не отримали оновлених конфігурацій. Це профіль реагування на порушення конвеєра збірки, а не інцидент безпеки моделі.
Чотири інциденти, одне спостереження
Red-команди з безпеки моделей не охоплюють конвеєри випуску. Чотири нижчезгадані інциденти свідчать про одне архітектурне відкриття, яке має бути включене до кожного опитувальника постачальників ШІ.
Ін’єкція команд у OpenAI Codex (оголошено 30 березня 2026 року). Дослідник BeyondTrust Phantom Labs Тайлер Джесперсен виявив, що OpenAI Codex передавав імена гілок GitHub безпосередньо в командні оболонки з нульовою санітизацією. Зловмисник міг вставити крапку з комою та зворотний апостроф для створення під-оболонки в ім’я гілки, і контейнер Codex виконав би його, повернувши OAuth-токен GitHub жертви у відкритому вигляді. Вразливість вплинула на вебсайт ChatGPT, CLI Codex, SDK Codex та розширення IDE. OpenAI класифікувала її як “Критичний пріоритет 1” і завершила виправлення до лютого 2026 року. Команда Phantom Labs використовувала Unicode-символи, щоб зробити шкідливе ім’я гілки візуально ідентичним “main” в інтерфейсі Codex. Одне ім’я гілки. Саме звідти почалася атака.
Отруєння ланцюга поставок LiteLLM та злом Mercor (24–27 березня 2026 року). Група зловмисників TeamPCP використала облікові дані, викрадені під час попереднього компрометування сканера вразливостей Aqua Security Trivy, щоб опублікувати дві отруєні версії пакету LiteLLM Python на 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 з файлом карти вихідного коду розміром 59,8 МБ, який ніколи не мав бути включений. Файл карти вказував на zip-архів у власному бакеті Cloudflare R2 Anthropic, що містив 513 000 рядків відкритого TypeScript у 1906 файлах. Логіка оркестрації агентів. 44 прапорці функцій. Системні запити. Архітектура багатоагентної координації. Усе публічно. Усе можна було завантажити. Автентифікація не була потрібна. Дослідник безпеки Чаофань Шоу виявив витік протягом кількох годин, і Anthropic вилучила пакет. Anthropic підтвердила, що це була “проблема пакування випуску, спричинена людською помилкою”. Це був другий подібний витік за 13 місяців. Першопричиною був відсутній рядок у файлі .npmignore. Зловмисник не був залучений, але прогалина в поверхні випуску була ідентичною. Не існувало жодного контрольного пункту людського перегляду між артефактом збірки та етапом публікації в реєстрі.
Хробак TanStack та подальше поширення (11–14 травня 2026 року). Wiz Research з високою впевненістю приписала атаку Mini Shai-Hulud групі TeamPCP. StepSecurity виявила компрометацію протягом 20 хвилин. Хробак поширився за межі TanStack на Mistral AI, UiPath та понад 160 пакетів протягом кількох годин. Mini Shai-Hulud навіть видавав себе за GitHub App Anthropic Claude, створюючи коміти під вигаданим іменем “claude
Чотири інциденти. Три передові лабораторії. Один висновок. Сфера діяльності red-team зупиняється на межі моделі, а конвеєр збірки знаходиться по інший бік.
Час, який жодна системна карта не може пояснити
10 травня 2026 року OpenAI запустила Daybreak, ініціативу з кібербезпеки, побудовану на GPT-5.5 та новій гнучкій моделі GPT-5.5-Cyber, призначеній для авторизованого red teaming, тестування на проникнення та виявлення вразливостей. Daybreak співпрацює з OpenAI Codex Security з такими партнерами, як Cisco, CrowdStrike, Akamai, Cloudflare та Zscaler. OpenAI позиціонувала запуск як доказ того, що передовий ШІ може схилити баланс на користь захисників.
Наступного дня хробак TanStack скомпрометував два пристрої співробітників OpenAI.
Власний звіт OpenAI про інцидент прямо визнав прогалину. Компанія вже посилювала свій CI/CD конвеєр після попередньої атаки на ланцюг поставок Axios, але два уражені пристрої “ще не мали оновлених конфігурацій, які б запобігли завантаженню”. Контроль існував. Розгортання тривало. Хробак прибув першим.
Спільнота безпеки побачила ту саму прогалину: дослідник безпеки @EnTr0pY_88 зазначив у X, що справжнім сигналом є ротація сертифікатів, а не викрадений код. “Ротація сертифікатів… це те, що ви робите, коли вибуховий радіус досяг довіри до підпису, а не лише доступу до вихідного коду”. @OpenMatter_ одним реченням сформулював невдачу довіреності SLSA: “Якщо зловмисник контролює ваш CI-раннер, він контролює ваші атестації. Безпека, заснована на політиках, виходить з ладу в масштабі”. А @The_Calda стиснув внутрішнє протиріччя звіту в сім слів: “‘Обмежений вплив’, але наступне речення – ‘ми ротуємо сертифікати підпису'”.
Компанія, яка запустила платформу кіберзахисту в неділю і повідомила про порушення конвеєра збірки у вівторок, не зазнає невдачі в безпеці моделі. OpenAI демонструє саме ту прогалину, яку має закрити ця сітка аудиту. Red-team моделі та red-team конвеєра випуску — це дві різні дисципліни; чотири інциденти за 50 днів свідчать, що лише одна з них послідовно фінансується.
Рекомендована матриця VentureBeat
Нижче наведена матриця, яка відображає сім класів поверхонь випуску, відсутніх у опитувальниках постачальників ШІ, із зазначенням враженого постачальника, механізму збою, прогалини у виявленні, технічного пом’якшення та пріоритетного рівня, який команда безпеки може вжити до закриття поновлення Q2.
Для команд, яким потрібно відобразити ці рядки в існуючих інструментах 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 downstream (11–14 травня 2026 р.) |
TanStack pwn-request виконував код форку в контексті базового репозиторію. Отруєно кеш pnpm. Вилучено OIDC-токен з пам’яті раннера. Скомпрометовано два пристрої співробітників OpenAI. |
Жодна системна карта не охоплює ізоляцію CI-раннера. Жодна оцінка AISI не тестує межі довіри форк-до-базового. |
Перевірте кожен репозиторій на наявність pull_request_target + checkout SHA форку. Блокуйте код форку з контексту базового репозиторію. Прив’язуйте ключі кешу до SHA коміту. |
Зробити цього тижня |
|
OIDC довірений видавець + довіреність SLSA |
TanStack; OpenAI downstream (11 травня 2026 р.) |
TanStack створив дійсні докази SLSA Build Level 3 для всіх 84 шкідливих пакетів. Перший відомий npm-хробак з дійсною криптографічною атестацією. |
Атестація SLSA підтверджує походження збірки, а не намір збірки. Жоден опитувальник постачальника не розрізняє ці два. |
Прив’язуйте довіреного видавця до гілки + робочого процесу, а не лише до репозиторію. Додайте поведінковий аналіз під час встановлення. |
Зробити цього тижня |
|
Перевірка пакування випуску (людський контроль перед публікацією) |
Anthropic (31 березня 2026 р.) |
Відсутність .npmignore призвела до відправки файлу карти вихідного коду розміром 59,8 МБ у пакеті Claude Code npm. Розкрито 513 тис. рядків, включаючи логіку агентів, 44 прапорці функцій, системні запити. Другий витік за 13 місяців. Спричинено самостійно, а не зловмисником. |
Жодна вправа red-team не перевіряє вміст артефактів перед публікацією в реєстрі. |
Людський перегляд між артефактом збірки та етапом публікації в реєстрі. Впроваджуйте .npmignore в CI. Позначайте помилку збірки при несподіваному розмірі артефакту. |
До поновлення |
|
Точки прив’язки життєвого циклу залежностей (prepare, postinstall) |
TanStack; OpenAI + downstream (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. Викрадено 4 ТБ. Meta заморозила партнерство. |
Опитувальники постачальників запитують про шифрування та контроль доступу, а не про довіреність облікових даних підтримки для сторонніх залежностей. |
Вимагайте автентифікацію за допомогою апаратного ключа від кожного підтримки перед онбордингом. Додайте затримку пакетного менеджера. Щорічно перевіряйте транзитивне дерево залежностей. |
Додати до контракту з постачальником |
|
Санітизація введення контейнера агента |
OpenAI Codex (оголошено 30 березня 2026 р.) |
BeyondTrust Phantom Labs ввели команди оболонки через параметр імені гілки GitHub. Викрали OAuth-токени з контейнера Codex. Масштабовано через спільні репозиторії. Оцінено як Критичний P1, виправлено лютий 2026 р. |
Red-команди агентів тестують впровадження запитів, а не впровадження параметрів введення на рівні контейнера. |
Санітизуйте все зовнішнє введення перед виконанням оболонки. Перевіряйте область дії та термін дії OAuth-токену для кожного сеансу агента. Застосовуйте найменші привілеї до кожного контейнера. |
Зробити цього тижня |
План дій директора з безпеки
Матриця підказує вашій команді, що виправити. Три дії показують директорам з безпеки, як рухатися вперед.
-
Додайте одне запитання до кожного опитувальника постачальників ШІ. “Чи проводить ваша організація red teaming свого конвеєра випуску, включаючи межі довіри CI-раннерів, область дії OIDC-токенів, хуки життєвого циклу залежностей та брами публікації в реєстрі? Надайте дату останньої оцінки та її сферу дії.” Відсутність дати та документації щодо сфери дії є висновком.
-
Застосуйте рядки 2-7 до власних CI-конвеєрів цього тижня. StepSecurity та Snyk опублікували кроки виявлення та виправлення для шаблонів хробака TanStack. Команди розробників щотижня завантажують SDK OpenAI, пакети Anthropic та ваги Llama через npm, PyPI та HuggingFace. Ті самі шаблони, що були використані для експлуатації, зараз знаходяться у вашому CI.
-
Поінформуйте раду директорів про прогалину в довіреності. Хробак TanStack довів, що дійсна криптографічна довіреність може приховувати шкідливий пакет. Атестація повідомляє раді директорів, де був побудований пакет. Поведінковий аналіз повідомляє раді директорів, що він робить після встановлення. Поновлення Q2 вимагає обох. Аналіз Snyk рекомендує прив’язувати конфігурації довірених видавців до конкретних гілок і робочих процесів, а не лише до репозиторіїв. Це мова, яка потрібна для презентації раді директорів.
Хробак вже знає, де зберігаються ваші облікові дані ШІ
Mini Shai-Hulud не зупиняється на секретах CI. Datadog Security Labs задокументували, що корисне навантаження читає ~/.claude.json і викрадає його. Воно сканує сховища 1Password та Bitwarden, облікові дані сервісів Kubernetes, токени постачальників хмарних послуг та файли історії оболонок, куди розробники вставляють API-ключі. Деобфускація StepSecurity підтвердила, що Mini Shai-Hulud збирає конфігурації серверів Claude та Kiro MCP, які зберігають API-ключі та токени автентифікації для зовнішніх служб. Для розробників, які використовують агенти кодування ШІ, хробак вже знає, де зберігаються їхні облікові дані.
OpenAI, Anthropic та Meta продовжуватимуть публікувати системні карти. Вони продовжуватимуть фінансувати змагання red-team. Вони продовжуватимуть проходити оцінки моделей. Ніщо з цього не зупинить наступного хробака, який заїде через release.yml.
Команда аналізу постмортему TanStack прямо заявила: сучасні засоби захисту ланцюга поставок важливі, але недостатні самі по собі. Команди повинні проактивно виявляти та закривати прогалини в робочих процесах, а не покладатися виключно на функції безпеки своїх інструментів.
Як захиститися (Порада ІТ-Блогу):
1. **Ретельно перевіряйте сторонні залежності:** Перед додаванням нових пакетів до проєкту завжди перевіряйте їхню репутацію, кількість завантажень, активність розробки та наявність відомих проблем безпеки. Використовуйте інструменти сканування залежностей, такі як Snyk або Dependabot.
2. **Впроваджуйте суворі політики доступу та аудиту:** Обмежте доступ до ваших систем CI/CD та облікових даних. Регулярно переглядайте журнали доступу та дій, щоб виявляти підозрілу активність. Розгляньте використання тимчасових облікових даних та принципу найменших привілеїв.
Джерело новини: venturebeat.com
