paint-brush
倫理的なハッカーがあらゆるモバイル デバイスに侵入する方法を明らかに (合法的に!)@sekurno
1,013 測定値
1,013 測定値

倫理的なハッカーがあらゆるモバイル デバイスに侵入する方法を明らかに (合法的に!)

Sekurno16m2025/02/03
Read on Terminal Reader

長すぎる; 読むには

モバイル ペネトレーション テストは、アプリに侵入する独創的な方法を見つけることです。モバイル アプリ (Android と iOS) にはそれぞれ独自のルール、セキュリティ モデル、癖があるため、標準的な Web ペネトレーション テストとは異なります。一般的な課題には、ルート/ジェイルブレイク検出への対処、SSL ピンニングのバイパス、クライアント側とサーバー側の両方のロジックの分析などがあります。
featured image - 倫理的なハッカーがあらゆるモバイル デバイスに侵入する方法を明らかに (合法的に!)
Sekurno HackerNoon profile picture
0-item

モバイル アプリは、ユーザーのパスワードから支払いの詳細まですべてを保存するデジタル金庫のようなものだと考えてください。侵入テスターとしてのあなたの仕事は、実際の攻撃者が侵入を試みる前に、金庫がしっかりと封印されていることを確認することです。このガイドでは、適切なツールの収集からコードとトラフィックの分析まで、モバイル侵入テストの全プロセスについて説明します。さあ、始めましょう!

導入

私たちは、モバイル デバイスが私たちの延長のような世界に住んでいます。人々は携帯電話で銀行取引ショッピング交流を行うため、アプリのセキュリティを確保することが最も重要です。モバイル ペネトレーション テストが重要なのはそのためです。アプリに対する攻撃をシミュレートして弱点を明らかにし、開発者がパッチを適用できるように支援します。


あなたにとってのメリットは次のとおりです:


  • 安心: データの漏洩や資格情報の盗難で心配する必要がなくなります。
  • コンプライアンス: 規制当局 (およびユーザー) は強力な保護基準を要求します。
  • 評判の向上: 安全なアプリは、顧客満足度の向上と、否定的な見出しのリスクの低減につながります。

モバイル侵入テストとは何ですか?

本質的に、モバイル ペネトレーション テストは、実際の攻撃者と同じように、アプリに侵入する独創的な方法を見つけて、まず弱点を修正することです。モバイル アプリには次のような特徴があるため、標準的な Web ペネトレーション テストとは異なります。


  • 独自のプラットフォームで実行: Android と iOS にはそれぞれ独自のルール、セキュリティ モデル、癖があります。

  • デバイスにデータを保存する: 機密情報はローカルに保存される可能性があるため、デバイス固有のストレージを調べることが重要です。

  • API に大きく依存する: モバイル アプリは多くの場合、API を介してバックエンド サーバーと通信しますが、適切にテストされていない場合は、API が誤って構成されたり、脆弱になったりする可能性があります。


一般的な課題としては、ルート/ジェイルブレイクの検出SSL ピンニングのバイパス、クライアント側サーバー側の両方のロジックの分析などが挙げられます。

モバイルアプリケーションに対する一般的な脅威

中世の要塞を想像してみてください。攻撃者が狙う典型的な「弱点」は次のとおりです。


  1. 安全でないデータストレージ
    • 機密トークンまたはユーザー資格情報はデバイス上で暗号化されずに残ります。
  2. サーバー側の制御が弱い
    • 入力検証が欠落しているか、API ロジックに欠陥があり、ハッカーが悪用する可能性があります。
  3. 不十分なトランスポート層保護
    • HTTP または欠陥のある HTTPS を使用すると、攻撃者がネットワーク トラフィックを傍受または変更できるようになります。
  4. 安全でない認証と承認
    • ログイン システム、セッション管理、または権限チェックが適切に実装されていない。
  5. クライアント側の脆弱性
    • リバースエンジニアリングによって秘密を明らかにできるコード、または実行時に操作できるロジック。


これらのリスクの詳細については、 OWASP Mobile Top 10Mobile Application Security Testing Guide (MASTG)を参照してください。これらは、起こり得るすべての落とし穴を強調表示する地図のようなものです。


https://owasp.org/www-project-mobile-top-10/


モバイルテストの準備

城を襲撃する前に、適切な防具と武器が必要です。侵入テストの用語で言えば、それは現実世界のデータに害を与えることなく安全に実験できる環境を設定することを意味します。Android と iOS の両方について基本を説明しましょう。

