「iOS」アプリの開発で広く利用されているネットワークライブラリの古いバージョンに、SSL(Secure Sockets Layer)で暗号化されているはずの通信内容を攻撃者によって傍受される脆弱性が発見された。この報告を受けたライブラリの開発者は脆弱性を修正した最新バージョンを公開したが、古いバージョンのライブラリを使用しているiOSアプリは、すべて脆弱性の影響を受ける可能性がある。研究チームによると、影響を受けるiOSアプリの数は2万5000件に及ぶという。
発見された脆弱性は、iOSアプリの開発時に使用されるネットワークライブラリ「AFNetworking」の問題に起因している。この脆弱性を調査しているアプリ分析サービス企業SourceDNAの発表によると、古いバージョンのAFNetworkingでは、「validatesDomainName」フラグで有効化できるドメイン名の検証がデフォルトで無効になっていたという。また、このバージョンでドメイン名の検証を有効化するには証明書ピニングを有効化する必要があるが、証明書ピニングを有効化しているiOSアプリ開発者はごく少数であった。
結果として、脆弱性の影響を受けるiOSアプリでは通信時にドメイン名が検証されない。そのため、攻撃者は50ドルほどで販売されている任意のウェブサーバの正式なSSL証明書を用意するだけで、同じWi-Fiネットワークに接続しているユーザーのSSL通信を中間者攻撃で簡単に傍受し、個人情報を窃取したり、SSL通信の制御を奪ったりすることができる。
脆弱性の影響を受けるiOSアプリの開発者は、何よりもまずAFNetworkingを最新バージョンの2.5.3に更新する必要がある。SourceDNAでは、さらに追加の防御策として、公開鍵または証明書のピニングを有効化するように呼びかけている。同社によると、ピニングが有効化されているiOSアプリは脆弱性の影響を受けないという。
今回の事態を受けて、AFNetworkingは過去6週間に3回も更新され、数多くの脆弱性が修正されたが、直前のバージョン2.5.2では修正済みの問題が再発するなど、混乱が起きていた。つい先日GitHubで公開された最新のバージョン2.5.3では、公開鍵や証明書のピニング設定に関わらずドメイン名の検証が有効化されるなど、デフォルトのセキュリティポリシーが変更されている。
脆弱性の検証を続けているセキュリティ企業Minded Securityは、「Pinterest」「Heroku」「Simple」をはじめとする数多くの人気アプリでも古いバージョンのAFNetworkingが使用されているとして、警告を発している。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。