# KUMA HOW TO

Цель данного раздела: формирование и переиспользование базы знаний по техническим вопросам использования KUMA SIEM.

# Полезные ссылки по ИБ

#### Регуляторы

- Нормативные акты в РФ по отраслям и меры защиты: [https://regulhub.kaspersky.ru/](https://regulhub.kaspersky.ru/)

#### KUMA

- Онлайн-справка по KUMA: [https://support.kaspersky.com/help/KUMA/2.1/ru-RU/217694.htm](https://support.kaspersky.com/help/KUMA/2.1/ru-RU/217694.htm)
- Группа в Telegram: [https://t.me/kumasiem](https://t.me/kumasiem)
- База знаний: [https://kb.kuma-community.ru/](https://kb.kuma-community.ru/)
- Коллекция API на Postman: [https://www.postman.com/kl-ru-presales/workspace/kaspersky-products-apis-ru/overview](https://www.postman.com/kl-ru-presales/workspace/kaspersky-products-apis-ru/overview)

#### Windows  


- Рекомендации по аудиту событий Windows: [https://github.com/JSCU-NL/logging-essentials](https://github.com/JSCU-NL/logging-essentials)
- Рекомендации от Kaspersky MDR: [https://support.kaspersky.com/MDR/ru-RU/204200.htm](https://support.kaspersky.com/MDR/ru-RU/204200.htm)
- Скрипты для **быстрой настройки политики аудита по рекомендациям MDR**: [https://box.kaspersky.com/d/48e696a683c04340926e/](https://box.kaspersky.com/d/48e696a683c04340926e/)
- **<span style="color:rgb(45,194,107);">✔️ Рекомендуется</span>** ID событий отправляемые в MS Sentinel: [https://learn.microsoft.com/en-us/azure/sentinel/windows-security-event-id-reference](https://learn.microsoft.com/en-us/azure/sentinel/windows-security-event-id-reference) (Строка с Common) 
    - **<span style="color:rgb(45,194,107);">✔️Рекомендуется </span>**Дополнительные полезные ID событий (пресейл рекомендация дополнение к MS Sentinel): [https://box.kaspersky.com/f/8c71107f71054d3981c3/](https://box.kaspersky.com/f/8c71107f71054d3981c3/)
- Рекомендации от ManageEngine: [https://www.manageengine.com/products/active-directory-audit/guide-to-configure-group-policy-object-auditing-in-adauditplus.html](https://www.manageengine.com/products/active-directory-audit/guide-to-configure-group-policy-object-auditing-in-adauditplus.html)
- Рекомендации от MS: 
    - [https://learn.microsoft.com/ru-ru/windows-server/identity/ad-ds/plan/security-best-practices/audit-policy-recommendations](https://learn.microsoft.com/ru-ru/windows-server/identity/ad-ds/plan/security-best-practices/audit-policy-recommendations)
    - <span lang="en-us" style="font-size:11pt;font-family:Calibri, sans-serif;">[https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/appendix-l--events-to-monitor](https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/plan/appendix-l--events-to-monitor)</span>
- Что наиболее интересно собирать с Windows — [https://www.cyber.gov.au/acsc/view-all-content/publications/windows-event-logging-and-forwarding](https://www.cyber.gov.au/acsc/view-all-content/publications/windows-event-logging-and-forwarding)
- Рекомендации сбору событий с Sysmon, конфигурация: [https://github.com/olafhartong/sysmon-modular/blob/master/sysmonconfig.xml](https://github.com/olafhartong/sysmon-modular/blob/master/sysmonconfig.xml)
- Открытый сканер уязвимостей для Active Directory: [https://kb.kuma-community.ru/books/kuma-how-to/page/ckaner-uiazvimostei-adpulse-dc](https://kb.kuma-community.ru/books/kuma-how-to/page/ckaner-uiazvimostei-adpulse-dc)

#### Linux

- Описание Audit системы: [https://access.redhat.com/articles/4409591](https://access.redhat.com/articles/4409591)
- **<span style="color:rgb(45,194,107);">✔️Рекомендуется </span>**Конфиг для AuditD (Florian Roth): [https://github.com/Neo23x0/auditd](https://github.com/Neo23x0/auditd)
    - **<span style="color:rgb(45,194,107);">✔️Рекомендуется </span>**улучшение конфига на странице настройки AuditD: [https://kb.kuma-community.ru/books/podkliucenie-istocnikov/page/nastroika-auditd-na-unix-sistemax](https://kb.kuma-community.ru/books/podkliucenie-istocnikov/page/nastroika-auditd-na-unix-sistemax)
- Конфиг для AuditD (с маппингом MITRE): [https://github.com/bfuzzy1/auditd-attack/tree/master/auditd-attack](https://github.com/bfuzzy1/auditd-attack/tree/master/auditd-attack)
- Конфиг для TrendMicro DS: [https://github.com/deep-security/auditd-config/](https://github.com/deep-security/auditd-config/)
- AuditD на GoLang: [https://slack.engineering/syscall-auditing-at-scale/](https://slack.engineering/syscall-auditing-at-scale/)
- Конфиги для AuditD (по различным стандартам): [https://github.com/linux-audit/audit-userspace/tree/master/rules](https://github.com/linux-audit/audit-userspace/tree/master/rules)
- Аггрегация событий AuditD по ID: [https://github.com/simple-evcorr/sec](https://github.com/simple-evcorr/sec) , [https://docs.nxlog.co/refman/current/pm/evcorr.html](https://docs.nxlog.co/refman/current/pm/evcorr.html)

#### Cisco

- Настройка Netflow: [https://www.cisco.com/c/dam/en/us/td/docs/security/stealthwatch/netflow/Cisco\_NetFlow\_Configuration.pdf](https://www.cisco.com/c/dam/en/us/td/docs/security/stealthwatch/netflow/Cisco_NetFlow_Configuration.pdf)

#### Примеры событий различных систем

- [https://github.com/elastic/beats/tree/master/x-pack/filebeat/module](https://github.com/elastic/beats/tree/master/x-pack/filebeat/module)
- [https://docs.trellix.com/bundle/enterprise-security-manager-data-sources-configuration-reference-guide/page/GUID-49F19CE4-38BC-4322-B0C1-E1CF3AB277CB.html](https://docs.trellix.com/bundle/enterprise-security-manager-data-sources-configuration-reference-guide/page/GUID-49F19CE4-38BC-4322-B0C1-E1CF3AB277CB.html)
- [https://docs.cyderes.cloud/parser-knowledge-base](https://docs.cyderes.cloud/parser-knowledge-base)
- [https://github.com/izysec/linux-audit/tree/main/LogSamples](https://github.com/izysec/linux-audit/tree/main/LogSamples)

#### Прочее

- Написание регулярных выражений: [https://regex101.com/](https://regex101.com/)

# FAQ

<p class="callout info">Ниже вы можете найти ответы на часто задаваемые вопросы, а также задать свои в комментариях</p>

---

##### **Q**: Где найти логи компонентов KUMA?

**A**: Логи всех компонентов находятся по пути `/opt/kaspersky/kuma/<component>/<id>/log/<component>`

`<component>` - collector, correlator, storage, agent

`<id>` - id соответствующего сервиса

- Логи core 
    - KUMA до 3.0 `/opt/kaspersky/kuma/core/log/core`
    - KUMA 3.0 `/opt/kaspersky/kuma/core/log/stdout.log` и `/opt/kaspersky/kuma/core/log/stderr.log`
    - KUMA 3.2 `/opt/kaspersky/kuma/core/00000000-0000-0000-0000-000000000000/log/stdout.log` и `/opt/kaspersky/kuma/core/00000000-0000-0000-0000-000000000000/log/stderr.log`
- Логи агента Windows `C:\ProgramData\Kaspersky Lab\KUMA\agent\<id>\agent.log`
- Логи mongodb `/opt/kaspersky/kuma/mongodb/log/mongod.log`
- Логи grafana `/opt/kaspersky/kuma/grafana/data/log/grafana.log`

---

##### **Q:** Как посмотреть id (идентификатор) сервиса?

**A:** В веб-интерфейсе перейти на вкладку **Ресурсы** - **Активные сервисы**. Поставить галочку слева от нужного сервиса и в верхней части интерфейса выбрать **Копировать идентификатор**. Идентификатор сервиса будет скопирован.

---

##### **Q:** Как отправить пример события на коллектор?

**A:** Можно воспользоваться утилитой nc (текстом и из файла):

```
nc <адрес коллектора> <порт коллектора> <<< "тестовое событие"
nc <адрес коллектора> <порт коллектора> < events.txt
```

Для отправки по udp нужно добавить к командам ключ `-u`

Также можно воспользоваться труЪ способом (для tcp и udp соответственно):

```
echo "тестовое событие" > /dev/tcp/<адрес коллектора>/<порт коллектора>
echo "тестовое событие" > /dev/udp/<адрес коллектора>/<порт коллектора>
```

Еще примеры - [**тут**](https://kb.kuma-community.ru/books/kuma-how-to/page/pervicnyi-trablsut-v-kuma-troubleshoot#bkmrk-%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0-%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D1%81).

---

##### **Q:** Как отправлять события на http-коллектор?

**A:** Для отправки события на http-коллектор используется POST запрос на URL `http://<collector ip/fqdn>:<port>/input`  
Событие помещается в body запроса.

---

##### **Q:** Как открыть порт на межсетевом экране KUMA?

**A:** Используются стандартные команды межсетевых экранов

firewalld (для Oracle Linux):

```
firewall-cmd --add-port=7220/tcp --permanent
firewall-cmd --reload
```

ufw (для Astra Linux):

```
ufw allow 7220/tcp
ufw reload
```

---

##### **Q:** Как отредактировать файл hosts в Windows?

**A:** Запустите cmd.exe от имени администратора и выполните команду:

```cmd
notepad.exe %WINDIR%\System32\drivers\etc\hosts
```

Внесите изменения в файл и сохраните (`Ctrl + S`)

---

##### **Q:** Можно ли устанавливать несколько агентов на один сервер?

**A:** Официально, нет. Правильный способ - создавать сервис агента с несколькими Подключениями (Config's).

---

##### **Q:** Что указывать в URL udp/tcp коннектора?

**A:** Достаточно указать просто порт через двоеточие, например, `:5151`

---

##### **Q:** Сбор не стандартных журналов с Windows-агентом KUMA, на примере Powershell"

**A:** Если необходимо анализировать определенные журналы приложений, напишите имя журнала в выпадающем списке и нажмите Добавить.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-12/scaled-1680-/itEimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-12/itEimage.png)

Пример, с Powershell, сначала смотрим в свойствах журнала в EventViewer полное название:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-12/scaled-1680-/Wnzimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-12/Wnzimage.png)

Добавляем в агент:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-12/scaled-1680-/layimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-12/layimage.png)

---

##### **Q:** Ошибка Windows-агента при установке "No mapping between account names and security IDs was done."

**A:** Опечатка в логине пользователя, указанного в ключе `--user`

---

##### **Q:** Обновил KUMA до 2.1, не могу найти kuma-clickhouse.service, все пропало?

**A:** Начиная с версии 2.1 отдельного микросервиса kuma-clickhouse больше нет. Clickhouse теперь дочерний процесс сервиса kuma-storage-&lt;id&gt;

---

##### **Q:** Как работает механизм опроса хостов в коннекторе WMI в реализации агента kuma? 

**A:** Агент обходит все серверы и пытается собрать с них логи. Если какой то сервер не доступен, агент запишет ошибку доступа в лог и перейдёт к следующему серверу в списке. К проблемному серверу в следующий раз придёт через 60 сек. И так до бесконечности. Если проблемный сервер оживет через 10 дней, то логи с него будут собираться автоматом. Это верно для версии 2.1.

---

##### **Q:** Как записать что-либо в поле Timestamp?

**A:** Никак. Для записи временных меток пользователем есть поля EndTime, StartTime и другие.

---

##### **Q:** Как в поиске по событиям указать, что поле должно быть непустым?

**A:** `!=''` для строковых полей и `!=0` для числовых. Пример:

```sql
SELECT * FROM `events` WHERE Name != '' AND SourcePort != 0
```

---

##### **Q:** Как посмотреть сколько места занимают партиции с данными за день?

**A:** Место можно посмотреть в вебе: **Активные сервисы** - **Хранилище** - **Смотреть разделы**

---

##### **Q:** Каким способом лучше всего собирать логи KSC?

**A:** Однозначного ответа нет: сбор из БД не требует дополнительной лицензии; сбор в формате CEF требует лицензию Расширенный и выше; сбор Syslog требует долгой настройки, как на стороне KSC, так и на стороне нормализатора.

---

##### **Q:** Где посмотреть список поддерживаемых источников / нормализаторов из коробки?

**A:** Онлайн-справка: [https://support.kaspersky.com/KUMA/2.1/ru-RU/255782.htm](https://support.kaspersky.com/KUMA/2.1/ru-RU/255782.htm)

---

##### **Q:** Как обратиться к полю Extra при использовании шаблонов?

**A:** С помощью конструкции `{{index .Extra "myField1"}}{{index .Extra "myField2"}}`

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/oznimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/oznimage.png)

---

##### **Q:** Могут ли компоненты KUMA работать за NAT?

**A:** Да, начиная с версии 2.1 компоненты KUMA умеют находиться за NAT. Для этого при установке сервисов нужно указать дополнительные параметры:

```bash
--advertise.api.port string   API port to be reported to Core
--advertise.fqdn string       FQDN to be reported to Core
```

---

##### **Q:** Как в корреляции обратиться к служебным полям активного листа?

**A:** У активных листов есть следующие служебные поля:

- <span style="color:rgb(0,0,0);">\_count (счетчик количества записей)</span>
- <span style="color:rgb(0,0,0);">\_created (время создания записи UnixTime, в наносекундах)</span>
- <span style="color:rgb(0,0,0);">\_updated (время обновления записи UnixTime<span style="color:rgb(0,0,0);">, в наносекундах</span>)</span>
- <span style="color:rgb(0,0,0);">\_expires (время окончания жизни записи UnixTime<span style="color:rgb(0,0,0);">, в наносекундах</span>)</span>
- <span style="color:rgb(0,0,0);">\_key (значение ключевой записи)</span>

---

##### **Q:** В каком формате задается время в поиске событий по REST API?

**A:** Время задается в теле запроса в блоке period (в параметрах from и to). Для времени в UTC формат должен быть следующим:

**`YYYY-MM-DDThh:mm:ssZ`**

Пример:

```
2022-12-08T17:30:00Z
```

При необходимости, можно также указать таймзону в формате **`+/-hh:mm`** без пробела после времени и литеры **`Z`**

Пример:

```
2022-12-08T17:30:00+03:00
```

---

##### **Q:** Удалил сервис KUMA из веб-интерфейса, но забыл скопировать ID для удаления в консоли, как найти ID?

**A:** Можно в поиске событий выполнить запрос:

```sql
SELECT * FROM `events` WHERE DeviceAction = 'service deleted' AND Type=4 ORDER BY Timestamp DESC LIMIT 250
```

В результате поиска можно будет увидеть события удаления сервиса. ID сервиса будет в поле `DeviceExternalID`.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-12/scaled-1680-/lvdimage.png)

---

# Развернутые ответы на вопросы

В данном разделе находятся ответы на вопросы по KUMA, которые сложно уместить в одно предложение

# Что такое SIEM и Приоритет подачи журналов в SIEM

### Вводная SIEM

<div id="bkmrk-security-information" style="text-align: justify;">Security information and event management (SIEM) – решение для консолидации и анализа данных о событиях, создаваемые системами безопасности, сетевой инфраструктурой конечными точками, приложениями и облачными сервисами. </div><div id="bkmrk-" style="text-align: justify;">  
</div><div id="bkmrk-%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9-%D1%82%D0%B8%D0%BF-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-" style="text-align: justify;">Основной тип данных – логи/журналы, но SIEM может также обрабатывать иные типы данных, например, EDR-телеметрию или сетевую телеметрию (flows). </div><div id="bkmrk--1" style="text-align: justify;">  
</div><div id="bkmrk-%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F-%D0%BC%D0%BE%D0%B3%D1%83%D1%82" style="text-align: justify;">Данные события могут дополняться контекстной информацией о пользователях, активах, угрозах и уязвимостях. Параметры событий могут быть нормализованы, чтобы предоставить возможность единообразного анализа (корреляции, формирования отчётов и графиков) данных из разрозненных источников. </div><div id="bkmrk--2" style="text-align: justify;">  
</div><div id="bkmrk-%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B8%D0%B2%D0%B0%D0%B5%D1%82" style="text-align: justify;">Решение обеспечивает анализ событий в режиме близком к реальному времени для мониторинга безопасности, ретроспективного поиска, расследования инцидентов и других задач, например, проверки соответствия законодательству или отчётность.</div><div id="bkmrk--3" style="text-align: justify;">  
</div><div id="bkmrk-%D0%A2%D0%B5%D1%80%D0%BC%D0%B8%D0%BD-siem-%D0%B1%D1%8B%D0%BB-%D0%B2%D0%BF%D0%B5%D1%80" style="text-align: justify;">Термин SIEM был впервые введён Gartner в 2005.</div><div id="bkmrk--4" style="text-align: justify;">  
</div><div id="bkmrk-%D0%92-2015%2C-%D0%B1%D1%8B%D0%BB-%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2" style="text-align: justify;">В 2015, был представлен концепт "next-gen SIEM" или SIEM 2.0. Основное отличие – введение user behavioral analytics (UBA). Next-gen SIEM ориентированы в первую очередь на применение в очень крупном бизнесе (команды SOC 10+ сотрудников).</div><div id="bkmrk--5" style="text-align: justify;">  
</div><div id="bkmrk-%D0%92-2020-siem-%D0%BE%D1%81%D1%82%D0%B0%D1%91%D1%82%D1%81%D1%8F">В 2020 SIEM остаётся ключевым инструментом для работы команд SOC или ИБ. SIEM предоставляет:</div><div id="bkmrk-%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D1%81-%D1%80">- Получение данных с различных уровней сети
- Централизованное хранение и просмотр различных данных в нормализованном виде
- Кросс-корреляцию данных

</div><div id="bkmrk-%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE">Стандартные возможности SIEM:</div><div id="bkmrk-logs-management-%28col">- Logs management (collection, normalization, storage)
- Detection (correlation)
- Reporting (dashboards, reports)
- Assets inventory (vulnerability management)

</div><div id="bkmrk-%D0%9D%D0%BE%D0%B2%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BA-siem">Новые запросы к SIEM:</div><div id="bkmrk-ti-management---as-a">- TI management - as a context about threats
- Threat Hunting support (quick advanced search, anomaly detection)
- Machine learning detection (UEBA/UBA)
- Response orchestration and automation

</div><div id="bkmrk--6"></div>### Сценарий применений SIEM

<div id="bkmrk-%D0%9F%D1%80%D0%B5%D0%B4%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BD%D0%BE%D0%B5-%D0%BE%D0%B1%D1%81%D0%BB%D0%B5%D0%B4">1. Предпроектное обследование (сбор информации об источниках, инфраструктуре), составление модели угроз, разработка сценариев выявления
2. Развёртывание и первоначальная настройка Подключение источников событий, интеграция с продуктами для реагирования и обогащения
3. Доработка и адаптация правил корреляции, дашбордов, отчётов
4. Инвентаризация и категоризация активов, групп пользователей
5. Штатная работа с системой (мониторинг безопасности, реагирование на инциденты, Threat Hunting)
6. \[по мере необходимости\] Подключение новых источников, обновление коннекторов, правил корреляции
7. \[на регулярной основе\] Оценка эффективности и актуализация сценариев выявления и правил корреляции
8. Остальные юзкейсы будут на этой странице (в разработке)

</div>### Эффективное логирование направлено на:

1. Отправку оповещений ответственным за мониторинг, когда происходят события кибербезопасности, такие как внесение критических изменений в конфигурацию программного обеспечения или развертывание новых программных решений;
2. Выявление событий кибербезопасности, которые могут указывать на инцидент кибербезопасности, например, использование злоумышленниками методов Living off the Land (LOTL) (атака, в ходе которой злоумышленники используют легитимные инструменты и механизмы, присутствующие в целевой системе) или боковое перемещение после компрометации;
3. Поддержку реагирования на инциденты путем выявления масштаба и степени компрометации;
4. Мониторинг соответствия учетных записей организационным политикам;
5. Сокращение шума по оповещениям, экономия на расходах, связанных с хранением и временем выполнения запросов;
6. Предоставление возможности принимать гибкие и обоснованные решения на основе приоритизации оповещений и аналитики;
7. Гарантирование того, что журналы будут пригодными для аналитиков.

<div id="bkmrk--7"></div><div id="bkmrk--8"></div>### Хранение журнала событий

Организации должны гарантировать, что они хранят журналы достаточно долго для поддержки расследований инцидентов кибербезопасности.

Сроки хранения журналов должны быть основаны на оценке рисков для данной системы. При оценке рисков для системы следует учитывать, что в некоторых случаях может потребоваться до 18 месяцев, чтобы обнаружить инцидент кибербезопасности, а некоторые вредоносные программы могут находиться в сети от 70 до 200 дней, прежде чем нанести явный вред.

Сроки хранения журналов также должны соответствовать любым нормативным требованиям и структурам кибербезопасности, которые могут применяться в юрисдикции организации. Журналы, которые имеют решающее значение для подтверждения вторжения и его последствий, должны быть приоритетными для более длительного хранения.

### Приоритет журналов систем к подаче в SIEM

<div id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BE%D1%80%D0%B8%D1%82%D0%B5%D1%82-%D0%BF%D0%BE%D0%B4%D0%B0%D1%87%D0%B8-%D1%81%D0%BE%D0%B1" style="text-align: justify;">Приоритет подачи событий от определенных систем, прежде всего зависит от модели нарушителя и его возможностей на основе рисков. Если такого документа нет, то можно руководствоваться базовым подходом и акцентировать внимание на события следующих источников (при наличии) данных в порядке приоритета:</div><div id="bkmrk-%D0%9F%D0%B5%D1%80%D0%B8%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D1%8B%D0%B5%2F%D0%9F%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8">1. Периметровые/Пограничные решения (External facing Systems): *VPN порталы, WEB сервера, терминалы, точки доступа, роутеры и др.*
2. Системы информационной безопасности (Security Devices): *МЭ, IPS/IDS, Email защита, NGFW, Антивирусная защита, EDR, WAF и др.*
3. Системы аутентификации (Authentication Systems): *PAM, MFA, LDAP/FreeIPA, RADIUS, CA Systems, SAML, AD и др.*
4. SaaS приложения/ПО как услуга (SaaS Apps): *Slack, Cloudflare, Microsoft Azure Active Directory, Zscaler и др.*
5. Системы под управлением ОС Windows (Windows Systems): *Сервера (AD, MS SQL,Exchange, DNS, DHCP, SCCM, WSUS, и др.), Рабочие станции и др.*
6. Системы под управлением ОС Linux (Linux Systems): *apache, nginx, mysql, fail2ban, bind, samba, exim, squid, postgres и др.*
7. Сетевые устройства (Network Devices): *Маршрутизаторы (Netflow полезно), коммутаторы, мосты, Wi-Fi, модемы, концентраторы и др.*
8. Системы виртуализации (Virtualization Systems): *VMware, Citrix, Hyper-V, KVM, ProxMox и др.*
9. Внутренние системы (Internal Systems): *Процессинг, Бизнес-приложения и др.*
10. Управления и работа с мобильными устройствами (Mobile Devices): *MDM, EMM, UEM и др.*
11. Системы хранения данных и СРК (Storage/Backup Systems): *DELL EMC, HP 3PAR, NetApp, Veeam, CommVault и др.*
12. Узкоспециализированное ПО (COT: commercial off-the-shelf): *Собственные приложения, The Microsoft Office, Adobe Photoshop, SAP и др.*

</div>#### Подход для корпоративных сетей на основе рисков

1. Критические системы и хранилища данных, которые, вероятно, будут атакованы;
2. Интернет-сервисы, включая удаленный доступ к ним, сетевые метаданные и их ОС;  
    серверы управления идентификацией и доменами;
3. Любые другие критические серверы;
4. Пограничные устройства, такие как граничные маршрутизаторы и фаерволы;
5. Административные рабочие станции;
6. Высокопривилегированные системы, такие как управление конфигурацией, мониторинг производительности и доступности (в случаях, когда используется привилегированный доступ), CI/CD, службы сканирования уязвимостей, управление секретами и привилегиями;
7. Хранилища данных;
8. Системы связанные с ИБ и критически важное ПО;
9. Пользовательские компьютеры;
10. Журналы пользовательских приложений;
11. Веб-прокси, используемые пользователями организации и сервисные учетные записи;
12. DNS-сервисы (используемые пользователями организации), серверы электронной почты, серверы DHCP;
13. Устаревшие ИТ-активы (которые ранее не были зафиксированы в критических или интернет-сервисах).
14. Журналы с более низким приоритетом: 
    1. Базовая инфраструктура, например, хосты гипервизора;
    2. ИТ-устройства, например, принтеры
    3. Сетевые активы, например, шлюзы приложений.

<div id="bkmrk--9"></div>

# Схема сетевого взаимодействия KUMA (Архитектура)

<p class="callout info">Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и **НЕ** является официальной рекомендацией вендора.</p>

<p class="callout info">Полная таблица доступов по портам (используемые порты) KUMA: [https://support.kaspersky.ru/kuma/4.2/217770](https://support.kaspersky.ru/kuma/4.2/217770) </p>

<p class="callout warning">Между шардами кластера хранилища необходимо также открывать порт **9000**, несмотря на то, что это не указано в таблице документации</p>

Схема (хранилище представлено с двумя репликами, т.е. с копией данных):

<details id="bkmrk-kuma-%D0%B4%D0%BE-4.0"><summary>KUMA до 4.0</summary>

[![Схема сетевого взаимодействия KUMA (1) (1).jpg](https://kb.kuma-community.ru/uploads/images/gallery/2025-03/scaled-1680-/sxema-setevogo-vzaimodeistviia-kuma-1-1.jpg)](https://kb.kuma-community.ru/uploads/images/gallery/2025-03/sxema-setevogo-vzaimodeistviia-kuma-1-1.jpg)

</details><details id="bkmrk-kuma-%D0%BE%D1%82-4.0"><summary>KUMA от 4.0</summary>

[![Схема сетевого взаимодействия KUMA 4 (2).drawio.png](https://kb.kuma-community.ru/uploads/images/gallery/2025-12/scaled-1680-/sxema-setevogo-vzaimodeistviia-kuma-4-2-drawio.png)](https://kb.kuma-community.ru/uploads/images/gallery/2025-12/sxema-setevogo-vzaimodeistviia-kuma-4-2-drawio.png)

</details><p class="callout info">В случае если не дать доступ от Ядра до API портов служб (оранжевая стрелка), ядро не сможет отслеживать статусы служб и метрики, но события могут отправляться на корреляцию и хранение (если эти доступы открыты)</p>

<p class="callout info">Для работы в изолированных сегментах через дата-диод, можно узнать в [**этой**](https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/ustanovka-agenta-v-rezime-diod-diode) статье</p>

Файл для редактирования (draw.io): [https://box.kaspersky.com/d/757e0187aeae4d1caffb/](https://box.kaspersky.com/d/757e0187aeae4d1caffb/)

# Модель лицензирования KUMA (Licensing)

<p class="callout success">Проверить поддержку версии продукта [https://support.kaspersky.com/corporate/lifecycle#b2b.block13.kuma](https://support.kaspersky.com/corporate/lifecycle#b2b.block13.kuma) </p>

Лицензирование продукта Kaspersky Unified Monitoring and Analysis Platform (KUMA) происходит по **среднему** количеству обрабатываемых событий в секунду (EPS) за 24 часа.

<p class="callout info">Минимально возможное количество EPS к приобретению = **500**.</p>

Подсчет событий идет после процесса их обработки, то есть после фильрации, агрегации и обогащения.

<p class="callout info">Если от коллектора событие отправляется в несколько точек назначения, то оно учитывается как одно событие.</p>

<p class="callout warning">В случае, если среднее значение превышает ограничение по EPS, указанное в лицензионном ключе, KUMA уведомляет о данном событии в интерфейсе. А также, если за 7 дней работы KUMA среднее значение EPS превышало ограничение 30% времени и более, KUMA дополнительно отправляет на email-адрес администратора уведомление о превышении количества полученных событий и продолжает далее подсчёт среднего значения EPS, не блокируя функционал.</p>

**Лицензии срочные, выписываются на 1, 2 или 3 года**, если необходимо больше, то цена складвается из цен за ранее указанные периоды.

<p class="callout danger">По истечении лицензии **+ 7 дней** блокируются все функции (создание и / или изменение контента SIEM, обработка новых событий, корреляция, а также создание или изменение правил корреляции, нормализации, дашбордов, отчетов и пр.), за исключением просмотра информации по ранее собранным событиям.</p>

---

### Описание модулей лицензирования

<span class="fontstyle0">Решение класса SIEM (Security Information and Event Management), предназначенное для централизованного сбора, анализа и корреляции событий информационной безопасности с различных источников данных. Решение обеспечивает единую консоль мониторинга, анализа и реагирования на угрозы ИБ, объединяя как решения «Лаборатории Касперского», так и сторонних производителей. Начиная с версии 2.1 поддерживается развёртывание в режиме отказоустойчивости, при котором отказ одного или нескольких узлов не приводит к нарушению потоковой обработки событий и выявления инцидентов. Отказоустойчивость системы достигается за счёт встроенных механизмов маршрутизации данных. Дополнительных лицензии и лицензионного ключа для отказоуствойчивости не требуется. Отдельный модуль High Availability доступен только до версии 2.0 (включительно).</span>

<p class="callout info"><span class="fontstyle0">Каждый из модулей решения KUMA включает в себя возможность сделать **50 запросов в Kaspersky Threat Lookup** для получения дополнительного контекста в ходе проведения расследования. Чтобы активировать эту функцию, отправьте запрос с указанием номера заказа на адрес intelligence@kaspersky.com.</span></p>

#### Netflow Support (Netflow)

События телеметрии о трафике, которые помогают в обнаружении аномалий на сетевом уровне и расследовании инцидентов. KUMA выполняет приём и обработку Netflow событий без ограничений, при этом данные Netflow не учитываются в счётчике EPS. Следует учитывать дополнительную нагрузку на мощности машины при анализе Netflow. Поддерживаются стандарты NetFlow v5/­v9/IPFIX, Flexible NetFlow (FNF, где периодичноть темплейта должна быть до 1 мин.) и sFlow.

<details id="bkmrk-%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83-%D1%8D%D1%82%D0%BE-%D0%BC%D0%BE%D0%B6%D0%B5%D1%82-%D0%B1%D1%8B%D1%82"><summary>Почему это может быть полезно</summary>

Netflow собирает данные о потоках, а не о каждом отдельном пакете, что делает его более эффективным с точки зрения производительности.

Основные данные, содержащиеся в трафике Netflow, (**Netflow v5**): IP-адрес источника (Source IP), IP-адрес назначения (Destination IP), Порт источника (Source Port), Порт назначения (Destination Port), Номер протокола (Protocol Number, например, TCP, UDP), Количество пакетов (Packets), Количество байтов (Bytes), Время начала потока (Flow Start Time), Время окончания потока (Flow End Time), Номер интерфейса (Interface Index).

Другие параметры: Тип сервиса (Type of Service, TOS), Флаги TCP (TCP Flags), Входящий и исходящий VLAN ID (VLAN ID), Направление потока (Ingress/Egress Interface)

**Netflow v9**: Более гибкая и расширяемая версия, чем Netflow v5, поддерживающая шаблоны полей, что позволяет собирать дополнительные данные, такие как: MAC-адреса источника и назначения, Имена приложений, Уровень MPLS, Информация о VPN.

Netflow позволяет (целесообразность с точки зрения ИБ):

- отслеживать объемы, типы и направления трафика, что помогает выявлять аномальные паттерны, которые могут указывать на кибератаки, такие как DDoS, сканирование портов, попытки взлома и т.д.;
- отслеживать попытки несанкционированного доступа к сетевым ресурсам;
- предоставляет информацию о том, какие приложения и пользователи потребляют больше всего сетевых ресурсов, что помогает выявить потенциальные уязвимости и оптимизировать сетевую инфраструктуру;
- реконструировать последовательность событий, которые привели к инциденту, что помогает в расследовании и выявлении причин.

</details>#### GosSOPKA (ГосСОПКА)

Модуль, обеспечивающий возможность интеграции с технической инфраструктурой НКЦКИ (Национальный координационный центр по компьютерным инцидентам). Модуль ГосСОПКА позволит передавать инциденты, выявленные SIEM «по требованию» (т. е. по явному указанию пользователя), в техническую инфраструктуру НКЦКИ через API и получать рекомендации по реагированию на эти инциденты. Модуль ГосСОПКА регулирует только взаимодействие с НКЦКИ по инцидентам.

#### Threat Intelligence (TI)

В рамках данного модуля поставляются платформа для управления данными об угрозах Kaspersky CyberTrace и потоки данных об угрозах Kaspersky Threat Data Feeds. Наличие лицензии упрощает интеграцию потоков данных с KUMA для дальнейшего использования аналитики угроз в повседневной работе ИБ-служб. KUMA собирает журналы с различных устройств, ИТ-систем и ИБ-инструментов и отправляет данные о событиях с URL, IP-адресами и хешами в Kaspersky CyberTrace на анализ, который сопоставляет поступающие события с потоками данных об угрозах и отправляет данные об обнаруженных угрозах в обратно в KUMA и Kaspersky CyberTrace Web. Аналитик ИБ получает оповещения об обнаруженных угрозах с дополнительным контекстом и может провести первоначальное расследование и инициировать процесс реагирования на основе полученного контекста. Платформа взаимодействует с любыми типами потоков аналитических данных об угрозах («Лаборатории Касперского», других поставщиков, из открытых источников или иных каналов) в форматах JSON, STIX/TAXII, XML и CSV и поддерживает интеграции с рассылками НКЦКИ и бюллетенями ФинЦЕРТ. В рамках данного модуля доступны следующие **потоки данных об угрозах: Malicious URL, BotnetCnC URL и Phishing URL, IP reputation и Ransomware URL.**

<p class="callout warning">Использовать фиды и Kaspersky CyberTrace, приобретённые в рамках данного модуля, можно **только для обогащения событий**, получаемых KUMA (использовать с другими SIEM системами, а также для интеграции с системами других классов недопустимо).</p>

Предоставляется к KUMA дополнительно лицензия (Enterprise TIP) на продукт CyberTrace + сертификат для CyberTrace для получения фидов.

При приобретении KUMA (любых модулей) также предоставляется доступ к Kaspersky Threat Intelligence Portal (до 100 запросов в Kaspersky Threat Lookup и до 10 запросов в Kaspersky Threat Analysis) в период действия лицензии. Портал позволяет получить дополнительный контекст в ходе проведения расследований. Чтобы активировать эту функцию,  
отправьте запрос с указанием номера заказа на адрес <intelligence@kaspersky.com>

#### KUMA Integration Add-on (отправка логов ОС с помощью KES)

(<span data-teams="true"><span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">\*Дополнение к любой лицензии KUMA</span></span>)

В KES для Windows, начиная с версии 12.6, есть возможность отправлять события из журналов Windows в коллектор KUMA. Это позволяет получить в KUMA события из журналов Windows со всех хостов, на которых установлен KES для Windows версии 12.6, без установки агентов KUMA на эти хосты. Подробнее тут: [https://support.kaspersky.com/KUMA/3.4/ru-RU/280730.htm](https://support.kaspersky.com/KUMA/3.4/ru-RU/280730.htm) Ограничений на количество хостов нет.

В KES для Linux, начиная с версии 12.2, есть возможность отправлять события ОС Linux в коллектор KUMA. Поддерживаемые типы событий: ProcessCreate, ProcessTerminate, FileChange, EventLog (ServiceStart, LinuxSessionStart, ServiceStop, LinuxSessionEnd, SuccessfulLogin, NewUserCreated, ...). Подробнее тут: [https://support.kaspersky.ru/help/KUMA/4.0/ru-RU/301648.htm](https://support.kaspersky.ru/help/KUMA/4.0/ru-RU/301648.htm) и тут [https://support.kaspersky.ru/kes-for-linux/12.4.0/314120](https://support.kaspersky.ru/kes-for-linux/12.4.0/314120)

<p class="callout info">Отправка событий из журналов начинается с самой начальной записи </p>

<p class="callout info">Указанное в лицензии ограничение на максимальное количество устройств номинальное (на текущий момент)</p>

#### Модуль AI (Artificial intelligence)

##### Kaspersky Investigation &amp; Response Assistant (KIRA)

Облачный ИИ-ассистент предназначен для анализа событий и корреляционных событий в KUMA. Он выполняет детальный разбор командных строк (Windows/Linux) с деобфускацией, формирует краткое содержание и предоставляет аналитическую информацию, необходимую для расследования инцидентов и приоритизации алертов. Для функционирования модуля требуется действующая лицензия KUMA и сертификат, обеспечивающий возможность выполнения запросов. Использование KIRA [**подробнее**](https://kb.kuma-community.ru/books/integracii/page/rabota-s-kira-i-primery-ispolzovaniia-iuzkeisy).

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2025-02/scaled-1680-/2fqimage.png)

##### Сервис AI (on-prem) по рейтингу и статусу активов

AI-сервис ([Инструкция](https://kb.kuma-community.ru/books/integracii/page/ai-skoring-aktivov) по настройке) получает корреляционные события со связанными активами, формирует ожидаемые цепочки событий и обучает модель на поведении конкретной инфраструктуры.

На основе анализа последовательности срабатываний корреляционных правил система определяет, является ли данная цепочка нетипичной, и автоматически:

- рассчитывает AI-рейтинг актива (числовое значение от 0 до 1);
- предоставляет оценку аномальности, на основе которой можно уточнить приоритет алерта

Модель переобучается раз в сутки, а переоценка рейтинга активов выполняется каждый час для всех активов, участвовавших в событиях за последние 24 часа.

Результат — снижение нагрузки на специалистов ИБ, фокус на реальных инцидентах и ускорение реакции за счет минимизации ложных срабатываний.

##### Обнаружение атак DLL Hijacking  


Облачный модуль обнаружение атак DLL Hijacking — AI механизм выявления одной из самых скрытных техник компрометации. DLL Hijacking используется злоумышленниками для запуска вредоносного кода через легальное ПО за счёт подмены динамических библиотек. Детектирование выполняется на этапе обогащения событий, что позволяет выявлять атаку ещё до её развития.

Ключевые особенности решения:

- Используется обогащение типа «Проверка DLL Hijacking» на корреляторе;
- Требуется доступ к KSN;
- В облачный AI-модуль передаются: 
    - хэш и путь DLL-файла;
    - хэш и путь процесса;
    - цифровая подпись процесса (опционально)

Облачный AI-детект усиливает классический сигнатурный подход, обеспечивая более высокую точность и выявление ранее неизвестных атак.

Результат — раннее обнаружение DLL Hijacking, снижение риска обхода средств защиты и повышение эффективности реагирования на сложные атаки.

Материалы:

- [Видео](https://vk.com/video-28022322_456241195) из конференции PHDays
- Прикладная [статья](https://securelist.ru/detecting-dll-hijacking-with-machine-learning-in-kaspersky-siem/113569/) об этой технике атаки
- подробная [инструкция](https://support.kaspersky.com.br/help/KUMA/4.0/ru-RU/304384.htm) по настройке в официальной документации

##### Обнаружение (on-prem)<span style="font-size: 19.6px;"> </span>использования скомпроментированной УЗ (Lateral Movement)  


Модуль представляет собой ML-механизм для выявления скрытого горизонтального перемещения злоумышленника внутри инфраструктуры. Работает с Correlator-NG / Correlator 2.0 (KUMA от 4.2) и анализирует поведение учетных записей, сравнивая текущую активность пользователя с его выученным историческим профилем. Модель обучается на данных за последние 60 дней, что позволяет точно определять индивидуальную «норму» и фиксировать отклонения.

Покрываемые сценарии:

- Аномальное количество ранее неизвестных IP-адресов, с которых выполнялся логон под учетной записью.
- Аномальное количество новых host’ов, куда осуществляется логон и другие активности от имени аккаунта.
- Прочие нетипичные действия, указывающие на попытки горизонтального перемещения.

Результат — раннее обнаружение компрометации, сокращение времени присутствия атакующего в сети и предотвращение развития атаки на критические ресурсы.

---

### Предлагаемая техническая поддержка

<p class="callout info">[https://support.kaspersky.ru/corporate/msa#tab2](https://support.kaspersky.ru/corporate/msa#tab2) по KUMA см. документ "Поддержка для Premium и Premium Plus" </p>

#### Каналы связи

<table border="1" id="bkmrk-premium-premium%C2%A0plus" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 54.0173%;"></col><col style="width: 24.3463%;"></col><col style="width: 21.6364%;"></col></colgroup><tbody><tr><td>  
</td><td>**Premium**</td><td>**Premium Plus**</td></tr><tr><td>Company account (веб-портал, уведомления через почту)</td><td>✔</td><td>✔</td></tr><tr><td>Телефон</td><td>✔</td><td>✔</td></tr></tbody></table>

##### Время реакции в зависимости от уровня критичности

<table border="1" id="bkmrk-premium-premium%C2%A0plus-1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 54.0173%;"></col><col style="width: 24.3463%;"></col><col style="width: 21.6364%;"></col></colgroup><tbody><tr><td>  
</td><td>**Premium**</td><td>**Premium Plus**</td></tr><tr><td>Критический (24 / 7)</td><td>2 часа</td><td>0,5 часа</td></tr><tr><td>Высокий (в рабочие часы)</td><td>6 часов</td><td>4 часа</td></tr><tr><td>Средний (в рабочие часы)</td><td>8 часов</td><td>6 часов</td></tr><tr><td>Низкий (в рабочие часы)</td><td>10 часов</td><td>8 часов</td></tr></tbody></table>

##### Доступные услуги

<table border="1" id="bkmrk-%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B5-%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 54.0173%;"></col><col style="width: 24.3463%;"></col><col style="width: 21.6364%;"></col></colgroup><tbody><tr><td>Программные исправления</td><td>**Premium**</td><td>**Premium Plus**</td></tr><tr><td>Удаленное подключение для диагностики проблем</td><td>✔</td><td>✔</td></tr><tr><td>Постпроектная поддержка\*</td><td>✔</td><td>✔</td></tr><tr><td>Частные исправления</td><td>✔</td><td>✔</td></tr><tr><td>Рекомендации по оптимизации</td><td>✔</td><td>✔</td></tr><tr><td>Персональный технический аккаунт менеджер (ТАМ)</td><td>❌</td><td>✔</td></tr><tr><td>Регулярные статус-встречи с ТАМ для анализа зарегистрированных инцидентов, связанных с ТП</td><td>❌</td><td>Ежеквартальный отчет</td></tr><tr><td>Разработка нормализаторов для нестандартных источников событий</td><td>10 шт.\*\*</td><td>20 шт.\*\*</td></tr></tbody></table>

*\* Консультации по донастройке в среде заказчика проводятся только по продукту KUMA и при наличии информации о инфраструктуре и схеме развёртывания продукта.*

*\*\* Количество ежегодно.*

##### Premium Pro

Новый (с середины ноября 2025) уровень расширенной технической поддержки. Включает в себя **Premium Plus + регламентные работы для сопровождения продукта** (Количество работ зависит от типа работ и продуктов заказчика).

<details id="bkmrk-%D0%92%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D1%8B%D1%85-%D1%80"><summary>Варианты сервисных работ (Premium Pro)</summary>

Установка и настройка:

- Развертывание и первоначальная настройка одной инсталляции Kaspersky Unified Monitoring and Analysis Platform
- Разработка дашборда (графической панели) или отчета под нужды заказчика
- Настройка одной интеграции или источника событий

Обновление:

- Сопровождение инженером процесса обновления одной инсталляции KUMA заказчика

Оценка и оптимизация

- Стандартный Health Check - оценка параметров работы KUMA (анализ только блока технического состояния)
- Разработка/доработка нормализатора
- Разработка нового корреляционного правила
- Расчет сайзинга инсталляции: подробный расчёт ресурсов, рекомендуемых для корректной работы продукта

Поддержка на площадке:

- Выезд инженера для консультации в критической ситуации или в случае отсутствия возможности предоставления удаленного доступа

</details>---

### Обучение / Сертификация

#### Администратор (KL 034.4)  


<p class="callout info">Ссылка на официальный ресурс: [https://academy.kaspersky.ru/course/kaspersky-unified-monitoring-and-analysis-platform-administration](https://academy.kaspersky.ru/course/kaspersky-unified-monitoring-and-analysis-platform-administration) </p>

- Разворачивание KUMA для демонстрации решения
- Расширение уже существующей инсталляции
- Обеспечение отказоустойчивости ядра, хранилища и коллекторов
- Настройка получения событий из разных источников
- Настройка уведомлений

#### Расследование (KL 051.4)  


<p class="callout info">Ссылка на официальный ресурс: [https://academy.kaspersky.ru/course/kaspersky-unified-monitoring-and-analysis-platform-investigation](https://academy.kaspersky.ru/course/kaspersky-unified-monitoring-and-analysis-platform-investigation) </p>

*Фокус: Расследование и анализ атак*

- Настройка обработки событий (нормализация, агрегация, обогащение, и т.д.)
- Создание правил корреляции и реагирования, с последующим анализом данных для выявления угроз
- Использование ресурсов и функций KUMA для анализа и выявления угроз (активные списки, словари, переменные, API и т.п.)

#### Аналитик безопасности KUMA  


<p class="callout info">Ссылка на официальный ресурс: [https://academy.kaspersky.ru/course/kuma-security-analyst](https://academy.kaspersky.ru/course/kuma-security-analyst) </p>

*Фокус: мониторинг + первичный анализ*

- Анализ алертов и событий безопасности (от первичного анализа до эскалации в инцидент)
- Архитектура KUMA
- Работа с логами: 
    - поиск и фильтрация
    - ретроспективный анализ
    - SQL-запросы
- Создание правила корреляции для выявления атак
- Проводить расследование инцидентов и выявление угроз
- Использовать подходы вроде MITRE ATT&amp;CK для анализа атак

---

### Состав поставки дистрибутива

##### Обычная версия KUMA

- **kuma-ansible-installer-k8s-\*.tar.gz** — архив с пакетами установки KUMA, где отказоустойчивое ядро разворачивается в кластере Kubernetes
- **kuma-ansible-installer-\*.tar.gz** — стандартный архив с пакетами установки KUMA

##### Сертифицировнная версия KUMA

**Обычный архив = certified-архив (ISO) + env\* (ISO)**

*\*env — архив с компонентами, не подлежащими сертификации. Используется для получения функционирующего инсталлятора из сертифицированного архива.*

# Типы хранения данных в KUMA

В KUMA существует три типа пространства для хранения событий:

- Горячее
- Холодное
- Архивное

Для оптимизации использования дискового пространства и ускорения выполнения запросов в KUMA введено несколько уровней устройств хранения:

- **Горячее (hot)** - оперативное хранение, обычно состоит из быстродействующих устройств с ограниченным объемом пространства \[Диски, например: NVMe или SSD\]. Поиск по событиям доступен из веб-интерфейса KUMA.
- **Холодное (cold)** - медленные устройства, но большого объема \[Диски, например: HDD SAS или HDD SATA\]. Поиск по событиям доступен из веб-интерфейса KUMA.

Основная идея разделения хранилищ на "горячие" и "холодные" состоит в том, что доступ к данным сохраняется, но при этом увеличиваются задержки. Используется сочетание настроек политики хранения ClickHouse и механизма переноса разделов таблиц между дисками. Плюсом подхода является возможность использовать в качестве хранилища любое примонтированное в качестве каталога Linux устройство, хранилища **HDFS** (используется функционал хранения, поиск делается с ClickHouse), а также **S3**.

<p class="callout warning">Планируется прекращение поддержки **HDFS** и рекомендуется запланировать перенос данных в **S3**.</p>

<p class="callout info">Подробнее про холодное хранение - [https://support.kaspersky.ru/kuma/4.2/221257?page=help](https://support.kaspersky.ru/kuma/4.2/221257?page=help) </p>

Для холодного по объему пространства нужно столько же, сколько и для горячего (нет дополнительной компресии), сами диски можно использовать менее производительней и подешвле.

С версии 3.4 <span class="fontstyle0">в связи с расширением функционала, изменился подход к определению срока хранения событий при использовании холодного хранения: Общий срок хранения событий определяется параметром TTL события - отсчет начинается от момента попадания события в хранилище. Значение TTL указывает, сколько времени событие будет храниться в KUMA. Время нахождения события в горячем хранилище определяется Вариантами условий хранения и может быть определено в днях, гигабайтах или процентах дискового пространства. Для горячего хранения можно применить до двух политик. Данные будет находиться в горячем хранилище до срабатывания одной из политик, после чего раздел с самыми старыми данными будет перемещен в холодное хранилище и будет находиться в холодном хранилище до истечения TTL.</span> Общее время = горячее + холодное.

Холодное пространство монтируется на сами хранилища (в случае локального типа холодного хранения) в нужном объеме, на рисунке ниже схематично показано, как это выглядит для двух реплик (R) и одного шарда (S):

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-11/scaled-1680-/gIfimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-11/gIfimage.png)

<p class="callout warning">Владельцем папки по точке монтирования холодного хранения должна быть УЗ kuma, команда: `chown -R kuma:kuma /mnt/cold_stor/`</p>

<p class="callout info">Если добавить второй локальный диск, то данные между ними будут распределяться по алгоритму round-robin до тех пор, пока кусок данных, который мы хотим вставить не окажется больше свободного зарезервированного места на диске. Когда это случится все записи будут падать по round-robin в следующие диски. Если дисков всего 2, то соответственно в тот, где есть место</p>

<details id="bkmrk-%D0%9C%D0%BE%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8%D1%81%D0%BA%D0%B0-%D0%B2"><summary>Монтирование диска в fstab с правами для kuma</summary>

Узнайте UID и GID пользователя kuma

```bash
id -u kuma
id -g kuma
```

Добавить запись в конец файла /ets/fstab, пример:

```bash
/dev/sdb1 /mnt/cold_stor/ auto defaults,uid=988,gid=984,umask=770 0 0
```

</details>- **Архивное хранение** — (отщелкивание индексов ClickHouse) по архивным данным поиск не возможен, только если вручную, либо автоматизировано разархивировать и аттачить партиции. \[Диски, например: Лента, HDD SATA, USB FLASH, ленты, в сейфе\]. Операция архивирования выполняется не автоматически \[функционал не из коробки\], есть скрипт не официальный, который может выполнять эту задачу (доступен из комьюнити в Community-Pack - см. [**тут**](https://github.com/KUMA-Community/kuma_save_partition)), либо использовать автоматизацию. Объем занимаемого пространства примерно на **40% меньше**, чем при горячем/холодном хранении (например, при потоке событий в 1000 EPS, для его хранения в течении 1 месяца требуется 1 ТБ места в хранилище (без учета реплик), в архиве будет занимать 600-700 GB).
- С версии 4.2 из веб-интерфейса стала возможным настройка автоматического архивирования + ручной режим, соответственно и импорт также возможен через веб

<p class="callout info">KUMA позволяет гибко настроить политику хранения событий (retention-период) по разным условиям: По дате, По объему, По проценту от занятого места на диске</p>

# Первичный Траблшут в KUMA (Troubleshoot)

### Проверка статуса основных компонентов

Основные службы KUMA:

```bash=
systemctl status kuma-collector-ID_СЕРВИСА.service
systemctl status kuma-correlator-ID_СЕРВИСА.service
systemctl status kuma-storage-ID_СЕРВИСА.service
systemctl status kuma-core-ID_СЕРВИСА.service
systemctl status kuma-metrics-ID_СЕРВИСА.service
```

<p class="callout info">В версии KUMA 3.2 сервис ядра изменил название на **kuma-core-00000000-0000-0000-0000-000000000000.service**</p>

ID\_СЕРВИСА можно скопировать в веб-интерфейсе системы, в разделе Активные сервисы, выделив в checkbox нужный сервис, затем нажав кнопку скопировать ID.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/I9Nimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/I9Nimage.png)

<p class="callout danger">Перед рестартом коры (в версии KUMA 3.2) необходимо убедиться, что БД SQLite не находится в обслуживающем режиме (VACUUM), для этого перед рестартом убедитесь, что после выполенения команды **<span class="NormalTextRun BCX0 SCXO245249528">sqlite3 /opt/</span><span class="SpellingError BCX0 SCXO245249528">kaspersky</span><span class="NormalTextRun BCX0 SCXO245249528">/</span><span class="SpellingError BCX0 SCXO245249528">kuma</span><span class="NormalTextRun BCX0 SCXO245249528">/core/00000000-0000-0000-0000-000000000000/raft/</span><span class="SpellingError BCX0 SCXO245249528">sm</span><span class="NormalTextRun BCX0 SCXO245249528">/</span><span class="SpellingError BCX0 SCXO245249528">db</span><span class="NormalTextRun BCX0 SCXO245249528"> 'PRAGMA </span><span class="SpellingError BCX0 SCXO245249528">locking\_mode</span><span class="NormalTextRun BCX0 SCXO245249528">;'</span>** получаете ответ `normal` <span class="NormalTextRun BCX0 SCXO245249528"> </span></p>

---

### Проверка журнала ошибок KUMA

`/opt/kaspersky/kuma/<Компонент>/<ID_компонента>/log/<Компонент>`

Пример:

`/opt/kaspersky/kuma/storage/<ID хранилища>/log/storage`

Для неактуальных версий (2.0 и ниже):

- `journalctl –xe`
- Журнал ошибок Click-House: `/opt/kaspersky/kuma/clickhouse/logs/clickhouse-server.err.log`

---

### Вывод ошибок сервиса в консоль

В случае отсутствия информации в журналах целесообразно вывести информацию в консоль. Проверяем статус сервиса и копируем его параметры запуска:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/vVKimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/vVKimage.png)

**Останавливаем сервис**, переходим в папку `cd /opt/kaspersky/kuma/` и запускаем следующим образом, пример команды ниже:

```bash
sudo -u kuma /opt/kaspersky/kuma/kuma collector --id cef0527c-25ad-4490-a8ce-bf9ab2af71ee --core https://test-kuma.sales.lab:7210 --api.port 7276
```

---

### Пустые метрики

<p class="callout warning">Для версий ниже 3.2</p>

В случае если раздел метрик пустой (отсутствуют значения на дашбордах), то проверьте указан ли IP и hostname сервера KUMA в файле /etc/hosts, если нет то добавьте.

Перезапустите службы:

```bash
systemctl restart kuma-victoria-metrics.service
systemctl restart kuma-grafana.service
```

Либо присутствует конфликт со службой Cockpit на Oracle Linux.

Она слушает тот же порт 9090, что и Victoria Metrics. Останови Cockpit и посмотри, поднимутся ли метрики.

Либо проблема из-за наличия прокси между ядром и АРМом, с которого к вебке подключались.

---

### Проверка прослушивания порта, например, 5144

```bash
netstat –antplu | grep 5144
```

---

### Работа с портами на МЭ (firewall-cmd)

Проверка открытых портов на МЭ:

```bash
firewall-cmd --list-ports
```

Добавление порта 7210 на МЭ:

```bash
firewall-cmd --add-port=7210/tcp --permanent
```

Применение настроек:

```bash
firewall-cmd --reload
```

---

### Проверка получения событий на порту 5144 в ASCII

```bash
tcpdump -i any port 5144 -A
```

---

### Отправка тестового события на порт 5144, для проверки работы коллектора

Для TCP:

```bash
nc 127.0.0.1 5144 <<< 'CEF:0|TESTVENDOR|TESTPRODUCT|1.1.1.1|TEST_EVENT|This is a test event|Low|message="just a test coming through"'
```

Для UDP:

```bash
nc -u 127.0.0.1 5144 <<< 'CEF:0|TESTVENDOR|TESTPRODUCT|1.1.1.1|TEST_EVENT|This is a test event|Low|message="just a test coming through"'
```

В случае наличия в сыром событии двух типов кавычек ' и ", то целесообразно отпралять событие из файла (для этого тестовое событие запишите в файл 1 строку).

```
cat test.txt | nc -u 127.0.0.1 5144
```

Для HTTP:

```bash
curl -X POST -d "Your message here" http://localhost:<port>/path
```

Если многострочное событие в файле с разделителем \\0:

```bash
truncate -s +1 sample
curl http://<ip/host>:<port>/input --data-binary "@/root/sample"
```

---

### Статус службы красный / Ошибка на компоненте

Переписать / перепроверить учетные данные (если используются) используемые в коннекторе на коллекторе. Проверить владельца папки службы, должно быть **kuma:kuma**

Посмотреть статус сервиса через консоль ssh. В случае если он запущен остановить:

```bash
systemctl stop kuma-collector-ID_СЕРВИСА.service
```

запустить вручную (`--api.port` выбирайте любой свободный), и посмотреть есть ли ошибки при запуске:

```bash
/opt/kaspersky/kuma/kuma collector --id ID_СЕРВИСА --core https://FQDN_KUMA:7210 --api.port 7225
```

Если будут ошибки, они явно отразятся в консоли.

Для сервисов без ID, сначала смотрим параметры запуска службы, например:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/dG7image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/dG7image.png)

Затем делаем стоп службы и запускаем строку запуска от пользователя KUMA:

<p class="callout warning">Для версий ниже 3.2</p>

```
sudo -u kuma /opt/kaspersky/kuma/kuma core --external :7220 --internal :7210 --mongo mongodb://localhost:27017
```

---

### Ручная очистка пространства хранилища

Если место на сервере хренения заканчивается, но еще не закончилось.

Выберите в активных сервисах - сервис хранилища (storage) и нажмите на кнопку смотреть разделы. Удаляйте наиболее старые партиции.

Далее (чтобы в будущем не заполнялось):

1. Resources/Storage - уменьшаем ретеншен период
2. после этого рестарт сервисов KUMA Storage. Изменения применятся примерно в течение часа и место освободится.

---

### Закончилось дисковое пространство

<span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">Если место уже закончилось.</span>

- При all-in-one инсталляции в web консоль KUMA уже не пустит. Для all-in-one последовательность действий следующая: 
    - Останавить все сервисы `systemctl stop kuma-*`
    - Удалить буферы коллекторов и коррелятора: `rm -rf /opt/kaspersky/kuma/collector/*/buffers/*` и `rm -rf /opt/kaspersky/kuma/correlator/*/buffers/`
    - Удалить кеш обогащения (если есть) коллекторов и коррелятора: `rm -rf /opt/kaspersky/kuma/collector/*/cache/enrichment/*` и `rm -rf /opt/kaspersky/kuma/correlator/*/cache/enrichment/`
    - Удалить лог файлы clickhouse:  `rm -rf /opt/kaspersky/kuma/storage/*/logs/`
    - запустить сервис clickhouse: `systemctl start kuma-storage*`
    - запустить сервисы core: `systemctl start kuma-core-00000000-0000-0000-0000-000000000000`
    - залогиниться в web консоль KUMA, удалить лишние партиции (см. предыдущий пункт траблшута)
    - Стартуем оставшиеся сервисы KUMA (`kuma-metrics-<ID>.service`, `kuma-collector-*`, `kuma-correlator-<id>`)

- Если серверы хранения находятся отдельно: 
    - Остановить все коллекторы и корреляторы. Никакие новые события не должны отправляться в Storage.
    - На серверах хранения остановить сервис kuma-storage
    - очистить файлы журналов `rm -rf /opt/kaspersky/kuma/storage/*/logs/`
    - очистить файлы буфера `rm -rf /opt/kaspersky/kuma/storage/*/buffers/`
    - Запустить сервис `systemctl start kuma-storage-<ID>`
    - Залогиниться в web консоль KUMA, удалить лишние партиции (см. предыдущий пункт траблшута)

Далее (чтобы в будущем не заполнялось) в KUMA с версии 3.2: В Параметры - Мониторинг сервисов - Хранилище, выставьте нужные значения по оповещениям и ротации.

Для полной очитки данных хранилища (выполнять на хранилищах и киперах):

- systemctl stop kuma-storage-\*.service
- rm -rf /opt/kaspersky/kuma/clickhouse/data
- rm -rf /opt/kaspersky/kuma/clickhouse/coordination
- rm -rf /opt/kaspersky/kuma/clickhouse/logs/
- Иногда полезно чистить 
    - rm -rf /opt/kaspersky/kuma/clickhouse/tmp/
    - rm -rf /opt/kaspersky/kuma/storage/\*/buffers/
- systemctl start kuma-storage-\*.service

---

### Создание сервисов в случае их отсутствия

Если в разделе **Ресурсы – Активные сервисы** отсутствуют что-либо, то необходимо создать необходимые службы.

#### Создаем сервис хранилища

Перейдите в **Ресурсы – Хранилища** затем нажать на кнопку **Добавить хранилище** придумайте название и затем укажите количество дней хранения событий и событий аудита (от 365 дней срок хранения аудита), затем нажмите **Сохранить**.

Публикуем созданный сервис **Ресурсы – Активные сервисы** затем выбрать созданный ранее сервис и нажать на кнопку Создать сервис.

Скопируйте идентификатор сервиса:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/cVWimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/cVWimage.png)

Выполните команду в консоли:

<p class="callout info">В случае использования ядра в кластере **Raft** в параметре **--core** необходимо указать адреса всех серверов ядра через запятую.</p>

```bash
/opt/kaspersky/kuma/kuma storage --id <ВАШ_ИДЕНТИФИКАТОР> --core https://<FQDN/ИМЯ_ХОСТА_СЕРВЕРА_ЯДРА>:7210 --api.port 7230 --install
```

В разделе **Ресурсы – Активные сервисы** убедитесь, что служба работает более 30 секунд с «зеленым» статусом индикатора:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/sCSimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/sCSimage.png)

Далее создадим точку назначения, которая используется в маршрутизации событий, перейдите в **Ресурсы – Точки назначения**, затем нажмите на кнопку **Добавить точку назначения**. Придумайте название и затем в поле URL укажите FQDN и порт службы хранилища, например: `kuma-1-5-1.sales.lab:7230`, затем нажмите **Сохранить**.

Аналогичные действия понадобятся для установки остальных компонентов, только в интерфейсе будет доступна команда, которую необходимо будет выполнить для установки службы.

---

#### Создаем сервис коррелятора

Развернем коррелятор, перейдите в **Ресурсы – Корреляторы**, нажмите на кнопку Добавить коррелятор и затем пройдите по мастеру настроек, на шаге добавления маршрутизации добавьте точку назначения ранее созданного хранилища:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/seoimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/seoimage.png)

На последнем шаге нажмите кнопку **Сохранить и создать сервис**, в случае отсутствия ошибок появится командная строка для установки службы, скопируйте ее и выполните по ssh.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/4AXimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/4AXimage.png)

Аналогично по мастеру создаются коллекторы для приема или получения событий с источников.

---

### Ошибка скрипта при установке - ipaddr

Если при установке возникает следующая ошибка (пишется в конце исполнения скрипта):

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/RB7image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/RB7image.png)

То попробуйте установить нужную библиотеку для python, это было в требованиях https://support.kaspersky.com/KUMA/1.6/ru-RU/231034.htm, в случае отсутствия возможности это сделать то закомментируйте (вставьте # перед строками) следующие строки в файле `kuma-ansible-installer/tasks/validate-inventory.yml`:

```
#- name: Ensure there is no IP as hostname
# loop: "{{ groups.all }}"
# when: item | ansible.netcommon.ipaddr
# fail:
# msg: |
# host: {{ item }}
# error: Hostname expected
```

---

### Слушать на 514 порту (порты &lt; 1024)

По умолчанию это невозможно, так работает Linux. Для обхода этого в описании сервиса:

```
/usr/lib/systemd/system/kuma-collector-<ID>
```

Добавьте значение ниже тега \[Service\]

```
AmbientCapabilities=CAP_NET_BIND_SERVICE
```

Затем запустите команду ниже для обновления параметров сервиса

```
systemctl daemon-reload
```



---

### Не запускается хранилище после перезагрузки в версии от 2.1

Прописать следующую команду в SSH консоли:

```bash
sudo -u kuma touch /opt/kaspersky/kuma/clickhouse/data/flags/force_restore_data
```

---

### Ошибка БД ClickHouse Table read only replicas

Ошибка в логах хранилища выглядит так: ![](https://hackmd.io/_uploads/HyVkodCjn.png)

Зайдите в клиент ClickHouse:

```
/opt/kaspersky/kuma/storage/<ID>/deps/clickhouse/bin/client.sh
```

Выполните команду:

```
system restart replica on cluster kuma kuma.events_local_v2
```

Для выхода из клиента нажмите **Ctrl+D**.

---

### Ошибка ZooKeeper - KEEPER\_EXCEPTION

Убедиться, что ipv6 включен:

```bash
ping ::1
```

Убедиться, что у вас корректное содержимое в /etc/hosts, смотрите этап [**подготовки** ](https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/podgotovka-os-pered-ustanovkoi-i-trebovaniia)п. 8

Очистить Coordination Zookeeper и наработки хранилища (удаляет все события):

```bash
systemctl stop kuma-storage-<ID>.service
rm -rf /opt/kaspersky/kuma/storage/<ID>/data/*
rm -rf /opt/kaspersky/kuma/storage/<ID>/tmp/*
rm -rf /opt/kaspersky/kuma/clickhouse/coordination/*
systemctl start kuma-storage-<ID>.service
```

Иногда требуется (в случае если ошибка остаеся):

```bash
sudo -u kuma touch /opt/kaspersky/kuma/clickhouse/data/flags/force_restore_data
```

Либо:

```
/opt/kaspersky/kuma/clickhouse/bin/client.sh
system restore replica on cluster kuma kuma.events_local_v2
```

---

### Признаки нехватки выделенных ресурсов

Описание метрик доступно тут: [https://kb.kuma-community.ru/books/kuma-how-to/page/opisanie-metrik-v-kuma](https://kb.kuma-community.ru/books/kuma-how-to/page/opisanie-metrik-v-kuma)

#### Универсальный показатель Load

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-05/scaled-1680-/ealimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-05/ealimage.png)

Мощностей не хвататет, если на нодах высокий LA (Load average), утилизация CPU доходит до 100%, нагрузка зависит не только от потока (EPS) зависит, но и от профиля использования (количество обогащений, интеграций, используемых правил и т.д.). Средние значения нагрузки (Load averages):

- Если значения равны 0.0, то система в состоянии простоя
- Если среднее значение для 1 минуты выше, чем для 5 или 15, то нагрузка растёт
- Если среднее значение для 1 минуты ниже, чем для 5 или 15, то нагрузка снижается
- Если значения нагрузки выше, чем количество (виртуальных) процессоров, то могут быть проблемы с производительностью (в зависимости от ситуации)

#### Проблема с производительностью диска на хранилище по метрикам

Накапливается буфер в точках назначения, на рисунке ниже хранилище не справляется с потоком, в норме буфер не накапливается при доступности хранилища:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-05/scaled-1680-/bCYimage.png)

Загрузка CPU и RAM доходит до 100% или близко к этому значению:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-05/scaled-1680-/aIoimage.png)

В случае использования кластера хранилищ растут очереди распределенных запросов и мерджи:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-05/scaled-1680-/baTimage.png)

Хранилища выпадают в режим только для чтения:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-05/scaled-1680-/Fh8image.png)

 Может быть полезно для хранилища при нагрузках или плохой производительности:

- Работа с объемом буфера для записи в хранилище и временем ожидания, изменение парметров хранилища (во вкладке дополнительно службы хранилища): 
    - Если в метриках по хранилищу Batch Size крайне низок по сравнению со 128 МБ, то следует увеличить Интервал очистки буфера (по умолчанию 1 сек). Данные сбрасываются в хранилище либо по достижению определенного размера или по таймауту и задача найти этакий баланс между размером пачки и интервалом очистки. Хранилище не любит работать часто с мелкими фрагментами данных.
    - Размер буфера (Batch Size) по умолчанию он 128 МБ, увеличить в большую сторону.
- Вынесение и использование отдельных машин с ролью keeper
- Использование более производительного RAID массива
- Использование более производительного дискового носителя
- Использование дополнительного шарда для повышения производительности

Также оценить нагрузку на диск можно командой `top` в ОС Linux, отслеживая параметр wa (wa: io wait cpu time (or) % CPU time spent in wait on disk) — показывает процент операций, готовых быть выполненных процессором, но находящихся в состоянии ожидания от диска. Допустимое значение &lt; 0.5, в идеале 0.

Требования к хранилищу - [**тут**](https://kb.kuma-community.ru/link/21#bkmrk-%D0%A2%D1%80%D0%B5%D0%B1%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B4%D0%BB%D1%8F-%D0%A5%D1%80%D0%B0%D0%BD%D0%B8)

Устройство кластера хранилищ - [**тут**](https://kb.kuma-community.ru/books/kuma-how-to/page/ustroistvo-klastera-xranilishha)

#### Проблема с производительностью сервисов (особенно коррелятор), большой Output Latency

Если CPU заняты не полностью (не на 100%), а Latency существенный (более 1-2 сек) — проблема вероятней всего в сети. Ниже пример допустимого Output Latency.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/Vvximage.png)

Для подверждения, что проблема именно в сети, установите коррелятор локально (что бы события не через сетевой интерфейс летели, а через localhost) на сервер с коллекторами, и подайте туда поток событий с аналогичной нагрузкой. Также полезно ознакомиться с разделом ниже.

#### Проблема с производительностью сервисов (особенно коррелятор), большьшая нагрузка на CPU, памяти и периодические перезапуски службы

Большое кол-во коллекторов (&gt; 100 шт.) перенаправляют события на коррелятор. Высокая загрузка CPU на серверах и большое количество отправляемых пакетов с коллекторов приводит к общей деградации серверов со службой коррелятора по CPU и памяти (корреляторы перезапускаются каждые 5 минут). Пример поведения по метрикам:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/NJOimage.png)

Для решения проблемы были внесены изменения в точку назначения коррелятора, увеличив время ожидания соединения до 300-400 сек (задача найти этакий баланс между размером пачки и скоростью обработки/времени задержки). Множество мелких вставок данных от множества коллекторов в коррелятор хуже, лучше редкие и пачки объемней. Утилизация памяти на серверах со службой коррелятора выше 50% в течение для не поднималась.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/srTimage.png)

Если CPU потребляются не на 100%, но при этом увеличивается время задержки обработки или нестабильное потребление ОЗУ, то можно:

- попробовать подобрать оптимальное (больше не значит производительней - используйте метод научного тыка) число рабочих процессов / workers для службы, количество воркеров должно быть идентичным для совместно работающих служб, например, на коллеккторе и его точке назначения - корреляторе.
- в случае когда соединений к коллектору становится очень много, то стандартное значение буфера (нуль = 1Мб) приводит к увеличению потребления оперативной памяти, так как память выделяется под каждое соединение. Рекомендуемое значение = размер события + небольшой запас в байтах (можно посмотреть в метриках в разделе нормализация - Raw &amp; Normalized event size). Настройка выполняется на коллекторе "Транспорт - Дополнительные - Размер буфера")

Также полезным будет события от множества коллекторов отправлять в маршрутизатор событий (отдельный служба в KUMA) для реализации отдачи потока событий от одной точки.

Также это один из поводов дополнительно увеличить доступные коррелятору вычислительные ресурсы, либо разделить имеющиеся правила на N независимых групп, разместив каждую группу правил на отдельной группе корреляторов, если решение выше не сильно помогло.

---

### Профилирование нагрузки служб

Профилирование необходимо для более глубокого изучения проблем связанных с нагрузкой и ресурсами.

1\. Включить профилирование для сервиса, отредактируйте файл сервиса

```bash
/usr/lib/systemd/system/kuma-<serviceKind>-<ID>.service
```

В файле необходимо найти параметр `ExecStart=` и дописать в конце `--pprof` после этого выполнить `systemctl daemon-reload` и перезапустить (restart) сервис.

2\. Команда для сбора профиля данных по памяти

```bash
curl  http://127.0.0.1:7211/debug/pprof/heap > /tmp/heap.out
```

3\. Команда для сбора профиля данных по процессору

```bash
curl  http://127.0.0.1:7211/debug/pprof/profile?seconds=30 > /tmp/cpuprof.out
```

4\. Расшифровка профиля. Потребуется установленный Go из папки с бинарем go (загружаете для своей ОС [https://go.dev/dl/](https://go.dev/dl/)) запускается команда (в результате будет сгенерирована картинка с профайлером):

```bash
go tool pprof -png /tmp/heap.out
```

Пример результата:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-10/scaled-1680-/4noimage.png)

Другие профили:

```
curl -o allocs.out http://127.0.0.1:7211/debug/pprof/allocs
curl -o block.out http://127.0.0.1:7211/debug/pprof/block
curl -o cmdline.out http://127.0.0.1:7211/debug/pprof/cmdline
curl -o goroutine.out http://127.0.0.1:7211/debug/pprof/goroutine
curl -o mutex.out http://127.0.0.1:7211/debug/pprof/mutex
curl -o threadcreate.out http://127.0.0.1:7211/debug/pprof/threadcreate
curl -o trace.out http://127.0.0.1:7211/debug/pprof/trace?seconds=30
```

---

### Мониторинг работы ядра в кластере Kubernetes

Посмотреть логи сервисов KUMA:

```bash
k0s kubectl logs -f -l app=core --all-containers -n kuma
```

На хосте контроллера можно посмотреть какие сервисы запущены:

```bash
k0s kubectl get pods --all-namespaces
```

По команде выше, в столбце NAMESPACE нам интересна строка kuma, в этой строке берем значение столбца NAME для просмотра конфигурации используем команду:

```bash
k0s kubectl get pod core-deployment-984fd44df-5cfk5 -n kuma -o yaml | less
```

Получить список рабочих узлов:

```bash
k0s kubectl get nodes
```

Получить расширенную инфу по рабочему узлу, в т.ч. потребление:

```bash
k0s kubectl describe nodes kuma-4.local
```

Зайти в командную строчку пода core-\*:

```bash
k0s kubectl exec --stdin --tty core-deployment-984fd44df-gqzlx -n kuma -- /bin/sh
```

Потребление ресурсов контейнеров внутри пода:

```bash
k0s kubectl top pod core-deployment-984fd44df-gqzlx -n kuma --containers
```

Для более удобного управления кластером используйте утилиту k9s - https://github.com/derailed/k9s

После установки ядра в кластере в папке установки прописывается конфиг, например, `/root/kuma-ansible-installer/artifacts/k0s-kubeconfig.yml`. Его надо “скормить” k9s командой: `export KUBECONFIG=/root/kuma-ansible-installer/artifacts/k0s-kubeconfig.yml`

Для персистентности переменной KUBECONFIG, необходимо выполнить команду:

```
echo "KUBECONFIG=/root/kuma-ansible-installer/artifacts/k0s-kubeconfig.yml" >> /etc/environment
```

Проверить переменные окружения можно командой:

```
export -p
```

Далее можно запустить утилиту (ее можно загрузить **[отсюда](https://box.kaspersky.com/f/9a7d035ee9724966987e/)**) просто указав на исполняемый файл `./k9s`

![](https://hackmd.io/_uploads/SJnp7vRjh.png)Небольшие подсказки по горячим клавишам k9s:

- `?` — Посмотреть хелп по командам
- `Shift+F` — Настроить порт форвардинг (например, для longhorn-ui)
- `:` — для ручного ввода команд, ESC для выхода
- `:events` — Смотреть события кубера
- `:pods` — Смотреть поды кубера (стандартное отображние)

Общий подход по траблшутингу k8s:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-11/scaled-1680-/npeimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-11/npeimage.png)

# Описание процесса работы c инцидентами в KUMA

Ниже приведено описание основного функционала KUMA задействованного в управлении инцидентами.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/6TIimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/6TIimage.png)

---

### Алерты  


#### Создание алерта  


Алерт создается в результате сработки корреляционного правила на основе поступивших событий, он является подозрением на инцидент. Чтобы создать алерт, необходимо настроить корреляционное правило и в секции Actions не включать опцию Do not create alert, в таком случае при срабатывании этого правила, создастся новый алерт.

#### Оповещение об алерте  


При появлении алерта есть возможность настроить оповещение на почту. Для этого необходимо перейти в `Settings -> Alerts -> Notification rules`. При создании нового правила оповещения можно указать свой шаблон для письма. С помощью правил оповещения есть возможность настроить разные сценарии в зависимости от того какое корреляционное правило сработало, и исходя из этого оповещение уйдет разным получателям.

#### Назначение ответственного на алерт  


Обнаружив новый алерт, аналитик может взять его в обработку, назначив на себя, для этого в окне алерта необходимо на верхней панели в **поле Assigned** to выбрать Me, либо выбрать другого пользователя, чтобы назначить алерт на него.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/3P2image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/3P2image.png)

#### Связанные активы  


В рамках алерта в зависимости от событий могут быть связанные активы (хосты или аккаунты). Для автоматической актуализации активов можно настроить интеграцию, например, с Active Directory и Kaspersky Security Center. Если в событии встречается актив, то система автоматически связывает само событие с активом, а затем и алерт с активом. Список связанных активов находится в карточке алерта в полях Related endpoints и Related users.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/QYjimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/QYjimage.png)

#### История изменений и ведение журнала  


Для отслеживания всех действий, в карточке алерта есть раздел Change log, куда записываются все изменения алерта. Также для удобного взаимодействия внутри команды аналитиков, есть возможность оставлять записи в Change log, чтобы фиксировать ход расследования или записывать важную информацию.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/H7pimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/H7pimage.png)

#### Связанные события  


При срабатывании одного и того же правила новых алертов не создается, а наполняется существующий до тех пор, пока он не будет закрыт, либо если не создано правло сегментации для этого првила корреляции. В одном алерте может быть несколько вложенных событий, которые указаны в поле Related events. Для удобства расследования связанные события раскрываются в иерархическое дерево в зависимости от цепочки сработавших правил. Детали каждого события можно просмотреть прямо из карточки алерта, нажав на само событие.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/4VZimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/4VZimage.png)

#### Детализированный анализ  


При необходимости детального анализа и изучения событий, которые произошли до и после инцидента, можно перейти ко всем событиям из алерта, нажав кнопку **Find in events** в разделе **Related events.** Перейдя во вкладку **Events** в результатах поиска, будут отображены все связанные события. Для отображения всех событий, которые были в данные промежуток времени, нужно сменить выбор с **Related to alert**, на All events. В результате отобразятся все события, среди которых можно выполнить поиск новых связанных событий и привязать их к алерту. Для этого выберете событие и в появившемся окне с детальной информацией нажмите Link to alert. Таким образом можно обогатить алерт новыми связанными событиями.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/LV1image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/LV1image.png)

#### Закрытие алерта  


В случае ложного срабатывания или, если нет необходимости создавать инцидент, есть возможность закрыть алерт. При закрытии алерта необходимо указать одну из трех причин: Отработан, Неверные данные, Неверное правило корреляции.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/iPyimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/iPyimage.png)

#### Создание инцидента  


В случае необходимости повышения алерта до уровня инцидента, это можно сделать с помощью кнопки **Create incident**.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/V9zimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/V9zimage.png)

#### Привязка алерта к инциденту  


В случае, если алерт является частью активности, расследуемой в рамках уже существующего инцидента, его можно привязать его с помощью кнопки **Link**.

Привязанный алерт становится недоступен для изменения – при необходимости изменения алерта (например добавления в него событий), нужно отвязать (unlink) алерт от инцидента, внести изменения, и привязать его обратно.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/rG1image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/rG1image.png)

### Инциденты  


#### Создание инцидента  


Инцидент можно создать на основе алерта или вручную с помощью кнопки **Create incident** во вкладке Incidents. При создании вручную необходимо заполнить обязательные поля, также при необходимости, есть возможность прикрепить к инциденту алерты или связанные активы.

#### Объединение инцидентов  


Если в ходе расследования потребовалось объединить несколько инцидентов в один – это можно сделать с помощью функционала объединения. Для этого в окне инцидента нужно на верхней панели нажать на **Merge** и выбрать инцидент, с которым необходимо выполнить объединение.

#### Назначение ответственного на инцидент  


При создании нового инцидента, аналитик может взять его в обработку, назначив на себя, для этого в окне инцидента необходимо на верхней панели **в поле Assigned** to выбрать «Me», либо выбрать другого пользователя, чтобы назначить инцидент на него.

### Пример процесса реагирования на инциденты  


Рассмотрим пример плана реагирования на инцидент, в рамках которого можно выделить стадии:

- Мониторинг – сбор и анализ событий, выявление аномалий и подозрительной активности с помощью правил корреляции или threat hunting.
- Триаж – первичный анализ алертов с целью выявления инцидентов, ложных срабатываний и ошибок в рамках процесса мониторинга.
- Расследование – сбор информации об активах и вредоносной активности с целью определения скоупа, причин инцидента и всей цепочки атаки.
- Реагирование – противодействие вредоносным действиям с целью предотвратить дальнейшее продвижение злоумышленника и сократить влияние на инфраструктуру
- Восстановление – приведение инфраструктуры в первоначальное состояние и проверка работоспособности
- Закрытие – заключение или отчет об инциденте и закрытие инцидента

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/sriimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/sriimage.png)

### Пример реагирования на инцидент с помощью KUMA  


Рассмотрим пример реагирования на инцидент с помощью Kaspersky Unified Monitoring and Analysis Platform. Для примера будет взят стенд со следующими параметрами:

- Рабочая станция на Windows 10 
    - доменная авторизация
    - KES
    - KEA
- KEDR
- KSC
- KUMA 
    - Установлен пакет правил SOC\_package (см. пресейл пак или ссылку с архивом установки KUMA)
    - Настроена интеграция с AD
    - Настроена интеграция с KSC
    - Настроена интеграция с KEDR

В рамках стенда условный нарушитель, заметив незаблокированный компьютер администратора, воспользовался случаем и выполнил зловредные действия:

- Скачал вредоносный файл со своего сервера
- Выполнил команду для создания ключа реестра в ветке Microsoft\\Windows\\CurrentVersion\\Run
- Добавил скаченный файл в автозапуск с помощью реестра
- Выполнил очистку событий в журнале Security
- Вышел из сессии, чтобы владелец учетной записи ничего не заподозрил
- Владелец учетной записи вошел в систему, послу чего запустился вредоносный файл

#### Процесс мониторинга  


В процессе мониторинга с рабочей станции поступили события из журнала Security, после чего сработали правила корреляции из пакета SOC\_package.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/HUEimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/HUEimage.png)

Каждый алерт имеет название правила корреляции, которое его породило. При повторном срабатывании правила в поле First seen будет время первого события, а в Last seen последнего.

#### Triage  


При появлении нового алерта срабатывает правило оповещения и отправляется письмо на почту группе реагирования или конкретному аналитику.

Аналитики из L1 переходит по ссылке из письма и попадает сразу на карточку первого алерта:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/JXqimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/JXqimage.png)

##### Взятие в работу L1  


Аналитик берет в работу алерт, назначая его на себя.

##### Анализ алерта  


При анализе алерта аналитик обращает внимание на то какое правило сработало и соответствуют ли данные из событий с самим правилом. Как видно из названия правила алерт сработал на изменение какой-то критичной ветки реестра, в поле Related events в событии присутствуют путь до ключа реестра, есть старое и новое значение ключа реестра, отсюда можно сделать вывод, что правило соответствует произошедшему событию и аналитик обладает достаточной экспертизой, чтобы продолжить реагирование. Иначе же аналитик может перевести алерт на L2, назначив его на другого аналитика.

##### Проверка достаточности данных  


На данном этапе аналитик должен определить каких данных ему будет достаточно для дальнейшего расследования. Чтобы продолжить расследование в рамках алерта по несанкционированному изменению ветки реестра, необходимо точно знать какой ключ был изменен и на каком хосте это было сделано. Дополнительными полезными данными будет информация о том, кто это сделал и новое значение ключа реестра. Раскрыв дерево событий от верхнеуровневого правила до самого события, можно увидеть детали, нажав на интересующее событие.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/LeTimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/LeTimage.png)

##### Проверка на False Positive  


В рамках проверки на ложное срабатывание аналитик должен проверить верно ли сработало правило, может ли быть такая активность легитимной в связи с нормальной работой системы (например, обновление). Проанализировав детали события, видно, что персональная учетная запись talankin выполнила создание ключа реестра с помощью утилиты reg.exe, а также ключ реестра был создан в ветке \\Microsoft\\Windows\\CurrentVersion\\Run, отвечающей за автозапуск программ при входе пользователя в систему. Эти данные дают понять, что алерт скорее всего является True Positive и можно продолжить анализ дальше.

##### Определение критичности  


На стадии определения критичности нужно валидировать критичность, которая была проставлена автоматически либо скорректировать её. Исходя из данных алерта имеет смысл выставить высокую критичность для данного алерта:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/Wgpimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/Wgpimage.png)

##### Создание инцидента  


Проведя действия в рамках триажа, аналитик может эскалировать алерт до инцидента, чтобы начать расследование. Для этого в карточке инцидента необходимо нажать Create incident, в появившемся окне заполнить необходимые поля и нажать Save:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/mxnimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/mxnimage.png)

#### Расследование  


##### Сбор информации о затронутых активах  


Информация о затронутых активах автоматически выделяется в поля инцидента Related endpoints и Related users в том случае, если данные об этих активах загружены в KUMA с помощью интеграции с KSC, AD или внесены вручную. В изображении ниже видно, что в рамках инцидента были затронуты хост windows-kedr и учетная запись пользователя igor talankin.

Сразу можно отметить, что хост находится в категориях Business impact/HIGH и Device type/Workstation, то есть мы имеем дело с рабочей станцией, которая является критичной для нашей инфраструктуры (по легенде рабочая станция принадлежит администратору).

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/ZThimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/ZThimage.png)

Если нажать на хост, то появятся детали актива. Детали содержат довольно подробную информацию, куда входит:

- FQDN, IP адрес, MAC адрес, время создания и обновления информации
- Количество алертов с разделением по критичности, с которыми этот актив связан. Также есть возможность сразу перейти к этим алертам, для поиска дополнительной информации в рамках инцидента.
- Категории, к которым относится актив
- Уязвимости на хосте
- Информация об установленном ПО
- Информация о hardware
- Другая дополнительная информация

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/jQtimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/jQtimage.png)

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/wV2image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/wV2image.png)

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/FJ0image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/FJ0image.png)

Если нажать на связанную учетную запись, то можно изучить данные о ней по информации из Active Directory:

- Имя пользователя
- Имя учетной записи
- Email
- Группы, в которых состоит учетная запись
- Дата истечения пароля, дата создания и время последнего неверного ввода пароля
- Другая информация из AD

Как видно из списка групп, учетная запись состоит в группе доменных администраторов, что подтверждает высокую критичность инцидента.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/O8nimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/O8nimage.png)

##### Определение скоупа  


Для определения скоупа инцидента необходимо произвести расследование и выявить по возможности другие события и алерты, которые относятся к этой злонамеренной активности.  
Привязка события к инциденту возможна только через алерт (при этом алерт перед изменениями в т.ч. добавления новых событий в него, необходимо отвязать от инцидента).

##### Поиск связанных алертов  


Первым делом имеет смысл проверить другие алерты, которые происходили с затронутыми активами.   
Для этого достаточно выбрать актив и в разделе со связанными алертами нажать Find in alerts.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/xnfimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/xnfimage.png)

В окне с алертами можно сделать фильтрацию по времени или статусу, чтобы исключит уже обработанные алерта или устаревшие:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/pZFimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/pZFimage.png)

Как видно, с данным активом связаны и другие алерты. Судя по времени, в которое сработали алерты, мы можем сделать вывод, что все они так или иначе связаны друг с другом. Чтобы связать алерты с инцидентом, отмечаем интересующие алерты и нажимаем в нижней части панели Link, в появившемся окне отмечаем инцидент, с которым мы хотим связать алерты и снова нажимаем Link:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/mC7image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/mC7image.png)

Перейдя обратно в карточку инцидента, мы можем убедиться, что все отмеченные алерты привязаны:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/jbyimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/jbyimage.png)

Ту же самую операцию мы можем провести с учетной записью и найти связанные алерты. В случае, если в новом алерте будут новые связанные активы, то мы можем продолжать поиск связанных алертов и по ним, тем самым расширяя скоуп расследования.

В случае, если мы обнаружили, что уже есть инцидент в работе, с которым мы можем объединить текущий инцидент, чтобы вести процесс реагирования в рамках одного инцидента, мы можем склеить их с помощью функции Merge. Для этого в карточке инцидента нужно нажать в верхней части на Merge, а затем выбрать инцидент, с которым мы хотим выполнить склеивание.

##### Threat hunting  


После поиска связанных активов и алертов, можно приступить к более детальному расследованию и углубиться в поиск связанных c инцидентом IOC по всей инфраструктуре.

Для поиска связанных событий можно воспользоваться вкладкой Events и произвести поиск вручную или выбрать любой из связанных алертов и в его карточке нажать Find in events. Данный функционал называется Drilldown analysis:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/bwwimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/bwwimage.png)

В появившемся окне с событиями мы можем искать события и сразу же связывать их с выбранным алертом (для привязки алерта он должен быть отвязан от инцидента). Для этого необходимо в верхней части выбрать Search events -&gt; All events:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/JI4image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/JI4image.png)

В результате поиска, нам удалось найти команду, которую выполнил злоумышленник, чтобы создать новый ключ реестра. Исходя из данных события, мы можем найти какой процесс был родительским для reg.exe, им окажется cmd.exe, то есть злоумышленник запустил командную строку и выполнил команду в ней.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/gJaimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/gJaimage.png)

Из этого события появляется информация о некотором файле ChromeUpdate.bat. Чтобы узнать происхождение этого файла, мы можем продолжить процесс поиска, выполнив поиск по FileName = ‘C:\\\\Users\\\\talankin\\\\Downloads\\\\ChromeUpdate.bat’ и по маске доступа %%4417 (тип доступа WriteData (or AddFile)). В результате поиска мы найдем, что файл был создан процессом msedge.exe, чтобы говорит о том, что файл был скачен из внешнего источника, для дальнейшего анализа уже потребуются события с proxy сервера или NGFW. Это событие мы также привязываем к нашему алерту.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/HFnimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/HFnimage.png)

В ходе расследования мы можем выявить новые индикаторы компрометации такие как имя файла, URL, IP адрес и т.д., по этим данным также стоит выполнить поиск ретроспективный анализ, в результате которого можно выявить новые затронутые активы и обнаружить новые следы присутствия злоумышленника. В данном инциденте имеет смысл выполнить поиск файла ChromeUpdate.bat в событиях за последние пару недель.

Произведя Threat hunting для каждого алерта, мы должны выявить всю цепочку атаки.

##### Определение причин инцидента  


По результатам поиска связанных событий мы выявили причины инцидента и можем записать результаты нашего анализа в журнал в карточке инцидента, чтобы передать информацию другим аналитикам или для полноты описания всего процесса реагирования. В разделе Change log мы можем указать важную информацию:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/Adoimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/Adoimage.png)

#### Реагирование  


После расследования, у нас есть информация о затронутых активах, а также об индикаторах компрометации, которая поможет в сдерживании. Исходя из типа инцидента требуется определить список действий, которые нужно выполнить, чтобы остановить ход атаки. В данном случае имеет смысл:

- Запустить внеплановое антивирусное сканирование затронутых систем
- Изолировать хост от сети до момента, пока мы не убедимся в безопасности данного хоста
- Добавить файл ChromeUpdate.bat в карантин и создать правила предотвращающее его запуск на других хостах в инфраструктуре

##### Антивирусной сканирование  


Для запуска сканирования в рамках этого инцидента необходимо перейти в карточку инцидента, выбрать затронутый хост и в верхней части информации об активе выбрать KSC Response и отметить заранее пред настроенную задачу по сканированию, а затем нажать Start.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/5dVimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/5dVimage.png)

##### Сетевая изоляция хоста  


Для изоляции хоста, необходимо повторить действия для выбранного хоста, но выбрать KEDR Response, затем в Task type выбрать Enable network isolation и заполнить дополнительный параметры при необходимости, например, уточнить время изоляции или исключения в случае необходимости иметь доступ к хосту во время изоляции.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/eegimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/eegimage.png)

##### Предотвращение запуска вредоносного файла  


Для добавления файла в карантин и создания превентивного правила с запретом запуска данного файла (в случае, если файл исполняемый) нужно повторить действия и выбрать KEDR Response -&gt; Task type: Add preventive rule, в поле File hash указать хэш файла. В поле Asset имеет смысл указать All assets, так как нам необходимо застраховаться от дальнейшего распространения вредоносного файла.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/ieyimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/ieyimage.png)

#### Восстановление  


После выполнения всех действий по расследованию и сдерживанию инцидента, а также после очистки инфраструктуры от следов злоумышленника, можно приступить к восстановлению нормальной работоспособности всех систем. Для это может понадобиться отключить какие превентивные правила на EDR или убрать сетевую изоляцию, если она не отключится автоматически. Чтобы выполнить эти действия, необходимо повторить действия подобные тем, что были произведены на предыдущем этапе, только выбрать задачи Disable network isolation и Delete prevention rule.

#### Закрытие инцидента  


В конце процесса реагирования мы можем закрыть инцидент, выбрав один из вариантов заключения: approved или not approved. Чтобы закрыть инцидент, необходимо в верхней части карточки инцидента выбрать Close incident, в появившемся окне отметить нужный вариант и выбрать Close:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/q5Ximage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/q5Ximage.png)

Закрытый инцидент нельзя «пере»-открыть.

### Пошаговое руководство по разработке сценариев реагирования

<iframe allowfullscreen="allowfullscreen" class="" height="312" src="https://www.youtube.com/embed/jomLRu4UAjs" style="width: 845px; height: 312px;" width="845"></iframe>

### Пример работы KUMA в тандеме с другими решениями на кейсе

<iframe allowfullscreen="allowfullscreen" height="476" src="https://www.youtube.com/embed/osNjaRVrveQ?si=2Ow1ndNg_paaupfL" style="width: 849px; height: 476px;" width="849"></iframe>

# Как использовать MITRE ATT&CK в SOC

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/c96image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/c96image.png)

Использование MITRE ATT&amp;CK в Центре управления безопасностью (SOC) может значительно расширить возможности обнаружения угроз и реагирования на них.

<p class="callout info">Правила корреляции из коробки в KUMA (SOC Package и Community-Pack) покрываются техниками и тактиками из матрицы MITRE ATT&amp;CK</p>

<details id="bkmrk-%D0%9E%D0%B1%D0%BE%D0%B3%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5-%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0%D0%BC%D0%B8"><summary>Обогащение Техниками и Тактиками на корреляторе</summary>

 Для актуальных версий: Воспользуйтесь справкой - [https://support.kaspersky.com/help/KUMA/3.2/ru-RU/272743.htm](https://support.kaspersky.com/help/KUMA/3.2/ru-RU/272743.htm)

Скачайте справочник техник MITRE ATT&amp;CK на портале [GitHub](https://github.com/mitre/cti/blob/master/enterprise-attack/enterprise-attack.json)

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-10/scaled-1680-/SHEimage.png)

Должно получиться следующее:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-12/scaled-1680-/7sjimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-12/7sjimage.png)

Подгрузите файл сюда Параметры - Общие - Настройки списка техник MITRE:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2025-05/scaled-1680-/ocEimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2025-05/ocEimage.png)

 Загрузите следующий пакет правил из репозитория:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-10/scaled-1680-/Ojwimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-10/Ojwimage.png)

Для обогащения техниками и тактиками в событии добавьте словарь в обогащении на корреляторе KUMA:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-10/scaled-1680-/aFzimage.png)

</details>Ниже шаги для эффективного использования в SOC:

#### Ознакомьтесь с MITRE ATT&amp;CK  


- Понять назначение и структуру платформы MITRE ATT&amp;CK. Может помочь эта статья на русском: [https://xakep.ru/2021/03/17/mitre-att-ck/](https://xakep.ru/2021/03/17/mitre-att-ck/)
- Посетите веб-сайт ATT&amp;CK ([https://attack.mitre.org/](https://attack.mitre.org/)) и ознакомьтесь с матрицей ATT&amp;CK, техниками, тактиками и подтехниками.

#### Сопоставьте ATT&amp;CK с вашей средой  


- Определите соответствующие методы и тактики MITRE ATT&amp;CK, соответствующие инфраструктуре, процессам, приложениям и данным вашей организации.
- Сопоставьте методы MITRE ATT&amp;CK с вашими существующими средствами безопасности, такими как МЭ, системы обнаружения вторжений, решения для защиты конечных точек и др.

#### Создайте правила обнаружения  


- Разработайте правила обнаружения и варианты использования на основе конкретных методов и тактик MITRE ATT&amp;CK.
- Используйте свою систему SIEM или платформы аналитики угроз для создания правил, создающие оповещения при обнаружении подозрительных действий, связанных с определенными методами ATT&amp;CK.

#### Реализуйте поиск угроз (Threat Hunting)  


- Используйте MITRE ATT&amp;CK в качестве руководства для упреждающих упражнений по поиску угроз.
- Найдите индикаторы компрометации (IOC), связанные с известными методами ATT&amp;CK, и используйте их для выявления потенциальных угроз в вашей среде.

#### Улучшайте реагирование на инциденты  


- Включите MITRE ATT&amp;CK в свои процедуры реагирования на инциденты.
- Разрабатывайте сценарии и планы реагирования, соответствующие конкретным методам и тактикам ATT&amp;CK, чтобы эффективно справляться с угрозами и смягчать их последствия.
- Полезные материалы на русском: 
    - Примеры плейбуков - [https://github.com/certsocietegenerale/IRM/tree/main/RU](https://github.com/certsocietegenerale/IRM/tree/main/RU)
    - Руководство по реагирования ЛК - [https://box.kaspersky.com/f/26b68439676f4739baa6/](https://box.kaspersky.com/f/26b68439676f4739baa6/)

#### Работайте с Threat Intelligence  


- Используйте внешние источники информации об угрозах, соответствующие MITRE ATT&amp;CK.
- Будьте в курсе последних отчетов об угрозах, в которых упоминаются методы и тактика ATT&amp;CK.
- Полезные материалы: 
    - Бесплатный TI портал ЛК - [https://opentip.kaspersky.com/](https://opentip.kaspersky.com/)

---

### Пример работы

#### Находим технику

Например, нам интересен вектор атаки через планировщик задач, для этого можно воспользоваться поиском вверху справа на сайте [https://attack.mitre.org/](https://attack.mitre.org/):

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/kIIimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/kIIimage.png)

Переходим на интересующую тематику:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/m3Kimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/m3Kimage.png)

#### Изучаем материал

- Ознакомьтесь с общей структурой ATT&amp;CK
- Найти параметры и инструменты, которые злоумышленник должен использовать для реализации ATT&amp;CK.
- Поищите о технике или подтехнике на других ресурсах.
- Прочтите раздел «Примеры процедур» - Узнайте, как группы или инструменты используют технику или подтехнику.

#### Изучаем меры защиты

- Раздел митигации (снижений последствий) - Найдите митигацию
- Раздел обнаружения - Найдите способы обнаружения этой техники

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/QhBimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/QhBimage.png)

#### Преобразуйте TTP (Техники, Тактики и Процедуры) в правила в SIEM

- Найдите правило обнаружения в проекте MITRE CAR - [https://car.mitre.org/analytics/by\_technique](https://car.mitre.org/analytics/by_technique)

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/7leimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/7leimage.png)

Например, такое правило MITRE CAR - Scheduled Task Creation or Modification Containing Suspicious Scripts, Extensions or User Writable Paths ([https://car.mitre.org/analytics/CAR-2021-12-001/](https://car.mitre.org/analytics/CAR-2021-12-001/)). В нем можно увидеть множество вариаций правил, как в псевдокоде, так и в популярных зарубежных SIEM системах.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/scaled-1680-/L2pimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-08/L2pimage.png)

### ATT&amp;CK Navigator

ATT&amp;CK Navigator — это веб-инструмент для разметки и изучения матриц ATT&amp;CK. Его можно использовать для визуализации покрытия средств защиты, планирования красно-синих команд, частоты обнаруженных приемов и многого другого. Сайт - <span class="fontstyle0">[https://mitre-attack.github.io/attack-navigator/](https://mitre-attack.github.io/attack-navigator/)</span>

# Как слушать коллектором порты меньше 1024

#### Редактирование файла сервиса

В связи с особенностью функционирования Unix-систем для прослушивания портов с номерами ниже 1024 нужны дополнителльные права.

Для того, чтобы дать сервису соответствующие права выполните следующие действия:

1\. Остановите выполнение сервиса коллектора командой

```bash
systemctl stop kuma-collector-<id>
```

2\. Откройте на редактирование файл службы коллектора

```bash
systemctl edit kuma-collector-<id>.service
```

3\. В разделе **\[Service\]** добавьте следующую строку. Если раздел отсутствует, то нужно его добавить.

```bash
AmbientCapabilities=CAP_NET_BIND_SERVICE
```

4\. Сохраните полученный файл

5\. Обновите параметры сервисов следующей командой

```bash
systemctl daemon-reload
```

6\. Запустите службу коллектора следующей командой

```bash
systemctl start kuma-collector-<id>
```

# Где брать официальный контент для KUMA? (Обновление контента)

<p class="callout info">Начиная с версии KUMA 2.1 контент от Лаборатории Касперского (правила корреляции, нормализаторы, коннекторы и т.п.) публикуются в репозитории ЛК: [https://support.kaspersky.com/help/KUMA/4.0/ru-RU/250594.htm](https://support.kaspersky.com/help/KUMA/4.0/ru-RU/250594.htm) </p>

<p class="callout info">Возможно также офлайн обновление с помощью утилиты KUU - [https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/obnovlenie-resursov-s-pomoshhiu-kaspersky-update-utility-kuu](https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/obnovlenie-resursov-s-pomoshhiu-kaspersky-update-utility-kuu) </p>

### Как получить SOC Package и другой коробочный контент?

1\. В Web-интерфейсе KUMA нужно настроить интеграцию с репозиторием

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-07/scaled-1680-/yQYimage.png)

<p class="callout success">Список серверов, до которых нужно предоставить доступ с KUMA представлен в официальной документации: [https://support.kaspersky.ru/common/start/6105](https://support.kaspersky.ru/common/start/6105) </p>

<p class="callout warning">Для обновления напрямую с репозитория **НЕЛЬЗЯ** использовать Proxy для KUMA &lt; 3.4. Если для доступа к репозиторию требуется использование Proxy или у KUMA нет доступа в Интернет напрямую, то следует использовать Kaspersky Update Utility (KUU). Подробнее в статье: [https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/obnovlenie-resursov-s-pomoshhiu-kaspersky-update-utility-kuu](https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/obnovlenie-resursov-s-pomoshhiu-kaspersky-update-utility-kuu) </p>

2\. После настройки интеграции с репозиторием и Запуска обновления перейдите в Ресурсы и выберите Импортировать ресурсы

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-07/scaled-1680-/Le4image.png)

3\. Далее выберите Репозиторий в качестве источника

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-07/scaled-1680-/ffFimage.png)

<p class="callout warning">Контент в системе применяется сверху вниз, проверяйте, что выбирается к применению, чтобы иметь актуальный набор ресурсов</p>

4\. Нажав на имя конкретного пакета, вы увидите информацию о пакете, журнал изменений и перечень импортируемых ресурсов.

<details id="bkmrk-%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F-%D0%BE-%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B5"><summary>Информация о пакете</summary>

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-07/scaled-1680-/tIsimage.png)

</details><details id="bkmrk-%D0%9F%D0%B0%D0%BA%D0%B5%D1%82%D1%8B-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9"><summary>Пакеты для начальной установки</summary>

1. Щелкните на столбец Название в пакетах репозитория и отсортируйте по Возрастанию
2. Загрузите ресурс, например `[OOTB] KUMA 4.0 resources`, в соответствии с вашей версией KUMA
3. Для детектирования загрузите: 
    - Правила корреляции - `[OOTB] SOC Content - RU`
    - Правила корреляции мониторинг событий Kaspersky Security Center - `[OOTB] KSC Package - RU`
    - Правила корреляции мониторинг событий Kaspersky Security Mail Gateway - `[OOTB] KSMG Package - RU`
    - (Опционально) Правила корреляции, направленные на соблюдение требований стандарта PCI DSS. - `[OOTB] PCIDSS - RU`
    - Правила поведенческого анализа - `[OOTB] UEBA package - RU`
    - Правила для выявления аномалий в сетевой активности - `[OOTB] Network Package - RU`
    - Правила межпродуктовые в рамках экосистемы Kaspersky - `[OOTB] XDR package - RU`
    - Загрузите (с помощью кнопки Привязать) эти правила в имеющуюся службу коррелятора (встроенные правила OOTB удалите)

<p class="callout info">Описание пакетов на странице справки [https://support.kaspersky.com/help/KUMA/4.0/ru-RU/250594.htm](https://support.kaspersky.com/help/KUMA/4.0/ru-RU/250594.htm) </p>

</details>5\. Для импорта интересующих ресурсов выберите один или несколько пакетов галочкой слева от имени пакета и нажмите Импортировать внизу окна

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-07/scaled-1680-/aRVimage.png)

6\. Выбранные ресурсы будут импортированы.

---

### Где взять описание правил из SOC Package?

<p class="callout success">Описание правил из SOC Package можно скачать из официальной документации: [https://support.kaspersky.com/help/KUMA/3.4/ru-RU/250594.htm](https://support.kaspersky.com/help/KUMA/3.2/ru-RU/250594.htm) </p>

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-07/scaled-1680-/GK2image.png)

<p class="callout success">Альтернативно, можно воспользоваться интерактивной библиотекой правил по **[ссылке](https://kb.kuma-community.ru/kuma-rules-lib)**</p>

##### На что ориентируемся при разработке правил  


Вширь:

- Покрытие матрицы MITRE
- Покрытие новых источников событий

Вглубь

- Отчет MDR Report
- Отчет IR Report (GERT)
- Отчет Threat Landscape Report
- Внутренняя экспертиза (EDR, MDR)

Ad-hoc

- Интересные публикации в блогах и телеграмм-каналах
- Замечания/предложения пользователей

---

### Где взять мапинг коробочных нормализаторов?

<p class="callout success">Сопоставление полей коробочных нормализаторов можно скачать из официальной документации: [https://support.kaspersky.com/help/KUMA/3.4/ru-RU/267237.htm](https://support.kaspersky.com/help/KUMA/3.2/ru-RU/267237.htm) </p>

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-07/scaled-1680-/GHSimage.png)

# Форматы времени, которые понимает KUMA

```
May 8, 2009 5:57:51 PM
oct 7, 1970
oct 7, '70
oct. 7, 1970
oct. 7, 70
Mon Jan  2 15:04:05 2006
Mon Jan  2 15:04:05 MST 2006
Mon Jan 02 15:04:05 -0700 2006
Monday, 02-Jan-06 15:04:05 MST
Mon, 02 Jan 2006 15:04:05 MST
Tue, 11 Jul 2017 16:28:13 +0200 (CEST)
Mon, 02 Jan 2006 15:04:05 -0700
Mon 30 Sep 2018 09:09:09 PM UTC
Mon Aug 10 15:44:11 UTC+0100 2015
Thu, 4 Jan 2018 17:53:36 +0000
Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time)
Sun, 3 Jan 2021 00:12:23 +0800 (GMT+08:00)
September 17, 2012 10:09am
September 17, 2012 at 10:09am PST-08
September 17, 2012, 10:10:09
October 7, 1970
October 7th, 1970
12 Feb 2006, 19:17
12 Feb 2006 19:17
14 May 2019 19:11:40.164
7 oct 70
7 oct 1970
03 February 2013
1 July 2013
2013-Feb-03
// dd/Mon/yyy  alpha Months
06/Jan/2008:15:04:05 -0700
06/Jan/2008 15:04:05 -0700
//   mm/dd/yy
3/31/2014
03/31/2014
08/21/71
8/1/71
4/8/2014 22:05
04/08/2014 22:05
4/8/14 22:05
04/2/2014 03:00:51
8/8/1965 12:00:00 AM
8/8/1965 01:00:01 PM
8/8/1965 01:00 PM
8/8/1965 1:00 PM
8/8/1965 12:00 AM
4/02/2014 03:00:51
03/19/2012 10:11:59
03/19/2012 10:11:59.3186369
// yyyy/mm/dd
2014/3/31
2014/03/31
2014/4/8 22:05
2014/04/08 22:05
2014/04/2 03:00:51
2014/4/02 03:00:51
2012/03/19 10:11:59
2012/03/19 10:11:59.3186369
// yyyy:mm:dd
2014:3:31
2014:03:31
2014:4:8 22:05
2014:04:08 22:05
2014:04:2 03:00:51
2014:4:02 03:00:51
2012:03:19 10:11:59
2012:03:19 10:11:59.3186369
// Chinese
2014年04月08日
//   yyyy-mm-ddThh
2006-01-02T15:04:05+0000
2009-08-12T22:15:09-07:00
2009-08-12T22:15:09
2009-08-12T22:15:09.988
2009-08-12T22:15:09Z
2017-07-19T03:21:51:897+0100
2019-05-29T08:41-04 // no seconds, 2 digit TZ offset
//   yyyy-mm-dd hh:mm:ss
2014-04-26 17:24:37.3186369
2012-08-03 18:31:59.257000000
2014-04-26 17:24:37.123
2013-04-01 22:43
2013-04-01 22:43:22
2014-12-16 06:20:00 UTC
2014-12-16 06:20:00 GMT
2014-04-26 05:24:37 PM
2014-04-26 13:13:43 +0800
2014-04-26 13:13:43 +0800 +08
2014-04-26 13:13:44 +09:00
2012-08-03 18:31:59.257000000 +0000 UTC
2015-09-30 18:48:56.35272715 +0000 UTC
2015-02-18 00:12:00 +0000 GMT
2015-02-18 00:12:00 +0000 UTC
2015-02-08 03:02:00 +0300 MSK m=+0.000000001
2015-02-08 03:02:00.001 +0300 MSK m=+0.000000001
2017-07-19 03:21:51+00:00
2014-04-26
2014-04
2014
2014-05-11 08:20:13,787
// yyyy-mm-dd-07:00
2020-07-20+08:00
// mm.dd.yy
3.31.2014
03.31.2014
08.21.71
2014.03
2014.03.30
//  yyyymmdd and similar
20140601
20140722105203
// yymmdd hh:mm:yy  mysql log
// 080313 05:21:55 mysqld started
171113 14:14:20
// unix seconds, ms, micro, nano
1332151919
1384216367189
1384216367111222
1384216367111222333
```

# Как перенести KUMA на другой диск

### Кейс 1. Диск смонтирован в неверный раздел

<p class="callout info">Предположим, при подготовке сервера диск, предназначенный для хранения примонтировали не верно, например в папку `/var/data`. KUMA установлена в папку `/opt`</p>

Запись в `/etc/fstab` выглядит примерно следующим образом

```
/dev/sdb1               /var/data                    xfs     defaults        0 0
```

Последовательность действий будет следующая

1\. Останавливаем сервисы kuma-\*

```bash
systmctl stop kuma-*
```

2\. Переносим данные из `/opt/kaspersky/kuma` в `/var/data/kaspersky/kuma`

3\. Отмонтируем папку `/var/data`

```bash
umount /var/data
```

4\. Редактируем `/etc/fstab`, что бы там была такая запись

```bash
/dev/sdb1               /opt                    xfs     defaults        0 0
```

5\. Выполняем команду

```bash
mount -a
```

6\. Проверяем, что файловая структура `/opt/kaspersky/kuma` корректна, проверяем, что на всех папках owner `kuma:kuma`, если нет, то можно запустить команду

```bash
chown -R kuma:kuma /opt/kaspersky/kuma
```

7\. Стартуем сервисы kuma-\*

```bash
systemctl start kuma-*
```

---

### Кейс 2. Появилась возможность подключить большой диск

<p class="callout info">Предположим, при подготовке сервера, для папки `/opt` был выделен диск sdb размером 1 ТБ, но теперь есть возможность подключить диск sdc размером 12 Тб</p>

Запись в `/etc/fstab` выглядит примерно следующим образом

```
/dev/sdb1               /opt                  xfs     defaults        0 0
```

Последовательность действий будет следующая

1\. Останавливаем сервисы kuma-\*

```bash
systmctl stop kuma-*
```

2\. Отмонтируем диск `/dev/sdb1` из `/opt` и монтируем в какой-то иной раздел, например в `/mnt/old_opt`

```bash
mkdir /mnt/old_opt && umount /opt && mnt /dev/sdb1 /mnt/old_opt
```

3\. Редактируем `/etc/fstab`, что бы там была такая запись

```bash
/dev/sdc1               /opt                    xfs     defaults        0 0
```

4\. Запускаем команду монтирования

```bash
mount -a
```

5\. Создаем структуру папок `/opt/kaspersky/kuma`

6\. Переносим данные из `/mnt/old_opt/kaspersky/kuma` в папку `/opt/kaspersky/kuma`. Проверяем иерархию папок, убеждаемся, что на всех папках owner `kuma:kuma`, если нет, то можно запустить команду:

```bash
chown -R kuma:kuma /opt/kaspersky/kuma
```

7\. Стартуем сервисы kuma-\*

```bash
systemctl start kuma-*
```

8\. Отмонтируем старый не нужный диск

# Лайфхаки для шаблонов

В KUMA во многих местах можно использовать шаблоны для обогащения. Но мало кто знает, что в template можно использовать не только значения полей, например, `{{.DeviceAddress}}`, но и другой функционал шаблонов GO ([ссылка](https://pkg.go.dev/text/template)).

Ниже приведем несколько полезных лайфхаков, которые сделают ваши события красивыми и упростят обогащение и корреляцию.

---

### Простое обогащение

Обогащать события можно не только классическими полями, например, `{{.DeviceAddress}}`, но и полями Extra, а также переменными.

Шаблон с обычными полем:

```go
{{.DeviceAddress}}
```

Шаблон с Extra полем:

```go
{{index .Extra "myField"}}
```

Шаблон с переменными (в функциях переменных):

```go
template('Значения локальных переменных {{index . 0}} и {{index . 1}} а также {{index . 2}}', $var1, $var2, $var10)
```

---

### Обогащение с условиями

Чтобы в message вставить текст `"Пользователь user1 на хосте user1-pc.local (10.10.10.10) выполнил команду 'whoami'"`, а hostname и address не всегда могут быть указаны, но хочется красивую надпись без пустых скобок или лишних пробелов, то можно использовать условия:

```go
Пользователь {{.DestinationNtDomain}}\{{.DestinationUserName}} на хосте {{if and .DeviceAddress .DeviceHostName}} {{.DeviceHostName}} ({{.DeviceAddress}}) {{else if .DeviceAddress}} {{.DeviceAddress}} {{ else }} {{.DeviceHostName}} {{ end }} выполнил команду "{{.DeviceCustomString4}}"
```

Такой же шаблон можно создать и с Extra-полями. Например, в поле события DeviceProcessName нужно записать значение из Extra-поля myField1, а в случае его отсутствия - myField2:

```go
{{if index .Extra "myField1"}}{{index .Extra "myField1"}}{{else}}{{index .Extra "myField2"}}{{end}}
```

Еще пример:

```go
{{if eq .DeviceCustomString1 "" }}{{""}}{{else}}{{"vlan"}}{{end}}
```

Также пример с использованием логических операторов `and` и `or`:

```go
{{if and (eq .DeviceEventCategory "Application") ((or (eq .DeviceCustomString4 "MSSQL") (eq .DeviceCustomString4 "SQLISPackage")))}}{{.DestinationUserName}}{{end}}
```

Еще пример:

```go
{{if and ((eq .DeviceCustomIPv6Address2 "") (not (eq .SourceAddress ""))) }}{{.SourceAddress}}{{else}}{{.DeviceCustomIPv6Address2}}{{end}}
```

---

### Использование шаблонов с корреляционными правилами

В правилах standard можно в шаблоне указать количество базовых событий, которые попали в окно корреляции:

```go
{{ len (.BaseEvents) }}
```

В правилах standard можно в шаблоне перечислить все значения, которые были в базовых событиях:

```go
{{range .BaseEvents}} {{.SourceUserName}}{{end}}
```

В правилах standard можно в шаблоне достать значение из конкретного события, используя условия:

```go
{{range .BaseEvents}}{{if eq .DeviceEventClassID "4688"}}{{.DestinationProcessName}}{{end}}{{end}}
```

Также в шаблонах можно использовать переменные, например, можем весь массив сырых событий положить в отдельную переменную $baseEvents и использовать её дальше. Пример ниже сортирует события 4104 по dcn1 и конкатенирует куски ScriptBlockText, чтобы в корреляционном событии получить весь PowerShell скрипт, а не куски из 15,5к символов.

```go
{{ $baseEvents := .BaseEvents }}
{{range $index, $element := $baseEvents}}
    {{range $i, $e := $baseEvents}}
        {{if eq $e.DeviceCustomNumber1 (len (printf "a%*s" $index ""))}}
            {{.S.ScriptBlockText}}
        {{end}
    }{{end}}
{{end}}
```

### Шаблоны с алертами

В правиле обогащения, когда вы обращаетесь, вы как бы находитесь в событии и можете напрямую обращаться к полям.  
Но в шаблоне уведомлений вы находитесь уже в алерте и в нем нет полей события, но сами события есть. Поэтому нужно сначала проитерироваться по Events (корреляционные события) или дополнительно по Events.BaseEvents (базовые события корреляционных) и оттуда достать уже поле, куда вы в правиле корреляции все сложили.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/scaled-1680-/C41image.png)

---

### Полезные ссылки

Другие варианты работы с шаблонами GO в KUMA:

- [https://support.kaspersky.com/kuma/2.1/ru-ru/233508.htm](https://support.kaspersky.com/kuma/2.1/ru-ru/233508.htm)
- [https://pkg.go.dev/text/template](https://pkg.go.dev/text/template)

# Замена сертификата (веб - интерфейсе) KUMA

<p class="callout danger">Процесс перевыпуска сертификата ядра в версии KUMA 3.2 был изменен! Актуальная информация приведена в онлайн-справке: [https://support.kaspersky.ru/help/KUMA/3.2/ru-RU/275543.htm](https://support.kaspersky.ru/help/KUMA/3.2/ru-RU/275543.htm) и <span class="ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">[https://support.kaspersky.ru/kuma/3.2/217747](https://support.kaspersky.ru/kuma/3.2/217747 "https://support.kaspersky.ru/kuma/3.2/217747")</span></p>

### Общая информация

После установки Ядра KUMA установщик создает следующие сертификаты в папке /opt/kaspersky/kuma/core/certificates:

- Самоподписанный корневой сертификат ca.cert с ключом ca.key. Подписывает все другие сертификаты, которые используются для внутренней связи между компонентами KUMA.
- Сертификат internal.cert, подписанный корневым сертификатом, и ключ internal.key сервера Ядра. Используется для внутренней связи между компонентами KUMA.
- Сертификат веб-консоли KUMA external.cert и ключ external.key. Используется в веб-консоли KUMA и для запросов REST API.

<p class="callout warning">Между взаимодействием компонентов KUMA не должно быть SSL-инспекции</p>

### Запрос сертификата от центра сертификации CA

Создаем файл `openssl.cnf`:

```bash
=====это пример, вписываем свои значения======
[ req ]
default_bits = 4096 # RSA key size
encrypt_key = no # Protect private key
default_md = sha256 # MD to use
utf8 = yes # Input is UTF-8
string_mask = utf8only # Emit UTF-8 strings
prompt = no # Prompt for DN
distinguished_name = server_dn # DN template
req_extensions = server_reqext # Desired extensions
[ server_dn ]
countryName = RU # ISO 3166
localityName = Moscow
organizationName = MYCOMPANY
organizationalUnitName = SOC
commonName = kuma.mycompany.ru # Should match a SAN under alt_names

[ server_reqext ]
basicConstraints = CA:FALSE
keyUsage = critical,digitalSignature,keyEncipherment
extendedKeyUsage = serverAuth,clientAuth
subjectKeyIdentifier = hash
subjectAltName = @alt_names
[alt_names]
DNS.1 = kuma.mycompany.ru
IP.1 = 1.2.3.4
```

Делаем запрос на сертификат:

```bash
openssl req -new -nodes -sha256 -out external.csr -config /root/cert/openssl.cnf -keyout external.key
```

В текущем каталоге будут созданы файлы external.key (файл с закрытым ключом ) и external.csr (файл запроса на сертификат)

Отдаем запрос на сертификат в центр сертификации. От центра сертификации должны получить сертификат сервера и корневой сертификат центра сертификации и все сертификаты промежуточных центров сертификации если они есть.

- Все сертификаты должны быть в формате PEM (BASE64).
- Содержимое сертификатов должно выглядеть - ( -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----)

Полученные сертификаты необходимо объединить в одну полную цепочку сертификатов в правильном порядке.

```bash
openssl x509 -inform PEM -in server.pem > external.cert
openssl x509 -inform PEM -in subca.pem >> external.cert
openssl x509 -inform PEM -in root.pem >> external.cert
```

<p class="callout info">В файле с сертификатами важен порядок и должнен быть примерно такой: rootca-subca1-subca2-subca3-...</p>

Полученный файл external.cert необходимо проверить на корректность (должен быть вывод списка цепочки сертификатов):

```bash
openssl crl2pkcs7 -nocrl -certfile  external.cert  | openssl pkcs7 -print_certs -noout

openssl verify external.cert
#external.cert: OK
```

Проверяем корректность полученного сертификата и ключа (результат должен совпадать):

```bash
openssl x509 -noout -modulus -in external.cert | openssl md5
#(stdin)= 239994c3bd2a90507a548bf373127e18
openssl rsa -noout -modulus -in external.key | openssl md5
#(stdin)= 239994c3bd2a90507a548bf373127e18
```

### Замена в обычной инсталляции (не кластер ядра)

<p class="callout warning">Перед заменой пары external.cert external.key создайте их резервную копию.</p>

<div id="bkmrk-%D0%92%D0%B7%D1%8F%D1%82%D1%8C-%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82-%D0%BA%D0%BE%D0%BC">Взять сертификат компании (вероятно это будет pfx), но может и другие форматы - например DER.</div><div id="bkmrk--1"></div><div id="bkmrk-%D0%A1%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B5%D0%B3%D0%BE-">Сконвертировать его в ключ и сертификат в формате PEM (BASE64) и положить в папку например, для конвертации из PFX это будут команды ниже.</div><div id="bkmrk--2"></div><div id="bkmrk--3"></div><div id="bkmrk-%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BB%D1%8E%D1%87%D0%B0-%D0%B8%D0%B7-k">Получение ключа из kumaWebIssuedByCorporateCA.pfx:</div><div id="bkmrk--4"></div>```
openssl pkcs12 -in kumaWebIssuedByCorporateCA.pfx -nocerts -out external.key
```

<div id="bkmrk-%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82">Получение сертификата из kumaWebIssuedByCorporateCA.pfx:</div><div id="bkmrk--5"></div>```
openssl pkcs12 -in kumaWebIssuedByCorporateCA.pfx -nokeys -out external.cert
```

<div id="bkmrk-%28%D0%9E%D0%BF%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%29-%D0%B5%D1%81%D0%BB%D0%B8-%D0%BA">(Опционально) если ключ версии PKCS#1 то его нужно сконвертировать в PKCS#8, это можно сделать соедующей командой:</div>```bash
openssl pkcs8 -in private.key -topk8 -nocrypt -out new_private.key
```

<div id="bkmrk--6"></div><div id="bkmrk-%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-%D0%BD%D0%B0%D0%B4">Полученные файлы надо положить в папку: </div><div id="bkmrk--7"></div>```
/opt/kaspersky/kuma/core/certificates/
```

<div id="bkmrk-%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D1%8C-%D1%81%D0%BC%D0%B5%D0%BD%D1%83-%D0%B2%D0%BB%D0%B0%D0%B4">Выполнить смену владельца этих файлов: </div><div id="bkmrk--8"></div>```
chown kuma:kuma external.cert external.key
```

Перезапустить ядро:

```
systemctl restart kuma-core
```

---

### Замена в оказоустойчивом ядре

1\. На контрольной машине или Control Plane Master получить список подов и найти кору

```
k0s kubectl get pod -A
```

2\. Зайти в шел пода коры и выполнить бэкап сертификатов. (название core-deployment в каждой инсталяции уникально)

```
k0s kubectl exec -n kuma --stdin --tty core-deployment-779f8bf646-djszw -- /bin/bash
```

3\. Скопировать новый сертификат с файловой системы Control Plane Master на под коры, выгрузить сертификат и ключ

```
k0s kubectl cp kuma-poc.pfx -n kuma core-deployment-779f8bf646-djszw:/opt/kaspersky/kuma/core/certificates
```

4\. Найти деплоймент коры

```
k0s kubectl get deployments
```

5\. Выполнить рестарт деплоймента коры

```
k0s kubectl rollout restart deployment -n kuma core-deployment
```

# Настройка мониторинга источников с алертом

В рамках данной статьи настроим политику мониторинга определенного источника с взведением алерта при срабатывании политики.

На системы приходят следующие события:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/P1Iimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/P1Iimage.png)

Имеем следующий источник событий (перейдите (в меню слева) на вкладку **Состояние источников**):

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/7V5image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/7V5image.png)

Собятия на этом источнике поступают с потоком 1 EPS.

<p class="callout info">Создание источников событий происходит один раз в минуту с именем следующего формата после парсинга: "DeviceProduct|DeviceHostname|DeviceAddress|DeviceProcessName".</p>

Настроим политику мониторинга для этого источника: хотя бы 1 событие в течение 1 минуты. Перейдите на вкладку **Политики мониторинга** и наша политика будет выглядеть следующим образом:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/8GPimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/8GPimage.png)

Также можно настроить электронную почту для уведомлений в случае срабатывания политики. Затем необходимо нажать на кнопку **Добавить**. Затем необзодимо перейти снова на вкладку **Список источников событий**, выделить источник и закрепить ранее созданную политику:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/tRcimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/tRcimage.png)

Флажок статуса источника после добавления станет зеленым (означает - соответствие политике).

Убедимся, что правило корреляции мониторинга источников (в стоставе Pre-Sales-Pack) добавлено в коррелятор:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/f8aimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/f8aimage.png)

Отключаем подачу событий и получаем следующее:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/HFQimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/HFQimage.png)

В событиях:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/tb6image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/tb6image.png)

Алерт:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/scaled-1680-/Pm6image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-09/Pm6image.png)

# Аудит изменений по активам

<p class="callout info">Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и **НЕ** является официальной рекомендацией вендора.</p>

<p class="callout info">Официальная документация по данному разделу приведена в Онлайн-справке на продукт: [https://support.kaspersky.com/KUMA/2.1/ru-RU/233948.htm](https://support.kaspersky.com/KUMA/2.1/ru-RU/233948.htm) </p>

Аудит изменений по активам позволяет произволить корреляцию событий аудита по активам по измененям данных ассета.

Перейдите в раздел **Параметры - Аудит** **активов** веб-интерфейсе KUMA. Щелкните (или добавьте) на тенант и выберите по каким параметрам вести аудит (чтобы производить корреляцию по изменениям необходимо добавить коррелятор):

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-10/scaled-1680-/image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-10/image.png)

<p class="callout warning">Событие формируется на каждое изменение: по одному событию на каждое изменение (например, добавлено 5 уязвимостей - значит будет 5 событий аудита ассетов с типом "Добавление уязвимости ассета").</p>

В событиях информацию можно найти следующим запросом:

```sql
SELECT * FROM `events` WHERE DeviceEventCategory = 'Audit assets' ORDER BY Timestamp DESC LIMIT 250
```

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-10/scaled-1680-/JsTimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-10/JsTimage.png)

Типы событий по которым ведется аудит:

- Ассет добавлен. Создание ассета любым способом: вручную через web-интерфейс KUMA, REST API, импорт KSC и тд.
- Ассет изменен. Изменены такие поля как: Name, IP address, Mac Address, FQDN, Operating system.
- Ассет удален. Ассет помечается как удаленный, если был удален вручную пользователем или если по нему не пришла информация из KSC по истечению срока в параметре TTL.
- Добавление уязвимости ассета. Пришла информация о новой уязвимости, ранее отсутствующей у ассета.
- Устранение уязвимости ассета. Уязвимость считается устраненной, если по ней отсутствует информация во всех источниках ассета. Информация об уязвимостях может приходить от разных источников. Считаем уязвимость устраненной, если со всех источников пришла информация об ее устранении.
- Ассет добавлен в категорию. Реативная категоризация (например, когда правило отправило ассет в определенную категорию) - фиксируется какое правило отправило и какая категория.
- Ассет удален из категории.

В наборе правил корреляции ПресейлПак есть пример правила корреляции по обнаружению новой уязвимости на Ассете по событию аудита в KUMA.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-10/scaled-1680-/F23image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-10/F23image.png)

# Тенанты в KUMA (Multitenancy)

### Термины

- **Multitenancy** — "множественное владение", использование общих ресурсов разными пользователями изолировано друг от друга.
- **Tenant (тенант)** — огранизация / филиал организации (в рамках KUMA).
- **General tenant** — основной тенант (Main), который имеет доступ ко всем данным и настройкам своих филиалов, может осуществлять централизованное управление филиалами.

<p class="callout info">Права на создание нового и редактирование существующего тенанта — только у пользователя с ролью General admin.</p>

<p class="callout info">Для редактирования ресурсов в определенном тенанте, помимо прав администратора тенанта добавьте еще права аналитика к УЗ </p>

<p class="callout warning">Отключить Main тенант нельзя (можно переименовать), так как некоторые разделы в KUMA доступны только ему, например, Audit события KUMA складваются только в нем.</p>

### Принцип работы

KUMA Core (ядро SIEM) — это web консоль и компонент управления всеми микросервисами KUMA. В каждой инсталляции один сервер Core. Все остальные микросервисы можно распределять по инфраструктуре, как удобно, даже без разделения по тенантам.

Разделение по тенантам позволяет разграничить доступ пользователей KUMA по событиям (как базовым так и корреляционным), контенту (правила парсинга, корреляции и т.д.). Тенант может назначаться Коллектору или Коррелятору, а Хранилищу можно назначить Тенант (если это архитектурно тербуется), когда оно отдельное со своими дисками и мощностями.

Ниже схематично представлен путь событий от коллекторов в разных тенантах (А и В) в единое Хранилище (Тенант Main), где пользователь Тенанта А может видеть только свои события (Тенанта А):

![deep dive-Page-4.drawio.png](https://kb.kuma-community.ru/uploads/images/gallery/2025-01/scaled-1680-/69ddeep-dive-page-4-drawio.png)

Пользователи подключаются к Core и через него отправляют поисковые запросы в хранилище (или хранилища) своего тенанта.

Выбор тенанта производится в соответсвующем разделе:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-02/scaled-1680-/sMIimage.png)

Core выступает единой точкой администрирования всей инфраструктуры KUMA, при этом в Core передаются не все события, а только результаты поисковых запросов пользователей, поэтому сетевой трафик минимален.

Отдельные (филиальные) Коррелятор и/или Хранилище имеют смысл, если не хочется значительно нагружать каналы связи между Головным офисом и Филиалом, либо архитектурные / организационные требования, например, локальное хранение.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2025-01/scaled-1680-/ZTMimage.png)

### Кросс-тенантный коррелятор  


События разных тенантов могут быть собраны коЛЛекторами, но направляться в один коРРелятор, в этом случае корреляционные события и алерты будут помечены тенантом коррелятора. Ниже представлен пример отправки события от коллектора в Тенанте А в коррелятор Тенант В:

[![deep dive-Page-3.drawio.png](https://kb.kuma-community.ru/uploads/images/gallery/2025-01/scaled-1680-/deep-dive-page-3-drawio.png)](https://kb.kuma-community.ru/uploads/images/gallery/2025-01/deep-dive-page-3-drawio.png)

<p class="callout info">Ресурсы, используемые в корреляторе, должны принадлежать тому же тенанту, что и сам коррелятор (т.е. правила корреляции из Тенанта А могут прилинковаться к коррелятору Тенанта А). Исключение Shared тенант, ресурсы общего тенанта могут быть использованы в любом корреляторе.</p>

# Описание метрик в KUMA

<p class="callout info">Официальная документация по данному разделу приведена в Онлайн-справке на продукт: [https://support.kaspersky.ru/help/KUMA/3.2/ru-RU/218035.htm](https://support.kaspersky.ru/help/KUMA/3.2/ru-RU/218035.htm) </p>

<p class="callout info">По умолчанию данные о работе KUMA хранятся 3 месяца. Этот срок можно изменить, см. справку.</p>

В KUMA роль системы мониторинга выполняет **Victoria Metrics**. Информация по всем микросервисам обновляется каждые 5 секунд по HTTP-интерфейсу. А **Grafana** отвечает за отображение метрик, собранных с помощью Victoria Metrics.

Для просмотра всех наборов графиков щелкните сюда (на имя подсвеченное зеленым) в разделе KUMA "Метрики":

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/scaled-1680-/ub4image.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-01/ub4image.png)

### Общие метрики  


Следующие метрики извлекаются из всех микросервисов KUMA

- Process — Общие метрики процесса
- Memory — Утилизация оперативной памяти, оценивается резидентная память (RSS - Resident set size)
- DISK BPS — Количество байт в секунду прочитанных/записанных на диск
- Network BPS — Количество байт в секунду полученных/отправленных в сеть
- Network Packet Loss — Количество утраченных сетевых пакетов в секунду
- GC Latency — Время (медиана), затраченное на цикл Garbage Collector'а GO
- Goroutines — Текущее количество активных Go-рутин (потоки в Golang)

##### OS (Общие метрки операционной системы)

- Load — Load average (средняя нагрузка) на ЦП. Обычно да 1, 5 и 15 минут, если число нагрузки за 15 минут более количества ядер (включая виртуальные) системы, то это не нормально
- CPU — Общая утилизация ЦП
- Memory — Общая утилизация оперативной памяти (RSS). В норме, когда число не доходит до 100%
- Disk — Утилизация дискового пространства

### Метрики Collectors  


##### IO (Input-Output)  


- Processing EPS — Количество обрабатываемых событий в секунду
- Output EPS — Количество отправляемых в точку назначения событий в секунду
- Output Latency — Время, затраченное на передачу пачки событий точке назначения и на получения ответа от нее
- Output Errors — Количество ошибок отправки пачки событий точке назначения в секунду. Ошибки отправки по сети и ошибки записи в дисковый буффер отображаются отдельно
- Output Event Loss — Количество потерянных событий в секунду. Потеря может произойти, если их не удалось отправить ни в сеть, ни записать в дисковый буффер
- Output Disk Buffer Size — Текущий размер дискового буффера точки назначения. Ноль означает, что ни одна пачка событий не буферизирована, и это хорошо, не копится очередь

##### Normalization

- Raw &amp; Normalized event size — Размер (медиана) оригинального лога источника и размер нормализованной формы этого лога (события)
- Errors — Количество ошибок нормализации в секунду

##### Filtration

- EPS — Количество событий в секунду, отбрасываемых фильтром коллектора

##### Aggregation  


- EPS — Количество событий, входящих и выходящих из правила агрегации в секунду. Позволяет оценить эффективность правил агрегации
- Buckets — Текущее количество бакетов в правиле агрегации

##### Enrichment

- Cache RPS — Количество обращений к локальному кешу в секунду
- Source RPS — Количество обращений к источнику обогащения в секунду
- Source Latency — Время (медиана), затраченное на отправку запроса и получение ответа от источника обогащения
- Queue — Размер очереди запросов на обогащение. Позволяет оценить, является ли данное правило обогащения узким местом
- Errors — Количество ошибок обращений к источнику обогащения, обозреваемых в секунду

### Метрики Correlator  


##### IO (Input-Output)

- Processing EPS — Количество обрабатываемых событий в секунду
- Output EPS — Количество событий, отправляемых в точку назначения в секунду
- Output Latency — Время (медиана), затраченное на передачу пачки событий точке назначения и на получения ответа от нее
- Output Errors — Количество ошибок отправки пачки событий точке назначения в секунду. Ошибки отправки в сеть и ошибки записи в дисковый буффер отображаются отдельно
- Output Event Loss — Количество потерянных событий в секунду. Потеря может произойти, если их не удалось отправить ни в сеть, ни записать в дисковый буффер
- Output Disk Buffer Size — Текущий размер дискового буффера точки назначения. Ноль означает, что ни одна пачка событий не буферизирована, и это хорошо, не копится очередь

##### Correlation  


- EPS — Количество корреляционных событий, порождаемых правилом корреляции в секунду
- Buckets — Текущее количество бакетов внутри правила корреляции (только для правил Standard)
- Rate Limiter Hits — Превышение лимита срабатываний правилом корреляции в секунду
- Active Lists OPS — Количество обращений к активному листу в секунду, с указанием операции
- Active Lists Records — Текущее количество записей в активном листе
- Active Lists On-Disk Size — Текущий размер активного листа на диске

##### Enrichment

- Cache RPS — Количество обращений к локальному кешу в секунду
- Source RPS — Количество обращений к источнику обогащения в секунду
- Source Latency — Время (медиана), затраченное на отправку запроса и получение ответа от источника обогащения
- Queue — Размер очереди запросов на обогащение. Позволяет оценить, является ли данное правило обогащения узким местом
- Errors — Количество ошибок обращений к источнику обогащения, обозреваемых в секунду

##### Response  


- RPS — Количествово запусков/активаций правил реагирования (response) в секунду.

### Метрики Storage  


##### Clickhouse / General  


- Active Queries — Общее кол-во запросов к кластеру Clickhouse, выполняемых в данный момент. Метрика отображается по каждому инстансу Clickhouse
- QPS — Общее количество запросов в секунду
- Failed QPS — Общее количество неуспешных запросов в секунду
- Allocated memory — Количество памяти (RAM), выделенное процессу Clickhouse

##### Clickhouse / Insert  


- Insert EPS — Количество событий, вставляемых за одну секунду в инстанс Clickhouse
- Insert QPS — Количество запросов на вставку в секунду
- Failed Insert QPS — Количество неуспешных запросов на вставку в секунду
- Delayed Insert QPS — Количество запросов на вставку (в секунду), которые были отложены нодой Clickhouse по превышению soft лимита активных слияний.
- Rejected Insert QPS — Количество запросов на вставку (в секунду), которые были отвергнуты нодой Clickhouse по превышению hard лимита активных слияний.
- Active Merges — Количество активных слияний
- Distribution queue — Количество файлов, в которые сохранены временно эвенты в кластере Clickhouse. Эвенты предназначены для инсерта в тот или иной шард, но не попали из-за того, что шард был недоступен. Эти события недоступны в поиске

##### Clickhouse / Select  


- Select QPS — Количество запросов на выборку данных в секунду
- Failed Select QPS — Количество неуспешных запросов на выборку данных в секунду

##### Clickhouse / Replication  


- Active Zookeeper Connections — Количество активных подключений к нодам кластера Zookeeper. В норме должно быть равным количеству нод в кластере Zookeeper
- Read-only Replicas — Количество нод-реплик Clickhouse, находящихся в режиме read-only. В норме таких реплик быть не должно (равно нулю)
- Active Replication Fetches — Количество активных процессов репликации данных в настоящий момент (скачивание данных с ноды)
- Active Replication Sends — Количество активных процессов репликации данных в настоящий момент (отправка данных ноде)
- Active Replication Consistency Checks — Количество текущих проверок консистентности данных на репликах

##### Clickhouse / Networking  


- Active HTTP Connections — Количество активных подключений к HTTP серверу Clickhouse
- Active TCP Connections — Количество активных подключений к TCP серверу Clickhouse
- Active Interserver Connections — Количество активных служебных подключений между нодами Clickhouse

### Метрики Core  


##### IO (Input-Output)

- RPS — Количество запросов в секунду
- Latency — Время (медиана), затраченное на обработку одного запроса
- Errors — Количество ошибок обоработки запросов в секунду

##### Notification Feed  


- Subscriptions — Количество клиентов, подключенных к Core с помощью SSE для получения сообщений от сервера в реальном времени. Обычно равно количеству клиентов, использующих Web-console
- Errors — Количество ошибок отправки оповещений в секунду

##### Schedulers  


- Active — Текущее количество активных системных повторяющихся задач. Фоновые задачи, запущенные пользователем, не учитываются
- Latency — Время (медиана), затраченное на выполнение задачи
- Errors — Количество ошибок выполнения задач, обозреваемых в секунду

С KUMA версии 3.2:

##### Raft

- Lookup RPS — Количество вызовов процедур чтения в секунду. С указанием процедуры
- Lookup Latency — Длительность выполнения процедур чтения, с указанием процедуры. (99 percentile)
- Propose RPS — Количество вызовов процедур обновления состояния Raft (SQLITE) в секунду. С указанием процедуры
- Propose Latency — Длительность выполнения процедур обновления состояния Raft (SQLITE), с указанием процедуры. (99 percentile)

##### API  


- RPS — Количество запросов в секунду
- Latency — Время, затраченное на обработку одного запроса. Медиана
- Errors — Количество ошибок обоработки запросов, обозреваемых за 1 секунду

С KUMA версии 3.4:

#### Tasks  


- Active tasks — Число выполняемых задач за единицу времени, в шт.
- Task Execution latency — Время выполняемых задач, в сек
- Errors — Ошибки при выполнении задач, в шт

##### Data Mining  


- Executing Rules — Суммарное количество Data Mining правил, которые сейчас выполняются
- Execution Latency — Продолжительность выполнения Data Mining правил (сколько время занял сам запрос в БД от момента запуска, до передачи в коррелятор)
- Queued Rules — Суммарное количество правил в очереди. Очередь появляется тогда, когда запланировано на одно время больше правил, чем разрешено параметром конкурентности (по умолчанию = 1)
- Execution Errors — Количество ошибок при выполнении Data Mining правил

## С KUMA версии 3.2

### Метрики KUMA Agent  


<p class="callout info">Для сбора доступ в ядро по порту 8429/tcp</p>

##### IO (Input-Output)  


- Processing EPS — Количество обрабатываемых событий за 1 секунду
- Output EPS — Количество отправляемых в точку назначения событий за 1 секунду
- Output Latency — Время, затраченное на передачу пачки событий точке назначения и на получения ответа от нее. Иными словами - продолжительность round-trip. Медиана
- Output Event Loss — Количество потерянных событий за 1 секунду. Потеря может произойти, если их не удалось ни отправить в сеть, ни записать в дисковый буффер. Кроме того, если точка назначения ответила кодом, означающим, к примеру, некорректно сформированный запрос - события также будут утеряны
- Output Errors — Количество ошибок отправки пачки событий точке назначения, обозревамое за 1 секунду. Ошибки отправки в сеть и ошибки записи в дисковый буффер отображаются отдельно
- Output Disk Buffer Size — Текущий размер дискового буффера destination. Ноль означает, что ни одна пачка событий не буферизирована, все в порядке
- Write Network BPS — Количество байт отправленных в сеть за 1 секунду

### Метрики EventRouter  


##### IO (Input-Output)  


- Processing EPS — Количество обрабатываемых событий за 1 секунду
- Output EPS — Количество отправляемых в точку назначения событий за 1 секунду
- Output Latency — Время, затраченное на передачу пачки событий точке назначения и на получения ответа от нее. Иными словами - продолжительность round-trip. Медиана
- Output Event Loss — Количество потерянных событий за 1 секунду. Потеря может произойти, если их не удалось ни отправить в сеть, ни записать в дисковый буффер. Кроме того, если точка назначения ответила кодом, означающим, к примеру, некорректно сформированный запрос - события также будут утеряны
- Output Errors — Количество ошибок отправки пачки событий точке назначения, обозревамое за 1 секунду. Ошибки отправки в сеть и ошибки записи в дисковый буффер отображаются отдельно
- Output Disk Buffer Size — Текущий размер дискового буффера destination. Ноль означает, что ни одна пачка событий не буферизирована, все в порядке
- Write Network BPS — Количество байт отправленных в сеть за 1 секунду
- Connector Errors — Количество ошибок в логах коннектора

# Как узнать связи между ресурсами KUMA

<p class="callout info">Данный способ является workaround, KUMA до 4.0, в будущих релизах будет добавлен штатный механизм отображения зависимостей.</p>

**Шаг 0.** Предварительно создаем копию нужного ресурса.

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-02/scaled-1680-/ijZimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-02/ijZimage.png)

**Шаг 1.** Выбираем ресурс и нажимаем "Удалить"

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-02/scaled-1680-/nYfimage.png)

**Шаг 2.**

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-02/scaled-1680-/5pximage.png)

**Шаг 3.** Подтверждаем удаление.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-02/scaled-1680-/cvPimage.png)

**Шаг 4.** В случае, если от ресурса зависят другие ресурсы KUMA, удаление не произойдет и будет выведен список зависимых ресурсов. Если зависимостей не было найдено, то ресурс будет безвозвратно удален (поэтому на шаге 0 был сделан дубликат ресурса).

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-02/scaled-1680-/62jimage.png)

# Устройство кластера хранилища

<p class="callout info">Бесплатный курс обучения по ClickHouse от Яндекс Практикум - [https://yandex.cloud/ru/training/clickhouse](https://yandex.cloud/ru/training/clickhouse)</p>

**Кластер** - логическая группа машин, обладающих всеми накопленными нормализованными событиями KUMA. Подразумевает наличие одного или нескольких логических шардов.

**Shard (шард)** - логическая группа машин, обладающих некоторой частью всех накопленных в кластере нормализованных событий. Подразумевает наличие одной или нескольких реплик. Если обьяснить на пальцах, механика работы кластера с несколькими шардами - это работа дисков в RAID0.

Увеличение количества шардов позволяет:

- накапливать больше событий за счет увеличения общего количества серверов и дискового пространства;
- поглощать больший поток событий за счет распределения нагрузки, связанной со вставкой новых событий;
- уменьшить время поиска событий за счет распределения поисковых зон между несколькими машинами.

<p class="callout info">В случае выхода из строя машины с определенным шардом (при отсутствии репликации) данные продолжат накапливаться другими шардами, но в интерефейсе KUMA нельзя будет искать по событиям до тех пор, пока не ввести в строй обратно "упавшую" машину или поиск вернет не консистентные данные</p>

**Replica (реплика)** - машина, являющаяся членом логического шарда и обладающая одной копией данных этого шарда. Если реплик несколько - копий тоже несколько (репликация данных). Если обьяснить на пальцах, механика работы кластера с несколькими репликами - это работа дисков в RAID1.

Увеличение количества реплик позволяет:

- улучшить отказоустойчиовость;
- распределить общую нагрузку, связанную с поиском данных, между несколькими машинами (однако для этой цели лучше увеличить количество шардов).

**Keeper** - машина участвующая в репликации и координации (распределенные Data Definition Language (DDL) запросы) данных на уровне всего кластера хранилищ, позволяющее иметь линеаризуемую запись и нелинейное чтение данных. На весь кластер минимально требуется хотя бы 1 реплика с данной ролью. Рекомендуемое и отказоустойчивое количество таких реплик - 3. Число реплик, участвующих в координации репликации, должно быть нечетным. Если Keeper перестанет работать, то реплики переходят в Read only, при этом поиск будет работать, но новые события записываться не будут.

<p class="callout warning">При разворачивании распределенного кластера, машины с ролью Keeper должны быть запущены **ДО** запуска / установки машин без роли Keeper </p>

При работе keeper машины испольют [RAFT алгоритм ](https://ru.wikipedia.org/wiki/Raft_(%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC))для определения лидера среди нескольких keeper машин. Лидер выполняет все операции записи и запускает автоматическое восстановление при отказе любого из подключенных серверов. Остальные узлы — подписчики или последователи, реплицируют данные с лидера и используются клиентскими приложениями для чтения. Подробнее можно почитать [тут](https://bigdataschool.ru/wiki/zookeeper). Кластер может оставаться работоспособным при отказе определенного количества нод в зависимости от размера кластера. Например, для кластера из 3 нод (Keeper), алгоритм кворума продолжает работать при отказе не более чем одной ноды.

<p class="callout info">Доп. информация: [https://clickhouse.com/docs/en/architecture/horizontal-scaling#architecture-diagram](https://clickhouse.com/docs/en/architecture/horizontal-scaling#architecture-diagram) </p>

### Описание конфигурации хранилища в инвентаре ansible

Пример инвентаря `distributed.inventory.yml`, если используется два хранилища и 3 кипера, то конфигурация storage будет выглядеть следующим образом:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/scaled-1680-/vBlimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-04/vBlimage.png)

<details id="bkmrk-%D0%9E%D0%B4%D0%BD%D0%BE-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5-%D0%B1%D0%B5%D0%B7-%D0%BA"><summary>Одно хранилище без кластера</summary>

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-02/scaled-1680-/Rteimage.png)

</details>Если указаны параметры shard и replica, то машина является частью кластера и принимает участие в накоплении и поиске нормализованных событий KUMA. Если дополнительно указан параметр keeper, то машина также принимает участие в координации репликации данных на уровне всего кластера. Если keeper на хранилище не нужен, то указывается `keeper: 0`

Если указан только параметр keeper (отдельная машина с этой ролью), то машина не будет накапливать нормализованные события, но будет участвовать в координации репликации данных на уровне всего кластера. Значения параметра keeper должны быть уникальными, а значения shard и replica равны 0.

"Номера" реплик, шардов и киперов роли не играют. Например, конфиг с номерами реплик 1-2-3 работает так же хорошо как и с номерами 1-23-777, по смыслу это скорее айдишник, а не порядковый номер.

Если в рамках одного шарда определено несколько реплик, то значение параметра replica должно быть уникальным в рамках этого шарда. Пример для четырех серверов хранилища и трех отдельных киперов на рисунке ниже:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/21Aimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/21Aimage.png)

При просмотре разделов из веб интерфейса KUMA (Активные сервисы - ПКМ - Смотреть разделы) показывается сколько места занято партицией во всем кластере с учетом всех реплик.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2025-02/scaled-1680-/e66image.png)

<p class="callout info">В точке назначения в KUMA (для записи событий в хранилище) прописываются URL всех хранилищ, отдельно установленные машины с ролью keeper указывать НЕ нужно</p>

<p class="callout info">Буфер хранилища по умолчанию 128 Мб, при большом количестве шардов и заметной медленной работе поиска - увеличьте размер буфера, например, до 512 Мб и увеличте таймаут (интервал очистки буфера), например, до 60 сек.</p>

<p class="callout info">Редкие большие вставки для БД ClickHouse лучше, чем частые и небольшие.</p>

<p class="callout info">Установка службы хранилища - [https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/ustanovka-sluzby-xranilishha-esli-etogo-ne-proizoslo-pri-ustanovke](https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/ustanovka-sluzby-xranilishha-esli-etogo-ne-proizoslo-pri-ustanovke) </p>

<p class="callout info">Смотри также статью про схему взаимодействия KUMA - [https://kb.kuma-community.ru/books/kuma-how-to/page/sxema-setevogo-vzaimodeistviia-kuma](https://kb.kuma-community.ru/books/kuma-how-to/page/sxema-setevogo-vzaimodeistviia-kuma) </p>

<p class="callout success">Корректность работы хранилища можно проверить, перейдя во вкладку События и нажав на значок увеличительного стекла (Поиск), далее должны появиться события, поступающие в KUMA или Сообщение «События не найдены». Если при поиске возникает ошибка, то необходимо проверить статусы сервисов в веб интерфейсе KUMA. Провести первичный траблшутинг по [этой ](https://kb.kuma-community.ru/books/kuma-how-to/page/pervicnyi-trablsut-v-kuma-troubleshoot)статье, воспользоваться комьюнити ресурсами или завести кейс в поддержку</p>

# Как расширить диск с данными KUMA в случае с lvm

### Кейс 1. Увеличивается объем диска

<p class="callout info">В данном примере расширяется размер диска **sda** и раздел **sda3**</p>

1. Расширяем диск средствами гипервизора
2. Проверяем текущее состояние дисков  
      
    ```bash
    lsblk
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/Gudimage.png)
3. Проверяем свободное место  
      
    ```bash
    parted /dev/sda unit MB print free
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/ZFcimage.png)
4. Изменяем целевой раздел (под номером 3)  
      
    ```bash
    parted /dev/sda resizepart 3
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/kKGimage.png)
5. (опционально) Проверяем свободное место, чтобы убедиться, что изменения применились  
      
    ```bash
    parted /dev/sda unit MB print free
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/HQqimage.png)
6. (опционально) Проверяем размер физического тома  
      
    ```bash
    pvdisplay 
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/v9Cimage.png)
7. Расширяем физический том  
      
    ```bash
    pvresize /dev/sda3
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/WPuimage.png)
8. (опционально) Проверяем логический раздел  
      
    ```bash
    lvscan
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/mbTimage.png)
9. Расширяем логический раздел  
      
    ```bash
    lvextend /dev/ubuntu-vg/ubuntu-lv -l +100%FREE -r
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/Xeyimage.png)
10. (опционально) Проверяем, что все изменения применены  
      
    ```bash
    lsblk
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/Ttrimage.png)

---

### Кейс 2. Добавляется новый диск

<p class="callout info">В данном примере добавляется новый диск **sdb**</p>

1. Подключаем новый диск средствами гипервизора или к железному серверу
2. Проверяем текущее состояние дисков  
      
    ```bash
    lsblk
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/FU5image.png)
3. Создаем физический том  
      
    ```bash
    pvcreate /dev/sdb
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/0u3image.png)
4. (опционально) Проверяем том (должны увидеть старый и новый)  
      
    ```bash
    pvdisplay
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/Iv5image.png)
5. Расширяем группу томов новым томом  
      
    ```bash
    vgextend ubuntu-vg /dev/sdb
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/8Btimage.png)
6. (опционально) Проверяем, что группа томов увеличилась в размере  
      
    ```bash
    vgdisplay
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/3bkimage.png)
7. Расширяем логический раздел  
      
    ```bash
    lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/ExDimage.png)
8. (опционально) Проверяем, что раздел был успешно расширен  
      
    ```bash
    lvdisplay
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/hqJimage.png)
9. Увеличиваем раздел файловой системы (**ext4**)  
      
    ```
    resize2fs /dev/ubuntu-vg/ubuntu-lv
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/sjwimage.png)
    
      
    Если файловая система **xfs** используйте следующую команду
    
    ```bash
    xfs_growfs /dev/ubuntu-vg/ubuntu-lv
    ```
10. (опционально) Проверяем, что все изменения применены  
      
    ```bash
    df -h
    ```
    
    ![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-09/scaled-1680-/VYkimage.png)

---

# Продление сессии пользователя для режима ТВ (TV-mode)

<p class="callout danger">Не актуально для версий KUMA &gt;3.2</p>

В рамках данной статьи настраивается автоматическое продление сессии пользователя для ТВ режима, чтобы отображать дашборды на экранах без перелогина.

<p class="callout info">По умолчанию в KUMA сессия длится 12 часов и этот параметр не изменяется</p>

1\. Создайте пользователя с ролью Младший аналитик (минимальные привилегии для просмотра дашбордов) с доступом в нужные тенанты:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-10/scaled-1680-/image.png)

2\. Сделайте выход пользователя из KUMA. Перейдите на страницу входа в KUMA, нажмите в браузере F12 (или перейдите в режим разработчика), затем зайдите новым пользователем:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-10/scaled-1680-/etKimage.png)

