Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин 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, опыт, ИБ-подразделение) и комплект поставки/русская документация — вынесите в отдельный список запрашиваемых документов: Документы поставщика для закупки.
Что вы должны увидеть
- Матрица ≥ 8 строк, где минимум одна строка имеет статус
риск несоответствия(ожидаемо — OSA Proxy по Conan/Conda/RubyGems) и минимум однане подтверждено(ожидаемо — qmake). - Для каждого спорного статуса есть сценарий пилота с названным артефактом.
- Список из 3–4 бинарных условий Go/No-Go по C/C++.
Если не получилось - Все статусы «соответствует». Вы поверили устным «да» — пересмотрите тип evidence; устный ответ не закрывает обязательное требование. - Статус поставлен «продукту», а не режиму. «Conan поддерживается» без разделения SCA-манифест / OSA Proxy — типичная ошибка, ведущая к ложному «соответствует». - Go/No-Go сформулирован оценочно («работает хорошо») — переформулируйте до наблюдаемого на артефакте порога.
Критерий зачёта
Покажите преподавателю: (1) матрицу с корректно разнесёнными режимами и консервативными статусами; (2) сценарии пилота для всех неоднозначных строк; (3) набор Go/No-Go условий. Зачёт, если матрица не содержит обязательных требований со статусом «соответствует» на одном лишь устном evidence.