Пиков / КАПО
Как читать авторский курс и нормативные материалы

Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин 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.

Артефакты на сдачу

Критерий зачёта

Показать преподавателю: (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 - минимальные элементы.