3\. Перейдите в окне режима разработчика в браузере во вкладку Application, затем раздел Cookies и скопируйте значения переменных XSRF-TOKEN и kuma\_m\_sid:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2024-10/scaled-1680-/Dp2image.png)

4\. Заполните запрос curl своими данными из переменных:

```bash
curl -s -k --location 'https://10.68.85.126:7220/api/reset-session-ttl' --header 'Cookie: XSRF-TOKEN=acdb1014-a95e-40c0-afdd-5080133a6463; kuma_session=n6xXfEgIxiC3Bo896X0Ece0sGmovt72RFksI9_PJ09g%3D' --compressed
```

5\. Создайте задачу в crontab на ядре KUMA с повторением каждые 4 часа, выполните команду `crontab -e` и добавьте запись в конце, зайтем выйдите с сохранением:

```bash
0 */4 * * * /usr/bin/curl -s -k --location 'https://10.68.85.126:7220/api/reset-session-ttl' --header 'Cookie: XSRF-TOKEN=39dd617f-d016-4d12-b6b1-d9ec4cf30a24; kuma_session=RX8WiZVn0H-xxLR_7wEdU4XCARcNUHWaDwS9CQDBQYA%3D' --compressed
```

# Как определить средний размер события

### В веб-интерфейсе

