Три сцены из одного банка. Инженер скачивает с публичного хаба дообученную модель для внутреннего продукта «Ковчег» — в формате pickle-чекпойнта с молчаливым бэкдором, который исполняет произвольный код при загрузке весов. Это не гипотетический сценарий: JFrog задокументировал именно такие модели на Hugging Face. Сотрудник, которому «Ковчег» кажется медленным, копирует клиентскую выписку в публичный чат-бот — данные банка уходят в Shadow AI. Агентная ветка «Ковчега» начинает вести себя аномально, и выясняется, что остановить её нечем: по отчёту Saviynt 2026, лишь 5% security-лидеров уверены, что смогли бы сдержать скомпрометированного агента.
Эта глава — про supply-chain plane и последний рубеж: защиту стека от отравления моделей и уязвимых компонентов, блокировку несанкционированных ИИ-сервисов и техническую возможность экстренно остановить автономных агентов.
Бизнес-цель: знать, из чего собрана система
Знать, из чего собрана AI-система, не пускать в неё непроверенное, не давать данным утекать в Shadow AI и уметь мгновенно остановить агента. Три обещания бизнесу:
- Каждый компонент — веса, датасет, промпт, библиотека — находится в реестре и проверен.
- Корпоративные данные не уходят на неавторизованные AI-эндпоинты.
- Любого агента можно остановить и откатить в безопасное состояние — и это протестировано.
Драйверы: угрозы и регулятор
Угроза supply-chain в LLM-стеке кодифицирована OWASP: LLM03 (Supply Chain), LLM04 (Data & Model Poisoning), LLM06 (Excessive Agency). Каждый из них бьёт в конкретную точку архитектуры.
Malicious weights. Pickle-чекпойнт содержит исполняемый код. Загрузка весов триггерит RCE — удалённое выполнение кода на машине, где модель деплоится. Формат pickle по своей природе позволяет сериализовать произвольные объекты Python, включая функции и классы, что делает его мощным инструментом атаки.
Shadow AI. По оценкам 2026, около 78% сотрудников используют неавторизованные ИИ-инструменты. Shadow AI-агенты и неуправляемые машинные идентичности — растущий вектор. Соотношение машинных идентичностей к человеческим в корпоративных сетях достигло 144:1, и каждая неучтённая машинная идентичность — потенциальная дыра.
Неостановимый агент. EU AI Act (Art. 14) требует human oversight — включая возможность вмешаться и остановить систему. Если технически остановить агента нельзя, вы нарушаете не только внутренние политики, но и закон.
Архитектурный паттерн: AI Circuit Breaker & Kill-Switch
Архитектура состоит из четырёх связанных слоёв: реестр компонентов (AIBOM), сканирование артефактов перед деплоем, контроль периметра для блокировки Shadow AI и многослойный механизм остановки.
Kill-switch — не одна кнопка. Это слоистый набор детерминированных контролей: прервать сессию, отозвать креды и доступ к инструментам, откатить систему в безопасное состояние. Кнопка «Стоп» без отзыва кредов и заморозки незавершённых действий — декорация.
Инженерный стек
| Слой | Инструмент / стандарт | Назначение |
|---|---|---|
| AIBOM | CycloneDX ML-BOM (ECMA-424, 2-е изд., дек 2025) | Реестр компонентов: model, llm_endpoint, agent, mcp_server, tool, embedding, vector_store, dataset, retriever |
| Генерация BOM | Syft, Grype, Cisco AIBOM | Автогенерация в CI |
| Сканирование моделей | ModelScan, picklescan | Обнаружение исполняемого кода в весах |
| Формат весов | Safetensors | Не исполняет код при загрузке; с апреля 2026 — под PyTorch Foundation / Linux Foundation |
| Периметр | Next-gen CASB/SWG (Netskope, Zscaler) | Блокировка неавторизованных AI-эндпоинтов |
| Self-host / контроль | OpenLLM, vLLM, OPA + feature-flags | Локальный деплой и kill-switch как policy |
Инженерная реализация
Шаг 1. AIBOM в CI
Автогенерация ML-BOM по стандарту CycloneDX: что, откуда, версия, лицензия, хэш — для весов, датасетов, системных промптов, библиотек, а также агентов, MCP-серверов и vector store. Ручной реестр устаревает в момент обновления любой зависимости. Единственный рабочий вариант — генерация в пайплайне, на каждом коммите.
Шаг 2. Сканирование весов перед деплоем
model artifact → ModelScan/picklescan → [код внутри?] ─да→ block + alert
│нет
prefer safetensors ────┴→ verify hash/provenance → deploy
Сканер проверяет артефакт на наличие исполняемого кода. Если код обнаружен — блокировка и алерт. Если чисто — проверка хэша и provenance, затем деплой. Preference отдаётся формату Safetensors: он структурно не позволяет встроить исполняемый код в файл весов.
Шаг 3. Блокировка Shadow AI
CASB/SWG обнаруживает и блокирует отправку корпоративного трафика на неавторизованные внешние AI-эндпоинты. Санкционированный gateway — единственный легальный путь к моделям.
Запрет без удобной легальной альтернативы порождает Shadow AI. Если внутренний инструмент медленный, неудобный или отсутствует — сотрудник найдёт публичный чат-бот и вставит туда клиентские данные. Блокировка периметра работает только тогда, когда людям есть чем пользоваться внутри.
Шаг 4. AI Kill-Switch как внешнее состояние
Kill-switch реализован как state machine, а не «if» в коде агента. Флаг в policy engine или feature-flag, который все сервисы и агенты обязаны проверять перед действием. Слои остановки:
- Прервать текущую сессию/цикл агента — немедленная остановка выполнения.
- Отозвать short-lived креды и доступ к инструментам — MCP-скоупы, API-ключи, доступ к vector store. Без кред агент физически не может продолжить работу.
- Откатить в безопасное состояние — заморозить незавершённые действия, перевести систему в предсказуемый режим.
Ключевое решение: kill-switch живёт вне кода агента. Если логика остановки зашита в сам агент, скомпрометированный агент её обойдёт. Внешний policy engine, который агент обязан проверять — единственная архитектура, которой можно доверять.
Шаг 5. Least privilege для агентов
Инструменты агента — с минимальными скоупами. Креды short-lived и отзываемые. Sandbox обязателен. Если агент не имеет доступа к инструменту, который ему не нужен для текущей задачи, компрометация агента не даёт атакующему этот доступ.
Где ломается
Kill-switch без учений не срабатывает. Непротестированный «стоп» в момент инцидента не работает — отсюда и 5% уверенных. Регулярные chaos-drill остановки агента обязательны. Вы не узнаете, что kill-switch не работает, до тех пор, пока не попробуете его нажать в условиях, приближенных к боевым.
Распределённые агенты. Остановить рой сложнее одного процесса. Нужна централизованная точка отзыва — но она же единая точка отказа. Централизованная точка отзыва нужна, но её отказ останавливает весь механизм.
AIBOM устаревает без автогенерации в CI. Ручной реестр расходится с реальностью деплоя за один спринт. Если BOM генерируется не в пайплайне, она врёт.
CASB обходят. Личные устройства и сети вне периметра. Полный контроль недостижим — снижаем риск, не обнуляем. Кто-то обязательно откроет ChatGPT на личном телефоне по сотовой сети.
Poisoning скрыт. Сканер ловит исполняемый код в pickle, но не «логическую» отравленность датасета. Backdoor-триггеры в данных — когда модель работает корректно на всех входах, кроме определённого паттерна, который активирует скрытое поведение — требуют eval и red-team. Сканер весов здесь бессилен.
Safetensors — не панацея. Формат убирает RCE при загрузке, но не гарантирует «чистоту» самих весов. Поведенческие бэкдоры, вшитые в веса модели при обучении на отравленных данных, остаются. Safetensors решает одну конкретную проблему — исполнение кода при десериализации — и не более того.
Стандарты и маппинг
| Стандарт | Покрытие |
|---|---|
| OWASP LLM | LLM03 (Supply Chain), LLM04 (Data & Model Poisoning), LLM06 (Excessive Agency) |
| ISO/IEC 42001 | Управление поставщиками, изменениями, инцидентами |
| NIST AI RMF | Manage (third-party entities, incident response) |
| EU AI Act | Art. 14 (oversight, kill-switch как часть), Art. 15 (cybersecurity/robustness) |
| CycloneDX / ECMA-424 | Формат AIBOM |
Чеклист зрелости
L1. Список моделей и зависимостей ведётся вручную. Скан весов выполняется вручную перед деплоем. Kill-switch обсуждается, но не реализован.
L2. AIBOM (CycloneDX) генерируется в CI. Автоскан весов перед деплоем. CASB-блок Shadow AI на периметре. Kill-switch существует как policy-флаг.
L3. Регулярные учения kill-switch — chaos-drill остановки агента с отзывом кредов. Least-privilege для агентов с short-lived кредами. Provenance и hash-проверка весов. Incident runbook. Safetensors по умолчанию для всех новых моделей.
Лаба и артефакт
Сгенерировать CycloneDX ML-BOM для «Ковчега» — включая vector store и MCP-серверы. Прогнать веса через ModelScan, показать блок на pickle-бэкдоре и переход на safetensors. Настроить kill-switch как policy-флаг и провести учение остановки агентной ветки с отзывом кредов. Сымитировать Shadow AI-эндпоинт и показать блок CASB.
Артефакт: AIBOM + отчёт скана + протокол теста kill-switch. Это доказательство oversight для аудита (гл. 6, 10).
Пять процентов security-лидеров уверены, что смогут остановить скомпрометированного агента. Остальные девяносто пять надеются, что до этого не дойдёт. Откройте AIBOM вашей системы — если её нет, вы не знаете, из чего собран ваш ИИ. Нажмите kill-switch на тестовом агенте прямо сейчас — если он не остановился за секунды, вы в тех девяноста пяти.