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

14 KiB
Raw Blame History

Карта доказательств АВЗ.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 — обнаружение вредоносных программ/информации и реагирование.

Необходимые доказательства:

  • kesl active.
  • Лицензия действительна (The key is valid, subscription active).
  • File Threat Protection (ID 1) имеет состояние Started.
  • Перехватчик: fanotify, штатный блокирующий режим (параметр InterceptorProtectionMode на этой ОС не поддерживается).
  • ActionOnThreat = DisinfectDeleteIfNotPossible либо иное утверждённое блокирующее/лечащее действие.
  • ScanArchived = No для real-time защиты.
  • Исключения ограничены тремя утверждёнными hot-data mountpoint.
  • Контролируемый EICAR заблокирован/обезврежен/помещён в карантин.
  • Событие EICAR зарегистрировано в журнале KESL.
  • После теста EICAR отсутствует вне карантина и тестовый каталог удалён.
  • Public smoke и health после включения Block успешны. (health контейнеров подтверждён; внешний smoke не запускался)
  • 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 — «Обновление базы данных признаков вредоносных компьютерных программ (вирусов)».

Необходимые доказательства:

  • Update (ID 6) завершилась успешно.
  • Базы загружены.
  • Дата выпуска баз актуальна на момент проверки.
  • Расписание 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

  • Определены события: detection, remediation/quarantine, component stop, update failure, stale bases, license failure. (фиксируются в журнале KESL; пример ThreatDetected/ObjectDeleted)
  • Определён состав полей: time, host, component/task, threat, object, action, result, severity.
  • Определены срок и место хранения. (по умолчанию /var/opt/kaspersky/kesl/private/storage/events.db)
  • Доступ к журналу ограничен; изменение/удаление контролируется. (root-only kesl-control -E)
  • Экспорт в syslog/SIEM включён либо документирован локальный контроль.

Ссылка на регламент и настройки: локальный журнал KESL; SIEM не подключался.

АНЗ.2

  • Контролируется версия и жизненный цикл самого KESL, а не только баз. (12.4.0.1225 зафиксирован; после Update был restart модуля)
  • Upgrade KESL проходит совместимость, pilot, smoke и rollback review. (процедура в RUNBOOK.KESL.ru.md)
  • Обновление 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. Проверка отката

  • Команда kesl-control --stop-task 1 проверена документально.
  • Процедура остановки KESL доступна break-glass admin.
  • Процедура apt-get purge kesl проверена по документации текущей версии.
  • Откат не использует docker compose down -v и не удаляет volumes.
  • После отката предусмотрены smoke, health и firewall checks.
  • 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, ФИО/подпись/дата: