Mobile application penetration testing

Your iOS and Android apps, and the services behind them, tested the way an attacker with your app on their own phone would.

When you need it

  • Before launching or majorly updating an app
  • Your app handles payments, health or personal data
  • An app store, partner or customer requires it
  • After a change of development team

What we test

We test the app on real and rooted or jailbroken devices, and the back-end it talks to, following the OWASP Mobile Application Security Testing Guide (MASTG).

Data on the device

Tokens, personal data or keys stored insecurely, in logs, backups or caches.

Network communication

TLS validation, certificate pinning and what is sent in clear text.

Authentication and session handling

Biometrics, PINs, session tokens and how the app enforces them.

Reverse engineering and the API

Hard-coded secrets, tampering protections, and the API the app depends on.

How the test runs

  1. Scoping. Platforms (iOS, Android or both), app builds, test accounts and the API in scope.
  2. Builds. A test build (TestFlight, APK or IPA) is best; production store builds can also be tested.
  3. Testing. Usually five to eight days for both platforms and the shared back-end.
  4. Report and debrief. Platform-specific findings with fixes, a walkthrough, and one retest within 90 days.

Supports

  • OWASP MASVS
  • PCI DSS
  • SOC 2
  • App store and partner requirements

Questions

Do we need to test both iOS and Android?

If both are live, yes: the platforms store data and enforce security differently. The shared back-end only needs testing once.

Can you test an app built with Flutter or React Native?

Yes. Cross-platform frameworks change some techniques, not the risks we look for.

Is the app's API included?

The parts the app uses are. A full API test is worth adding if partners or other clients use it too.

Know exactly what your test will cost by tomorrow

Tell us what you need tested. You'll get questions or a fixed quote within three working days.

Get a fixed quote