Application security feature

Mobile app threat response

Otukan lets you decide how your mobile app behaves when a threat signal appears: observe, warn, restrict or terminate, set per check and per user flow.

  • Android
  • iOS
  • Flutter
  • React Native
Attacker in a live session is met at the per-flow policy boundary before it reaches the appAttacker in a live sessionPer-flow policyYour app
  • Proportionate by flow

    A payment and a product page need different reactions to the same signal. Otukan sets the response per check and per user flow.

  • Fair to real users

    Observe-first rollout, clear messages and a support path keep legitimate customers moving while attackers lose access.

  • Governed like code

    Response policies are versioned, owned and reversible, so every change to app behaviour is deliberate and traceable.

Response decisions in practice

Select a situation to see what Otukan detects, the response a typical policy applies and what your team receives.

Tampered app on a payment

  1. Detect

    Integrity checks show the running copy differs from your signed release as the user opens a payment.

  2. Respond

    Terminate for that flow: the payment does not start and the session ends.

  3. Report

    Your backend refuses the request and the security team sees the build that was altered.

Rooted phone while browsing

  1. Detect

    Android root checks report a modified system on a low-risk screen.

  2. Respond

    Observe: the user keeps browsing and the signal is recorded.

  3. Report

    Rates per OS version tell you whether stricter rules would hit real customers.

Hooking at sign-in

  1. Detect

    Otukan finds an instrumentation framework in the process when the login screen opens.

  2. Respond

    Restrict: sign-in requires a stronger factor from your backend, or waits.

  3. Report

    The login request carries the signal, so the server makes the call.

Screen recording on a card screen

  1. Detect

    Otukan sees screen capture start while card details are visible.

  2. Respond

    Warn and hide: the user sees a short explanation and sensitive fields are masked.

  3. Report

    The signal is recorded for fraud review without blocking the journey.

Emulator during sign-up

  1. Detect

    Otukan recognises a virtual device as a new account is being created.

  2. Respond

    Restrict: account creation is held for extra checks on your side.

  3. Report

    Clusters of emulated sign-ups stand out for investigation.

Response controls in Otukan

Each control shapes how the app reacts, who is affected and how you change course.

  • Per-flow rules

    Assign a response to each check within each user flow, from product browsing to transfers and account recovery, written separately for Android and iOS.

  • User messaging

    Show a plain explanation and a next step when a flow is warned or restricted, in your app's own words.

  • Server-side step-up

    Pass the signal to your backend so it can ask for a stronger factor instead of the app refusing outright.

  • Explicit allowances

    Allow a trusted assistive tool or approved internal test devices by name, instead of weakening the whole rule for everyone.

  • Policy versions

    Every change to a response policy is a new version with an owner, a date and a reason.

  • Rollback

    Return to the previous policy version when a change affects legitimate users more than expected.

You choose the response

Set a response for each user flow. Start by observing, then tighten flow by flow as the signals prove themselves.

Observe

Signal sent to your backend

Rolling out a new policy and measuring real-world signals.

Warn

This device looks modified. Continue with care.

Conditions some genuine users create, such as developer settings.

Restrict

Payments are unavailable on this device.

Payments, stored data and account changes.

Terminate

Session closed for your security.

Clear tampering on a high-risk flow.

How a policy goes live

  1. Map your flows

    List the flows that move money, data or account control, and the ones that do not.

  2. Draft the rules

    Pick a response per check for each flow, with a named owner for the policy.

  3. Observe first

    Run the new version in observe mode and compare rates on real users.

  4. Enforce and review

    Move each flow to its target response and review false positives on a set schedule.

  5. Adjust or roll back

    Publish a new version or return to the last one, with the reason recorded.

Free for app publishers

Check your app's exposure

A passive review of your published app by an Otukan engineer. No files, no access to your systems. Findings go by email to the verified publisher.

You finish the request on the next page.

When a threat signal appears, your app should react in proportion to what is at stake in that flow. Otukan gives you four responses (observe, warn, restrict and terminate) and lets you set them per check and per user flow, so a rooted phone can keep browsing while a tampered copy is kept away from payments. The signal also goes to your backend, which makes the final call where an attacker cannot interfere. This page covers policy design, how legitimate users are treated and how policies are governed, for Android, iOS, Flutter and React Native apps. Detection itself is described on each control’s page.

Designing the policy

