先月このブログでは、Android を標的にするランサムウェアが検出をすり抜け解析を回避する手口を使っていることをお伝えし、セキュリティコミュニティとランサムウェア作成者の間で果てしなく続くイタチごっこについてまとめました。
今回は、Android プラットフォームで続いている進化を確認し、Android 6.0 Marshmallow における最近の変更がモバイルマルウェアの世界にどんな影響を及ぼす可能性があるのかを考えます。Google は 9 月末日より前に Android 6.0 の最終版をリリースする予定なので、デバイスメーカーとキャリアの状況によっては、その変更が意外と早くユーザーの端末に届くかもしれません。
そこで、近々予定されている OS のアップデートがモバイルランサムウェアにどんな影響を及ぼしそうか、理解に役立つコンセプトを考えてみることにしましょう。
ランサムウェアは Android でどのように動作するのか
この質問の答えはもちろん 1 つではありませんが、Android を狙うランサムウェアの亜種はほぼすべて、侵入先のデバイスの画面をロックするために "SYSTEM_ALERT_WINDOW" の許可を利用する点が共通しています。ランサムウェアのほとんどがこの許可を利用するのは、システムタイプのウィンドウを開き、他のアプリケーションやウィンドウより前面に表示できるからです。
次の図でもわかるとおり、Android.Lockdroid.E に感染したデバイスには、WebView(Web ページを表示するビュー)がリニアレイアウトで表示されます。システム警告タイプのウィンドウを生成するために、レイアウトのタイプは "TYPE_SYSTEM_ALERT" に設定されています。
図 1. レイアウトのプロパティ(左)を "TYPE_SYSTEM_ALERT" に設定すると、システム警告タイプのウィンドウ(右)が生成されてデバイスがロックされる
あるいは、ロシア語で書かれたあるランサムウェアの亜種は、「システムエラー」または「システムオーバーレイ」タイプのウィンドウを使います。図 2 に示すように、このタイプのウィンドウも、デバイスで開いているどのウィンドウよりも前面に表示されます。
図 2. ロシア語で書かれたランサムウェアは通常、システムエラータイプのウィンドウを使ってデバイスの画面をロックする
このように、ランサムウェアの亜種はシステムタイプのウィンドウ(システム警告、システムエラー、システムオーバーレイ)を使って、他のどのウィンドウよりも前面に表示されるロック画面を生成するのが一般的です。
Android の場合、システムウィンドウを生成しようとするアプリはデバイスのユーザーから "android.permission.SYSTEM_ALERT_WINDOW" という許可を取得する必要があります。
間近に予定されている変更点
今後は、ランサムウェアの作成者が新しい Android Marshmallow を狙ってマルウェアを作成しようと考えても、そう簡単にはいかなくなります。Android Marshmallow は、3 回目となる最終プレビュー版が 8 月 17 日に公開されたところで、正式リリースは今月中と予定されています。ここで予定されている変更点を考えると、ランサムウェアの作成者はある程度の困難に遭遇するはずです。この変更によって、上述したような許可を取得して悪用しているランサムウェアは制限を受け、画面をロックできないようになります。
今回の新バージョンから、Android には新しい許可モデルが導入され、アプリは必要に応じて許可をリクエストすることが必要になります。アプリが、「危険」なカテゴリ(Android 開発者が設定する)からの許可を必要とする機能を使おうとすると、デバイスの所有者はリクエストがあるたびに承認を求められるようになります。
悪質なアプリを作成するハードルが高くなるだけでなく、作成者にはさらに大きい障壁が立ちふさがります。最終版の Mashmallow ソフトウェア開発キット(SDK)では、"SYSTEM_ALERT_WINDOW" の許可はすでに「危険以上」のカテゴリに分類されているからです。
つまり、ランサムウェアアプリが Marshmallow の SDK を標的に定めたとすると、デバイスをロックするには明示的にユーザーからの許可が必要になるということです。ユーザーがこの許可を付与してアプリに画面のロックを認めるためには、[設定]アプリから、けっして簡単とは言えないステップを手動でたどらなくてはなりません。
図 3. アプリの許可のタブで、許可を簡単にオン/オフできる
図 4. 「危険以上」の許可は[設定]画面の内部に隠され、この許可を付与するにはユーザーが複数のステップを経なければならない
後方互換性
では、この変更で Android を狙うランサムウェアは絶滅寸前に追い込まれるかというと、そんなことはありません。これが Android 側の進化として有効なことは確かですが、ランサムウェアの作成者も進化するはずです。同じようにコードを書き換えて、被害者をこの[設定]画面に直接誘導し、ソーシャルエンジニアリングの手口を使ってこの許可を付与するように仕向けることは十分に考えられます。
もっと重要なのは、Android 6.0 Marshmallow における後方互換性です。後方互換性があれば、OS が新しくなったデバイスに対してもランサムウェアが感染を続ける生命線が、もうひとつ残ってしまうかもしれません。新しい許可モデルが有効に機能するのは、悪質なアプリが Marshmallow SDK を標的にしている場合に限られます。以前の Android SDK(Lollipop など)を標的にしたランサムウェアが、古い許可モデルを利用して Marshmallow 搭載デバイスでも機能する可能性があるということです。
その場合でも、Marshmallow が正式にリリースされれば、新しいモデルではランサムウェアの作成者にとってのハードルはもう一段高くなります。
保護対策
モバイルを狙うランサムウェアから身を守るために、以下のベストプラクティスに従うことをお勧めします。
- 見たことのないサイトからアプリをダウンロードすることは避け、信頼できるサイトだけからダウンロードするようにしてください。
- アプリがリクエストする許可の種類に注意してください。
- デバイスとデータを保護するために、ノートンなど適切なモバイル用セキュリティアプリをインストールしましょう。
- ソフトウェアは最新の状態に保ちましょう。
- 重要なデータは必ず頻繁にバックアップを作成しておきましょう。
シマンテックとノートンの製品は、このブログでお伝えした脅威を以下の定義で検出します。
* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。
【参考訳】