Skip to main content

SDK для работы с API SIEM Kuma

Project description

KAPI - KUMA API Python Client

PyPI GitHub Python Version License

Описание

KUMA API Python Client — это библиотека для взаимодействия с SIEM KUMA, предоставляющая удобный интерфейс как для публичного REST API, так и для приватных API-методов, используемых в веб-интерфейсе системы.

Особенности:

  • Поддержка как стабильного публичного API (документированного), так и приватных методов;
  • Minor&Major индексы версии идентичны официальным веткам методов;
  • Унифицированный интерфейс для работы со всеми сущностями KUMA (алерты, события, тенанты и др.);
  • Автоматическая обработка ответов (JSON, текст, бинарные данные);
  • Поддержка аутентификации через Bearer Token.

Установка

pip install kuma-api

Quickstart Инициализация клиента

Для работы с публичным REST API

import kuma

# Инициализация клиента с публичным API
client = kuma.RestClient(
    url="https://kuma.example.com",
    token="YOUR_BEARER_TOKEN",
    verify='core.cert'  # Путь к SSL-сертификату (рекомендуется для продакшена)
)
code, response = client.<object>.<method>()

Для работы с приватным API (только для внутреннего использования)

import kuma

# Инициализация клиента с приватным API
client = kuma.PrivateClient(
    url="https://kuma.example.com",
    username="USER",
    password="PASSWORD"
)
code, response = client.<object>.<method>()

Важно: Приватный API может изменяться между версиями KUMA и поддерживает подключение только с одного разрешенного хоста.

Примеры использования REST

Расширенные функции

Помимо стандартных REST-методов в клиенте есть ряд более комплексых методов, которые используют дополнительную логику или сразу несколько public методов, например преобразование Активного листа в Словарь и наоборот. Подробное описание и примеры функций — в EXTENTIONS.md.

Работа с алертами

Поиск

# Поиск алертов по фильтру
status, alerts = client.alerts.search(
    status="new",
    from="2023-01-01T00:00:00Z",
    to="2023-01-31T23:59:59Z",
    tenantID="tenant-123"
)
if status == 200:
    for alert in alerts:
        print(f"Found alert: {alert['id']}")

# Поиск с пагинацией (автоматическая загрузка всех страниц)
status, all_alerts = client.alerts.searchp(limit=500, status="assigned")
if status == 200:
    print(f"Total alerts found: {len(all_alerts)}")

Управление алертами

# Назначение алерта на пользователя
assign_status, _ = client.alerts.assign(
    alerts_ids=["123e4567-e89b-12d3-a456-426614174000"],
    user_id="user-123"
)
if assign_status == 200:
    print("Alert assigned successfully")

# Закрытие алерта с указанием причины
close_status, _ = client.alerts.close(
    alert_id="123e4567-e89b-12d3-a456-426614174000",
    reason="responded"
)
if close_status == 200:
    print("Alert closed")

# Добавление комментария к алерту
comment_status, _ = client.alerts.comment(
    alert_id="123e4567-e89b-12d3-a456-426614174000",
    comment="False positive, ignoring"
)
if comment_status == 200:
    print("Comment added")

Работа с связанными событиями

# Связывание события с алертом
link_status, _ = client.alerts.link_event(
    alert_id="alert-123",
    cluster_id="cluster-456",
    event_id="event-789",
    event_timestamp=1672531200,
    comment="Related event found"
)
if link_status == 200:
    print("Event linked")

# Отвязывание события от алерта
unlink_status, _ = client.alerts.unlink_event(
    alert_id="alert-123",
    event_id="event-789"
)
if unlink_status == 200:
    print("Event unlinked")

Обработка ошибок

status, response = client.alerts.get("invalid-id")
if status != 200:
    print(f"Error {status}: {response}")
    # Для 404: "Alert not found"
    # Для 403: "Access denied"

Документация API

Официальная документация по публичному API доступна по адресу: https://support.kaspersky.com/help/KUMA/3.4/en-US/217973.htm

Примечание: Приватные API-методы не задокументированы и могут изменяться вендором без предупреждения между версиями системы.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kuma_api-3.0.3.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kuma_api-3.0.3-py3-none-any.whl (35.2 kB view details)

Uploaded Python 3

File details

Details for the file kuma_api-3.0.3.tar.gz.

File metadata

  • Download URL: kuma_api-3.0.3.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for kuma_api-3.0.3.tar.gz
Algorithm Hash digest
SHA256 d68d46005a50bf7b618eac64385bf4db7909703463b13c19786639508c9d533d
MD5 10b3cd3fd0db4468b221e776ac9a74c5
BLAKE2b-256 48670da146fdb19a48c0c9fdb2355a4b62a23639d2f91daf1faf6e7ee68ae9d6

See more details on using hashes here.

File details

Details for the file kuma_api-3.0.3-py3-none-any.whl.

File metadata

  • Download URL: kuma_api-3.0.3-py3-none-any.whl
  • Upload date:
  • Size: 35.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for kuma_api-3.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2df62337b6ac11a94f3d2995dfc58f3970e29897f98b48a0455395e02936d060
MD5 0a85e776649e996a39e93139ae658a62
BLAKE2b-256 ae11189cfcfa815bad7e5df7d3aff665f05d5d4b47198d019ed726ebdcd5cdcc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page