脆弱性の概要はこんな感じ。
- 【前提】本来iPhone/iPadのアプリは、元々インストールされているものかAppStoreからインストールしたものだけである
- 【企業向けサービス】企業の業務アプリなどのために、AppStore経由でないアプリ(WebサイトやPC上にあるアプリ)でも、「Untrusted App Developerだけどインストールする?」というダイアログを表示し、ユーザが許可すればインストールできる
- 【脆弱性】アプリは各々Bundle IDというIDを持っており、インストールしようとしているアプリと同じBundle IDのアプリがすでにインストールされている場合、コード署名証明書が一致していなくても、すでにインストールされているアプリを上書きする
2が悪者になっている感じの記事が多いけど、悪いのは3で、AppStore経由でインストールしたアプリがAppStore経由でないアプリに上書きされてしまうのが脆弱性。Bundle IDが同じであればコード署名証明書が一致していなくても上書きすることに問題がある。
US-CERTがアラートを出している。
Apple iOS "Masque Attack" Technique | FireEye
和訳したものがJVNに。
JVNTA14-317A: Apple iOS に対する攻撃手法 Masque Attack
元ネタはFireEye。
https://www.fireeye.com/blog/technical/cyber-exploits/2014/11/masque-attack-all-your-ios-apps-belong-to-us.html
FireEye mobile security researchers have discovered that an iOS app installed using enterprise/ad-hoc provisioning could replace another genuine app installed through the App Store, as long as both apps used the same bundle identifier.
This vulnerability exists because iOS doesn't enforce matching certificates for apps with the same bundle identifier. We verified this vulnerability on iOS 7.1.1, 7.1.2, 8.0, 8.1 and 8.1.1 beta, for both jailbroken and non-jailbroken devices.
最近話題になったWireLurkerはこの脆弱性を利用して、感染したMacやWindowsからiPhoneやiPadにアプリをインストールさせようとするらしい。
Recently Claud Xiao discovered the “WireLurker” malware. After looking into WireLurker, we found that it started to utilize a limited form of Masque Attacks to attack iOS devices through USB.
WireLurkerについてはこちら。
脱獄していないiOSにも感染するマルウェア『WireLurker』に要注意! - たのしいiPhone! AppBank
WireLurker が iPhone/iPad に不正アプリをインストールする際には、ユーザーにアプリのインストールを確認する画面が表示されます。Apple が企業向けサービスとして提供している、独自アプリのインストール機能を WireLurker が悪用しているためです。
WireLurkerは中国で猛威をふるいました。
Apple Blocks Chinese iPhone Hacks - Digits - WSJ
Masque Attackの日本語の解説はGIGAZINEが詳しい。
iPhoneやiPadにインストールしたアプリをマルウェアに置き換え情報を抜き取る攻撃「Masque Attack」が登場 - GIGAZINE
「Masque Attack」がなぜApp Storeを経由せずに偽のアプリをインストールできてしまうのかというと、「Enterprise Provisioning Profiles」と呼ばれる、企業がApp Storeを経由せずに従業員にアプリを配信するための手法を使ってアプリを置き換えてしまうからです。
対策は:
App Store以外からサードパーティー製のアプリをインストールしない、ウェブページ上でポップアップ表示される「インストール」ボタンを押さない、「信頼できないアプリ開発者」という警告が表示された際はアプリをインストールせずに直ちにアンインストール