コース目次 / 第0章
はじめに — 静的解析という、軽量な入口
モバイル診断のうち、このコースが「動かさず読む」静的解析だけを扱うことを確認します。apktool/jadxという道具と、対象は自作の練習用APKだけであることを押さえ、法と倫理ゲートに同意します。
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章です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。