MEET FINGERLYA clearer picture of every session.Explore the signals

Mobile app fraud: emulators, clones and tampering, and what you can detect.

Mobile app fraud prevention with native SDKs: detect emulators, rooted and jailbroken devices, cloned apps and tampering, with server-verified attestation.

Mobile app fraud prevention starts from an uncomfortable fact: your app runs on a device the attacker controls, so anything it reports can be forged. The answer is to have the app report raw observations, let your server make every decision, and use hardware-backed attestation to raise the cost of lying.

This playbook sets out what Fingerly’s native iOS and Android SDKs and server genuinely detect, how attestation fits in, and where the honest limits are.

What can fraudsters do to a mobile app?

They change the environment so one operator looks like many customers, or so a modified client passes your checks. The common moves are running the app in emulators, provisioning racks of phones, cloning the app so several copies run side by side, rooting or jailbreaking a device, attaching hooking tools, intercepting the app’s encrypted traffic, and repackaging the app itself.

These are rarely the goal. They are how an operator gets past the checks you already have, to farm sign-up bonuses, redeem rewards, create fake accounts or move money from a compromised phone.

What do the native SDKs detect?

The native SDKs report raw observations, and the server derives the findings and scores them with your weights. Here is what is reported today, by platform.

  • Android: an emulator or virtualised Android, a cloned app running in a cloning framework, a rooted device, instrumentation attached to the app, intercepted traffic, a failed integrity check on the app, a debugger or test runner attached, and a device that looks provisioned for bulk use.
  • iOS: the iOS Simulator, a jailbroken device including rootless jailbreaks, instrumentation attached to the app, intercepted traffic, a failed integrity check, developer tooling attached, and a device that looks provisioned for bulk use.
  • Network, on both: VPNs including tunnels over mobile data, proxies, Tor exits and a location that disagrees with the address.
  • Across devices, on the server: many alike devices behind one network, compared with your own traffic after a learning period of seven days.

How does attestation prove the app is genuine?

Attestation lets the device’s security hardware vouch for your app, and the server checks the proof itself. A modified app can forge everything else in a report, which is why attestation is the evidence that matters most.

  • Android 7.0 (API 24) and newer: the SDK gets a one-time challenge from Fingerly and has the hardware-backed keystore attest to it. The server verifies the result, and a failed check raises the tampering signal. It works without configuration and without extra services on the device; listing your package names and signing certificates on the key also makes the server check that the attestation names your app.
  • iOS 14 and newer, on a real device: App Attest. It is optional, needs the App Attest capability on your app target and your iOS app ID on your public key. The first report from an install attests a new key, and every later one signs an assertion with it. A failed check raises the tampering signal.

Every native event records one attestation state: attested, not attested, or failed, so “not proven” is never confused with “not checked”. A key that names an app can also require attestation, refusing reports that do not prove themselves. Turn that on only once every device you need to serve can attest.

Why must your server make the decision?

Because the app can be patched to report anything. The SDK holds no weight, threshold or rule, and the app is never told which signals fired. It receives a score and level as a convenience, which can adapt the interface but should not be used for security decisions.

The decision belongs to your backend. Send the request ID with the action, read the stored event with a secret key, check that it is for this action and recent, and decide there. If the score is absent, never read it as clean: it is absent when a request was not scored and when your key hides it.

Where in the app should you identify?

  • Onboarding and signup, to catch emulators, device farms and fake accounts before benefits are granted.
  • Login, where compromised and emulated devices attempt takeovers.
  • Reward redemption, where cloned apps and instrumented devices farm incentives.
  • Transfers, new payees and payments, where instrumentation or interception during the action is worth stopping for, whatever the rest of the session says.

Use the native SDKs for iOS and Android, or the React Native, Flutter and Lynx bridges, which call the same native code. Consent defaults to pending, which collects nothing until your consent tool grants it, and the SDKs never show a permission prompt.

How do you avoid penalising legitimate users and developers?

