ВМ1: реализован сбор логов
This commit is contained in:
@@ -4,52 +4,61 @@
|
||||
должна содержать activation code, ключи, токены, DSN, environment, содержимое
|
||||
secret-файлов, персональные данные или тестовый файл EICAR.
|
||||
|
||||
Ниже зафиксирован **тестовый пилот** на `devhanapp` (4 ГБ RAM). Это не
|
||||
автоматическая приёмка боевой среды.
|
||||
|
||||
## 1. Идентификация изменения
|
||||
|
||||
- Change ID:
|
||||
- Дата и окно:
|
||||
- Оператор:
|
||||
- Security approver:
|
||||
- Service owner:
|
||||
- Hostname ВМ1:
|
||||
- Ubuntu version:
|
||||
- Kernel version:
|
||||
- KESL package/version:
|
||||
- SHA-256 DEB:
|
||||
- Источник пакета:
|
||||
- HAN release SHA:
|
||||
- Container image digests зафиксированы: да / нет
|
||||
- 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:
|
||||
- Restart count:
|
||||
- Public smoke:
|
||||
- Negative port probes:
|
||||
- CPU:
|
||||
- Available RAM:
|
||||
- Swap activity:
|
||||
- Disk free:
|
||||
- IO wait:
|
||||
- API p95:
|
||||
- Redis latency / blocked clients:
|
||||
- OTEL queue:
|
||||
- Открытые до установки проблемы:
|
||||
- Все 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:
|
||||
- IO wait:
|
||||
- disk:
|
||||
- health/restarts:
|
||||
- p95/Redis: для теста не применялись
|
||||
- available RAM/swap: stop при available < 512 МБ; не достигнуто
|
||||
- IO wait: не применялся
|
||||
- disk: свободно > 10 ГБ
|
||||
- health/restarts: новых unhealthy не было
|
||||
|
||||
## 3. АВЗ.1 — реализация антивирусной защиты
|
||||
|
||||
@@ -61,33 +70,44 @@ Stop conditions и численные пороги утверждены:
|
||||
|
||||
Необходимые доказательства:
|
||||
|
||||
- [ ] `kesl` active.
|
||||
- [ ] Лицензия действительна.
|
||||
- [ ] File Threat Protection (ID 1) имеет состояние `Started`.
|
||||
- [ ] InterceptorProtectionMode = `Block`.
|
||||
- [ ] ActionOnThreat = `DisinfectDeleteIfNotPossible` либо иное утверждённое
|
||||
- [x] `kesl` active.
|
||||
- [x] Лицензия действительна (`The key is valid`, subscription active).
|
||||
- [x] File Threat Protection (ID 1) имеет состояние `Started`.
|
||||
- [x] Перехватчик: fanotify, штатный блокирующий режим (параметр
|
||||
`InterceptorProtectionMode` на этой ОС не поддерживается).
|
||||
- [x] ActionOnThreat = `DisinfectDeleteIfNotPossible` либо иное утверждённое
|
||||
блокирующее/лечащее действие.
|
||||
- [ ] ScanArchived = `No` для real-time защиты.
|
||||
- [ ] Исключения ограничены тремя утверждёнными hot-data mountpoint.
|
||||
- [ ] Контролируемый EICAR заблокирован/обезврежен/помещён в карантин.
|
||||
- [ ] Событие EICAR зарегистрировано в журнале KESL.
|
||||
- [ ] После теста EICAR отсутствует вне карантина и тестовый каталог удалён.
|
||||
- [x] ScanArchived = `No` для real-time защиты.
|
||||
- [x] Исключения ограничены тремя утверждёнными hot-data mountpoint.
|
||||
- [x] Контролируемый EICAR заблокирован/обезврежен/помещён в карантин.
|
||||
- [x] Событие EICAR зарегистрировано в журнале KESL.
|
||||
- [x] После теста EICAR отсутствует вне карантина и тестовый каталог удалён.
|
||||
- [ ] Public smoke и health после включения Block успешны.
|
||||
- [ ] UFW и `HAN-CHAT-DOCKER` не изменены.
|
||||
(health контейнеров подтверждён; внешний smoke не запускался)
|
||||
- [x] UFW и `HAN-CHAT-DOCKER` не изменены.
|
||||
- [ ] За 24 часа нет новых restart/OOM/5xx и неприемлемой деградации.
|
||||
|
||||
Артефакты без секретов:
|
||||
|
||||
- `systemctl is-active kesl`:
|
||||
- `kesl-control --app-info`:
|
||||
- `kesl-control --get-task-state 1`:
|
||||
- reviewed excerpt `kesl-control --get-settings 1`:
|
||||
- EICAR event ID/time/action:
|
||||
- smoke result/time:
|
||||
- firewall comparison:
|
||||
- 24h resource comparison:
|
||||
- `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: реализована / не реализована.
|
||||
Вывод по АВЗ.1: **реализована на тестовой ВМ** (обнаружение + backup +
|
||||
удаление). Ограничение: on-access не перехватил создание EICAR; реакция
|
||||
доказана on-demand. Для боя повторить on-access (запись + чтение файла)
|
||||
на ресурсах ≥16 ГБ.
|
||||
|
||||
## 4. АВЗ.2 — обновление баз признаков вредоносных программ
|
||||
|
||||
@@ -98,46 +118,54 @@ Stop conditions и численные пороги утверждены:
|
||||
|
||||
Необходимые доказательства:
|
||||
|
||||
- [ ] Update (ID 6) завершилась успешно.
|
||||
- [ ] Базы загружены.
|
||||
- [ ] Дата выпуска баз актуальна на момент проверки.
|
||||
- [ ] Расписание Update = `Hourly`.
|
||||
- [x] Update (ID 6) завершилась успешно.
|
||||
- [x] Базы загружены.
|
||||
- [x] Дата выпуска баз актуальна на момент проверки.
|
||||
- [x] Расписание Update = `Hourly` (`StartTime=2026/Sep/07 11:32:38;1`).
|
||||
- [ ] Утверждён alert/регламент на ошибку и устаревание баз.
|
||||
- [ ] Назначен ответственный за ежедневный контроль.
|
||||
- [ ] Проверено успешное автоматическое обновление после ручного запуска.
|
||||
(ручной Update успешен; первый hourly цикл ещё не наблюдался)
|
||||
|
||||
Артефакты без секретов:
|
||||
|
||||
- `kesl-control --app-info`:
|
||||
- `kesl-control --get-task-state 6`:
|
||||
- `kesl-control --get-schedule 6`:
|
||||
- время последнего успешного автоматического Update:
|
||||
- ссылка на alert/регламент:
|
||||
- ответственный:
|
||||
- `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: реализована / не реализована.
|
||||
Вывод по АВЗ.2: **реализована на тестовой ВМ** (ручное обновление +
|
||||
почасовое расписание). Для боя нужны наблюдаемый hourly цикл и alert на сбой.
|
||||
|
||||
## 5. Связанные меры
|
||||
|
||||
### РСБ.1–3, РСБ.7
|
||||
|
||||
- [ ] Определены события: detection, remediation/quarantine, component stop,
|
||||
- [x] Определены события: detection, remediation/quarantine, component stop,
|
||||
update failure, stale bases, license failure.
|
||||
- [ ] Определён состав полей: time, host, component/task, threat, object,
|
||||
(фиксируются в журнале 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
|
||||
|
||||
- [ ] Контролируется версия и жизненный цикл самого KESL, а не только баз.
|
||||
- [ ] Upgrade KESL проходит совместимость, pilot, smoke и rollback review.
|
||||
- [ ] Обновление kernel/Docker вызывает повторную проверку совместимости.
|
||||
- [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. Исключения и компенсирующие проверки
|
||||
|
||||
@@ -146,47 +174,62 @@ Stop conditions и численные пороги утверждены:
|
||||
|
||||
### Redis data
|
||||
|
||||
- Mountpoint:
|
||||
- Mountpoint: `/var/lib/docker/volumes/han-chat_redis-data/_data`
|
||||
- Причина: AOF/RDB, latency-sensitive write path.
|
||||
- Компенсация:
|
||||
- Владелец:
|
||||
- Review date:
|
||||
- Компенсация: host File Threat Protection вне volume; on-demand scan-file
|
||||
release; container monitoring недоступен по лицензии
|
||||
- Владелец: Operations ВМ1
|
||||
- Review date: при переносе на боевые ресурсы / не позднее 1 месяца
|
||||
|
||||
### OTEL queue
|
||||
|
||||
- Mountpoint:
|
||||
- Mountpoint: `/var/lib/docker/volumes/han-chat_otel-queue/_data`
|
||||
- Причина: persistent high-churn telemetry queue.
|
||||
- Компенсация:
|
||||
- Владелец:
|
||||
- Review date:
|
||||
- Компенсация: как выше
|
||||
- Владелец: Operations ВМ1
|
||||
- Review date: при переносе на боевые ресурсы / не позднее 1 месяца
|
||||
|
||||
### nginx cache
|
||||
|
||||
- Mountpoint:
|
||||
- Mountpoint: `/var/lib/docker/volumes/han-chat_nginx-cache/_data`
|
||||
- Причина: regenerable high-churn cache.
|
||||
- Компенсация:
|
||||
- Владелец:
|
||||
- Review date:
|
||||
- Компенсация: как выше
|
||||
- Владелец: Operations ВМ1
|
||||
- Review date: при переносе на боевые ресурсы / не позднее 1 месяца
|
||||
|
||||
Иных исключений нет / перечислить отдельно с утверждением Security:
|
||||
иных исключений нет. `/var/lib/docker` целиком не исключался.
|
||||
|
||||
Лицензионное ограничение: Container Monitoring / Container Scan недоступны.
|
||||
|
||||
## 7. Проверка отката
|
||||
|
||||
- [ ] Команда переключения `Block` → `Notify` проверена документально.
|
||||
- [ ] Процедура остановки KESL доступна break-glass admin.
|
||||
- [ ] Процедура `apt-get purge kesl` проверена по документации текущей версии.
|
||||
- [ ] Откат не использует `docker compose down -v` и не удаляет volumes.
|
||||
- [ ] После отката предусмотрены smoke, health и firewall checks.
|
||||
- [ ] Reboot выполняется только отдельным согласованным окном при необходимости.
|
||||
- [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:
|
||||
Результат rehearsal/desk check: полный uninstall в этом окне не выполнялся;
|
||||
рабочий откат FTP — `--stop-task 1`.
|
||||
|
||||
## 8. Итоговая приёмка
|
||||
|
||||
- АВЗ.1: принято / не принято.
|
||||
- АВЗ.2: принято / не принято.
|
||||
- АВЗ.1: **принято для тестовой ВМ**, с оговоркой on-access.
|
||||
- АВЗ.2: **принято для тестовой ВМ**, с оговоркой ненаблюдавшегося hourly
|
||||
цикла и отсутствия alert.
|
||||
- Ограничения/остаточные риски:
|
||||
- Следующий review:
|
||||
- 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, ФИО/подпись/дата:
|
||||
|
||||
@@ -69,8 +69,8 @@
|
||||
- `UseOnDemandCPULimit=Yes`, `OnDemandCPULimit=15`;
|
||||
- не запускать full filesystem scan и проверку архивов;
|
||||
- ODS и ContainerScan выполнять по одному объекту, не одновременно;
|
||||
- сначала Update и health, затем один stateless image, затем File Threat
|
||||
Protection в `Notify`;
|
||||
- сначала Update и health, затем один ограниченный `scan-file`, затем File Threat
|
||||
Protection; `InterceptorProtectionMode` на fanotify недоступен;
|
||||
- остановить KESL при available memory менее 512 МБ, устойчивом swap IO,
|
||||
появлении host/container OOM, restart или провале smoke;
|
||||
- до режима `Block` требуется отдельное подтверждение стабильности.
|
||||
@@ -169,18 +169,85 @@ journalctl --since '-30 min' --no-pager \
|
||||
|
||||
## 2. Проверка пакета и подготовка
|
||||
|
||||
GUI на сервер не устанавливается. Пакет передаётся в root-only staging,
|
||||
например `/root/kesl-install`, и удаляется после приёмки.
|
||||
GUI на сервер не устанавливается. Дистрибутив и DEB копируются в root-only
|
||||
staging `/root/kesl-install` и удаляются после приёмки. ISO в
|
||||
`/var/lib/han-deploy/incoming` не распаковывается на месте и не остаётся
|
||||
смонтированным после извлечения пакета.
|
||||
|
||||
```sh
|
||||
install -d -m 0700 -o root -g root /root/kesl-install
|
||||
install -m 0600 -o root -g root \
|
||||
/tmp/<KESL_12_4_AMD64_DEB> /root/kesl-install/kesl.deb
|
||||
sha256sum /root/kesl-install/kesl.deb
|
||||
dpkg-deb -f /root/kesl-install/kesl.deb Package Version Architecture
|
||||
Для тестовой ВМ ожидаемый ISO: `049-16-d-01.iso`, volume id `KESL12SP4`.
|
||||
|
||||
Вендор публикует контрольную сумму **ФИКС 2.0.2 / ГОСТ Р 34.11-94, программно**,
|
||||
а не SHA-256. Это разные алгоритмы: оба дают 64 hex-символа, поэтому
|
||||
`sha256sum --check` против суммы с сайта закономерно не совпадает.
|
||||
|
||||
Ожидаемая сумма вендора (ГОСТ Р 34.11-94):
|
||||
|
||||
```
|
||||
6a94b16afad211e8b9be5ec86f5379184f2b3a9e5869843fe763e2796e5ac1d3
|
||||
```
|
||||
|
||||
Фактический SHA-256 полученного ISO (для локального учёта, не для сверки с
|
||||
сайтом ФИКС):
|
||||
|
||||
```
|
||||
8599a7ed8d7d661a70811d668e5f98e372b674c87ef4cd24abbd917625a2d5e5
|
||||
```
|
||||
|
||||
```sh
|
||||
ISO='/var/lib/han-deploy/incoming/049-16-d-01.iso'
|
||||
SIG='/var/lib/han-deploy/incoming/049-16-d-01.sig'
|
||||
|
||||
ls -l "$ISO" "$SIG"
|
||||
file "$ISO" "$SIG"
|
||||
sha256sum "$ISO"
|
||||
command -v rhash || true
|
||||
openssl list -digest-algorithms 2>/dev/null | grep -i gost || true
|
||||
```
|
||||
|
||||
Если доступен `rhash`, посчитайте ГОСТ и сравните с суммой вендора. ФИКС
|
||||
может использовать другой набор S-блоков/порядок байт, поэтому проверьте
|
||||
несколько вариантов:
|
||||
|
||||
```sh
|
||||
rhash --gost "$ISO"
|
||||
rhash --gost --gost-reverse "$ISO"
|
||||
rhash --gost-cryptopro "$ISO"
|
||||
rhash --gost-cryptopro --gost-reverse "$ISO"
|
||||
```
|
||||
|
||||
Для ISO `049-16-d-01.iso` сумма вендора совпала с `rhash --gost`.
|
||||
|
||||
Подлинность принимается, если совпала ГОСТ-сумма **или** одновременно
|
||||
выполнены все условия ниже:
|
||||
|
||||
- volume id ISO = `KESL12SP4`;
|
||||
- внутри есть `kesl/kesl_12.4.0-1225_amd64.deb`;
|
||||
- SHA-256 ISO зафиксирован в evidence;
|
||||
- источник — официальный канал вендора.
|
||||
|
||||
Файл `.sig` без доверенного публичного ключа не заменяет эту проверку.
|
||||
|
||||
Только после совпадения хеша смонтируйте ISO только для чтения и найдите
|
||||
`kesl_*_amd64.deb` без GUI:
|
||||
|
||||
```sh
|
||||
install -d -m 0700 -o root -g root /root/kesl-install /mnt/kesl-iso
|
||||
mount -o ro,loop "$ISO" /mnt/kesl-iso
|
||||
find /mnt/kesl-iso -type f \( -iname '*kesl*' -o -iname '*.deb' \) | sort
|
||||
```
|
||||
|
||||
Ожидается имя вида `kesl_12.4.0-*_amd64.deb`. Не копируйте `kesl-gui`, i386,
|
||||
arm64, RPM, KSC agent и Windows-пакеты. Если внутри только 12.0.x или нет
|
||||
amd64 DEB — stop: для Ubuntu 24.04 нужен KESL 12.4.
|
||||
|
||||
```sh
|
||||
install -m 0600 -o root -g root \
|
||||
<KESL_12_4_AMD64_DEB_FROM_ISO> /root/kesl-install/kesl.deb
|
||||
dpkg-deb -f /root/kesl-install/kesl.deb Package Version Architecture
|
||||
umount /mnt/kesl-iso
|
||||
rmdir /mnt/kesl-iso
|
||||
```
|
||||
|
||||
Сравните SHA-256 с опубликованным/полученным по доверенному каналу значением.
|
||||
Не продолжайте при package name не `kesl`, неверной архитектуре или версии не
|
||||
12.4.x.
|
||||
|
||||
@@ -233,16 +300,33 @@ ENABLE_TRACES_ON_FIRST_STARTUP=No
|
||||
chmod 0600 /root/kesl-install/autoinstall.ini
|
||||
/opt/kaspersky/kesl/bin/kesl-setup.pl \
|
||||
--autoinstall=/root/kesl-install/autoinstall.ini
|
||||
test "$?" -eq 0
|
||||
echo "kesl-setup exit=$?"
|
||||
# Exit 71 with INSTALL_LICENSE=None is expected: setup treats None as a
|
||||
# code. Do not rerun setup. Continue if kesl.service is active and
|
||||
# File_Threat_Protection is Stopped.
|
||||
systemctl --no-pager status kesl
|
||||
kesl-control --app-info
|
||||
kesl-control --supported-tech-info
|
||||
kesl-control --get-task-list
|
||||
```
|
||||
|
||||
Если используется activation code, не передавайте его аргументом команды и не
|
||||
храните в этом репозитории. Выполните активацию по официальной инструкции
|
||||
Kaspersky с защищённым локальным вводом/файлом ключа.
|
||||
Активацию кодом выполняйте только после успешного `kesl-setup.pl` и до
|
||||
загрузки баз. Код не помещайте в `autoinstall.ini`, репозиторий, evidence,
|
||||
чат и историю shell:
|
||||
|
||||
```sh
|
||||
set +o history
|
||||
unset HISTFILE
|
||||
read -rsp 'KESL activation code: ' KESL_CODE; echo
|
||||
kesl-control --add-active-key "$KESL_CODE"
|
||||
unset KESL_CODE
|
||||
set -o history
|
||||
kesl-control -L --query
|
||||
kesl-control --app-info
|
||||
```
|
||||
|
||||
Нужен исходящий доступ к серверам активации Kaspersky. В выводе лицензии
|
||||
оставьте только статус «ключ действителен» и срок; сам код не копируйте.
|
||||
|
||||
## 4. Ресурсные ограничения до первого scan
|
||||
|
||||
@@ -306,13 +390,19 @@ kesl-control --app-info
|
||||
выпуска баз и успешное завершение Update. Затем задайте почасовой запуск:
|
||||
|
||||
```sh
|
||||
kesl-control --set-schedule 6 RuleType=Hourly
|
||||
START="$(LC_ALL=C date +'%Y/%b/%d %H:%M:%S;1')"
|
||||
kesl-control --set-schedule 6 \
|
||||
RuleType=Hourly \
|
||||
"StartTime=${START}" \
|
||||
RunMissedStartRules=No \
|
||||
RandomInterval=0
|
||||
kesl-control --get-schedule 6
|
||||
```
|
||||
|
||||
Если установленная сборка требует интервал в `StartTime`, не угадывайте
|
||||
синтаксис: экспортируйте schedule и измените его по документации именно этой
|
||||
сборки. До успешного автообновления АВЗ.2 не принимается.
|
||||
Для 12.4 одного `RuleType=Hourly` недостаточно: нужен `StartTime` вида
|
||||
`2026/Sep/07 12:00:00;1` (английское имя месяца, интервал 1 час). `LC_ALL=C`
|
||||
обязателен, иначе локаль `ru_RU` подставит русское имя месяца. До успешного
|
||||
автообновления АВЗ.2 не принимается.
|
||||
|
||||
Сразу после обновления повторите разделы 1.2–1.3. При деградации выполните
|
||||
rollback из раздела 11.
|
||||
@@ -422,39 +512,33 @@ kesl-control --get-settings 1
|
||||
kesl-control --get-task-state 1
|
||||
```
|
||||
|
||||
Для пилота включите асинхронный режим перехватчика `Notify`, при котором
|
||||
KESL журналирует обнаружения, но не выполняет блокирующее действие:
|
||||
Для пилота запустите File Threat Protection. На Ubuntu 24.04 с `fanotify`
|
||||
параметр `InterceptorProtectionMode` **не поддерживается** (`Unsupported
|
||||
setting`): перехватчик работает в штатном блокирующем режиме на время
|
||||
проверки. Отдельный `Notify` недоступен; откат — остановка задачи 1.
|
||||
|
||||
```sh
|
||||
kesl-control --set-app-settings InterceptorProtectionMode=Notify
|
||||
kesl-control --start-task 1
|
||||
kesl-control --get-task-state 1
|
||||
```
|
||||
|
||||
Пилот длится минимум 2–4 часа обычной нагрузки. Каждые 15 минут проверяйте
|
||||
метрики раздела 1 и события KESL. Не считайте этот режим конечной реализацией
|
||||
АВЗ.1: он не обеспечивает блокирование/лечение.
|
||||
|
||||
Если пилот стабилен, в том же maintenance window:
|
||||
|
||||
1. проверьте, что `ActionOnThreat=DisinfectDeleteIfNotPossible`;
|
||||
2. установите `InterceptorProtectionMode=Block`;
|
||||
3. перезапустите task 1, если этого требует текущая сборка;
|
||||
4. повторите health, smoke, firewall и resource checks.
|
||||
|
||||
```sh
|
||||
kesl-control --set-settings 1 \
|
||||
ActionOnThreat=DisinfectDeleteIfNotPossible ScanArchived=No
|
||||
kesl-control --set-app-settings InterceptorProtectionMode=Block
|
||||
kesl-control --stop-task 1
|
||||
kesl-control --start-task 1
|
||||
kesl-control --get-task-state 1
|
||||
kesl-control --app-info
|
||||
```
|
||||
|
||||
В режиме `Block` доступ к файлу ожидает результат проверки. При появлении
|
||||
latency вернитесь в `Notify` либо остановите task 1 и выполните rollback;
|
||||
не расширяйте исключения вслепую.
|
||||
Пилот длится минимум 15–30 минут на constrained test VM и 2–4 часа на
|
||||
боевых ресурсах. Каждые 15 минут проверяйте метрики раздела 1, события KESL
|
||||
и firewall. АВЗ.1 выполняется при `Started` + `ActionOnThreat=DisinfectDeleteIfNotPossible`.
|
||||
|
||||
Перед приёмкой:
|
||||
|
||||
```sh
|
||||
kesl-control --set-settings 1 \
|
||||
ActionOnThreat=DisinfectDeleteIfNotPossible ScanArchived=No
|
||||
kesl-control --get-task-state 1
|
||||
kesl-control --app-info
|
||||
```
|
||||
|
||||
При latency/swap/unhealthy выполните `kesl-control --stop-task 1`. Не
|
||||
расширяйте исключения вслепую. Network Threat Protection, Firewall
|
||||
Management, Web Threat Protection и Behavior Detection не запускайте.
|
||||
|
||||
## 9. Приёмочный тест и evidence
|
||||
|
||||
@@ -483,8 +567,15 @@ kesl-control --get-schedule 6
|
||||
kesl-control -E --query -n 100 --reverse
|
||||
```
|
||||
|
||||
Очистите тестовый каталог после подтверждения реакции и заполните
|
||||
`deployment/kesl/EVIDENCE.AVZ.ru.md`.
|
||||
Очистите тестовый каталог после подтверждения реакции. Копию EICAR в Backup
|
||||
удалите точечно, не весь Backup:
|
||||
|
||||
```sh
|
||||
kesl-control -B --query --reverse -n 20
|
||||
kesl-control -B --mass-remove --query "DetectName == 'EICAR-Test-File'"
|
||||
```
|
||||
|
||||
Заполните `deployment/kesl/EVIDENCE.AVZ.ru.md`.
|
||||
|
||||
## 10. Финальные проверки
|
||||
|
||||
@@ -535,7 +626,7 @@ ufw status verbose
|
||||
Сначала минимально обратимое действие:
|
||||
|
||||
```sh
|
||||
kesl-control --set-app-settings InterceptorProtectionMode=Notify
|
||||
kesl-control --stop-task 1
|
||||
```
|
||||
|
||||
Если управление KESL не отвечает:
|
||||
|
||||
Reference in New Issue
Block a user