「ぷまソフト」が送信していたデータ及び今後の対応について(2025/10/12)

はじめに

2025年10月1日から2025年10月7日までの7日間に渡り、オリジナル3Dモデル「ピューマのぷまちゃん」に付属していたソフト「ぷまソフト」の配布により、ユーザーの皆様の安全を脅かしたことについて、お詫び申し上げます。

当該ソフトウェアの配布は停止されており、全ユーザーに対し、ログを含めた全データ及び痕跡の手動の削除方法を告知し、またPCの操作に慣れないユーザーの救済のため、削除用ソフトウェアの入手方法を告知しております。

「ぷまソフト」は以下に説明させていただく通り、一切の個人情報を取得しておらず、いかなるサービスのログイン情報をも取得しておりませんでした。従って、私及び開発に携わった全員の知る範囲において、ユーザーの皆様に実際の被害は発生しておりません。

しかし、仮に本ソフトウェアに脆弱性が潜んでいた場合、本ソフトウェアはユーザーの皆様を危険に晒す可能性があり、そうでなくとも、本ソフトウェアの挙動は技術者倫理に著しく反するものでした。

加えて、本ソフトウェアについての事前説明、事後対応は、共に拙速、稚拙で、ユーザーの皆様に大変な不安及び不快感を与え、非ユーザーの皆様にも大変ご迷惑をお掛けするものでした。

従って私は、本ソフトウェアを配布するべきでなく、当初の説明も単に当時受けていた指摘に対応するのみのもので、本ソフトウェアの本質的問題を理解していたものではありませんでした。

また、BOOTHログイン機能のあるソフトの「配布」は、BOOTH利用規約に違反することが運営事務局によって示されました。
※補足:本ソフトウェアの「利用」により、アカウントの制限などを行うことはないとBOOTH運営事務局より回答を得ています。ありがとうございます。

加えて、BOOTH利用規約に違反しないと推測された機能についても、私の推測行為により他のソフトウェア・SNSアカウント等の運営者に対してまで無用な批判を向けることとなりました。

その結果として、BOOTH運営事務局からそれら他ソフトへのガイドラインが示されるまでの間、それら他ソフトの一部は停止することとなり、BOOTH運営事務局の皆様を筆頭とした皆様に多大なるご迷惑をお掛けしました。

これらの点について、重ねてお詫び申し上げます。この度は大変申し訳ありませんでした。

取得・サーバー送信していたデータ及び目的

「ぷまソフト」は、以下のデータを取得・サーバー送信していました。

1「ぷまソフト」初回起動時に決定されるランダムな文字列(clientID)
完全ランダムな16進数の文字列で、個人情報を利用しないユーザーの識別のために利用していました。一切の個人情報等を利用しないため、厳密には他のユーザーと同一になる可能性がありますが、同一の文字列が生成される可能性は5.31澗分の1と極めて低確率なことから、他のユーザーと重複しないことを前提に設計されていました。

2 BOOTHライブラリに発見したダウンロードリンクの末尾7桁の数字
後述する「対応衣装データ」の取得のため利用していました。商品の一覧や購入履歴ではなく、ZIPファイルに紐付く7桁の数字を送信していました。

3 対応衣装データ
全「ぷまソフト」ユーザーの中で初めてそのZIPファイルをダウンロードした場合、ぷまソフトは「対応衣装データ」を作成します。対応衣装データには以下の情報が含まれ、商品データそのものや個人情報を含みません。

ZIPファイル内のUnitypackageの位置・ハッシュ ZIPファイルが紐付く商品番号 衣装Prefabが対応するアバターの名称 衣装の色の名称 衣装PrefabのGUID Modular Avatarでsetup outfit処理が必要かどうか カラーバリエーションの名称 カラーバリエーションのGUID 依存するGUID 含まれるGUID及びそのファイルのAssets以下のパス

※GUIDとは、Unityが全てのファイルに付与するランダムな文字列のこと

4 対応衣装データのバージョン
将来の更新に備え、現在は常に「ver.1」となる数値を送信していました。

5 エラーログ及びBOOTHニックネーム
エラーが発生した場合、BOOTHでの問い合わせ画面に表示される「ニックネーム」と共にエラーログを送信していました。問い合わせ対応を目的としたもので、この情報はwebhook経由で私が閲覧することができるDiscordサーバーに送信され、問い合わせを受けた際に閲覧されていました。
私には1~4の情報を閲覧する権限がなく、私の他に閲覧した人物もおらず、削除処理が完了するまでの間にもおりません。