アンドロイド

Android アプリをテストする場合、 Android EmulatorGenymotionなどのツールを使用して仮想デバイスを起動できます。これらのエミュレータを使用すると、物理デバイスを必要とせずにアプリをすばやくインストールしてテストできます。セットアップの詳細な手順については、 このガイドを参照してください。


Android エミュレータ


Android エミュレータ

ただし、物理デバイスを使用すると、特に現実世界のネットワーク状況、センサー、または生体認証をテストする必要がある場合は、より正確な結果が得られることが多いです。ルート チェックや詳細なデータ フォレンジックなどのより高度なテストを計画している場合は、実際のハードウェアがあることが大きな利点になります。


専用デバイスを購入または借りる場合は、一部の Android スマートフォンはルート化が容易であることに留意してください。ルート化により、オペレーティング システムへのより深いアクセスが可能になり、隠しファイルの分析、アプリの制限の回避、および高度な権限を必要とする強力なツールの実行が可能になります。


ルート化

Android のルート化は、携帯電話のオペレーティング システムのスケルトン キーを見つけるようなものです。通常は、次の操作を行います。

  1. ブートローダーのロックを解除します。
  2. カスタムリカバリ(例:TWRP)をフラッシュします。
  3. MagiskSuperSUなどのルート管理ツールをインストールします。

各電話と OS バージョンには癖があるため、何度か試してみる覚悟が必要です。幸いなことに、デバイスを一度ルート化すると、工場出荷時の設定にリセットするかファームウェアをアップグレードしない限り、通常はそのままの状態が維持されます。iOS のジェイルブレイクは再起動後に失われる可能性があることに留意してください。そのため、Android ではテスト用のより永続的なプラットフォームが提供される場合があります。


常にお使いの携帯電話の信頼できるガイドに従ってください。不適切なルート化はソフトウェアを破損させたり、セキュリティホールを生じさせたりする可能性があります。そしてもちろん、始める前にデータをバックアップしてください! Pixel 3a のルート化の例

プロキシ

Burp Suite のようなプロキシを「スパイグラス」と考えてください。アプリに出入りするすべてのトラフィックを確認し、変更できます。安全でない通信、不完全な認証、または怪しいリクエストをキャッチできます。モバイル用のプロキシの設定は、iOS と Android で同様です。各プラットフォームの公式手順は、こちら で確認できます。


特定のフレームワークでは状況が複雑になります:


  • Xamarin は、カスタム ネットワーク ライブラリが原因で、システム全体のプロキシ設定を無視することがあります。

  • Flutter はプロキシを尊重する可能性がありますが、証明書のピン留めを強制し、トラフィックの表示をブロックする可能性があります。


これらのハードルを克服するには、コードを微調整したり、 FridaObjectionなどのツールを使用してピン留めをオフにしたり、リバース プロキシ (例: mitmproxy ) を設定してトラフィックをキャプチャしたりすることができます。アプローチを適応させることも楽しみの 1 つです。

アプリのインストール

アプリがまだ Google Play ストアにない場合は (ペンテストではよくあることです)、サイドロードするAPK ファイルがある可能性があります。APK は、Google ドライブまたは直接ダウンロード リンクを通じて共有できます。もう 1 つの便利なオプションは、関係者に招待状を送信してテストを整理するFirebase App Distribution を使用することです。


https://firebase.google.com/codelabs/appdistribution-android#0

iOS

iOS では、物理デバイスが最も本格的なテスト体験を提供します。 Face IDTouch ID 、センサーなどのハードウェア固有の機能を詳しく調べながら、リアルなネットワーク インタラクションもキャプチャできます。個人用デバイスを購入または使用する場合、脱獄が簡単であることが知られているモデルを検討してください (すべての iPhone がこのプロセスに同じように適応しているわけではないため)。仮想 iOS デバイスが必要な場合は、 Corellium が強力なクラウドベースのテストを提供しますが、無料ではありません。ほとんどのテスターは、徹底的なチェックのために依然として物理デバイスに依存しています。


iPhone 8 の AppleDB の例


脱獄

iOS の Jailbreaking は、 Apple がデバイスにかけた南京錠を外すのと同じような感覚です。ルート権限を取得して、微調整をインストールしたり、隠しファイル ディレクトリを探索したり、高度な侵入テスト スクリプトを実行したりできるようになります。人気のツールには、 unc0verCheckra1n などがあります。最適な選択は、iOS のバージョンとデバイス モデルによって異なります。


