Безопасность и программа bug bounty
Мы хотим, чтобы Personal Device Bridge заслуживал доверия благодаря тому, что вы можете проверить сами. На этой странице рассказано, как защищены ваши данные, что уже проверено, а что ещё нет, как проверить загруженную программу и как сообщить об уязвимости компании 프로젝트팀포유 (Project Team For You) — с вознаграждением за подтверждённые находки.
Как защищены ваши данные — простыми словами
Сопряжение начинается с QR-кода на экране ПК. В нём содержится одноразовый секрет, который перестаёт действовать через две минуты, поэтому выполнить сопряжение может только устройство, действительно видевшее ваш экран. Затем оба экрана показывают одинаковый 6-значный код, и вы подтверждаете, что они совпадают.
- Каждое соединение защищено сквозным шифрованием по протоколу Noise (X25519, ChaCha20-Poly1305, BLAKE2s). У каждого устройства есть собственный ключ, который никогда его не покидает, и устройства узнают друг друга именно по этому ключу, а не по IP-адресу, имени или учётной записи.
- Для каждого соединения и каждого потока данных используются новые ключи (прямая секретность): ключ, украденный позже, не позволит расшифровать ранее записанный трафик.
- Шифрование работает поверх сети, поэтому защищает одинаково в Wi-Fi, через интернет (QUIC, TCP или WebRTC) и через наш сервис-посредник, который лишь пересылает запечатанные сообщения и не может их прочитать.
- Сопряжение не даёт права на всё: каждое устройство получает только разрешения, которые вы выдали, а удалённый ввод и камера запрашивают согласие в каждом сеансе.
- Полученные файлы, ссылки и данные буфера обмена проверяются перед использованием: они не могут выйти за пределы папки загрузок, опасные типы ссылок отклоняются, а размеры ограничены.
Полная техническая спецификация и модель угроз описаны в нашей документации по безопасности, которую мы предоставляем исследователям и аудиторам.
Статус аудита
Мы предпочитаем точность громким заявлениям:
- Внутренняя проверка безопасности: проведена. Архитектура, сопряжение, шифрование сеансов, разрешения и проверка входных данных проанализированы по письменной модели угроз, а правила безопасности покрыты автоматическими тестами, которые запускаются при каждом изменении.
- Автоматические проверки: при каждом изменении проверяются уведомления об уязвимостях и лицензии зависимостей, а компоненты, читающие недоверенные данные, еженедельно проходят фаззинг.
- Внешний аудит: запланирован до выхода версии 1.0 и пока не проводился. Когда он завершится, мы опубликуем здесь имя аудитора, охват и краткие итоги.
До тех пор Personal Device Bridge остаётся предварительной версией. Учитывайте это, прежде чем доверять ему особо конфиденциальные данные.
Проверьте то, что скачали
Вам не нужно верить нам на слово, чтобы убедиться в подлинности загрузки:
- Контрольные суммы: в каждый выпуск входит файл SHA256SUMS со всеми его файлами, чтобы вы могли убедиться, что ваша копия в точности совпадает с опубликованной.
- Воспроизводимые сборки: утилита командной строки для Linux собирается детерминированно. Любой, у кого есть исходный код по тегу выпуска, может пересобрать её и получить побитово идентичный файл; автоматическая проверка собирает её дважды в разных окружениях и завершается ошибкой, если различается хотя бы один байт.
- Происхождение сборки: наш процесс выпуска настроен прикладывать к каждому файлу подписанное свидетельство происхождения SLSA (Sigstore) с указанием рабочего процесса и коммита, из которых он собран; проверить его можно командой «gh attestation verify». GitHub включает эту возможность, когда репозиторий с исходным кодом становится публичным; мы сообщим здесь, когда она заработает.
- Подпись кода: наш конвейер выпуска подписывает программы и установщики для Windows с помощью Authenticode (Azure Artifact Signing); перед запуском файла издателя можно проверить в разделе «Свойства» → «Цифровые подписи».
Сборки для Windows и Android пока не воспроизводимы; эта работа запланирована. Пошаговые инструкции по проверке для bash и PowerShell есть в нашем руководстве по воспроизводимым сборкам — предоставим по запросу.
Непрерывное тестирование
Каждый декодер, читающий данные с другого устройства или из сети, — конверты сообщений, ссылки сопряжения, маяки обнаружения, имена файлов и сообщения отдельных функций — еженедельно проходит фаззинг с помощью libFuzzer, который подаёт на вход миллионы искажённых данных, чтобы найти сбои и неработающие проверки безопасности.
Кроме того, при каждом изменении в Windows и Linux запускаются модульные, интеграционные и сквозные тесты, в том числе тесты, в которых два настоящих процесса выполняют сопряжение и передают файлы по сети.
Что входит в программу
Сообщайте обо всём, что может навредить безопасности или конфиденциальности наших пользователей, в следующих компонентах:
- Основной движок: идентификация устройств и хранение ключей, сопряжение по QR-коду, зашифрованные сеансы, протокол обмена, транспорты (QUIC, TCP, WebRTC), обнаружение устройств, доверие и разрешения, а также все функции (передача файлов, буфер обмена, ссылки, Continue, MyDrop, SmartPrint, обзор файлов, уведомления, удалённый ввод, камера).
- Приложения: утилита командной строки pdb, настольное приложение для Windows с установщиками и приложение для Android.
- Сервис-посредник, который мы поддерживаем для соединений через интернет.
- Этот сайт, personaldevicebridge.com.
- Процесс выпуска: рабочие процессы сборки и публикации, подпись кода, контрольные суммы и свидетельства происхождения.
Особенно нас интересуют: сопряжение без просмотра QR-кода, взлом шифрования или аутентификации устройств, выход сопряжённого устройства за пределы выданных разрешений, чтение или запись файлов вне предназначенной папки, выполнение кода через полученные данные, а также возможность для сервиса-посредника узнать или изменить содержимое сообщений.
Что не входит в программу
- Отказ в обслуживании за счёт одного лишь объёма трафика, нагрузочное тестирование наших сервисов и спам.
- Социальная инженерия или фишинг против нашей команды или пользователей, а также физические атаки.
- Атаки, требующие уже скомпрометированного устройства или учётной записи (например, вредоносной программы, работающей от имени пользователя), телефона с root-доступом или джейлбрейком либо физического доступа к разблокированному устройству.
- Сведения, видимые в локальной сети по замыслу, например наличие устройства или объём трафика.
- Ограничения, уже описанные в нашей документации по безопасности, если только вы не покажете более серьёзные последствия.
- Ошибки самих сторонних платформ (Cloudflare, Railway, GitHub, Google) — сообщайте о них соответствующему поставщику. То, как мы их используем, входит в программу.
- Отчёты без подтверждённого влияния на безопасность: отсутствующие заголовки на статических страницах, настройки SPF/DMARC почты, self-XSS, номера версий или результаты сканеров без доказательства концепции.
Как сообщить
Напишите на [email protected] с темой «[SECURITY] краткое название» на корейском или английском языке. Пожалуйста, укажите:
- затронутое приложение или компонент и его версию;
- в чём заключается проблема и что может сделать с её помощью злоумышленник (вектор CVSS приветствуется);
- пошаговое воспроизведение или доказательство концепции, а также платформу, на которой вы проверяли;
- хотите ли вы, чтобы вас упомянули, и если да, то как.
Пожалуйста, не сообщайте об уязвимостях через публичные задачи или социальные сети.
Шифрование: мы пока не опубликовали PGP-ключ. Когда опубликуем, он появится в папке /.well-known/ этого сайта и будет указан в personaldevicebridge.com/.well-known/security.txt. До тех пор, если ваш отчёт содержит чувствительные детали эксплуатации, сначала пришлите короткое письмо без них, и мы договоримся с вами о защищённом канале.
Наш исходный код проприетарный. Если для исследования или подтверждения находки вам нужен доступ к нему, напишите нам — мы рассматриваем каждый запрос индивидуально.
Что происходит после отчёта
- Мы подтверждаем получение отчёта в течение 72 часов.
- В течение 7 дней мы оцениваем его — обоснованность, серьёзность и затронутые версии — и сообщаем о ходе работы не реже чем раз в 14 дней до устранения.
- Сроки исправления с момента оценки: критическая — до 30 дней (по возможности со смягчающими мерами в течение 7 дней), высокая — до 60 дней, средняя — до 90 дней, низкая — в одном из следующих плановых выпусков.
Мы небольшая команда. Если мы не укладываемся в срок, мы объясним причину и сообщим, когда ожидать исправления.
Вознаграждения
Вознаграждения выплачиваются на наше усмотрение. Они зависят от последствий, качества отчёта и того, знали ли мы о проблеме раньше; право на вознаграждение имеет тот, кто первым сообщил о проблеме. Серьёзность мы оцениваем по CVSS (v3.1 или v4.0) для последнего выпуска и объясняем вам нашу оценку.
| Серьёзность | Оценка CVSS | Вознаграждение (KRW) | Примерно (USD) |
|---|---|---|---|
| Критическая | 9.0 – 10.0 | ₩1,000,000 – ₩2,000,000 | US$700 – 1,400 |
| Высокая | 7.0 – 8.9 | ₩300,000 – ₩1,000,000 | US$200 – 700 |
| Средняя | 4.0 – 6.9 | ₩100,000 – ₩300,000 | US$70 – 200 |
| Низкая | 0.1 – 3.9 | Зал славы, до 50 000 ₩ | до ~35 долл. США |
Повторные отчёты, проблемы вне программы и отчёты, нарушающие эту политику, не вознаграждаются. Несколько проблем, объединённых в цепочку, считаются одной находкой с итоговой серьёзностью.
Вознаграждения выплачиваются в южнокорейских вонах; суммы в долларах приблизительны. Для выплаты нужны сведения, которых требуют налоговое законодательство Кореи и наш банк; выплата невозможна там, где её запрещают закон или санкции. Вы также можете попросить нас передать вознаграждение благотворительной организации.
Правовая защита исследователей
Если вы добросовестно стараетесь соблюдать эту политику, мы считаем ваше исследование разрешённым. Мы не будем инициировать или поддерживать судебные иски против вас и не станем сообщать о вас в правоохранительные органы. Если третья сторона предпримет действия против вас из-за исследования, проведённого по этой политике, мы заявим, что у вас было наше разрешение.
Действовать добросовестно значит, что вы:
- тестируете только свои устройства, установки, сопряжения и почтовые ящики сервиса-посредника;
- не получаете доступ к чужим данным, не изменяете и не храните их — а если наткнулись на них, прекращаете, сообщаете нам и удаляете их;
- не нарушаете работу наших сервисов и не оставляете долговременных изменений;
- даёте нам время на исправление до раскрытия информации;
- никогда не требуете оплаты за нераскрытие.
Мы не можем разрешить тестирование систем, которые нам не принадлежат. Если сомневаетесь, сначала спросите нас.
Скоординированное раскрытие
Пожалуйста, дайте нам 90 дней с момента отчёта — или до выхода исправления, если это произойдёт раньше, — прежде чем публиковать подробности. Если исправление сложное, мы можем попросить о небольшой отсрочке и согласуем дату с вами.
После исправления мы публикуем уведомление о безопасности в примечаниях к выпуску и указываем вас как автора находки, если вы не предпочитаете остаться анонимным. Если проблема активно эксплуатируется, мы можем раскрыть её раньше вместе с вами.
Контакты для автоматических средств
Наши контакты также опубликованы в стандартном машиночитаемом формате (RFC 9116) по адресу personaldevicebridge.com/.well-known/security.txt, который ссылается на эту страницу. Мы отвечаем на корейском или английском языке.
Зал славы
Спасибо всем, кто помогает защищать наших пользователей. Исследователи, сообщившие о подтверждённых проблемах, указываются здесь с их согласия.
Пока никто не указан — ваш отчёт может стать первым.