236 lines
14 KiB
Markdown
236 lines
14 KiB
Markdown
# Карта доказательств АВЗ.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, ФИО/подпись/дата:
|