覚えて:

  • 新しいデバイスでは、脱獄がより困難になる可能性があります。
  • 一部のジェイルブレイクは、再起動すると無効になります(「半アンテザード」)。
  • システムファイルを変更する前に、必ず iPhone をバックアップしてください


また、デバイスを再起動すると特定のセキュリティ レイヤーが自動的に再アクティブ化されるため、電源を入れるたびに再度ジェイルブレイクする必要がある場合があることに注意してください。

アプリのインストール

iOS アプリはIPAファイルで提供されます。これは Android の APK に似ています。ジェイルブレイクされたスマートフォンでは、 Filzaなどのファイル マネージャーやSideloadlyなどのアプリを使用して IPA をインストールできます。より正式な方法としては、開発者はTestFlightを利用することが多いです。TestFlight を使用すると、メールでテスターを招待できます。リンクをタップするだけで、あとは iOS が処理します。


サイドロードリーツール


適切な環境を設定すること、つまり適切なデバイス (仮想または物理) を選択し、プロキシを構成し、アプリをサイドロードする方法を理解することで、アプリの内部動作を詳細に調査する準備が整います。多少の調整が必要になるかもしれませんが、完璧な設定ができたら、実際のペネトレーションテストを開始できます。

静的解析(SAST)

次に、アプリ自体の調査に移りましょう。ただし、完全に実行する必要はありません。これは、城の中に入る前に設計図を読むようなものです。コードや構成ファイル内のハードコードされた秘密安全でない構成、その他の問題を探します。

重点的に取り組むべき分野

  1. ハードコードされた秘密

    API キー、トークン、認証情報、暗号化キーは、ソース コード内に直接含まれることがあります。攻撃者がアプリをリバース エンジニアリングすると、最小限の労力でこれらの秘密を抜き出し、ユーザーやサービスになりすますことができます。

  2. 安全でない構成

    権限が過度に緩い、デバッグ フラグが有効になっている、または署名が不適切であるなどの理由で、アプリの防御に穴があいてしまう可能性があります。iOS Info.plist の NSAllowsArbitraryLoads や android:debuggable="true" などの設定 1 つで、中間者 (MITM) 攻撃や保護されていないデバッグ攻撃が発生する可能性があります。

  3. 機密データの漏洩

    セッション トークンや個人情報をデバイス (ログ、共有設定、ローカル ファイル) にプレーン テキストで保存すると、災害の原因になります。物理的にアクセスできる人や、ルート化/ジェイルブレイクされた電話を持っている人なら誰でも、ブルート フォース攻撃をしなくても、覗き見して貴重なデータを盗むことができます。

  4. アプリのロジックと欠陥

    多くの場合、根本的な問題は機能の実装方法に起因します。認証などの重要なチェックが欠落していたり、厳密に実施されていない場合、攻撃者は簡単に防御を回避できます。同様に、弱い暗号化機能や保護されていないアプリ コンポーネントも、アプリを調査する人にとっては容易な作業となります。

MSTG チェックリスト

モバイル セキュリティ テスト ガイド (MSTG) では、静的分析を体系的に取り組むのに役立つ徹底的なチェックリストを提供しています。

  • [ ] MSTG-STORAGE-1 : 機密データはデバイス上に暗号化されずに保存されません。
  • [ ] MSTG-STORAGE-2 : 共有ストレージには機密データは保存されていません。
  • [ ] MSTG-CRYPTO-1 : 暗号化アルゴリズムとライブラリの適切な使用。
  • [ ] MSTG-NETWORK-1 : 安全な通信チャネル(例:HTTPS/TLS)。
  • [ ] MSTG-CODE-1 : ソースコード内にハードコードされた秘密が存在しない。
  • [ ] MSTG-CODE-3 : コードの難読化が適切に適用されている。
  • [ ] MSTG-RESILIENCE-1 : リバースエンジニアリングに対する保護。
  • [ ] MSTG-RESILIENCE-2 : デバッグ機能は運用環境では無効化されている。
  • [ ] MSTG-PRIVACY-1 : ユーザー権限と個人データの適切な取り扱い。

SAST ツール

さまざまなツールを使用すると、アプリを実行せずにコード、構成、バイナリを分析できます。


