Skip to content

Security: snaart/phantom_server

Security

SECURITY.md

Политика Безопасности Сервера Phantom

Введение

Сервер Phantom играет ключевую роль в экосистеме, обеспечивая первоначальное установление контактов, доставку оффлайн-сообщений и поддержку P2P-сети. Несмотря на то, что сервер спроектирован с минимальным доверием (zero-trust) и не имеет доступа к содержимому сообщений, его безопасность и доступность являются нашим главным приоритетом.

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

Поддерживаемые Версии

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

Версия Поддержка безопасности
Последний main commit ✅ Да
Все предыдущие версии ❌ Нет

Как сообщить об уязвимости

Мы приветствуем и поощряем ответственное раскрытие информации об уязвимостях, обнаруженных в серверном программном обеспечении Phantom.

Пожалуйста, НЕ создавайте публичные GitHub Issues для сообщения об уязвимостях. Это может подвергнуть риску существующих операторов серверов и их пользователей.

Вместо этого, пожалуйста, отправьте нам электронное письмо на адрес security@snaart.com. Пожалуйста, используйте префикс [PHANTOM-SERVER] в теме письма.

Что включить в ваше сообщение:

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

  1. Тип уязвимости: Например, "Удаленное выполнение кода (RCE)", "SQL-инъекция", "Отказ в обслуживании (DoS)", "Раскрытие информации", "Некорректная авторизация".
  2. Подробный PoC (Proof-of-Concept): Четкие шаги или скрипт для воспроизведения уязвимости.
  3. URL и параметры запроса: Полный пример запроса (gRPC, HTTP), который вызывает уязвимость.
  4. Потенциальное воздействие: Ваша оценка того, как уязвимость может быть использована злоумышленником (например, "позволяет прочитать хэши пользователей" или "приводит к отказу сервера").
  5. Предложения по исправлению: Если у вас есть идеи, как исправить проблему, мы будем рады их услышать.

Наш процесс обработки

  1. Подтверждение: Мы стремимся подтвердить получение вашего отчета в течение 24-48 часов.
  2. Анализ: Наша команда проанализирует уязвимость, определит ее серьезность по шкале CVSS и разработает план по ее устранению.
  3. Исправление: Мы разработаем и протестируем патч.
  4. Раскрытие: Мы скоординируем с вами дату публичного раскрытия. Наш процесс включает:
    • Уведомление операторов серверов о предстоящем обновлении безопасности (без раскрытия деталей уязвимости).
    • Выпуск новой версии с исправлением.
    • Публикация бюллетеня безопасности (security advisory) с описанием уязвимости и благодарностью в ваш адрес (если вы этого желаете).

Мы просим вас соблюдать эмбарго и не разглашать информацию об уязвимости до нашего совместного публичного объявления.

Обзор Архитектуры Безопасности

Сервер Phantom спроектирован с учетом следующих принципов безопасности:

1. Минимальное доверие (Zero-Trust)

  • E2E Шифрование: Сервер никогда не видит и не хранит содержимое сообщений или приватные ключи пользователей. Вся криптография происходит на стороне клиента.
  • Минимизация метаданных: Сервер хранит только необходимый минимум информации для маршрутизации сообщений и обнаружения контактов (например, публичные pre-key бандлы и хэши пользователей).
  • Кратковременное хранение: Сообщения, ожидающие доставки оффлайн-пользователям, хранятся в зашифрованном виде (для получателя) и удаляются сразу после доставки.

2. Защита Серверного Приложения

  • Безопасность API:
    • Все gRPC-вызовы требуют цифровой подписи клиента (Dilithium5), что предотвращает подделку запросов.
    • Внедрен rate limiting для защиты от брутфорс-атак и злоупотреблений.
    • Размер входящих сообщений строго ограничен для предотвращения атак на исчерпание ресурсов.
  • Безопасность Транспорта:
    • Все коммуникации между клиентом и сервером защищены с помощью TLS 1.3.
    • Поддерживается транспорт QUIC для уменьшения поверхности атаки (по сравнению с TCP).
  • Безопасность Базы Данных:
    • Сервер использует параметризованные запросы для предотвращения SQL-инъекций.
    • Доступ к базе данных ограничен минимально необходимыми правами.

3. Защита от DoS-атак

  • Аутентификация запросов: Большинство ресурсоемких операций требуют валидной цифровой подписи, что значительно усложняет проведение DoS-атак.
  • Управление ресурсами: Сервер контролирует количество одновременных подключений и запросов от одного клиента.

Вне области действия (Out of Scope)

Следующие проблемы в настоящее время считаются вне области действия нашей программы безопасности:

  • Уязвимости, требующие физического доступа к серверной инфраструктуре.
  • Отчеты сканеров безопасности без предоставления рабочего PoC.
  • Проблемы, связанные с конфигурацией развертывания (например, слабые пароли SSH на сервере, где развернут Phantom). Операторы серверов несут ответственность за безопасность своей инфраструктуры.
  • Уязвимости в сторонних зависимостях (пожалуйста, сообщайте о них напрямую разработчикам соответствующих библиотек).

Мы ценим вашу помощь в обеспечении безопасности экосистемы Phantom.

There aren’t any published security advisories