iOSのVPNアプリは壊れているとセキュリティ研究者が指摘、Appleは未だ修正せず

iOSのVPNアプリは壊れているとセキュリティ研究者が指摘、Appleは未だ修正せず
iOSのVPNアプリは壊れているとセキュリティ研究者が指摘、Appleは未だ修正せず

更新:Apple は iOS 14 でこの問題に対する(オプションの)修正を導入したようですが、疑問は残ります。最後に更新情報を参照してください。

著名なセキュリティ研究者は、iOS の VPN アプリ (仮想プライベート ネットワーク) が壊れているのは、Apple が少なくとも 2 年半前から認識していた欠陥のせいだと主張している。

これは、少なくともiOS 13.3.1以降iOSデバイスにVPNの脆弱性が存在しており、データがVPN経由で送信されていることを100%確実に保証する方法はないというProtonVPNの以前のレポートを裏付けています…

マイケル・ホロウィッツ氏の実際の発言は、見出しよりも少し率直です。この問題に関する彼のブログ記事のタイトルは「iOSのVPNは詐欺だ」です。

VPNの仕組み(のはず)

通常、ウェブサイトやその他のサーバーに接続すると、データはまずISPまたはモバイルデータキャリアに送信されます。その後、データはリモートサーバーに転送されます。つまり、ISPはあなたが誰であるか、どのサイトやサービスにアクセスしているかを把握できるのです。

公共Wi-Fiホットスポットを利用する際には、いわゆる中間者攻撃(MITM)のリスクも存在します。これは、悪意のある人物が本物のWi-Fiホットスポットを模倣した偽のWi-Fiホットスポットを作成し、すべてのトラフィックをまず自分のシステム経由でルーティングすることで、ユーザーのデータをすべて記録できるようにする攻撃です。これは簡単に実行でき、電源ブリックサイズのデバイスをコーヒーショップのコンセントに差し込むだけで済みます。

VPNはデータを暗号化して安全なサーバーに送信します。データはISP、通信事業者、ホットスポット事業者から保護されます。彼らが知ることができるのは、あなたがVPNを使用していることだけです。よくある例えで言えば、デバイスからVPNサーバーへの秘密のトンネルを使用しているようなものです。

同様に、アクセスしている Web サイトやサーバーは、あなたの IP アドレス、位置情報、その他の識別データにアクセスできません。トラフィックは VPN サーバーから発信されているように見えます。

VPNアプリを起動するとすぐに、既存の(安全でない)データ接続がすべて切断され、安全な「トンネル」内で再開されます。これは、あらゆるVPNサービスに備わっている標準的な機能です。

ホロウィッツ氏によると、問題は、iOS ではVPN アプリが既存の安全でない接続をすべて閉じることができないことだ。

iOSのVPNは機能不全に陥っています。一見、正常に動作しているように見えます。iOSデバイスは新しいパブリックIPアドレスと新しいDNSサーバーを取得し、データはVPNサーバーに送信されます。しかし、時間が経つにつれて、iOSデバイスから送信されるデータを詳細に調査すると、VPNトンネルに漏洩が発生していることが判明します。データはVPNトンネルの外側からiOSデバイスから送信されてしまうのです。

これは従来のDNSリークではなく、データリークです。複数の種類のVPNと複数のVPNプロバイダーのソフトウェアを使用して確認しました。テストに使用したiOSの最新バージョンは15.6です。

これは重大な問題です。なぜなら、既存の安全でない接続は一度に数分間続く可能性があるため、機密性の高い操作を行うために VPN をオンにすると、最初に行う操作が保護されない可能性があるからです。

Apple のプッシュ通知の場合は、接続が数分ではなく数時間開いたままになる可能性があるため、状況はさらに悪化します

ProtonVPN は 2020 年 3 月にこの問題を初めて特定しました。

Protonコミュニティのメンバーが、iOSバージョン13.3.1において、オペレーティングシステムが既存の接続を閉じないことを発見しました。(この問題は最新バージョン13.4でも発生しています。)ほとんどの接続は短時間で、最終的にはVPNトンネルを介して自動的に再確立されます。しかし、一部の接続は長時間持続し、VPNトンネル外で数分から数時間にわたって接続が開いたままになることがあります。[…]

iOS では VPN アプリによる既存のネットワーク接続の切断が許可されていないため、Proton VPN も他の VPN サービスもこの問題の回避策を提供できません。

その後、同社はアップデートで、Appleはまだ問題を修正していないものの、アプリ開発者に対し、リクエストに応じてすべてのデータ接続を切断する手動の「キルスイッチ」機能を追加する機能を提供していると発表しました。同社はこの機能を追加する予定でしたが、2020年10月をもって更新を停止しました。

ホロウィッツ氏の長文の投稿では、複数のデバイスと複数のVPNアプリを使って、iOSの問題だと特定した経緯が説明されている。また、Appleに連絡した際、当初は対応してくれたものの、その後は連絡が途絶えたとも述べている。

約5週間が経ちましたが、Appleは今のところ私にほとんど何も言ってきていません。問題の再現を試みたかどうかも、これがバグであるという点についても何も言ってきていません。修正についても何も言ってきていません。 

これを再現するのにかかる時間と労力はごくわずかで、しかも問題は一貫しているため、仮に彼らが試みたとしても再現できたはずだ。私には関係ない。もしかしたら、ProtonVPNのように、私がすぐに乗り換えて、このサービスをやめてくれることを期待しているのかもしれない。さあ、わからない。

回避策はありますか?

Protonは機内モードをオンにしてからオフにすることを提案しましたが、これが機能するかどうかは保証できないと述べています。Horowitz氏がテストしたところ、 iOS 12.5.5では以前は機能していたものの、iOS 15では機能しないことがわかりました。

携帯電話を再起動すれば解決するだろうと予想したが、ホロウィッツ氏は具体的にこれをテストしていないようだ。

代わりに彼は、現時点では VPN が組み込まれた安全なルーターに接続するしか選択肢がないと述べているが、これは VPN が最も必要になるモバイル接続には役立たない。

私たちは Apple に連絡しており、返答があれば更新します。

アップデート

Apple は、VPN アプリ開発者にこの問題を修正する方法を提供しているようです。

var includeAllNetworks: Bool { get set }

この値が で true 、トンネルが利用できない場合、システムはすべてのネットワークトラフィックをドロップします。デフォルト値は です false

これは2019年のWWDCセッションで発表されました(ビデオ)。

しかし、何らかの理由で、デフォルトではオフになっています。なぜそうなるのか、そしてテストしたVPNアプリのどれにも実装されていない理由は不明です。

写真: Petter Lagson/Unsplash

havebin.com を Google ニュース フィードに追加します。 

FTC: 収益を生み出す自動アフィリエイトリンクを使用しています。詳細はこちら。