MobSF (モバイル セキュリティ フレームワーク)

使用方法: APK/IPA をプラグインすると、MobSF が詳細なレポートを生成します。潜在的な構成ミス、疑わしい権限、またはハードコードされたシークレットがリストされます。


ボーナス: いくつかの動的機能も備えており、優れたオールインワン ソリューションとなっています。


AndroGoat アプリの MobSF の例 https://mobsf.live/


APKツール(Android)

使用方法: APK を逆コンパイルしてから再コンパイルして、中身を確認します。これは、AndroidManifest.xml の読み取り、リソースの調査、アプリの調整に最適です。


apktool d app.apk -o output_director


JADX (Android)

用途: Dalvik バイトコード (.dex) を読み取り可能な Java に変換します。API キーなどの潜在的な脆弱性を持つコード行を見つけるのに最適です。


jadx app.apk -d output_directory


クラスダンプ、ホッパー、ギドラ(iOS)

使用方法: Objective-C クラス ヘッダー (Class-Dump) を抽出したり、iOS バイナリ (Hopper/Ghidra) を逆アセンブルします。アプリが Swift 化されている場合は、Swift メタデータも表示されます。

アンドロイド

  • 情報開示


AndroidManifest.xml ファイルの例


  • Android アプリは、 APKToolJADXMobSFなどのツールを使用してAPKファイルから逆コンパイルできます。

    このプロセスにより、ソース コード、アプリケーション構造、AndroidManifest.xml や .smali ファイルなどの機密コンポーネントが公開され、アプリのロジックや権限が公開される可能性があります。


  • クリアテキストトラフィックの許可

<application android:usesCleartextTraffic="true" />


攻撃者は、暗号化されていない (HTTP) 通信を悪用して盗聴や改ざんを行う可能性があります。


  • デバッグ可能なアプリケーション

<application android:debuggable="true" />


デバイス (またはエミュレーター) を持っている人なら誰でも、デバッガーを接続して機密データやロジックを調べることができます。


  • ハードコードされた API キー

public class ApiClient { private static final String API_KEY = "12345-abcdef-67890"; private static final String API_SECRET = "superSecretPassword123!"; }


APKTool または JADX を使用して簡単に逆コンパイルすると、これらのキーが明らかになり、攻撃者がアプリを偽装したり、不正にバックエンド サービスにアクセスしたりできるようになります。


  • プレーンテキストの機密データ

<map> <string name="session_token">abc123XYZ987</string> <string name="user_email">user@example.com</string> </map>


トークンまたはユーザーの詳細がプレーンテキストで保存されている場合、ルート化されたデバイスはそれらを簡単に抽出できます。

iOS

  • Info.plist の設定が誤っています

<key>NSAppTransportSecurity</key> <dict>

<key>NSAllowsArbitraryLoads</key> <true/> </dict>


Apple はデフォルトで安全な接続を強制するため、これを無効にするとアプリが MITM リスクや暗号化されていないトラフィックにさらされることになります。


Class-DumpHopper DisassemblerGhidraなどの逆コンパイル ツールは、Objective-C クラス、メソッド名、バイナリ ファイルなど、アプリのIPAファイルのコンテンツを抽出します。


情報.plist


動的解析 (DAST)

静的分析が城の設計図を調べることなら、動的分析は城の中を歩き回りながらすべてのドアと窓をチェックすることです。アプリを実行して動作を観察し、リアルタイムで弱点を突けるかどうかを確認します。

