Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
Интеграция GitLab CI
О чём
Как CodeScoring встраивается в сборочный конвейер Организации. В опроснике из систем хостинга кода выбран GitLab, поэтому именно GitLab CI — основной целевой сценарий интеграции, а не абстрактная «поддержка VCS». Предмет проверки: подключение универсального агента к пайплайну, запуск сканирования (manifest и build scan) внутри CI, поведение security gate (блокирует ли сборку), экспорт SBOM из пайплайна и уведомления по событиям политик.
Что подтверждено
По документации и материалам демонстрации поставщика (матрицы общих требований и SCA, §4–6 исследования):
- GitLab как VCS подтверждён — интеграции с системами хостинга кода и GitLab подтверждены документацией и материалами демонстрации; в опроснике указан именно GitLab.
- Универсальный агент для сборочных систем — поддержка встраивания в виде агента в GitLab, Jenkins, TeamCity подтверждена (SCA, требование об универсальном агенте). Для GitLab это штатный режим.
- Политики в CI/CD-конвейере — поддерживается запуск агента в CI/CD и применение политик безопасности на этом этапе (требование §3.3 ТЗ о единой настройке политик, в том числе в CI/CD с универсальным агентом).
- Сканирование из CLI/агента — project scan, manifest scan, build scan, анализ docker/image и архивов — то, что агент может выполнять внутри job пайплайна.
- SBOM-форматы для выгрузки — CycloneDX и SPDX (JSON), а также табличные выгрузки CSV; это пригодно для артефактов CI-job.
Что не подтверждено или ограничено
«Подтверждено в принципе» ≠ «проверено на вашем пайплайне» Интеграция с GitLab CI подтверждена как возможность продукта, но конкретные сценарии Организации не проверялись. Спорные места смещаются в пилот.
- Build scan C/C++ внутри CI — для проектов без пакетного менеджера инвентаризация достигается на этапе сборки через агент/eBPF. В CI это означает, что job должен реально собирать проект (make/cmake; qmake прямо не подтверждён) под наблюдением агента. Применимость в раннере — предмет пилота, см. C C++ build scan make cmake qmake.
- Права агента в раннере (eBPF) — build scan опирается на eBPF; нужны соответствующие привилегии раннера. Какие именно права требуются, работает ли без root и что теряется без него — не зафиксировано, см. eBPF права агента и ограничения.
- Поведение security gate — что именно делает агент при срабатывании политики в CI: помечает job, возвращает ненулевой код, блокирует merge — в материалах детально не описано. Логика блокировки сборки требует демонстрации.
- Уведомления и аудит из пайплайна — SMTP, задачи в Jira, события в интерфейсе и audit-log заявлены, но не все каналы демонстрировались; проверка SMTP/Jira отнесена к пилоту.
- Другие VCS (GitHub, Bitbucket, Azure DevOps) и другие сборщики (Jenkins, TeamCity) — подтверждены как возможность, но в объёме поставки Организации не требуются и не проверялись.
Что проверить на пилоте
Сценарии для пилота на GitLab CI 1. Подключить GitLab и один CI/CD-пайплайн C/C++ проекта без Conan; выполнить build scan на make и cmake, отдельно на qmake, если он реально используется (приёмочный сценарий 2 исследования). 2. Какие права нужны агенту в GitLab-раннере для eBPF build scan; возможен ли запуск без root и что при этом теряется в полноте инвентаризации. 3. Как именно ведёт себя security gate в CI: блокирует ли job/merge при нарушении политики, настраивается ли «мягкий» режим (warn) и отложенная блокировка. 4. Экспорт SBOM прямо из пайплайна: какие версии CycloneDX/SPDX (JSON), CSV-выгрузки, можно ли сохранять как артефакт job. 5. Проверить уведомления и журналирование из CI: SMTP, Jira, события в UI, audit-log (приёмочный сценарий 7 исследования).
Связь
- Матрица соответствия требованиям OSA SCA — матрицы общих требований и SCA (CI/CD, универсальный агент).
- Вопросы для пилота CodeScoring — вопросы 1, 2, 5 (build scan, права eBPF, формат SBOM).
- C C++ build scan make cmake qmake — что именно собирается под наблюдением агента.
- eBPF права агента и ограничения — привилегии раннера.
- Приемочные сценарии пилота — сценарии 2 и 7.
- П16. GitLab CI security gate · П31. Пилот CodeScoring make CMake qmake · Требования к CI security gate — практики и требования к гейту.