Безпекова позиція

Контролі безпеки, написані під платформу сповіщень — і тільки вони

WardenPoint захищає маршрутизацію сповіщень, дані одержувачів та історію доставлень конкретними контролями, які ми можемо описати простою мовою: TLS у транзиті, обмежені API-ключі, аудитована ретенція та ізоляція між компаніями. Без маркетингових значків, які ми не можемо підтвердити.

Транспорт
TLS 1.2+
Публічні ID
UUID
Аудит
90 днів

Що ми робимо

  • TLS 1.2+ на кожному публічному endpoint
  • окремий API-ключ на кожну інтеграцію, миттєве відкликання
  • UUID у кожному публічному URL і у вмісті запиту
  • Окремий обсяг для кожної компанії на кожному запиті
  • Структурований журнал аудиту відправлень

Чого ми не декларуємо

  • Без формальної сертифікації ISO 27001 / SOC 2
  • Без декларацій HIPAA / PCI / FedRAMP
  • Без гарантії end-to-end шифрування каналів
  • Без необмеженої ретенції голосових записів

Чотири стовпи

Конкретні контролі, згруповані за тим, що вони захищають

Чотири кошики покривають безпекову поверхню процесу сповіщень. У кожному — реальна контроль, вплетена в код, а не загальне best-practice обіцяння.

01 · Транспорт

Дані у транзиті

Кожен байт, що залишає ваш інструмент моніторингу або наш дашборд, іде через TLS. Публічний HTTP редіректить на HTTPS на edge.

  • TLS 1.2+ примусово на публічному edge
  • HTTPS -лише канонічні URL-адреси в карті сайту та метаданих
  • Підписані вмісти вебхуків, коли джерело підтримує
  • Провайдери каналів термінують власний TLS (Telegram, SMS-шлюзи, mail relays)

02 · Ідентифікація

Автентифікація та ідентифікатори

Два окремих шари ідентифікації — API-ключі для машинного трафіку, сесійний вхід для людей — і ніколи integer ID у публічному URL.

  • окремий API-ключ на кожну інтеграцію, відкликається з дашборда
  • Заголовок X-API-Key для endpoints /api/v1/
  • сесійний вхід через Sanctum із захистом від CSRF для дашборда
  • Лише UUID у публічних ID (trait HasUuid) — внутрішні ID не залишають backend
  • Сповіщення про вхід із нового пристрою надходять до центру сповіщень, коли до акаунта заходять із незнайомого пристрою

03 · Ретенція

Логи та історія доставлень

Записи доставлення й аудитні події тримаємо достатньо довго для розбору інциденту і достатньо коротко, щоб нічого не залежувалось.

  • Стрічка доставлення сповіщень зберігається для розбору інциденту
  • Структурований журнал аудиту служби «JSON» із зазначенням виконавця, каналу, статусу та ідентифікатора запиту
  • Ротація логів на хості з обмеженнями за розміром і часом
  • Записи голосових дзвінків зберігаються лише коли явно увімкнено, з ротацією

04 · Ізоляція

Багатотенантна ізоляція

Кожен запит резолвить Company на рівні middleware. Між тенантами немає спільних даних — і ми тестуємо cross-tenant витоки.

  • Middleware SetCurrentCompany на кожному автентифікованому route
  • Хелпери current_company() / current_company_id() використовуються сервісами
  • Scope-и моделей блокують cross-tenant запити за замовчуванням
  • Інтеграційні тести перевіряють ізоляцію на dashboard і API endpoints

05 · Доступ

Детальний доступ на основі ролей

Власник кожного workspace'у визначає ролі та перемикає дозволи покроку у матриці. Кожна зміна ролі або дозволу записує запис у журналі аудиту (лише з дописами) — видно адмінам на вкладці Ролі → Активність.

  • 5 системних ролей + власні ролі per workspace (owner, admin, manager, member, viewer)
  • Дозволи перемикаються покроку (вебхуки, одержувачі, оплата, інтеграції, …)
  • Роль Owner завжди має повний доступ — неможливо заблокувати себе невдалою конфігурацією
  • Журнал аудиту: хто що змінив, з diff-ом до/після — лише з дописами, ніколи не редагується
  • Sidebar і UI-поверхні ховають те, чого роль не може використати (без глухих кутів)

06 · Доступ агента

Чого не дістане агент ШІ

API налаштувань можна вести клієнтом MCP. Межі нижче — не обіцянка: цього просто неможливо висловити в цьому API.

  • Жодне право не дозволяє прочитати пароль; такого випадку немає у словнику, тож видати його помилково неможливо
  • API каже, чи облікові дані задані й чи пройшли перевірку, — ніколи не каже, які саме
  • Запис пароля йде через одноразове посилання, яке відкриває людина за власним входом
  • Права ключа позначаються під час випуску; ключ лише на читання отримує 403 із назвою права, якого забракло
  • Відкликання ключа діє з наступного ж запиту — жодного кешу на шляху немає