重点的に取り組むべき分野

  1. ネットワーク通信

    アプリのデータが転送中に漏洩していないことを確認してください。アプリが HTTP または不適切に構成された HTTPS に依存している場合、攻撃者が介入してデータを傍受したり、変更したりする可能性があります。SSL /TLS 証明書のピン留めが欠落しているか弱い場合も同様で、アプリが中間者 (MITM) 攻撃にさらされることになります。

  2. 認証と承認

    ログイン画面とユーザー ロールが紙の上では適切に見えても、実際のテストは実行時に誰かがそれらを回避できるかどうかです。たとえば、攻撃者はセッション トークンを再利用したり推測したりできますか? アプリは正しくタイムアウトしますか、それともセッションを永久に開いたままにしますか?

  3. ランタイム整合性とセキュリティチェック

    多くのアプリは、デバイスがルート化されているか (Android)、またはジェイルブレイクされているか (iOS) を検出し、特定の機能の実行を拒否またはブロックしようとします。動的分析中は、アプリのコードにフックしてこれらのチェックをすり抜けることができるかどうかを確認し、とにかくテストを続行できるようにします。これらの対策を簡単に回避できる場合、攻撃者も同様に回避できます。

  4. 実行中のデータ漏洩

    アプリは機密情報(パスワードやトークンなど)をプレーンテキストで記録していますか? アプリを切り替えたり、デバイスをバックグラウンドにしたりしても、機密データを含むキャプチャされた画面が表示されたままになっていますか? このような意図しない「パンくず」の痕跡は、攻撃者を宝物へと導く可能性があります。

  5. APIとサーバー側検証

    クライアントの観点からはアプリは安全に見えても、バックエンド API がユーザーの権限や入力を検証しない場合、攻撃者がリクエストをその場で微調整して不正アクセスを取得したり、システムを破壊したりする可能性があります。クライアントとサーバーの両方の動作を同時にテストすることが重要です。

MSTG チェックリスト

モバイル セキュリティ テスト ガイド (MSTG) では、動的分析についても取り上げています。次に、留意すべきチェック事項をいくつか示します。


  • [ ] MSTG-RESILIENCE-1 : アプリは改ざんやリバースエンジニアリングの試みを検出し、防止します。

  • [ ] MSTG-RESILIENCE-2 : アプリはルート化またはジェイルブレイクされたデバイスを検出します。

  • [ ] MSTG-RESILIENCE-3 : アプリは実行時にコードとリソースの整合性を検証します。

  • [ ] MSTG-NETWORK-1 : アプリは強力な暗号化技術を使用してすべてのネットワークトラフィックを暗号化します。

  • [ ] MSTG-NETWORK-3 : アプリは該当する場合、証明書のピン留めを強制します。

  • [ ] MSTG-PLATFORM-1 : アプリはプラットフォームのセキュリティメカニズムのみに依存せず、独立してセキュリティ対策を実施します。

  • [ ] MSTG-AUTH-2 : アプリはセッションタイムアウトとユーザーの再認証要件を適切に実施します。

  • [ ] MSTG-STORAGE-4 : アプリは機密データをシステムログに記録しません。

  • [ ] MSTG-STORAGE-5 : アプリは機密データを安全でない場所に保存しません。

  • [ ] MSTG-CRYPTO-1 : アプリは実行時操作に最新の暗号化アルゴリズムを使用します。


これらは、実際のテストのためのロードマップのようなものだと考えてください。これらは、すべてのドアや窓を体系的に調べて、施錠されていることを確認するのに役立ちます。

DAST ツール

コード検査に重点を置く SAST とは異なり、DAST はアプリの実行とチェックを中心に行います。以下は、そのプロセスをスムーズにする一般的なツールです。


Burp スイート/ OWASP ZAP

用途: どちらも、アプリとバックエンド サーバー間のトラフィックをキャプチャして変更できるインターセプト プロキシです。安全でないエンドポイント、セッションの欠陥、またはデータ漏洩を見つけるのに最適です。


Burp Suite プロキシ設定


フリーダ

用途: 実行中のプロセスにフックし、SSL ピンニング、ルート/ジェイルブレイク検出、またはその他のクライアント側の制限を回避するのに役立つ動的インストルメンテーション ツールキット。


フリーダツール



一般的なFridaコマンド

アクション

指示

実行中のプロセスにアタッチする

frida -U -n <process_name>

実行中のすべてのプロセスを一覧表示する

frida-ps -U

カスタムスクリプトを挿入する

frida -U -n <process_name> -c script.js

トレース固有の機能

frida-trace -U -n <process_name>

特定の関数をフックする

frida -U -n <process_name> --eval 'Interceptor.attach(Module.findExportByName(null, "function_name"), { onEnter: function (args) { console.log(args[0].toInt32()); } })'


ドロザー(Android)

用途: アクティビティ、サービス、ブロードキャスト レシーバー、コンテンツ プロバイダーなどの Android コンポーネントのセキュリティ上の弱点をスキャンすることに重点を置いています。


ドロザーツール



一般的なDrozerコマンド

アクション

指示

デバイスに接続する

drozer console connect

アクティビティを列挙する

run app.activity.info -a <package_name>

エクスポートされたアクティビティを操作する

run app.activity.start --component <package_name> <activity_name>

SQLインジェクションのテスト

