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

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

CERT C C++

О документе

Что это SEI CERT C / CERT C++ Coding Standard — свод правил безопасного программирования на C и C++, изданный SEI (Software Engineering Institute). Стандарт ориентирован на безопасность: его правила нацелены на устранение конструкций, ведущих к эксплуатируемым дефектам (переполнения буфера, целочисленные переполнения, use-after-free, неопределённое поведение). В курсе CERT нужен как явная граница SCA: компонентный анализ не видит ошибок в коде на уровне памяти, и их закрывает именно кодовая дисциплина.

CERT-правила сопровождаются оценкой риска (severity / likelihood / remediation cost) и приоритетом, а нарушения выявляются преимущественно статическим анализом исходного кода — не анализом состава зависимостей.

Ключевые требования

Зона, которую SCA не закрывает - Безопасность памяти. Правила против переполнений буфера, выхода за границы массива, разыменования нулевого/висячего указателя. - Целочисленная безопасность. Контроль переполнений и небезопасных преобразований целых. - Недопущение неопределённого поведения (UB). Конструкции, дающие UB, рассматриваются как дефект безопасности. - Безопасная работа с ресурсами. Корректное управление памятью, дескрипторами, временем жизни объектов (double-free, утечки, use-after-free). - Приоритизация по риску. Каждое правило имеет оценку severity/likelihood — для триажа нарушений. - Проверяемость статикой. Соответствие проверяется анализатором по исходникам, а не по SBOM.

Что считать evidence

Артефакты соответствия (это НЕ SBOM/VDR) - Отчёт статического анализатора с привязкой findings к идентификаторам CERT-правил. - Журнал отклонений (deviations) с обоснованием, почему конкретное нарушение принято. - Запись о пороге блокировки сборки по критическим CERT-нарушениям в CI. - Инвентаризация собственного C/C++-кода (что вообще анализируется) — стык с build inventory. - Тренд числа нарушений по релизам как доказательство дисциплины.

Почему здесь нет SBOM-евиденса SBOM/VDR/VEX доказывают состав и уязвимости зависимостей. CERT — про дефекты вашего исходного кода. Подмена одного другим — типичная ошибка трассировки.

Разграничение доказательной базы:

Что проверяем Чем доказываем Чем НЕ доказываем
Дефекты памяти/UB в своём коде Отчёт статического анализатора (CERT-rule ID) SBOM, VDR, VEX
Принятые нарушения Журнал отклонений с обоснованием Реестр лицензий
Полнота анализа Инвентаризация анализируемого кода Сканер уязвимостей зависимостей

Маппинг на практики и шаблоны

Ограничение

Это учебная карточка Карточка показывает роль CERT как границы SCA и не воспроизводит каталог правил. Точные формулировки правил, оценки риска и рекомендации для аудита сверять с официальным SEI CERT Coding Standard и регламентами Организации.