🪰

8-3. スマホ用ランサムウェア(Ransomware)

に公開

では、いつもの通りMobSFにランサムウェアアプリをアップロードして解析していきます。
MobSFのダッシュボードには以下のように表示されます。

このうちAndroidManifest.xmlファイルを開いてPermissionを見ていきます。Manifestファイルには、ユーザーのプライバシーに関わる重要な機能の利用する場合、明示的に宣言(Manifest)されています。

このうちスクリーンロックに関わりそうなものを赤枠で囲みました。

正直、Androidアプリ開発では使ったことのない機能が列挙されているため、調べながらの記載となりことをご容赦下さい
まず一番上の「 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />」について。
これはアプリが他のアプリの上に特別な表示をするための機能です。馴染み深い例として、以下のバッテリーの表示は他のアプリを利用していても表示されます。これをオーバーレイ(覆い被せる)と言います。オーバーレイは、重要な通知をユーザーに知らせたり、ユーザーに便利な機能を優先的に表示されるための機能です。

ランサムウェアアプリは、SYSTEM_ALERT_WINDOWを使って、脅迫画面を他のアプリやホーム画面にオーバレイさせて、その下にある他のアプリを操作できなくさせます。

SYSTEM_ALERT_WINDOWに限りませんが、本来はユーザーへの注意喚起や利便性のためにAndroid OSが用意している正規の機能が悪用されていることの一例です。

続いて「<uses-permission android:name="android.permission.WAKE_LOCK" />」について。
これはスリープにさせないための機能です。例えば、Instagramアプリを利用している最中にしばらく放置しているとスマホが自動的にスリープモードに入りますが、Youtubeアプリを放置して長時間再生していてもスリープに入りません。WAKE(スリープではなく起きている状態)をLOCK(固定・維持)するのが、WAKE_LOCK機能です。
ランサムウェアアプリは、この機能を使って、脅迫画面が表示されてもスリープモードに入ることを阻止して、あたかもスクリーンを永続的にロックしている状態を作ります。

最後に「<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />」について。
これは、起動時に指定したアプリを自動的に起動させる機能です。例えば、ToDoアプリのリマインダー通知をこの機能に登録することで、再起動してもリマインダー登録が削除されることなく、通知が届くようにできます。
ランサムウェアアプリはこの機能を悪用して、スマホの電源を落として再起動しても、脅迫画面を自動で再表示させます。再起動しても脅迫画面から解放されないというのはかなり恐怖ですね。。。

このアプリは、いずれも正規の機能を上手く組み合わせることで、スマホをロックするというランサムウェアの特徴を実現しようとしていることが分かりました。

次回は、Manifestファイル以外のソースコードを見ながら、ランサムウェアアプリの機能の詳細を分析していきます。

Discussion