Для того, чтобы определить средний размер хранимого события из веб-интерфейса, выполните следующие действия:

1\. Войдите в веб-интерфейс с учетной записью администратора

2\. Перейдите в **Ресурсы** - **Активные сервисы**

3\. Выберите ваше хранилище правой кнопкой мыши и нажмите **Смотреть разделы**

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2025-07/scaled-1680-/image.png)

4\. В результате откроектся таблица с разделами (партициями). Вы можете найти необходимые партиции через поиск или отфильтровать по доступным полям, например по полю **Пространство**.

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2025-07/scaled-1680-/LwGimage.png)

В колонке Размер представлен размер хранимых событий в разделе с учетом реплик в Байтах (до версии 4.0, в 4.0 возможно выбрать единицы отображения).

В колонке События представлено количество событий в разделе.

Для того, чтобы посчитать средний размер хранимого события необходимо воспользоваться формулой:

##### **(Размер ÷ События) ÷ Количество реплик**

Для более точного результата рекомендуется проделать вычисления для нескольких разделов одного типа за разные даты и затем вычислить среднее арифметическое.

# Cканер уязвимостей ADPulse DC

**ADPulse** — это инструмент аудита безопасности Active Directory с открытым исходным кодом, который подключается к контроллеру домена через LDAP(S), выполняет 35 автоматических проверок безопасности и создает подробные отчеты в консольном формате, формате JSON и HTML.

