Application security feature

Mobile RASP

Otukan mobile RASP detects hooking, debuggers, emulators and modified devices while your app runs, and applies the response you set for each user flow.

  • Android
  • iOS
  • Flutter
  • React Native
Hooking and debugging is met at the runtime checks boundary before it reaches the appHooking and debuggingRuntime checksYour app
  • Protection that runs

    Otukan checks for hooking, debuggers, emulators and modified systems at launch, at sign-in and before sensitive actions, not only at start-up.

  • Your response, per flow

    Observe, warn, restrict or terminate, set for each user flow, so attackers lose access and legitimate users keep theirs.

  • Signals for your backend

    Runtime signals travel with login and transaction requests, so your server makes the decision where an attacker on the device cannot reach it.

Runtime threats Otukan handles

Pick a threat to see how Otukan detects it, how the app responds and what your backend receives.

Hooking frameworks

  1. Detect

    Otukan looks for injected code, modified functions and instrumentation frameworks in the app's own process.

  2. Respond

    The app applies your policy for the current flow, from recording the signal to ending the session.

  3. Report

    Your backend receives a hooking signal with the next login or transaction request.

Attached debuggers

  1. Detect

    Otukan detects a debugger or tracer attached to the running release build.

  2. Respond

    Sensitive flows are restricted or the session ends, as your policy sets.

  3. Report

    A debugging signal reaches your backend, so the server can refuse the request.

Emulators and virtual devices

  1. Detect

    Otukan recognises signs that the app is running on something other than physical hardware.

  2. Respond

    You choose whether emulated sessions can browse, sign in or transact.

  3. Report

    An emulator signal lets your backend separate scripted traffic from real users.

Rooted and jailbroken devices

  1. Detect

    Platform-specific checks on Android and iOS find the traces that root and jailbreak tools leave.

  2. Respond

    High-risk flows are stepped up or restricted; low-risk browsing continues.

  3. Report

    A device-integrity signal travels with requests for your risk decision.

Repackaged apps

  1. Detect

    Otukan checks that code, resources and signing identity match the release you shipped.

  2. Respond

    A modified copy can be stopped before sensitive code runs.

  3. Report

    An integrity signal tells your backend the request comes from an altered app.

Screen recording and overlays

  1. Detect

    Otukan flags screen capture during steps you mark as sensitive and, on Android, other apps drawing over your screens.

  2. Respond

    Sensitive content is hidden or the step is paused, per your policy.

  3. Report

    The signal is recorded so fraud and security teams see the pattern.

Runtime controls in Otukan RASP

Each control is built for its platform and feeds the same response policy.

  • Hooking detection

    Finds instrumentation frameworks and injected code that read or change what your app does, one function at a time.

  • Anti-debugging

    Detects debuggers and tracers attached to a release build, so your logic cannot be stepped through quietly.

  • Root and jailbreak detection

    Flags devices whose operating system no longer enforces the platform's security model, with separate checks for Android and iOS.

  • Emulator detection

    Separates physical devices from emulators and virtual environments used to run your app at scale.

  • Anti-tampering

    Confirms that code, resources and the signing certificate are the ones you released, and reacts when they are not.

  • Screen capture protection

    Detects recording of sensitive screens and hides their content while the user completes a payment or views personal data, with controls built per platform.

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 it works

  1. Set your policy

    Choose a response for each check and each user flow, starting with observe where you want to measure first.

  2. Protect the build

    Otukan fits your existing build and release pipeline. Your signing keys stay with your team.

  3. Checks run in the app

    Runtime checks run at launch, at sign-in and again before every sensitive action you mark.

  4. Signals reach your backend

    Signals travel with login and transaction requests, so your server decides.

  5. Tighten flow by flow

    Use what the signals show about your real users to move each flow to the response it needs.

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.

Otukan’s mobile RASP (runtime application self-protection) puts checks inside your app that watch its own execution while it runs. It detects hooking and instrumentation, attached debuggers, emulators, rooted and jailbroken devices, and changes made to the app since you signed it. When a check fires, the app applies the response you chose for that user flow, from recording the signal to ending the session, and sends the signal to your backend so your server makes the final call. Checks are built separately for Android and iOS, so each platform gets protection designed for its own security model.

Combined static and runtime protection is covered on mobile app shielding.

Runtime boundary

What Otukan monitors

Otukan groups its runtime checks into signal families. Each family is tuned for attack tooling, and each has legitimate cases your policy should account for.

