☠️

4-2. スパイアプリ解析( Metasploit編)

に公開

さらに解析を進めると興味深い機能が見つかりました。
前記事で紹介したPayload.javaファイル内のa関数の一つ前をみると、以下のコードがありました。

悪用防止のためコードの大半は割愛しますが、一番下のsetComponentEnabledSetting()メソッドは、第1引数でアイコンを指定し、第二引数(マーカー部分)で2を指定すると当該アイコンが非表示になるというものです。

つまり、このスパイアプリは、ユーザーが期せずインストールしてしまっても画面上には表示されず、ユーザーに気づかれることなくスパイのミッションを実行するというステルス機能を持っているということです。

Androidの開発にあたってsetComponentEnabledSetting()メソッドを使ったことがなかったので、なぜこんな悪用されそうなメソッドがOSから提供されているのか気になって調べたところ、例えば「ユーザーが有料版にアップグレードした際、無料版のアイコンを非表示にし、デザインが異なる有料版専用のアイコンを有効化する」といった使い方が本来の想定用途らしいです。

このステルス機能は、非常に厄介な機能ですが、あくまで表示画面(ランチャー画面)から非表示なるだけであり「設定」の中にある「アプリ一覧」では表示されます(試したら確かに表示されていました)。

なので、定期的にアプリ一覧を確認して、インストールした覚えのないアプリがあるかどうかをチェックするしか自衛方法はなさそうです。
アプリを大量にインストールしてる方は、見分けがつかなくなるので要注意です。

Discussion