トレンドマイクロは、2014年5月、本ブログ上で、Android端末用アプリの不具合が、ユーザ情報の収集や攻撃開始に利用される可能性があることを報告しました。弊社では、”Evernote” の Android版アプリに、この不具合が存在することを確認しました。弊社は Evernote に詳細を報告し、Evernote はこのアプリの Android版を更新することで対応しました。Evernote はまた、Android版「Evernote 5.8.5」で管理をさらに追加し、ユーザを保護しています。「Evernote 5.8.5」より前のバージョンをお使いのユーザは、最新バージョンに更新して下さい。
■「Content Providers」に存在する不具合
今回修正された不具合は、アプリケーションデータを保存する Android のコンポーネントに関係があります。このコンポーネントは、属性「android:exported」を持ち、この不具合を持つアプリ上の特定の情報を、他のアプリが読み書きすることを可能にします。
Evernote の以前のバージョンは、2つのパーミッションを定義して、ユーザ情報のほぼすべてを保存するために使用される「Content Providers」を保護していました。しかし、この 2つのパーミッションの保護レベルが「通常」で設定されていたため、端末上の他のアプリにも、この 2つのパーミッションが与えられる可能性がありました。
サイバー犯罪者は、不正なアプリを作成し、Evernote のアプリに保存された情報を窃取するために利用する可能性があります。Evernote を利用して、ユーザアカウントやパスワードなど、個人情報を保存しているユーザにとっては、この不具合は、情報窃取や身分詐称などの被害につながる可能性があります。
■他のアプリから閲覧される、暗号化されていない情報
上述した不具合の他に、弊社では、Android端末上にある Evernote のすべての「ノート」が、不正なアプリから閲覧できる別の不具合も確認しました。これは、「ノート」の保存場所に原因があります。
Evernote のアプリは、ユーザのすべての「ノート」を “directory/sdcard/Android/data/con.evernote/files/” 配下の外部記憶装置に保存します。残念なことに、このフォルダに保存されるファイルは暗号化されておらず、他のアプリからも読むことができます。
Android端末のオペレーティングシステム(OS)のバージョンによって、アプリがアクセスできる数が異なります。例えば、Android 4.3 以前のバージョンでは、アプリが SDカード内の上記のフォルダにアクセスするのに、特別なパーミッションを必要としません。しかし、Android 4.4 以降のバージョンでは、パーミッション「READ_EXTERNAL_STORAGE」が必要です。ただし、このパーミッションはほとんどのアプリで共通なため、不正なアプリがこのパーミッションを要求しても疑われないでしょう。
不正なユーザは、Evernote に保存されたファイルを読み書きできる簡単なプログラムを作成し、そのプログラムを「READ_EXTERNAL_STORAGE」のパーミッションを持つ正規アプリに挿入してリパックする可能性があります。そして、リパックアプリを利用してユーザをだまし、攻撃者がパーミッションを得るかもしれません。
弊社は、この外部記憶装置に誤った設定をしている可能性のある開発者がアプリを修正できるように、今回このような報告しました。重要なコンポーネントを保護するためには、保護レベル「signature」でパーミッションを定義するとよいでしょう。弊社ではまた、アプリによって作成、処理、送信されるコンテンツはすべて暗号化することを開発者に推奨しています。可能であれば、個人情報は外部記憶装置に保存しないほうがよいでしょう。
弊社では、今回の新たな不具合についても、Evernote に報告しました。また、弊社では、2014年8月現在、この不具合を利用した攻撃が実行されていないことを確認しています。
参考記事:
by Weichao Sun (Mobile Threats Analyst)
翻訳:品川 暁子(Core Technology Marketing, TrendLabs)