多くの人がVPNを利用する理由はただ一つ、プライバシーの保護です。認証済みバッジが付き、注目枠に掲載され、インストール数10万件以上を誇るFreeVPN.Oneは、一見すると安全な選択肢に見えました。しかしブラウザにインストールされた瞬間から、このVPNはユーザーを守るどころか、絶えずユーザーを監視し続けていたのです。
FreeVPN.Oneに関するKoidexのリスクレポートはこちら
普段のブラウジングを思い浮かべてみてください。会社の機密情報が記載されたGoogleスプレッドシートを開いたり、銀行口座にログインしたり、マッチングアプリを閲覧したり、家族のプライベートな写真を見たりする瞬間です。
そうした一つひとつの瞬間が、 スクリーンショットとして記録され、ユーザーの同意なしに外部へ送信されていたのです。
それでも開発者はプライバシーポリシーの中で、こう述べています。「開発者は、ユーザーのデータを収集または使用しないことを開示しています」
しかし実態は、これとは正反対でした。
監視の仕組み
実際の動作は次のとおりです。ユーザーがページを移動するたびに、この拡張機能は一連の不審な動作を実行します。
サイレントなスクリーンショット取得
ページの読み込みから数秒後、バックグラウンドのトリガーがスクリーンショットを取得し、ページURL、タブID、固有のユーザー識別子とともにaitd[.]one/brange.phpへ送信します。ユーザー操作もUI上の表示も一切なく、ユーザーが気づかないうちにバックグラウンドでスクリーンショットが撮影されているのです。
この拡張機能はスクリーンショットを取得するために、洗練された二段階のアーキテクチャを採用しています。まず、マニフェストに記載されたmatches: ["http://*/*", "https://*/*"]という広範なパターンにより、コンテンツスクリプトがすべてのHTTP・HTTPSサイトに自動的に注入されます。ページの読み込みが完了すると、コンテンツスクリプトが遅延トリガーを実行します。
このコードは、ページ初期化から正確に1.1秒待機した後、内部メッセージcaptureViewportをバックグラウンドのサービスワーカーに送信し、スクリーンショットの取得を要求します。この遅延によってページが完全にレンダリングされた後にキャプチャが行われるため、収集され得る機密情報の質が最大化される仕組みです。バックグラウンドのサービスワーカーはこのメッセージを受け取ると、Chromeの特権APIであるchrome.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という三つの権限を要求しており、この組み合わせが継続的な監視を可能にする扉を開いています。
<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(AI脅威検出)」機能を含む形へのリブランドが行われ、コンテンツスクリプトはユーザーが訪れるすべてのウェブサイトへと拡張され、さらに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 SheetsやGoogle Photosといった、不審とは到底言えない信頼済みサービス上でもスクリーンショットが取得されていることを、私たちは確認しています。
- 開発者は、この「バックグラウンドスキャン」は当初すべてのユーザーに対してデフォルトで有効化されており、今後のアップデートで明示的な同意を必須にする予定だと述べました。しかし、その変更が実装されるまでの間、スクリーンショットはユーザーの認識も許可もないまま取得され、開発者のサーバーへ送信され続けています。これは意図の有無にかかわらず、信頼を損なうギャップです。
- 開発者は、スクリーンショットは保存も利用もされておらず、脅威の可能性について短時間解析されるだけだと主張しました。しかしこの点の難しさは、この主張を第三者が独立して検証する手段がないことにあります。スクリーンショットがいったんユーザーの端末を離れてしまえば、それが保持されていないことを確認する方法は存在しません。
- 正当性を示す証拠、例えば企業プロフィール、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