Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
CWE Top 25
О документе
Ежегодный список из 25 наиболее опасных классов слабостей ПО, который ведёт MITRE при поддержке CISA (США) на базе таксономии CWE (Common Weakness Enumeration). В отличие от CVE (конкретная уязвимость в конкретном продукте), CWE описывает тип дефекта — например, CWE-79 (XSS), CWE-89 (SQL-инъекция), CWE-787 (out-of-bounds write). Рейтинг рассчитывается по данным реальных CVE (частота + серьёзность по CVSS) за период. Для SCA/OSA это не требование к процессу, а словарь для классификации и приоритизации: он переводит поток CVE из сторонних компонентов в понятные инженеру классы дефектов.
Ключевые требования
- CWE как общий язык дефектов: каждая найденная уязвимость должна иметь привязку к CWE-ID, чтобы устранение шло по типу, а не точечно.
- Цепочка CVE → CWE → устранение: от конкретной CVE в компоненте к классу слабости и к инженерному паттерну исправления/контроля.
- Приоритизация по Top 25: уязвимости, попадающие в наиболее опасные классы (например, CWE-787, CWE-79, CWE-89), получают повышенный приоритет триажа.
- Связь с C/C++ legacy: классы памяти (CWE-787, CWE-125, CWE-416, CWE-476) особенно значимы для нативного кода без пакетного менеджера.
- Не нормирует процесс: это таксономия и рейтинг, а не набор контролей; обязательность приходит из политики управления уязвимостями.
Что считать evidence
- Результаты SCA/SAST-сканирования с проставленными CWE-ID по каждому findings; отчёт о распределении находок по классам CWE.
- Карта соответствия CVE → CWE в VDR: для каждой уязвимости компонента указан класс слабости и его место в Top 25.
- Приоритизация триажа с явной отметкой попадания в Top 25 (повышенный приоритет/SLA устранения).
- Для C/C++: перечень находок по классам памяти (CWE-787/125/416/476) с привязкой к build evidence.
- Решения VEX с обоснованием на уровне класса (почему данный класс слабости не эксплуатируем в контексте продукта).
Маппинг на практики и шаблоны
- П06. Grype поверх готового SBOM, П07. OSV-Scanner и lockfiles — источник CVE, к которым привязываются CWE.
- П09. VDR и VEX различие факта и решения, П35. VEX triage — приоритизация и обоснование по классам слабостей.
- Шаблон отчета по компоненту, Паспорт риска компонента — фиксация CWE-классификации находок.
- C/C++ контекст: CERT C/C++, MISRA C/C++ — правила кодирования против тех же классов памяти.
- Модули: Модуль М06 (поиск уязвимостей), Модуль М13 (трассировка и evidence).
- Смежно: OWASP Top 10 A06 (уязвимые компоненты), БДУ ФСТЭК (национальный каталог).
Ограничение
Это учебная карточка, а не официальный текст. Состав и порядок Top 25 пересматриваются ежегодно — актуальный список и методику ранжирования сверяйте с публикацией MITRE/CISA за нужный год.