Сервер Phantom играет ключевую роль в экосистеме, обеспечивая первоначальное установление контактов, доставку оффлайн-сообщений и поддержку P2P-сети. Несмотря на то, что сервер спроектирован с минимальным доверием (zero-trust) и не имеет доступа к содержимому сообщений, его безопасность и доступность являются нашим главным приоритетом.
Этот документ описывает процесс ответственного раскрытия информации об уязвимостях, а также ключевые аспекты безопасности серверного приложения.
Мы предоставляем обновления безопасности только для последней стабильной версии, развернутой из main ветки. Администраторам серверов Phantom настоятельно рекомендуется следить за обновлениями и своевременно их применять.
| Версия | Поддержка безопасности |
|---|---|
Последний main commit |
✅ Да |
| Все предыдущие версии | ❌ Нет |
Мы приветствуем и поощряем ответственное раскрытие информации об уязвимостях, обнаруженных в серверном программном обеспечении Phantom.
Пожалуйста, НЕ создавайте публичные GitHub Issues для сообщения об уязвимостях. Это может подвергнуть риску существующих операторов серверов и их пользователей.
Вместо этого, пожалуйста, отправьте нам электронное письмо на адрес security@snaart.com. Пожалуйста, используйте префикс [PHANTOM-SERVER] в теме письма.
Чтобы помочь нам оперативно отреагировать, пожалуйста, предоставьте как можно больше из следующей информации:
- Тип уязвимости: Например, "Удаленное выполнение кода (RCE)", "SQL-инъекция", "Отказ в обслуживании (DoS)", "Раскрытие информации", "Некорректная авторизация".
- Подробный PoC (Proof-of-Concept): Четкие шаги или скрипт для воспроизведения уязвимости.
- URL и параметры запроса: Полный пример запроса (gRPC, HTTP), который вызывает уязвимость.
- Потенциальное воздействие: Ваша оценка того, как уязвимость может быть использована злоумышленником (например, "позволяет прочитать хэши пользователей" или "приводит к отказу сервера").
- Предложения по исправлению: Если у вас есть идеи, как исправить проблему, мы будем рады их услышать.
- Подтверждение: Мы стремимся подтвердить получение вашего отчета в течение 24-48 часов.
- Анализ: Наша команда проанализирует уязвимость, определит ее серьезность по шкале CVSS и разработает план по ее устранению.
- Исправление: Мы разработаем и протестируем патч.
- Раскрытие: Мы скоординируем с вами дату публичного раскрытия. Наш процесс включает:
- Уведомление операторов серверов о предстоящем обновлении безопасности (без раскрытия деталей уязвимости).
- Выпуск новой версии с исправлением.
- Публикация бюллетеня безопасности (security advisory) с описанием уязвимости и благодарностью в ваш адрес (если вы этого желаете).
Мы просим вас соблюдать эмбарго и не разглашать информацию об уязвимости до нашего совместного публичного объявления.
Сервер Phantom спроектирован с учетом следующих принципов безопасности:
- E2E Шифрование: Сервер никогда не видит и не хранит содержимое сообщений или приватные ключи пользователей. Вся криптография происходит на стороне клиента.
- Минимизация метаданных: Сервер хранит только необходимый минимум информации для маршрутизации сообщений и обнаружения контактов (например, публичные pre-key бандлы и хэши пользователей).
- Кратковременное хранение: Сообщения, ожидающие доставки оффлайн-пользователям, хранятся в зашифрованном виде (для получателя) и удаляются сразу после доставки.
- Безопасность API:
- Все gRPC-вызовы требуют цифровой подписи клиента (
Dilithium5), что предотвращает подделку запросов. - Внедрен rate limiting для защиты от брутфорс-атак и злоупотреблений.
- Размер входящих сообщений строго ограничен для предотвращения атак на исчерпание ресурсов.
- Все gRPC-вызовы требуют цифровой подписи клиента (
- Безопасность Транспорта:
- Все коммуникации между клиентом и сервером защищены с помощью TLS 1.3.
- Поддерживается транспорт QUIC для уменьшения поверхности атаки (по сравнению с TCP).
- Безопасность Базы Данных:
- Сервер использует параметризованные запросы для предотвращения SQL-инъекций.
- Доступ к базе данных ограничен минимально необходимыми правами.
- Аутентификация запросов: Большинство ресурсоемких операций требуют валидной цифровой подписи, что значительно усложняет проведение DoS-атак.
- Управление ресурсами: Сервер контролирует количество одновременных подключений и запросов от одного клиента.
Следующие проблемы в настоящее время считаются вне области действия нашей программы безопасности:
- Уязвимости, требующие физического доступа к серверной инфраструктуре.
- Отчеты сканеров безопасности без предоставления рабочего PoC.
- Проблемы, связанные с конфигурацией развертывания (например, слабые пароли SSH на сервере, где развернут Phantom). Операторы серверов несут ответственность за безопасность своей инфраструктуры.
- Уязвимости в сторонних зависимостях (пожалуйста, сообщайте о них напрямую разработчикам соответствующих библиотек).
Мы ценим вашу помощь в обеспечении безопасности экосистемы Phantom.