Hello there, ('ω')ノ
✅ チェックリストの構成イメージ(主要6カテゴリ)
| カテゴリ | 内容 |
|---|---|
| 基本設定 | アプリ設定・パーミッションなど |
| 静的解析 | ソースコード/バイナリ解析 |
| 動的解析 | 実行中の挙動チェック |
| 通信・暗号 | ネットワークとデータ保護の確認 |
| ストレージ・ログ | 保存データ・ログ出力の安全性 |
| その他 | 外部連携・SDK・署名など |
✅ 診断チェックリスト(例)
| No | 診断項目 | 内容 | チェック結果 | 備考 |
|---|---|---|---|---|
| 1 | allowBackup の無効化 |
AndroidManifestで false か |
✅ / ❌ / 要確認 | |
| 2 | debuggable の無効化 |
リリースビルドで debuggable=false か |
✅ | |
| 3 | Exported Activityの制限 | 不要な exported は無効化済みか |
❌ | LoginActivityが外部公開中 |
| 4 | モバイルフレームワークの脆弱性確認 | 使用ライブラリにCVEがないか | ✅ | MobSFで確認済み |
| 5 | 通信の暗号化 | HTTPSを使用し、SSLピンニングされているか | ❌ | HTTP通信あり |
| 6 | 平文保存データ | 外部ストレージやログに個人情報を保存していないか | ✅ |
👉 上記のような表をGoogleスプレッドシートやExcelで作っておくと、チームでも共有しやすく、更新も簡単です。
✅ 各ステップごとのチェックポイント
🛠 ステップ1:診断準備
- [ ] 対象アプリのAPKを取得済み
- [ ] テスト用端末(物理 or エミュレータ)準備
- [ ] MobSF / JADX / Burp Suite / Fridaなどの環境構築済み
- [ ] テスト用ネットワーク環境(MITMできるWi-Fiなど)
🔍 ステップ2:静的解析
- [ ]
AndroidManifest.xmlの確認(設定ミス、不要なExportedなど) - [ ] パーミッションと使用APIの確認
- [ ] ハードコードされた認証情報の有無
- [ ] 使用ライブラリの脆弱性(CVE)チェック
- [ ] Javaコードに脆弱な処理が含まれていないか(WebView、ファイル操作など)
🚦 ステップ3:動的解析
- [ ] ログ出力に機密情報が含まれていないか
- [ ] 通信内容の盗聴・改ざんテスト(Burp Suite)
- [ ] Fridaを用いたランタイム挙動の確認
- [ ] デバイスルート状態での診断(任意コード実行や内部DBアクセス)
🔐 ステップ4:通信と暗号
- [ ] 通信はすべてHTTPSを使用しているか
- [ ] SSLピンニングが導入されているか
- [ ] 暗号処理に脆弱なアルゴリズム(例:AES ECB)が使われていないか
- [ ] 鍵や秘密情報がハードコードされていないか
💾 ステップ5:ストレージとログ
- [ ] 外部ストレージに機密データが保存されていないか
- [ ] SQLiteやRealmに保存されるデータの暗号化確認
- [ ] Logcatにユーザー入力やトークンが出力されていないか
- [ ] クラッシュレポートに内部情報が含まれていないか
🌐 ステップ6:外部連携とその他
- [ ] 利用中のSDKや外部APIの安全性確認
- [ ] URLスキームの誤設定がないか
- [ ] インテント受信制限が適切に設定されているか
- [ ] 署名やアプリ整合性チェックの仕組みが存在するか
✅ 活用方法のコツ
| シーン | 使い方 |
|---|---|
| 個人作業 | 自分の進捗チェックや忘れ防止に |
| チーム診断 | 担当分け+進捗共有に最適(スプレッドシート形式がおすすめ) |
| レポート作成前 | 漏れがないかの最終確認として |
✅ まとめ
- 診断チェックリストは「地図」として機能する超重要ツール
- 分担・進捗・網羅性のすべてをカバーできる
- チーム運用・教育・自動化(CI/CD連携)にも応用可能
Best regards, (^^ゞ