run scanner.provider.injection -a <package_name>


異議

使用方法: Frida 上に構築されていますが、SSL ピンニングの無効化やアプリのファイルシステムの調査などのタスク用のよりシンプルなコマンドを備えています。スクリプトの達人でない場合に最適です。


異議申し立てツール



一般的な異議申し立てコマンド

アクション

指示

実行中のアプリにアタッチする

objection -g <app_package> explore

SSLピンニングを無効にする

android sslpinning disable / ios sslpinning disable

アプリケーション情報を印刷

android application info or ios application info


アンドロイド

  • ネットワーク傍受と変更

Burp Suiteなどのツールを介して Android トラフィックをルーティングすることで、テスターはリクエストを傍受して変更できます。たとえば、アプリが HTTP 経由で認証情報を送信したり、TLS 証明書を適切に検証できなかったりすると、攻撃者が中間者 (MITM)攻撃を実行する可能性があります。


POST /login HTTP/1.1 Host: api.example.com Content-Type: application/json { "username": "test_user", "password": "secret_password" }


セッション トークン、個人データ、または支払い情報が公開されたり、操作されたりする可能性があります。


  • 機密データを明らかにするデバッグログ

03-09 12:34:56.789 1234 5678 I MyAppLogger: User token = "abc123XYZ987" 03-09 12:34:56.789 1234 5678 I MyAppLogger: Payment info: "card_number=4111111111111111"


ADB (または悪意のあるアプリ) を持っている人なら誰でもこれらのログを読み取って悪用する可能性があります。


  • 安全でないアクティビティ / コンテンツプロバイダー


drozerツールからの出力例


Drozer を使用すると、テスターは認証を必要としないエクスポートされたアクティビティまたはコンテンツ プロバイダーを検出できます。

drozer console connect run app.provider.query

content://com.example.app.provider/users


適切な権限なしにデータが返されると、攻撃者がユーザーの情報を読み取ったり変更したりする可能性があります。


  • ルート検出のバイパス

FridaObjectionなどのツールを使用すると、実行時にルート検出や SSL ピンニング チェックをバイパスできます。

frida -U -n com.example.app --eval "..." objection -g com.example.app explore android sslpinning disable android root disable ios sslpinning disable ios root disable


ルート化された携帯電話の攻撃者は、機密機能のテストやフックを継続して実行し、秘密を漏らしたり、アプリのロジックを改ざんしたりすることができます。

iOS

  • 脱獄検出バイパス

iOSアプリのフックの例


多くの iOS アプリは、ジェイルブレイクされた電話を検出すると実行されません。Frida使用すると、検出メソッドをフックしてオーバーライドできます。

