9.4.1 · блок 9
Безопасность ML supply chain
Безопасность ML supply chain
Зачем это нужно
ML-сервис поставляет не только код: в production попадают образ, зависимости, модель, данные и конфигурация. Каждый из них может быть подменён или содержать уязвимость. Безопасность supply chain проверяет, что именно вы собираете и запускаете.
Основные идеи
Риск сериализации. pickle, joblib и похожие Python-форматы могут выполнить произвольный код при загрузке. Загружайте только проверенные артефакты из доверенного registry; для подходящих сценариев рассмотрите safetensors, ONNX или другие форматы без исполнения кода.
Подпись образов. Cosign подписывает container image; deployment policy может разрешать запуск только подписанных образов по digest. Тег latest не является идентификатором поставки.
SLSA описывает уровни и provenance software supply chain: кто и каким процессом собрал артефакт. Это рамка для улучшений, а не одна кнопка безопасности.
Trivy сканирует образы, filesystem и конфигурации на известные уязвимости и misconfiguration. Найденный CVE нужно оценить по достижимости и контексту, а не молча игнорировать или блокировать всё подряд.
Как это выглядит на практике
CI собирает inference image из lockfile, сканирует его Trivy, публикует по digest и подписывает Cosign. Model registry хранит hash модели и approval. CD принимает только digest, соответствующий allowlist и подписи.
Артефакт model.pkl, присланный в чат, не загружают «для быстрой проверки». Его происхождение, hash и формат сначала проверяют; при сомнении модель переэкспортируют в безопасном контуре.
Что сделать после занятия
- [ ] Составьте список артефактов supply chain учебного сервиса.
- [ ] Найдите места, где сейчас используется mutable tag или непроверенный файл.
- [ ] Опишите policy: что CI должен сканировать, подписывать и сохранять как provenance.