ほとんどの人がVPNに求めるものはただ一つ、プライバシー保護です。FreeVPN.Oneは認証済みバッジと注目の掲載枠、そして10万件超のインストール数を誇り、一見すると安全な選択肢に見えました。しかしブラウザにインストールされた瞬間から、このツールは利用者を守るどころか、絶えず監視を続けていたのです。
Koidexが公開したFreeVPN.Oneのリスクレポートを見る
普段の自分のブラウジングを思い浮かべてみてください。企業の機密情報が入ったGoogleスプレッドシートを開いたり、銀行口座にログインしたり、出会い系アプリを閲覧したり、家族のプライベートな写真を見たり——。
そうした瞬間のすべてが スクリーンショットとして撮影され、本人の同意なく外部へ送信されていました。
それにもかかわらず、プライバシーポリシーには次のように記載されています。「開発者は、あなたのデータを収集または利用しないことを表明しています」
しかし実態はまったく正反対でした。
監視の仕組み
実際の動作は次の通りです。利用者がページを移動するたびに、この拡張機能は一連の不審な処理を実行していました。
気付かれないスクリーンショット取得
ページが読み込まれてから数秒後、バックグラウンドのトリガーがスクリーンショットを撮影し、ページURL、タブID、固有のユーザー識別子とともにaitd[.]one/brange.phpへ送信していました。ユーザーの操作もUI上の表示も一切なく、利用者が気付かないままバックグラウンドで撮影が行われていたのです。
この拡張機能は、スクリーンショット取得のために巧妙な2段階の仕組みを採用していました。まず、マニフェストに記述されたmatches: ["http://*/*", "https://*/*"]という広範なパターンにより、コンテンツスクリプトがあらゆるHTTP・HTTPSサイトに自動的に注入されます。ページ読み込み時、コンテンツスクリプトは遅延トリガーを実行します。
このコードはページ初期化からちょうど1.1秒待機した後、バックグラウンドのサービスワーカーに対して内部メッセージcaptureViewportを送信し、スクリーンショットの取得を要求します。この遅延によってページが完全にレンダリングされてから撮影が行われるため、収集される機密情報の「質」が最大化される仕組みです。バックグラウンドのサービスワーカーはこのメッセージを受け取ると、Chromeの特権APIchrome.tabs.captureVisibleTab()を使って実際にスクリーンショットを撮影していました。
「AI脅威検知」ボタンのクリック時
「Scan with AI Threat Detection」をタップすると、拡張機能はページ全体のスクリーンショットを撮影し、それをaitd[.]one/analyze.phpへアップロードしてサーバー側で解析していました。この点については、プライバシーポリシーにも「この機能はページのスクリーンショットとURLを同社の安全なサーバーへアップロードする場合がある」と一応記載されています。しかし記載されていないのは、この拡張機能がボタンをクリックするずっと前から、すでにはるかに多くのスクリーンショットをバックグラウンドで撮影し続けていたという事実です。UI上は「その場限りのローカルスキャン」であるかのように見せていますが、監視はすでにその時点で十分に進行していました。
野放しにされていた情報収集
インストール時および起動時、この拡張機能はIPジオロケーションAPIに位置情報を問い合わせ、デバイス情報を収集し、そのデータをbase64エンコードした分析情報としてaitd[.]one/bainit.phpへ送信していました。
最新版ではさらに検知が困難に
最新リリースでは、開発者がAES-256-GCM暗号化とRSA鍵ラッピングを導入し、通信中のデータを隠蔽するようになりました。動作そのものに変化はなく、依然としてあらゆるウェブサイト訪問時に密かにスクリーンショットを撮影していますが、この改修によってネットワーク監視によるデータ流出の検知は格段に難しくなっています。
過剰な権限要求とプライバシーリスク
VPN拡張機能が正当に必要とする権限はproxyやstorage程度ですが、この拡張機能は広範なデータ収集を可能にする権限をそれ以上に要求していました。
FreeVPN.Oneは<all_urls>、tabs、scriptingという3つの権限を要求しており、これらが揃うことで継続的な監視への扉が開かれます。
<all_urls>権限によって、この拡張機能は利用者が訪れるすべてのサイトにアクセスできるようになります。この広範な権限を使い、訪問先すべてにコンテンツスクリプトを注入できるようになるのです。そしてこの権限を利用して、開いたページごとにcaptureViewportメッセージを密かに送信し、利用者が気付かないままスクリーンショットの撮影を発生させていました。
実際にスクリーンショットを撮影するには、captureVisibleTab() APIを使うためのtabs権限と、JavaScriptを動的に注入するためのscripting権限も必要です。
スクリーンショットは、利用者を待ってはくれません。tabs権限はchrome.tabs.captureVisibleTab()を動かす原動力となり、captureViewportメッセージを受け取ると自動的にスクリーンショットを撮影します。
一方、scripting権限は「Scan with AI Threat Detection」をクリックしたときにのみ働き、chrome.scripting.executeScript()を呼び出してページ全体のスクリーンショットを撮影するコードを実行します。
これが重大な理由は、スクリーンショットにはパスワード、銀行情報、個人的なメッセージなど、画面に表示されるあらゆる機密データが写り込む可能性があるからです。こうした画像はVPNプロバイダーとは別の第三者サーバーへアップロードされており、これはプライバシー保護ツールが本来目指すべき方向性とはまったく逆の情報流出経路といえます。
ただのVPNだったはずが、いつしかスパイ行為が始まっていた
長年にわたり、FreeVPN.OneはChromeウェブストアで静かに存在し続け、謳い文句通りの基本的なVPNツールとして機能していました。その挙動には、これから起こることを示唆するものは何もありませんでした。しかしある日、開発者はおそらく利用者の画面をキャプチャすることを決めたのです。
v3.0.3 — 2025年4月 — 扉が開かれる
それは他の更新と何ら変わらない、静かで目立たない形でやってきましたが、そこには重大な変化が隠されていました。<all_urls>権限の追加です。これにより、拡張機能は利用者が訪れるすべてのサイトにアクセスできるようになりました。VPNに本来必要な範囲をはるかに超える権限です。この時点では、権限自体はより広範なアクセスを許可していたものの、コンテンツスクリプトはまだVPNプロバイダーのドメインに限定されていました。まだスパイ行為は始まっていませんでしたが、扉はすでに開かれていたのです。
v3.1.1 — 2025年6月 — 限界を試す
「AI Threat Detection」機能を含むリブランディングが行われ、コンテンツスクリプトが訪問するすべてのウェブサイトへ拡張され、scripting権限が追加されました。利用者の目には、セキュリティ機能の強化に見えたことでしょう。しかし実際には、開発者が疑念を抱かれずにどこまで踏み込めるかを試していたのです。
v3.1.3 — 2025年7月17日 — 全面展開
2025年5月31日、ドメインaitd.oneが登録されました。その1か月後にv3.1.3がリリースされ、スパイ行為が本格的に始動します。
- あらゆるサイトでの密かなスクリーンショット撮影
- 位置情報の追跡とデバイス情報の収集が開始
- 新設された
aitd.oneサーバーへの、あらゆるデータの流出が開始
v3.1.4 — 2025年7月25日 — 痕跡の隠蔽
データ窃取が検知され得ることに気付いたのか、開発者らはAES-256暗号化とRSA鍵ラッピングを追加し、新しいサブドメインscan.aitd.oneへ切り替えました。動作自体は同じですが、検知はより困難になりました。
信頼されていたはずのVPNは、いつしか利用者のオンライン上の行動を常時のぞき見る窓と化していました。
この拡張機能はChromeウェブストアで認証済みステータスを獲得し、注目の掲載枠にまで表示されていました。Chromeは自動スキャン、人間によるレビュー、悪意あるコードや挙動変化の監視といったセキュリティチェックを新バージョンの拡張機能に対して実施していると謳っていますが、実際にはこうした対策が機能していなかったことになります。今回のケースは、こうした保護策が存在してもなお危険な拡張機能がすり抜けてしまうことを示しており、主要ブラウザのマーケットプレイス全体に存在する深刻なセキュリティの穴を浮き彫りにしています。
開発者の言い分と、実態との照合
私たちは開発者に連絡を取り、何か誤解があったのではないかを確認しようとしました。開発者からはいくつかの説明がありましたが、残念ながら私たちが観測した事実とは食い違っていました。
- 開発者は、自動スクリーンショット取得は「バックグラウンドスキャン」機能の一部であり、ドメインが不審と判断された場合にのみ発動するはずだと説明しました。しかし実際には、Googleスプレッドシートや Googleフォトといった、到底不審とは言えない信頼性の高いサービス上でもスクリーンショットが撮影されていることを確認しています。
- 開発者は、バックグラウンドスキャンは当初すべての利用者に対してデフォルトで有効化されていたが、今後の更新で明示的な同意を求める仕様に変更する予定だと述べました。しかし、その変更が実際に展開されるまでの間、スクリーンショットは利用者の知らないまま、許可も得ずに撮影され、開発者のサーバーへ送信され続けることになります。これは意図の如何にかかわらず、信頼を損なうギャップです。
- 開発者は、スクリーンショットは保存も利用もされておらず、潜在的な脅威の有無を短時間分析するためだけに使われていると述べました。しかし問題は、この主張を第三者が独立して検証する手段がないという点です。スクリーンショットが利用者の端末を離れた時点で、それが保持されていないことを確認する術はありません。
- 企業プロフィールやGitHubアカウント、LinkedInページといった、正当性を裏付ける証拠の提示を求めたところ、開発者はメールへの返信を止めてしまいました。唯一確認できた手がかりはphoenixsoftsol.comに紐づくメールアドレスでしたが、このドメインは現在、実在する企業の痕跡が一切見当たらないWixの無料テンプレートページに転送されるだけです。
- 開発者は、5年間にわたり利用者のデータを一度も売却することなく、無料VPNサービスを誠実に提供してきたと主張しました。この主張自体の検証は難しく、開発者への信頼を前提とせざるを得ません。しかし仮にこの主張をそのまま受け入れたとしても、無料でVPNを提供しているからといって、利用者の知らないところで、同意もなく画面を密かにキャプチャする権利が与えられるわけではありません。これこそが本質的な問題であり、この点について開発者は納得のいく回答をついに示しませんでした。
FreeVPN.Oneの事例は、プライバシー保護という看板がいかにして罠へと反転し得るかを物語っています。利用者は保護を求めてこのツールに手を伸ばしますが、実際にはツール側が利用者を見返しているのです。「安全」として売られていたものが、実際には利用者の行動と所在地を静かに集め続けるパイプラインと化していました。
• • •
本稿はKoi Securityのリサーチチームが、健全な猜疑心と、より安全なオープンソースエコシステムへの願いを込めて執筆しました。
SpyVPNの事例は、悪意ある拡張機能がいかに容易にマーケットプレイスのセキュリティ対策をすり抜け、機密データを危険にさらし得るかを示しています。Koiを導入することで、セキュリティチームはバイナリ・非バイナリを問わずソフトウェア全体にわたる可視性、リスクスコアリング、ガバナンスを、本番環境に影響が及ぶ前に確保できます。
デモを予約することで、Koiが従来型ツールでは見逃されてきたギャップをどのように埋めるかをご確認いただけます。
最高レベルの権限で動作することも多い、信頼できないサードパーティ製コードの利用は、これまで長らく企業と攻撃者双方の目をすり抜けてきました。しかし、その時代は終わりを迎えつつあります。潮目は変わってきているのです。実際、先月にも私たちは注目枠に掲載され認証済みだった18件の拡張機能が悪意化し、数百万人の利用者に影響を与えた別のキャンペーンを暴きました。
私たちはこの局面に対応するため、実務担当者と企業双方に向けてKoiを構築しました。私たちのプラットフォームは、Chromeウェブストア、VSCode、Hugging Face、Homebrew、GitHubなど、チームがマーケットプレイスから取り込むあらゆるものを発見・評価・統制する手助けをします。
フォーチュン50企業やBFSI(銀行・金融・保険)業界、世界有数のテック企業にも信頼されているKoiは、この拡大し続ける攻撃対象領域全体にわたって可視性を獲得し、ガバナンスを確立し、リスクを未然に低減するために必要なセキュリティプロセスを自動化します。
今後も驚くべき発表を予定していますので、どうぞご期待ください。
IOC(侵害指標)
拡張機能ID: jcbiifklmgnkppebelchllpdbnibihel
ドメイン
aitd.one
extrahefty.com
freevpn.one
scan.aitd.one
翻訳元: https://www.koi.ai/blog/spyvpn-the-vpn-that-secretly-captures-your-screen