Interceptor.attach(Module.findExportByName(null, "jailbreakDetectionFunction"), { onEnter: function (args) { console.log("Bypassed jailbreak check!"); // Force return a 'clean' status } });


攻撃者は侵害されたデバイス上でアプリを実行し、データやフックを調べます。


  • システムログ内の機密データ

2023-03-09 12:34:56.789 MyApp[1234:5678] Payment info: card_number=4111111111111111 2023-03-09 12:34:56.789 MyApp[1234:5678] session_token=abc123XYZ987


ジェイルブレイクされたデバイスでは、または外部ログ収集を介して、攻撃者は機密データを直接収集します。

モバイル侵入テストにおける一般的な課題

  • プラットフォームの断片化: Android デバイスは OS バージョン、カスタム ROM、製造元による変更が大きく異なるため、テストが複雑になります。
  • アプリケーションのセキュリティ対策: SSL ピンニング、ルート/ジェイルブレイク検出、難読化などの機能は、侵入テストを妨げる可能性があります。
  • ソース コードへのアクセスが制限されている: ブラック ボックス テストでは、多くの場合、APKTool や JADX などのツールを使用したリバース エンジニアリングが必要になり、時間がかかります。
  • 動的分析の制限: サンドボックス化、メモリ保護、ルート化/ジェイルブレイクされたデバイスの必要性により、実際のワークフロー テストが複雑になります。
  • ネットワーク セキュリティとトラフィック検査: SSL ピンニング、証明書の検証、または VPN により、標準の MITM プロキシが阻止される可能性があります。バイパスには、 FridaBurp Suitemitmproxyなどのツールが不可欠になります。

よくある質問(FAQ)

  • モバイル ペネトレーション テストとは何ですか?

    実際の攻撃をシミュレートしてモバイル アプリの安全性をテストし、攻撃者よりも先に脆弱性を探します。

  • モバイル ペネトレーション テストが重要なのはなぜですか?

    スマートフォンには膨大な量の個人情報や金融データが保存されているため、サイバー犯罪者にとって格好の標的となっています。

  • 主な手順は何ですか?

    • 制御された環境を設定し、静的分析 (SAST) と動的分析 (DAST) を実行し、結果を文書化して、修正後に再テストします。
  • どのようなツールが必要ですか?

    トラフィック傍受用の Burp Suite または ZAP、スキャン用の MobSF、APKTool/JADX (Android)、Class-Dump/Hopper (iOS)、さらに Frida や Objection などのフック ツール。

  • どのくらいの頻度でペネトレーションテストを実施すべきでしょうか?

    メジャーアップデート、新機能、またはインフラストラクチャの大幅な変更の後。理想的には、継続的なチェックのために CI/CD に統合します。

  • 一般的な脆弱性とは何ですか?

    安全でないデータストレージ、HTTPS なし、ハードコードされたシークレット、不十分なセッション管理、および API の構成ミス。

  • すべてを自動化できますか?

    そうではありません。ツールは一部のスキャンを自動化できますが、手動テストでは、より厄介なロジックの欠陥や複雑なビジネス ルールが明らかになります。

  • Android と iOS の両方をテストする必要がありますか?

    はい、それぞれに独自のセキュリティ モデルと落とし穴があります。

  • ペネトレーションテストは合法ですか?

    アプリ所有者から明示的な許可を得ている場合は、もちろん可能です。そうでない場合は違法です。

  • どこから始めればいいでしょうか?

    OWASP モバイル セキュリティ テスト ガイド (MASTG) を学習し、基本的なリバース エンジニアリングを習得し、オープン ソース アプリまたはサンプル ターゲットを使用して練習します。

結論

モバイル ペネトレーション テストは壮大な冒険のようなものです。まず、装備 (ツールとデバイス) を集め、次に地形を偵察し(SAST)、最後に実践的なアプローチ (DAST) ですべての弱点を見つけます。これを定期的に実行し、発見した内容を報告することで、アプリの堅牢性とユーザーの安全を確保できます。


覚えておいてください: ソフトウェアは日々進化しており、脅威も同様です。開発ライフサイクルの継続的な一部としてペネトレーションテストを実施してください。王国を守る最善の方法は、決して油断しないことです。

著者について

この記事は、 Sekurnoのセキュリティ テスト エンジニアであるAnastasiia Tolkachovaが作成し、 Sekurnoの CTO であるAlex Rozhniatovskyiがレビューしました。Anastasiiaは、侵入テストとセキュリティ評価の実務経験が 5 年以上あります。彼女は、Web アプリケーション、インフラストラクチャ (オンプレミスとクラウドの両方)、モバイル プラットフォーム (iOS と Android) のテストを専門としています。彼女の専門知識は、ブラック ボックス、グレー ボックス、ホワイト ボックスの方法論に及び、脆弱性評価とソース コード セキュリティ レビューの熟練度も備えています。


Alexは開発とサイバーセキュリティの分野で 7 年間の経験があります。彼は AWS オープンソース コントリビューターであり、安全なコーディング手法の推進に尽力しています。彼の専門知識はソフトウェア開発とセキュリティのギャップを埋め、最新の Web アプリケーションを保護するための貴重な洞察を提供します。

モバイル侵入テストガイド: 参考資料

ツールとリソース

  1. モバイル セキュリティ フレームワーク MobSF
  2. アプリツール
  3. ジャドックス
  4. げっぷスイート
  5. フリーダ
  6. ドロザー
  7. 異議
  8. ジェニーモーション
  9. Corellium 仮想ハードウェア
  10. appledb.dev
  11. リフラッター
  12. プラットフォームツール
  13. マジスク
  14. ルートチェッカー
  15. チェックラ1n
  16. 未確認
  17. フィルザ

ガイドと記事

  1. OWASP モバイル トップ 10
  2. OWASP モバイル アプリケーション セキュリティ
  3. OWASPマスター
  4. NIST SP800-163
  5. Android Studioをダウンロードしてインストールする
  6. Burp Suite で動作するように Android デバイスを構成する
  7. Burp Suite Professional で動作するように iOS デバイスを構成する
  8. Xamarin アプリのハッキング