3.9 KiB
3.9 KiB
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 по умолчанию. |