他のアプリの識別情報を盗んでなりすます攻撃を招くAndroidの「Fake ID」脆弱性。McAfeeは、この脆弱性を突く悪質アプリを検出する新しいツール McAfee Fake ID Detectorを公開しました。
最近発見された「Fake ID」脆弱性によって、Androidアプリは他のアプリの識別情報をコピーしそのアプリになりすますことができます。個々のアプリは自身に固有の識別情報を持っていますが、これはアプリ開発者が公開鍵認証の鍵ペアを生成することで定義するものです。この識別情報とは、アプリのパッケージ(Androidの場合は.apkファイル)を暗号学的に署名するために用いる電子証明書のことです。この電子証明書は後にツールやオペレーティングシステムによってアプリの真正性を検証するために用いられます。しかし、アプリ開発者は、別のアプリの電子証明書をコピーし、新しいアプリの電子証明書と組み合わせて証明書チェーンを作成することで、本質的に前者のアプリのふりをすることが可能になります。この脆弱性の性質を考えると、このような行為を行うのは悪意ある開発者だけだといえるでしょう。さらに、コピーされる電子証明書によっては、その証明書に対する信頼の高さゆえに、悪意あるアプリが本来よりも高い権限でシステムや他のアプリにアクセスするリスクがあります。
Androidオペレーティングシステムのセキュリティモデルの中心には、その他の多くの現代的なプラットフォームと同様、アプリの電子署名がそのアプリと適合しているかを確認することでアプリを検証するコンポーネントが存在します。Fake ID脆弱性は、この検証プロセスを根底から破壊し、システムが証明書チェーンの真正性を検証できない状態に陥らせます。これは、あるアプリが、別のアプリの識別情報をもって発行されたと主張できることを意味します。理論的には、このコンポーネントは、子証明書(child certificate)の発行者署名を発行者の公開証明書に対して確認することで証明書チェーンを認証すべきです。
インストールされるアプリやコピーされる証明書の振舞い、さらに、それらがAndroidプラットフォーム上で持つデフォルトの信頼レベルによっては、端末からデータが漏洩したり、その他の悪意ある行為が行われたりする可能性があります。Androidの最新バージョン以外では何の警告も発せられないため、もしこの脆弱性が攻撃されてもユーザは全く気付くことはできません。
Androidバージョン2.1(Eclair)から4.3(Jelly Bean)を使用しているユーザは、この攻撃に対する脆弱性の影響を受ける可能性がありますが、この脅威は、悪意あるアプリが権限昇格に成功するか否かに関してハードウェア製造メーカやシステム上のアプリに依存しています。
ハードウェア製造メーカやAndroidバージョンによっては、ユーザは複数の権限昇格による攻撃ベクトルに対して脆弱であるといえます。この問題が証明書チェーンに関するものであることを考えると、攻撃者は全ての選択肢に対応するために多くの証明書を特別に細工されたマルウェアに含ませてくるでしょう。
Fake ID脆弱性に対しては、以下のような対策が重要です:
- 更新のインストール: Android端末を最新OSバージョン4.4.4に更新する。ただし、これはGoogleのOEMメーカや通信キャリア会社に依存するため、ユーザの制御外です。
- セキュリティソフトウェアの使用: 端末をAndroidの最新バージョンに更新できない場合は特に、McAfeeが提供する新しいツール Fake ID Detector によって、この脆弱性攻撃を含むアプリを迅速に検出することができます。
- 信頼できないアプリストアの回避: アプリを信頼できる場所からのみインストールすることが重要です。Googleはすでにこの脆弱性攻撃をアプリが含むかどうかをアプリ公開前にチェックする仕組みをアプリストアに用意しました。信頼できないアプリストア、特に電子メールやSMSメッセージの添付ファイルやURLリンク経由でのアプリインストールは避けてください。
※本ページの内容はMcAfee Blogの抄訳です。
原文: Beware of Impostor Android Apps Using Fake ID
著者: Alex Hinchliffe (Manager, Mobile Malware Research and Operations)