iOS/macOS向けの複数アプリでVPN接続を無効化、シマンテックが指摘

Apple公式SDKのNetworkExtension APIにVPN接続をバイパスできる問題

2017/12/23 https://internet.watch.impress.co.jp/docs/news/1098538.html

 

 シマンテックは、iOSとmacOS向けに提供されている複数のVPNアプリが、VPNトンネルを通過せずに通信を行っている問題を発見した。Android 4.4、Windows 10、Ubuntu 10.04、FreeBSD 11.1のいずれでも、こうした問題は発見されなかったという。

 Apple SDKのNetworkExtension APIを用いてVPN機能が実装されたアプリは、接続先として指定されたIPアドレスを仮想インターフェースにルーティングし、通信が設定された安全なチャネルを通過するよう命令できるとされている。

 しかし、このAPIを用いた複数のサードパーティー製VPNアプリが、ネットワークソケットを物理ネットワークのIPアドレスへ明示的にバインド。これにより、このソケットに宛てて送信されたすべてのトラフィックは、物理ネットワークインターフェースを介して直接送出されていた。

 つまり、VPNルーティングテーブルへIPアドレスが登録されているかどうかに関わらず、仮想インターフェースであるVPNトンネルを通過していなかったという。

 シマンテックでは、これによりサードパーティー製アプリが故意もしくは誤ってVPNトンネルを回避できる恐れがあり、こうした予想外の動作はプライバシーとセキュリティの問題につながり、その影響で重要なデータが漏えいしたり悪質な攻撃者によって傍受される可能性があるとしている。

 シマンテックがAppleにこの問題を報告したところ、設定プロファイルを利用してネイティブの監視モードでVPN構成を適用する「Always-On VPN」機能を利用することを推奨したという。また、NetworkExtension APIのドキュメントにはこうした制限について記載されていないことから、Appleでは、その改訂を検討中とのことだ。