6 ぷまソフトのバージョン
ぷまソフトには過去に自動アップデート機能が存在しました。このため、ぷまソフトのバージョンを送信していました。なお、当機能を削除したバージョンを配信済みで、今後ぷまソフトを外部からアップデートすることはできません。

ぷまソフトがサーバーに送信していた情報は以上です。BOOTHのログイン情報などの個人情報は、Microsoft Edge Webview2を通してBOOTHサーバーと直接やり取りされており、ぷまソフトのコードが関与することはありません。

ぷまソフトが外部に送信している情報についての説明は、ぷまソフトがインターネットに対して行う通信を監視することで検証できます。

ぷまソフトがユーザーの端末内のみに保存していた情報

ぷまソフトは、当時提供された商品説明の通り、ユーザーが所有するデータを整理して表示、ダウンロード及びUnity Projectの作成を行うソフトでした。その目的を達成する為、ユーザーの端末内に以下の情報を保存していました。これらの情報がサーバーに送信されたことはありません。

所有する商品の名称、サムネイル、商品ID、BOOTHのダウンロードリンクの末尾7桁の数字、対応衣装データの有無、対応するアバター、対応衣装データ、動作に必要なmaterialpackなどのハッシュ、テストデータかどうか、Unitypackageのハッシュ、Unitypackageのファイル名、Unitypackageのファイル位置、GUID一覧とパス、ぷまソフトがダウンロードし未削除のUnitypakcageの一覧、サイズ、最後に利用した日、本日のデータダウンロード回数、clientID、チュートリアルが終了しているかどうか、端末内のぷまソフトのデータ構造のバージョン

保存場所:%localappdata%\SuyariSoftware\PmmaAvatarCreator

これらの情報は、商品の名称と画像が一覧で表示されることから、特にユーザーのプライバシー上の懸念となりました。ローカルへの書き込みログは、サーバーへの送信と誤認しやすく、全体的に表示不十分な中でも、この区分は特に気を付けて明記するべきでした。

ぷまソフト以外が送信していた情報

ぷまソフトの動作が大きく取り上げられる以前に、アバターの発売後になってぷまソフトの情報を知ったテスター・アンバサダー・対応アイテム作者及びその他の関係主体から、ぷまソフトの挙動について批判的意見を受けました。

これを受け、ぷまソフトはデータの不正共有防止をもう一つの目的としていましたが、性悪説的な実装を、性善説的な正規品の所有証明機能へと切り替えることを決定し、2025年10月6日15時以降から7日午後の12時間程度の時間、NDMFを利用してハッシュ値をサーバーに送信する機能を追加し、X(Twitter)及びnoteで告知していました。この機能も配布を停止し、削除方法を案内済みです。

ハッシュとは元の値を不可逆に暗号化したもので、同じ値を暗号化した場合は毎回同じ結果が得られます。この場合はBlueprint IDが鍵となり、Blueprint IDを知る人、つまりアバターをアップロードした人本人のみが、サーバーにあるハッシュを自分のものと証明することができます。サーバー管理者はBlueprint IDを知ることができず、従ってアバターを特定することもできません。また、仮にBlueprint IDを知ったとして、入手可能な情報や可能な操作はありません。

しかし、本機能の実装中にスクレイピング行為について大きな批判を受けた焦りから、本機能をあまりにも性急に公開したことで、ユーザーへの説明は不十分であり、オプトアウト方法も明示されませんでした。
※補足:当初受けた批判はスクレイピング行為に対するものが中心で、時間と共に批判の内容は変化していきました。前述の通り、スクレイピング行為は最終的な問題の中心ではありません。

「常駐」する挙動についての説明

ぷまソフトには、OSCを経由してアバターに現在時刻等の情報を送信し、VRChatでの体験を拡張する機能がありました。そのため、ユーザーがVRChatを利用する間は原則として起動している必要があると考え、ウィンドウを閉じても、BOOTH関連の部分が停止するのみでした。

ウィンドウを閉じた後もOSC機能は終了せず、完全な終了にはタスクトレイから「終了する」をクリックする、またはタスクマネージャー経由で終了することが必要でした。

このことは、単に「アバターの動作にはぷまソフトが必要であるため、アップロード後も削除しないように」とREADMEファイルに記載があったのみで、本件の中でも際立って説明が不十分であった点でした。

加えて、バグ等に対応する自動アップデート機能の為スタートアップアプリに登録をしていましたが、この内容もよく説明されませんでした。

このようなソフトウェアの配布に至った理由

私は、以下の3点においてこのソフトウェアについて誤認をしていました。現在の私の認識と共にご説明致します。

