Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
Практическая работа
Две связанные части. Часть А — доказать нечестность SBOM контейнерного образа и собрать честный. Часть Б — заполнить минимальные элементы SBOM for AI для одной модели и одного датасета.
Что фиксируем перед стартом Образ (
repo:tag+ digest), commit/tag сборки, версии инструментов (syft,trivy/grype, docker), дату анализа. Без этого результат невоспроизводим.
Часть А. Честный SBOM контейнерного образа
Шаг 1. Собрать учебный образ с «удалённым» секретом
FROM busybox:latest
COPY key.api .
RUN rm key.api
docker build -t secrets-test .
Шаг 2. Сгенерировать «декларируемый» SBOM
syft secrets-test:latest -o cyclonedx-json > declared.cdx.json
trivy image --scanners secret secrets-test:latest # обратите внимание на вывод
Шаг 3. Вскрыть реальное содержимое слоёв
mkdir layers && docker save secrets-test:latest | tar -x -C layers
find layers/blobs/sha256/ -type f -exec file {} \; | grep tar
# извлечь подозрительный слой
tar xvf layers/blobs/sha256/<hash-нижнего-слоя>
cat key.api
Шаг 4. Проверить эффект обфускации
На паре «оригинал / обфусцированный образ» (заготовка преподавателя, собранная через mint slim --obfuscate-metadata):
grype <image>:latest --sort-by severity
grype <image>:obfuscated --sort-by severity
Шаг 5. Оформить вывод
Таблица расхождений «декларация ↔ реальность»: что показал declared.cdx.json / grype, что нашлось в слоях, какой техникой скрыто (rm в слое, затёртые метаданные, UPX).
Что вы должны увидеть -
trivy --scanners secretпо финальной ФС секрет не находит (он в нижнем слое). - Вblobs/sha256/— несколькоPOSIX tar archive; в одном из них живойkey.apiсBEGIN OPENSSH PRIVATE KEY. -grypeна оригинале — десятки matches (порядка 97), на обфусцированном —0 vulnerability matches / No vulnerabilities found.Если не получилось -
find … grep tarпусто — образ однослойный (scratch) или сжат: проверьтеmanifest.jsonи распакуйте все blob'ы. - Секрет «не нашёлся» в слоях — вы распаковали верхний (финальный) слой; берите нижний, по порядку изmanifest.json. -grypeпоказал одинаковое число на обоих образах — обфускация не отработала; проверьте, что сравниваете именно:obfuscated.
Часть Б. SBOM for AI (минимальные элементы)
Заполните таблицу для одной открытой модели и её обучающего датасета. Минимум — по 4 элемента на кластер.
| Кластер | Элемент | Значение (пример) |
|---|---|---|
| Models | Model identifier | PURL/SWHID/commit-hash |
| Models | Model hash value + algorithm | хэш весов, IANA-имя алгоритма |
| Models | Model license | open weight / open architecture / open data / open training |
| Models | Model training properties | pre-training + fine-tuning (RLHF / DPO / PPO) |
| Models | Model description (lineage) | модель-предшественник, дистилляция |
| Datasets | Dataset provenance | источник, способ сбора (web crawling / коммерческое соглашение) |
| Datasets | Dataset sensitivity | PII / copyright / sensitive |
| Datasets | Dataset hash | хэш файла датасета |
| Datasets | Dataset license | ссылка на лицензию датасета |
Что вы должны увидеть Заполненная таблица, где видно: (1) хэш весов, а не только кода; (2) явный тип открытости лицензии модели; (3) provenance датасета с указанием способа сбора. Эти три поля — то, чего нет в обычном SBOM.
Артефакты на сдачу
- Dockerfile, команды сборки/анализа, версии инструментов.
declared.cdx.jsonи извлечённый из слоя секрет (замаскированный).- Таблица расхождений «декларация ↔ реальность» (Часть А).
- Заполненная таблица кластеров Models/Datasets (Часть Б).
Критерий зачёта
Показать преподавателю: (1) артефакт, извлечённый из нижнего слоя и отсутствующий в финальной ФС; (2) доказанный эффект обфускации (число matches до/после); (3) таблицу SBOM for AI с заполненными Model hash, Model license (тип открытости) и Dataset provenance. Сформулировать одно правило для регламента приёмки Организации.
Связь с практиками
П37. Контейнерный образ слои секреты и удаленные файлы · П38. Честный SBOM контейнерного образа · П39. SBOM for AI minimum elements · справочник SBOM for AI - минимальные элементы.