# Карта доказательств АВЗ.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:03–11: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. Связанные меры ### РСБ.1–3, РСБ.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, ФИО/подпись/дата: