Mobile Application Security Testing Checklist

This comprehensive mobile application security testing checklist covers critical aspects to consider when evaluating the safety of your mobile app. Each item includes a description, practical examples using common mobile pentesting tools, and additional resources for in-depth learning.

  • 1. Insecure Data Storage

    Check if sensitive data is stored securely on the mobile device.

    Examples:

    • MobSF

      mobsf --dynamic-analysis com.example.app

      Perform dynamic analysis to identify insecure data storage practices.

    • Frida

      frida -U -f com.example.app -l data_storage_hook.js

      Use Frida to hook into app functions and monitor data storage operations.

    Additional Resources:

  • 2. Insecure Communication

    Test for proper implementation of SSL/TLS and certificate pinning.

    Examples:

    • Burp Suite

      Configure Burp Suite as a proxy and intercept mobile app traffic.

      Analyze network traffic for insecure communications and potential MITM vulnerabilities.

    • OWASP ZAP

      zap-cli quick-scan -s -t https://api.example.com

      Scan the API endpoints used by the mobile app for security issues.

  • 3. Insufficient Cryptography

    Verify that proper encryption algorithms and key management are used.

    Examples:

    • Androguard

      androguard analyze --show-crypto app.apk

      Analyze the app's use of cryptographic APIs and identify potential weaknesses.

    • idb

      idb analyze --crypto app.ipa

      For iOS apps, analyze the binary for cryptographic implementations.

  • 4. Improper Platform Usage

    Check if the app follows platform-specific security best practices.

    Examples:

    • Android Lint

      lint --check SecurityCheck /path/to/android/project

      Static analysis tool to identify potential security issues in Android code.

    • SwiftLint

      swiftlint lint --config .swiftlint.yml

      Linter for Swift projects to enforce style and security conventions.

  • 5. Client Code Quality

    Assess the quality and security of the client-side code.

    Examples:

    • SonarQube

      sonar-scanner -Dsonar.projectKey=mobile-app

      Perform static code analysis to identify code quality issues and vulnerabilities.

    • MobSF

      mobsf --static-analysis app.apk

      Conduct static analysis of the mobile app to identify potential security flaws.

  • 6. Reverse Engineering

    Test the app's resilience against reverse engineering attempts.

    Examples:

    • Apktool

      apktool d app.apk

      Decompile the Android app to analyze its contents and structure.

    • Hopper

      hopper app.ipa

      Disassemble and analyze iOS app binaries to understand their inner workings.

  • 7. Extraneous Functionality

    Identify any hidden or undocumented features that could pose security risks.

    Examples:

    • Drozer

      drozer console connect --command "run app.package.list -f"

      Enumerate app components and identify potentially dangerous exposed functionalities.

    • Frida

      frida-trace -U -i "*" com.example.app

      Trace all function calls in the app to identify hidden or unexpected behaviors.

© 2023 Pentesting Checklists by RFS. All rights reserved.