iOS 11の標準カメラアプリに搭載されているQRコードの読み取り機能にバグが発見され、通知されているURLとは別のURLへ飛ばすことが可能であることが判明しています。
ユーザーにはあたかも正しいWebサイトを開くように見えますが、URLを偽装することで、表示されたURLとは全く異なる、悪意あるサイトへ誘導される危険性があります。
infosec.rm-it.deは、この問題を報告するとともに、ユーザー自身も試すことのできるサンプルを公開しています。
このサンプルのQRコードをiOSのカメラで読み取ると、画面上部には「”facebook.com”をSafariで開く」と通知されます。一見すると正しいサイトを表示しているように見えます。
しかし、通知をタップしていざサイトを開いてみると、「infosec.rm-it.de」のサイトに飛ばされてしまいます。
実際にiOS11.2.6をインストールしたiPhoneで試したところ、表示されたものとは別のURLへ飛ばされたことを確認しました。
infosec.rm-it.deの公開しているGIFアニメで一連の流れを把握できるかと思います。
サンプルのQRコードには「https:// xxx \ @ facebook.com:443@infosec.rm-it.de/」というURLが埋め込まれています。
iOSのカメラアプリの通知では、前半の「facebook.com」部分だけが表示されていますが、通知をタップしてもFacebookに飛ばされるのではなくコードの後半のサイト「https://infosec.rm-it.de/」へと飛ばされてしまいます。
infosec.rm-it.deによれば、この問題はAppleのセキュリティチームに昨年2017年12月23日に報告されています。
しかしながら、2018年3月24日現在まだ修正されていません。
Appleが問題を修正するまで、ユーザーの取り得る対策としては、
- 設定の「カメラ」にある「QRコードをスキャン」をオフにして読み取り機能自体を無効にする
- 不確かなQRコードの読み取り控えて、信頼できるものだけに限定する
- ChromeのQRコードスキャンなどサードパーティ製アプリを使う
などがあります。
記事執筆時点で最新のChromeアプリのQRコード読み取り機能(Chromeアプリを3D Touchで利用可能)を使って上記サンプルを読み取らせたところ、サイトを開くことができませんでした。つまり、標準カメラアプリにある今回のバグはChromeアプリにはないということになります。
Source:infosec.rm-it.de, 9to5Mac