Engineering

Security policy management

How to evaluate security policy management for mobile apps: per-flow rules, clear app, OS and backend roles, and versioned changes tested on real users first.

  • Android
  • iOS
  • Flutter
  • React Native
  • Strict where it pays

    Payments and account changes get firm rules while browsing stays open, so protection rises without turning legitimate users away.

  • Three layers, one policy

    The app acts on what it sees, the operating system supplies platform evidence and your backend makes the final call. Otukan's policy states who does what.

  • Decisions you can explain

    When a customer asks why a payment was held, or an auditor asks what ran, the answer is a named rule in a known policy version.

What Otukan policy management gives your team

Controls for the people who write, review and operate mobile security rules.

  • Per-flow responses

    Assign observe, warn, restrict or terminate for each check within each user flow you define.

  • Per-platform rules

    Android and iOS rules are written and reviewed separately, because the checks and platform evidence differ.

  • Server-side adjustment

    Where your design allows it, the response for a control can be relaxed or tightened from your server between releases.

  • Review and history

    Every policy version records who approved it and what changed, ready for audit and incident review.

From draft rule to enforced policy

  1. Name the flow

    Pick a user flow and the trust boundary its request crosses.

  2. Draft the rule

    Choose the checks that matter there and a response for each.

  3. Observe on real users

    Ship in observe mode and see how often each check fires.

  4. Enforce in stages

    Move the rule to its target response after review, one flow at a time.

  5. Revisit on change

    Re-run the evaluation after new OS releases, app releases or attack patterns.

Evaluate security policy management by following one sensitive user flow from end to end. Name the flow and the trust boundary its request crosses, then check three things. Can a rule be set for that flow alone? Is it clear which part the app, the operating system and your backend each play? And can a rule change be tested on real users, versioned and rolled back without guesswork? Otukan’s policy management answers yes to each, for Android and iOS apps including Flutter and React Native, with rules written per platform. Policy decides the response; it does not replace a server that verifies what it receives.

Flows and trust boundaries

A policy is only as good as its map of where risk sits. Start with the flows where a wrong decision costs most, and write down the boundary each request crosses.

User flowTrust boundaryWhat an attacker wantsTypical starting rule
First launch and onboardingApp to identity serviceMass account creation from scripted devicesObserve emulator and integrity signals, report to the server
Sign-inApp to authentication backendSession theft or credential replayWarn on modified devices, step up on hooking
Payment or transferApp to transaction APIAltered amounts or payeesRestrict on hooking or debugging, server re-verifies
Account changesApp to profile serviceTakeover by changing email, phone or deviceRestrict until the server confirms the device
Content browsingApp to content serviceLittle of valueObserve only

The table is a starting point. Your own flows and the value they carry set the final rules.

Responsibilities

Good policy is explicit about which layer does which job. Each layer sees something the others cannot.

The app

The app runs Otukan’s checks and applies the local response set for the flow. It is the only layer that can see hooking, debugging or tampering from the inside, and it can act before sensitive code runs. It also runs on a device the attacker may control, so its findings are sent on rather than trusted alone.

The operating system

Android and iOS each offer platform evidence your server can verify. On Android, a Play Integrity verdict speaks to the app and device. On iOS, App Attest lets your server check that requests come from a genuine instance of your app. Your policy should say where that evidence is required, and Otukan’s rules are written separately for each platform because the evidence differs.

Your backend

The backend makes the final decision on sensitive requests. It receives Otukan’s signals, including the policy version that produced each response, combines them with platform evidence and its own account history, and accepts, steps up or refuses. For signal handling on the server, see handling runtime threat signals.

Evaluation

Supported platforms

Ask for platform scope per control, not per product. A rule that relies on a control available on Android only must not be assumed on iOS. Otukan shows each platform’s rule set on its own, so a reviewer sees exactly what runs on Android and what runs on iOS.

Evidence

Every rule should be backed by a test. With your team, Otukan reproduces the targeted behaviour in an authorised lab and records the signal, runs the same journey on clean devices and confirms no response, and repeats install, update, sign-in and the protected flow. Results are kept with devices, OS versions and the reviewer.

Rollback of a rule

Ask how quickly a team can undo a rule that misfires. With Otukan, each policy version is kept, so returning to the previous one is a known step rather than an emergency edit. Where a response can be adjusted from your server, the correction reaches users without waiting for a store review.

User impact

Measure before you enforce. Observe mode shows how often each check fires across your real users. Test engineers, people who rely on assistive tools and users who customise their phones all look unusual to a check, and a rule that ignores them costs support time. Tighten one flow at a time and watch the effect. For designing responses in depth, see threat response.

Return to mobile app security for how policy fits the wider product. If your app is already published, you can request a free App Exposure Check of the public store release.

Common questions

  • Who should own mobile security policy?

    Usually security owns the rules, product owns the user experience they create and engineering owns how they ship. Otukan's versioned policies make that split practical: security drafts, product and engineering review, and the release owner approves the version that goes out. Fraud teams often own the server-side decisions that use the same signals.

  • Can we change a policy without a new app release?

    For many rules, yes. Where your design allows it, Otukan lets the response for a control be adjusted from your server, so you can relax a rule that affects legitimate users or tighten one under active attack. Changes to which checks are built into the app travel with the next protected release.

  • How do we test a policy before enforcing it?

    Run it in observe mode on your real users first, then reproduce the targeted behaviour in an authorised lab to confirm the signal, repeat the journey on clean devices to confirm silence, and re-run install, update, sign-in and the protected flow. Keep Android and iOS results apart, with devices, OS versions and a named reviewer.

Strict where it matters, open everywhere else

Tell us your platforms, frameworks and the user flows where a wrong decision costs most. We never ask for app binaries, keys or live credentials.

Or request a technical demo