Он предназначен для ИТ-администраторов, специалистов по тестированию на проникновение и групп безопасности, которым необходима быстрая оценка неправильных настроек Active Directory и поверхности атаки в режиме только для чтения.

<p class="callout warning">ADPulse работает в режиме только для чтения и не вносит изменений в инфраструктуру — но это не делает его использование безобидным с правовой точки зрения.</p>

**Используйте инструмент только если:**

- Вы администратор или сотрудник ИБ своей организации
- У вас есть письменное разрешение на проведение аудита (scope of work, договор, приказ)
- Вы проводите работы в рамках официального пентеста с согласованным техническим заданием

**Проверки безопасности**

<div class="scrollable-wrapper table-wrapper" id="bkmrk-%23-%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D1%82%D1%8C-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5"><div class="scrollable"><table class="rme-table" style="width: 100%;"><tbody><tr id="bkmrk-%23-%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D1%82%D1%8C-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-1"><th id="bkmrk-%23" style="width: 5.48141%;">\#

</th><th id="bkmrk-%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D1%82%D1%8C" style="width: 29.6711%;">Проверять

</th><th id="bkmrk-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5" style="width: 64.8236%;">Описание

</th></tr><tr id="bkmrk-1-%D0%9F%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D0%B5%D0%B9-%D0%9C"><td id="bkmrk-1" style="width: 5.48141%;">1

