アプリ本体・通信・API の
3 層で診断する
スマートフォンアプリの脆弱性は、アプリ本体、アプリとサーバの通信、サーバ側の API の 3 層に潜んでいます。ツールによる網羅的な自動検査と、エンジニアによる手動検査を組み合わせて、この 3 層を診断します。
料金の目安お見積り
Three layers
診断する 3 つの層
アプリ本体(バイナリ)
IPA / APK とソースコードを対象に、アプリに組み込まれた弱点を探します。
静的検査(自動+手動)通信経路
アプリとサーバの間の通信を傍受し、やり取りされる内容と検証の実装を確かめます。
手動検査(プロキシ)サーバ側 API
バックエンドの処理を機能ごとに検査します。モバイル診断で最も脆弱性が見つかりやすい部分です。
手動検査(機能単位)iOS / Android
OS の特性に合わせて、手法を使い分ける
Android は解析環境を準備しやすい一方、iOS は Apple のセキュリティ機構により、アプリを動かしながらの詳しい解析が技術的に難しい場合があります。
iOS
静的検査が主軸
Jailbreak を前提にした動的解析は環境に左右されて不安定なため、IPA ファイルとソースコードの静的検査を主軸にします。通信の検査など、Jailbreak していない端末でできる範囲は手動検査で補います。
- 主軸静的検査(IPA+ソースコード)
- 動的検査非 Jailbreak 端末でできる範囲
- 通信検査プロキシによる傍受
Android
静的+動的検査
APK の取得や解析環境の構築が比較的容易なため、静的検査と動的検査の両方で進めます。実行時のデータの保存内容や、コンポーネント間の連携の不備など、動かして初めて見える挙動まで踏み込みます。
- 主軸静的+動的検査
- 動的検査root 化した端末で本格的に実施
- 通信検査プロキシ+実行時のバイパス
Static analysis
検査項目|アプリ本体・ソースコード
モバイルアプリのセキュリティ検証の国際標準 OWASP MASVS / MASTG をもとに、観点の抜け漏れがないように整理しています。
コンポーネント / IPC最重要
外部から不正に呼び出せる機能がないか(Android:exported・Intent・Deep Link/iOS:URL スキーム)。モバイルアプリで最も脆弱性が見つかりやすい項目として重点的に確認します。
機密情報のハードコード
API キー・秘密鍵・認証情報がコードに埋め込まれていないか。
ログ出力
ログに機密情報が混ざっていないか。
証明書の検証
通信相手を正しく検証する実装(SSL Pinning)があるか。
バイナリの保護
難読化や改ざん検知が実装されているか。
設定ファイル
iOS:Info.plist(ATS の無効化など)/Android:AndroidManifest.xml(不要な権限・debuggable・バックアップ許可など)。
Dynamic analysis
検査項目|実行時の検査(主に Android)
アプリを実際に動かし、静的な解析だけではわからない実行時の挙動を確かめます。
端末内のデータ保存
機密情報が平文で保存されていないかを確認します。iOS:Keychain / plist / SQLite、Android:SharedPreferences / SQLite / 外部ストレージ。
検知機能の回避耐性
root・Jailbreak の検知や証明書の検証が回避できないかを確かめます。保護機構があっても、実行時に無効化できてしまう場合があります。
メモリ上の機密情報
認証情報・トークン・復号後のデータなどが、実行中のメモリに残っていないかを確認します。
iOS では Jailbreak 環境が不安定なため、非 Jailbreak 端末でできる範囲に限ります。検査用ビルドをご提供いただくと、検査できる範囲が大きく広がります。
Network & server-side API
検査項目|通信・サーバ側 API
アプリとサーバの通信をプロキシで傍受し、機能ごとに入力の改ざんや再送信を行って、サーバ側の処理を検証します。観点は Web アプリケーション診断の API 診断とほぼ共通で、同じ品質基準で検査します。
認可制御の不備
ほかの人のデータにアクセスできないか(IDOR など)。
認証の不備
セッション管理やトークンの扱い。
業務ロジックの不備
想定外の操作で不正な処理が成立しないか。
入力値の検証
サーバ側で適切に検証しているか。
What we need
ご用意いただくもの
特に通信の手動検査を成り立たせるため、本番ビルドと検査用ビルドの 2 種類のご提供をおすすめしています。
| ご提供物 | 用途 | 補足 |
|---|---|---|
| 本番ビルド(IPA / APK) | 静的検査 | 実際に配布する製品そのもので、保護機構が正しく実装されているかを評価します。 |
| 検査用ビルド(IPA / APK) | 動的検査・通信検査 | SSL Pinning、root / Jailbreak 検知、改ざん・整合性検知を無効化し、debuggable 版や開発用プロファイルで署名したもの。保護が有効なままだと通信を傍受できず、機能単位の検査ができません。 |
| ソースコード | 静的検査 | 特に iOS で重要です。 |
| 補足情報 | 見積りの精度向上 | 難読化や各種検知の実装有無、対象 OS のバージョンなど。 |
本番ビルドだけでも診断はできます。その場合は当社で各種の保護を実行時に回避して対応しますが、難読化や強い改ざん検知があると追加の工数がかかったり、一部の検査ができなかったりすることがあります。iOS は検査用ビルドのご提供を強くおすすめします。
Process
進め方
標準的な進め方です。期間は規模に合わせて調整します。
- 01
事前準備・キックオフ
診断範囲を確定し、ご提供物と要件をすり合わせます。検査用ビルドを提供いただけるかは、ここで決めておくことをおすすめします。
- 02
ご提供物の受領
本番・検査用ビルドとソースコードを受け取り、検査環境を構築します。
- 03
静的検査
ツールによる自動解析と、エンジニアによるコードの確認を行います。
- 04
動的検査・通信検査
実機で機能ごとに手動検査し、サーバ側 API を検査します。
- 05
報告書の作成
見つかった事項を整理し、リスク評価と対策の方針をまとめます。
- 06
報告会
結果のご報告、質疑応答、対策のご相談を行います。
Pricing
料金の目安
Web・プラットフォーム診断(ビジネス・アドバンス)のオプションとして、iOS・Android アプリを追加することもできます。
表示価格はすべて税別です。対象の規模・機能数により変動します。
お見積り
FAQ
よくある質問
検査用ビルドを用意できない場合は?
本番ビルドだけでも診断できます。ただし、難読化や強い改ざん検知があると追加の工数がかかる、または一部の検査ができない場合があります。各種検知や難読化の実装有無を事前にお知らせいただくと、見積りの精度が上がります。
iOS と Android の両方を診断できますか?
できます。OS の特性に合わせて、iOS は静的検査を主軸に、Android は静的検査と動的検査の両方で進めます。サーバ側 API は両 OS で共通の場合、まとめて検査します。