Чеклист соответствия SOC2 — opencode_initializer v3.0
Основа: аудит T1.5 corporate/air-gap (2026-08-08), видение v3.0 Цель: готовность к SOC2 Type II для AI-усиленного dev harness
CC5.2 — Контрольные процедуры
| # | Контроль | Реализация в v3.0 | Статус |
| CC5.2.1 | Allowlist провайдеров на проект | model-policy.json с allowed_providers на профиль развёртывания | → M5.1.3 |
| CC5.2.2 | Allowlist моделей на проект | model-policy.json с allowed_models с переопределением на проект | → M5.1.3 |
| CC5.2.3 | Лимиты стоимости на сессию | OPENCODE_MAX_COST_PER_SESSION в model-policy | → M5.3.3 |
| CC5.2.4 | Контроль резидентности данных | OPENCODE_DATA_REGIONS gate при выборе провайдера | → M5.1.3 |
| CC5.2.5 | Назначение моделей на агента | 17-project.sh: agent→model mapping (существующий, v2.0.3) | ✅ |
CC7.2 — Мониторинг контролей
| # | Контроль | Реализация в v3.0 | Статус |
| CC7.2.1 | Аудит всех вызовов инструментов | 44-audit.sh: событие WAL tool_call (bash, read, write, edit, grep) | → M5.2.3 |
| CC7.2.2 | Аудит всех вызовов моделей | 44-audit.sh: событие WAL model_call (провайдер, модель, токены вх/исх, задержка) | → M5.2.3 |
| CC7.2.3 | Аудит переключений провайдеров | 44-audit.sh: событие WAL provider_switch (с→на, причина) | → M5.2.3 |
| CC7.2.4 | Логирование редакции PII | 44-audit.sh: событие WAL pii_redacted (количество, совпавшие шаблоны) | → M5.2.4 |
| CC7.2.5 | Логирование границ сессий | Событие WAL session_boundary (начало/конец, task_id, режим) | → M5.2.3 |
| CC7.2.6 | Логирование ошибок/исключений | Событие WAL error (инструмент, код выхода, хеш сообщения) | → M5.3.1 |
| CC7.2.7 | Плановое сканирование безопасности | Systemd-таймер: ежедневное сканирование Trivy + Qodana с логом | → M5.4.1 |
CC8.2 — Эксплуатация систем
| # | Контроль | Реализация в v3.0 | Статус |
| CC8.2.1 | Неизменяемый WAL (хеш-цепочка) | SHA-256 хеш на запись с связыванием (prev_hash → this_hash) | → M5.2.3 |
| CC8.2.2 | Политика ротации WAL | >10MB → сжатие gzip + архивация в Qdrant | → M5.2.3 |
| CC8.2.3 | Контроль доступа к WAL | ~/.cache/opencode/wal.jsonl chmod 600, директория 700 | → M5.2.3 |
| CC8.2.4 | Санированные логи (без секретов) | PII guard удаляет API-ключи, токены, учётные данные перед записью | → M5.2.4 |
| CC8.2.5 | Генерация SBOM | CycloneDX SBOM через trivy sbom на каждый релиз | → M5.4.1 |
| CC8.2.6 | Сканирование уязвимостей зависимостей | Сканирование файловой системы Trivy + интеграция OSV в CI | → M5.4.1 |
Управление изменениями (CC8.1)
| # | Контроль | Реализация в v3.0 | Статус |
| CM.1 | Трассируемая цепочка spec→task→commit | Рабочий процесс SDD: FR-### в spec → task_id в plan → commit message | ✅ (v3.0 SDD) |
| CM.2 | Pre-commit хук безопасности | .pre-commit-config.yaml: проверка Trivy CRITICAL | → M5.4.1 |
| CM.3 | Проверка цепочки поставок | curl|bash → загрузка + проверка SHA256 для всех 6 модулей | → M5.1.2 |
| CM.4 | Резервное копирование/восстановление конфигурации | dev backup create|list|restore (существующий, v2.0.3) | ✅ |
Оценка рисков (CC3.2)
| Риск | Вероятность | Влияние | Смягчение |
| Утечка API-ключей через логи | Средняя | Критическое | PII guard (45-pii-guard.sh) + санирование WAL |
| Несанкционированное использование провайдера | Средняя | Высокое | Model governance (43-governance.sh) + allowlist |
| Компрометация цепочки поставок | Низкая | Критическое | Проверка SHA256 (M5.1.2) |
| Утечка из air-gap контура | Средняя | Высокое | ISOLATED_CIRCUIT guard на version-check + autoupdate (M5.1.1) |
| Подделка WAL | Низкая | Высокое | Хеш-цепочка SHA-256 (M5.2.3) |
| Использование паролей по умолчанию | Высокая | Среднее | Автогенерируемые секреты (M5.1.2) |
Сводка статуса соответствия
| Критерий доверия SOC2 | v2.0.3 | Цель v3.0 |
| CC5.2 Контрольные процедуры | 2/5 (без governance) | 4/5 |
| CC7.2 Мониторинг | 1/7 (базовый WAL) | 6/7 |
| CC8.2 Эксплуатация систем | 1/6 (secrets.env) | 5/6 |
| CC8.1 Управление изменениями | 2/4 (backup, trace) | 4/4 |
| CC3.2 Оценка рисков | 0/6 (нет формальной) | 5/6 |
| Всего | 1.4/5 | 4.0/5 |