</td><td id="bkmrk-%D0%9F%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D0%B5%D0%B9" style="width: 29.6711%;">**Политика паролей**

</td><td id="bkmrk-%D0%9C%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%B4%D0%BB%D0%B8%D0%BD%D0%B0%2C-%D0%B8" style="width: 64.8236%;">Минимальная длина, история, сложность, порог блокировки, обратимое шифрование, детализированные PSO.

</td></tr><tr id="bkmrk-2-%D0%9F%D1%80%D0%B8%D0%B2%D0%B8%D0%BB%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-"><td id="bkmrk-2" style="width: 5.48141%;">2

</td><td id="bkmrk-%D0%9F%D1%80%D0%B8%D0%B2%D0%B8%D0%BB%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D1%83%D1%87" style="width: 29.6711%;">**Привилегированные учетные записи**

</td><td id="bkmrk-%D0%A7%D0%BB%D0%B5%D0%BD%D1%81%D1%82%D0%B2%D0%BE-%D0%B2-%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B0%D1%85-%D0%B0" style="width: 64.8236%;">Членство в группах администраторов домена, администраторов предприятия, администраторов схем и других группах с конфиденциальной информацией; устаревшие данные участников, пароли, срок действия которых не истекает, пароли в описаниях, встроенный статус администратора, возраст krbtgt.