A response policy answers one question per check and per flow: what should the app do now? Otukan offers four answers, and most apps need all four.

ResponseWhat the user experiencesRisk it addressesWhere it fits
ObserveNothing changes; the signal is recorded and sentUnknown rates, new checksNew rules, low-risk screens, measuring before enforcing
WarnA short explanation, then the flow continuesConditions some real users createDeveloper settings, screen recording on non-critical screens
RestrictOne function is held or needs a stronger factorClear risk to a specific actionSign-in, payee changes, stored card screens
TerminateThe session endsStrong evidence of an attack on a critical stepTampered builds on payments or account recovery

Match the response to the flow

Start from the flows, not the checks. List what moves money, exposes personal data or changes who controls an account. Those flows get restrict or terminate for the checks that matter to them. Everything else can observe or warn.

Let the server decide where it can

A restriction is often better expressed on your backend than in the app. When the app passes the signal with the request, your server can ask for a stronger factor, hold a transfer for review or let it through with a note. The app does not reveal to the attacker which rule applied.

Separate rules for Android and iOS

The two platforms expose different conditions, so the checks feeding a rule differ too. Otukan builds each check for its own platform, and a rule written for Android root does not quietly carry over to iOS; the iOS flow gets its own jailbreak rule. Write and test each platform’s rules on their own, even when the intended behaviour matches.

Protecting legitimate users

Every detection has innocent causes. Developers use debuggers, testers use emulators, and some customers run custom system images or assistive tools. A good policy plans for them.

A fallback for every restriction

When a flow is restricted, the user should know what to do next: try another device, use a different channel or contact support. Otukan lets the app show your own message at that point, so nobody is left at a dead end.

Support that can see the reason

Your support team needs to know which signal caused a restriction without seeing personal data. The pseudonymous install identifier and the check name are enough to explain the situation and log a possible false positive.

False-positive review

Review restricted and terminated sessions on a regular schedule. Where a legitimate pattern keeps appearing, such as one assistive tool or one corporate network, allow it explicitly in the next version rather than weakening the whole rule.

Governing policy change

Versions

Each response policy is a version with an owner, a date and a reason. That record answers the question every incident review eventually asks: what was the app told to do on that day, and who decided? How those versions are planned and tested on real users first is covered on security policy management.

Rollback

A new version can affect more real users than expected. Otukan keeps the previous version ready, so you can return to it while you investigate, and the rollback itself is recorded.

Accountable ownership

Name one owner for the policy, usually in application security. Product decides where friction is acceptable, fraud says which flows attackers target, and support reports what customers experience. The owner signs off every version.

Testing before enforcement

Before a version is enforced, Otukan and your engineers reproduce each targeted condition in an authorised lab and confirm the app responds as written. The same journey then runs on a clean device to confirm nothing happens, followed by install, update, sign-in and the protected flow. The results are attached to the version they tested.

The runtime checks behind these responses are described on mobile RASP, and Android device checks are on Android root detection. How monitoring informs policy is covered on mobile app threat monitoring. The product overview is on mobile app security.

Common questions

  • Should the app block the moment it sees a threat?

    Rarely on the first day. Blocking everywhere hurts customers with unusual but legitimate phones and tells attackers exactly which check they tripped. A better pattern is to observe first, restrict the flows that move money or data, and keep terminate for clear tampering on high-risk steps. Otukan lets you set that pattern per flow.

  • What happens to a legitimate user who is restricted?

    They see a clear message and a way forward that you define: try another device, contact support or complete a stronger check. Your support team can see which signal caused the restriction, so they can help without guessing. False positives found this way feed straight into the next policy version.

  • Who should own the response policy?

    One accountable owner, usually in application security, with product, fraud and support consulted. Otukan records who changed each version and why, so audits and incident reviews can trace every change in app behaviour back to a decision.

  • How do we know a stricter policy is not hurting customers?

    Compare before and after. Run the new version in observe mode first and note how often each rule would have fired. After enforcement, watch restriction rates, support contacts and completed journeys for the affected flows. If legitimate users are caught, return to the previous version, allow the specific pattern and try again.

On the mobile engineering team?

How protection fits your build, signing and release, platform by platform.

Decide what happens next, per flow

Tell us the platforms and app framework, your most sensitive user flows and how strict each one needs to be. We do not ask for binaries, signing keys, production credentials or user data.

Or request a technical demo