Безопасность и данные

Страница для технического аудита: что Amobit Chats делает для защиты данных, как это проверить и какие гарантии мы не заявляем. Она описывает публичную поверхность сервиса — вход, токены, webhooks, хранение и обработчиков данных.

Обновлено 2026-10-20Относится к https://chats.amobit.ioЮридические документы: политика · правовая информация

Коротко. Вход только через Amobit ID с проверкой подписи и прав; компании изолированы на уровне серверных запросов; токены интеграций хранятся в виде хешей и показываются один раз; webhooks подписаны HMAC-SHA256, адрес проходит проверку на SSRF; медиа недоступны по прямой ссылке; резервные копии шифруются. Сертификаты SOC 2 / ISO 27001 не заявлены, шифрование at-rest не заявлено — подробности в разделе «Чего мы не заявляем».

Доступ и изоляция компаний

КонтрольКак реализовано
Аутентификация пользователейЕдиный вход через Amobit ID. Launch-токен проверяется как JWT: только RS256, ключ по kid из JWKS, закреплённые issuer и audience, обязательные exp, iat, sub; после подписи проверяются модуль, подписка, организация и роль.
Локальные паролиОтключены по умолчанию. Включение — только для служебных сценариев и только с loopback-адреса.
Браузерная сессияНепрозрачная серверная сессия Django. Cookies Secure и SameSite=None (нужно для встраивания в amoCRM/Bitrix24), HttpOnly; изменяющие запросы защищены CSRF. Продакшен не запускается с небезопасной политикой cookies.
Ролиowner, admin, agent, viewer. Управление каналами и интеграциями — owner/admin; подключать каналы может также агент с явным правом can_connect_channels; ответы в диалогах — owner/admin/agent; viewer только читает.
Изоляция компанийКаждый маршрут /workspaces/<slug>/… сначала проверяет активное членство пользователя и статус компании, затем все запросы фильтруются по этой компании. Компания, отключённая в Amobit ID, недоступна даже при сохранённом членстве.
Межкомпанийный доступПокрыт регрессионными тестами: чужая компания, чужой диалог, чужое медиа и чужой токен не должны давать доступ. Если хотите проверить самостоятельно — запросите тестовый workspace: чужой slug вернёт 403, чужой объект — 404, но не данные.
Отключение доступаДепровижининг компании отзывает пользовательские сессии и токены входа. Выход из текущей сессии инвалидирует её; отдельной кнопки «выйти на всех устройствах» нет. Токен внешней интеграции отзывается отдельно — заменой или отключением интеграции в кабинете.

Токены и секреты

СекретХранениеВыдача и отзыв
Токен внешней интеграции amc_…Хеш с солью развёртывания; в ответах только префикс.Показывается один раз при выпуске; срок действия встроен в токен — по умолчанию 365 дней. Новый выпуск немедленно отключает предыдущий и возвращает expires_at. Токены старого формата действуют до замены — перевыпустите их по регламенту.
Секрет подписи webhookХранится на сервере как секрет интеграции; через API не возвращается, доступен только флаг «настроен».Задаётся владельцем/администратором, не короче 16 символов. Меняется в настройках интеграции; HMAC считается этим секретом.
Токен MCP acmcp_…SHA-256-хеш, префикс.Показывается один раз, срок 1–90 дней, ограничен выбранными каналами, отзывается отдельно. На каждом запросе проверяются срок, отзыв, организация и актуальная роль создателя.
Секреты каналов (провайдеры)Не возвращаются API — интерфейс показывает только «настроено/нет». Для Meta и Viber применяется шифрование на уровне приложения; остальные секреты хранятся в БД сервиса и доступны только ему.Меняются при переподключении канала; при компрометации — отзыв у провайдера и замена.

Webhooks и защита от SSRF

КонтрольРеализация
Адрес получателяТолько абсолютный https://. localhost, приватные и непубличные IP отклоняются; имя хоста разрешается в DNS и все адреса должны быть публичными.
Повторная проверкаАдрес проверяется при сохранении и заново перед каждой попыткой доставки; редиректы не выполняются (3xx считается ошибкой).
ПодписьX-Amobit-Chats-Signature = "sha256=" + HMAC-SHA256(secret, timestamp + "." + raw_body); версия алгоритма — в заголовке hmac-sha256-v1.
Защита от повторовКаждое событие содержит X-Amobit-Chats-Idempotency-Key и timestamp. Проверка возраста timestamp — на стороне получателя (рекомендуем 5 минут).
СбоиТаймаут 10 секунд, до 8 попыток с нарастающей паузой, затем dead. В журнале ошибок хранится только безопасный код: error_id, тип исключения, HTTP-статус — без текста исключения и секрета.
Входящие webhooks провайдеровMeta — подпись X-Hub-Signature-256; Viber — HMAC-SHA256; amoCRM — X-Signature (HMAC-SHA1, обязательна в продакшене); Wappi — allowlist IP источника плюс токен канала (без HMAC).