Signal familyWhat Otukan looks forLegitimate cases your policy accounts for
Instrumentation and hookingInjected code, modified functions and instrumentation frameworks in the processAccessibility and assistive tools that attach to apps
Debugging and tracingA debugger or tracer attached to the running release buildDevelopers and testers on internal builds
Modified OS (root and jailbreak)Traces of tools that remove the platform’s security assumptionsEnthusiast users and some custom system images
Emulators and virtual environmentsSigns that the device is not physical hardwareQA farms and automated testing
App integrityCode, resources or signing identity different from your releaseStore re-signing, which Otukan’s integrity data expects

Built for each platform

On Android, Otukan’s checks look at the app’s process, the system it runs on and the signing identity the app carries. Your server can combine these signals with a Play Integrity verdict it verifies itself. On iOS, the sandbox limits what any app can learn about the device, so Otukan concentrates on the app’s own process, the libraries loaded into it and the identity of the bundle. Your server can pair those signals with App Attest. Nothing is carried across from one platform to the other.

Raising the cost of attack

Every client-side check runs on a device the attacker may control. Otukan’s answer is depth: checks run at several points in the journey, and every result can reach your backend. An attacker who silences one check on the device still faces the next check and a server that expects to hear from it.

Response choices

What the app does after a detection matters as much as the detection. Otukan gives you four responses and lets you set them per check and per user flow.

ResponseWhat happensLegitimate-user impactTypical use
ObserveThe signal is recorded and sent to your backend. Nothing changes for the user.NoneRolling out a new policy; measuring how often checks fire
WarnThe user sees a message about the risk and can continue.Light frictionConditions that some legitimate users create, such as developer settings
RestrictSpecific sensitive functions are disabled; the rest of the app works.PartialPayments, stored data, account changes
TerminateThe session ends or the app closes.HighClear evidence of tampering on a high-risk flow

The pattern that works is to start with observe, measure how often each check fires across your real users, then tighten flow by flow. Policy design is covered on threat response.

Lifecycle

Conditions change while the app is running, so Otukan ties checks and responses to moments in the user journey, not only to start-up.

At launch

Integrity and environment checks run before your sensitive code does. The result decides whether the app continues normally, continues with limits, or stops.

At authentication

Runtime signals do the most work when your backend sees them. Otukan sends them with the login request, so your server can step up authentication or refuse the session. The decision stays on the side the attacker cannot touch.

During transactions

A hooking framework can attach after launch. Otukan re-checks before a payment, a transfer or an account change, catching conditions that were not present at start-up. Handling runtime threat signals covers the backend side.

On every release

Otukan fits your existing build and release pipeline, and your signing keys stay with your team. Before a protected release ships, we work with your engineers to prove each check three ways: reproduce the behaviour in an authorised lab and confirm the signal, run the same journey on a legitimate device and confirm it stays quiet, then repeat install, update, sign-in and your most sensitive flow. Results are recorded with OS versions, devices and the reviewer.

For the wider picture, return to mobile app security. If your app is already published, you can request a free App Exposure Check of the public store release.

Common questions

  • Can RASP stop a determined attacker?

    RASP makes attacks slower and costlier and gives your backend the signal. Someone who fully controls a device can study any client-side check, so Otukan runs checks at several points in the journey and reports them to your server. A bypass on the device then no longer means a bypass of your decision, and the attacker has to defeat the app and the backend together.

  • Will runtime checks lock out legitimate users?

    Not when the policy is set per flow. Developers, testers, assistive tools and enthusiast users can all create conditions that look unusual. Otukan lets you start in observe mode, see how often each check fires on your real users, then tighten one flow at a time. Payments can be strict while browsing stays open.

  • Does RASP slow the app down?

    Otukan runs checks at the moments that matter, such as launch, sign-in and sensitive actions, rather than constantly in the background. We measure launch time and responsiveness with your team on the oldest devices you support, before release, so you see the effect on your own app.

  • How does Otukan RASP fit our release process?

    It fits your existing build and release pipeline, with protection as one step between build and release. Your signing keys stay with your team, and the protected build goes through the same testing and store submission as today. We do not ask for binaries, signing keys or production credentials during an enquiry.

  • Is runtime protection the same on Android and iOS?

    No, and it should not be. Android and iOS expose different information to an app and have different attack tooling. Otukan builds its checks separately for each platform, so each one is designed for that platform's security model and tested on its own devices.

On the mobile engineering team?

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

Protect your app while it runs

Tell us the platform, the app framework and the runtime threats you are most concerned about. We do not ask for binaries, signing keys or production credentials.

Or request a technical demo