2. スマホセキュリティブログ 環境構築
MacBook air(M4チップ)に以下の環境を構築します。
- Virtual Box
- Kali Linux
- サンプルとなるAndroid OS用のスパイアプリのAPKファイル
- mobSecurityFramework
上記のうち、Virtual BoxとKali Linuxは定番かと思いますので説明は割愛します。
解析対象とするRAT(Remote Access Trojan/Tool)は、Android向けのAPKファイルを対象とします。その理由は、Androidアプリの配布形式であるAPKファイルが、リバースエンジニアリングを通じて解析しやすい構造を持っているためです。
APK(Android Package)は、内部的にはZIP形式で圧縮されたアーカイブであり、これを展開するとアプリに含まれるリソースファイル(画像、レイアウト、マニフェストなどや、classes.dex という実行コードを確認できます。classes.dex はJavaまたはKotlinで書かれたソースコードをDalvikバイトコードに変換したものであり、これを逆コンパイルツールを用いて解析することで、開発者が記述したロジックや挙動を人間が理解可能な形に復元することができます。
一方、iOS向けのアプリケーションはIPAファイルとして配布されますが、これはApple独自の暗号化や署名によって強く保護されており、バイナリレベルでの難読化が進んでいるため、コード解析の難易度が非常に高いのが実情です。また、iOSのアプリはコンパイル後にObjective-CやSwiftのソースコード構造がほとんど失われるため、逆コンパイルしても元の処理ロジックを正確に把握することは困難です。
そのため、RATの特徴をソースコードベースで静的に解析する観点からは、Android用のAPKファイル用が適しています。
APKファイルについては、以後のブログで個別に用意します。
リバースエンジニアリング用の主要なツールとして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