Weight these signals as evidence, and be honest about their limits. Attestation raises the cost of forging a report, but it does not make forgery impossible, and a device that offers no proof is not proven guilty. Hiding tools exist, so evidence that is hard to fake carries the most weight.

  • Developers and testers use emulators every day. Use development and staging keys for your own testing; requests made with them are free.
  • A debug build installed from a laptop, or an unlocked bootloader, is not enough on its own to report tampering or root.
  • Managed work profiles are a normal Android setup and are not reported as cloned apps. Phones rented in a datacentre are real hardware and are caught by the device-farm side instead.
  • Families share phones, so treat a device-farm finding as a reason to review and let the size of the cluster guide the action.
  • Recognition after a reinstall differs by platform: on iOS a reinstall on the same device keeps its visitor ID, and on Android it starts a new one.

Detection coverage is described as it stands for the current native SDKs. It is not a guarantee against every tool an attacker may use.

Put it into practice
Open the session inspector Try the policy sandbox
EXPLAINER / DEVICE FINGERPRINTING

What is device fingerprinting?

Read the explainer
FIELD GUIDE / FINGERPRINTING VS COOKIES

Browser fingerprinting vs cookies.

Compare the two
FIELD GUIDE / MOBILE SDKS

Mobile device fingerprinting on iOS and Android.

Read the mobile guide
EXPLAINER / PRIVACY AND GDPR

Is device fingerprinting legal? Privacy, consent and GDPR.

Read the privacy explainer
FIELD GUIDE / ACCURACY AND LIMITS

How accurate is device fingerprinting?

Read the field guide
EXPLAINER / ABOUT FINGERLY

What is Fingerly?

Meet Fingerly
HOW-TO / BOT DETECTION

Bot detection for signups and logins, without a wall of captchas.

Read the how-to
PLAYBOOK / PROMOTION ABUSE

Prevent multiple accounts and promo abuse, one device at a time.

Read the playbook
PLAYBOOK / ACCOUNT TAKEOVER

Stop account takeover with device signals, not more passwords.

Read the playbook
HOW-TO / NETWORK INTELLIGENCE

How to detect VPN, proxy and Tor traffic, and what to do about it.

Read the how-to
PLAYBOOK / BUILD VS BUY

Build or buy device identification? An honest guide for engineering teams.

Read the guide
BUYER’S GUIDE / PRICING

How much does device fingerprinting cost?

Read the buyer’s guide
COMPARISON / BOT DEFENCE

Device fingerprinting vs CAPTCHA: which one stops bots?

Read the comparison
COMPARISON / IP ADDRESSES

Device fingerprinting vs IP address blocking.

Read the comparison
HOW-TO / MULTI-ACCOUNTING

How to detect multiple accounts from one person.

Read the how-to
HOW-TO / TRIAL ABUSE

How to stop free trial abuse without hurting conversions.

Read the how-to
HOW-TO / REFERRAL FRAUD

Referral fraud and reward abuse prevention.

Read the how-to
HOW-TO / FAKE SIGNUPS

How to stop fake signups and spam accounts without punishing real users.

Read the how-to
HOW-TO / CREDENTIAL STUFFING

Credential stuffing and login protection: stop the bots, keep the customers.

Read the how-to
EXPLAINER / AUTOMATION

Headless browsers and automation detection: telling a script from a person.

Read the explainer
EXPLAINER / MOBILE INTEGRITY

Rooted and jailbroken devices: what they mean for fraud, and what to do about them.

Read the explainer
EXPLAINER / SPOOFING

Anti-detect browsers and fingerprint spoofing: what can and cannot be caught.

Read the explainer
EXPLAINER / DEVICE FARMS

Device farms and click farms, explained: how abuse scales and what you can detect.

Read the explainer
FIELD GUIDE / DEVICE INTELLIGENCE

What a device can tell you about a session.

Read the field guide
SIGNAL NOTES / NETWORK CONTEXT

VPN, proxy, or Tor? Know the difference.

Explore the signal notes
PLAYBOOK / BETTER DECISIONS

Build a risk policy. Not a wall.

Read the playbook
[ IDENTIFY ][ UNDERSTAND ][ DECIDE ][ FINGERLY ]
Less guessing. More knowing.

Make the next connection a trusted one.

Start with the signals, keep your own decisions, and pay as you go, only for what you identify. No credit card needed.