Перейти к основному содержимому

Оценка процессов ГОСТ Р 56939-2024

Привязанный к исходникам CLI-сценарий сбора доказательств и оценки 25 процессов без заявления о сертификации. См. примеры и проверки перед применением.

Корпоративная версия

CodeGraph собирает проектные доказательства и рассчитывает инженерную оценку для 25 идентификаторов процессов раздела 5 ГОСТ Р 56939-2024. Результат служит входом для compliance-review. Сертификация, заключение ФСТЭК и оценка фактической работы организационных мер оформляются отдельными процедурами.

Поддерживаемая поверхность

Сценарий отчёта сейчас доступен через CLI:

  • python -m src.cli compliance gost-56939
  • python -m src.cli compliance checklist
  • python -m src.cli compliance traceability
  • python -m src.cli compliance history
  • python -m src.cli compliance delta

GOST-отчёт формируют CLI, checklist, history и матрица трассируемости. Endpoint /api/v1/compliance/heatmap предоставляет визуализацию для дашборда.

Воспроизводимая оценка

Передавайте явное имя проекта и путь к его DuckDB. Не полагайтесь на резервное имя проекта из текущего каталога.

$ProjectName = "my-project"
$CpgDb = "D:\codegraph-data\my-project.duckdb"

python -m src.cli compliance checklist --project $ProjectName --db $CpgDb --format json

python -m src.cli compliance gost-56939 --project $ProjectName --db $CpgDb --format markdown --language ru --include-traceability

Первая команда показывает найденные и недостающие артефакты. Вторая по умолчанию выводит отчёт в stdout. Для намеренного создания файла передайте –output:

python -m src.cli compliance gost-56939 --project $ProjectName --db $CpgDb --format gost --language ru --include-traceability --output "gost-56939-report.md"

Используйте –auto-collect только когда разрешено генерировать недостающие входные данные. –force-collect игнорирует cache сбора и может работать дольше. Сохраняйте эти флаги: они меняют происхождение доказательств.

История и сравнение

История записывается только с флагом –save-history:

python -m src.cli compliance gost-56939 --project $ProjectName --db $CpgDb --format json --save-history

python -m src.cli compliance history --project $ProjectName --limit 10

python -m src.cli compliance delta --old <older-report-id> --new <newer-report-id>

Если матрица нужна отдельно, сформируйте её явной командой:

python -m src.cli compliance traceability --project $ProjectName --db $CpgDb --format markdown --output "gost-56939-traceability.md"

Delta сравнивает сохранённые оценки, но сама не объясняет изменение ревизии исходников, конфигурации, режима сбора или ручных доказательств. Фиксируйте эти данные рядом с обоими report ID.

Реестр процессов

Таблица описывает тип оценки и область покрытия. Итоговый статус зависит от фактически найденных артефактов и поведения evaluator.

Реестр процессов
Процесс Тип Граница оценки
5.1 organizational Планирование: ручные и собранные данные
5.2 organizational Обучение требует ручной оценки
5.3 mixed Доказательства требований безопасности
5.4 automated Артефакты управления конфигурацией
5.5 mixed Артефакты управления недостатками
5.6 automated Архитектурные артефакты
5.7 automated Артефакты модели угроз
5.8 automated Артефакты правил кодирования
5.9 automated Артефакты экспертизы кода
5.10 automated Артефакты статического анализа
5.11 external Динамический анализ из интегрированных инструментов
5.12 mixed Доказательства безопасной сборки
5.13 mixed Доказательства безопасности среды сборки
5.14 automated Артефакты управления доступом
5.15 automated Артефакты защиты секретов
5.16 external Доказательства композиционного анализа
5.17 external Доказательства supply chain
5.18 mixed Доказательства функционального тестирования
5.19 mixed Доказательства нефункционального тестирования
5.20 mixed Доказательства безопасности выпуска
5.21 automated Артефакты поставки
5.22 organizational Поддержка требует организационных данных
5.23 mixed Доказательства реагирования на уязвимости
5.24 automated Артефакты поиска уязвимостей
5.25 organizational Вывод из эксплуатации требует ручной оценки

Статусы и расчёт

Каждый процесс получает статус FULL, PARTIAL, GAP или N/A.

  • FULL даёт 1,0.
  • PARTIAL даёт 0,5.
  • GAP даёт 0.
  • N/A исключается из знаменателя.

Процент равен сумме баллов применимых процессов, делённой на их количество. Он отражает доказательства, распознанные настроенными evaluator; сертификация оформляется отдельной процедурой.

manual_overrides позволяет запросить статус процесса, но запрос FULL ограничен completion threshold и не может обойти отсутствие достаточных доказательств. Если управление требует обоснования, храните основание, согласование и исходный артефакт рядом с отчётом.

Конфигурация

compliance:
  gost_56939:
    enabled: true
    auto_evaluate_on_audit: true
    store_history: true
    history_db_path: "data/compliance_history.sqlite"
    organizational_processes_status: "n_a"
    sarif_search_paths:
      - "data/"
      - "reports/"
    manual_overrides: {}
    content_check_min_bytes: 500
    content_check_read_limit: 8192
  • enabled включает функцию.
  • auto_evaluate_on_audit разрешает интеграции аудита запросить оценку.
  • store_history и history_db_path настраивают историю.
  • organizational_processes_status задаёт статус организационных процессов по умолчанию.
  • sarif_search_paths ограничивает поиск SARIF.
  • manual_overrides передаёт явные запросы статусов.
  • content_check_min_bytes и content_check_read_limit ограничивают проверки наличия содержимого.

Используйте пути, одобренные для конкретной установки. Перед внешней передачей проверяйте отчёт: расположение доказательств, находки и метаданные проекта могут быть чувствительными.

Трассируемость и доказательства

Матрица связывает распознанные требования и CWE-данные с кодом, тестами, находками и исправлениями, если такие отношения есть. Пустая связь показывает, что мера не найдена в собранных данных; решение по мере принимается после отдельной проверки.

Для аудируемого запуска сохраните:

  • ревизию исходников и идентичность проекта;
  • идентичность и актуальность DuckDB;
  • ревизию конфигурации;
  • точную CLI-команду и код завершения;
  • флаги сбора и входные каталоги;
  • hash отчёта и матрицы;
  • ручные доказательства и решение reviewer;
  • известные недоступные источники.

Ошибки и восстановление

  • Проект определился как unknown/current directory: повторите с –project и –db.
  • Не хватает артефактов: изучите checklist, исправьте пути и повторите сбор.
  • Неожиданный FULL или PARTIAL: проверьте артефакты процесса и manual_overrides.
  • Нет истории: проверьте –save-history и history_db_path.
  • Delta не строится: убедитесь, что оба report ID есть в одном history store.
  • Команда прошла, но данных недостаточно: для закрытия оценки добавьте требуемые свидетельства и решение ответственной линии.

Исходные контракты

  • src/cli/security_suite/compliance_commands.py — аргументы CLI, вывод, история и сбор
  • src/compliance/gost_56939/artifact_collector.py — сбор доказательств
  • src/compliance/gost_56939/process_evaluator.py — реестр 25 процессов и статусы
  • src/compliance/gost_56939/models.py — статусы и расчёт
  • src/compliance/gost_56939/report_renderer.py — Markdown, JSON и GOST-формат
  • src/compliance/gost_56939/compliance_store.py — история и delta
  • src/compliance/gost_56939/traceability.py — матрица трассируемости
  • src/config/runtime_sections/unified_config_runtime_models.py — поля конфигурации