Журнал аудиту

Кожне відправлення лишає структурований запис

Коли WardenPoint надсилає сповіщення або запускає крок ескалації, він пише один рядок у журналі аудиту. Форма стабільна, машиночитна та містить достатньо для розслідування без розкриття вмісту одержувача.

  • eventМаркер життєвого циклу — відправлення, acknowledged, escalated, failed.
  • company_uuidОбсяг тенанта — присутній у кожному рядку для безпечної фільтрації.
  • notification_uuidСтабільний ID життєвого циклу для всіх кроків одного alert.
  • actorЯкий API-ключ або користувач спричинив подію.
  • ipIP-адреса джерела для машинного трафіку — фіксується на межі мережі.
  • request_idКорелює audit-рядки з логами додатку.
audit_log.jsonlROW
{
"event": "notification.dispatched",
"company_uuid": "00000000-0000-4000-8000-000000000001",
"notification_uuid": "notif_8h2k7yQrxJp",
"channel": "telegram_voice",
"recipient_uuid": "00000000-0000-4000-8000-000000000017",
"actor": "api_key:wp_live_8h2k…",
"ip": "203.0.113.42",
"status": "queued",
"request_id": "req_4j2k9bMcvL",
"at": "2026-05-17T13:42:18Z"
}

Чесні межі

Те, чого ми не декларуємо

Декларувати сертифікацію або функцію, яких ми не маємо, нікому не допомагає. Це межі, які ми навмисно лишаємо поза поточною безпековою позицією.

  • Формальні сертифікації

    У нас немає сертифікації ISO 27001, SOC 2 Type II, HIPAA, PCI-DSS чи FedRAMP. Якщо ваш закупівельний процес вимагає сертифікованого постачальника, зв'яжіться перед інтеграцією.

  • Наскрізне шифрування каналів

    Повідомлення йдуть через TLS до кожного провайдера каналу, але ми не гарантуємо end-to-end шифрування між відправником і одержувачем — це залежить від каналу (Telegram, SMS-оператор, mail relay).

  • Безкінечні записи

    Ми не зберігаємо записи голосових дзвінків нескінченно. Зберігання обмежене та конфігуроване. Якщо потрібне довгострокове зберігання, ведіть власний архів через експорт з журналу аудиту.

  • Аналітика між тенантами

    Ми не агрегуємо й не продаємо дані трафіку між тенантами для маркетингу чи тренування моделей. Обсяг для кожної компанії примусовий на рівні middleware.

  • Журнал окремих змін налаштувань

    Зміни ролей і користувачів записуються. Звичайні правки налаштувань — люди, групи, сценарії ескалації, графіки — до журналу поки не потрапляють, тож ми не покажемо, що і коли змінив агент або хтось із команди. Це в роботі; доки не вийде, вважайте панель джерелом поточного стану, а не історії.

Ваша половина контракту

Як це лишається безпечним на вашому боці

Більшість інцидентів зі сповіщеннями приходять з клієнтського боку межі — витеклі ключі, застарілі одержувачі, неясна згода. Кілька звичок тримають поверхню малою.

Ротуйте API-ключі при змінах команди

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

Тримайте ключі у змінних середовища

Ніколи не комітьте ключі у git. Використовуйте змінні середовища, менеджер секретів або secret store платформи деплою.

Тримайте згоду одержувача явною

WardenPoint надсилає на контактну інформацію, яку ви передаєте. Підтвердьте, що кожен одержувач погодився на голосовий або SMS контакт для категорій, які ви надсилаєте.

Стежте за журналом аудиту при інтеграціях

Якщо ви підключите WardenPoint до нового інструменту моніторингу, запустіть тест alert і перегляньте запис у журналі аудиту. Поля «actor», «channel» та «status» дозволяють виявити більшість помилок налаштування.

Питання про безпеку

Що команди питають перед закупкою

Зараз — ні. Ми обираємо описати контролі, які ведемо, а не декларувати framework, проти якого нас не аудитували. Якщо ваш закупівельний процес вимагає сертифікованого постачальника, зв'яжіться перед інтеграцією.
Пробний період за 5 хвилин

Перевірте інтеграцію на безпеку до розгортання

Почніть на безкоштовному плані, створіть API-ключ, надішліть тестове сповіщення і прочитайте запис у журналі аудиту. Без кредитної картки. Без даних поза доставленням.

  • Безкоштовний план
  • Журнал аудиту при кожному відправленні
  • Ревокація ключа за один клік