1 BOOTHログイン機能のある専用ブラウザの提供はBOOTH利用規約に違反しないという誤認
2 ソフトウェアに脆弱性が発生する可能性はないという誤認
3 法的説明、技術者倫理、ユーザーの認識の各点の混同

1について、私は当初、BOOTHにログインする機能のある、3Dモデルをプレビュー可能なブラウザーを提供することは問題ないと考えて、説明書等にも「BOOTH専用ブラウザー ぷまソフト」と記載していました。しかし、これは実際には誤っていました。このことはBOOTH運営事務局に事前に問い合わせるなどし、防止するべきことでした。

2について、私は当初、ソフトウェアの脆弱性という概念を十分に理解せず、私が悪意のあるアップデートをしなければ、ユーザーは安全なままであると誤解していました。意図しない動作である「バグ」の可能性は認識していましたが、外部の攻撃者への隙である「脆弱性」を認識していなかったためです。実際には、全てのソフトウェアには脆弱性が潜んでいる可能性があり、私に悪意がなくとも、悪意ある第三者の攻撃によりユーザーは危険に晒される可能性があります。

3について、私はBOOTHにおけるオリジナル3Dモデル及び関連ソフトウェア販売の利用規約同意の慣例を準用し、他の商品と同様、商品ページ内への記載のみをもって規約等への同意とみなし、また本ソフトウェアの目的、動作、BOOTHログインが必須であること、また取得するデータの説明等を行っていました。この慣例はBOOTHのみにおける極めてローカルなものであり、加えて、この内容は少なくともユーザー目線で、また技術者倫理の視点からはわかりにくいものであり、よりわかりやすく表記を行うべきでした。

加えて、どのデータがサーバーに送信されるか、どのデータがローカルに保存されるか、どのデータをそもそも取得しないか等についての詳細な説明は提供されておらず、透明性の低い状態にありました。データの取り扱いはできるだけ透明性を高く保つことが望ましく、セキュリティの観点からも説明して問題のない内容しか存在しなかったため、より詳細な説明が提供されるべきでした。

今後の対応について

当ショップの運営チームは既に解散しており、私 @nem_nem_nemri は、少なくとも1か月の間、ツイートを含めた全ての活動を停止します。

なお、本アバターの制作、関連ギミック開発、イラスト制作、アンバサダー、テスト、PR等にご協力いただいた皆様は運営チームに含まれません。これらの皆様は、発売前に本ソフトウェアの機能を知る機会がなく、本件と一切の関わりを持ちません。本ソフトウェアのテスター様も、発売前に本ソフトウェアの完全なバージョンを提供されたことはありません。

また、「ぷまソフト」は永久に配布を停止し、サーバーのデータは全て削除されます。

但し、データが削除された後も、ユーザーの保護の為、自動アップデート機能を含む、アンインストール以外のすべての機能を削除したバージョンを以後1年程度継続して配信します。

活動停止後においても、以下の対応は引き続き行っていきます。
・購入者様向けのテクニカルサポート、導入方法の説明
・ダイレクトメッセージ及びお問い合わせへの対応、返信
・バグ対応、修正
・既に購入いただいた、「ぷまソフト」以外のソフトウェアのサポート
・その他、購入者の利益を守るために必要と思われる対応

改めて、本ソフトウェアのユーザー様、本件に関係する各主体の皆様、本件を知った外部の皆様、及び関係するすべての皆様に対し、多大なるご迷惑、ご不安、ご心配の全てをお掛けしましたことを、深くお詫び申し上げます。


いいなと思ったら応援しよう!

コメント

2
コメントするには、 ログイン または 会員登録 をお願いします。
漁礁のプロフィールへのリンク
漁礁

Boothに問い合わせたところ、"販売者に直接お問い合わせください"とのことだったのでこちらで質問させて頂きます。 今回の件について、返金対応は行わないのでしょうか? 通常の場合ダウンロード商品の返金は行えないというBoothの規約ですが、今回の件はショップ側の規約違反など”通常の商品”では…

やがて捨てられる補助輪のプロフィールへのリンク

記事の作成及び公開お疲れ様でした。 色々な意見が投げかけられる中、投げ出さずに対応されたこと、対応の意思を示されたことを、わたしは立派だと感じます。 今後もまだ、過不足を感じてコメントする方もいるかとは思いますが、心ある言葉で建設的な意見が行われることを願っております。

2
「ぷまソフト」が送信していたデータ及び今後の対応について(2025/10/12)|ねむねむねむり
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1