Как читать авторский курс и нормативные материалы
Это учебные материалы, а не заключение о соответствии конкретного продукта. Организационные модели курса отделяйте от терминов стандарта: ППК в опубликованном проекте — машиночитаемый перечень, а живой реестр его версий является практикой сопровождения. Термин OSA в разных материалах имеет разный охват. Статус и обязательность нормативного документа проверяются отдельно; проект КАПО опубликован как проект первой редакции.
CWE
Для чего
CWE (Common Weakness Enumeration) — это иерархический каталог типов слабостей ПО (например, CWE-79 — XSS, CWE-89 — SQL-инъекция, CWE-787 — запись за границей буфера). CWE отвечает на вопрос «какого рода ошибка», тогда как CVE отвечает «какая конкретная уязвимость в каком продукте». В SCA/OSA CWE используется для классификации причины находки и для группировки рисков по типам, а не для сопоставления компонентов по версиям.
Как применяют
CWE-идентификатор приходит вместе с обогащением CVE: NVD проставляет weaknesses[].description[].value = "CWE-787" в записи уязвимости. В VDR (CycloneDX) тот же тип фиксируется в vulnerabilities[].cwes:
{
"cwes": [787],
"ratings": [
{ "method": "CVSSv31", "score": 9.8, "severity": "critical" }
]
}
Сам каталог распространяется как единый XML/CSV-дамп (CWE List), который можно разобрать локально:
# из официального XML-дампа CWE вытащить имя слабости по ID
xmllint --xpath "string(//*[local-name()='Weakness'][@ID='787']/@Name)" cwec_latest.xml
# Out-of-bounds Write
Практическое применение в отчётности — агрегировать находки по CWE, чтобы увидеть системные дефекты (например, преобладание CWE-787/CWE-125 в C/C++ legacy указывает на проблемы с памятью).
Сильные стороны
- Единая таксономия причин: позволяет считать статистику дефектов по типам, а не по разрозненным CVE.
- Иерархия (Pillar → Class → Base → Variant) и связи
ChildOf/PeerOfдают агрегацию на нужном уровне детализации. - Лежит в основе отраслевых списков приоритетов (CWE Top 25) и требований к покрытию тестами.
- Полностью открытый, версионируемый, офлайн-пригодный дамп.
Ограничения
- CWE классифицирует тип слабости, но не говорит об эксплуатируемости и не сопоставляет уязвимость с версией компонента — это задача CVE/CPE/PURL.
- Одной CVE могут приписать несколько CWE или
NVD-CWE-noinfo/NVD-CWE-Other— классификация неполна и иногда субъективна. - Разные источники (NVD vs CNA) могут проставить разные CWE одной и той же уязвимости.
Offline / on-premise
Да. CWE List публикуется как самодостаточный XML/CSV/PDF-дамп и не требует онлайн-сервиса для работы: каталог скачивается один раз и разбирается локально. Обновляется редко (несколько релизов в год), поэтому в закрытом контуре достаточно периодически подменять версию дампа.
Связанные темы
М04. Идентификаторы компонентов и уязвимостей · М06. Поиск уязвимостей и управление VDR/VEX · М09. C/C++ legacy
Смежные карточки: CVE · NVD · EPSS · CWE Top 25 · CERT C C++
Практики: П09. VDR и VEX различие факта и решения · П35. VEX triage