Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
MISRA C C++
О документе
Что это MISRA C / MISRA C++ — наборы руководящих указаний (guidelines) по применению C и C++ в критичных и встраиваемых системах, выпускаемые консорциумом MISRA (исторически — из автомобильной отрасли). В отличие от CERT, чья отправная точка — безопасность, MISRA исходит из надёжности и предсказуемости: цель — исключить «опасные» и неоднозначно трактуемые конструкции языка, чтобы поведение кода было детерминированным и пригодным для сертификации. В курсе MISRA, как и CERT, маркирует границу SCA: дисциплина кода, которую состав зависимостей не отражает.
MISRA классифицирует указания на mandatory / required / advisory и вводит формализованный механизм deviations — задокументированных отступлений с обоснованием. Это процессное отличие от CERT: соответствие MISRA подразумевает оформленную процедуру отклонений.
Ключевые требования
Зона, которую SCA не закрывает - Подмножество безопасного языка. Запрет опасных/неоднозначных конструкций C/C++ ради предсказуемого поведения. - Категории обязательности. Mandatory нарушать нельзя; required — только через оформленное deviation; advisory — рекомендательно. - Формализованные отклонения (deviations). Любое отступление от required документируется с обоснованием и утверждением — иначе соответствие не заявляется. - Полнота охвата кода. Декларируется, какой код проверяется и какие части исключены (с обоснованием). - Проверяемость инструментом. Соответствие подтверждается статическим анализатором, сертифицированным под MISRA, по исходникам. - Пригодность к сертификации. Результат используется в доказательной базе функциональной безопасности, а не только AppSec.
Что считать evidence
Артефакты соответствия (это НЕ SBOM/VDR) - MISRA compliance report анализатора с разбивкой по mandatory/required/advisory. - Реестр deviations с обоснованием и утверждающей ролью по каждому отступлению от required. - Декларация охвата: какой исходный код проверен, что и почему исключено. - Запись о блокировке сборки при нарушении mandatory-правил в CI. - Тренд соответствия по релизам как доказательство устойчивости процесса.
Чем отличается от CERT CERT приоритизирует по риску безопасности и не требует формальной процедуры отклонений; MISRA строит соответствие вокруг категорий обязательности и оформленных deviations. Для аудита это разные доказательные следы — не смешивать.
CERT vs MISRA как доказательные модели:
| Аспект | CERT | MISRA |
|---|---|---|
| Отправная точка | Безопасность (эксплуатируемость) | Надёжность, предсказуемость |
| Приоритизация | По severity/likelihood | По категориям mandatory/required/advisory |
| Отклонения | Без формальной процедуры | Оформленные deviations с утверждением |
| Применение | AppSec / устранение дефектов | Доказательная база функциональной безопасности |
Маппинг на практики и шаблоны
- Что попадает под анализ исходников: П19. C C++ make build inventory.
- Связь кодовой дисциплины с процессом РБПО: П40. Огнестойкость РБПО и SCA процесс.
- Встраивание в общий процесс: Регламент композиционного анализа ПО.
- Контекст модуля: М09. C/C++ legacy. Смежная кодовая дисциплина: CERT C C++.
Ограничение
Это учебная карточка Карточка показывает роль MISRA как границы SCA и не воспроизводит сами указания. Точные формулировки правил, их категории и механизм deviations для аудита сверять с официальными изданиями MISRA C / MISRA C++ и регламентами Организации.