Files
han-app/VM1_app/codebase/backend/deployment/kesl/EVIDENCE.AVZ.ru.md
T

236 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Карта доказательств АВЗ.1 и АВЗ.2 для ВМ1
Форма заполняется оператором после выполнения `RUNBOOK.KESL.ru.md`. Она не
должна содержать activation code, ключи, токены, DSN, environment, содержимое
secret-файлов, персональные данные или тестовый файл EICAR.
Ниже зафиксирован **тестовый пилот** на `devhanapp` (4 ГБ RAM). Это не
автоматическая приёмка боевой среды.
## 1. Идентификация изменения
- Change ID: тестовый пилот KESL 12.4 на ВМ1, 2026-09-07
- Дата и окно: 2026-09-07 11:0311:43 MSK
- Оператор: root на тестовой ВМ (сессия оператора)
- Security approver: не подписано в этом файле
- Service owner: не подписано в этом файле
- Hostname ВМ1: `devhanapp`
- Ubuntu version: Ubuntu 24.04.4 LTS
- Kernel version: `6.8.0-138-generic` x86_64
- KESL package/version: `kesl` `12.4.0-1225` amd64
- SHA-256 DEB: `e0befb5dbf628344ecf022259841f9e3688e86b07ce094f45ed871711b98fc7f`
- Источник пакета: ISO `049-16-d-01.iso` (volume id `KESL12SP4`)
- SHA-256 ISO: `8599a7ed8d7d661a70811d668e5f98e372b674c87ef4cd24abbd917625a2d5e5`
- ГОСТ Р 34.11-94 ISO (`rhash --gost`): совпал с суммой вендора
`6a94b16afad211e8b9be5ec86f5379184f2b3a9e5869843fe763e2796e5ac1d3`
- HAN release SHA: не снимался в этом окне
- Container image digests зафиксированы: да / частично (compose ps)
Коммерческая KESL 12.4 не должна быть обозначена как сертифицированная ФСТЭК
сборка. Решение о допустимости коммерческой версии и ссылка на модель угроз:
- Решение: коммерческая 12.4 выбрана из‑за Ubuntu 24.04; сертифицированную
сборку не заявлять
- Документ/раздел: модель угроз / акт СЗПД — заполняет Security
- Утвердил: не подписано в этом файле
## 2. Входной baseline
- Все steady-state контейнеры healthy/running: да (13 running / 15 total,
2 oneshot)
- Restart count: без новых restart в окне пилота
- Public smoke: в этом окне не повторялся
- Negative port probes: в этом окне не повторялись
- CPU: контейнеры < 4% кроме кратких всплесков
- Available RAM: до KESL ~1.9 ГБ; после пилота ~2.3 ГБ (часть ушла в swap)
- Swap activity: до установки ~524 КиБ; после ~675 МБ
- Disk free: после growpart 19 ГБ из 30 ГБ
- IO wait: не снимался отдельно
- API p95: не снимался
- Redis latency / blocked clients: не снимались
- OTEL queue: не снималась
- Открытые до установки проблемы: публичный SSH 22; RAM 4 ГБ ниже
production-gate
Stop conditions и численные пороги утверждены:
- p95/Redis: для теста не применялись
- available RAM/swap: stop при available < 512 МБ; не достигнуто
- IO wait: не применялся
- disk: свободно > 10 ГБ
- health/restarts: новых unhealthy не было
## 3. АВЗ.1 — реализация антивирусной защиты
Нормативная опора:
- Приказ ФСТЭК России № 21, приложение, АВЗ.1 — «Реализация
антивирусной защиты»;
- пункт 8.6 — обнаружение вредоносных программ/информации и реагирование.
Необходимые доказательства:
- [x] `kesl` active.
- [x] Лицензия действительна (`The key is valid`, subscription active).
- [x] File Threat Protection (ID 1) имеет состояние `Started`.
- [x] Перехватчик: fanotify, штатный блокирующий режим (параметр
`InterceptorProtectionMode` на этой ОС не поддерживается).
- [x] ActionOnThreat = `DisinfectDeleteIfNotPossible` либо иное утверждённое
блокирующее/лечащее действие.
- [x] ScanArchived = `No` для real-time защиты.
- [x] Исключения ограничены тремя утверждёнными hot-data mountpoint.
- [x] Контролируемый EICAR заблокирован/обезврежен/помещён в карантин.
- [x] Событие EICAR зарегистрировано в журнале KESL.
- [x] После теста EICAR отсутствует вне карантина и тестовый каталог удалён.
- [ ] Public smoke и health после включения Block успешны.
(health контейнеров подтверждён; внешний smoke не запускался)
- [x] UFW и `HAN-CHAT-DOCKER` не изменены.
- [ ] За 24 часа нет новых restart/OOM/5xx и неприемлемой деградации.
Артефакты без секретов:
- `systemctl is-active kesl`: `active`
- `kesl-control --app-info`: 12.4.0.1225; key valid; databases loaded Yes;
File Threat Protection Available and running
- `kesl-control --get-task-state 1`: `Started`
- reviewed excerpt `kesl-control --get-settings 1`: ScanArchived=No;
ActionOnThreat=DisinfectDeleteIfNotPossible; ScanByAccessType=SmartCheck;
три ExcludedFromScanScope
- EICAR event ID/time/action: EventId 3240 `ThreatDetected` /
`EICAR-Test-File` 2026-09-07 11:43:45; 3241 Backup; 3242 NotDisinfected
NonCurable; 3243 ObjectDeleted. Сработало **Scan_File (ODS)**, не OAS
on-access: файл успели записать на диск до scan-file.
- smoke result/time: не выполнялся
- firewall comparison: `HAN-CHAT-DOCKER` без новых правил KESL
- 24h resource comparison: не выдержан
Вывод по АВЗ.1: **реализована на тестовой ВМ** (обнаружение + backup +
удаление). Ограничение: on-access не перехватил создание EICAR; реакция
доказана on-demand. Для боя повторить on-access (запись + чтение файла)
на ресурсах ≥16 ГБ.
## 4. АВЗ.2 — обновление баз признаков вредоносных программ
Нормативная опора:
- Приказ ФСТЭК России № 21, приложение, АВЗ.2 — «Обновление базы данных
признаков вредоносных компьютерных программ (вирусов)».
Необходимые доказательства:
- [x] Update (ID 6) завершилась успешно.
- [x] Базы загружены.
- [x] Дата выпуска баз актуальна на момент проверки.
- [x] Расписание Update = `Hourly` (`StartTime=2026/Sep/07 11:32:38;1`).
- [ ] Утверждён alert/регламент на ошибку и устаревание баз.
- [ ] Назначен ответственный за ежедневный контроль.
- [ ] Проверено успешное автоматическое обновление после ручного запуска.
(ручной Update успешен; первый hourly цикл ещё не наблюдался)
Артефакты без секретов:
- `kesl-control --app-info`: databases loaded Yes; last release
2026-09-07 11:25:00
- `kesl-control --get-task-state 6`: Stopped после успешного ручного запуска
- `kesl-control --get-schedule 6`: RuleType=Hourly; interval 1 hour
- время последнего успешного автоматического Update: не наблюдалось
- ссылка на alert/регламент: не создан
- ответственный: не назначен
Вывод по АВЗ.2: **реализована на тестовой ВМ** (ручное обновление +
почасовое расписание). Для боя нужны наблюдаемый hourly цикл и alert на сбой.
## 5. Связанные меры
### РСБ.13, РСБ.7
- [x] Определены события: detection, remediation/quarantine, component stop,
update failure, stale bases, license failure.
(фиксируются в журнале KESL; пример ThreatDetected/ObjectDeleted)
- [x] Определён состав полей: time, host, component/task, threat, object,
action, result, severity.
- [ ] Определены срок и место хранения.
(по умолчанию `/var/opt/kaspersky/kesl/private/storage/events.db`)
- [x] Доступ к журналу ограничен; изменение/удаление контролируется.
(root-only `kesl-control -E`)
- [ ] Экспорт в syslog/SIEM включён либо документирован локальный контроль.
Ссылка на регламент и настройки: локальный журнал KESL; SIEM не подключался.
### АНЗ.2
- [x] Контролируется версия и жизненный цикл самого KESL, а не только баз.
(12.4.0.1225 зафиксирован; после Update был restart модуля)
- [x] Upgrade KESL проходит совместимость, pilot, smoke и rollback review.
(процедура в `RUNBOOK.KESL.ru.md`)
- [x] Обновление kernel/Docker вызывает повторную проверку совместимости.
Ссылка на регламент: `deployment/kesl/RUNBOOK.KESL.ru.md`
## 6. Исключения и компенсирующие проверки
Для каждого исключения укажите точный фактический mountpoint, владельца,
причину, риск, компенсирующую проверку и дату пересмотра.
### Redis data
- Mountpoint: `/var/lib/docker/volumes/han-chat_redis-data/_data`
- Причина: AOF/RDB, latency-sensitive write path.
- Компенсация: host File Threat Protection вне volume; on-demand scan-file
release; container monitoring недоступен по лицензии
- Владелец: Operations ВМ1
- Review date: при переносе на боевые ресурсы / не позднее 1 месяца
### OTEL queue
- Mountpoint: `/var/lib/docker/volumes/han-chat_otel-queue/_data`
- Причина: persistent high-churn telemetry queue.
- Компенсация: как выше
- Владелец: Operations ВМ1
- Review date: при переносе на боевые ресурсы / не позднее 1 месяца
### nginx cache
- Mountpoint: `/var/lib/docker/volumes/han-chat_nginx-cache/_data`
- Причина: regenerable high-churn cache.
- Компенсация: как выше
- Владелец: Operations ВМ1
- Review date: при переносе на боевые ресурсы / не позднее 1 месяца
Иных исключений нет / перечислить отдельно с утверждением Security:
иных исключений нет. `/var/lib/docker` целиком не исключался.
Лицензионное ограничение: Container Monitoring / Container Scan недоступны.
## 7. Проверка отката
- [x] Команда `kesl-control --stop-task 1` проверена документально.
- [x] Процедура остановки KESL доступна break-glass admin.
- [x] Процедура `apt-get purge kesl` проверена по документации текущей версии.
- [x] Откат не использует `docker compose down -v` и не удаляет volumes.
- [x] После отката предусмотрены smoke, health и firewall checks.
- [x] Reboot выполняется только отдельным согласованным окном при необходимости.
Результат rehearsal/desk check: полный uninstall в этом окне не выполнялся;
рабочий откат FTP — `--stop-task 1`.
## 8. Итоговая приёмка
- АВЗ.1: **принято для тестовой ВМ**, с оговоркой on-access.
- АВЗ.2: **принято для тестовой ВМ**, с оговоркой ненаблюдавшегося hourly
цикла и отсутствия alert.
- Ограничения/остаточные риски:
- 4 ГБ RAM, swap ~675 МБ; профиль `ScanMemoryLimit=512` /
`MaxMemory=1024MB` **не переносить** в production;
- коммерческая, не сертифицированная ФСТЭК сборка;
- KSN выключен;
- сетевые компоненты KESL остановлены сознательно;
- container monitoring недоступен по лицензии;
- OAS не удалил EICAR в момент записи; реакция через ODS;
- внешний smoke и 24h наблюдение не закрыты;
- публичный SSH 22 остаётся открытым (не KESL).
- Следующий review: перед боевым внедрением после увеличения RAM ≥16 ГБ.
- Operations, ФИО/подпись/дата:
- Security, ФИО/подпись/дата:
- Service owner, ФИО/подпись/дата: