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

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

OpenSSF Scorecard

Для чего

Scorecard автоматически оценивает практики безопасности репозитория open-source проекта и выставляет числовые баллы (0–10) по набору эвристик: есть ли code review, защищён ли branch, подписаны ли релизы, нет ли бинарных артефактов в дереве, как быстро чинятся уязвимости, используются ли pinned-зависимости, fuzzing, SAST и т.д. Это не сканер уязвимостей и не SBOM-генератор — это оценка гигиены и зрелости апстрима, помогающая решить, можно ли вообще доверять зависимости как поставщику.

Сигнал риска поставщика, а не уязвимости в коде SCA говорит «в этой версии есть CVE». Scorecard отвечает на смежный вопрос — «насколько ответственно сопровождается проект, от которого мы зависим». Низкий балл по Maintained, Branch-Protection или Dangerous-Workflow — это ранний индикатор риска цепочки поставки до того, как из проекта прилетит инцидент.

Как применяют

Оценка конкретного репозитория с машиночитаемым выводом:

export GITHUB_AUTH_TOKEN=<token>
scorecard --repo=github.com/<github-owner>/<repository> --format=json --show-details

Фрагмент вывода — баллы по отдельным проверкам, которые можно завести в policy:

{
  "score": 6.7,
  "checks": [
    { "name": "Branch-Protection", "score": 8, "reason": "branch protection on default branch" },
    { "name": "Maintained",        "score": 10, "reason": "30 commits in last 90 days" },
    { "name": "Signed-Releases",   "score": 0, "reason": "no signed releases found" },
    { "name": "Dangerous-Workflow","score": 10, "reason": "no dangerous patterns detected" }
  ]
}

Также доступен публичный API/датасет (api.securityscorecards.dev) для уже посчитанных популярных проектов и запуск отдельных проверок через --checks=Branch-Protection,Signed-Releases.

Сильные стороны

Ограничения

Offline / on-premise

Нет (в общем случае). Основные проверки обращаются к GitHub API и внешним источникам (deps.dev и др.), что требует сети и токена. Локальный режим (--local <path> для уже клонированного репозитория) покрывает лишь подмножество проверок, не зависящих от API платформы, и не заменяет полный прогон. Для закрытого контура реалистично использовать только эти локальные проверки либо заранее выгруженный публичный датасет оценок.

Связанные темы