☠️

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

に公開

ステルス機能

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

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

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

ステルス機能の本来の用途

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

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

定期的にアプリ一覧の確認

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

Discussion