Карта соответствия ISO27001 — opencode_initializer v3.0
Основа: аудит T1.5, чеклист SOC2, архитектура v3.0 Цель: элементы управления ISO27001:2022 Annex A, применимые к AI dev harness
A.9 — Контроль доступа
| Элемент | Требование | Реализация в v3.0 | Модуль |
| A.9.2.1 | Регистрация и удаление пользователей | secrets.env на пользователя, chmod 600; opencode.json на проект | 19-finalize.sh |
| A.9.2.2 | Предоставление доступа пользователям | API-ключи провайдеров индивидуальные, не общие | 18-opencode-json.sh |
| A.9.2.3 | Управление привилегированными правами | _sudo() с here-string (не pipe), без жёстко заданных паролей | helpers.sh |
| A.9.2.4 | Управление секретной аутентификацией | Автогенерируемые пароли → secrets.env, никогда в коде | 30-infra.sh |
| A.9.4.1 | Ограничение доступа к информации | model-policy.json на проект: allowlist/blocklist | 43-governance.sh |
| A.9.4.2 | Безопасные процедуры входа | API-ключи через переменные окружения, никогда в истории CLI | setup.sh |
A.12 — Безопасность операций
| Элемент | Требование | Реализация в v3.0 | Модуль |
| A.12.4.1 | Протоколирование событий | 7 типов событий WAL (model_call, tool_call, provider_switch, pii_redacted, checkpoint, error, session_boundary) | 44-audit.sh |
| A.12.4.2 | Защита информации журналов | WAL chmod 600, хеш-цепочка SHA-256, только добавление | 44-audit.sh |
| A.12.4.3 | Журналы администраторов и операторов | Отдельный WAL на сессию (ses_N), формат JSONL | 37-wal.sh |
| A.12.4.4 | Синхронизация часов | Временные метки ISO8601 во всех событиях WAL | 37-wal.sh |
| A.12.5.1 | Установка ПО в операционных системах | curl|sh → загрузка + проверка SHA256 для всех 6 затронутых модулей | M5.1.2 |
| A.12.6.1 | Управление техническими уязвимостями | Ежедневное сканирование Trivy + Qodana через systemd-таймер | 15-security.sh |
| A.12.6.2 | Ограничения на установку ПО | model-policy.json ограничивает провайдеров/модели | 43-governance.sh |
| A.12.7.1 | Средства аудита информационных систем | Хеш-цепочка WAL + периодическая архивация → Qdrant | 44-audit.sh |
A.14 — Приобретение, разработка и сопровождение систем
| Элемент | Требование | Реализация в v3.0 | Модуль |
| A.14.1.1 | Анализ требований информационной безопасности | Рабочий процесс SDD: constitution → specify security NFR → plan → implement | 41-constitution.sh |
| A.14.1.2 | Безопасность сервисов приложений в публичных сетях | Санитайзер-прокси SearXNG: без внутренних хостов/IP/PII | 24-websearch.sh |
| A.14.1.3 | Защита транзакций сервисов приложений | Санитайзер вырезает API-ключи из логов запросов/ответов | 45-pii-guard.sh |
| A.14.2.1 | Политика безопасной разработки | AGENTS.md: source ladder, без секретов в коде, verification gates | 17-project.sh |
| A.14.2.5 | Тестирование безопасности системы | SBOM (CycloneDX), pre-commit хук Trivy, CI security workflow | M5.4.1 |
| A.14.2.8 | Тестирование безопасности системы | ShellCheck CI + bash -n gate (из v2.0.3) | .github/workflows |
A.16 — Управление инцидентами информационной безопасности
| Элемент | Требование | Реализация в v3.0 | Модуль |
| A.16.1.1 | Обязанности и процедуры | Диагностика health.sh (119 проверок), события ошибок WAL | modes/health.sh |
| A.16.1.4 | Оценка и решение по событиям | Обнаружение гонки WAL_MODULE_COUNT, dry-run guards | 00-core.sh |
| A.16.1.5 | Реагирование на инциденты | Шаблон try/catch _run_step() (не просто set -e) | M5.3.1 |
A.17 — Непрерывность информационной безопасности
| Элемент | Требование | Реализация в v3.0 | Модуль |
| A.17.1.2 | Обеспечение непрерывности | dev backup create|list|restore (v2.0.3) | dev.sh |
| A.17.2.1 | Доступность средств обработки | Docker healthchecks (PostgreSQL, Qdrant, Redis, Grafana) | 30-infra.sh |
A.18 — Соответствие
| Элемент | Требование | Реализация в v3.0 | Модуль |
| A.18.1.1 | Определение применимого законодательства | Карта GDPR Art.32/Art.35 в PII guard | 45-pii-guard.sh |
| A.18.1.3 | Защита записей | Ротация WAL + архив Qdrant, chmod 600 | 44-audit.sh |
| A.18.1.5 | Регулирование криптографических средств | SHA-256 для проверки цепочки поставок, хеш-цепочка WAL | M5.1.2 |
Готовность к GDPR
| Статья | Требование | Статус v3.0 |
| Art. 5.1(c) | Минимизация данных | 9 детекторов PII удаляют ненужные персональные данные перед LLM-запросами |
| Art. 5.1(f) | Целостность и конфиденциальность | Хеш-цепочка SHA-256, chmod 600 для секретов, санированные логи |
| Art. 30 | Записи обработки | События WAL pii_redacted отслеживают всю активность санитайзера |
| Art. 32 | Безопасность обработки | Trivy, SBOM, pre-commit хуки, model governance |
| Art. 33 | Уведомление об утечке | События WAL error, health-диагностика (119 проверок) |
| Art. 35 | DPIA (оценка влияния на защиту данных) | Аудиторский след + PII guard + air-gap профиль = пакет доказательств DPIA |
Зрелость по Annex
| Annex | Применимых элементов | v2.0.3 | Цель v3.0 |
| A.9 Контроль доступа | 6 | 3/6 | 5/6 |
| A.12 Операции | 8 | 2/8 | 7/8 |
| A.14 Разработка | 6 | 2/6 | 5/6 |
| A.16 Инциденты | 3 | 1/3 | 3/3 |
| A.17 Непрерывность | 2 | 1/2 | 2/2 |
| A.18 Соответствие | 3 | 1/3 | 3/3 |
| GDPR (Art. 5-35) | 6 | 2/6 | 5/6 |
| Всего | 34 элемента | 12/34 | 30/34 |