| Угроза | Impact | Mitigation today | Planned | Severity |
|---|---|---|---|---|
| Утечка job YAML | Компрометация структуры бэкапа | Храните ACL на /etc/iobackup; не кладите inline
секреты |
Шифрование at rest файлов конфигурации | High |
| Утечка overlay secrets | Компрометация ключей доступа к БД/Object storage | Маска в API экспорте (job.SanitizeForAPI), не логируйте
сырое содержимое |
mTLS между control-plane и agent | Critical |
Кража state.db (bolt) |
История job/run/пути артефактов | Права 0600, offline backup |
Шифрование bolt | High |
| Доступ к API агента | Запуск/отмена job, чтение метаданных | Bearer token (internal/api/auth.go), loopback
default |
read-only токены | Critical |
| Чтение capabilities / facts / health (0.17-fix.70) | Раскрытие топологии (hostname, ОС, список провайдеров, redacted путей, какие CLI найдены) | Те же ACL и токен, что и для остального API; пути в JSON basename-redacted | отдельный read-only scope в central server | Medium |
| Подмена webhook URL | Exfiltration событий | TLS на receiver; валидируйте целевой хост | Request signing | Medium |
| Логи провайдеров | Утечка DSN/CLI аргументов | internal/redact + JSONLine logger |
Расширенные шаблоны для docker runner | High |
| Локальные staging файлы | Утечка дампов | Права на каталог staging, очистка после run | FIPS | Medium |
| Персональные данные в артефактах | Регуляторный риск | Политика хранения, classification labels | Client-side encryption | High |
Offline spool + central readiness (v0.50.x+) |
Exfiltration через export/backfill или forged heartbeat | Запись только redacted JSON; export allow-list; diagnostics без raw tokens | Central server RBAC (вне репозитория) | High |
Operator include_payload=true |
Раскрытие сохранённых метаданных команд | Только at-rest redacted payloads; gate на list API | Policy per-role | Medium |
state.db, overlay secrets, token file:
0600, владелец сервисного пользователя
iobackup.0700.PATH не должны быть world-writable.Client-side streaming encryption ships behind feature gates
(docs/features/encryption/encryption.md). Manifests and
public JSON must not contain raw key material; loss-of-key is an
operational incident (no «recovery» of ciphertext without backups of
keys).
include_paths: false) и дополнительно
redacted.include_job_snapshot: true — включает
sanitized snapshot job; полный несанitized YAML в webhook
не является целью модели.metadata export —
обязаны использовать export policy и redaction; не полагайтесь на
«сырой» bolt dump в небезопасные каналы.