🖥️

2. スマホセキュリティブログ 環境構築

に公開
2025/11/23

環境構築

スマホ用のスパイアプリを解析するにあたり、まずは解析環境の構築を紹介します。
MacBook air(M4チップ)に以下の環境を構築します。

  • VM ware
  • Kali Linux
  • サンプルとなるAndroid OS用のスパイアプリのAPKファイル
  • mobSecurityFramework

VM ware

Mac上の仮想環境としては、①Parallels、②UTM、③VMwareがあるようです。
①Parallelsは基本有料版ということで除外しました。
②UTMは、M4チップのApple Siliconでは上手く動きませんでした。
そこで、消去法で、VM wareを選びました。ネット上の紹介記事によっては、M4チップとVM wareは相性が悪いようですが、幸いにして僕の環境では問題なく動いています。

Kali Linux

ハッキング環境や解析環境で有名なのがKali Linuxです。定番ですね。
公式サイトから、Debian 12.x64 ビットARMを選びました。
もっとも、App Sillicionに対応しきれていないためか、立ち上げには結構手間取りました。

解析対象の不正アプリ

解析対象とする不正アプリは、Android用のアプリであるAPKファイルを対象とします。APKファイルとは、「Android Package Kit」の略です。Androidすマーフォン用のアプリは拡張子がファイル名の末尾の".apk"となります。
APKファイルを解析対象とした理由は、リバースエンジニアリング(※)を通じて解析しやすい構造を持っているためです。
(※)正確には逆コンパイル/デコンパイルを専ら利用しますが、本ブログでは一般的に馴染みのある(?)リバースエンジニアリングと書くことにします。

この点を詳述すると、APKファイルは、内部的にはZIP形式で圧縮されたアーカイブであり、これを展開するとアプリに含まれるリソースファイル(画像、レイアウト、マニフェストなどや、classes.dex という実行コードを確認できます。classes.dex はJavaまたはKotlinで書かれたソースコードをDalvikバイトコードに変換したものであり、これをリバースエンジニアリングのツールを用いて解析することで、開発者が記述したロジックや挙動を人間が理解可能な形に復元することができます。

一方、iPhoneのiOS向けのアプリはIPAファイルとして配布されますが、これはApple独自の暗号化や署名によって強く保護されており、バイナリレベルでの難読化が進んでいるため、コード解析の難易度が非常に高いのが実情です。また、iOSのアプリはコンパイル後にObjective-CやSwiftのソースコード構造がほとんど失われるため、リバースエンジニアリングによっても元の処理ロジックを正確に把握することは困難です。

要するに、不正アプリを解体してソースコードベースに戻すにはAndroid用のアプリであるAPKファイルが適しているというものです。
この点は非常に重要で、iPhone用のIPAファイルだけではなく、パソコンやサーバーに対するマルウェア/コンピューターウイルスもリバースエンジニアリングが困難なので、ソースコードが復元できず、その結果、解析には特殊なノウハウが必要です。
一方で、Android用のAPKファイルだけは、リバースエンジニアリングが比較的容易なので、不正アプリのソースコードの仕組みを知る上では最適です。

なお、「7-1. iPhoneとAndroidのサイバーリスクの比較」で詳述しますが、Androidの方がiPhoneよりも狙われやすいのは、リバースエンジニアリングがしやすいという点も大きいと考えます。不正アプリの仕組みが簡単に把握できるので、改良もしやすいからです。

解析対象のAPKファイルについては、以後のブログで個別に用意します。

解析ツール"MobSF"

リバースエンジニアリング用の主要なツールとしてMobile Security Framework(以下「MobSF」)を使用します。MobSFは、Android/iOSのアプリ用のリバースエンジニアリング、ペネトレーションテスト、セキュリティ評価を自動化したオールインワンのフレームワークです。

すごい便利で強力な解析ツールです。開発者に心から敬意と感謝を表します。

Kali Linuxの環境にMobSFをインストールしようとしたら、バージョンが合わず苦労したので、docker版がお勧めです。

Kaliにdockerが入っていることを前提に、
【ステップ1】MobSF の dockerイメージをKali Linuxにダウンロード

docker pull opensecurity/mobile-security-framework-mobsf

【ステップ2】MobSFを起動

docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf

【ステップ3】ブラウザ(KaliのデフォルトブラウザはFireFoxです。)を開いて、URLバーに以下を入力

http://127.0.0.1:8000

これでブラウザ上にMobSFが立ち上がります。

初回のUsernameとPasswordはmobsfです。あとはここにスパイアプリをアップロードすれば、十数秒でリバースエンジニアリングしてくれます。

Discussion