</td></tr><tr id="bkmrk-3-kerberos-%D0%A3%D1%87%D0%B5%D1%82%D0%BD%D1%8B%D0%B5-%D0%B7"><td id="bkmrk-3" style="width: 5.48141%;">3

</td><td id="bkmrk-kerberos" style="width: 29.6711%;">**Kerberos**

</td><td id="bkmrk-%D0%A3%D1%87%D0%B5%D1%82%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8%2C-%D0%B4%D0%BE%D0%BF%D1%83" style="width: 64.8236%;">Учетные записи, допускающие завышение рейтинга Kerberos (SPN в объектах пользователей), учетные записи, допускающие завышение рейтинга AS-REP, шифрование только DES, высокоприоритетные цели, объединяющие adminCount=1 + SPN + PasswordNeverExpires

</td></tr><tr id="bkmrk-4-%D0%9D%D0%B5%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%B4%D0%B5%D0%BB"><td id="bkmrk-4" style="width: 5.48141%;">4

</td><td id="bkmrk-%D0%9D%D0%B5%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%B4%D0%B5%D0%BB%D0%B5%D0%B3" style="width: 29.6711%;">**Неограниченное делегирование**

</td><td id="bkmrk-%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D1%8B-%D0%B8-%D1%83%D1%87%D0%B5%D1%82%D0%BD%D1%8B%D0%B5" style="width: 64.8236%;">Компьютеры и учетные записи пользователей, не относящиеся к центру обработки данных, используются для неограниченного делегирования полномочий Kerberos.

