狙われ始めたAndroid

第3回:セキュリティアプリでも駆除できないマルウェア


 前回はAndroidに感染するマルウェアの実例として、SMSを悪用するトロイの木馬(SMS Trojan)である「Fake Player」とボット型マルウェアである「Geinimi」を紹介しました。前回の解説では、Androidを狙うマルウェアは、アプリの一部に混入させる形態が大多数であることを指摘しました。つまり、ユーザー自身がマルウェアを含むアプリをダウンロードし、インストールすることで感染する「能動型」が多くの割合を占めるということになります。

 ただし、完全にすべてがこの能動型であるわけではなく、その対義的意味となる「受動型」のマルウェアも存在します。受動型とは、ここではユーザーがアプリなどを意識的にインストールすることなく感染してしまうタイプのマルウェアのことを指します。

Android Marketで配布されたマルウェア

 2011年3月、通称「Droid Dream」と呼ばれるマルウェアが発見されました。Kaspersky LabでもDroid Dreamという呼称を使用することはありますが、このマルウェアは単体で動作するのではなく、マルウェアの機能を持ついくつかのコンポーネントに分かれますので、Droid Dreamという攻撃の総称と捉えた方がよいのかもしれません。

 実際、Kaspersky Labの検知名を見てみると、「Exploit.AndroidOS.lotoor」「Backdoor.AndroidOS.Rooter」「Trojan-Downloader.AndroidOS.Rooter」といったように、Droid Dreamに感染した際に観測できるマルウェア検体の挙動や機能に応じて、いくつかの名称で区別しています。本稿では、Droid Dreamという名称を総称として扱うことにします。

DroidDreamを含むapkファイルを「Kaspersky Mobile Security 9」が検知しているところ

 ここからはDroid Dreamの特徴について、感染の流れに沿って解説していきます。Droid Dreamが配布されたサイトは、Googleが運営するAndroid Market(現Google Play)でした。

 この事実だけでも、筆者は当時驚いてしまったわけですが、残念ながらDroid Dream以降もAndroid Marketにマルウェアを含むアプリが公開される事例は何件かあります。従って、たとえアプリのダウンロード元がAndroid Marketであるとしても、マルウェア感染の危険が100%ないことが担保がされないということを十分に認識しておく必要があるでしょう。

Android Marketに公開されたDroid Dream

「提供元不明のアプリ」とは?

 Droid Dreamからは少し話が脱線しますが、連載第1回で少し触れたように、Androidの「アプリケーション設定」画面には「提供元不明のアプリ(英語インターフェイスではUnknown Source」)」という項目があります。説明には「サードパーティアプリケーションのインストールを許可する」とありますので、この設定にチェックが入っていない状態(筆者の認識ではこれがデフォルトのはずです)であれば、提供元不明のアプリをダウンロードしてインストールしないことになります。

 提供元不明という表現は、筆者の素直な肌感覚だと、「いかにも怪しい」ということを言っているように思ってしまうのですが、実際にはAndroid Market経由以外の経路で入手したアプリのことを提供元不明という表現にしていることを、改めて認識しておく必要があると思います。

 Android Marketでもマルウェアが配布されていることは事実なのですから、Android Marketから入手しているからマルウェア感染の危険性はないという考え方は、残念ながら現状のAndroidでは通用しない場合があると言えます(もちろん怪しいアプリ、特に海賊版などを安易にインストールすることは全否定で推奨しません)。

Droid Dreamの危険性の本質は「ルート権限奪取」

 Android Marketに公開されていたDroid Dreamは、音楽などいくつかの種類のアプリを装っていました。インストールすると、Android 2.2以前に存在していたOSの脆弱性を突くコードが実行されます。この部分がKaspersky Labで言うところのExploit.AndroidOS.lotoorになります。

 OSの脆弱性を突くことでルート権限(管理者権限)を奪取し、ルート権限を持たないと書き込みができないエリア(/system/data)に書き込み(つまりインストール)を行います。インストールを行うコンポーネントの中にもAndroidのインストールパッケージであるapkファイルが含まれており、具体的な挙動の代表例としては、端末IDを窃取する、第三者からの指令を受けるところのバックドア(backdoor)としての動きをする、さらには第2・第3のマルウェアをダウンロードするもの(Trojan-Downloader)が挙げられます。

 このように、Droid Dreamのマルウェアとしての機能は多岐に渡りますが、マルウェア対策を行う上で厄介なものが、ルート権限奪取の部分でしょう。Android上で動作するマルウェア対策ソフトウェアは、市販されているものに関して言えば、一般ユーザー権限での動作しかできません。

 これはOSの機構・設計上の制約を受けていると言えますが、一般ユーザー権限でしか動作していない以上、ルート権限でしか読み書きができないエリアには作用することができません。つまり、Droid Dreamをインストールする前にマルウェア対策ソフトを導入していれば検知できますが、感染後にマルウェア対策ソフトを導入しても駆除できないことになります。