Свои webhooks вы принимаете на своей стороне: проверяйте подпись по сырому телу и отклоняйте старые timestamp. Готовые примеры — в разделе проверка подписи.

Транспорт и заголовки

Какие данные хранятся

Amobit Chats обрабатывает переписку и связанные с ней данные клиентов компании:

База данных — PostgreSQL на выделенном сервере Amobit, медиа — на локальном диске того же сервера. Шифрование канала обязательно; шифрование данных «at rest» не заявлено как гарантия (см. ниже).

Сроки хранения

ДанныеСрок
Переписка, контакты, вложенияХранятся, пока существует компания и диалог. Автоматического удаления по сроку нет; удаление — по действию пользователя или запросу в поддержку.
События веб-чата90 дней
Данные посетителей веб-чата (PII)180 дней
Сетевые данные посетителей30 дней
Кэш удалённых медиа14 дней
Web-push доставки и подписки90 дней
Журнал доставок webhooks, аудит MCPБез автоматического срока; хранятся для диагностики.

Резервное копирование

Статус эксплуатации. Механизм реализован и автоматизирован. Текущий статус включения и дату последней успешной проверки восстановления подтверждаем в рамках security review — не публикуем как гарантию без подтверждения на конкретном окружении.

Мониторинг и журналирование

Сторонние обработчики

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

КатегорияСервисЧто передаётся
Транспорт мессенджеровWappiТексты, медиа, номера телефонов, идентификаторы профилей и каналов.
Прямые каналы MetaMeta (Messenger, Instagram, WhatsApp Cloud)Тексты, медиа, идентификаторы пользователей и страниц — если канал подключён напрямую.
Прямые каналыViberТексты, медиа, идентификатор пользователя.
CRM-коннекторыamoCRM/Kommo, Битрикс24, Altegio, PulseCRMСообщения и связанные сущности CRM — только если интеграция включена клиентом.
ИдентификацияAmobit IDИдентификатор пользователя, организация, роли, тариф.
AI-функцииAmobit AI, опционально OpenAI / GeminiКонтекст диалога или аудио — только при включённых AI-сценариях и транскрипции.
Сервисные проверкиDaData, Cloudflare Turnstile, Google FCMРеквизиты по ИНН/БИК; IP и site key для антиспама веб-чата; push-токен устройства — если функции включены.
Egress-релей Meta (опционально)VercelPayload запросов к Meta API, если включён relay META_EGRESS_RELAY_URL; используется для обхода сетевых ограничений egress.
ПлатежиVPOS / Ameriabank (через Amobit ID)Данные счёта и статуса оплаты. Данные карт в Amobit Chats не попадают.
Резервные копииОтдельное хранилище (restic)Шифрованный дамп БД и медиа.

Актуальный перечень субпроцессоров, модель поручения обработки (DPA) и применимую юрисдикцию подтверждаем индивидуально при заключении договора и в рамках security review.

Уязвимости и инциденты

Сообщить о потенциальной уязвимости или инциденте безопасности: info@amobit.io с темой Security. Опишите затронутый адрес/функцию, шаги воспроизведения и влияние; не прикладывайте реальные персональные данные и секреты.

Чего мы не заявляем

Чтобы security review опирался на факты, перечислим ограничения прямо:

ТемаФактическое состояние
СертификатыСертификаты SOC 2 / ISO 27001 / PCI DSS на момент публикации не заявлены. По запросу подтвердим актуальный статус и объём assurance; отчёт о независимом пентесте предоставляем в рамках согласованного аудита.
Шифрование at restНе заявлено как гарантия. Политика конфиденциальности описывает шифрование канала. Если для вашего комплаенса обязательно шифрование диска/СУБД — обсудим отдельно.
CSPВстраивание в CRM ограничено через frame-ancestors; политика script-src/default-src не заявлена.
HSTSВключён; includeSubDomains/preload не заявлены.
Лимиты частотыЛимиты применяются к аутентификации и отдельным чувствительным методам; отдельной публичной квоты для API отправки нет.
Срок хранения перепискиПо умолчанию переписка и вложения хранятся в течение срока работы компании; для договорного срока включается retention-очистка (команда purge_conversation_retention, минимальное окно 30 дней). Удаление также доступно по запросу в поддержку.
«Выйти везде»Нет массового отзыва всех браузерных сессий; отключение компании отзывает доступ, выход завершает текущую сессию.
Резервные копииРеализованы и автоматизированы; статус эксплуатации подтверждается на конкретном окружении, а не по умолчанию.

Чек-лист для вашей стороны

Контакты

Технические вопросы и security review: info@amobit.io. Юридические документы: политика конфиденциальности и правовая информация.