</td></tr><tr id="bkmrk-5-%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%B4%D0%B5%D0%BB%D0%B5%D0%B3"><td id="bkmrk-5" style="width: 5.48141%;">5

</td><td id="bkmrk-%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D0%B4%D0%B5%D0%BB%D0%B5%D0%B3%D0%B8%D1%80" style="width: 29.6711%;">**Ограниченное делегирование**

</td><td id="bkmrk-%D0%A3%D1%87%D0%B5%D1%82%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D1%81-%D0%BF%D0%B5%D1%80" style="width: 64.8236%;">Учетные записи с переходом протокола (S4U2Self) и стандартными целями с ограниченным делегированием.

</td></tr><tr id="bkmrk-6-adcs-%2F-pki-esc1%2C-e"><td id="bkmrk-6" style="width: 5.48141%;">6

</td><td id="bkmrk-adcs-%2F-pki" style="width: 29.6711%;">**ADCS / PKI**

</td><td id="bkmrk-esc1%2C-esc2%2C-esc3%2C-es" style="width: 64.8236%;">ESC1, ESC2, ESC3, ESC6, ESC8, ESC9, ESC10, ESC11, ESC13, ESC15, слабые размеры ключей, перечисление ACL участников

</td></tr><tr id="bkmrk-7-%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D0%B8%D1%81%D0%BF%D0%BE"><td id="bkmrk-7" style="width: 5.48141%;">7

</td><td id="bkmrk-%D0%94%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C" style="width: 29.6711%;">**Доверительное использование доменов**

</td><td id="bkmrk-%D0%94%D0%B2%D1%83%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D0%B5%D0%B5-%D0%B4%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D0%B5" style="width: 64.8236%;">Двустороннее доверие без фильтрации SID, доверие между лесами, внешнее доверие.

</td></tr><tr id="bkmrk-8-%D0%93%D0%B8%D0%B3%D0%B8%D0%B5%D0%BD%D0%B0-%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%B0-%D0%A3"><td id="bkmrk-8" style="width: 5.48141%;">8

</td><td id="bkmrk-%D0%93%D0%B8%D0%B3%D0%B8%D0%B5%D0%BD%D0%B0-%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%B0" style="width: 29.6711%;">**Гигиена аккаунта**

</td><td id="bkmrk-%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82" style="width: 64.8236%;">Устаревшие пользователи/компьютеры, учетные записи, в которые никогда не входили, флаг PASSWD\_NOTREQD, обратимое шифрование для каждой учетной записи, старые пароли, повторяющиеся SPN.

</td></tr><tr id="bkmrk-9-%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D1%82%D0%BE"><td id="bkmrk-9" style="width: 5.48141%;">9

</td><td id="bkmrk-%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE" style="width: 29.6711%;">**Безопасность протокола**

</td><td id="bkmrk-%D0%9F%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-ldap%2F%D0%BF%D1%80%D0%B8%D0%B2" style="width: 64.8236%;">Подписание LDAP/привязка каналов, версии операционных систем контроллеров домена, функциональный уровень домена/леса, рекомендации по NTLMv1/WDigest.

</td></tr><tr id="bkmrk-10-%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B-%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%BE%D0%B2%D0%BE%D0%B9"><td id="bkmrk-10" style="width: 5.48141%;">10

</td><td id="bkmrk-%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B-%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%BE%D0%B2%D0%BE%D0%B9-%D0%BF%D0%BE" style="width: 29.6711%;">**Объекты групповой политики**

</td><td id="bkmrk-%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%2C-%D0%BE%D1%81%D0%B8%D1%80%D0%BE%D1%82%D0%B5" style="width: 64.8236%;">Отключенные, осиротевшие, несвязанные и пустые групповые политики; чрезмерное количество групповых политик.

</td></tr><tr id="bkmrk-11-laps-%D0%9E%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-"><td id="bkmrk-11" style="width: 5.48141%;">11

</td><td id="bkmrk-laps" style="width: 29.6711%;">**LAPS**

</td><td id="bkmrk-%D0%9E%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D1%83%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88" style="width: 64.8236%;">Обнаружение устаревших схем LAPS и схем Windows LAPS; компьютеры без паролей LAPS.

</td></tr><tr id="bkmrk-12-laps-coverage-%D0%9F%D1%80%D0%BE"><td id="bkmrk-12" style="width: 5.48141%;">12

</td><td id="bkmrk-laps-coverage" style="width: 29.6711%;">**LAPS coverage**

</td><td id="bkmrk-%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D0%BD%D1%82%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5-" style="width: 64.8236%;">Процентное покрытие всех компьютеров, не являющихся центрами обработки данных, с паролем, управляемым LAPS.

</td></tr><tr id="bkmrk-13-dns-%D0%B8-%D0%B8%D0%BD%D1%84%D1%80%D0%B0%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82"><td id="bkmrk-13" style="width: 5.48141%;">13

</td><td id="bkmrk-dns-%D0%B8-%D0%B8%D0%BD%D1%84%D1%80%D0%B0%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0" style="width: 29.6711%;">**DNS и инфраструктура**

</td><td id="bkmrk-%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D0%B4%D1%81%D1%82%D0%B0" style="width: 64.8236%;">Использование подстановочных DNS-записей, рекомендации по отравлению LLMNR/NetBIOS-NS.

</td></tr><tr id="bkmrk-14-%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D1%8B-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD"><td id="bkmrk-14" style="width: 5.48141%;">14

</td><td id="bkmrk-%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D1%8B-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%B0" style="width: 29.6711%;">**Контроллеры домена**

</td><td id="bkmrk-%D0%9E%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE" style="width: 64.8236%;">Обнаружение отдельного контроллера домена, устаревшие ОС на контроллерах домена, роли FSMO, политика репликации паролей RODC.

</td></tr><tr id="bkmrk-15-acl-%2F-%D0%9F%D1%80%D0%B0%D0%B2%D0%B0-%D0%B4%D0%BE%D1%81%D1%82%D1%83"><td id="bkmrk-15" style="width: 5.48141%;">15

</td><td id="bkmrk-acl-%2F-%D0%9F%D1%80%D0%B0%D0%B2%D0%B0-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0" style="width: 29.6711%;">**ACL / Права доступа**

</td><td id="bkmrk-%D0%9F%D1%80%D0%B0%D0%B2%D0%B0-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0-esc4%2C-" style="width: 64.8236%;">Права доступа ESC4, ESC5, ESC7, DCSync для непривилегированных субъектов, группа защищенных пользователей, списки контроля доступа (ACL) для делегирования.

</td></tr><tr id="bkmrk-16-%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D1%84%D1%83"><td id="bkmrk-16" style="width: 5.48141%;">16

</td><td id="bkmrk-%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D1%84%D1%83%D0%BD%D0%BA%D1%86" style="width: 29.6711%;">**Дополнительные функции**

</td><td id="bkmrk-%D0%9A%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0-active-direc" style="width: 64.8236%;">Корзина Active Directory, управление привилегированным доступом (PAM)

</td></tr><tr id="bkmrk-17-replication-healt"><td id="bkmrk-17" style="width: 5.48141%;">17

</td><td id="bkmrk-replication-health" style="width: 29.6711%;">**Replication Health**

</td><td id="bkmrk-%D0%9A%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2%2C-%D0%B8" style="width: 64.8236%;">Количество сайтов, интервалы репликации связей между сайтами, объекты nTDSDSA

</td></tr><tr id="bkmrk-18-%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D1%8B%D0%B5-%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82"><td id="bkmrk-18" style="width: 5.48141%;">18

</td><td id="bkmrk-%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D1%8B%D0%B5-%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D1%8B" style="width: 29.6711%;">**Служебные аккаунты**

</td><td id="bkmrk-%D0%92%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5-gmsa%2C-%D0%BE%D0%B1%D1%8B%D1%87" style="width: 64.8236%;">Внедрение gMSA, обычные учетные записи пользователей, учетные записи пользователей с adminCount=1

</td></tr><tr id="bkmrk-19-miscellaneous-har"><td id="bkmrk-19" style="width: 5.48141%;">19

</td><td id="bkmrk-miscellaneous-harden" style="width: 29.6711%;">**Miscellaneous Hardening**

</td><td id="bkmrk-%D0%9A%D0%B2%D0%BE%D1%82%D0%B0-%D0%B4%D0%BB%D1%8F-%D1%83%D1%87%D0%B5%D1%82%D0%BD%D1%8B%D1%85-%D0%B7%D0%B0" style="width: 64.8236%;">Квота для учетных записей машин, время жизни удаленных файлов, членство в группах администраторов схемы/корпоративных администраторов, гостевая учетная запись, рекомендации по политике аудита.

</td></tr><tr id="bkmrk-20-%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B8%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86"><td id="bkmrk-20" style="width: 5.48141%;">20

</td><td id="bkmrk-%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B8%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD" style="width: 29.6711%;">**Устаревшие операционные системы**

</td><td id="bkmrk-%D0%92%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D1%8B-%D1%83%D1%87%D0%B5%D1%82%D0%BD%D1%8B%D0%B5-%D0%B7%D0%B0%D0%BF" style="width: 64.8236%;">Включены учетные записи компьютеров, сообщающие об окончании поддержки версий Windows.

</td></tr><tr id="bkmrk-21-%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA"><td id="bkmrk-21" style="width: 5.48141%;">21

</td><td id="bkmrk-%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB%D1%8B" style="width: 29.6711%;">**Устаревшие протоколы**

</td><td id="bkmrk-%D0%9E%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-smbv1%2C-%D0%BE" style="width: 64.8236%;">Обнаружение SMBv1, обеспечение подписи SMB, принятие нулевых сессий (проверка сети в реальном времени)

</td></tr><tr id="bkmrk-22-exchange-%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0-%D1%80"><td id="bkmrk-22" style="width: 5.48141%;">22

</td><td id="bkmrk-exchange" style="width: 29.6711%;">**Exchange**

</td><td id="bkmrk-%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0-%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B9-wi" style="width: 64.8236%;">Группа разрешений Windows Exchange (PrivExchange / CVE-2019-0686), доверенная подсистема Exchange

</td></tr><tr id="bkmrk-23-%D0%97%D0%B0%D1%89%D0%B8%D1%89%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8"><td id="bkmrk-23" style="width: 5.48141%;">23

</td><td id="bkmrk-%D0%97%D0%B0%D1%89%D0%B8%D1%89%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80" style="width: 29.6711%;">**Защищенные администраторы**

</td><td id="bkmrk-admincount%3D1-invento" style="width: 64.8236%;">adminCount=1 inventory — orphaned, ghost (disabled) and stale accounts

</td></tr><tr id="bkmrk-24-%D0%9F%D0%B0%D1%80%D0%BE%D0%BB%D0%B8-%D0%B2-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F"><td id="bkmrk-24" style="width: 5.48141%;">24

</td><td id="bkmrk-%D0%9F%D0%B0%D1%80%D0%BE%D0%BB%D0%B8-%D0%B2-%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F%D1%85" style="width: 29.6711%;">**Пароли в описаниях**

</td><td id="bkmrk-%D0%9E%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D1%83%D1%87%D0%B5%D1%82%D0%BD%D1%8B%D1%85-" style="width: 64.8236%;">Обнаружение учетных данных, хранящихся в поле «Описание» пользователей, администраторов и компьютеров, на основе ключевых слов.

