セキュリティとバグバウンティ
Personal Device Bridgeは、言葉ではなく、ご自身で確かめられる方法で信頼を得たいと考えています。このページでは、データがどのように守られているか、何がレビュー済みで何が未実施か、ダウンロードしたソフトウェアの検証方法、そして프로젝트팀포유 (Project Team For You)への脆弱性の報告方法と、有効な報告への報奨金についてご説明します。
データ保護の仕組みをわかりやすく
ペアリングはPCに表示されるQRコードから始まります。QRコードには2分で失効する使い捨ての秘密値が含まれているため、実際に画面を見た端末だけがペアリングできます。続いて両方の画面に同じ6桁のコードが表示され、一致しているかをご自身で確認します。
- すべての接続はNoiseプロトコル(X25519、ChaCha20-Poly1305、BLAKE2s)でエンドツーエンド暗号化されます。端末ごとに外部へ出ない固有の鍵があり、端末同士はIPアドレスや名前、アカウントではなく、この鍵で相手を識別します。
- 接続ごと、データストリームごとに新しい鍵を使います(前方秘匿性)。後から鍵が盗まれても、過去に記録された通信は復号できません。
- 暗号化はネットワーク層の上で行われるため、Wi-Fiでも、インターネット経由(QUIC、TCP、WebRTC)でも、当社のランデブーサービスを経由する場合でも、同じように保護されます。ランデブーサービスは中身を読めない封印済みメッセージを中継するだけです。
- ペアリング済みでも何でもできるわけではありません。各端末には許可した権限だけが与えられ、リモート入力とカメラはセッションごとに同意を求めます。
- 受信したファイル、リンク、クリップボードのデータは使用前に検査されます。ダウンロードフォルダの外には出られず、危険な種類のリンクは拒否され、サイズにも上限があります。
詳しい技術仕様と脅威モデルはセキュリティ文書にまとめており、研究者や監査人に提供しています。
監査の状況
見栄えよりも正確さを優先してお伝えします。
- 社内セキュリティレビュー:実施済みです。設計、ペアリング、セッション暗号化、権限、入力検証を文書化された脅威モデルに照らしてレビューし、セキュリティ規則は変更のたびに実行される自動テストで確認しています。
- 自動チェック:変更のたびに依存関係の脆弱性情報とライセンスを確認し、信頼できない入力を読み込む部分は毎週ファジングしています。
- 外部監査:バージョン1.0の前に実施する予定で、まだ受けていません。完了したら、監査機関、範囲、指摘事項の概要をこのページで公開します。
それまでPersonal Device Bridgeはプレビュー版です。非常に機密性の高いデータに使う前に、この点をご考慮ください。
ダウンロードしたファイルを検証する
ダウンロードしたファイルが本物かどうか、当社の言葉を信じるだけで済ませる必要はありません。
- チェックサム:各リリースには全ファイルを対象としたSHA256SUMSファイルが含まれ、お手元のファイルが当社の公開したものとまったく同じかを確認できます。
- 再現可能なビルド:Linux版コマンドラインツールは決定的にビルドされます。リリースタグ時点のソースコードがあれば誰でも再ビルドしてビット単位で同一のファイルを得られます。自動チェックが異なる環境で2回ビルドし、1バイトでも違えば失敗とします。
- ビルドの来歴証明:リリースワークフローは、すべてのファイルに署名付きのSLSA来歴証明(Sigstore)を付けるよう構成されており、どのワークフローとコミットから作られたかを記録します。「gh attestation verify」コマンドで確認できます。GitHubはソースリポジトリが公開されるとこの機能を提供します。有効になったらこのページでお知らせします。
- コード署名:リリースパイプラインでWindows用プログラムとインストーラーにAuthenticode署名(Azure Artifact Signing)を行います。実行前に、ファイルのプロパティ →「デジタル署名」で発行元を確認できます。
WindowsとAndroidのビルドはまだ再現可能ではなく、今後対応する予定です。bashとPowerShellによる手順付きの検証方法は再現可能ビルドのガイドにまとめており、ご要望に応じて提供します。
継続的なテスト
他の端末やネットワークから届くデータを読むすべてのデコーダー(メッセージのエンベロープ、ペアリングリンク、端末検出のビーコン、ファイル名、機能ごとのメッセージ)は、毎週libFuzzerでファジングしています。不正な入力を何百万通りも与え、クラッシュや安全チェックの不備を見つけ出します。
さらに変更のたびに、WindowsとLinuxで単体・結合・エンドツーエンドのテストを実行しています。実際の2つのプロセスがネットワーク越しにペアリングし、ファイルを転送するテストも含まれます。
対象範囲
次の対象で、ユーザーのセキュリティやプライバシーを損なうおそれのある問題をご報告ください。
- コアエンジン:端末のIDと鍵の保管、QRペアリング、暗号化セッション、通信プロトコル、トランスポート(QUIC、TCP、WebRTC)、端末検出、信頼と権限、そしてすべての機能(ファイル転送、クリップボード、リンク、Continue、MyDrop、SmartPrint、ファイルブラウザー、通知、リモート入力、カメラ)。
- アプリ:pdbコマンドラインツール、Windowsデスクトップアプリとインストーラー、Androidアプリ。
- インターネット経由の接続のために当社が運営するランデブーサービス。
- このウェブサイト(personaldevicebridge.com)。
- リリース工程:ビルドとリリースのワークフロー、コード署名、チェックサム、来歴証明。
特に関心があるのは次のような問題です。QRコードを見ずにペアリングできる、暗号化や端末認証を破れる、ペアリング済み端末が許可された範囲を超えて動作する、意図したフォルダ外のファイルを読み書きできる、受信データを通じてコードを実行できる、ランデブーサービスがメッセージの内容を知る・改ざんできる。
対象外
- 大量のトラフィックによるサービス妨害、当社が運営するサービスへの負荷テスト、スパム。
- 当社チームやユーザーに対するソーシャルエンジニアリングやフィッシング、物理的な攻撃。
- すでに侵害された端末やユーザーアカウント(例:ユーザー権限で動作するマルウェア)、root化・脱獄したスマートフォン、ロック解除済み端末への物理的アクセスを前提とする攻撃。
- 端末の存在やトラフィック量など、設計上ローカルネットワークから見える情報。
- セキュリティ文書で既に公表している制限事項(より深刻な影響を示した場合を除く)。
- サードパーティのプラットフォーム自体の不具合(Cloudflare、Railway、GitHub、Google)は各社にご報告ください。当社の使い方に起因する問題は対象です。
- セキュリティ上の影響が示されていない報告:静的ページのヘッダー不足、メールのSPF/DMARC設定、self-XSS、バージョン情報の表示、概念実証のないスキャナーの出力。
報告方法
件名を「[SECURITY] 簡単なタイトル」として、[email protected] 宛てに韓国語または英語でお送りください。次の内容を含めてください。
- 影響を受けるアプリまたはコンポーネントとそのバージョン
- 問題の内容と、攻撃者がそれを使って何ができるか(CVSSベクトルがあれば歓迎します)
- 手順を追った再現方法または概念実証と、テストしたプラットフォーム
- クレジット表記の希望の有無と方法
公開のIssueやSNSで脆弱性を報告しないでください。
暗号化:PGP鍵はまだ公開していません。公開する際は、このウェブサイトの /.well-known/ フォルダに置き、security.txt(personaldevicebridge.com/.well-known/security.txt)に記載します。それまでの間、報告に機微な攻撃の詳細が含まれる場合は、まずそれを除いた短いメールをお送りください。安全な連絡手段を一緒に決めます。
ソースコードはプロプライエタリ(非公開)です。調査や報告内容の確認のためにソースコードの閲覧が必要な場合はお知らせください。個別に検討します。
報告後の流れ
- 報告を受領したことを72時間以内にお知らせします。
- 7日以内に有効性、深刻度、影響を受けるバージョンを判定し、解決するまで少なくとも14日ごとに状況をお知らせします。
- 判定からの修正目標:緊急(Critical)は30日以内(可能であれば7日以内に緩和策)、重要(High)は60日以内、警告(Medium)は90日以内、注意(Low)は以降の定期リリースで対応します。
当社は小さなチームです。目標期限を守れない場合は、その理由と修正の見込み時期をお伝えします。
報奨金
報奨金は当社の裁量で支払います。影響の大きさ、報告の質、当社が既に把握していた問題かどうかによって決まり、同じ問題を最初に報告した方が対象です。深刻度は最新リリースを基準にCVSS(v3.1またはv4.0)で評価し、その根拠をご説明します。
| 深刻度 | CVSSスコア | 報奨金(韓国ウォン) | 目安(米ドル) |
|---|---|---|---|
| 緊急 | 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 | 最大 約US$35 |
重複した報告、対象外の問題、本ポリシーに反する報告には報奨金を支払いません。複数の問題を連鎖させたものは、最終的な深刻度で1件の発見として扱います。
報奨金は韓国ウォンで支払い、米ドル額は目安です。支払いには韓国の税法と銀行の手続きに必要な情報が必要で、法令や制裁で禁じられている場合は支払えません。報奨金を慈善団体へ寄付するようご依頼いただくこともできます。
セーフハーバー(免責)
本ポリシーを誠実に守って行われた調査は、許可されたものとみなします。当社はそれを理由に法的措置をとったり支援したりせず、捜査機関に通報することもありません。本ポリシーに従った調査について第三者が措置をとった場合は、当社の許可を得た調査であったことを明らかにします。
誠実に行動するとは、次のことを意味します。
- ご自身の端末、インストール、ペアリング、ランデブーのメールボックスだけをテストする。
- 他人のデータにアクセスしたり、変更・保存したりしない。偶然見つけた場合は直ちに中止し、当社に知らせて削除する。
- 当社のサービスを妨害したり、恒久的な変更を残したりしない。
- 公開する前に、修正のための時間を当社に与える。
- 公開しないことと引き換えに金銭を要求しない。
当社が所有していないシステムのテストを許可することはできません。判断に迷う場合は、事前にご相談ください。
協調的な開示
詳細を公開する前に、報告日から90日間(それより前に修正版がリリースされた場合はその時点まで)お待ちください。修正が複雑な場合は短い延長をお願いすることがあり、公開日は報告者と相談して決めます。
修正後はリリースノートでセキュリティアドバイザリを公開し、匿名をご希望でない限り報告者のお名前を掲載します。実際に悪用されている場合は、報告者と協議のうえ早めに公開することがあります。
ツール向けの連絡先
連絡先は標準の機械可読形式(RFC 9116)のsecurity.txt(personaldevicebridge.com/.well-known/security.txt)でも公開しており、このページを参照しています。韓国語と英語で対応します。
殿堂入り
ユーザーの安全を守るためにご協力いただいたすべての方に感謝します。有効な問題を報告した研究者は、ご本人の同意を得てここに掲載します。
まだ掲載された報告者はいません。最初の一人になってみませんか。