Files
orchestrator/docs/work-items/ORCH-022/10-tech-risks.md

3.9 KiB
Raw Blame History

10 — Технические риски: Security-гейт (ORCH-022)

ID Риск Вероятность / Влияние Митигация (заложена в ADR-001)
R-1 Ложные срабатывания → петля отката → development (прецедент ORCH-061 staging-loop). Средн. / Выс. Аллоулист .gitleaks.toml (BR-13); cap MAX_DEVELOPER_RETRIES=3 → эскалация (set_issue_blocked+Telegram); конфигурируемый порог severity; kill-switch; UNKNOWN-severity → warning, не блок.
R-2 Недоступность CVE-фида даёт ложный красный/исключение. Средн. / Выс. fail-open + громкий warning по умолчанию (Р-3); deps_audit_degraded:true; флаг security_dep_audit_fail_closed для строгого режима. Секреты offline → не затронуты.
R-3 Скан вешает worker-слот (зависший gitleaks/pip-audit) → стоит конвейер всех проектов (общий инстанс, max_concurrency). Низк. / Выс. security_scan_timeout_s (300) на каждый внешний вызов; never-raise degrade-вердикт; гейт ПЕРВЫМ на ребре (фейлит до дорогих rebase/rebuild).
R-4 Исключение гейта роняет advance_stage → встаёт движок. Низк. / Выс. Двойной never-raise guard (внешний+внутренний) как check_branch_mergeable; AC-16/TC-11.
R-5 Скан после rebase обвиняет задачу в CVE из main → петля. — (устранён дизайном) Гейт исполняется ДО merge-gate (скан ветки до rebase); Р-1.
R-6 Отсутствие бинаря gitleaks в образе (забыт в Dockerfile) → гейт всегда degrade. Низк. / Средн. Установка в Dockerfile (I-1), pinned-версия; TC-11 (нет бинаря → (False,reason), never-raise); проверяется на staging (8501) до прода.
R-7 pip-audit без severity (UNKNOWN) → либо ложный блок, либо пропуск. Средн. / Средн. UNKNOWN → warning (не блок), логируется; осознанный анти-петля компромисс; ужесточение — follow-up.
R-8 Self-hosting: гейт трогает прод (рестарт/деплой). — (запрещено дизайном) Гейт только читает/сканирует; AC-19/TC-21; прод-деплой ORCH-022 — через staging-гейт.
R-9 Drift вердикта vs артефакта (возврат ≠ frontmatter). Низк. / Средн. Единый источник: гейт пишет артефакт → читает обратно через parse_security_status → возвращает (Р-5); AC-8.
R-10 Регресс существующих гейтов/стадий (сломан QG_CHECKS/STAGE_TRANSITIONS). Низк. / Выс. STAGE_TRANSITIONS не меняется; новый чек — аддитивно в реестр; полный прогон tests/ (TC-20); staging-гейт перед прод.
R-11 v1 Python-only — секреты/CVE в не-Python стеке (JS/Android) не ловятся. — (вне scope v1, A3) Условность scope; точка расширения мульти-стек/SAST (BR-14); зависимость ORCH-9/15 зафиксирована.
R-12 Стоимость времени на каждом прогоне задачи. Низк. / Низк. Таймаут; гейт первым (ранний выход); только self-hosting по умолчанию.