281件のGoogle Play VPNアプリ、平文データ送信により機密情報が露出

人気のAndroid VPNアプリ群において、セキュリティとプライバシーの保護が広範囲にわたって不十分であることが新たに明らかになりました。数十本のアプリが機密データを平文で送信しており、ユーザーが本来期待する基本的な保護機能を提供できていないことが判明しています。

ミシガン大学とニューメキシコ大学の研究者らは、Android VPNアプリをネットワーク層にわたって体系的に監査するための拡張可能なフレームワーク「MVPNalyzer」を開発しました。このフレームワークは、AndroidのVpnService APIの制限や証明書ピニングといったプラットフォーム固有の課題にも対応しています。

同フレームワークは、TLSトラフィックを復号するLD_PRELOADベースの関数フッキング、トラフィックの帰属を特定するソケット統計、そして暗号化されていないコンテンツや設定ファイルを検査するカスタムZeek/Spicyパーサーを使用します。

Wayne大学の研究チームは、このシステムをGoogle Playストアの検索で得た人気の無料VPNアプリ281本に適用し、物理的なAndroid 14端末上でテストを実施しました。

分析の結果、61本のアプリが合計10,552件のフローにわたって暗号化されていないデータを送信していたことが判明しました。最悪のケースであるcom.kylovpnは、2,000件を超える平文フローを送信していました。

最も深刻なのは、5本のアプリがVPN設定ファイルを平文で送信していたことです。この欠陥により、ネットワーク上で通信経路に近い位置にいる攻撃者が転送中のファイルを改ざんし、被害者を攻撃者が制御するVPNサーバーへリダイレクトできてしまいます。研究者らは、このトンネル乗っ取り攻撃を実際に成功させたと述べています。

特筆すべきは、61本のうち8本のアプリが、暗号化ポリシーを強制できない低レベルのソケットAPIを使用することで、Androidに組み込まれた平文通信ブロック保護機能を完全に回避していたことです。

平文送信の問題に加えて、29本のアプリがVPNトンネルの外側にユーザーのトラフィックを漏洩させていました。内訳は、DNSクエリを漏洩させていたものが24本(合計3億6,000万件のインストールに影響)、TLSのSNIフィールドが可視化される形でブラウザトラフィックを漏洩させていたものが6本、暗号化されていないトランスポートプロトコル経由でデータをトンネリングしていたものが4本です。

別途、169本のアプリが標準ポート、プロトコルシグネチャ、あるいは「vpn」という文字列を含むドメイン名によって容易に検出可能であることも判明しました。これは、このうち110本のアプリがPlayストアの説明文で謳っていた検閲回避機能の主張を裏切るものです。

この調査では、広範な追跡行為や安全性の低いVPN設定についても指摘されており、以下にまとめます。

5つの分析カテゴリ全体で特定された欠陥のあるアプリは、合計で数億件のインストール数に達しており、設定不備のグループだけでも6億100万件を超えるインストールに関連しています。

NDSSの発表によると、トンネル乗っ取りの脆弱性は影響を受ける5つのプロバイダーすべてに優先的に通知されており、そのうち2社が報告を認め、設定ファイルの配信に適切な証明書検証を伴うHTTPSへ切り替えることを表明したとのことです。

研究者らは、今回の調査結果が、モバイルVPNエコシステム全体にわたる開発者側の組織的な怠慢、Androidの平文通信ブロック機構に対する不十分な運用、そしてセキュリティ上重要なVPN設定ファイルの管理不備を示していると主張しています。

翻訳元: https://cyberpress.org/281-google-play-vpn-apps-exposed/

ソース: cyberpress.org