感染対象OSを広げていった「Zeus」

 ここで、もう1つ別のマルウェアを紹介します。主にオンラインバンキングなどへのログイン認証情報を狙う「ZeuS」というマルウェアのモバイル版です。ZeuS自体はもともとWindowsに感染するボット型のマルウェアで、多くの感染端末が観測され巨大なボットネットワークを築き上げているものです。これのモバイル端末版と言えるものの事例が「ZitMo」となります。

 ZitMoが初めて確認されたのは2010年9月ごろのことで、攻撃対象はSymbianでした。そこから約1年の間にWindows Mobile、 BlackBerryを標的とするZitMoが発見され、徐々に感染対象OSを広げていることが観測されていました。

 そして2011年7月ごろ、ついにAndroidで動作するZitMoが発見されます(Kaspersky Labでの検知名は「Trojan-Spy.AndroidOS.Zitmo.」)。すべてのZitMoに共通していることは、「mTAN(mobile Transaction Authentication Number)」というSMSを利用したオンラインバンクサイトへの認証情報を窃取するところにあります。

 Android用のZitMoの挙動はマルウェアとしては非常に単純で、感染端末に発着信するSMSのメッセージをすべてリモートサーバーに転送してしまいます。mTANでは、SMSの中にいわゆるワンタイム認証に相当する情報が記載されていますので、攻撃者はそれらのSMSを入手することで感染者のオンラインバンクサイトへの認証情報を窃取していきます。

 マルウェアとしての機能は、技術的には単純といえますが、裏を返せば攻撃者はさほど難解な技術を駆使せずとも機微な情報を窃取できるともいえます。すなわち、mTANの仕組みとOS・アプリの機構が課題を持っているといえます。

 mTANではSMSを介して認証情報をやり取りするため、攻撃者が欲する情報はSMSに絞られます。かつ、Androidでは、SMSクライアントが他のアプリにSMSをトリガーとするサービスを提供できるように読み取り許可を与えているものがあります。これにより、SMSを介したサービスで円滑に情報をやり取りできるのですが、相手がマルウェアであろうと正当なアプリであろうとその機能は使用できてしまうのです。

ZitMoにみるソーシャルエンジニアリングの一面

 そもそも、どうしてユーザーはZitMoに感染してしまうのでしょうか。ZitMoも他のAndroidのマルウェアと同じく、マルウェア入りのアプリをインストールすることで感染します。つまり、ユーザーがそのようなアプリをインストールしたくなるような「仕掛け」が攻撃者によってなされているのです。

 過去の連載で紹介したような、いかにも怪しいサイトに置かれているアプリは、人の欲望をくすぐることでインストールさせようとするものでした。例えばFake Playerはポルノサイトに置かれていましたし、Geinimiは本来有料のアプリが無償で配布されていました。

 また、本稿前半で紹介したDroid Dreamは、Andriod Marketにあったものですから、「まさか公式サイトにマルウェアがあるとは」というある種の信頼感の隙(心の隙)を突いたという見方もできると思います。

 ZitMoは、これらとはさらに一味違う面を持ちます。

 Android向けのZitMoは、Trusteerという企業のセキュリティソフトとして配布されました。配布の手法としては、単にダウンロードサイトに設置するのではなく、わざわざ「オンラインバンキングには強固なセキュリティ対策が必要」「SMSはテキストのメッセージのやりとりなので、それを保護するソフトウェアが必要」などというメッセージをユーザーに示し、インストールさせようとします。インストールされるソフトウェアがZitMoの本体であり、前述のとおりAndroid端末に発着信するSMSのコピーを勝手にリモートサーバーに送ります。

ZitMoのダウンロード、インストールを促す画面。信頼できるセキュリティソフトウェアである旨の文言が並ぶ。なお、画面中段やや下のOS選択で「Android」を選択した場合のみ
セキュリティソフトウェア(実体はZitMo)の導入を強く勧める文言が躍る。また、ダウンロード先のURLも記載されている

 このように、Androidマルウェアの中には、人間心理の隙を突く手法でアプリをインストールさせるような悪質な仕掛け(つまりソーシャルエンジニアリング)に長けたものがよく見受けられます。ユーザーにとっては十分な注意が必要ですが、具体的に何に注意すればよいのか一言で説明するのはなかなか難しいでしょう。筆者個人の感覚としては、ユーザー自身の意思とは別に導入を促して来るようなアプリは、その時点でいったん「これは何?」と考え留まる用心深さが求められている気がします。


関連情報

2012/4/13 06:00


前田 典彦
株式会社カスペルスキーに所属し、チーフセキュリティエヴァンゲリストとしてマルウェアおよびインターネットセキュリティに関する調査啓蒙活動に従事するほか、社外NPO法人や各種団体の委員・幹事としても活動している。同社のCSIRT組織であるKLIRRTの代表も務める。