コース目次 / 第0章

はじめに — 静的解析という、軽量な入口

モバイル診断のうち、このコースが「動かさず読む」静的解析だけを扱うことを確認します。apktool/jadxという道具と、対象は自作の練習用APKだけであることを押さえ、法と倫理ゲートに同意します。

第0章 / 全6章目安 約6分この章のゴール: モバイル診断における静的解析の位置づけと、このコースの環境を理解する

sec-audit で、コードを「動かさずに読む」ホワイトボックス診断を学びました。このコースは、その考え方をモバイルアプリに応用します。

静的解析と、動的解析

モバイルアプリの診断にも、ブラックボックス(動かして攻撃する)とホワイトボックス(読む)の区別があります。
静的解析 — アプリのファイル(APK)を展開・逆コンパイルして、中身を読む。実機もエミュレータも要りません。
動的解析 — 実機やエミュレータでアプリを実際に動かし、通信を傍受したり、実行時の挙動を観察したりする。専用の環境が要ります。
このコースは、静的解析だけを扱います。実機・エミュレータでの動的解析は、より重い環境が要る発展課題として、このコースの範囲外に置きます。

対象は、自分で作る練習用APK

法と倫理ゲート

手を動かす前に

このコースは攻撃の技術に触れます。実習してよい相手は、次の3つだけです。

  • (a) 自分で作った練習用のやられ環境(このサイトが配る自作ターゲット)
  • (b) あなた自身の許可された環境(自分の Thousand SKY・secret-notes-ctf など)
  • (c) CTF 競技の中(規約の範囲で)

実在する第三者のシステムを許可なく触ることは、不正アクセス禁止法に触れます。 このゲートは、その線引きを毎回の入口で確かめるためのものです。詳しくは「セキュリティの法と倫理」へ。

このコースで解析するのは、あなた自身がこの後の章で、自分の手でビルドする、練習用のAPKだけです。実在するアプリ(ストアで配布されているアプリや、他人の作ったアプリ)を無断で解析することはありません(法と倫理)。
学んだ読み方は、そのままあなた自身が許可を得て診断する、実在のアプリにも使えます。

道具 — Android Studio は、使いません

モバイルアプリの解析というと、Android Studio や巨大な SDK 一式を思い浮かべるかもしれません。このコースは、もっと軽量な道具だけで進めます。
apktool — APKを、リソースやマニフェストまで含めて逆コンパイル・再ビルドできるツール。
jadx — DEX(Androidの実行バイトコード)を、読みやすい Java 風のソースに逆コンパイルするツール。
jarsigner(JDK標準)— 自己署名でAPKに署名する。
この3つと、標準の Java(javac は使いません、apktool が内部でアセンブルします)があれば、Android SDK 一式が無くても、APKの構築と解析の基本が学べます。

apktool --version
jadx --version
jarsigner

すべて動けば準備完了です。

このコースの地図

章 学ぶこと
第1章 標的を立てる — smaliソースから、練習用APKをビルドする
第2章 ハードコードされた秘密を見つける
第3章 マニフェストの誤設定を見つける
第4章 直す — 秘密を抜き、マニフェストを締める

準備ができたら、次の章へ。まずは、練習用APKを自分の手でビルドします。

こうなっていればOK

卒業まであと5章です。

この章はまだ完了していません。