General Mobile App Testing Guide
Key Areas in Mobile Application Security
What's Covered in the Mobile Testing Guide?
Static and Dynamic Binary Analysis
Stateful vs. Stateless Authentication
Verifying that Appropriate Authentication is in Place
Testing Stateful Session Management
Testing Stateless (Token-Based) Authentication
User Logout and Session Timeouts
Login Activity and Device Blocking
Intercepting Traffic on the Network Layer
Verifying Data Encryption on the Network
Making Sure that Critical Operations Use Secure Communication Channels
Identifying Insecure and/or Deprecated Cryptographic Algorithms
Cryptographic APIs on Android and iOS
Signing and Publishing Process
Building a Reverse Engineering Environment for Free
Tampering and Runtime Instrumentation
Customizing Android for Reverse Engineering
Testing Local Storage for Sensitive Data
Testing Logs for Sensitive Data
Determining Whether Sensitive Data is Sent to Third Parties
Determining Whether the Keyboard Cache Is Disabled for Text Input Fields
Determining Whether Sensitive Stored Data Has Been Exposed via IPC Mechanisms
Checking for Sensitive Data Disclosure Through the User Interface
Testing Backups for Sensitive Data
Finding Sensitive Information in Auto-Generated Screenshots
Checking Memory for Sensitive Data
Testing the Device-Access-Security Policy
Verifying the Configuration of Cryptographic Standard Algorithms
Testing Random Number Generation
Testing Biometric Authentication
Testing Endpoint Identify Verification
Testing Custom Certificate Stores and Certificate Pinning
Testing the Network Security Configuration settings
Testing Default Network Security Configuration
Testing for Sensitive Functionality Exposure Through IPC
Testing JavaScript Execution in WebViews
Testing WebView Protocol Handlers
Determining Whether Java Objects Are Exposed Through WebViews
Testing for Fragment Injection
Making Sure That the App is Properly Signed
Determining Whether the App is Debuggable
Finding Debugging Code and Verbose Error Logging
Make Sure That Free Security Features Are Activated
Checking for Weaknesses in Third Party Libraries
Testing The Detection of Reverse Engineering Tools
Testing Run Time Integrity Checks
Dynamic Analysis of Jailbroken Devices
Setting up a Web Proxy with Burp Suite
Dynamic Analysis on Non-Jailbroken Devices
Patching React Native Applications
Checking Logs for Sensitive Data
Determining Whether Sensitive Data Is Sent to Third Parties
Finding Sensitive Data in the Keyboard Cache
Determining Whether Sensitive Data Is Exposed via IPC Mechanisms
Checking for Sensitive Data Disclosed Through the User Interface
Testing Backups for Sensitive Data
Testing Auto-Generated Screenshots for Sensitive Information
Testing Memory for Sensitive Data
Random Number Generation on iOS
Testing Custom Certificate Stores and Certificate Pinning
Testing WebView Protocol Handlers
Making Sure that the App Is Properly Signed
Finding Debugging Code and Verbose Error Logging
Make Sure That Free Security Features Are Activated
Checking for weaknesses in third party libraries
Mobile Application Security Testing Distributions
All-in-One Mobile Security Frameworks
Tools for Network Interception and Monitoring