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

Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.

Практическая работа: матрица соответствия и программа пилота

Цель

По фрагменту ТЗ собрать матрицу требование → evidence → статус, перевести спорные требования в сценарии пилота и сформулировать стоп-условия Go/No-Go для C/C++ контура Организации.

Исходные данные ТЗ требует среди прочего: OSA Firewall для Maven, NPM, NuGet, PyPI, Go, APT/RPM, Conan, Conda, RubyGems; build scan C/C++ на make, cmake, qmake без пакетного менеджера; binary analysis архивов и артефактов; reachability для Java/Python/Go; IDE-плагины VS Code и IntelliJ-based. Кандидат включён в Единый реестр российских программ, поставляется on-premise, лицензия на 50 активных авторов.

Порядок выполнения

Шаг 1. Разбить требование по режимам

Для каждого назначенного требования укажите, каким режимом продукта оно закрывается: OSA Proxy, плагин Nexus/JFrog, CLI/агент сборочного анализа, IDE-плагин. Один и тот же пакетный менеджер может фигурировать в двух строках (SCA-манифест и OSA Proxy) — это нормально, разнесите их.

Шаг 2. Заполнить матрицу

Колонки: Пункт ТЗ · Требование · Режим · Тип evidence · Подтверждение · Статус. Тип evidence — один из: документация / материалы поставки / устно на демо. Статус — один из четырёх. Минимум 8 строк.

Ожидаемый вид (фрагмент):

Пункт Требование Режим Evidence Статус
3.4 Firewall Conan/Conda/RubyGems OSA Proxy документация риск несоответствия
3.4 Firewall Maven/NPM/PyPI/Go/APT/RPM OSA Proxy документация соответствует
3.3 Build scan C/C++ make/cmake CLI/агент (eBPF) устно на демо частично
3.3 Build scan C/C++ qmake CLI/агент нет evidence не подтверждено → пилот
3.5 Binary analysis stripped .a/.so CLI/агент устно на демо частично
3.5 SBOM CycloneDX/SPDX JSON платформа документация соответствует

Шаг 3. Спорное → сценарий пилота

Каждое частично / не подтверждено / риск несоответствия превратите в проверяемый сценарий с наблюдаемым артефактом. Опирайтесь на Приемочные сценарии пилота. Примеры: - qmake-сборка C/C++ → агент в CI/CD → SBOM + граф зависимостей; наблюдаемое: число unresolved-компонентов и корректность версий линкуемых библиотек. - статическая линковка проекта с .a/.so, stripped binary, внутренним форком → что распознаётся автоматически, что требует ручной разметки (фиксировать в Реестр unresolved libraries). - OSA Proxy для каждого обязательного пакетного менеджера по списку ТЗ → фактическая блокировка тестового «плохого» пакета.

Шаг 4. Сформулировать Go/No-Go

Для C/C++ блока запишите 3–4 бинарных стоп-условия. Условие наблюдается на артефакте, а не «на ощущениях». Пример No-Go: «на qmake-сборке доля unresolved > X% при наличии сборочного контекста». Сверьте с Критерии Go No-Go после пилота.

Шаг 5. Отделить технику от документов поставщика

Требования к исполнителю (лицензия ФСТЭК, ISO 9001, опыт, ИБ-подразделение) и комплект поставки/русская документация — вынесите в отдельный список запрашиваемых документов: Документы поставщика для закупки.

Что вы должны увидеть

Если не получилось - Все статусы «соответствует». Вы поверили устным «да» — пересмотрите тип evidence; устный ответ не закрывает обязательное требование. - Статус поставлен «продукту», а не режиму. «Conan поддерживается» без разделения SCA-манифест / OSA Proxy — типичная ошибка, ведущая к ложному «соответствует». - Go/No-Go сформулирован оценочно («работает хорошо») — переформулируйте до наблюдаемого на артефакте порога.

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

Покажите преподавателю: (1) матрицу с корректно разнесёнными режимами и консервативными статусами; (2) сценарии пилота для всех неоднозначных строк; (3) набор Go/No-Go условий. Зачёт, если матрица не содержит обязательных требований со статусом «соответствует» на одном лишь устном evidence.

Связь с практиками и шаблонами