</td></tr><tr id="bkmrk-25-gpp-%2F-cpassword-%28"><td id="bkmrk-25" style="width: 5.48141%;">25

</td><td id="bkmrk-gpp-%2F-cpassword-%28ms1" style="width: 29.6711%;">**GPP / cpassword (MS14-025)**

</td><td id="bkmrk-%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0-%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D0%B5%D1%82-" style="width: 64.8236%;">Программа выполняет обход файлов XML с атрибутами групповых политик в каталоге SYSVOL

```
cpassword
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk-"></div>и расшифровывает их с помощью общеизвестного ключа AES от Microsoft.

</td></tr><tr id="bkmrk-26-adminsdholder-acl"><td id="bkmrk-26" style="width: 5.48141%;">26

</td><td id="bkmrk-adminsdholder-acl" style="width: 29.6711%;">**AdminSDHolder ACL**

</td><td id="bkmrk-%D0%A1%D1%87%D0%B8%D1%82%D1%8B%D0%B2%D0%B0%D0%B5%D1%82-%D0%B4%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D1%8B%D0%B9-%D1%81" style="width: 64.8236%;">Считывает двоичный список

```
CN=AdminSDHolder
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--1"></div>контроля доступа (DACL) и помечает непривилегированные учетные записи с правами на запись — эти записи автоматически распространяются на все защищенные учетные записи каждые 60 минут через SDProp.

</td></tr><tr id="bkmrk-27-%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F-sid-%D0%9E%D0%B1%D0%BD%D0%B0%D1%80"><td id="bkmrk-27" style="width: 5.48141%;">27

</td><td id="bkmrk-%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F-sid" style="width: 29.6711%;">**История SID**

</td><td id="bkmrk-%D0%9E%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D1%82-%D1%83%D1%87%D0%B5%D1%82%D0%BD%D1%8B%D0%B5" style="width: 64.8236%;">Обнаруживает учетные записи с

```
sIDHistory
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--2"></div>заполненными данными; повышает статус до CRITICAL, если какой-либо внедренный SID соответствует привилегированной группе (администраторы домена, администраторы предприятия и т. д.).

</td></tr><tr id="bkmrk-28-shadow-credential"><td id="bkmrk-28" style="width: 5.48141%;">28

</td><td id="bkmrk-shadow-credentials" style="width: 29.6711%;">**Shadow Credentials**

</td><td id="bkmrk-%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-%D0%BF%D0%BE%D0%BC%D0%B5%D1%87%D0%B0%D0%B5%D1%82-%D0%BD%D0%B5%D0%BE" style="width: 64.8236%;">Функция помечает неожиданные

```
msDS-KeyCredentialLink
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--3"></div>записи в объектах пользователей и компьютеров, позволяя использовать аутентификацию на основе сертификатов без знания пароля учетной записи.

</td></tr><tr id="bkmrk-29-rc4-%2F-%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B5%D0%B5-"><td id="bkmrk-29" style="width: 5.48141%;">29

</td><td id="bkmrk-rc4-%2F-%D0%A3%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B5%D0%B5-%D1%88%D0%B8%D1%84" style="width: 29.6711%;">**RC4 / Устаревшее шифрование Kerberos**

</td><td id="bkmrk-%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B5%D1%82%C2%A0-msds-supp" style="width: 64.8236%;">Проверяет

```
msDS-SupportedEncryptionTypes
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--4"></div>учетные записи служб, контроллеров домена и администраторов, чтобы выявить те, которые по-прежнему разрешают использование RC4-HMAC — уязвимого типа шифрования, специально запрашиваемого злоумышленниками для взлома в автономном режиме.

</td></tr><tr id="bkmrk-30-foreign-security-"><td id="bkmrk-30" style="width: 5.48141%;">30

</td><td id="bkmrk-foreign-security-pri" style="width: 29.6711%;">**Foreign Security Principals in Privileged Groups**

</td><td id="bkmrk-%D0%92%D1%8B%D1%8F%D0%B2%D0%BB%D1%8F%D0%B5%D1%82%C2%A0-cn%3Dforeign" style="width: 64.8236%;">Выявляет

```
CN=ForeignSecurityPrincipals
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--5"></div>и помечает любые FSP из доверенного домена, являющиеся членами конфиденциальной локальной группы (администраторы домена, операторы резервного копирования и т. д.).

</td></tr><tr id="bkmrk-31-%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%2C-%D1%81%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D0%BC"><td id="bkmrk-31" style="width: 5.48141%;">31

</td><td id="bkmrk-%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%2C-%D1%81%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D0%BC%D1%8B%D0%B9-" style="width: 29.6711%;">**Доступ, совместимый с версиями до Windows 2000.**

</td><td id="bkmrk-%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B5%D1%82%2C-%D1%8F%D0%B2%D0%BB%D1%8F%D1%8E%D1%82%D1%81%D1%8F-" style="width: 64.8236%;">Проверяет, являются ли

```
Everyone
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--6"></div>или

```
Anonymous Logon
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--7"></div>являются членами этой группы, что позволяет осуществлять неаутентифицированное перечисление SAMR/LSARPC из любой точки сети.

</td></tr><tr id="bkmrk-32-dangerous-constra"><td id="bkmrk-32" style="width: 5.48141%;">32

</td><td style="width: 29.6711%;">**Dangerous Constrained Delegation Targets**</td><td id="bkmrk-%D0%9F%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B8%D1%82-%D0%BF%D0%B5%D1%80%D0%B5%D0%BA%D1%80%D0%B5%D1%81%D1%82%D0%BD%D1%83" style="width: 64.8236%;">Проводит перекрестную проверку целевых объектов делегирования на основе имен хостов контроллеров домена и помечает учетные записи, делегирующие делегирование приоритетным классам обслуживания (

```
ldap/
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--8"></div>,

```
cifs/
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--9"></div>,

```
host/
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--10"></div>,

```
gc/
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--11"></div>,

```
krbtgt/
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--12"></div>) на контроллерах домена.

</td></tr><tr id="bkmrk-33-orphaned-ad-subne"><td id="bkmrk-33" style="width: 5.48141%;">33

</td><td id="bkmrk-orphaned-ad-subnets" style="width: 29.6711%;">**Orphaned AD Subnets**

</td><td id="bkmrk-%D0%9E%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D1%82-%D0%BF%D0%BE%D0%B4%D1%81%D0%B5%D1%82%D0%B8" style="width: 64.8236%;">Обнаруживает подсети без

```
siteObject
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--13"></div>назначений, в результате чего клиенты получают случайный контроллер домена и потенциально маршрутизируют трафик аутентификации через каналы WAN.

</td></tr><tr id="bkmrk-34-legacy-frs-sysvol"><td id="bkmrk-34" style="width: 5.48141%;">34

</td><td id="bkmrk-legacy-frs-sysvol-re" style="width: 29.6711%;">**Legacy FRS SYSVOL Replication**

</td><td id="bkmrk-%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%8F%D0%B5%D1%82%2C-%D0%BF%D1%80%D0%BE%D0%B4%D0%BE%D0%BB%D0%B6%D0%B0" style="width: 64.8236%;">Определяет, продолжает ли SYSVOL реплицироваться с помощью устаревшей службы репликации файлов (File Replication Service) вместо DFSR, и помечает состояния, остановившиеся в процессе миграции.

</td></tr><tr id="bkmrk-35-rbcd-on-domain-ob"><td id="bkmrk-35" style="width: 5.48141%;">35

</td><td id="bkmrk-rbcd-on-domain-objec" style="width: 29.6711%;">**RBCD on Domain Object / DCs**

</td><td id="bkmrk-%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D1%8F%D0%B5%D1%82%C2%A0-msds-allo" style="width: 64.8236%;">Проверяет

```
msDS-AllowedToActOnBehalfOfOtherIdentity
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--14"></div>состояние головного узла домена NC и всех объектов компьютеров контроллера домена — любая из конфигураций предоставляет фактические права администратора домена разрешенным субъектам через S4U2Proxy.

</td></tr></tbody></table>

</div></div>**Требования**

- Python 3.8+
- Сетевой доступ к контроллеру домена (порт 636 для LDAPS, 389 для LDAP, 445 для SMB-зондов)
- Учетная запись домена с правами на чтение (для большинства проверок права администратора не требуются).
- Для проверки 25 (GPP/cpassword): SYSVOL должен быть доступен с сканирующего хоста (UNC-путь в Windows или монтирование Samba в Linux/macOS).

**Установка:**

```
git clone https://github.com/yourorg/adpulse.git
cd adpulse

# Содание виртуальной среды 
python -m venv venv
source venv/bin/activate        # Linux / macOS
venv\Scripts\activate           # Windows

# Устанвока зависимостей
pip install -r requirements.txt
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="javascript" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--15"></div>![](https://kb.kuma-community.ru/api/attachments.redirect?id=199e9188-078f-4e45-a152-3021386e010e)**Возможные аргументы**

<table id="bkmrk-%D0%90%D1%80%D0%B3%D1%83%D0%BC%D0%B5%D0%BD%D1%82-%D0%9D%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D1%8B%D0%B9"><thead><tr><th><span dir="auto">Аргумент</span></th><th><span dir="auto">Необходимый</span></th><th><span dir="auto">По умолчанию</span></th><th><span dir="auto">Описание</span></th></tr></thead><tbody><tr><td>`--domain`</td><td><span dir="auto">Да</span></td><td><span dir="auto">—</span></td><td><span dir="auto">Целевой домен AD (например </span>`corp.local`<span dir="auto">)</span></td></tr><tr><td>`--user`</td><td><span dir="auto">Да</span></td><td><span dir="auto">—</span></td><td><span dir="auto">Имя пользователя домена</span></td></tr><tr><td>`--password`</td><td><span dir="auto">Да</span></td><td><span dir="auto">—</span></td><td><span dir="auto">пароль домена</span></td></tr><tr><td>`--hash`</td><td><span dir="auto">Только без пароля</span></td><td><span dir="auto">—</span></td><td><span dir="auto">Хэш домена NTLM</span></td></tr><tr><td>`--dc-ip`</td><td><span dir="auto">Нет</span></td><td><span dir="auto">Автоматически решено</span></td><td><span dir="auto">IP-адрес контроллера домена</span></td></tr><tr><td>`--report`</td><td><span dir="auto">Нет</span></td><td>`all`</td><td><span dir="auto">Формат отчета: </span>`console`<span dir="auto">, </span>`json`<span dir="auto">, </span>`html`<span dir="auto">, или</span>`all`</td></tr><tr><td>`--output-dir`</td><td><span dir="auto">Нет</span></td><td>`.`</td><td><span dir="auto">Родительский каталог для </span>`Reports/`<span dir="auto">папки</span></td></tr><tr><td>`--no-color`</td><td><span dir="auto">Нет</span></td><td>`false`</td><td><span dir="auto">Отключить цвет в выводе на консоль</span></td></tr></tbody></table>

**Базовое сканирование**

```
python ADPulse.py --domain corp.local --user user --password "P@ssw0rd!"
```

<div class="code-block word-no-wrap" data-collapsed="false" data-language="" data-line-numbers="false" data-mermaid-mode="code_and_diagram" data-word-wrap="false" id="bkmrk--17"></div>[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/scaled-1680-/YMVimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/YMVimage.png)

После сканирования вы увидите в командной строке все обнаруженные уязвимости

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/scaled-1680-/L5iimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/L5iimage.png)

Также автоматически создаются отчеты на устройстве

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/scaled-1680-/OBZimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/OBZimage.png)

откроем html отчет:![](https://kb.kuma-community.ru/api/attachments.redirect?id=bf898719-e269-413f-80ad-9b43c0c22c99)

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/scaled-1680-/VOTimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/VOTimage.png)![](https://kb.kuma-community.ru/api/attachments.redirect?id=bf898719-e269-413f-80ad-9b43c0c22c99)

**Подсчет очков**

За каждое обнаруженное нарушение начисляется штраф в виде снижения оценки риска. Общий балл начинается со **100** и уменьшается за каждое обнаруженное нарушение:

<div class="scrollable-wrapper table-wrapper" id="bkmrk-%D0%A1%D1%87%D0%B5%D1%82-%D0%A3%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C-%D1%80%D0%B8%D1%81%D0%BA%D0%B0-%D0%97"><div class="scrollable"><table class="rme-table"><tbody><tr id="bkmrk-%D0%A1%D1%87%D0%B5%D1%82-%D0%A3%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C-%D1%80%D0%B8%D1%81%D0%BA%D0%B0-%D0%97-1"><th id="bkmrk-%D0%A1%D1%87%D0%B5%D1%82">Счет

</th><th id="bkmrk-%D0%A3%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C-%D1%80%D0%B8%D1%81%D0%BA%D0%B0">Уровень риска

</th><th id="bkmrk-%D0%97%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5">Значение

</th></tr><tr id="bkmrk-80%E2%80%93100-%D0%9D%D0%98%D0%97%D0%9A%D0%98%D0%99-%D0%A5%D0%BE%D1%80%D0%BE%D1%88%D0%B0"><td id="bkmrk-80%E2%80%93100">80–100

</td><td id="bkmrk-%D0%9D%D0%98%D0%97%D0%9A%D0%98%D0%99">НИЗКИЙ

</td><td id="bkmrk-%D0%A5%D0%BE%D1%80%D0%BE%D1%88%D0%B0%D1%8F-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%B1%D0%B5%D0%B7%D0%BE">Хорошая система безопасности, лишь незначительные проблемы.

</td></tr><tr id="bkmrk-60%E2%80%9379-%D0%A1%D0%95%D0%A0%D0%95%D0%94%D0%98%D0%9D%D0%90-%D0%A1%D1%83%D1%89%D0%B5%D1%81"><td id="bkmrk-60%E2%80%9379">60–79

</td><td id="bkmrk-%D0%A1%D0%95%D0%A0%D0%95%D0%94%D0%98%D0%9D%D0%90">СЕРЕДИНА

</td><td id="bkmrk-%D0%A1%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D0%BD%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0">Существенные недостатки, которые следует устранить.

</td></tr><tr id="bkmrk-40%E2%80%9359-%D0%92%D0%AB%D0%A1%D0%9E%D0%9A%D0%98%D0%99-%D0%9F%D1%80%D0%B8%D1%81%D1%83%D1%82"><td id="bkmrk-40%E2%80%9359">40–59

</td><td id="bkmrk-%D0%92%D0%AB%D0%A1%D0%9E%D0%9A%D0%98%D0%99">ВЫСОКИЙ

</td><td id="bkmrk-%D0%9F%D1%80%D0%B8%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%82-%D1%81%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2">Присутствуют существенные уязвимости.

</td></tr><tr id="bkmrk-0%E2%80%9339-%D0%9A%D0%A0%D0%98%D0%A2%D0%98%D0%A7%D0%95%D0%A1%D0%9A%D0%98%D0%99-%D0%A1%D0%B5%D1%80"><td id="bkmrk-0%E2%80%9339">0–39

</td><td id="bkmrk-%D0%9A%D0%A0%D0%98%D0%A2%D0%98%D0%A7%D0%95%D0%A1%D0%9A%D0%98%D0%99">КРИТИЧЕСКИЙ

</td><td id="bkmrk-%D0%A1%D0%B5%D1%80%D1%8C%D0%B5%D0%B7%D0%BD%D1%8B%D0%B5-%D1%80%D0%B8%D1%81%D0%BA%D0%B8-%E2%80%94-%D1%82%D1%80">Серьезные риски — требуется немедленное устранение последствий.

</td></tr></tbody></table>

</div></div>##### Устранение уязвимостей

В отчете будут уже указаны рекомендации для устранения:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/scaled-1680-/E1simage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/E1simage.png)

При переходе по предложенным ссылкам, вы сможете подробно изучить их

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/scaled-1680-/yImimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2026-05/yImimage.png)

![](https://kb.kuma-community.ru/api/attachments.redirect?id=8f31a922-aa55-4583-94ef-2f26cd9ae579)

# Новичку в KUMA

### Официальная информация

Полный список на начальной странице [https://kb.kuma-community.ru/](https://kb.kuma-community.ru/) в части **Официальные ресурсы**

### Начало

1. Что такое SIEM и Приоритет подачи журналов в SIEM — [**статья**](https://kb.kuma-community.ru/books/kuma-how-to/page/cto-takoe-siem-i-prioritet-podaci-zurnalov-v-siem)
2. Модель лицензирования KUMA — [**статья**](https://kb.kuma-community.ru/books/kuma-how-to/page/model-licenzirovaniia-kuma-licensing)
3. Схема сетевого взаимодействия KUMA — [**статья**](https://kb.kuma-community.ru/books/kuma-how-to/page/sxema-setevogo-vzaimodeistviia-kuma-arxitektura)
4. Подготовка ОС перед установкой и Требования — [**статья**](https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/page/podgotovka-os-pered-ustanovkoi-i-trebovaniia)
5. Обновление / Установка KUMA — [**статья**](https://kb.kuma-community.ru/books/ustanovka-i-obnovlenie/chapter/obnovlenieustanovka-kuma)
6. Популярные вопросы и ответы FAQ — [**статья**](https://kb.kuma-community.ru/books/kuma-how-to/page/faq)
7. Траблшутинг по неполадкам — [**статья**](https://kb.kuma-community.ru/books/kuma-how-to/page/pervicnyi-trablsut-v-kuma-troubleshoot)

### Работа с системой

1. Работа с системой KUMA (корреляция, поиск, парсинг) — [**статья**](https://kb.kuma-community.ru/shelves/cookbooks)
2. Подключение источников — [**статья**](https://kb.kuma-community.ru/books/podkliucenie-istocnikov)
3. Модель данных события — [**статья**](https://support.kaspersky.com/help/KUMA/3.4/ru-RU/217941.htm)
4. Типы хранения данных — [**статья**](https://support.kaspersky.com/help/KUMA/3.4/ru-RU/217941.htm)
5. Загрузка коробочного контента в систему — [**статья**](https://kb.kuma-community.ru/books/kuma-how-to/page/gde-brat-oficialnyi-kontent-dlia-kuma-obnovlenie-kontenta)
6. Правила корреляции (Описание правил и контент): 
    - Коробочные правила (SOC Content) — [**ссылка**](https://support.kaspersky.com/help/KUMA/3.2/ru-RU/250594.htm) (более **[удобное](https://kb.kuma-community.ru/kuma-rules-lib)** представление правил) 
        - Добавление маппинга MITRE ATT&amp;CK в правил корреляции — **[статья](https://kb.kuma-community.ru/books/kuma-how-to/page/kak-ispolzovat-mitre-attck-v-soc)** ([Карта покрытия MITRE ATT&amp;CK](https://kuma-mitre.kaspersky.ru/))
    - Community Pack — [**ссылка**](https://box.kaspersky.com/d/f630e3ab02b64405881a/files/?p=%2FCorrelation%20Rules%2FCommunity-Pack%2FReadMe%20Community-Pack-Content.txt)
        - Загрузка Community правил `Community-Pack-RU+MITRE_*` — [**ссылка**](https://box.kaspersky.com/d/f630e3ab02b64405881a/?p=%2FCorrelation%20Rules%2FCommunity-Pack&mode=list), пароль импорта файла в KUMA: `q123123Q!` (Для версий &gt;3.2: `q123123Q!q123123Q!` или `q123123Q!KLaapt-M4`)
7. Описание правил номализации: 
    - Community Pack — [**ссылка**](https://box.kaspersky.com/d/f630e3ab02b64405881a/files/?p=%2FCorrelation%20Rules%2FCommunity-Pack%2FReadMe%20Community-Pack-Content.txt)
    - Коробочные правила — **[ссылка](https://support.kaspersky.ru/help/KUMA/3.2/ru-RU/255782.htm)**
8. Обновление официального контента в KUMA — [**статья**](https://kb.kuma-community.ru/books/kuma-how-to/page/gde-brat-oficialnyi-kontent-dlia-kuma-obnovlenie-kontenta)
9. Описание процесса работы c инцидентами в KUMA — [**статья**](https://kb.kuma-community.ru/books/kuma-how-to/page/opisanie-processa-raboty-c-incidentami-v-kuma)
10. Возможности реагирования KUMA — [**статья**](https://kb.kuma-community.ru/books/integracii/page/opisanie-gotovyx-integracii-po-reagirovaniiu)
11. 🤖 ИИ в KUMA — [**статья**](https://kb.kuma-community.ru/books/kuma-how-to/page/model-licenzirovaniia-kuma-licensing#bkmrk-%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-ai-%28artificia)
12. Оценка эффективности работы SIEM — [**статья**](https://securelist.ru/siem-effectiveness-assessment/114483/)
13. Комьюнити скрипты: 
    1. Актуальные — [**ссылка**](https://github.com/orgs/KUMA-Community/repositories)
    2. Старые (legacy) — [**ссылка**](https://kas.pr/kuma-ppack)
14. Полезные ссылки по ИБ — **[ссылка](https://kb.kuma-community.ru/books/kuma-how-to/page/poleznye-ssylki-po-ib)**

#### Видео материалы:

1. Обзор KUMA (**[видео](https://box.kaspersky.com/f/b5dc5b1c35694c54a9ca/)**)
2. Серия коротких видео по KUMA 
    1. YouTube — [**ссылка** ](https://www.youtube.com/playlist?list=PL86zv_GQQ5tjv6WyMEF2TNWyF4gFd3WBY)
    2. RUTUBE — **[ссылка ](https://rutube.ru/plst/891489/)**
3. Работа с Правилами Корреляции (**[видео](https://box.kaspersky.com/f/c36368dc45d24f3a8e1a/)**)
4. Работа с Нормализаторами (**[видео](https://box.kaspersky.com/f/b58e3014642342f4adf5/)**)

# Отправка уведомлений по метрикам (vmalerts)

<p class="callout danger">Информация преведенная в данной статье расчитана исключительно на опытных пользователей KUMA и **не** является официально поддерживаемым сценарием.</p>

<p class="callout danger">Данная инструкция актуальна для версий KUMA **до** появления отдельного сервиса **metrics**.</p>

### Описание

С помощью встроенного в продукт модуля vmalerts есть возможность отправки уведомлений по достижении метриками, определенных пользователем, пороговых значений. Уведомления отправляются пользователю, как стандартные уведомления мониторинга. Используются настройки SMTP-сервера в KUMA ([https://support.kaspersky.com/KUMA/2.1/ru-RU/217936.htm)](https://support.kaspersky.com/KUMA/2.1/ru-RU/217936.htm)), а у пользователя должна быть включена возможность получения уведомлений KUMA.

### Настройка Core вне кластера k0s

Настройка vmalerts осуществляется с помощью правил, которые должны быть помещены в директорию

```
/opt/kasperksy/kuma/victoria-metrics/cfg/rules/
```

### Настройка Core в кластере k0s

В случае размещения Core в кластере k0s правило может быть помещено в контейнер одним из следующих способов:

1\. На любом контроллере, используя k0s:

```bash
export POD=$(k0s kubectl get pods --namespace kuma -l "app=core" -o jsonpath="{.items[0].metadata.name}")
k0s kubectl cp --no-preserve rule.yml kuma/$POD:/opt/kaspersky/kuma/victoria-metrics/cfg/rules/ -c core
```

Где `rule.yml` - заранее созданное правило для vmalert

2\. С контрольной машины, если каталог с инсталлятором, в котором сохранен сертификат для kubectl, доступен. Используя kubectl:

```bash
export KUBECONFIG=/<some_path>/kuma-ansible-installer/artifacts/k0s-kubeconfig.yml
export POD=$(kubectl get pods --namespace kuma -l "app=core" -o jsonpath="{.items[0].metadata.name}")
kubectl cp --no-preserve rule.yml kuma/$POD:/opt/kaspersky/kuma/victoria-metrics/cfg/rules/ -c core
```

Где `rule.yml` - заранее созданное правило для vmalert, а `<some_path>` - директория, из которой производилась инсталляция KUMA

### Пример правила для vmalert

Пример ниже отправляет уведомление в случае, если диск был заполнен более 80% в течение 2 минут

```yml
groups:
- name: Disk space greater than 80%
  rules:
  - alert: HighDiskSpaceUsageNewAlert
    expr: max(kuma_diskOS{job="kuma"}) > 0.8
    for: 2m
```

Название собираемых метрик для их использования в правилах vmalert можно посмотреть в веб-интерфейсе в разделе Метрики, если перейти в режим редактирования соответствующих дашбордов grafana:

[![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-11/scaled-1680-/4Lzimage.png)](https://kb.kuma-community.ru/uploads/images/gallery/2023-11/4Lzimage.png)

### Пример уведомления

В результате вышеописанных действий при сработке правила пользователь получит следующее уведомление:

![image.png](https://kb.kuma-community.ru/uploads/images/gallery/2023-11/scaled-1680-/Rjbimage.png)

### Полезные ссылки

Подробнее про vmalert и создание правил: [https://docs.victoriametrics.com/vmalert.html](https://docs.victoriametrics.com/vmalert.html)